diff options
author | Ben Pfaff <blp@nicira.com> | 2010-07-16 09:22:23 -0700 |
---|---|---|
committer | Ben Pfaff <blp@nicira.com> | 2010-07-16 09:22:28 -0700 |
commit | f51c1d9890c84c00950dbe5d174ef2682686bcb3 (patch) | |
tree | 3154d7049aee5b36d6d60fc4511554cdb332e90d | |
parent | ac7f2d4bb4a92a021553714d1a44c1c62c1817db (diff) | |
download | openvswitch-f51c1d9890c84c00950dbe5d174ef2682686bcb3.tar.gz |
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@nicira.com>
Acked-by: Ian Campbell <Ian.Campbell@citrix.com>
CC: Dominic Curran <dominic.curran@citrix.com>
Reported-by: Michael Mao <mmao@nicira.com>
Bug #2668.
-rw-r--r-- | AUTHORS | 1 | ||||
-rw-r--r-- | xenserver/opt_xensource_libexec_InterfaceReconfigureVswitch.py | 18 |
2 files changed, 14 insertions, 5 deletions
@@ -37,6 +37,7 @@ Jan Medved jmedved@juniper.net Jeongkeun Lee jklee@hp.com Joan Cirer joan@ev0.net John Galgay john@galgay.net +Michael Mao mmao@nicira.com Paulo Cravero pcravero@as2594.net Peter Balland peter@nicira.com Ram Jothikumar rjothikumar@nicira.com diff --git a/xenserver/opt_xensource_libexec_InterfaceReconfigureVswitch.py b/xenserver/opt_xensource_libexec_InterfaceReconfigureVswitch.py index 1e45759ad..ef2f1fe67 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 |