linux-stable/Documentation
Aahil Awatramani 5b05078fcc bonding: Add independent control state machine
[ Upstream commit 240fd40552 ]

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@google.com>
Reviewed-by: Hangbin Liu <liuhangbin@gmail.com>
Link: https://lore.kernel.org/r/20240202175858.1573852-1-aahila@google.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Stable-dep-of: 0599640a21 ("bonding: send LACPDUs periodically in passive mode after receiving partner's LACPDU")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-08-28 16:26:18 +02:00
..
ABI x86/bugs: Add a Transient Scheduler Attacks mitigation 2025-07-10 15:59:54 +02:00
accounting
admin-guide x86/bugs: Add a Transient Scheduler Attacks mitigation 2025-07-10 15:59:54 +02:00
arc
arm
arm64
block
bpf
cdrom
core-api
cpu-freq
crypto
dev-tools
devicetree dt-bindings: display: sprd,sharkl3-dsi-host: Fix missing clocks constraints 2025-08-28 16:26:06 +02:00
doc-guide
driver-api serial: mctrl_gpio: split disable_ms into sync and no_sync APIs 2025-06-04 14:40:13 +02:00
fault-injection
fb
features
filesystems f2fs: doc: fix wrong quota mount option description 2025-08-15 12:05:06 +02:00
firmware_class
firmware-guide Documentation: ACPI: Fix parent device references 2025-08-28 16:25:49 +02:00
fpga
gpu
hid
hwmon hwmon: (dell-smm) Increment the number of fans 2025-06-04 14:40:07 +02:00
i2c
ia64
iio
images
infiniband
input
isdn
kbuild
kernel-hacking
leds
litmus-tests
livepatch
locking
loongarch
m68k
maintainer
mhi
mips
misc-devices
mm
netlabel
networking bonding: Add independent control state machine 2025-08-28 16:26:18 +02:00
nios2
nvdimm
openrisc
parisc
PCI
pcmcia
peci
power
powerpc
process
RCU
riscv
rust
s390
scheduler
scsi
security
sh
sound
sparc
sphinx
sphinx-static
spi
staging
target
timers
tools
trace
translations
usb
userspace-api
virt
w1
watchdog
x86
xtensa
.gitignore
arch.rst
atomic_bitops.txt
atomic_t.txt
Changes
CodingStyle
conf.py
docutils.conf
dontdiff
index.rst
Kconfig
Makefile
memory-barriers.txt
SubmittingPatches
subsystem-apis.rst