[ovs-dev] [PATCH] xenserver: Kill bond slaves' dhclients when bringing up bond master.
Ian Campbell
Ian.Campbell at eu.citrix.com
Fri Jul 16 08:14:47 UTC 2010
On Thu, 2010-07-15 at 20:51 +0100, Ben Pfaff wrote:
> 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.
I remember considering this case as well when I reviewed the earlier.
patch. At first I thought it was a problem but then I convinced myself
otherwise -- looks like I should trust my first instinct.
> This commit fixes it.
Looks good to me.
> Signed-off-by: Ben Pfaff <blp at nicira.com>
> Reported-by: Michael Mao <mmao at nicira.com>
Acked-by: Ian Campbell <Ian.Campbell at citrix.com>
> CC: Dominic Curran <dominic.curran at citrix.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
More information about the dev
mailing list