[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