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>
Thu, 19 May 2011 23:33:11 +0000 (16:33 -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 697df5f10cbba7d91310ef5c2019ffca4ba8b506..10c6bd20f7442791255f6f0cd8baf1069a8b68c9 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)