mirror of
https://github.com/logicog/RTLPlayground.git
synced 2026-10-29 17:54:14 +08:00
lacp: "lag <n> d" and a static member list take the group out of LACP
Both paths wrote the trunk registers directly and left the protocol running on the group, so "lag show" said disabled while the partner kept both links in one aggregate, and re-sending the LACP line did not repair it because the same-ports shortcut returns early. Each path now releases the group from LACP first; for a group that never ran LACP that is a no-op.
This commit is contained in:
1 parent
edf6351d85
commit
25040070e5
1 file changed
+5
-2
+5
-2
@@ -534,6 +534,7 @@ void parse_lag(void)
|
||||
goto err;
|
||||
|
||||
if (cmd_compare(2, "d")) {
|
||||
lacp_lag_set(group, 0);
|
||||
port_lag_members_set(group, 0);
|
||||
return;
|
||||
}
|
||||
@@ -557,10 +558,12 @@ void parse_lag(void)
|
||||
|
||||
members |= ((uint16_t)1) << atoi_results_u8;
|
||||
}
|
||||
if (lacp_mode)
|
||||
if (lacp_mode) {
|
||||
lacp_lag_set(group, members); /* 0 ports also valid: removes the LAG */
|
||||
else
|
||||
} else {
|
||||
lacp_lag_set(group, 0);
|
||||
port_lag_members_set(group, members);
|
||||
}
|
||||
return;
|
||||
err:
|
||||
cmd_error("lag (show | <1-4> (d | [lacp] <port>...))\n");
|
||||
|
||||
Reference in new issue
Block a user