Re: [PATCH net-next v7] bonding: Add independent control state machine

From: Hangbin Liu
Date: Tue Feb 06 2024 - 04:27:54 EST


On Fri, Feb 02, 2024 at 05:58:58PM +0000, Aahil Awatramani wrote:
> Add support for the independent control state machine per IEEE
> 802.1AX-2008 5.4.15 in addition to the existing implementation of the
> coupled control state machine.
>
> Introduces two new states, AD_MUX_COLLECTING and AD_MUX_DISTRIBUTING in
> the LACP MUX state machine for separated handling of an initial
> Collecting state before the Collecting and Distributing state. This
> enables a port to be in a state where it can receive incoming packets
> while not still distributing. This is useful for reducing packet loss when
> a port begins distributing before its partner is able to collect.
>
> Added new functions such as bond_set_slave_tx_disabled_flags and
> bond_set_slave_rx_enabled_flags to precisely manage the port's collecting
> and distributing states. Previously, there was no dedicated method to
> disable TX while keeping RX enabled, which this patch addresses.
>
> Note that the regular flow process in the kernel's bonding driver remains
> unaffected by this patch. The extension requires explicit opt-in by the
> user (in order to ensure no disruptions for existing setups) via netlink
> support using the new bonding parameter coupled_control. The default value
> for coupled_control is set to 1 so as to preserve existing behaviour.
>
> Signed-off-by: Aahil Awatramani <aahila@xxxxxxxxxx>

Reviewed-by: Hangbin Liu <liuhangbin@xxxxxxxxx>