linux-yocto/tools
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: 0599640a21e9 ("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
..
accounting delayacct: improve the average delay precision of getdelay tool to microsecond 2024-10-17 15:22:06 +02:00
arch tools/x86/kcpuid: Protect against faulty "max subleaf" values 2024-10-17 15:21:41 +02:00
bootconfig tools/bootconfig: Fix the wrong format specifier 2025-02-21 13:49:20 +01:00
bpf bpftool: Fix memory leak in dump_xx_nlmsg on realloc failure 2025-08-15 12:04:56 +02:00
build tools/build: Don't pass test log files to linker 2025-06-04 14:40:04 +02:00
certs
cgroup
counter
debugging
edid
firewire
firmware
gpio
hv tools: hv: rm .*.cmd when make clean 2024-09-30 16:23:50 +02:00
iio tools/iio: Add memory allocation failure check for trigger_name 2024-10-17 15:22:17 +02:00
include bonding: Add independent control state machine 2025-08-28 16:26:18 +02:00
io_uring
kvm/kvm_stat
laptop
leds
lib libbpf: Fix null pointer dereference in btf_dump__free on allocation failure 2025-07-06 10:58:00 +02:00
memory-model tools/memory-model: Fix bug in lock.cat 2024-08-03 08:49:36 +02:00
objtool objtool: Properly disable uaccess validation 2025-06-04 14:40:03 +02:00
pci
pcmcia
perf perf tests bp_account: Fix leaked file descriptor 2025-08-15 12:05:03 +02:00
power pm: cpupower: Fix the snapshot-order of tsc,mperf, clock in mperf_stop() 2025-08-28 16:25:54 +02:00
rcu
scripts tools/build: Fix s390(x) cross-compilation with clang 2025-08-28 16:25:53 +02:00
spi
testing selftests: mptcp: pm: check flush doesn't reset limits 2025-08-28 16:26:16 +02:00
thermal
time
tracing rtla/timerlat_top: Abort event processing on second signal 2025-02-21 13:49:59 +01:00
usb usbip: tools: Fix detach_port() invalid port error path 2024-11-08 16:26:44 +01:00
verification verification/dot2: Improve dot parser robustness 2024-12-14 19:54:47 +01:00
virtio
vm
wmi
Makefile