Subject: Re: [PATCH 1/2 net-next v2] bonding: Extending LACP MUX State Machine to include a Collecting State.

From: Jay Vosburgh <[email-masked]>
Date: Thu, 04 Jan 2024 17:38:52 -0800

Aahil Awatramani <[email-masked]> wrote:

>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.
>Additionally this also brings the 802.3ad bonding driver's implementation
>closer to the LACP specification which already predefined this behaviour,
>that is currently the implementation only supports coupled control.
>
>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 <[email-masked]>
>---
> Documentation/networking/bonding.rst | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
>diff --git a/Documentation/networking/bonding.rst b/Documentation/networking/bonding.rst
>index f7a73421eb76..cb3e6013605d 100644
>--- a/Documentation/networking/bonding.rst
>+++ b/Documentation/networking/bonding.rst
>@@ -444,6 +444,14 @@ arp_missed_max
> 
> 	The default value is 2, and the allowable range is 1 - 255.
> 
>+coupled_control
>+
>+    Specifies whether the LACP state machine's MUX in the 802.3ad mode
>+    should have separate Collecting and Distributing states.
>+
>+    The default value is 1. This setting does not separate the Collecting
>+    and Distributing states, maintaining the bond in coupled control.
>+

	Please reference the standard in the description; this is
implementing the independent control state machine per IEEE 802.1AX-2008
5.4.15 in addition to the existing coupled control state machine.

	-J

> downdelay
> 
> 	Specifies the time, in milliseconds, to wait before disabling
>-- 
>2.43.0.472.g3155946c3a-goog
>
>

---
	-Jay Vosburgh, [email-masked]