Skip to content

[mlx5] add support for offloading check_pkt_len

Amir Tzin requested to merge amirtz/centos-stream-9:2028809 into main

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(-)

Merge request reports