The rte_net_intel_cksum_flags_prepare() function prepares the pseudoheader checksum in packet data when doing checksum or TSO offload.
It does nothing when no checksum offload flag is set in mbuf. But in case of a IPv6/TCP TSO packet, it is not mandatory to have a checksum flag. We also need to check the PKT_TX_TCP_SEG flag in addition to checksum flags to fix offload preparation for such packets. Fixes: 520059a41aa9 ("net: check fragmented headers in non-debug as well") Signed-off-by: Yuying Zhang <yuying.zh...@intel.com> Acked-by: Olivier Matz <olivier.m...@6wind.com> Reviewed-by: David Marchand <david.march...@redhat.com> --- lib/librte_net/rte_net.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/librte_net/rte_net.h b/lib/librte_net/rte_net.h index 1edc283a4..94b06d9ee 100644 --- a/lib/librte_net/rte_net.h +++ b/lib/librte_net/rte_net.h @@ -125,7 +125,7 @@ rte_net_intel_cksum_flags_prepare(struct rte_mbuf *m, uint64_t ol_flags) * Mainly it is required to avoid fragmented headers check if * no offloads are requested. */ - if (!(ol_flags & (PKT_TX_IP_CKSUM | PKT_TX_L4_MASK))) + if (!(ol_flags & (PKT_TX_IP_CKSUM | PKT_TX_L4_MASK | PKT_TX_TCP_SEG))) return 0; if (ol_flags & (PKT_TX_OUTER_IPV4 | PKT_TX_OUTER_IPV6)) -- 2.25.1