Note, this failed github CI with the following error message: ../../tests/testsuite: line 4034: ./atconfig: No such file or directory
This appears to be a false negative. -M On Mon, Feb 12, 2024 at 2:50 PM Mike Pattrick <[email protected]> wrote: > > Previously if an OVS configuration nested multiple layers of UDP tunnels > like VXLAN or GENEVE on top of each other through netdev-linux > interfaces, the vnet header would be incorrectly set to the outermost > UDP tunnel layer instead of the intermediary tunnel layer. > > This resulted in the middle UDP tunnel not checksum offloading properly. > > Fixes: 3337e6d91c5b ("userspace: Enable L4 checksum offloading by default.") > Reported-by: David Marchand <[email protected]> > Signed-off-by: Mike Pattrick <[email protected]> > --- > lib/netdev-linux.c | 15 ++++++++++++--- > 1 file changed, 12 insertions(+), 3 deletions(-) > > diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c > index 1b2e5b6c2..7a156cc28 100644 > --- a/lib/netdev-linux.c > +++ b/lib/netdev-linux.c > @@ -7239,14 +7239,23 @@ netdev_linux_prepend_vnet_hdr(struct dp_packet *b, > int mtu) > vnet->csum_offset = (OVS_FORCE __virtio16) __builtin_offsetof( > struct tcp_header, tcp_csum); > } else if (dp_packet_hwol_l4_is_udp(b)) { > - struct udp_header *udp_hdr = dp_packet_l4(b); > + /* Favour the inner packet when indicating checksum offsets. */ > + void *l3_off = dp_packet_inner_l3(b); > + void *l4_off = dp_packet_inner_l4(b); > + > + if (!l3_off || !l4_off) { > + l3_off = dp_packet_l3(b); > + l4_off = dp_packet_l4(b); > + } > + struct udp_header *udp_hdr = l4_off; > + > ovs_be16 csum = 0; > > if (dp_packet_hwol_is_ipv4(b)) { > - const struct ip_header *ip_hdr = dp_packet_l3(b); > + 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 = > dp_packet_l3(b); > + const struct ovs_16aligned_ip6_hdr *ip6_hdr = l4_off; > csum = ~csum_finish(packet_csum_pseudoheader6(ip6_hdr)); > } > > -- > 2.39.3 > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
