commit beb831fdc19195aecb365c4b48b6d8451c59251c caused member ports
state to be changed to CURRENT when master team device is brought UP.
This is not correct as the partner may still be DOWN. Set it to
EXPIRIED and let the state go CURRENT after receiving a LACPDU from
the partner.
Signed-off-by: Sridhar Samudrala <sridhar.samudrala(a)intel.com>
---
teamd/teamd_runner_lacp.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/teamd/teamd_runner_lacp.c b/teamd/teamd_runner_lacp.c
index 1cfef36..1af3b17 100644
--- a/teamd/teamd_runner_lacp.c
+++ b/teamd/teamd_runner_lacp.c
@@ -1314,12 +1314,13 @@ static int lacp_event_watch_admin_state_changed(struct
teamd_context *ctx,
bool admin_state;
int err;
+ admin_state = team_get_ifinfo_admin_state(ctx->ifinfo);
+
teamd_for_each_tdport(tdport, ctx) {
struct lacp_port *lacp_port = lacp_port_get(lacp, tdport);
- admin_state = team_get_ifinfo_admin_state(ctx->ifinfo);
err = lacp_port_set_state(lacp_port,
- admin_state?PORT_STATE_CURRENT:PORT_STATE_DISABLED);
+ admin_state?PORT_STATE_EXPIRED:PORT_STATE_DISABLED);
if (err)
return err;
}
--
2.1.0