Skip to content

Commit

Permalink
virtio: vhost checksum problem for ipv6
Browse files Browse the repository at this point in the history
When checksum is enable for IPv6, it erroneously set the flag
VNET_BUFFER_F_OFFLOAD_IP_CKSUM. That flag is meant for ip4 packets only.

Type: fix
Ticket: VPP-1857

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: Id03b2937bfa34e2a9b50a36aafe0700bad7fb95e
  • Loading branch information
Steven Luong committed Apr 5, 2020
1 parent 597d4df commit f78294d
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions src/vnet/devices/virtio/vhost_user_input.c
Original file line number Diff line number Diff line change
Expand Up @@ -275,14 +275,14 @@ vhost_user_handle_rx_offload (vlib_buffer_t * b0, u8 * b0_data,
vnet_buffer (b0)->l4_hdr_offset = hdr->csum_start;
b0->flags |= (VNET_BUFFER_F_L2_HDR_OFFSET_VALID |
VNET_BUFFER_F_L3_HDR_OFFSET_VALID |
VNET_BUFFER_F_L4_HDR_OFFSET_VALID |
VNET_BUFFER_F_OFFLOAD_IP_CKSUM);
VNET_BUFFER_F_L4_HDR_OFFSET_VALID);

if (PREDICT_TRUE (ethertype == ETHERNET_TYPE_IP4))
{
ip4_header_t *ip4 = (ip4_header_t *) (b0_data + l2hdr_sz);
l4_proto = ip4->protocol;
b0->flags |= VNET_BUFFER_F_IS_IP4;
b0->flags |= (VNET_BUFFER_F_IS_IP4 |
VNET_BUFFER_F_OFFLOAD_IP_CKSUM);
}
else if (PREDICT_TRUE (ethertype == ETHERNET_TYPE_IP6))
{
Expand Down

0 comments on commit f78294d

Please sign in to comment.