[PATCH net-next v7 00/10] Decouple receive and transmit enablement in team driver

Marc Harvey
2026-04-09T02:59:40Z

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 decoupling patch clearer (1, 2, and 3).

Signed-off-by: Marc Harvey <marcharvey@google.com>
---
Changes in v7:
- Increase the timeout to 300 seconds for the team selftests, since
gracefully killing teamd can take 30 seconds to timeout.
- Link to v6: https://lore.kernel.org/r/20260408-teaming-driver-internal-v6-0-e5bcdcf72504@google.com

Changes in v6:
- Make selftests use a TCP port with no associate service.
- Make selftests pass -nn flag to tcpdump, which will make it not
convert port numbers to service names.
- Link to v5: https://lore.kernel.org/r/20260406-teaming-driver-internal-v5-0-e8a3f348a1c5@google.com

Changes in v5:
- Change teamd activebackup selftest in patch 5 to try graceful teamd
teardown before using sigkill.
- Make the teamd activebackup selftest in patch 5 delete leftover
teamd files during teardown.
- Reorder function calls in team_port_enable function in patch 7,
since the enablement behavior shouldn't change.
- Make selftests use tcpdump instead of checking rx counters.
- Fix minor typos in patch 10.
- Link to v4: https://lore.kernel.org/r/20260403-teaming-driver-internal-v4-0-d3032f33ca25@google.com

Changes in v4:
- Split the large v3 patch "net: team: Decouple rx and tx enablement
in the team driver" into 4 smaller patches.
- Link to v3: https://lore.kernel.org/r/20260402-teaming-driver-internal-v3-0-e8cfdec3b5c2@google.com

Changes in v3:
- Patch 5: In test cleanup, kill teamd to fix timeout.
- Link to v2: https://lore.kernel.org/r/20260401-teaming-driver-internal-v2-0-f80c1291727b@google.com

Changes in v2:
- Patch 4 and 5: Fix shellcheck errors and warnings, use iperf3
instead of netcat+pv, fix dependency checking.
- Patch 7: Fix shellcheck errors and warnings, fix dependency
checking.
- Link to v1: https://lore.kernel.org/all/20260331053353.2504254-1-marcharvey@google.com/

---
Marc Harvey (10):
net: team: Annotate reads and writes for mixed lock accessed values
net: team: Remove unused team_mode_op, port_enabled
net: team: Rename port_disabled team mode op to port_tx_disabled
selftests: net: Add tests for failover of team-aggregated ports
selftests: net: Add test for enablement of ports with teamd
net: team: Rename enablement functions and struct members to tx
net: team: Track rx enablement separately from tx enablement
net: team: Add new rx_enabled team port option
net: team: Add new tx_enabled team port option
selftests: net: Add tests for team driver decoupled tx and rx control

drivers/net/team/team_core.c | 237 ++++++++++++++++----
drivers/net/team/team_mode_loadbalance.c | 8 +-
drivers/net/team/team_mode_random.c | 4 +-
drivers/net/team/team_mode_roundrobin.c | 2 +-
include/linux/if_team.h | 63 +++---
tools/testing/selftests/drivers/net/team/Makefile | 4 +
tools/testing/selftests/drivers/net/team/config | 4 +
.../drivers/net/team/decoupled_enablement.sh | 249 +++++++++++++++++++++
.../testing/selftests/drivers/net/team/options.sh | 99 +++++++-
tools/testing/selftests/drivers/net/team/settings | 1 +
.../testing/selftests/drivers/net/team/team_lib.sh | 174 ++++++++++++++
.../drivers/net/team/teamd_activebackup.sh | 246 ++++++++++++++++++++
.../drivers/net/team/transmit_failover.sh | 158 +++++++++++++
tools/testing/selftests/net/forwarding/lib.sh | 9 +-
tools/testing/selftests/net/lib.sh | 13 ++
15 files changed, 1198 insertions(+), 73 deletions(-)
---
base-commit: b3e69fc3196fc421e26196e7792f17b0463edc6f
change-id: 20260401-teaming-driver-internal-83f2f0074d68

Best regards,
--
Marc Harvey <marcharvey@google.com>