[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [Bug 1297487] Re: MTU not honored in virtio vnet
From: |
Ian Wells |
Subject: |
[Qemu-devel] [Bug 1297487] Re: MTU not honored in virtio vnet |
Date: |
Tue, 12 Aug 2014 00:28:35 -0000 |
Seems to me that the issue is not that the MTU isn't being honoured, but
that the MTU should be checked *before* TSO assembly and not *after*.
Assembly should happen outside the VM if the VM has enabled it on the
interface internally, and clearly the incoming segments (not packets, at
this point) may be longer than the MTU.
--
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1297487
Title:
MTU not honored in virtio vnet
Status in QEMU:
New
Status in Salt:
New
Status in “qemu-kvm” package in Ubuntu:
Confirmed
Bug description:
I am observing a potential regression/different behavior between rel.
14.04 (dev branch) and release 13.04.
My hardware is: Cisco UCS blade B200-M3 and the network adapter card:
Cisco UCS VIC 1240.
lsb_release -rd
Description: Ubuntu Trusty Tahr (development branch)
Release: 14.04
uname -a
Linux konan2 3.13.0-19-generic #40-Ubuntu SMP Mon Mar 24 02:36:06 UTC 2014
x86_64 x86_64 x86_64 GNU/Linux
The problem:
After starting a kvm with virtio interfaces I am passing HTTP traffic via an
external network traffic simulator.
The tool is sending a TCP packet of 3481B, because the tool MTU is set to
1400B, it splits the packets into 3 TCP segments.
When the 3 segments are received at the host eth1 interface, the host (ubuntu
14.04) reassembles the TCP packets into a larger packet (GRO), then passes the
packet up on vnet1. At this point, because vnet1 MTU is 1500B, it is supposed
to re-segment the packet and pass the 3 segments up to the VM. But it passes
the big 3481B packet instead.
This behavior did not happen when I tried the same scenario in release
13.04
I can disable this behavior by disabling TSO (TCP segment offloading
in the vnet), but I did not have to do this in rel. 13.04 and I feel
the MTU is not honored as it should be with rel. 14.04.
ip link show | grep eth1
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br1 state
UP mode DEFAULT group default qlen 1000
ip link show | grep vnet1
16: vnet1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master
br1 state UNKNOWN mode DEFAULT group default qlen 500
I am attaching two tcpdump/pcap traces that show a TCP transaction
passing on vnet1 when TSO is on and when TSO is off.
Please see:
- vnet1_tso_on.pcap
- vnet1_tso_off.pcap
in attachment.
I noticed there was a driver upgrade in rel. 14.04:
in 14.04:
ethtool -i eth1
driver: enic
version: 2.1.1.50
firmware-version: 2.1(3a)
bus-info: 0000:07:00.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no
ethtool -i vnet1
driver: tun
version: 1.6
firmware-version:
bus-info: tap
supports-statistics: no
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no
ethtool -k vnet1
Features for vnet1:
rx-checksumming: off [fixed]
tx-checksumming: on
tx-checksum-ipv4: off [fixed]
tx-checksum-ip-generic: on
tx-checksum-ipv6: off [fixed]
tx-checksum-fcoe-crc: off [fixed]
tx-checksum-sctp: off [fixed]
scatter-gather: on
tx-scatter-gather: on
tx-scatter-gather-fraglist: on
tcp-segmentation-offload: off
tx-tcp-segmentation: off
tx-tcp-ecn-segmentation: off
tx-tcp6-segmentation: off
udp-fragmentation-offload: on
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off [fixed]
rx-vlan-offload: off [fixed]
tx-vlan-offload: on
ntuple-filters: off [fixed]
receive-hashing: off [fixed]
highdma: off [fixed]
rx-vlan-filter: off [fixed]
vlan-challenged: off [fixed]
tx-lockless: off [fixed]
netns-local: off [fixed]
tx-gso-robust: off [fixed]
tx-fcoe-segmentation: off [fixed]
tx-gre-segmentation: off [fixed]
tx-ipip-segmentation: off [fixed]
tx-sit-segmentation: off [fixed]
tx-udp_tnl-segmentation: off [fixed]
tx-mpls-segmentation: off [fixed]
fcoe-mtu: off [fixed]
tx-nocache-copy: on
loopback: off [fixed]
rx-fcs: off [fixed]
rx-all: off [fixed]
tx-vlan-stag-hw-insert: on
rx-vlan-stag-hw-parse: off [fixed]
rx-vlan-stag-filter: off [fixed]
l2-fwd-offload: off [fixed]
in 13.04 :
ethtool -i eth1
driver: enic
version: 2.1.1.39
firmware-version: 2.1(3a)
bus-info: 0000:07:00.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no
ethtool -i vnet1
driver: tun
version: 1.6
firmware-version:
bus-info: tap
supports-statistics: no
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no
ethtool -k vnet1
Features for vnet1:
rx-checksumming: off [fixed]
tx-checksumming: on
tx-checksum-ipv4: off [fixed]
tx-checksum-ip-generic: on
tx-checksum-ipv6: off [fixed]
tx-checksum-fcoe-crc: off [fixed]
tx-checksum-sctp: off [fixed]
scatter-gather: on
tx-scatter-gather: on
tx-scatter-gather-fraglist: on
tcp-segmentation-offload: on
tx-tcp-segmentation: on
tx-tcp-ecn-segmentation: on
tx-tcp6-segmentation: on
udp-fragmentation-offload: on
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off [fixed]
rx-vlan-offload: off [fixed]
tx-vlan-offload: off [fixed]
ntuple-filters: off [fixed]
receive-hashing: off [fixed]
highdma: off [fixed]
rx-vlan-filter: off [fixed]
vlan-challenged: off [fixed]
tx-lockless: off [fixed]
netns-local: off [fixed]
tx-gso-robust: off [fixed]
tx-fcoe-segmentation: off [fixed]
fcoe-mtu: off [fixed]
To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1297487/+subscriptions
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-devel] [Bug 1297487] Re: MTU not honored in virtio vnet,
Ian Wells <=