Subject: [PATCH net 0/5] net: netdevsim: fix inconsistent carrier state after link/unlink

From: [email-masked]
Date: Tue, 30 Dec 2025 03:32:33 +0900

From: Yohei Kojima <[email-masked]>

This series fixes netdevsim's inconsistent behavior between carrier
and link/unlink state.

More specifically, this fixes a bug that the carrier goes DOWN although
two netdevsim were peered, depending on the order of peering and ifup.
Especially in a NetworkManager-enabled environment, netdevsim test fails
because of this.

The first patch fixes the bug itself in netdevsim/bus.c by adding
netif_carrier_on() into a proper function. The second and third patches
clean up netdevsim test and add a regression test for this bug.

The fourth and fifth patches improve TCP Fast Open (TFO) test, which
depends on netdevsim. In a NetworkManager-enabled environment, although
TFO test times out because of this bug, the test exits with 0 without
reporting any error.  This behavior implies that nothing would be
reported even if TFO got broken at some point.

The fourth and fifth patches are intentionally placed after the first
patch, because fixing TFO test without fixing netdevsim results in
a spurious test failure in a NetworkManager-enabled environment.

Yohei Kojima (5):
  net: netdevsim: fix inconsistent carrier state after link/unlink
  selftests: netdevsim: test that linking already-connected devices
    fails
  selftests: netdevsim: add carrier state consistency test
  selftests: net: improve error handling in TFO test
  selftests: net: report SKIP if TFO test processes timed out

 drivers/net/netdevsim/bus.c                   |  6 ++
 .../selftests/drivers/net/netdevsim/peer.sh   | 79 ++++++++++++++++++-
 tools/testing/selftests/net/tfo.c             | 10 ++-
 tools/testing/selftests/net/tfo_passive.sh    | 15 +++-
 4 files changed, 101 insertions(+), 9 deletions(-)

-- 
2.51.2