linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net v3] net: thunderx: Fix TCP/UDP checksum offload for IPv6 pkts
@ 2017-11-23 19:30 Aleksey Makarov
  2017-11-23 19:34 ` Aleksey Makarov
  0 siblings, 1 reply; 3+ messages in thread
From: Aleksey Makarov @ 2017-11-23 19:30 UTC (permalink / raw)
  To: netdev
  Cc: linux-kernel, Goutham, Sunil, Robert Richter, Florian Westphal,
	Eric Dumazet, Aleksey Makarov, Sunil Goutham, Aleksey Makarov,
	linux-arm-kernel

From: Sunil Goutham <sgoutham@cavium.com>

Don't offload IP header checksum to NIC.

This fixes a previous patch which enabled checksum offloading
for both IPv4 and IPv6 packets.  So L3 checksum offload was
getting enabled for IPv6 pkts.  And HW is dropping these pkts
as it assumes the pkt is IPv4 when IP csum offload is set
in the SQ descriptor.

Fixes:  3a9024f52c2e ("net: thunderx: Enable TSO and checksum offloads for ipv6")
Signed-off-by: Sunil Goutham <sgoutham@cavium.com>
Signed-off-by: Aleksey Makarov <aleksey.makarov@auriga.com>
---
 drivers/net/ethernet/cavium/thunder/nicvf_queues.c | 1 -
 1 file changed, 1 deletion(-)

v3:
- fix the Fixes: tag (David Miller)

v2: https://lkml.kernel.org/r/20171123144158.26111-1-aleksey.makarov@auriga.com
- don't enable checksum offloading both for IPv4 and IPv6 (Eric Dumazet)

v1: https://lkml.kernel.org/r/20171122123727.23580-1-aleksey.makarov@auriga.com


diff --git a/drivers/net/ethernet/cavium/thunder/nicvf_queues.c b/drivers/net/ethernet/cavium/thunder/nicvf_queues.c
index d4496e9afcdf..8b2c31e2a2b0 100644
--- a/drivers/net/ethernet/cavium/thunder/nicvf_queues.c
+++ b/drivers/net/ethernet/cavium/thunder/nicvf_queues.c
@@ -1355,7 +1355,6 @@ nicvf_sq_add_hdr_subdesc(struct nicvf *nic, struct snd_queue *sq, int qentry,
 
 	/* Offload checksum calculation to HW */
 	if (skb->ip_summed == CHECKSUM_PARTIAL) {
-		hdr->csum_l3 = 1; /* Enable IP csum calculation */
 		hdr->l3_offset = skb_network_offset(skb);
 		hdr->l4_offset = skb_transport_offset(skb);
 
-- 
2.15.0

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH net v3] net: thunderx: Fix TCP/UDP checksum offload for IPv6 pkts
  2017-11-23 19:30 [PATCH net v3] net: thunderx: Fix TCP/UDP checksum offload for IPv6 pkts Aleksey Makarov
@ 2017-11-23 19:34 ` Aleksey Makarov
  2017-11-25 14:54   ` David Miller
  0 siblings, 1 reply; 3+ messages in thread
From: Aleksey Makarov @ 2017-11-23 19:34 UTC (permalink / raw)
  To: netdev
  Cc: linux-kernel, Goutham, Sunil, Robert Richter, Florian Westphal,
	Eric Dumazet, Aleksey Makarov, Sunil Goutham, Aleksey Makarov,
	linux-arm-kernel

From: Sunil Goutham <sgoutham@cavium.com>

Don't offload IP header checksum to NIC.

This fixes a previous patch which enabled checksum offloading
for both IPv4 and IPv6 packets.  So L3 checksum offload was
getting enabled for IPv6 pkts.  And HW is dropping these pkts
as it assumes the pkt is IPv4 when IP csum offload is set
in the SQ descriptor.

Fixes:  3a9024f52c2e ("net: thunderx: Enable TSO and checksum offloads for ipv6")
Signed-off-by: Sunil Goutham <sgoutham@cavium.com>
Signed-off-by: Aleksey Makarov <aleksey.makarov@auriga.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
---
 drivers/net/ethernet/cavium/thunder/nicvf_queues.c | 1 -
 1 file changed, 1 deletion(-)

v3:
- fix the Fixes: tag (David Miller)
- add Reviewed-by Eric Dumazet

v2: https://lkml.kernel.org/r/20171123144158.26111-1-aleksey.makarov@auriga.com
- don't enable checksum offloading both for IPv4 and IPv6 (Eric Dumazet)

v1: https://lkml.kernel.org/r/20171122123727.23580-1-aleksey.makarov@auriga.com


diff --git a/drivers/net/ethernet/cavium/thunder/nicvf_queues.c b/drivers/net/ethernet/cavium/thunder/nicvf_queues.c
index d4496e9afcdf..8b2c31e2a2b0 100644
--- a/drivers/net/ethernet/cavium/thunder/nicvf_queues.c
+++ b/drivers/net/ethernet/cavium/thunder/nicvf_queues.c
@@ -1355,7 +1355,6 @@ nicvf_sq_add_hdr_subdesc(struct nicvf *nic, struct snd_queue *sq, int qentry,
 
 	/* Offload checksum calculation to HW */
 	if (skb->ip_summed == CHECKSUM_PARTIAL) {
-		hdr->csum_l3 = 1; /* Enable IP csum calculation */
 		hdr->l3_offset = skb_network_offset(skb);
 		hdr->l4_offset = skb_transport_offset(skb);
 
-- 
2.15.0

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH net v3] net: thunderx: Fix TCP/UDP checksum offload for IPv6 pkts
  2017-11-23 19:34 ` Aleksey Makarov
@ 2017-11-25 14:54   ` David Miller
  0 siblings, 0 replies; 3+ messages in thread
From: David Miller @ 2017-11-25 14:54 UTC (permalink / raw)
  To: aleksey.makarov
  Cc: netdev, linux-kernel, Sunil.Goutham, rric, fw, eric.dumazet,
	aleksey.makarov, sgoutham, linux-arm-kernel

From: Aleksey Makarov <aleksey.makarov@auriga.com>
Date: Thu, 23 Nov 2017 22:34:31 +0300

> From: Sunil Goutham <sgoutham@cavium.com>
> 
> Don't offload IP header checksum to NIC.
> 
> This fixes a previous patch which enabled checksum offloading
> for both IPv4 and IPv6 packets.  So L3 checksum offload was
> getting enabled for IPv6 pkts.  And HW is dropping these pkts
> as it assumes the pkt is IPv4 when IP csum offload is set
> in the SQ descriptor.
> 
> Fixes:  3a9024f52c2e ("net: thunderx: Enable TSO and checksum offloads for ipv6")
> Signed-off-by: Sunil Goutham <sgoutham@cavium.com>
> Signed-off-by: Aleksey Makarov <aleksey.makarov@auriga.com>
> Reviewed-by: Eric Dumazet <edumazet@google.com>

Applied.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-11-25 14:54 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-23 19:30 [PATCH net v3] net: thunderx: Fix TCP/UDP checksum offload for IPv6 pkts Aleksey Makarov
2017-11-23 19:34 ` Aleksey Makarov
2017-11-25 14:54   ` David Miller

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).