[ovs-dev] InterfaceReconfigureVswitch.py fix didn't make it into xen-api?

Ben Pfaff blp at nicira.com
Fri Feb 11 18:23:54 UTC 2011


The following fix to InterfaceReconfigureVswitch.py was committed to
the OVS repository in July 2010.  It has an ack from Ian and I CC'd it
to Dominic, but it looks to me like it didn't make it upstream into
xen-api.hg.  Could you check on that for me?

As background, we'd like OVS to not have to replace these scripts at
all, but of course we'll have to if we don't get all of our bugfixes
included upstream.

Thanks,

Ben.

--8<--------------------------cut here-------------------------->8--

From: Ben Pfaff <blp at nicira.com>
Date: Fri, 16 Jul 2010 09:22:23 -0700
Subject: [PATCH] xenserver: Kill bond slaves' dhclients when bringing up bond master.

This fixes the converse of the problem addressed by commit fe19e820
"xenserver: Kill bond master's dhclient when bringing up bond slave".  In
that commit's log message, I claimed that the converse was not a problem,
but I was wrong.  I must have screwed up in testing, because it really is
a problem.  This commit fixes it.

Signed-off-by: Ben Pfaff <blp at nicira.com>
Acked-by: Ian Campbell <Ian.Campbell at citrix.com>
CC: Dominic Curran <dominic.curran at citrix.com>
Reported-by: Michael Mao <mmao at nicira.com>
Bug #2668.
---
 AUTHORS                                            |    1 +
 ...ensource_libexec_InterfaceReconfigureVswitch.py |   18 +++++++++++++-----
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/AUTHORS b/AUTHORS
index b0f31d9..97f7c67 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -37,6 +37,7 @@ Jan Medved              jmedved at juniper.net
 Jeongkeun Lee           jklee at hp.com
 Joan Cirer              joan at ev0.net
 John Galgay             john at galgay.net
+Michael Mao             mmao at nicira.com
 Paulo Cravero           pcravero at as2594.net
 Peter Balland           peter at nicira.com
 Ram Jothikumar          rjothikumar at nicira.com
diff --git a/xenserver/opt_xensource_libexec_InterfaceReconfigureVswitch.py b/xenserver/opt_xensource_libexec_InterfaceReconfigureVswitch.py
index 1e45759..ef2f1fe 100644
--- a/xenserver/opt_xensource_libexec_InterfaceReconfigureVswitch.py
+++ b/xenserver/opt_xensource_libexec_InterfaceReconfigureVswitch.py
@@ -431,17 +431,25 @@ class DatapathVswitch(Datapath):
     def bring_down_existing(self):
         # interface-reconfigure is never explicitly called to down a
         # bond master.  However, when we are called to up a slave it
-        # is implicit that we are destroying the master.
+        # is implicit that we are destroying the master.  Conversely,
+        # when we are called to up a bond is is implicit that we are
+        # taking down the slaves.
         #
-        # This is (only) important in the case where the bond master
-        # uses DHCP.  We need to kill the dhclient process, otherwise
-        # bringing the bond master back up later will fail because
-        # ifup will refuse to start a duplicate dhclient.
+        # This is (only) important in the case where the device being
+        # implicitly taken down uses DHCP.  We need to kill the
+        # dhclient process, otherwise performing the inverse operation
+        # later later will fail because ifup will refuse to start a
+        # duplicate dhclient.
         bond_masters = pif_get_bond_masters(self._pif)
         for master in bond_masters:
             log("action_up: bring down bond master %s" % (pif_netdev_name(master)))
             run_command(["/sbin/ifdown", pif_bridge_name(master)])
 
+        bond_slaves = pif_get_bond_slaves(self._pif)
+        for slave in bond_slaves:
+            log("action_up: bring down bond slave %s" % (pif_netdev_name(slave)))
+            run_command(["/sbin/ifdown", pif_bridge_name(slave)])
+
     def configure(self):
         # Bring up physical devices. ovs-vswitchd initially enables or
         # disables bond slaves based on whether carrier is detected
-- 
1.7.1





More information about the dev mailing list