From 6f921f61d481cc83df12e698c37dff8b5d1809da Mon Sep 17 00:00:00 2001 From: Xiaoyu Min Date: Tue, 10 Nov 2020 19:59:53 +0800 Subject: [PATCH] net/mlx5: validate MPLSoGRE with GRE key Currently PMD only accept flow which item_mpls directly follow item_gre, means to match the GRE header without GRE optional field key in MPLSoGRE encapsulation. However, for the MPLSoGRE, the GRE header could have the optional field (i.e, key) according to the RFC. So PMD need to accept this. Add MLX5_FLOW_LAYER_GRE_KEY into allowed prev_layer to fix Fixes: a7a0365565a4 ("net/mlx5: match GRE key and present bits") Cc: stable@dpdk.org Signed-off-by: Xiaoyu Min Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5_flow.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c index 0ee34001a0..53a8a75cc0 100644 --- a/drivers/net/mlx5/mlx5_flow.c +++ b/drivers/net/mlx5/mlx5_flow.c @@ -2746,7 +2746,8 @@ mlx5_flow_validate_item_mpls(struct rte_eth_dev *dev __rte_unused, /* MPLS over IP, UDP, GRE is allowed */ if (!(prev_layer & (MLX5_FLOW_LAYER_OUTER_L3 | MLX5_FLOW_LAYER_OUTER_L4_UDP | - MLX5_FLOW_LAYER_GRE))) + MLX5_FLOW_LAYER_GRE | + MLX5_FLOW_LAYER_GRE_KEY))) return rte_flow_error_set(error, EINVAL, RTE_FLOW_ERROR_TYPE_ITEM, item, "protocol filtering not compatible" -- 2.20.1