gso: fix VxLAN/GRE tunnel checks
authorAndrew Rybchenko <arybchenko@solarflare.com>
Mon, 21 Jan 2019 06:42:38 +0000 (06:42 +0000)
committerThomas Monjalon <thomas@monjalon.net>
Tue, 22 Jan 2019 16:08:21 +0000 (17:08 +0100)
Tunnel type is an enum in PKT_TX_TUNNEL_MASK bits.
As the result, for example, IPIP or MPLSinUDP tunnel packets may be
incorrectly treated internally as VXLAN.

Fixes: b058d92ea95d ("gso: support VxLAN GSO")
Fixes: 70e737e448c7 ("gso: support GRE GSO")
Cc: stable@dpdk.org
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Jiayu Hu <jiayu.hu@intel.com>
lib/librte_gso/gso_common.h

index 6cd764f..b6ff1b8 100644 (file)
                (PKT_TX_TCP_SEG | PKT_TX_IPV4))
 
 #define IS_IPV4_VXLAN_TCP4(flag) (((flag) & (PKT_TX_TCP_SEG | PKT_TX_IPV4 | \
-                               PKT_TX_OUTER_IPV4 | PKT_TX_TUNNEL_VXLAN)) == \
+                               PKT_TX_OUTER_IPV4 | PKT_TX_TUNNEL_MASK)) == \
                (PKT_TX_TCP_SEG | PKT_TX_IPV4 | PKT_TX_OUTER_IPV4 | \
                 PKT_TX_TUNNEL_VXLAN))
 
 #define IS_IPV4_GRE_TCP4(flag) (((flag) & (PKT_TX_TCP_SEG | PKT_TX_IPV4 | \
-                               PKT_TX_OUTER_IPV4 | PKT_TX_TUNNEL_GRE)) == \
+                               PKT_TX_OUTER_IPV4 | PKT_TX_TUNNEL_MASK)) == \
                (PKT_TX_TCP_SEG | PKT_TX_IPV4 | PKT_TX_OUTER_IPV4 | \
                 PKT_TX_TUNNEL_GRE))