Bug 733651

Summary: netfront MTU drops to 1500 after domain migration
Product: Red Hat Enterprise Linux 6 Reporter: Paolo Bonzini <pbonzini>
Component: kernelAssignee: Paolo Bonzini <pbonzini>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: high Docs Contact:
Priority: medium    
Version: 6.3CC: drjones, jzheng, leiwang, lersek, mrezanin, pasik, pbonzini, qguan, qwan, xen-maint, yuzhang
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: kernel-2.6.32-206.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 733416 Environment:
Last Closed: 2011-12-06 14:06:39 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Bug Depends On: 697021, 720347    
Bug Blocks: 653816    
Attachments:
Description Flags
forward port of the RHEL5 patch none

Description Paolo Bonzini 2011-08-26 11:18:47 UTC
+++ This bug was initially created as a clone of Bug #733416 +++

Xen drops the MTU of a guest's netfront interface to 1500 after migration.

For now I'm attaching the bug to kernel-xen, but I am still not really sure whether this is the right component.

Test info for QE:

- connect two machines with a crossover cable so that eth0 is the crossover cable and eth1 is the public network

- configure Xen so that you'll be able to migrate between the machines (shared storage, relocation server, etc.)

- configure the cross link on one machine like

# Intel Corporation 82574L Gigabit Network Connection
DEVICE=eth0
HWADDR=00:21:5E:6E:F0:29
ONBOOT=yes
HOTPLUG=no
IPADDR=169.254.100.200
NETMASK=255.255.0.0
NETWORK=169.254.0.0
MTU=9000

and similarly on the other machine

- on both machines, ensure the Xen bridge connects the right devices, for example by changing the network-script line in /etc/xen/xend-config.sxp to this:

(network-script 'network-bridge netdev=eth0 bridge=xenbr0')

- on both machines, ensure the Xen bridge has its MTU set to 9000, for example by adding this (huge hack) to /etc/init.d/xend at the end of function await_daemons_up

sleep 5
ip link set mtu 9000 dev vif0.1
ip link set mtu 9000 dev peth0
ip link set mtu 9000 dev xenbr0

- install a guest in one of the machines.  ensure the guest has also a static IP configuration in the same subnet, and also has MTU=9000 in its /etc/sysconfig/network-scripts/ifcfg-eth0.  Also, ensure that the guest is using xenbr0 and not virbr0.

- run ifconfig around "xm create"

ifconfig > before
xm create test1
# wait a few seconds
ifconfig | diff before -

The diff should show that the new vif interface has MTU=9000.  Similarly, "ifconfig" in the guest should show MTU=9000.

- ensure that you can ping the guest from both hosts.

- migrate the guest from one host to the other.  before migrating, run

ifconfig > before

on the guest and *destination* host and after migration run

ifconfig | diff before -

For both the guest and the destination host, the diff should show that the virtual network interface (vifN.0 on the host, eth0 on the guest) has MTU=9000.  

- ensure that you can ping the guest from both hosts

--- Additional comment from pm-rhel@redhat.com on 2011-08-26 04:49:40 EDT ---

This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux maintenance release.  Product Management has requested
further review of this request by Red Hat Engineering, for potential
inclusion in a Red Hat Enterprise Linux Update release for currently deployed
products.  This request is not yet committed for inclusion in an Update
release.

Comment 1 Paolo Bonzini 2011-08-29 12:18:44 UTC
Created attachment 520373 [details]
forward port of the RHEL5 patch

Upstream did the same using the hw_features field (and ndo_fix_features/ndo_set_features; see commits fb50793 and later) that is not in RHEL6, so I'm instead forward porting the RHEL5 changes.

Comment 2 RHEL Product and Program Management 2011-08-29 14:10:39 UTC
This request was evaluated by Red Hat Product Management for inclusion
in a Red Hat Enterprise Linux maintenance release. Product Management has 
requested further review of this request by Red Hat Engineering, for potential
inclusion in a Red Hat Enterprise Linux Update release for currently deployed 
products. This request is not yet committed for inclusion in an Update release.

Comment 3 Paolo Bonzini 2011-08-31 08:38:34 UTC
> - on both machines, ensure the Xen bridge has its MTU set to 9000, for example
> by adding this (huge hack) to /etc/init.d/xend at the end of function
> await_daemons_up
> 
> sleep 5
> ip link set mtu 9000 dev vif0.1
> ip link set mtu 9000 dev peth0
> ip link set mtu 9000 dev xenbr0

This is not necessary if you have the patch for bug 733417.

Comment 4 Aristeu Rozanski 2011-10-05 15:14:46 UTC
Patch(es) available on kernel-2.6.32-206.el6

Comment 7 Qixiang Wan 2011-10-09 07:26:33 UTC
Verified with RHEL6.2-20111005.1 (kernel-2.6.32-206.el6, both 32 and 64 bit PV guests), host is kernel-xen-2.6.18-274.5.1.el5.x86_64 + xen-3.0.3-132.el5_7.1.x86_64 which has the fixes for bug 738389, bug 738608 and bug 738610.

Test setup as bug 738608 comment 6. After migrate guest from source to destination, the MTU of vif in guest can keep the value of 9000. Change bug to VERIFIED.

Comment 8 errata-xmlrpc 2011-12-06 14:06:39 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHSA-2011-1530.html