File tree Expand file tree Collapse file tree 3 files changed +61
-0
lines changed
tools/testing/selftests/net Expand file tree Collapse file tree 3 files changed +61
-0
lines changed Original file line number Diff line number Diff line change @@ -46,6 +46,7 @@ TEST_PROGS += stress_reuseport_listen.sh
4646TEST_PROGS += l2_tos_ttl_inherit.sh
4747TEST_PROGS += bind_bhash.sh
4848TEST_PROGS += ip_local_port_range.sh
49+ TEST_PROGS += rps_default_mask.sh
4950TEST_PROGS_EXTENDED := in_netns.sh setup_loopback.sh setup_veth.sh
5051TEST_PROGS_EXTENDED += toeplitz_client.sh toeplitz.sh
5152TEST_GEN_FILES = socket nettest
Original file line number Diff line number Diff line change @@ -3,6 +3,9 @@ CONFIG_NET_NS=y
33CONFIG_BPF_SYSCALL=y
44CONFIG_TEST_BPF=m
55CONFIG_NUMA=y
6+ CONFIG_RPS=y
7+ CONFIG_SYSFS=y
8+ CONFIG_PROC_SYSCTL=y
69CONFIG_NET_VRF=y
710CONFIG_NET_L3_MASTER_DEV=y
811CONFIG_IPV6=y
Original file line number Diff line number Diff line change 1+ #! /bin/sh
2+ # SPDX-License-Identifier: GPL-2.0
3+
4+ readonly ksft_skip=4
5+ readonly cpus=$( nproc)
6+ ret=0
7+
8+ [ $cpus -gt 2 ] || exit $ksft_skip
9+
10+ readonly INITIAL_RPS_DEFAULT_MASK=$( cat /proc/sys/net/core/rps_default_mask)
11+ readonly NETNS=" ns-$( mktemp -u XXXXXX) "
12+
13+ setup () {
14+ ip netns add " ${NETNS} "
15+ ip -netns " ${NETNS} " link set lo up
16+ }
17+
18+ cleanup () {
19+ echo $INITIAL_RPS_DEFAULT_MASK > /proc/sys/net/core/rps_default_mask
20+ ip netns del $NETNS
21+ }
22+
23+ chk_rps () {
24+ local rps_mask expected_rps_mask=$3
25+ local dev_name=$2
26+ local msg=$1
27+
28+ rps_mask=$( ip netns exec $NETNS cat /sys/class/net/$dev_name /queues/rx-0/rps_cpus)
29+ printf " %-60s" " $msg "
30+ if [ $rps_mask -eq $expected_rps_mask ]; then
31+ echo " [ ok ]"
32+ else
33+ echo " [fail] expected $expected_rps_mask found $rps_mask "
34+ ret=1
35+ fi
36+ }
37+
38+ trap cleanup EXIT
39+
40+ echo 0 > /proc/sys/net/core/rps_default_mask
41+ setup
42+ chk_rps " empty rps_default_mask" lo 0
43+ cleanup
44+
45+ echo 1 > /proc/sys/net/core/rps_default_mask
46+ setup
47+ chk_rps " non zero rps_default_mask" lo 1
48+
49+ echo 3 > /proc/sys/net/core/rps_default_mask
50+ chk_rps " changing rps_default_mask dont affect existing netns" lo 1
51+
52+ ip -n $NETNS link add type veth
53+ ip -n $NETNS link set dev veth0 up
54+ ip -n $NETNS link set dev veth1 up
55+ chk_rps " changing rps_default_mask affect newly created devices" veth0 3
56+ chk_rps " changing rps_default_mask affect newly created devices[II]" veth1 3
57+ exit $ret
You can’t perform that action at this time.
0 commit comments