virtio: vhost gso is broken in some topology 64/24764/2
authorSteven Luong <sluong@cisco.com>
Thu, 30 Jan 2020 23:18:45 +0000 (15:18 -0800)
committerAndrew Yourtchenko <ayourtch@gmail.com>
Wed, 5 Feb 2020 08:33:38 +0000 (08:33 +0000)
commit7611d5d9e741edaea473a5db4a0f6cba39d4227e
tree82c01f6344cb05696b03d82409214bd7f918ec56
parent1934b13d3673ec1f86a025ed6094a9d5c0790170
virtio: vhost gso is broken in some topology

Recent modification added a call to vnet_gso_header_offset_parser in the
beginning of vhost_user_handle_tx_offload. The former routine may set tcp or
udp->checksum to 0. While it is appropriate to set it to 0 for the GSO packet,
it is broken and causes checksum error if the aformentiooned routine is called
by a non-GSO packet. The fix is to not call vhost_user_handle_tx_offload
if the buffer does not indicate checksum offload is needed.

Type: fix

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: I6e699d7a40b7887ff149cd8f77e8f0fa9374ef19
(cherry picked from commit 564e1672917e205d7ae79525bb937df18f8d764b)
src/vnet/devices/virtio/vhost_user_output.c