xenserver: Pull slave MTU from bond record.
authorEthan Jackson <ethan@nicira.com>
Thu, 19 May 2011 22:52:54 +0000 (15:52 -0700)
committerEthan Jackson <ethan@nicira.com>
Tue, 24 May 2011 22:01:56 +0000 (15:01 -0700)
The MTU of the fake bond interface and the slaves participating in
a bond should all agree.  The correct long term solution to this
problem is to remove the fake bond interface altogether.  Until
that's possible, we simply set the MTU of the slaves.

Signed-off-by: Ethan Jackson <ethan@nicira.com>
xenserver/opt_xensource_libexec_InterfaceReconfigureVswitch.py

index 697df5f..10c6bd2 100644 (file)
@@ -571,6 +571,12 @@ class DatapathVswitch(Datapath):
         # when they are added, and a network device that is down
         # always reports "no carrier".
         physical_devices = datapath_get_physical_pifs(self._dp)
+
+        if pif_is_bond(self._dp):
+            brec = db().get_pif_record(self._dp)
+            bond_mtu = mtu_setting(brec['network'], "PIF", brec['other_config'])
+        else:
+            bond_mtu = None
         
         for p in physical_devices:
             prec = db().get_pif_record(p)
@@ -578,7 +584,10 @@ class DatapathVswitch(Datapath):
 
             dev = pif_netdev_name(p)
 
-            mtu = mtu_setting(prec['network'], "PIF", oc)
+            if bond_mtu:
+                mtu = bond_mtu
+            else:
+                mtu = mtu_setting(prec['network'], "PIF", oc)
 
             netdev_up(dev, mtu)