Skip to content

Commit

Permalink
net/mlx5: fix GRE item translation in Verbs
Browse files Browse the repository at this point in the history
[ upstream commit df49865 ]

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.

Fixes: 985b479 ("net/mlx5: fix GRE protocol type translation for Verbs")

Signed-off-by: Gregory Etelson <getelson@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
  • Loading branch information
getelson-at-mellanox authored and bluca committed Mar 9, 2022
1 parent ed3f7dd commit 8de9d40
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion drivers/net/mlx5/mlx5_flow_verbs.c
Original file line number Diff line number Diff line change
Expand Up @@ -1722,6 +1722,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;
Expand Down Expand Up @@ -1861,6 +1862,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,
Expand All @@ -1875,7 +1877,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 =
Expand Down

0 comments on commit 8de9d40

Please sign in to comment.