From 38ad946892830c9fb5f8fe221bf677ee8e9bc819 Mon Sep 17 00:00:00 2001 From: Matan Azrad Date: Tue, 18 Feb 2020 14:45:20 +0000 Subject: [PATCH] net/mlx5: fix flow match on GRE key The RTE_FLOW_ITEM_TYPE_GRE_KEY means that GRE key should be present on the flow and in addition can explicitly match on the GRE key field itself. When no value is set in this item any GRE key should match the flow. The match on GRE key wrongly was not added if the item fields are NULL while at least the GRE key should be present in the flow. Add the GRE key present match when RTE_FLOW_ITEM_TYPE_GRE_KEY is in the flow item list. Fixes: a7a0365565a4 ("net/mlx5: match GRE key and present bits") Cc: stable@dpdk.org Signed-off-by: Matan Azrad Acked-by: Ori Kam --- drivers/net/mlx5/mlx5_flow_dv.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index 1c01269117..467d1ce6b1 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -5594,13 +5594,13 @@ flow_dv_translate_item_gre_key(void *matcher, void *key, void *misc_v = MLX5_ADDR_OF(fte_match_param, key, misc_parameters); rte_be32_t gre_key_default_mask = RTE_BE32(UINT32_MAX); + /* GRE K bit must be on and should already be validated */ + MLX5_SET(fte_match_set_misc, misc_m, gre_k_present, 1); + MLX5_SET(fte_match_set_misc, misc_v, gre_k_present, 1); if (!key_v) return; if (!key_m) key_m = &gre_key_default_mask; - /* GRE K bit must be on and should already be validated */ - MLX5_SET(fte_match_set_misc, misc_m, gre_k_present, 1); - MLX5_SET(fte_match_set_misc, misc_v, gre_k_present, 1); MLX5_SET(fte_match_set_misc, misc_m, gre_key_h, rte_be_to_cpu_32(*key_m) >> 8); MLX5_SET(fte_match_set_misc, misc_v, gre_key_h, -- 2.20.1