From 76ab2ea7fe0fae1fcd400df43b7f02239ee38222 Mon Sep 17 00:00:00 2001 From: Ethan Jackson Date: Mon, 7 Feb 2011 14:34:44 -0800 Subject: [PATCH] vswitchd: LACP attached status flapped. A bug introduced in the switch to bit mask LACP status caused the attached status of interfaces in a LACP bond to slowly flap. --- vswitchd/bridge.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c index f5c5af37..b369ced0 100644 --- a/vswitchd/bridge.c +++ b/vswitchd/bridge.c @@ -3129,7 +3129,8 @@ lacp_process_packet(const struct ofpbuf *packet, struct iface *iface) return; } - iface->lacp_status = LACP_CURRENT; + iface->lacp_status |= LACP_CURRENT; + iface->lacp_status &= ~LACP_EXPIRED; iface->lacp_rx = time_msec() + LACP_SLOW_TIME_RX; iface->lacp_actor.state = iface_get_lacp_state(iface); @@ -4702,7 +4703,8 @@ iface_set_lacp_defaulted(struct iface *iface) { memset(&iface->lacp_partner, 0, sizeof iface->lacp_partner); - iface->lacp_status = LACP_DEFAULTED; + iface->lacp_status |= LACP_DEFAULTED; + iface->lacp_status &= ~(LACP_CURRENT | LACP_EXPIRED); iface->lacp_tx = 0; iface->port->lacp_need_update = true; } -- 2.30.2