* [Patch v2] net/netvsc: fix the calculation of checksums based on mbuf flag @ 2022-03-24 17:46 longli 2022-04-26 21:56 ` Ferruh Yigit 2022-04-26 21:56 ` Ferruh Yigit 0 siblings, 2 replies; 4+ messages in thread From: longli @ 2022-03-24 17:46 UTC (permalink / raw) To: dev, Stephen Hemminger; +Cc: Long Li, stable From: Long Li <longli@microsoft.com> The netvsc should use RTE_MBUF_F_TX_L4_MASK and check the masked value to decide the correct way to calculate checksums. Not checking for RTE_MBUF_F_TX_L4_MASK results in incorrect RNDIS packets sent to VSP and incorrect checksums calculated by the VSP. Fixes: 4e9c73e96e ("net/netvsc: add Hyper-V network device") Cc: stable@dpdk.org Signed-off-by: Long Li <longli@microsoft.com> --- drivers/net/netvsc/hn_rxtx.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/net/netvsc/hn_rxtx.c b/drivers/net/netvsc/hn_rxtx.c index 028f176c7e..34f40be5b8 100644 --- a/drivers/net/netvsc/hn_rxtx.c +++ b/drivers/net/netvsc/hn_rxtx.c @@ -1348,8 +1348,11 @@ static void hn_encap(struct rndis_packet_msg *pkt, *pi_data = NDIS_LSO2_INFO_MAKEIPV4(hlen, m->tso_segsz); } - } else if (m->ol_flags & - (RTE_MBUF_F_TX_TCP_CKSUM | RTE_MBUF_F_TX_UDP_CKSUM | RTE_MBUF_F_TX_IP_CKSUM)) { + } else if ((m->ol_flags & RTE_MBUF_F_TX_L4_MASK) == + RTE_MBUF_F_TX_TCP_CKSUM || + (m->ol_flags & RTE_MBUF_F_TX_L4_MASK) == + RTE_MBUF_F_TX_UDP_CKSUM || + (m->ol_flags & RTE_MBUF_F_TX_IP_CKSUM)) { pi_data = hn_rndis_pktinfo_append(pkt, NDIS_TXCSUM_INFO_SIZE, NDIS_PKTINFO_TYPE_CSUM); *pi_data = 0; @@ -1363,9 +1366,11 @@ static void hn_encap(struct rndis_packet_msg *pkt, *pi_data |= NDIS_TXCSUM_INFO_IPCS; } - if (m->ol_flags & RTE_MBUF_F_TX_TCP_CKSUM) + if ((m->ol_flags & RTE_MBUF_F_TX_L4_MASK) == + RTE_MBUF_F_TX_TCP_CKSUM) *pi_data |= NDIS_TXCSUM_INFO_MKTCPCS(hlen); - else if (m->ol_flags & RTE_MBUF_F_TX_UDP_CKSUM) + else if ((m->ol_flags & RTE_MBUF_F_TX_L4_MASK) == + RTE_MBUF_F_TX_UDP_CKSUM) *pi_data |= NDIS_TXCSUM_INFO_MKUDPCS(hlen); } -- 2.32.0 ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Patch v2] net/netvsc: fix the calculation of checksums based on mbuf flag 2022-03-24 17:46 [Patch v2] net/netvsc: fix the calculation of checksums based on mbuf flag longli @ 2022-04-26 21:56 ` Ferruh Yigit 2022-04-26 21:56 ` Ferruh Yigit 1 sibling, 0 replies; 4+ messages in thread From: Ferruh Yigit @ 2022-04-26 21:56 UTC (permalink / raw) To: longli, dev, Stephen Hemminger; +Cc: Long Li, stable On 3/24/2022 5:46 PM, longli@linuxonhyperv.com wrote: > From: Long Li <longli@microsoft.com> > > The netvsc should use RTE_MBUF_F_TX_L4_MASK and check the masked value to > decide the correct way to calculate checksums. > > Not checking for RTE_MBUF_F_TX_L4_MASK results in incorrect RNDIS packets > sent to VSP and incorrect checksums calculated by the VSP. > > Fixes: 4e9c73e96e ("net/netvsc: add Hyper-V network device") > Cc: stable@dpdk.org > Signed-off-by: Long Li <longli@microsoft.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@xilinx.com> Moving ack from previous version: Acked-by: Stephen Hemminger <stephen@networkplumber.org> Applied to dpdk-next-net/main, thanks. ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Patch v2] net/netvsc: fix the calculation of checksums based on mbuf flag 2022-03-24 17:46 [Patch v2] net/netvsc: fix the calculation of checksums based on mbuf flag longli 2022-04-26 21:56 ` Ferruh Yigit @ 2022-04-26 21:56 ` Ferruh Yigit 2022-04-26 22:09 ` Ajit Khaparde 1 sibling, 1 reply; 4+ messages in thread From: Ferruh Yigit @ 2022-04-26 21:56 UTC (permalink / raw) To: Ajit Khaparde, Somnath Kotur, Hemant Agrawal, Sachin Saxena, Ziyang Xuan, Xiaoyun Wang, Guoyang Zhou, Andrew Boyer, Shijith Thotton, Srisivasubramanian Srinivasan, Matan Azrad, Viacheslav Ovsiienko, Zyta Szpak, Liron Himi, Rasesh Mody, Devendra Singh Rawat Cc: Long Li, stable, longli, Stephen Hemminger, dev On 3/24/2022 5:46 PM, longli@linuxonhyperv.com wrote: > From: Long Li <longli@microsoft.com> > > The netvsc should use RTE_MBUF_F_TX_L4_MASK and check the masked value to > decide the correct way to calculate checksums. > > Not checking for RTE_MBUF_F_TX_L4_MASK results in incorrect RNDIS packets > sent to VSP and incorrect checksums calculated by the VSP. > > Fixes: 4e9c73e96e ("net/netvsc: add Hyper-V network device") > Cc: stable@dpdk.org > Signed-off-by: Long Li <longli@microsoft.com> > --- > drivers/net/netvsc/hn_rxtx.c | 13 +++++++++---- > 1 file changed, 9 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/netvsc/hn_rxtx.c b/drivers/net/netvsc/hn_rxtx.c > index 028f176c7e..34f40be5b8 100644 > --- a/drivers/net/netvsc/hn_rxtx.c > +++ b/drivers/net/netvsc/hn_rxtx.c > @@ -1348,8 +1348,11 @@ static void hn_encap(struct rndis_packet_msg *pkt, > *pi_data = NDIS_LSO2_INFO_MAKEIPV4(hlen, > m->tso_segsz); > } > - } else if (m->ol_flags & > - (RTE_MBUF_F_TX_TCP_CKSUM | RTE_MBUF_F_TX_UDP_CKSUM | RTE_MBUF_F_TX_IP_CKSUM)) { > + } else if ((m->ol_flags & RTE_MBUF_F_TX_L4_MASK) == > + RTE_MBUF_F_TX_TCP_CKSUM || > + (m->ol_flags & RTE_MBUF_F_TX_L4_MASK) == > + RTE_MBUF_F_TX_UDP_CKSUM || > + (m->ol_flags & RTE_MBUF_F_TX_IP_CKSUM)) { As far as I can see following drivers also has similar issue, can maintainers (cc'ed) of below drivers check: bnxt dpaa hnic ionic liquidio mlx4 mvneta mvpp2 qede ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Patch v2] net/netvsc: fix the calculation of checksums based on mbuf flag 2022-04-26 21:56 ` Ferruh Yigit @ 2022-04-26 22:09 ` Ajit Khaparde 0 siblings, 0 replies; 4+ messages in thread From: Ajit Khaparde @ 2022-04-26 22:09 UTC (permalink / raw) To: Ferruh Yigit Cc: Somnath Kotur, Hemant Agrawal, Sachin Saxena, Ziyang Xuan, Xiaoyun Wang, Guoyang Zhou, Andrew Boyer, Shijith Thotton, Srisivasubramanian Srinivasan, Matan Azrad, Viacheslav Ovsiienko, Zyta Szpak, Liron Himi, Rasesh Mody, Devendra Singh Rawat, Long Li, dpdk stable, longli, Stephen Hemminger, dpdk-dev [-- Attachment #1: Type: text/plain, Size: 1777 bytes --] On Tue, Apr 26, 2022 at 2:57 PM Ferruh Yigit <ferruh.yigit@xilinx.com> wrote: > > On 3/24/2022 5:46 PM, longli@linuxonhyperv.com wrote: > > From: Long Li <longli@microsoft.com> > > > > The netvsc should use RTE_MBUF_F_TX_L4_MASK and check the masked value to > > decide the correct way to calculate checksums. > > > > Not checking for RTE_MBUF_F_TX_L4_MASK results in incorrect RNDIS packets > > sent to VSP and incorrect checksums calculated by the VSP. > > > > Fixes: 4e9c73e96e ("net/netvsc: add Hyper-V network device") > > Cc: stable@dpdk.org > > Signed-off-by: Long Li <longli@microsoft.com> > > --- > > drivers/net/netvsc/hn_rxtx.c | 13 +++++++++---- > > 1 file changed, 9 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/net/netvsc/hn_rxtx.c b/drivers/net/netvsc/hn_rxtx.c > > index 028f176c7e..34f40be5b8 100644 > > --- a/drivers/net/netvsc/hn_rxtx.c > > +++ b/drivers/net/netvsc/hn_rxtx.c > > @@ -1348,8 +1348,11 @@ static void hn_encap(struct rndis_packet_msg *pkt, > > *pi_data = NDIS_LSO2_INFO_MAKEIPV4(hlen, > > m->tso_segsz); > > } > > - } else if (m->ol_flags & > > - (RTE_MBUF_F_TX_TCP_CKSUM | RTE_MBUF_F_TX_UDP_CKSUM | RTE_MBUF_F_TX_IP_CKSUM)) { > > + } else if ((m->ol_flags & RTE_MBUF_F_TX_L4_MASK) == > > + RTE_MBUF_F_TX_TCP_CKSUM || > > + (m->ol_flags & RTE_MBUF_F_TX_L4_MASK) == > > + RTE_MBUF_F_TX_UDP_CKSUM || > > + (m->ol_flags & RTE_MBUF_F_TX_IP_CKSUM)) { > > As far as I can see following drivers also has similar issue, can > maintainers (cc'ed) of below drivers check: > > bnxt ACK > dpaa > hnic > ionic > liquidio > mlx4 > mvneta > mvpp2 > qede [-- Attachment #2: S/MIME Cryptographic Signature --] [-- Type: application/pkcs7-signature, Size: 4218 bytes --] ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-04-26 22:09 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-03-24 17:46 [Patch v2] net/netvsc: fix the calculation of checksums based on mbuf flag longli 2022-04-26 21:56 ` Ferruh Yigit 2022-04-26 21:56 ` Ferruh Yigit 2022-04-26 22:09 ` Ajit Khaparde
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).