[mlx5] add support for offloading check_pkt_len
Description:
Hi,
This support is requiered for RHEL-9.2 based OCP-4.13
Dependencies:
This patch set was built on top of the following MR's:
Bugzilla:
Bugzilla: http://bugzilla.redhat.com/2028809
Upstream-status:
All patches are accepted upstream to net tree.
Each patch commit message describes its origin.
Testing:
This patch set passed incremental build testing to verify that it is bisectable.
Sanity tests ran over mlx5 drivers on x86_64 systems (using ConnectX-4/5/6),
including the following:
Ethernet:
-- IPv4 traffic (ICMP, TCP, UDP).
-- IPv6 traffic (ICMP, TCP, UDP).
VLAN:
-- IPv4 traffic (ICMP, TCP, UDP).
-- IPv6 traffic (ICMP, TCP, UDP).
RoCE:
-- RDMA (ibv_*_pingpong).
-- RDMACM (examples that comes with librdmacm packages).
Infiniband:
-- RDMA (ibv_*_pingpong).
-- RDMACM (examples that comes with librdmacm packages).
IPoIB:
-- IPv4 traffic (ICMP, TCP, UDP).
-- IPv6 traffic (ICMP, TCP, UDP).
PKey:
-- IPv4 traffic (ICMP, TCP, UDP).
-- IPv6 traffic (ICMP, TCP, UDP).
ASAP2/OVS:
-- Various sanity tests covering OVS offloads.
NFSoRDMA:
-- Discover, mount and write.
iSER:
-- Discover, login and mount.
SRP:
-- Verify srp_daemon service is up and system can discover SRP targets.
Signed-off-by: Amir Tzin atzin@redhat.com
4c2021d8 (Amir Tzin)
net/mlx5e: TC, Restore pkt rate policing support
ba7567a0 (Amir Tzin)
net/mlx5e: TC, ignore match level for post meter rules
1e434f75 (Amir Tzin)
net/mlx5e: TC, add support for meter mtu offload
7f80b563 (Amir Tzin)
net/mlx5e: meter, add mtu post meter tables
b19ceaef (Amir Tzin)
net/mlx5e: meter, refactor to allow multiple post meter tables
fec79265 (Amir Tzin)
net/mlx5: DR, Add support for range match action
72cafeb6 (Amir Tzin)
net/mlx5: DR, Add function that tells if STE miss addr has been initialized
81217d19 (Amir Tzin)
net/mlx5: DR, Some refactoring of miss address handling
f21d92e7 (Amir Tzin)
net/mlx5: DR, Manage definers with refcounts
c7e7bc90 (Amir Tzin)
net/mlx5: DR, Handle FT action in a separate function
fb3326e0 (Amir Tzin)
net/mlx5: DR, Rework is_fw_table function
2523a0a0 (Amir Tzin)
net/mlx5: DR, Add functions to create/destroy MATCH_DEFINER general object
b6465bd8 (Amir Tzin)
net/mlx5: fs, add match on ranges API
6573d3cc (Amir Tzin)
net/mlx5: mlx5_ifc updates for MATCH_DEFINER general object
4be4ee2c (Amir Tzin)
net/mlx5e: TC, allow meter jump control action
f3be5527 (Amir Tzin)
net/mlx5e: TC, init post meter rules with branching attributes
555c0450 (Amir Tzin)
net/mlx5e: TC, rename post_meter actions
f4e781cd (Amir Tzin)
net/mlx5e: TC, initialize branching action with target attr
5d0d7209 (Amir Tzin)
net/mlx5e: TC, initialize branch flow attributes
c0f39174 (Amir Tzin)
net/mlx5e: TC, set control params for branching actions
e8f36159 (Amir Tzin)
net/mlx5e: TC, validate action list per attribute
21a69137 (Amir Tzin)
net/mlx5e: TC, add terminating actions
eabaa221 (Amir Tzin)
net/mlx5e: TC, reuse flow attribute post parser processing
98d4f7ea (Amir Tzin)
net/mlx5: fs, assert null dest pointer when dest_num is 0
f5a4ad94 (Amir Tzin)
net/mlx5e: E-Switch, handle flow attribute with no destinations
89ff026c (Amir Tzin)
net/mlx5: E-Switch, Allow offloading fwd dest flow table with vport
22c3a3fb (Amir Tzin)
net/mlx5e: Replace zero-length arrays with DECLARE_FLEX_ARRAY() helper
drivers/net/ethernet/mellanox/mlx5/core/Makefile | 1 +
.../mellanox/mlx5/core/diag/fs_tracepoint.c | 16 +
.../ethernet/mellanox/mlx5/core/en/tc/act/accept.c | 1 +
.../ethernet/mellanox/mlx5/core/en/tc/act/act.c | 2 +-
.../ethernet/mellanox/mlx5/core/en/tc/act/act.h | 12 +
.../ethernet/mellanox/mlx5/core/en/tc/act/drop.c | 1 +
.../ethernet/mellanox/mlx5/core/en/tc/act/goto.c | 1 +
.../ethernet/mellanox/mlx5/core/en/tc/act/mirred.c | 7 +
.../mellanox/mlx5/core/en/tc/act/mirred_nic.c | 1 +
.../ethernet/mellanox/mlx5/core/en/tc/act/police.c | 80 +++-
.../net/ethernet/mellanox/mlx5/core/en/tc/meter.c | 39 +-
.../net/ethernet/mellanox/mlx5/core/en/tc/meter.h | 5 +-
.../ethernet/mellanox/mlx5/core/en/tc/post_meter.c | 403 +++++++++++++++----
.../ethernet/mellanox/mlx5/core/en/tc/post_meter.h | 39 +-
.../net/ethernet/mellanox/mlx5/core/en/tc_priv.h | 4 -
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 436 +++++++++++++++------
drivers/net/ethernet/mellanox/mlx5/core/en_tc.h | 9 +-
.../ethernet/mellanox/mlx5/core/eswitch_offloads.c | 38 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 14 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_core.h | 1 +
.../mellanox/mlx5/core/steering/dr_action.c | 300 +++++++++++---
.../ethernet/mellanox/mlx5/core/steering/dr_cmd.c | 77 ++++
.../ethernet/mellanox/mlx5/core/steering/dr_dbg.c | 29 +-
.../mellanox/mlx5/core/steering/dr_definer.c | 151 +++++++
.../mellanox/mlx5/core/steering/dr_domain.c | 7 +-
.../ethernet/mellanox/mlx5/core/steering/dr_rule.c | 27 +-
.../ethernet/mellanox/mlx5/core/steering/dr_ste.c | 10 +
.../ethernet/mellanox/mlx5/core/steering/dr_ste.h | 1 +
.../mellanox/mlx5/core/steering/dr_ste_v1.c | 69 ++++
.../mellanox/mlx5/core/steering/dr_ste_v1.h | 1 +
.../mellanox/mlx5/core/steering/dr_ste_v2.c | 1 +
.../mellanox/mlx5/core/steering/dr_types.h | 43 ++
.../ethernet/mellanox/mlx5/core/steering/fs_dr.c | 53 ++-
.../mlx5/core/steering/mlx5_ifc_dr_ste_v1.h | 35 ++
.../ethernet/mellanox/mlx5/core/steering/mlx5dr.h | 13 +
include/linux/mlx5/fs.h | 12 +
include/linux/mlx5/mlx5_ifc.h | 68 +++-
37 files changed, 1700 insertions(+), 307 deletions(-)