From: Steven Luong Date: Mon, 27 Jan 2020 18:37:56 +0000 (-0800) Subject: interface: Add missing ip4 udp->checksum = 0 prior to computing checksum X-Git-Tag: v20.09-rc0~711 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F53%2F24553%2F2;p=vpp.git interface: Add missing ip4 udp->checksum = 0 prior to computing checksum For ip4 tcp, ip6 tcp, and ip6 udp packet, we set checksum = 0 prior to computing the checksum. We missed ip4 udp case. This oversight requires all clients to set udp->checksum = 0 if ip4 udp checksum offload is needed. Type: fix Signed-off-by: Steven Luong Change-Id: Ic608811e82099f3bec469e123671e9b281f38d76 --- diff --git a/src/vnet/interface_output.c b/src/vnet/interface_output.c index 73c7a31f010..eadee692919 100644 --- a/src/vnet/interface_output.c +++ b/src/vnet/interface_output.c @@ -189,7 +189,10 @@ calc_checksums (vlib_main_t * vm, vlib_buffer_t * b) th->checksum = ip4_tcp_udp_compute_checksum (vm, b, ip4); } else if (b->flags & VNET_BUFFER_F_OFFLOAD_UDP_CKSUM) - uh->checksum = ip4_tcp_udp_compute_checksum (vm, b, ip4); + { + uh->checksum = 0; + uh->checksum = ip4_tcp_udp_compute_checksum (vm, b, ip4); + } } else if (is_ip6) {