net/mlx5: Add HW steering low level support
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v6 Latest18 patches 18 repliesIn review
- v518 patches 0 repliesSuperseded
- v418 patches 0 repliesSuperseded
Earlier versions · 3
| Version | Posted | Patches | Replies | Status |
|---|---|---|---|---|
| v3 | 18 patches | 0 replies | Superseded | |
| v2 | 19 patches | 0 replies | Superseded | |
| v1 | 19 patches | 0 replies | Superseded |
Changes in v6 from the cover letter
-Fix meson style and improve configure
-Checkpatch and compilation fixes
-Fix action number issue
Patches in v6 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/18 | net/mlx5: split flow item translationdrivers/ | +979 | 1 reply | |
| 2/18 | net/mlx5: split flow item matcher and value translationdrivers/ drivers/ | +1185 | 1 reply | |
| 3/18 | net/mlx5: add hardware steering item translation functiondrivers/ drivers/ drivers/ | +155 | 1 reply | |
| 4/18 | net/mlx5: add port to metadata conversiondrivers/ drivers/ drivers/ +2 more | +97 | 1 reply | |
| 5/18 | common/mlx5: query set capability of registersdrivers/ drivers/ drivers/ | +73 | 1 reply | |
| 6/18 | net/mlx5: provide the available tag registersdrivers/ drivers/ drivers/ +4 more | +121 | 1 reply | |
| 7/18 | net/mlx5: Add additional glue functions for HWSdrivers/ drivers/ | +131 | 1 reply | |
| 8/18 | net/mlx5/hws: Add HWS command layerdrivers/ drivers/ drivers/ | +1775 | 1 reply | |
| 9/18 | net/mlx5/hws: Add HWS pool and buddydrivers/ drivers/ drivers/ +1 more | +1046 | 1 reply | |
| 10/18 | net/mlx5/hws: Add HWS send layerdrivers/ drivers/ | +1119 | 1 reply | |
| 11/18 | net/mlx5/hws: Add HWS definer layerdoc/ doc/ drivers/ +1 more | +2555 | 1 reply | |
| 12/18 | net/mlx5/hws: Add HWS context objectdrivers/ drivers/ | +263 | 1 reply | |
| 13/18 | net/mlx5/hws: Add HWS table objectdrivers/ drivers/ | +292 | 1 reply | |
| 14/18 | net/mlx5/hws: Add HWS matcher objectdrivers/ drivers/ drivers/ | +997 | 1 reply | |
| 15/18 | net/mlx5/hws: Add HWS rule objectdrivers/ drivers/ | +578 | 1 reply | |
| 16/18 | net/mlx5/hws: Add HWS action objectdrivers/ drivers/ drivers/ +1 more | +3084 | 0 replies | |
| 17/18 | net/mlx5/hws: Add HWS debug layerdrivers/ drivers/ | +490 | 1 reply | |
| 18/18 | net/mlx5/hws: Enable HWSdoc/ doc/ drivers/ +11 more | +326 | 1 reply |
Reviews trailers per patch
17 of 18 patches have a Reviewed-by or Acked-by.
| Patch | Viacheslav Ovsiienko |
|---|---|
| 1/18 | A-b |
| 2/18 | A-b |
| 3/18 | A-b |
| 4/18 | A-b |
| 5/18 | A-b |
| 6/18 | A-b |
| 7/18 | A-b |
| 8/18 | A-b |
| 9/18 | A-b |
| 10/18 | A-b |
| 11/18 | A-b |
| 12/18 | A-b |
| 13/18 | A-b |
| 14/18 | A-b |
| 15/18 | A-b |
| 16/18 | |
| 17/18 | A-b |
| 18/18 | A-b |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [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.cSignature · 1 line
2.18.1