xenserver: Kill bond master's dhclient when bringing up bond slave.
authorBen Pfaff <blp@nicira.com>
Mon, 28 Jun 2010 17:34:10 +0000 (10:34 -0700)
committerBen Pfaff <blp@nicira.com>
Mon, 28 Jun 2010 17:39:03 +0000 (10:39 -0700)
commitfe19e820e4e543ee29b1b159be8ef8ee03947650
treef9bfba677265b044f5ae11d7b2caf94a25be3139
parent4cfffdd86bbb66408702eab2d9dbc8d1cfe51347
xenserver: Kill bond master's dhclient when bringing up bond slave.

interface-reconfigure is never explicitly called to down a bond master.
However, when it is called to up a slave it is implicit that we are
destroying the master.  The "bridge" version of interface-reconfigure
always "ifdown"s the bond master in such a case, but until now the
"vswitch" version has not done so.  Usually, it doesn't matter, because
the bond master network device disappears when the slave is brought up,
but one case was missed: for a bond master with an IP address obtained
via DHCP, the dhclient process needs to be killed, and we were not doing
it.  This commit starts doing it (by invoking ifdown on the bond master).

The dhclient process that hangs around doesn't cause problems until the
bond master is brought back up, at which point "ifup" fails because it
refuses to start another dhclient for the same interface.

The converse behavior is also important; that is, when a bond PIF is
brought up, interface-reconfigure is expected to implicitly take down its
slave PIFs.  My testing (on 5.5.0) shows that this behavior is already
correct.  At any rate, this commit does not change that behavior.

Bug #2668.
Bug #2734.

Signed-off-by: Ben Pfaff <blp@nicira.com>
xenserver/opt_xensource_libexec_InterfaceReconfigureVswitch.py