[06/10] net/mlx5: introduce new mlx5 flow fate
Checks
Commit Message
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 <michaelsav@nvidia.com>
---
drivers/net/mlx5/mlx5_flow.h | 3 ++-
drivers/net/mlx5/mlx5_flow_dv.c | 6 ++++++
2 files changed, 8 insertions(+), 1 deletion(-)
@@ -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. */
@@ -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;