To support more meters and better performance, MLX HW provide ASO flow meter. It can expose millions of ASO flow meter context's in HW. This ASO object can allocate the large bulk meter objects. This patch set implement the ASO flow meter for mlx5 driver. MLX5 PMD driver will be responsible for ASO flow meter manage to HW.
V2: Fix compile error issue (mlx5_glue->destroy_flow_action) V3: Fix comments. Li Zhang (10): net/mlx5: optimize meter statistics common/mlx5: add definitions for ASO flow meter common/mlx5: add read ASO flow meter HCA capability common/mlx5: add DevX API to create ASO flow meter object net/mlx5: flow meter pool to manage meter object net/mlx5: initialize the flow meter ASO SQ net/mlx5: aso flow meter send WQE and CQE handle net/mlx5: add support of ASO meter action net/mlx5: make ASO meter queue thread-safe net/mlx5: allow multiple flow tables on the same level Shun Hao (3): common/mlx5: add color register idle bits definition net/mlx5: fix meter statistics net/mlx5: use mask for meter register setting Suanming Mou (1): net/mlx5: support three level table walk doc/guides/nics/mlx5.rst | 6 + drivers/common/mlx5/mlx5_devx_cmds.c | 68 ++ drivers/common/mlx5/mlx5_devx_cmds.h | 26 +- drivers/common/mlx5/mlx5_prm.h | 81 +- drivers/common/mlx5/version.map | 1 + drivers/net/mlx5/linux/mlx5_os.c | 20 +- drivers/net/mlx5/meson.build | 2 +- drivers/net/mlx5/mlx5.c | 108 ++- drivers/net/mlx5/mlx5.h | 258 +++++- drivers/net/mlx5/mlx5_flow.c | 334 +++++-- drivers/net/mlx5/mlx5_flow.h | 212 ++--- .../mlx5/{mlx5_flow_age.c => mlx5_flow_aso.c} | 289 +++++- drivers/net/mlx5/mlx5_flow_dv.c | 792 +++++++++++----- drivers/net/mlx5/mlx5_flow_meter.c | 873 ++++++++++++------ drivers/net/mlx5/mlx5_utils.h | 90 ++ 15 files changed, 2330 insertions(+), 830 deletions(-) rename drivers/net/mlx5/{mlx5_flow_age.c => mlx5_flow_aso.c} (65%) -- 2.27.0