gro: fix packet type detection with IPv6 tunnel
authorYi Yang <yangyi01@inspur.com>
Thu, 5 Nov 2020 02:54:44 +0000 (10:54 +0800)
committerThomas Monjalon <thomas@monjalon.net>
Sat, 14 Nov 2020 09:56:30 +0000 (10:56 +0100)
commitb605df71beaac34f2af0df7eb9e759ca0c80acf3
tree5764a4576b3abb050308364a156723eef26c08dd
parenteb63ec0e56cd519eaaf160041c266de4f13ae413
gro: fix packet type detection with IPv6 tunnel

For VxLAN packets, GRO will mistakenly reassemble them
if inner L3 is IPv6, inner L4 is TCP or UDP, and outer L3
is IPv4 because the value of IS_IPV4_VXLAN_TCP4/UDP4_PKT
is true for them.

This fix makes sure IS_IPV4_TCP_PKT, IS_IPV4_UDP_PKT,
IS_IPV4_VXLAN_TCP4_PKT and IS_IPV4_VXLAN_UDP4_PKT can make
decision precisely.

Fixes: e2d811063673 ("gro: support VXLAN UDP/IPv4")
Fixes: 1ca5e6740852 ("gro: support UDP/IPv4")
Fixes: 9e0b9d2ec0f4 ("gro: support VxLAN GRO")
Fixes: 0d2cbe59b719 ("lib/gro: support TCP/IPv4")
Cc: stable@dpdk.org
Signed-off-by: Yi Yang <yangyi01@inspur.com>
Acked-by: Jiayu Hu <jiayu.hu@intel.com>
lib/librte_gro/rte_gro.c