Add element MLX5_FLOW_FATE_SEND_TO_KERNEL in enum mlx5_flow_fate_type. For that purpose field 'fate_action' in structure mlx5_flow_handle must be expanded from 3 bits to 4 bits.
Signed-off-by: Michael Savisko <michael...@nvidia.com> --- drivers/net/mlx5/mlx5_flow.h | 3 ++- drivers/net/mlx5/mlx5_flow_dv.c | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/net/mlx5/mlx5_flow.h b/drivers/net/mlx5/mlx5_flow.h index 3afdd46421..860c6cd2ad 100644 --- a/drivers/net/mlx5/mlx5_flow.h +++ b/drivers/net/mlx5/mlx5_flow.h @@ -476,6 +476,7 @@ enum mlx5_flow_fate_type { MLX5_FLOW_FATE_DEFAULT_MISS, MLX5_FLOW_FATE_SHARED_RSS, MLX5_FLOW_FATE_MTR, + MLX5_FLOW_FATE_SEND_TO_KERNEL, MLX5_FLOW_FATE_MAX, }; @@ -708,7 +709,7 @@ struct mlx5_flow_handle { void *drv_flow; /**< pointer to driver flow object. */ uint32_t split_flow_id:27; /**< Sub flow unique match flow id. */ uint32_t is_meter_flow_id:1; /**< Indicate if flow_id is for meter. */ - uint32_t fate_action:3; /**< Fate action type. */ + uint32_t fate_action:4; /**< Fate action type. */ union { uint32_t rix_hrxq; /**< Hash Rx queue object index. */ uint32_t rix_jump; /**< Index to the jump action resource. */ diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index 7e0b13b8b1..8f8a1208e9 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -14735,6 +14735,12 @@ flow_dv_fate_resource_release(struct rte_eth_dev *dev, flow_dv_port_id_action_resource_release(dev, handle->rix_port_id_action); break; + case MLX5_FLOW_FATE_SEND_TO_KERNEL: + /* In case of send_to_kernel action the actual release of + * resource is done when all shared DR resources are released + * since this resource is created once and always reused. + */ + break; default: DRV_LOG(DEBUG, "Incorrect fate action:%d", handle->fate_action); break; -- 2.27.0