net/mlx5: fix match MPLS over GRE with key
authorXiaoyu Min <jackmin@nvidia.com>
Thu, 1 Jul 2021 05:54:56 +0000 (13:54 +0800)
committerRaslan Darawsheh <rasland@nvidia.com>
Thu, 8 Jul 2021 20:09:28 +0000 (22:09 +0200)
commit4b1cb50a86b73dceade317be4541f2c176c7ca5b
tree80aa74ba7e809db9e34567c8def5dfc0a68eee1d
parentbe548b9c9d40d33d88bb16641944be4cb2240eb1
net/mlx5: fix match MPLS over GRE with key

Currently PMD needs previous layer information in order to set
corresponding match field for MPLSoGRE or MPLSoUDP.

GRE_KEY item is missing as supported previous layer when translate
item MPLS, which causes flow[1] cannot match MPLS over GRE traffic.

According to RFC4023, MPLS over GRE tunnel with optional key
field needs to be supported too.

By adding missing GRE_KEY as supported previous layer fix problem.

[1]:
flow create 0 ingress pattern eth / ipv6 / gre k_bit is 1 / gre_key /
mpls label is 966138 / end actions queue index 1 / mark id 0xa / end

Fixes: a7a0365565a4 ("net/mlx5: match GRE key and present bits")
Cc: stable@dpdk.org
Signed-off-by: Xiaoyu Min <jackmin@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
drivers/net/mlx5/mlx5_flow_dv.c