#
59641944 |
| 10-Aug-2023 |
Ivan Malov <ivan.malov@arknetworks.am> |
net/sfc: offer indirect VXLAN encap action in transfer flows
Parsing inline action VXLAN_ENCAP repeating in many flows is expensive, so offer support for its indirect version. Query operation is not
net/sfc: offer indirect VXLAN encap action in transfer flows
Parsing inline action VXLAN_ENCAP repeating in many flows is expensive, so offer support for its indirect version. Query operation is not supported for this action. The next patch will add a means to update the encapsulation header data.
Signed-off-by: Ivan Malov <ivan.malov@arknetworks.am> Reviewed-by: Andy Moreton <andy.moreton@amd.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
971d2b57 |
| 11-Aug-2023 |
Tyler Retzlaff <roretzla@linux.microsoft.com> |
remove C11 compatibility macro
C11 conformant compiler is documented as a minimum requirement to build and consume DPDK. Remove use of RTE_STD_C11 macro marking use of C11 features with __extension_
remove C11 compatibility macro
C11 conformant compiler is documented as a minimum requirement to build and consume DPDK. Remove use of RTE_STD_C11 macro marking use of C11 features with __extension__ since it is no longer necessary and then remove definition of RTE_STD_C11 macro.
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Reviewed-by: Morten Brørup <mb@smartsharesystems.com>
show more ...
|
#
1588d135 |
| 07-Jun-2023 |
Ivan Malov <ivan.malov@arknetworks.am> |
net/sfc: use conntrack assistance counters in transfer flows
These are 1-bit saturating counters which can only be useful to tell whether a given flow rule has offloaded some packets since the last
net/sfc: use conntrack assistance counters in transfer flows
These are 1-bit saturating counters which can only be useful to tell whether a given flow rule has offloaded some packets since the last query. Byte count is never provided for these.
Signed-off-by: Ivan Malov <ivan.malov@arknetworks.am> Reviewed-by: Andy Moreton <amoreton@xilinx.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
6676ae6a |
| 07-Jun-2023 |
Ivan Malov <ivan.malov@arknetworks.am> |
net/sfc: support indirect count action in transfer flows
Indirect count action is useful to applications that need to gather aggregated statistics for many flows.
Signed-off-by: Ivan Malov <ivan.ma
net/sfc: support indirect count action in transfer flows
Indirect count action is useful to applications that need to gather aggregated statistics for many flows.
Signed-off-by: Ivan Malov <ivan.malov@arknetworks.am> Reviewed-by: Andy Moreton <amoreton@xilinx.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
c6fa506c |
| 07-Jun-2023 |
Ivan Malov <ivan.malov@arknetworks.am> |
net/sfc: make use of conntrack assistance for transfer flows
On EF100 hardware, match-action engine (MAE) can be equipped with an assistance table for connection tracking (CT). In it, an entry key i
net/sfc: make use of conntrack assistance for transfer flows
On EF100 hardware, match-action engine (MAE) can be equipped with an assistance table for connection tracking (CT). In it, an entry key is a set of exact match fields: an EtherType, a pair of IP addresses, a L4 protocol ID and a pair of L4 port numbers. An entry response can provide matching packets with a mark value and additional data to be plumbed to NAT action. In addition, an update to mark-and-sweep counter can be done.
This table was designed with larger capacity in mind, so moving the above match criteria out of an action rule (AR) specification to a CT entry increases the likelihood of reusing AR entries and improves the total flow engine capacity. Make use of that.
NAT and CT counters will be supported later.
Signed-off-by: Ivan Malov <ivan.malov@arknetworks.am> Reviewed-by: Andy Moreton <amoreton@xilinx.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
73e01736 |
| 07-Jun-2023 |
Ivan Malov <ivan.malov@arknetworks.am> |
net/sfc: turn MAE flow action rules into shareable resources
Later patches of the series provide support for HW conntrack assistance. With the new feature, multiple flows that differ in the 5-tuple
net/sfc: turn MAE flow action rules into shareable resources
Later patches of the series provide support for HW conntrack assistance. With the new feature, multiple flows that differ in the 5-tuple match fields but are otherwise identical will be able to share all FW-allocatable objects except for those of the conntrack table. That will boost flow engine capacity.
To prepare for that, action rules of the match-action engine have to be turned into shareable objects, from SW standpoint.
Signed-off-by: Ivan Malov <ivan.malov@arknetworks.am> Reviewed-by: Andy Moreton <amoreton@xilinx.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
8cff0013 |
| 07-Jun-2023 |
Ivan Malov <ivan.malov@arknetworks.am> |
net/sfc: extend generic flow API to allow for internal flows
At the moment, driver-internal flow rules are provisioned by functions that are separate from the generic flow management framework. In o
net/sfc: extend generic flow API to allow for internal flows
At the moment, driver-internal flow rules are provisioned by functions that are separate from the generic flow management framework. In order to use the latter for such rules, extend it accordingly. This will be actually used in the next patch.
Signed-off-by: Ivan Malov <ivan.malov@arknetworks.am> Reviewed-by: Andy Moreton <amoreton@xilinx.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
05d58ac4 |
| 07-Jun-2023 |
Ivan Malov <ivan.malov@arknetworks.am> |
net/sfc: refactor flow create/destroy locking
Doing so is useful to facilitate driver-internal flow rework.
Signed-off-by: Ivan Malov <ivan.malov@arknetworks.am> Reviewed-by: Andy Moreton <amoreton
net/sfc: refactor flow create/destroy locking
Doing so is useful to facilitate driver-internal flow rework.
Signed-off-by: Ivan Malov <ivan.malov@arknetworks.am> Reviewed-by: Andy Moreton <amoreton@xilinx.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
f55fe01f |
| 15-May-2022 |
Ivan Malov <ivan.malov@oktetlabs.ru> |
net/sfc: improve naming in flow tunnel offload support
Change ambiguous terms "jump rule" and "group rule" to clearer "tunnel rule" and "switch rule". The new terms reflect the purpose of these rule
net/sfc: improve naming in flow tunnel offload support
Change ambiguous terms "jump rule" and "group rule" to clearer "tunnel rule" and "switch rule". The new terms reflect the purpose of these rules in virtual switches.
The module name, "flow tunnel", is replaced by "FT" in function names to avoid the use of word "tunnel" twice.
Use term "FT context" when referring to tunnel entries. Also, add "ctx" suffix to "ft" and "ft_id" occurrences.
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
6da67e70 |
| 01-Feb-2022 |
Ivan Malov <ivan.malov@oktetlabs.ru> |
net/sfc: rework flow action RSS support
Currently, the driver always allocates a dedicated NIC RSS context for every separate flow rule with action RSS, which is not optimal.
First of all, multiple
net/sfc: rework flow action RSS support
Currently, the driver always allocates a dedicated NIC RSS context for every separate flow rule with action RSS, which is not optimal.
First of all, multiple rules which have the same RSS specification can share a context since filters in the hardware operate this way.
Secondly, entries in a context's indirection table are not precise queue IDs but offsets with regard to the base queue ID of a filter. This way, for example, queue arrays "0, 1, 2" and "3, 4, 5" in two otherwise identical RSS specifications allow the driver to use the same context since they both yield the same table of queue offsets.
Rework flow action RSS support in order to use these optimisations.
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru> Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Reviewed-by: Andy Moreton <amoreton@xilinx.com>
show more ...
|
#
012bf708 |
| 13-Oct-2021 |
Ivan Malov <ivan.malov@oktetlabs.ru> |
net/sfc: support group flows in tunnel offload
GROUP is an in-house term for so-called "tunnel_match" flows. On parsing, they are detected by virtue of PMD-internal item MARK. It associates a given
net/sfc: support group flows in tunnel offload
GROUP is an in-house term for so-called "tunnel_match" flows. On parsing, they are detected by virtue of PMD-internal item MARK. It associates a given flow with its tunnel context.
Such a flow is represented by a MAE action rule which is chained with the corresponding JUMP rule's outer rule by virtue of matching on its recirculation ID.
GROUP flows do narrower match than JUMP flows do and decapsulate matching packets (full offload).
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru> Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
93de39f5 |
| 13-Oct-2021 |
Ivan Malov <ivan.malov@oktetlabs.ru> |
net/sfc: support jump flows in tunnel offload
JUMP is an in-house term for so-called "tunnel_set" flows. On parsing, they are identified by virtue of actions MARK (PMD-internal) and JUMP. The action
net/sfc: support jump flows in tunnel offload
JUMP is an in-house term for so-called "tunnel_set" flows. On parsing, they are identified by virtue of actions MARK (PMD-internal) and JUMP. The action MARK associates a given flow with its tunnel context.
Such a flow is represented by a MAE outer rule (OR) which has its recirculation ID set. This ID is also associated with the tunnel context. The OR is supposed to set this ID in 8 high bits of Rx mark in matching packets. It also counts the packets.
Packets that hit the OR but miss in action rule (AR) table, should go to MAE admin PF (that is, to DPDK) by default.
Support for the use of action COUNT in JUMP flows will be introduced by later patches.
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru> Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
73b91412 |
| 21-Jul-2021 |
Ivan Malov <ivan.malov@oktetlabs.ru> |
net/sfc: improve logging in MAE backend of flow API
Errors detected during parsing of pattern items and actions are reflected by setting RTE error, but the name of the bad element is not disclosed,
net/sfc: improve logging in MAE backend of flow API
Errors detected during parsing of pattern items and actions are reflected by setting RTE error, but the name of the bad element is not disclosed, thus leaving the user to join the dots themselves. Adjust the code to log missing information.
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru> Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Reviewed-by: Andy Moreton <amoreton@xilinx.com>
show more ...
|
#
5cb47462 |
| 02-Jul-2021 |
Igor Romanov <igor.romanov@oktetlabs.ru> |
net/sfc: support count action in flow query
The query reports the number of hits for a counter associated with a flow rule.
Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru> Signed-off-by: An
net/sfc: support count action in flow query
The query reports the number of hits for a counter associated with a flow rule.
Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru> Signed-off-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Reviewed-by: Andy Moreton <amoreton@xilinx.com> Reviewed-by: Ivan Malov <ivan.malov@oktetlabs.ru>
show more ...
|
#
98d26ef7 |
| 11-Mar-2021 |
Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> |
net/sfc: update copyright year
Bump copyright year to 2021.
Signed-off-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
|
#
dadff137 |
| 20-Oct-2020 |
Ivan Malov <ivan.malov@oktetlabs.ru> |
net/sfc: support encap flow items in transfer rules
Add support for flow items VXLAN, Geneve and NVGRE to MAE-specific RTE flow implementation.
Having support for these items implies the ability to
net/sfc: support encap flow items in transfer rules
Add support for flow items VXLAN, Geneve and NVGRE to MAE-specific RTE flow implementation.
Having support for these items implies the ability to insert so-called outer MAE rules and refer to them in MAE action rules. The patch takes care of all necessary facilities to do that.
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Andy Moreton <amoreton@xilinx.com>
show more ...
|
#
b61e717a |
| 20-Oct-2020 |
Ivan Malov <ivan.malov@oktetlabs.ru> |
net/sfc: add facilities to handle bundles of actions
There are MAE actions which do not have uniform counterparts in terms of RTE flow. However, there are bundles of RTE flow actions which can be co
net/sfc: add facilities to handle bundles of actions
There are MAE actions which do not have uniform counterparts in terms of RTE flow. However, there are bundles of RTE flow actions which can be considered as such counterparts.
Implement facilities to handle related RTE flow actions as parts of a whole. These facilities will be used by a later patch to add support for VLAN PUSH actions bundle.
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Andy Moreton <amoreton@xilinx.com>
show more ...
|
#
041f22ec |
| 20-Oct-2020 |
Ivan Malov <ivan.malov@oktetlabs.ru> |
net/sfc: implement flow insert/remove in MAE backend
Exercise action set allocation / release and action rule insertion / removal in order to let flow API callers actually get created flows function
net/sfc: implement flow insert/remove in MAE backend
Exercise action set allocation / release and action rule insertion / removal in order to let flow API callers actually get created flows functioning.
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Andy Moreton <amoreton@xilinx.com>
show more ...
|
#
662286ae |
| 20-Oct-2020 |
Ivan Malov <ivan.malov@oktetlabs.ru> |
net/sfc: add actions parsing stub to MAE backend
If parsing a flow results in an action set specification identical to an already existing one, duplication will be avoided by reusing the list entry
net/sfc: add actions parsing stub to MAE backend
If parsing a flow results in an action set specification identical to an already existing one, duplication will be avoided by reusing the list entry of the latter. Using an attach helper and a reference counter is meant to serve the said purpose.
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Andy Moreton <amoreton@xilinx.com>
show more ...
|
#
8b61dd99 |
| 20-Oct-2020 |
Ivan Malov <ivan.malov@oktetlabs.ru> |
net/sfc: add verify method to flow validate path
The new method is needed to make sure that a flow being validated will have a chance to be accepted by the FW. MAE-specific implementation of the met
net/sfc: add verify method to flow validate path
The new method is needed to make sure that a flow being validated will have a chance to be accepted by the FW. MAE-specific implementation of the method should compare the class of a rule being validated with the corresponding classes of active rules, and, if no matches found, make a request to the FW. Support for the latter will be added in future.
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Andy Moreton <amoreton@xilinx.com>
show more ...
|
#
7a25bc98 |
| 20-Oct-2020 |
Ivan Malov <ivan.malov@oktetlabs.ru> |
net/sfc: add pattern parsing stub to MAE backend
Add pattern parsing stub, define and implement flow cleanup method. The latter is needed to free any dynamic structures allocated during flow parsing
net/sfc: add pattern parsing stub to MAE backend
Add pattern parsing stub, define and implement flow cleanup method. The latter is needed to free any dynamic structures allocated during flow parsing.
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Andy Moreton <amoreton@xilinx.com>
show more ...
|
#
01628fc5 |
| 20-Oct-2020 |
Ivan Malov <ivan.malov@oktetlabs.ru> |
net/sfc: add concept of MAE (transfer) rules
Define the corresponding specification structure and make the code identify MAE rules by testing transfer attribute presence. Also, add a priority level
net/sfc: add concept of MAE (transfer) rules
Define the corresponding specification structure and make the code identify MAE rules by testing transfer attribute presence. Also, add a priority level check.
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Andy Moreton <amoreton@xilinx.com>
show more ...
|
#
92a15fc5 |
| 24-Sep-2020 |
Igor Romanov <igor.romanov@oktetlabs.ru> |
net/sfc: fix RSS hash offload if queue action is used
When RSS hash offload is requested, the ingress filters that forward packets to an RX queue must have an RSS context assigned to them to calcula
net/sfc: fix RSS hash offload if queue action is used
When RSS hash offload is requested, the ingress filters that forward packets to an RX queue must have an RSS context assigned to them to calculate RSS hash, which was not always provided.
Fix it by creating a dummy RSS context that forwards packets to the same queue and assign it to created by flow API filters when RSS hash offload is enabled. RSS key and hash functions from default RSS context are used.
Fixes: 5d308972954c ("ethdev: add mbuf RSS update as an offload") Cc: stable@dpdk.org
Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
show more ...
|
#
a0147be5 |
| 30-Mar-2020 |
Andrew Rybchenko <arybchenko@solarflare.com> |
net/sfc: add Xilinx copyright
Xilinx acquired Solarflare in 2019.
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Acked-by: James Fox <jamesfox@xilinx.com>
|
#
2e2e5bdf |
| 05-Mar-2020 |
Ivan Malov <ivan.malov@oktetlabs.ru> |
net/sfc: generalise flow pattern item processing
This is needed to reuse pattern processing engine for MAE.
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru> Signed-off-by: Andrew Rybchenko <aryb
net/sfc: generalise flow pattern item processing
This is needed to reuse pattern processing engine for MAE.
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
show more ...
|