net: fix encapsulation markers for inner L3 offset
authorIvan Malov <ivan.malov@oktetlabs.ru>
Fri, 24 May 2019 14:57:14 +0000 (17:57 +0300)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 28 Jun 2019 18:31:49 +0000 (20:31 +0200)
The API to prepare checksum offloads employs outer
IP checksum flag to tell regular IPv4 packets from
tunnel packets with outer IPv4 encapsulation. This
flag cannot serve as a marker for the said purpose
because a packet can have outer IPv4 encapsulation
and may not have outer IP checksum offload request.

Fix the API by changing the said criterion to test
outer IPv4 flag rather than outer IP checksum flag.
Use simpler spelling of the conditional expression.

Fixes: 4fb7e803eb1a ("ethdev: add Tx preparation")
Cc: stable@dpdk.org
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
lib/librte_net/rte_net.h

index b83f8c1..461f2c8 100644 (file)
@@ -129,8 +129,7 @@ rte_net_intel_cksum_flags_prepare(struct rte_mbuf *m, uint64_t ol_flags)
                return 0;
 #endif
 
-       if ((ol_flags & PKT_TX_OUTER_IP_CKSUM) ||
-               (ol_flags & PKT_TX_OUTER_IPV6))
+       if (ol_flags & (PKT_TX_OUTER_IPV4 | PKT_TX_OUTER_IPV6))
                inner_l3_offset += m->outer_l2_len + m->outer_l3_len;
 
 #ifdef RTE_LIBRTE_ETHDEV_DEBUG