From: Justin Pettit Date: Mon, 14 Sep 2009 11:07:53 +0000 (-0700) Subject: vswitch: Correctly identify slave status in /proc compatibility layer X-Git-Tag: v0.90.6~17 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=2e8873af89047bc4093ad8f2755867af632b9363;p=sliver-openvswitch.git vswitch: Correctly identify slave status in /proc compatibility layer In the /proc compatibility layer, the bond member was reported as up immediately after link recovery, regardless of the updelay. I believe the compatibility code was correct if the check had been done with carrier, but since 'iface->enabled' already does that calculation, we can use it directly. Additinally, when a bond slave was enabled or disabled, the bond compatibility code was not being told to update its state. This commit makes that call. NIC-39 --- diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c index b13ed8dc4..c39670a3b 100644 --- a/vswitchd/bridge.c +++ b/vswitchd/bridge.c @@ -1525,6 +1525,7 @@ bond_enable_slave(struct iface *iface, bool enable) } iface->tag = tag_create_random(); } + port_update_bond_compat(port); } static void @@ -2977,8 +2978,7 @@ port_update_bond_compat(struct port *port) struct iface *iface = port->ifaces[i]; struct compat_bond_slave *slave = &bond.slaves[i]; slave->name = iface->name; - slave->up = ((iface->enabled && iface->delay_expires == LLONG_MAX) || - (!iface->enabled && iface->delay_expires != LLONG_MAX)); + slave->up = iface->enabled; if (slave->up) { bond.up = true; }