[PATCH] net/mlx5: fix HWS support for item NSH
Gavin Li
gavinl at nvidia.com
Thu May 9 14:44:47 CEST 2024
Allow item NSH in HWS and set item_flags.
Fixes: f6164649a8 ("net/mlx5/hws: support VXLAN-GPE matching")
Signed-off-by: Gavin Li <gavinl at nvidia.com>
Reviewed-by: Bing Zhao <bingz at nvidia.com>
---
drivers/net/mlx5/hws/mlx5dr_definer.c | 3 +++
drivers/net/mlx5/mlx5_flow_hw.c | 13 +++++++++++++
2 files changed, 16 insertions(+)
diff --git a/drivers/net/mlx5/hws/mlx5dr_definer.c b/drivers/net/mlx5/hws/mlx5dr_definer.c
index a0f95c6923..867393e282 100644
--- a/drivers/net/mlx5/hws/mlx5dr_definer.c
+++ b/drivers/net/mlx5/hws/mlx5dr_definer.c
@@ -3198,6 +3198,9 @@ mlx5dr_definer_conv_items_to_hl(struct mlx5dr_context *ctx,
item_flags |= MLX5_FLOW_ITEM_COMPARE;
matcher->flags |= MLX5DR_MATCHER_FLAGS_COMPARE;
break;
+ case RTE_FLOW_ITEM_TYPE_NSH:
+ item_flags |= MLX5_FLOW_ITEM_NSH;
+ break;
case RTE_FLOW_ITEM_TYPE_VOID:
break;
default:
diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c
index 9ebbe664d1..4587d04cb6 100644
--- a/drivers/net/mlx5/mlx5_flow_hw.c
+++ b/drivers/net/mlx5/mlx5_flow_hw.c
@@ -7475,6 +7475,14 @@ flow_hw_validate_item_compare(const struct rte_flow_item *item,
return 0;
}
+static inline int
+mlx5_hw_validate_item_nsh(struct rte_eth_dev *dev,
+ const struct rte_flow_item *item,
+ struct rte_flow_error *error)
+{
+ return mlx5_flow_validate_item_nsh(dev, item, error);
+}
+
static int
flow_hw_pattern_validate(struct rte_eth_dev *dev,
const struct rte_flow_pattern_template_attr *attr,
@@ -7671,6 +7679,11 @@ flow_hw_pattern_validate(struct rte_eth_dev *dev,
* template and item spec in flow rule.
*/
break;
+ case RTE_FLOW_ITEM_TYPE_NSH:
+ ret = mlx5_hw_validate_item_nsh(dev, &items[i], error);
+ if (ret < 0)
+ return ret;
+ break;
case RTE_FLOW_ITEM_TYPE_END:
items_end = true;
break;
--
2.34.1
More information about the dev
mailing list