From: Sunil Goutham <[email protected]>
This fixes a previous patch which missed some changes
and due to which 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: bbbb494fd005 ("net: thunderx: Enable TSO and checksum offloads for ipv6")
Signed-off-by: Sunil Goutham <[email protected]>
Signed-off-by: Aleksey Makarov <[email protected]>
---
drivers/net/ethernet/cavium/thunder/nicvf_queues.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/cavium/thunder/nicvf_queues.c b/drivers/net/ethernet/cavium/thunder/nicvf_queues.c
index d4496e9afcdf..184d5bdbe7e0 100644
--- a/drivers/net/ethernet/cavium/thunder/nicvf_queues.c
+++ b/drivers/net/ethernet/cavium/thunder/nicvf_queues.c
@@ -1355,10 +1355,11 @@ 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);
+ /* Enable IP HDR csum calculation for V4 pkts */
+ hdr->csum_l3 = (ip.v4->version == 4) ? 1 : 0;
proto = (ip.v4->version == 4) ? ip.v4->protocol :
ip.v6->nexthdr;
--
2.15.0
From 1584856294489241605@xxx Thu Nov 23 11:32:23 +0000 2017
X-GM-THRID: 1584856294489241605
X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread