[teamd]: Administratively shutdown port channel has member ports in deselected state and traffic is not forwarded. #1771 (#2882)
This commit is contained in:
parent
10a6157c83
commit
df149cd1fc
@ -0,0 +1,22 @@
|
|||||||
|
diff --git a/teamd/teamd_runner_lacp.c b/teamd/teamd_runner_lacp.c
|
||||||
|
index 4a3fe6b..19592c5 100644
|
||||||
|
--- a/teamd/teamd_runner_lacp.c
|
||||||
|
+++ b/teamd/teamd_runner_lacp.c
|
||||||
|
@@ -1182,12 +1182,17 @@ static int lacpdu_recv(struct lacp_port *lacp_port)
|
||||||
|
struct lacpdu lacpdu;
|
||||||
|
struct sockaddr_ll ll_from;
|
||||||
|
int err;
|
||||||
|
+ bool admin_state;
|
||||||
|
|
||||||
|
err = teamd_recvfrom(lacp_port->sock, &lacpdu, sizeof(lacpdu), 0,
|
||||||
|
(struct sockaddr *) &ll_from, sizeof(ll_from));
|
||||||
|
if (err <= 0)
|
||||||
|
return err;
|
||||||
|
|
||||||
|
+ admin_state = team_get_ifinfo_admin_state(lacp_port->ctx->ifinfo);
|
||||||
|
+ if (!admin_state)
|
||||||
|
+ return 0;
|
||||||
|
+
|
||||||
|
return lacpdu_process(lacp_port, &lacpdu);
|
||||||
|
}
|
||||||
|
|
@ -7,3 +7,4 @@
|
|||||||
0010-teamd-lacp-update-port-state-according-to-partners-sy.patch
|
0010-teamd-lacp-update-port-state-according-to-partners-sy.patch
|
||||||
0011-libteam-resynchronize-ifinfo-after-lost-RTNLGRP_LINK-.patch
|
0011-libteam-resynchronize-ifinfo-after-lost-RTNLGRP_LINK-.patch
|
||||||
0012-teamd-do-not-process-lacpdu-before-the-port-ifinfo-i.patch
|
0012-teamd-do-not-process-lacpdu-before-the-port-ifinfo-i.patch
|
||||||
|
0013-teamd-lacp-port-admin-down-recv-not-processing.patch
|
||||||
|
Loading…
Reference in New Issue
Block a user