#
047d7032 |
| 12-Feb-2024 |
Stephen Hemminger <stephen@networkplumber.org> |
common/sfc_efx/base: use C11 static assert
The sfc base code had its own definition of static assertions using the out of bound array access hack. Replace it with a static_assert like rte_common.h.
common/sfc_efx/base: use C11 static assert
The sfc base code had its own definition of static assertions using the out of bound array access hack. Replace it with a static_assert like rte_common.h.
The use of null pointer to compute offset is not always a constant in older versions of clang. Use standard offsetof() instead.
Fixes: f67e4719147d ("net/sfc/base: fix coding style") Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
002f591f |
| 27-Sep-2023 |
Ivan Malov <ivan.malov@arknetworks.am> |
net/sfc: support packet replay in transfer flows
Packet replay enables users to leverage multiple counters in one flow and allows to request delivery to multiple ports.
A given flow rule may use ei
net/sfc: support packet replay in transfer flows
Packet replay enables users to leverage multiple counters in one flow and allows to request delivery to multiple ports.
A given flow rule may use either one inline count action and multiple indirect counters or just multiple indirect counters. The inline count action (if any) must come before the first delivery action or before the first indirect count action, whichever comes earlier.
These are some testpmd examples of supported multi-count and mirroring use cases:
flow create 0 transfer pattern represented_port ethdev_port_id is 0 / end \ actions port_representor port_id 0 / port_representor port_id 1 / end
or
flow indirect_action 0 create action_id 239 transfer action count / end
flow create 0 transfer pattern represented_port ethdev_port_id is 0 / end \ actions count / port_representor port_id 0 / indirect 239 / \ port_representor port_id 1 / end
or
flow indirect_action 0 create action_id 239 transfer action count / end
flow create 0 transfer pattern represented_port ethdev_port_id is 0 / end \ actions indirect 239 / port_representor port_id 0 / indirect 239 / \ port_representor port_id 1 / end
and the likes.
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 ...
|
#
8763593f |
| 10-Aug-2023 |
Ivan Malov <ivan.malov@arknetworks.am> |
net/sfc: support updating indirect VXLAN encap action
Such updates are helpful as they let applications avoid costly flow re-insertions when the header data changes.
Signed-off-by: Ivan Malov <ivan
net/sfc: support updating indirect VXLAN encap action
Such updates are helpful as they let applications avoid costly flow re-insertions when the header data changes.
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 ...
|
#
f79ce621 |
| 28-Jun-2023 |
Artemii Morozov <artemii.morozov@arknetworks.am> |
net/sfc: support IPv4 fragment matching in transfer rules
This patch adds the support for IPv4 fragmented packets, but with some limitations: for non-zero fragment offset an exact match is not allow
net/sfc: support IPv4 fragment matching in transfer rules
This patch adds the support for IPv4 fragmented packets, but with some limitations: for non-zero fragment offset an exact match is not allowed, but ranges are allowed.
Signed-off-by: Artemii Morozov <artemii.morozov@arknetworks.am> Reviewed-by: Viacheslav Galaktionov <viacheslav.galaktionov@arknetworks.am> Reviewed-by: Andy Moreton <amoreton@xilinx.com>
show more ...
|
#
e5e5c127 |
| 23-Jun-2023 |
Artemii Morozov <artemii.morozov@arknetworks.am> |
common/sfc_efx/base: support to enable VLAN stripping
To enable VLAN stripping, two conditions must be met: the corresponding flag must be set and the appropriate Rx prefix should be requested. VLAN
common/sfc_efx/base: support to enable VLAN stripping
To enable VLAN stripping, two conditions must be met: the corresponding flag must be set and the appropriate Rx prefix should be requested. VLAN stripping is supported on EF100.
Signed-off-by: Artemii Morozov <artemii.morozov@arknetworks.am> Reviewed-by: Ivan Malov <ivan.malov@arknetworks.am> Reviewed-by: Andy Moreton <amoreton@xilinx.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
bf10e750 |
| 23-Jun-2023 |
Artemii Morozov <artemii.morozov@arknetworks.am> |
common/sfc_efx/base: report VLAN stripping capability
These changes are necessary in order to add support for stripping VLAN tags in the future.
Signed-off-by: Artemii Morozov <artemii.morozov@arkn
common/sfc_efx/base: report VLAN stripping capability
These changes are necessary in order to add support for stripping VLAN tags in the future.
Signed-off-by: Artemii Morozov <artemii.morozov@arknetworks.am> Reviewed-by: Ivan Malov <ivan.malov@arknetworks.am> Reviewed-by: Andy Moreton <amoreton@xilinx.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
718263c4 |
| 22-Jun-2023 |
Roman Zhukov <roman.zhukov@arknetworks.am> |
common/sfc_efx/base: support to configure MAC to keep FCS
Drivers cannot determine if received packet includes the FCS or not. Only packets with an external port have the FCS included and functions
common/sfc_efx/base: support to configure MAC to keep FCS
Drivers cannot determine if received packet includes the FCS or not. Only packets with an external port have the FCS included and functions without link control privilege cannot determine the MAC configuration.
This patch is trying to make assumptions that: if PF is the only function (there are no VFs or additional PFs); it can set the MAC configuration and it never expects packets it sends to be looped back then it can assume that changed the MAC configuration to include the FCS is safe and that all received packets will include their FCS.
Signed-off-by: Roman Zhukov <roman.zhukov@arknetworks.am> Signed-off-by: Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am> Reviewed-by: Andy Moreton <amoreton@xilinx.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
d23d5966 |
| 22-Jun-2023 |
Roman Zhukov <roman.zhukov@arknetworks.am> |
common/sfc_efx/base: detect and report keep FCS support
A new variable was added to efx_nic_cfg_s to detect and report if FCS is supported by FW.
Signed-off-by: Roman Zhukov <roman.zhukov@arknetwor
common/sfc_efx/base: detect and report keep FCS support
A new variable was added to efx_nic_cfg_s to detect and report if FCS is supported by FW.
Signed-off-by: Roman Zhukov <roman.zhukov@arknetworks.am> Signed-off-by: Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am> Reviewed-by: Viacheslav Galaktionov <viacheslav.galaktionov@arknetworks.am> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
94626988 |
| 22-Jun-2023 |
Sandilya Bhagi <sbhagi@solarflare.com> |
common/sfc_efx/base: discover NIC partitioning mode
NIC Partitioning mode in SFC devices means multiple PFs per network port. When NIC Partitioning is configured, apart from the privileged adapter(s
common/sfc_efx/base: discover NIC partitioning mode
NIC Partitioning mode in SFC devices means multiple PFs per network port. When NIC Partitioning is configured, apart from the privileged adapter(s) the other unprivileged adapter(s) will share the same physical port. Determining NIC Partitioning mode is required to take necessary action(s) for unprivileged adapter to work seamlessly. NIC Partitioning is determined using heuristic approach. If the physical ports are shared between PFs then either NIC Partitioning or SR-IOV is in use.
Signed-off-by: Sandilya Bhagi <sbhagi@solarflare.com> Signed-off-by: Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am> Reviewed-by: Andy Moreton <amoreton@xilinx.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
f4a6d074 |
| 07-Jun-2023 |
Ivan Malov <ivan.malov@arknetworks.am> |
common/sfc_efx/base: support conntrack assistance counters
Counters that can be referenced by HW conntrack assistance table work similar to those of the action rules. However, their IDs belong to a
common/sfc_efx/base: support conntrack assistance counters
Counters that can be referenced by HW conntrack assistance table work similar to those of the action rules. However, their IDs belong to a separate (CT-specific) namespace.
These are 1-bit saturating counters with no byte count.
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 ...
|
#
d19e7dd9 |
| 07-Jun-2023 |
Ivan Malov <ivan.malov@arknetworks.am> |
common/sfc_efx/base: rework MAE counter provisioning helpers
Doing so is required to disambiguate counters of different types supported by the match-action engine (MAE) on EF100.
Currently, the cod
common/sfc_efx/base: rework MAE counter provisioning helpers
Doing so is required to disambiguate counters of different types supported by the match-action engine (MAE) on EF100.
Currently, the code only supports action rule counters, but MAE may also support conntrack assistance counters. Add type-aware allocate and free MCDI handlers and extend reporting of counter limits accordingly.
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 ...
|
#
6cefdea5 |
| 07-Jun-2023 |
Ivan Malov <ivan.malov@arknetworks.am> |
common/sfc_efx/base: support NAT edits in MAE
NAT goes after IP TTL decrement. It can operate on the outermost frame only. In the case of prior decapsulation, that maps to the frame which was (origi
common/sfc_efx/base: support NAT edits in MAE
NAT goes after IP TTL decrement. It can operate on the outermost frame only. In the case of prior decapsulation, that maps to the frame which was (originally) the inner one. Input data for the action comes from the response of the HW conntrack assistance table hit.
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 ...
|
#
be698f34 |
| 07-Jun-2023 |
Ivan Malov <ivan.malov@arknetworks.am> |
common/sfc_efx/base: support to request MAE conntrack lookup
Such can be initiated when a packet hits an outer rule.
Signed-off-by: Ivan Malov <ivan.malov@arknetworks.am> Reviewed-by: Andy Moreton
common/sfc_efx/base: support to request MAE conntrack lookup
Such can be initiated when a packet hits an outer rule.
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 ...
|
#
93c5d2c6 |
| 07-Jun-2023 |
Ivan Malov <ivan.malov@arknetworks.am> |
common/sfc_efx/base: match on conntrack mark in action rules
EF100 match-action engine (MAE) has conntrack assistance table. A hit in this table can provide a mark value for the following lookup sta
common/sfc_efx/base: match on conntrack mark in action rules
EF100 match-action engine (MAE) has conntrack assistance table. A hit in this table can provide a mark value for the following lookup stage, which is action rule lookup.
Provide support for setting match on conntrack mark.
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 ...
|
#
d1b920b8 |
| 07-Jun-2023 |
Ivan Malov <ivan.malov@arknetworks.am> |
common/sfc_efx/base: support to read back MAE match criteria
Later patches of the series provide support for HW conntrack assistance in the DPDK driver. In order to detect flows that are subject to
common/sfc_efx/base: support to read back MAE match criteria
Later patches of the series provide support for HW conntrack assistance in the DPDK driver. In order to detect flows that are subject to such assistance, the driver needs to retrieve 5-tuple match data from an already constructed specification.
A dedicated API to selectively read back match criteria will make a neat solution to keep the implementation less complex.
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 ...
|
#
c354c7c2 |
| 07-Jun-2023 |
Ivan Malov <ivan.malov@arknetworks.am> |
common/sfc_efx/base: support to clone MAE match specs
The DPDK driver would like to have a means to make a copy of the action rule match specification before trying to dissect it to possibly move ou
common/sfc_efx/base: support to clone MAE match specs
The DPDK driver would like to have a means to make a copy of the action rule match specification before trying to dissect it to possibly move out the per-connection 5-tuple data from it to build up an entry in the HW conntrack assistance table.
Making such a copy at the end of parsing should be preferred over maintaining DPDK-level structures because the resulting code is easier on eyes and less prone to errors in this case.
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 ...
|
#
a5a8beb5 |
| 07-Jun-2023 |
Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am> |
common/sfc_efx/base: support to delete entry from HW table
API allows to delete entry from any supported HW table.
Signed-off-by: Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am> Reviewed-b
common/sfc_efx/base: support to delete entry from HW table
API allows to delete entry from any supported HW table.
Signed-off-by: Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am> Reviewed-by: Ivan Malov <ivan.malov@arknetworks.am> Reviewed-by: Andy Moreton <amoreton@xilinx.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
8ee47d82 |
| 07-Jun-2023 |
Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am> |
common/sfc_efx/base: support to insert data to HW table
API allows to insert data to any supported HW table.
Signed-off-by: Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am> Reviewed-by: Iva
common/sfc_efx/base: support to insert data to HW table
API allows to insert data to any supported HW table.
Signed-off-by: Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am> Reviewed-by: Ivan Malov <ivan.malov@arknetworks.am> Reviewed-by: Viacheslav Galaktionov <viacheslav.galaktionov@arknetworks.am> Reviewed-by: Andy Moreton <amoreton@xilinx.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
d51545f4 |
| 07-Jun-2023 |
Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am> |
common/sfc_efx/base: support to get HW table descriptor
Table's descriptor and fields' descriptors can be taken by table ID using a new API. In the near future, only the CT table is planned to be us
common/sfc_efx/base: support to get HW table descriptor
Table's descriptor and fields' descriptors can be taken by table ID using a new API. In the near future, only the CT table is planned to be used, so only fields that are required for these purposes were added to the efx.
Signed-off-by: Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am> Reviewed-by: Viacheslav Galaktionov <viacheslav.galaktionov@arknetworks.am> Reviewed-by: Andy Moreton <amoreton@xilinx.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
9e7941d7 |
| 07-Jun-2023 |
Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am> |
common/sfc_efx/base: support to list HW tables
New MCDI Table Access API allows management of the HW tables' content. This part of API helps to list all supported tables. In the near future, only th
common/sfc_efx/base: support to list HW tables
New MCDI Table Access API allows management of the HW tables' content. This part of API helps to list all supported tables. In the near future, only the CT table is planned to be used, so only one identifier for this table was added to the efx.
New table IDs will be added as needed.
Signed-off-by: Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am> Reviewed-by: Andy Moreton <amoreton@xilinx.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
950fe1ed |
| 07-Jun-2023 |
Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am> |
common/sfc_efx/base: detect MCDI table access support
Future patches will add an implementation of MCDI Table Access API in libefx. This patch adds a way to determine if this API is supported.
Sign
common/sfc_efx/base: detect MCDI table access support
Future patches will add an implementation of MCDI Table Access API in libefx. This patch adds a way to determine if this API is supported.
Signed-off-by: Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am> Reviewed-by: Ivan Malov <ivan.malov@arknetworks.am> Reviewed-by: Andy Moreton <amoreton@xilinx.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
5efa8fc1 |
| 15-Jun-2023 |
Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am> |
net/sfc: support FEC feature
Support ethdev methods to query and set FEC information. Limitations: ignoring rte_eth_fec_get_capability() results can lead to NOFEC if the device is not started.
Sign
net/sfc: support FEC feature
Support ethdev methods to query and set FEC information. Limitations: ignoring rte_eth_fec_get_capability() results can lead to NOFEC if the device is not started.
Signed-off-by: Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am> Reviewed-by: Ivan Malov <ivan.malov@arknetworks.am> Reviewed-by: Andy Moreton <amoreton@xilinx.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@amd.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
cf1e1a8e |
| 21-May-2023 |
Ivan Malov <ivan.malov@arknetworks.am> |
net/sfc: invalidate dangling MAE flow action FW resource IDs
When reinserting a flow (on port restart, for instance) FW resource IDs found in the action set specification need to be invalidated so t
net/sfc: invalidate dangling MAE flow action FW resource IDs
When reinserting a flow (on port restart, for instance) FW resource IDs found in the action set specification need to be invalidated so that the new (reallocated) FW resource IDs can be accepted by libefx again.
Fixes: 1bbd1ec2348a ("net/sfc: support action VXLAN encap in MAE backend") Cc: stable@dpdk.org
Signed-off-by: Ivan Malov <ivan.malov@arknetworks.am> Reviewed-by: Andy Moreton <amoreton@xilinx.com> Tested-by: Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
13d3f0d2 |
| 09-Mar-2023 |
Ivan Malov <ivan.malov@arknetworks.am> |
common/sfc_efx/base: add MAE mark reset action
Previously, DPDK sfc driver received support for tunnel offload. In it, MAE needs to set intermediate mark from an outer rule (OR) recirculation ID in
common/sfc_efx/base: add MAE mark reset action
Previously, DPDK sfc driver received support for tunnel offload. In it, MAE needs to set intermediate mark from an outer rule (OR) recirculation ID in order to help the driver identify packets that hit the OR but miss on action rule (AR) lookup. But, for packets that do hit an AR, the driver wants to reset this mark so that the end receiver of traffic does not see it.
The driver has a call to request such mark reset, but it does not work as it comes via the regular mark populate API, which must not be invoked after final delivery action has been added.
Provide a suitable dedicated API for that.
Fixes: 3a73dcfdb255 ("common/sfc_efx/base: match on recirc ID in action rules") Cc: stable@dpdk.org
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 ...
|
#
05308e34 |
| 14-Jul-2022 |
Abhimanyu Saini <absaini@amd.com> |
common/sfc_efx/base: use avail and used terms for indexes
Change cidx and pidx definition to mean used queue and avail queue index respectively.
Signed-off-by: Abhimanyu Saini <absaini@amd.com> Ack
common/sfc_efx/base: use avail and used terms for indexes
Change cidx and pidx definition to mean used queue and avail queue index respectively.
Signed-off-by: Abhimanyu Saini <absaini@amd.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|