[05/10] net/mlx5: introduce new mlx5 action flag
Checks
Commit Message
Add new mlx5 action flag MLX5_FLOW_ACTION_SEND_TO_KERNEL.
Signed-off-by: Michael Savisko <michaelsav@nvidia.com>
---
drivers/net/mlx5/mlx5_flow.h | 4 +++-
drivers/net/mlx5/mlx5_flow_dv.c | 11 +++++++++++
2 files changed, 14 insertions(+), 1 deletion(-)
@@ -274,12 +274,14 @@ enum mlx5_feature_name {
#define MLX5_FLOW_ACTION_MODIFY_FIELD (1ull << 39)
#define MLX5_FLOW_ACTION_METER_WITH_TERMINATED_POLICY (1ull << 40)
#define MLX5_FLOW_ACTION_CT (1ull << 41)
+#define MLX5_FLOW_ACTION_SEND_TO_KERNEL (1ull << 42)
#define MLX5_FLOW_FATE_ACTIONS \
(MLX5_FLOW_ACTION_DROP | MLX5_FLOW_ACTION_QUEUE | \
MLX5_FLOW_ACTION_RSS | MLX5_FLOW_ACTION_JUMP | \
MLX5_FLOW_ACTION_DEFAULT_MISS | \
- MLX5_FLOW_ACTION_METER_WITH_TERMINATED_POLICY)
+ MLX5_FLOW_ACTION_METER_WITH_TERMINATED_POLICY | \
+ MLX5_FLOW_ACTION_SEND_TO_KERNEL)
#define MLX5_FLOW_FATE_ESWITCH_ACTIONS \
(MLX5_FLOW_ACTION_DROP | MLX5_FLOW_ACTION_PORT_ID | \
@@ -7953,6 +7953,12 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
* list it here as a supported type
*/
break;
+#ifdef HAVE_MLX5DV_DR_ACTION_CREATE_DEST_ROOT_TABLE
+ case RTE_FLOW_ACTION_TYPE_SEND_TO_KERNEL:
+ action_flags |= MLX5_FLOW_ACTION_SEND_TO_KERNEL;
+ ++actions_n;
+ break;
+#endif
default:
return rte_flow_error_set(error, ENOTSUP,
RTE_FLOW_ERROR_TYPE_ACTION,
@@ -13677,6 +13683,11 @@ flow_dv_translate(struct rte_eth_dev *dev,
actions_n++;
action_flags |= MLX5_FLOW_ACTION_CT;
break;
+ case RTE_FLOW_ACTION_TYPE_SEND_TO_KERNEL:
+ return rte_flow_error_set(error, ENOTSUP,
+ RTE_FLOW_ERROR_TYPE_ACTION,
+ NULL, "send to kernel action is not supported.");
+ break;
case RTE_FLOW_ACTION_TYPE_END:
actions_end = true;
if (mhdr_res->actions_num) {