Skip to content

Commit 92d668c

Browse files
authored
hypervisor: Disable TSO/UFO/CSUM offloads on virtio-net TAPs (#110)
Stop advertising VIRTIO_NET_F_{CSUM,GUEST_CSUM,*_TSO4,*_TSO6,*_UFO, *_ECN,CTRL_GUEST_OFFLOADS} so the guest computes full checksums and segments its own packets. This avoids CHECKSUM_PARTIAL packets reaching host NIC (which may disable tx-checksumming). See internal commit 9e0a1d495b734cb1e883c3b9876a9aac22f91e6e and #103 for more context. Closes #103. Signed-off-by: Hengqi Chen <hengqi.chen@gmail.com>
1 parent be7e375 commit 92d668c

1 file changed

Lines changed: 2 additions & 14 deletions

File tree

  • hypervisor/virtio-devices/src

hypervisor/virtio-devices/src/net.rs

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -456,20 +456,8 @@ impl Net {
456456
state.queue_size,
457457
)
458458
} else {
459-
let mut avail_features = 1 << VIRTIO_NET_F_CSUM
460-
| 1 << VIRTIO_NET_F_CTRL_GUEST_OFFLOADS
461-
| 1 << VIRTIO_NET_F_GUEST_CSUM
462-
| 1 << VIRTIO_NET_F_GUEST_ECN
463-
| 1 << VIRTIO_NET_F_GUEST_TSO4
464-
| 1 << VIRTIO_NET_F_GUEST_TSO6
465-
| 1 << VIRTIO_NET_F_GUEST_UFO
466-
| 1 << VIRTIO_NET_F_HOST_ECN
467-
| 1 << VIRTIO_NET_F_HOST_TSO4
468-
| 1 << VIRTIO_NET_F_HOST_TSO6
469-
| 1 << VIRTIO_NET_F_HOST_UFO
470-
| 1 << VIRTIO_NET_F_MTU
471-
| 1 << VIRTIO_RING_F_EVENT_IDX
472-
| 1 << VIRTIO_F_VERSION_1;
459+
let mut avail_features =
460+
1 << VIRTIO_NET_F_MTU | 1 << VIRTIO_RING_F_EVENT_IDX | 1 << VIRTIO_F_VERSION_1;
473461

474462
if iommu {
475463
avail_features |= 1u64 << VIRTIO_F_IOMMU_PLATFORM;

0 commit comments

Comments
 (0)