* [dpdk-dev] [PATCH v1] net: fix TSO packet checksum incorrect @ 2020-07-28 8:55 Yuying Zhang 2020-07-28 9:29 ` Olivier Matz ` (2 more replies) 0 siblings, 3 replies; 11+ messages in thread From: Yuying Zhang @ 2020-07-28 8:55 UTC (permalink / raw) To: dev, olivier.matz, qi.z.zhang, qiming.yang; +Cc: Yuying Zhang The ol_flags check lacks of PKT_TX_IPV6 which causes checksum flag configuration error while IPv6/TCP TSO packet is sent. This patch fixes the issue using PKT_TX_OFFLOAD_MASK. Fixes: 520059a41aa9 ("net: check fragmented headers in non-debug as well") Signed-off-by: Yuying Zhang <yuying.zhang@intel.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..4b617ab4c 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_OFFLOAD_MASK)) return 0; if (ol_flags & (PKT_TX_OUTER_IPV4 | PKT_TX_OUTER_IPV6)) -- 2.25.1 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [dpdk-dev] [PATCH v1] net: fix TSO packet checksum incorrect 2020-07-28 8:55 [dpdk-dev] [PATCH v1] net: fix TSO packet checksum incorrect Yuying Zhang @ 2020-07-28 9:29 ` Olivier Matz 2020-07-29 15:58 ` Andrew Rybchenko 2020-07-28 17:09 ` [dpdk-dev] [PATCH v2 1/1] net: fix TSO packets " Yuying Zhang 2020-07-30 2:00 ` [dpdk-dev] [PATCH v3 1/1] net: fix bad checksum in offloaded TSOv6 packets Yuying Zhang 2 siblings, 1 reply; 11+ messages in thread From: Olivier Matz @ 2020-07-28 9:29 UTC (permalink / raw) To: Yuying Zhang; +Cc: dev, qi.z.zhang, qiming.yang, Ferruh Yigit, arybchenko Hi, On Tue, Jul 28, 2020 at 08:55:31AM +0000, Yuying Zhang wrote: > The ol_flags check lacks of PKT_TX_IPV6 which causes checksum > flag configuration error while IPv6/TCP TSO packet is sent. > This patch fixes the issue using PKT_TX_OFFLOAD_MASK. > > Fixes: 520059a41aa9 ("net: check fragmented headers in non-debug as well") > > Signed-off-by: Yuying Zhang <yuying.zhang@intel.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..4b617ab4c 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_OFFLOAD_MASK)) > return 0; > > if (ol_flags & (PKT_TX_OUTER_IPV4 | PKT_TX_OUTER_IPV6)) > -- > 2.25.1 > I think the PKT_TX_TCP_SEG flag is missing in the test above, it should be like this: if (!(ol_flags & (PKT_TX_IP_CKSUM | PKT_TX_L4_MASK | PKT_TX_TCP_SEG))) It would be more precise than having the whole list of offload flags. The reason is because in case of TSOv4, there is always the flag PKT_TX_IP_CKSUM, so this test is always wrong and we continue in the function. In case of TSOv6, there is neither PKT_TX_IP_CKSUM nor PKT_TX_L4_TCP (which is not mandatory, the doc says that PKT_TX_TCP_SEG implies PKT_TX_L4_TCP). Thanks for spotting this. Can you please submit a v2 with PKT_TX_TCP_SEG? Olivier ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [dpdk-dev] [PATCH v1] net: fix TSO packet checksum incorrect 2020-07-28 9:29 ` Olivier Matz @ 2020-07-29 15:58 ` Andrew Rybchenko 0 siblings, 0 replies; 11+ messages in thread From: Andrew Rybchenko @ 2020-07-29 15:58 UTC (permalink / raw) To: Olivier Matz, Yuying Zhang Cc: dev, qi.z.zhang, qiming.yang, Ferruh Yigit, arybchenko On 7/28/20 12:29 PM, Olivier Matz wrote: > Hi, > > On Tue, Jul 28, 2020 at 08:55:31AM +0000, Yuying Zhang wrote: >> The ol_flags check lacks of PKT_TX_IPV6 which causes checksum >> flag configuration error while IPv6/TCP TSO packet is sent. >> This patch fixes the issue using PKT_TX_OFFLOAD_MASK. >> >> Fixes: 520059a41aa9 ("net: check fragmented headers in non-debug as well") >> >> Signed-off-by: Yuying Zhang <yuying.zhang@intel.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..4b617ab4c 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_OFFLOAD_MASK)) >> return 0; >> >> if (ol_flags & (PKT_TX_OUTER_IPV4 | PKT_TX_OUTER_IPV6)) >> -- >> 2.25.1 >> > > I think the PKT_TX_TCP_SEG flag is missing in the test above, it > should be like this: > > if (!(ol_flags & (PKT_TX_IP_CKSUM | PKT_TX_L4_MASK | PKT_TX_TCP_SEG))) > > It would be more precise than having the whole list of offload flags. > > The reason is because in case of TSOv4, there is always the flag > PKT_TX_IP_CKSUM, so this test is always wrong and we continue in the > function. In case of TSOv6, there is neither PKT_TX_IP_CKSUM nor > PKT_TX_L4_TCP (which is not mandatory, the doc says that PKT_TX_TCP_SEG > implies PKT_TX_L4_TCP). I thought that PKT_TX_L4_TCP is required anyway and missed the fact that PKT_TX_TCP_SEG implies PKT_TX_L4_TCP. Thanks. > > Thanks for spotting this. Can you please submit a v2 with > PKT_TX_TCP_SEG? > > Olivier > ^ permalink raw reply [flat|nested] 11+ messages in thread
* [dpdk-dev] [PATCH v2 1/1] net: fix TSO packets checksum incorrect 2020-07-28 8:55 [dpdk-dev] [PATCH v1] net: fix TSO packet checksum incorrect Yuying Zhang 2020-07-28 9:29 ` Olivier Matz @ 2020-07-28 17:09 ` Yuying Zhang 2020-07-29 2:28 ` Xie, WeiX ` (2 more replies) 2020-07-30 2:00 ` [dpdk-dev] [PATCH v3 1/1] net: fix bad checksum in offloaded TSOv6 packets Yuying Zhang 2 siblings, 3 replies; 11+ messages in thread From: Yuying Zhang @ 2020-07-28 17:09 UTC (permalink / raw) To: dev, olivier.matz, qi.z.zhang, qiming.yang; +Cc: Yuying Zhang The ol_flags check lacks of flag for IPv6 which causes checksum flag configuration error while IPv6/TCP TSO packet is sent. This patch fixes the issue by adding PKT_TX_TCP_SEG flag. Fixes: 520059a41aa9 ("net: check fragmented headers in non-debug as well") Signed-off-by: Yuying Zhang <yuying.zhang@intel.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 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [dpdk-dev] [PATCH v2 1/1] net: fix TSO packets checksum incorrect 2020-07-28 17:09 ` [dpdk-dev] [PATCH v2 1/1] net: fix TSO packets " Yuying Zhang @ 2020-07-29 2:28 ` Xie, WeiX 2020-07-29 7:49 ` Olivier Matz 2020-07-29 8:54 ` David Marchand 2 siblings, 0 replies; 11+ messages in thread From: Xie, WeiX @ 2020-07-29 2:28 UTC (permalink / raw) To: Zhang, Yuying, dev, olivier.matz, Zhang, Qi Z, Yang, Qiming; +Cc: Zhang, Yuying Tested-by: Zhang, XiX <xix.zhang@intel.com> Regards, Xie Wei -----Original Message----- From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Yuying Zhang Sent: Wednesday, July 29, 2020 1:10 AM To: dev@dpdk.org; olivier.matz@6wind.com; Zhang, Qi Z <qi.z.zhang@intel.com>; Yang, Qiming <qiming.yang@intel.com> Cc: Zhang, Yuying <yuying.zhang@intel.com> Subject: [dpdk-dev] [PATCH v2 1/1] net: fix TSO packets checksum incorrect The ol_flags check lacks of flag for IPv6 which causes checksum flag configuration error while IPv6/TCP TSO packet is sent. This patch fixes the issue by adding PKT_TX_TCP_SEG flag. Fixes: 520059a41aa9 ("net: check fragmented headers in non-debug as well") Signed-off-by: Yuying Zhang <yuying.zhang@intel.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 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [dpdk-dev] [PATCH v2 1/1] net: fix TSO packets checksum incorrect 2020-07-28 17:09 ` [dpdk-dev] [PATCH v2 1/1] net: fix TSO packets " Yuying Zhang 2020-07-29 2:28 ` Xie, WeiX @ 2020-07-29 7:49 ` Olivier Matz 2020-07-29 16:00 ` Andrew Rybchenko 2020-07-29 8:54 ` David Marchand 2 siblings, 1 reply; 11+ messages in thread From: Olivier Matz @ 2020-07-29 7:49 UTC (permalink / raw) To: Yuying Zhang; +Cc: dev, qi.z.zhang, qiming.yang, Ferruh Yigit, Andrew Rybchenko On Tue, Jul 28, 2020 at 05:09:50PM +0000, Yuying Zhang wrote: > The ol_flags check lacks of flag for IPv6 which causes checksum > flag configuration error while IPv6/TCP TSO packet is sent. > This patch fixes the issue by adding PKT_TX_TCP_SEG flag. Thanks Yuying for the new version. I have another suggestion for the title/commit log: net: fix bad checksum in offloaded TSOv6 packets 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.zhang@intel.com> Acked-by: Olivier Matz <olivier.matz@6wind.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 > ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [dpdk-dev] [PATCH v2 1/1] net: fix TSO packets checksum incorrect 2020-07-29 7:49 ` Olivier Matz @ 2020-07-29 16:00 ` Andrew Rybchenko 0 siblings, 0 replies; 11+ messages in thread From: Andrew Rybchenko @ 2020-07-29 16:00 UTC (permalink / raw) To: Olivier Matz, Yuying Zhang Cc: dev, qi.z.zhang, qiming.yang, Ferruh Yigit, Andrew Rybchenko On 7/29/20 10:49 AM, Olivier Matz wrote: > On Tue, Jul 28, 2020 at 05:09:50PM +0000, Yuying Zhang wrote: >> The ol_flags check lacks of flag for IPv6 which causes checksum >> flag configuration error while IPv6/TCP TSO packet is sent. >> This patch fixes the issue by adding PKT_TX_TCP_SEG flag. > > Thanks Yuying for the new version. I have another suggestion for the > title/commit log: > > net: fix bad checksum in offloaded TSOv6 packets > > 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.zhang@intel.com> > > Acked-by: Olivier Matz <olivier.matz@6wind.com> Acked-by: Andrew Rybchenko <arybchenko@solarflare.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 >> ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [dpdk-dev] [PATCH v2 1/1] net: fix TSO packets checksum incorrect 2020-07-28 17:09 ` [dpdk-dev] [PATCH v2 1/1] net: fix TSO packets " Yuying Zhang 2020-07-29 2:28 ` Xie, WeiX 2020-07-29 7:49 ` Olivier Matz @ 2020-07-29 8:54 ` David Marchand 2020-07-29 10:03 ` Ferruh Yigit 2 siblings, 1 reply; 11+ messages in thread From: David Marchand @ 2020-07-29 8:54 UTC (permalink / raw) To: Yuying Zhang; +Cc: dev, Olivier Matz, Qi Zhang, Qiming Yang, Yigit, Ferruh On Tue, Jul 28, 2020 at 7:11 PM Yuying Zhang <yuying.zhang@intel.com> wrote: > > The ol_flags check lacks of flag for IPv6 which causes checksum > flag configuration error while IPv6/TCP TSO packet is sent. > This patch fixes the issue by adding PKT_TX_TCP_SEG flag. > > Fixes: 520059a41aa9 ("net: check fragmented headers in non-debug as well") > > Signed-off-by: Yuying Zhang <yuying.zhang@intel.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 > Reviewed-by: David Marchand <david.marchand@redhat.com> Olivier suggestion on the commitlog/title looks fine to me. -- David Marchand ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [dpdk-dev] [PATCH v2 1/1] net: fix TSO packets checksum incorrect 2020-07-29 8:54 ` David Marchand @ 2020-07-29 10:03 ` Ferruh Yigit 0 siblings, 0 replies; 11+ messages in thread From: Ferruh Yigit @ 2020-07-29 10:03 UTC (permalink / raw) To: David Marchand, Yuying Zhang; +Cc: dev, Olivier Matz, Qi Zhang, Qiming Yang On 7/29/2020 9:54 AM, David Marchand wrote: > On Tue, Jul 28, 2020 at 7:11 PM Yuying Zhang <yuying.zhang@intel.com> wrote: >> >> The ol_flags check lacks of flag for IPv6 which causes checksum >> flag configuration error while IPv6/TCP TSO packet is sent. >> This patch fixes the issue by adding PKT_TX_TCP_SEG flag. >> >> Fixes: 520059a41aa9 ("net: check fragmented headers in non-debug as well") >> >> Signed-off-by: Yuying Zhang <yuying.zhang@intel.com> > > Acked-by: Olivier Matz <olivier.matz@6wind.com> > > Reviewed-by: David Marchand <david.marchand@redhat.com> > Applied to dpdk-next-net/master, thanks. (Used the suggested commit log) ^ permalink raw reply [flat|nested] 11+ messages in thread
* [dpdk-dev] [PATCH v3 1/1] net: fix bad checksum in offloaded TSOv6 packets 2020-07-28 8:55 [dpdk-dev] [PATCH v1] net: fix TSO packet checksum incorrect Yuying Zhang 2020-07-28 9:29 ` Olivier Matz 2020-07-28 17:09 ` [dpdk-dev] [PATCH v2 1/1] net: fix TSO packets " Yuying Zhang @ 2020-07-30 2:00 ` Yuying Zhang 2020-07-30 2:25 ` Zhang, Yuying 2 siblings, 1 reply; 11+ messages in thread From: Yuying Zhang @ 2020-07-30 2:00 UTC (permalink / raw) To: dev, olivier.matz, qi.z.zhang, qiming.yang; +Cc: Yuying Zhang, David Marchand 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.zhang@intel.com> Acked-by: Olivier Matz <olivier.matz@6wind.com> Reviewed-by: David Marchand <david.marchand@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 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [dpdk-dev] [PATCH v3 1/1] net: fix bad checksum in offloaded TSOv6 packets 2020-07-30 2:00 ` [dpdk-dev] [PATCH v3 1/1] net: fix bad checksum in offloaded TSOv6 packets Yuying Zhang @ 2020-07-30 2:25 ` Zhang, Yuying 0 siblings, 0 replies; 11+ messages in thread From: Zhang, Yuying @ 2020-07-30 2:25 UTC (permalink / raw) To: dev, olivier.matz, Zhang, Qi Z, Yang, Qiming; +Cc: David Marchand > -----Original Message----- > From: Zhang, Yuying <yuying.zhang@intel.com> > Sent: 2020年7月30日 10:01 > To: dev@dpdk.org; olivier.matz@6wind.com; Zhang, Qi Z > <qi.z.zhang@intel.com>; Yang, Qiming <qiming.yang@intel.com> > Cc: Zhang, Yuying <yuying.zhang@intel.com>; David Marchand > <david.marchand@redhat.com> > Subject: [PATCH v3 1/1] net: fix bad checksum in offloaded TSOv6 packets > > 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.zhang@intel.com> > Acked-by: Olivier Matz <olivier.matz@6wind.com> > Reviewed-by: David Marchand <david.marchand@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 Please drop this patch since it has been merged into dpdk-next-net/master. I am so sorry. ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2020-07-30 2:25 UTC | newest] Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-07-28 8:55 [dpdk-dev] [PATCH v1] net: fix TSO packet checksum incorrect Yuying Zhang 2020-07-28 9:29 ` Olivier Matz 2020-07-29 15:58 ` Andrew Rybchenko 2020-07-28 17:09 ` [dpdk-dev] [PATCH v2 1/1] net: fix TSO packets " Yuying Zhang 2020-07-29 2:28 ` Xie, WeiX 2020-07-29 7:49 ` Olivier Matz 2020-07-29 16:00 ` Andrew Rybchenko 2020-07-29 8:54 ` David Marchand 2020-07-29 10:03 ` Ferruh Yigit 2020-07-30 2:00 ` [dpdk-dev] [PATCH v3 1/1] net: fix bad checksum in offloaded TSOv6 packets Yuying Zhang 2020-07-30 2:25 ` Zhang, Yuying
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).