Messages in this thread | | | Date | Thu, 11 Apr 2024 10:44:54 +0800 | From | Hangbin Liu <> | Subject | Re: [PATCH net] bonding: 802.3ad: Avoid packet loss when switching aggregator |
| |
On Thu, Apr 04, 2024 at 01:49:08PM +0200, Thomas Bogendoerfer wrote: > 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 >
Reviewed-by: Hangbin Liu <liuhangbin@gmail.com>
| |