Skip to content

Commit 56c8a23

Browse files
Stanislav Fomichevkuba-moo
authored andcommitted
selftests: net: use netdevsim in netns test
Netdevsim has extra register_netdevice_notifier_dev_net notifiers, use netdevim instead of dummy device to test them out. Signed-off-by: Stanislav Fomichev <sdf@fomichev.me> Link: https://patch.msgid.link/20250401163452.622454-9-sdf@fomichev.me Signed-off-by: Jakub Kicinski <kuba@kernel.org>
1 parent ee705fa commit 56c8a23

File tree

2 files changed

+34
-4
lines changed

2 files changed

+34
-4
lines changed

tools/testing/selftests/net/lib.sh

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,31 @@ setup_ns()
222222
NS_LIST+=("${ns_list[@]}")
223223
}
224224

225+
# Create netdevsim with given id and net namespace.
226+
create_netdevsim() {
227+
local id="$1"
228+
local ns="$2"
229+
230+
modprobe netdevsim &> /dev/null
231+
udevadm settle
232+
233+
echo "$id 1" | ip netns exec $ns tee /sys/bus/netdevsim/new_device >/dev/null
234+
local dev=$(ip netns exec $ns ls /sys/bus/netdevsim/devices/netdevsim$id/net)
235+
ip -netns $ns link set dev $dev name nsim$id
236+
ip -netns $ns link set dev nsim$id up
237+
238+
echo nsim$id
239+
}
240+
241+
# Remove netdevsim with given id.
242+
cleanup_netdevsim() {
243+
local id="$1"
244+
245+
if [ -d "/sys/bus/netdevsim/devices/netdevsim$id/net" ]; then
246+
echo "$id" > /sys/bus/netdevsim/del_device
247+
fi
248+
}
249+
225250
tc_rule_stats_get()
226251
{
227252
local dev=$1; shift

tools/testing/selftests/net/netns-name.sh

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,12 @@ set -o pipefail
77
DEV=dummy-dev0
88
DEV2=dummy-dev1
99
ALT_NAME=some-alt-name
10+
NSIM_ADDR=2025
1011

1112
RET_CODE=0
1213

1314
cleanup() {
15+
cleanup_netdevsim $NSIM_ADDR
1416
cleanup_ns $NS $test_ns
1517
}
1618

@@ -25,12 +27,15 @@ setup_ns NS test_ns
2527

2628
#
2729
# Test basic move without a rename
30+
# Use netdevsim because it has extra asserts for notifiers.
2831
#
29-
ip -netns $NS link add name $DEV type dummy || fail
30-
ip -netns $NS link set dev $DEV netns $test_ns ||
32+
33+
nsim=$(create_netdevsim $NSIM_ADDR $NS)
34+
ip -netns $NS link set dev $nsim netns $test_ns ||
3135
fail "Can't perform a netns move"
32-
ip -netns $test_ns link show dev $DEV >> /dev/null || fail "Device not found after move"
33-
ip -netns $test_ns link del $DEV || fail
36+
ip -netns $test_ns link show dev $nsim >> /dev/null ||
37+
fail "Device not found after move"
38+
cleanup_netdevsim $NSIM_ADDR
3439

3540
#
3641
# Test move with a conflict

0 commit comments

Comments
 (0)