net/mlx5: fix HWS support for item NSH
Checks
Commit Message
Allow item NSH in HWS and set item_flags.
Fixes: f6164649a8 ("net/mlx5/hws: support VXLAN-GPE matching")
Signed-off-by: Gavin Li <gavinl@nvidia.com>
Reviewed-by: Bing Zhao <bingz@nvidia.com>
---
drivers/net/mlx5/hws/mlx5dr_definer.c | 3 +++
drivers/net/mlx5/mlx5_flow_hw.c | 13 +++++++++++++
2 files changed, 16 insertions(+)
Comments
> -----Original Message-----
> From: Minggang(Gavin) Li <gavinl@nvidia.com>
> Sent: Thursday, May 9, 2024 14:45
> To: Matan Azrad <matan@nvidia.com>; Slava Ovsiienko
> <viacheslavo@nvidia.com>; Ori Kam <orika@nvidia.com>; NBU-Contact-
> Thomas Monjalon (EXTERNAL) <thomas@monjalon.net>; Dariusz Sosnowski
> <dsosnowski@nvidia.com>; Suanming Mou <suanmingm@nvidia.com>;
> Itamar Gozlan <igozlan@nvidia.com>
> Cc: dev@dpdk.org; Raslan Darawsheh <rasland@nvidia.com>; Bing Zhao
> <bingz@nvidia.com>
> Subject: [PATCH] net/mlx5: fix HWS support for item NSH
>
> Allow item NSH in HWS and set item_flags.
>
> Fixes: f6164649a8 ("net/mlx5/hws: support VXLAN-GPE matching")
> Signed-off-by: Gavin Li <gavinl@nvidia.com>
> Reviewed-by: Bing Zhao <bingz@nvidia.com>
Acked-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
Best regards,
Dariusz Sosnowski
Hi,
From: Minggang(Gavin) Li <gavinl@nvidia.com>
Sent: Thursday, May 9, 2024 3:44 PM
To: Matan Azrad; Slava Ovsiienko; Ori Kam; NBU-Contact-Thomas Monjalon (EXTERNAL); Dariusz Sosnowski; Suanming Mou; Itamar Gozlan
Cc: dev@dpdk.org; Raslan Darawsheh; Bing Zhao
Subject: [PATCH] net/mlx5: fix HWS support for item NSH
Allow item NSH in HWS and set item_flags.
Fixes: f6164649a8 ("net/mlx5/hws: support VXLAN-GPE matching")
Signed-off-by: Gavin Li <gavinl@nvidia.com>
Reviewed-by: Bing Zhao <bingz@nvidia.com>
---
Patch applied to next-net-mlx,
Kindest regards
Raslan Darawsheh
@@ -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:
@@ -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;