DPDK patches and discussions
 help / color / mirror / Atom feed
* [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).