[PATCH] net/mlx5: fix GRE item matching
Gregory Etelson
getelson at nvidia.com
Wed Nov 24 09:16:06 CET 2021
Hello Alexander,
> GRE protocol type is implicitly set in the
> matching translation in case
> an application doesn't specify any type explicitly
> in a flow rule.
> It is extracted from the inner header type, but
> this type may be absent.
> In this case, GRE item matching is broken. Check
> if we have the inner
> header type before setting it to allow matching
> on all GRE packets.
>
> Fixes: be26e81bfc1c ("net/mlx5: fix GRE protocol
> type translation")
> Cc: stable at dpdk.org
>
> Signed-off-by: Alexander Kozyrev
> <akozyrev at nvidia.com>
> ---
> drivers/net/mlx5/mlx5_flow_dv.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/mlx5/mlx5_flow_dv.c
> b/drivers/net/mlx5/mlx5_flow_dv.c
> index 9d4bd0560c..7bb092ea9f 100644
> --- a/drivers/net/mlx5/mlx5_flow_dv.c
> +++ b/drivers/net/mlx5/mlx5_flow_dv.c
> @@ -8823,8 +8823,9 @@
> flow_dv_translate_item_gre(void *matcher, void
> *key,
> protocol_v = rte_be_to_cpu_16(gre_v-
> >protocol);
> if (!protocol_m) {
> /* Force next protocol to prevent
> matchers duplication */
> - protocol_m = 0xFFFF;
> protocol_v =
> mlx5_translate_tunnel_etypes(pattern_flags);
> + if (protocol_v)
> + protocol_m = 0xFFFF;
> }
> MLX5_SET(fte_match_set_misc, misc_m,
> gre_protocol, protocol_m);
> MLX5_SET(fte_match_set_misc, misc_v,
> gre_protocol,
> --
> 2.18.2
The main idea of the be26e81bfc1c ("net/mlx5: fix GRE protocol type translation") patch
was to *always* force GRE protocol mask. Otherwise we get back to the original issue that patch has solved.
Regards,
Gregory
More information about the stable
mailing list