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 <b...@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 <b...@nicira.com>
Acked-by: Ian Campbell <ian.campb...@citrix.com>
CC: Dominic Curran <dominic.cur...@citrix.com>
Reported-by: Michael Mao <m...@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              jmed...@juniper.net
 Jeongkeun Lee           jk...@hp.com
 Joan Cirer              j...@ev0.net
 John Galgay             j...@galgay.net
+Michael Mao             m...@nicira.com
 Paulo Cravero           pcrav...@as2594.net
 Peter Balland           pe...@nicira.com
 Ram Jothikumar          rjothiku...@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


_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev_openvswitch.org

Reply via email to