net/mlx5: fix GRE item translation in Verbs API
PATCH 1/1 net/mlx5: fix GRE item translation in Verbs API
GRE item translation must set inner protocol value.
For that reason the item is not translated inplace when PMD translation iterates over flow items, but moved after the loop, when all inner types are discovered.
If PMD does not translate GRE flow item inside the translation loop it must save the GRE item for access outside the loop.
--- drivers/net/mlx5/mlx5_flow_verbs.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
drivers/net/mlx5/mlx5_flow_verbs.c +4 -1
@@ -1679,6 +1679,7 @@ flow_verbs_translate(struct rte_eth_dev *dev,struct mlx5_priv *priv = dev->data->dev_private;struct mlx5_flow_workspace *wks =mlx5_flow_get_thread_workspace ();struct mlx5_flow_rss_desc *rss_desc; +const struct rte_flow_item *tunnel_item =NULL ;MLX5_ASSERT (wks); rss_desc = &wks->rss_desc;
@@ -1818,6 +1819,7 @@ flow_verbs_translate(struct rte_eth_dev *dev,case RTE_FLOW_ITEM_TYPE_GRE : subpriority =MLX5_TUNNEL_PRIO_GET (rss_desc); item_flags |=MLX5_FLOW_LAYER_GRE ; + tunnel_item = items;break ;case RTE_FLOW_ITEM_TYPE_MPLS : flow_verbs_translate_item_mpls(dev_flow, items,
@@ -1832,7 +1834,8 @@ flow_verbs_translate(struct rte_eth_dev *dev, } }if (item_flags &MLX5_FLOW_LAYER_GRE ) -flow_verbs_translate_item_gre (dev_flow, items, item_flags); +flow_verbs_translate_item_gre (dev_flow, tunnel_item, + item_flags); dev_flow->handle->layers = item_flags;/* Other members of attr will be ignored. */ dev_flow->verbs.attr.priority =
Signature · 1 line
2.34.1
Hi,
Quoted 14 lines
-----Original Message-----
From: Gregory Etelson <[email protected]>
Sent: Monday, February 28, 2022 11:53 AM
To: [email protected]
Cc: Gregory Etelson <[email protected]>; Matan Azrad <[email protected]>; Raslan Darawsheh <[email protected]>; [email protected]; Slava Ovsiienko <[email protected]>
Subject: [PATCH] net/mlx5: fix GRE item translation in Verbs APIGRE item translation must set inner protocol value.
For that reason the item is not translated inplace when PMD translation iterates over flow items, but moved after the loop, when all inner types are discovered.
Quoted 8 lines
If PMD does not translate GRE flow item inside the translation loop it must save the GRE item for access outside the loop.
Fixes 985b479267aa ("net/mlx5: fix GRE protocol type translation for Verbs")Signed-off-by Gregory Etelson <[email protected]>
Patch applied to next-net-mlx,
Kindest regards,
Raslan Darawsheh