[v6 00/18] net/mlx5: Add HW steering low level support
Raslan Darawsheh
rasland at nvidia.com
Mon Oct 24 12:56:43 CEST 2022
Hi,
> -----Original Message-----
> From: Alex Vesker <valex at nvidia.com>
> Sent: Thursday, October 20, 2022 6:58 PM
> To: Alex Vesker <valex at nvidia.com>; Slava Ovsiienko
> <viacheslavo at nvidia.com>; NBU-Contact-Thomas Monjalon (EXTERNAL)
> <thomas at monjalon.net>; Suanming Mou <suanmingm at nvidia.com>
> Cc: dev at dpdk.org; Ori Kam <orika at nvidia.com>
> Subject: [v6 00/18] net/mlx5: Add HW steering low level support
>
> Mellanox ConnetX devices supports packet matching, packet modification
> and redirection. These functionalities are also referred to as flow-steering.
> To configure a steering rule, the rule is written to the device owned memory,
> this memory is accessed and cached by the device when processing a packet.
>
> The highlight of this patchset is supporting HW Steering (HWS) which is the
> new technology supported in new ConnectX devices, HWS allows configuring
> steering rules directly to the HW using special HW queues with minimal CPU
> effort.
>
> This patchset is the internal low layer implementation for HWS used by the
> mlx5 PMD. The mlx5dr (direct rule) is layer that bridges between the PMD
> and the HW by configuring the HW offloads based on the PMD logic
>
> v2:
> Fix check patch and cosmetic changes
>
> v3:
> -Fix unsupported items
> -Fix compilation with mlx5dv dependency
>
> v4:
> -Fix compile on Windows
>
> v5:
> -Fix compile on old rdma-core or no rdma core
>
> v6:
> -Fix meson style and improve configure
> -Checkpatch and compilation fixes
> -Fix action number issue
>
> Alex Vesker (8):
> net/mlx5: Add additional glue functions for HWS
> net/mlx5/hws: Add HWS send layer
> net/mlx5/hws: Add HWS definer layer
> net/mlx5/hws: Add HWS context object
> net/mlx5/hws: Add HWS table object
> net/mlx5/hws: Add HWS matcher object
> net/mlx5/hws: Add HWS rule object
> net/mlx5/hws: Enable HWS
>
> Bing Zhao (2):
> common/mlx5: query set capability of registers
> net/mlx5: provide the available tag registers
>
> Dariusz Sosnowski (1):
> net/mlx5: add port to metadata conversion
>
> Erez Shitrit (3):
> net/mlx5/hws: Add HWS command layer
> net/mlx5/hws: Add HWS pool and buddy
> net/mlx5/hws: Add HWS action object
>
> Hamdan Igbaria (1):
> net/mlx5/hws: Add HWS debug layer
>
> Suanming Mou (3):
> net/mlx5: split flow item translation
> net/mlx5: split flow item matcher and value translation
> net/mlx5: add hardware steering item translation function
>
> doc/guides/nics/features/default.ini | 1 +
> doc/guides/nics/features/mlx5.ini | 1 +
> doc/guides/nics/mlx5.rst | 5 +-
> doc/guides/rel_notes/release_22_11.rst | 4 +
> drivers/common/mlx5/linux/meson.build | 11 +-
> drivers/common/mlx5/linux/mlx5_glue.c | 121 +-
> drivers/common/mlx5/linux/mlx5_glue.h | 17 +
> drivers/common/mlx5/mlx5_devx_cmds.c | 30 +
> drivers/common/mlx5/mlx5_devx_cmds.h | 2 +
> drivers/common/mlx5/mlx5_prm.h | 652 ++++-
> drivers/net/mlx5/hws/meson.build | 18 +
> drivers/net/mlx5/{mlx5_dr.h => hws/mlx5dr.h} | 201 +-
> drivers/net/mlx5/hws/mlx5dr_action.c | 2237 +++++++++++++++
> drivers/net/mlx5/hws/mlx5dr_action.h | 253 ++
> drivers/net/mlx5/hws/mlx5dr_buddy.c | 200 ++
> drivers/net/mlx5/hws/mlx5dr_buddy.h | 22 +
> drivers/net/mlx5/hws/mlx5dr_cmd.c | 948 +++++++
> drivers/net/mlx5/hws/mlx5dr_cmd.h | 230 ++
> drivers/net/mlx5/hws/mlx5dr_context.c | 223 ++
> drivers/net/mlx5/hws/mlx5dr_context.h | 40 +
> drivers/net/mlx5/hws/mlx5dr_debug.c | 462 ++++
> drivers/net/mlx5/hws/mlx5dr_debug.h | 28 +
> drivers/net/mlx5/hws/mlx5dr_definer.c | 1968 ++++++++++++++
> drivers/net/mlx5/hws/mlx5dr_definer.h | 585 ++++
> drivers/net/mlx5/hws/mlx5dr_internal.h | 93 +
> drivers/net/mlx5/hws/mlx5dr_matcher.c | 919 +++++++
> drivers/net/mlx5/hws/mlx5dr_matcher.h | 76 +
> drivers/net/mlx5/hws/mlx5dr_pat_arg.c | 511 ++++
> drivers/net/mlx5/hws/mlx5dr_pat_arg.h | 83 +
> drivers/net/mlx5/hws/mlx5dr_pool.c | 672 +++++
> drivers/net/mlx5/hws/mlx5dr_pool.h | 152 ++
> drivers/net/mlx5/hws/mlx5dr_rule.c | 528 ++++
> drivers/net/mlx5/hws/mlx5dr_rule.h | 50 +
> drivers/net/mlx5/hws/mlx5dr_send.c | 844 ++++++
> drivers/net/mlx5/hws/mlx5dr_send.h | 275 ++
> drivers/net/mlx5/hws/mlx5dr_table.c | 248 ++
> drivers/net/mlx5/hws/mlx5dr_table.h | 44 +
> drivers/net/mlx5/linux/mlx5_os.c | 12 +-
> drivers/net/mlx5/meson.build | 7 +-
> drivers/net/mlx5/mlx5.c | 9 +-
> drivers/net/mlx5/mlx5.h | 8 +-
> drivers/net/mlx5/mlx5_defs.h | 2 +
> drivers/net/mlx5/mlx5_devx.c | 2 +-
> drivers/net/mlx5/mlx5_dr.c | 383 ---
> drivers/net/mlx5/mlx5_flow.c | 29 +-
> drivers/net/mlx5/mlx5_flow.h | 174 +-
> drivers/net/mlx5/mlx5_flow_dv.c | 2567 +++++++++---------
> drivers/net/mlx5/mlx5_flow_hw.c | 115 +-
> 48 files changed, 14368 insertions(+), 1694 deletions(-) create mode 100644
> drivers/net/mlx5/hws/meson.build rename drivers/net/mlx5/{mlx5_dr.h =>
> hws/mlx5dr.h} (67%) create mode 100644
> drivers/net/mlx5/hws/mlx5dr_action.c
> create mode 100644 drivers/net/mlx5/hws/mlx5dr_action.h
> create mode 100644 drivers/net/mlx5/hws/mlx5dr_buddy.c
> create mode 100644 drivers/net/mlx5/hws/mlx5dr_buddy.h
> create mode 100644 drivers/net/mlx5/hws/mlx5dr_cmd.c create mode
> 100644 drivers/net/mlx5/hws/mlx5dr_cmd.h create mode 100644
> drivers/net/mlx5/hws/mlx5dr_context.c
> create mode 100644 drivers/net/mlx5/hws/mlx5dr_context.h
> create mode 100644 drivers/net/mlx5/hws/mlx5dr_debug.c
> create mode 100644 drivers/net/mlx5/hws/mlx5dr_debug.h
> create mode 100644 drivers/net/mlx5/hws/mlx5dr_definer.c
> create mode 100644 drivers/net/mlx5/hws/mlx5dr_definer.h
> create mode 100644 drivers/net/mlx5/hws/mlx5dr_internal.h
> create mode 100644 drivers/net/mlx5/hws/mlx5dr_matcher.c
> create mode 100644 drivers/net/mlx5/hws/mlx5dr_matcher.h
> create mode 100644 drivers/net/mlx5/hws/mlx5dr_pat_arg.c
> create mode 100644 drivers/net/mlx5/hws/mlx5dr_pat_arg.h
> create mode 100644 drivers/net/mlx5/hws/mlx5dr_pool.c
> create mode 100644 drivers/net/mlx5/hws/mlx5dr_pool.h
> create mode 100644 drivers/net/mlx5/hws/mlx5dr_rule.c
> create mode 100644 drivers/net/mlx5/hws/mlx5dr_rule.h
> create mode 100644 drivers/net/mlx5/hws/mlx5dr_send.c
> create mode 100644 drivers/net/mlx5/hws/mlx5dr_send.h
> create mode 100644 drivers/net/mlx5/hws/mlx5dr_table.c
> create mode 100644 drivers/net/mlx5/hws/mlx5dr_table.h
> delete mode 100644 drivers/net/mlx5/mlx5_dr.c
>
> --
> 2.18.1
Series applied to next-net-mlx with small modifications to the commit logs,
Kindest regards,
Raslan Darawsheh
More information about the dev
mailing list