[PATCH 0/5] net/mlx5: support count and age actions on root group

Dariusz Sosnowski dsosnowski at nvidia.com
Tue Nov 4 18:46:07 CET 2025


When working with HW Steering flow engine (HWS, dv_flow_en=2),
mlx5 PMD does not support using count and age flow actions
on flow group 0 i.e., root table.
Flow rules on root table are special in a sense that
they are created through mlx5 kernel driver using rdma-core mlx5dv_create_flow() API.
This API however does not support using counters from FW-allocated counter bulks
which contain more than 1 counter (extensively used with HWS to optimize allocations).
This affects age flow action as well, because it's implementation in mlx5 PMD
relies on counters.

rdma-core version v60.0 added a new flow action type to mlx5dv_create_flow() API -
MLX5DV_FLOW_ACTION_COUNTERS_DEVX_WITH_OFFSET - which allows the use of counters
from bigger FW-allocated counter bulks. This in turn allows mlx5 PMD to extend
count and age flow action support to group 0.

This patchset implements that support. Patchset contains:

- Patch 1 - Adds detection of MLX5DV_FLOW_ACTION_COUNTERS_DEVX_WITH_OFFSET in rdma-core at build time.
- Patch 2 - Adds support for counter action in HWS layer whenever MLX5DV_FLOW_ACTION_COUNTERS_DEVX_WITH_OFFSET is available.
- Patch 3-4 - Small reworks and fixes which allow cleaner implementation of count/age support.
- Patch 5 - Enables support of count and age flow action in group 0, in flow API implementation with HWS.

Dariusz Sosnowski (5):
  common/mlx5: detect DevX counters support in rdma-core
  net/mlx5/hws: support counter from DevX bulk on root
  net/mlx5: rework root group checks in table create
  net/mlx5: improve error reporting on masked indirect actions
  net/mlx5: support count and age on root group

 doc/guides/nics/mlx5.rst               |  34 +++++--
 doc/guides/rel_notes/release_25_11.rst |   4 +
 drivers/common/mlx5/linux/meson.build  |   2 +
 drivers/net/mlx5/hws/mlx5dr.h          |  14 +++
 drivers/net/mlx5/hws/mlx5dr_action.c   |  19 ++--
 drivers/net/mlx5/mlx5_flow.h           |  17 ++++
 drivers/net/mlx5/mlx5_flow_hw.c        | 136 ++++++++++++++-----------
 drivers/net/mlx5/mlx5_hws_cnt.c        |  43 ++++++--
 drivers/net/mlx5/mlx5_hws_cnt.h        |  17 +++-
 9 files changed, 196 insertions(+), 90 deletions(-)

--
2.39.5



More information about the dev mailing list