Hi, > -----Original Message----- > From: Alex Vesker <va...@nvidia.com> > Sent: Thursday, October 20, 2022 6:58 PM > To: Alex Vesker <va...@nvidia.com>; Slava Ovsiienko > <viachesl...@nvidia.com>; NBU-Contact-Thomas Monjalon (EXTERNAL) > <tho...@monjalon.net>; Suanming Mou <suanmi...@nvidia.com> > Cc: dev@dpdk.org; Ori Kam <or...@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