linux-stable/Documentation
Aahil Awatramani 45b70352d1 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:28:49 +02:00
..
ABI x86/bugs: Add a Transient Scheduler Attacks mitigation 2025-07-10 16:03:21 +02:00
accel
accounting
admin-guide x86/bugs: Add a Transient Scheduler Attacks mitigation 2025-07-10 16:03:21 +02:00
arch x86/bugs: Rename MDS machinery to something more generic 2025-07-10 16:03:21 +02:00
block
bpf bpf: Adjust free target to avoid global starvation of LRU map 2025-07-17 18:35:21 +02:00
cdrom
core-api module: Provide EXPORT_SYMBOL_GPL_FOR_MODULES() helper 2025-07-10 16:03:18 +02:00
cpu-freq
crypto
dev-tools
devicetree dt-bindings: display: sprd,sharkl3-dsi-host: Fix missing clocks constraints 2025-08-28 16:28:34 +02:00
doc-guide
driver-api serial: mctrl_gpio: split disable_ms into sync and no_sync APIs 2025-06-04 14:42:07 +02:00
fault-injection
fb
features
filesystems fscrypt: Don't use problematic non-inline crypto engines 2025-08-28 16:28:40 +02:00
firmware_class
firmware-guide Documentation: ACPI: Fix parent device references 2025-08-28 16:28:12 +02:00
fpga
gpu
hid
hwmon hwmon: (dell-smm) Increment the number of fans 2025-06-04 14:42:00 +02:00
i2c
iio
images
infiniband
input
isdn
kbuild
kernel-hacking
leds
litmus-tests
livepatch
locking
maintainer
mhi
misc-devices
mm
netlabel
netlink netlink: specs: ethtool: fix module EEPROM input/output arguments 2025-08-15 12:09:02 +02:00
networking bonding: Add independent control state machine 2025-08-28 16:28:49 +02:00
nvdimm
nvme
PCI
pcmcia
peci
power PM: runtime: Simplify pm_runtime_get_if_active() usage 2025-08-28 16:28:42 +02:00
powerpc
process
RCU
riscv
rust
scheduler sched/topology: Consolidate and clean up access to a CPU's max compute capacity 2025-05-02 07:50:41 +02:00
scsi
security
sound
sphinx
sphinx-static
spi
staging
target
timers
tools
trace
translations
usb
userspace-api
virt
w1
watchdog
wmi
.gitignore
atomic_bitops.txt
atomic_t.txt
Changes
CodingStyle
conf.py
docutils.conf
dontdiff
index.rst
Kconfig
Makefile
memory-barriers.txt
SubmittingPatches
subsystem-apis.rst