lkml.org 
[lkml]   [2024]   [Apr]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH net] bonding: 802.3ad: Avoid packet loss when switching aggregator
Date
If selection logic decides to switch to a new aggregator it disables
all ports of the old aggregator, but doesn't enable ports on
the new aggregator. These ports will eventually be enabled when
the next LACPDU is received, which might take some time and without an
active port transmitted frames are dropped. Avoid this by enabling
already collected ports of the new aggregator immediately.

Signed-off-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
---
drivers/net/bonding/bond_3ad.c | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/drivers/net/bonding/bond_3ad.c b/drivers/net/bonding/bond_3ad.c
index c6807e473ab7..529e2a7c51e2 100644
--- a/drivers/net/bonding/bond_3ad.c
+++ b/drivers/net/bonding/bond_3ad.c
@@ -1876,6 +1876,13 @@ static void ad_agg_selection_logic(struct aggregator *agg,
__disable_port(port);
}
}
+
+ /* enable ports on new active aggregator */
+ for (port = best->lag_ports; port;
+ port = port->next_port_in_aggregator) {
+ __enable_port(port);
+ }
+
/* Slave array needs update. */
*update_slave_arr = true;
}
--
2.35.3

\
 
 \ /
  Last update: 2024-05-27 16:23    [W:0.112 / U:0.660 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site