@@ -799,11 +799,12 @@ bond_check_admissibility(struct bond *bond, const void *slave_,
switch (bond->balance) {
case BM_TCP:
- /* TCP balanced bonds require successful LACP negotiations. Based on the
- * above check, LACP is off or lacp_fallback_ab is true on this bond.
- * If lacp_fallback_ab is true fall through to BM_AB case else, we
- * drop all incoming traffic. */
- if (!bond->lacp_fallback_ab) {
+ /* TCP balanced bonds require successful LACP negotiations. Based on
+ * the above check, LACP is off or lacp_fallback_ab is true on this
+ * bond. If LACP is in LACP_DISABLED state, drop all incoming traffic.
+ * If LACP is in LACP_CONFIGURED state and lacp_fallback_ab is true
+ * fall through to BM_AB case else, we drop all incoming traffic. */
+ if (bond->lacp_status == LACP_DISABLED || !bond->lacp_fallback_ab) {
goto out;
}
The balance-tcp mode requires the upstream switch to support 802.3ad with successful LACP negotiation. When bond ports are configured to balance-tcp mode without lacp or lacp is disabled, drop the traffic. Signed-off-by: nickcooper-zhangtonghao <nic@opencloud.tech> --- ofproto/bond.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-)