Subject: Re: [PATCH net-next v4 00/10] Decouple receive and transmit enablement in team driver

From: Jakub Kicinski <[email-masked]>
Date: Fri, 3 Apr 2026 12:30:39 -0700

On Fri, 03 Apr 2026 07:14:21 +0000 Marc Harvey wrote:
> Allow independent control over receive and transmit enablement states
> for aggregated ports in the team driver.
> 
> The motivation is that IEE 802.3ad LACP "independent control" can't
> be implemented for the team driver currently. This was added to the
> bonding driver in commit 240fd405528b ("bonding: Add independent
> control state machine").
> 
> This series also has a few patches that add tests to show that the old
> coupled enablement still works and that the new decoupled enablement
> works as intended (4, 5, and 10).
> 
> There are three patches with small fixes as well, with the goal of
> making the final decouplement patch clearer (1, 2, and 3).

The test seems flaky, we hit this twice in the last 24h:

make[1]: Nothing to be done for 'all'.
TAP version 13
1..1
# timeout set to 45
# selftests: drivers/net/team: teamd_activebackup.sh
# Setting up two-link aggregation for runner activebackup
# Conf files are /tmp/tmp.KEuJWeKPaz and /tmp/tmp.yNhnkNmKxF
# This program is not intended to be run as root.
# This program is not intended to be run as root.
# Created team devices
# PING fd00::2 (fd00::2) 56 data bytes
# 64 bytes from fd00::2: icmp_seq=1 ttl=64 time=0.032 ms
# 
# --- fd00::2 ping statistics ---
# 1 packets transmitted, 1 received, 0% packet loss, time 0ms
# rtt min/avg/max/mdev = 0.032/0.032/0.032/0.000 msPacket count for test_team2 was 136
# Packet count for eth0 was 1
# Packet count for eth1 was 123
# Packet count for eth0 was 122
# Packet count for eth1 was 0
# TEST: teamd active backup runner test                               [FAIL]
# eth0 IS transmitting when disabled
# Tearing down two-link aggregation
not ok 1 selftests: drivers/net/team: teamd_activebackup.sh # exit=1
/srv/vmksft/testing/wt-9/tools/testing/selftests/kselftest/runner.sh: line 50: : No such file or directory
make: Leaving directory '/srv/vmksft/testing/wt-9/tools/testing/selftests'

What's even worse the retry of the test then fails like this:

make: Entering directory '/srv/vmksft/testing/wt-9/tools/testing/selftests'
make[1]: Nothing to be done for 'all'.
TAP version 13
1..1
# timeout set to 45
# selftests: drivers/net/team: teamd_activebackup.sh
# Setting up two-link aggregation for runner activebackup
# Conf files are /tmp/tmp.R4C5kfI62n and /tmp/tmp.tXdWkJ9GjO
# This program is not intended to be run as root.
# Daemon already running on PID 31311.
# Failed: File exists
# This program is not intended to be run as root.
# Daemon already running on PID 31315.
# Failed: File exists
# Created team devices
# Cannot find device "test_team1"
# Cannot find device "test_team2"
# Cannot find device "test_team1"
# Cannot find device "test_team2"
# ping: connect: Network is unreachable
# ping: connect: Network is unreachable
# ping: connect: Network is unreachable
# ping: connect: Network is unreachable
# ping: connect: Network is unreachable
# ping: connect: Network is unreachable
# ping: connect: Network is unreachable
# ping: connect: Network is unreachable
# ping: connect: Network is unreachable
# ping: connect: Network is unreachable
# ping: connect: Network is unreachable
# ping: connect: Network is unreachable
# ping: connect: Network is unreachable
# ping: connect: Network is unreachable
# ping: connect: Network is unreachable
# ping: connect: Network is unreachable
# ping: connect: Network is unreachable
# ping: connect: Network is unreachable
# ping: connect: Network is unreachable
# ping: connect: Network is unreachable
# cat: /sys/class/net/test_team2/statistics/rx_packets: No such file or directory
# cat: /sys/class/net/test_team2/statistics/rx_packets: No such file or directory
# Packet count for test_team2 was 0
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Packet count for eth0 was 0
# Packet count for eth1 was 0
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team1" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Device "test_team2" does not exist
# Packet count for eth0 was 0
# Packet count for eth1 was 0
# TEST: teamd active backup runner test                               [FAIL]
# Traffic did not reach team interface in NS2.
# ./team_lib.sh: line 88: kill: (1323) - No such process
# Tearing down two-link aggregation
not ok 1 selftests: drivers/net/team: teamd_activebackup.sh # exit=1
-- 
pw-bot: cr