qemu-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]