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 <sluong@cisco.com>
Change-Id: Ic608811e82099f3bec469e123671e9b281f38d76
th->checksum = ip4_tcp_udp_compute_checksum (vm, b, ip4);
}
else if (b->flags & VNET_BUFFER_F_OFFLOAD_UDP_CKSUM)
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);
+ }