Caught by code review, offloading checksum of IPv6 UDP packets was wrong
as the IPv6 header used for the pseudo header checksum was wrong.

Fixes: cb0cbffbe8fb ("netdev-linux: Favour inner packet for multi-encapsulated 
TSO.")
Signed-off-by: David Marchand <david.march...@redhat.com>
---
 lib/netdev-linux.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c
index 8a463c2efd..af7438f1ee 100644
--- a/lib/netdev-linux.c
+++ b/lib/netdev-linux.c
@@ -7214,7 +7214,7 @@ netdev_linux_prepend_vnet_hdr(struct dp_packet *b, int 
mtu)
                 const struct ip_header *ip_hdr = l3_off;
                 csum = ~csum_finish(packet_csum_pseudoheader(ip_hdr));
             } else if (dp_packet_hwol_tx_ipv6(b)) {
-                const struct ovs_16aligned_ip6_hdr *ip6_hdr = l4_off;
+                const struct ovs_16aligned_ip6_hdr *ip6_hdr = l3_off;
                 csum = ~csum_finish(packet_csum_pseudoheader6(ip6_hdr));
             }
 
-- 
2.48.1

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to