xenserver: Bring up bond slave device before adding to bond.
authorBen Pfaff <blp@nicira.com>
Fri, 5 Jun 2009 21:08:36 +0000 (14:08 -0700)
committerBen Pfaff <blp@nicira.com>
Fri, 5 Jun 2009 21:08:36 +0000 (14:08 -0700)
commit8826590a1da946131ef7dcbfdfaabe3d5ee9a95d
tree38ed8783b270363a8a5faef29c3d0591b4b027df
parentd8319dd499fddf187406bd570c1eb895955309cb
xenserver: Bring up bond slave device before adding to bond.

Until now, we've added network devices to the ovs-vswitchd configuration
file before bringing them up.  This works suboptimally for bond slaves,
because vswitchd takes the initial carrier state of the bond slaves as
whether to initially enable or disable them, and a device that is down
always reports "no carrier".  So this commit changes interface-reconfigure
to bring up bond slaves before adding them to the configuration file,
which gives them a chance to detect carrier before vswitchd checks for it.

This might still be an imperfect situation, because it takes quite a while
(maybe 1 second?) for some network devices to detect carrier after being
brought up.  But the kernel implementation of bonding seems to do the very
same thing, so we should be at least no worse than it.

Incidentally, this is only important for bonds that have long updelays.
XenServer uses an updelay of 31 seconds (!), so it is especially important
there.

Bug #1247.
xenserver/opt_xensource_libexec_interface-reconfigure