lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251104061723.483301-1-alexander.sverdlin@siemens.com>
Date: Tue,  4 Nov 2025 07:17:21 +0100
From: "A. Sverdlin" <alexander.sverdlin@...mens.com>
To: netdev@...r.kernel.org,
	linux-kselftest@...r.kernel.org
Cc: Alexander Sverdlin <alexander.sverdlin@...mens.com>,
	"David S. Miller" <davem@...emloft.net>,
	Eric Dumazet <edumazet@...gle.com>,
	Jakub Kicinski <kuba@...nel.org>,
	Paolo Abeni <pabeni@...hat.com>,
	Simon Horman <horms@...nel.org>,
	Shuah Khan <shuah@...nel.org>,
	Vladimir Oltean <vladimir.oltean@....com>,
	linux-kernel@...r.kernel.org
Subject: [PATCH] selftests: net: local_termination: Wait for interfaces to come up

From: Alexander Sverdlin <alexander.sverdlin@...mens.com>

It seems that most of the tests prepare the interfaces once before the test
run (setup_prepare()), rely on setup_wait() to wait for link and only then
run the test(s).

local_termination brings the physical interfaces down and up during test
run but never wait for them to come up. If the auto-negotiation takes
some seconds, first test packets are being lost, which leads to
false-negative test results.

Use setup_wait_dev() after corresponding simple_if_init() on physical
interfaces to make sure auto-negotiation has been completed and test
packets will not be lost because of the race against link establishment.

The wait has to be done in each individual test because the interfaces
have to be brough up first and only then we can wait for link (not
individually, because they are expected to be looped in pairs).

Fixes: 90b9566aa5cd3f ("selftests: forwarding: add a test for local_termination.sh")
Signed-off-by: Alexander Sverdlin <alexander.sverdlin@...mens.com>
---
 .../selftests/net/forwarding/local_termination.sh      | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/tools/testing/selftests/net/forwarding/local_termination.sh b/tools/testing/selftests/net/forwarding/local_termination.sh
index ecd34f364125c..369c8b2c1f4a2 100755
--- a/tools/testing/selftests/net/forwarding/local_termination.sh
+++ b/tools/testing/selftests/net/forwarding/local_termination.sh
@@ -430,6 +430,8 @@ standalone()
 	h1_create
 	h2_create
 	macvlan_create $h2
+	setup_wait_dev $h1
+	setup_wait_dev $h2
 
 	run_test $h1 $h2 $skip_ptp $no_unicast_flt "$h2"
 
@@ -448,6 +450,8 @@ test_bridge()
 	bridge_create $vlan_filtering
 	simple_if_init br0 $H2_IPV4/24 $H2_IPV6/64
 	macvlan_create br0
+	setup_wait_dev $h1
+	setup_wait_dev $h2
 
 	run_test $h1 br0 $skip_ptp $no_unicast_flt \
 		"vlan_filtering=$vlan_filtering bridge"
@@ -480,6 +484,8 @@ test_vlan()
 	h1_vlan_create
 	h2_vlan_create
 	macvlan_create $h2.100
+	setup_wait_dev $h1
+	setup_wait_dev $h2
 
 	run_test $h1.100 $h2.100 $skip_ptp $no_unicast_flt "VLAN upper"
 
@@ -505,6 +511,8 @@ vlan_over_bridged_port()
 	h2_vlan_create
 	bridge_create $vlan_filtering
 	macvlan_create $h2.100
+	setup_wait_dev $h1
+	setup_wait_dev $h2
 
 	run_test $h1.100 $h2.100 $skip_ptp $no_unicast_flt \
 		"VLAN over vlan_filtering=$vlan_filtering bridged port"
@@ -536,6 +544,8 @@ vlan_over_bridge()
 	simple_if_init br0
 	vlan_create br0 100 vbr0 $H2_IPV4/24 $H2_IPV6/64
 	macvlan_create br0.100
+	setup_wait_dev $h1
+	setup_wait_dev $h2
 
 	if [ $vlan_filtering = 1 ]; then
 		bridge vlan add dev $h2 vid 100 master
-- 
2.51.1


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ