This patchset adds validations for flow items and actions supplied by the user to fast path async flow API functions implemented in mlx5 PMD.
- Patch 1: Adds the ability to generically calculate flow item's mask size using rte_flow_conv(). This change is used in follow up patches to check for non-zero mask in pattern template. - Patches 2-7: Prepares mlx5 PMD for adding fast path validations. Specifically: - Required functionality for validating queue indexes and target represented ports are extracted for reuse. - Additional info, required for validation, is stored in pattern and actions templates. - Introduces mlx5_fp_debug_enabled() function for checking if mlx5 PMD was compiled in debug mode. - Patch 8: Introduce validations to: - rte_flow_async_create() - rte_flow_async_create_by_index() - rte_flow_async_actions_update() - rte_flow_async_destroy() These validations are enabled if and only if RTE_LIBRTE_MLX5_DEBUG macro is defined during compilation. Depends-on: series-32087 ("net/mlx5: add match with Tx queue item") Depends-on: series-32080 ("net/mlx5: validate HWS template items") Dariusz Sosnowski (9): ethdev: support duplicating only item mask net/mlx5: extract target port validation net/mlx5: extract queue index validation net/mlx5: store pattern template items net/mlx5: store original actions in template net/mlx5: store expected type on indirect action net/mlx5: store modify field action common/mlx5: add debug mode indicator net/mlx5: add async flow operation validation doc/guides/rel_notes/release_24_07.rst | 1 + drivers/common/mlx5/mlx5_common.h | 13 + drivers/net/mlx5/mlx5_flow.c | 59 ++- drivers/net/mlx5/mlx5_flow.h | 12 + drivers/net/mlx5/mlx5_flow_hw.c | 620 +++++++++++++++++++++++-- lib/ethdev/rte_flow.c | 15 +- lib/ethdev/rte_flow.h | 12 + 7 files changed, 682 insertions(+), 50 deletions(-) -- 2.39.2