hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/tools/testing/selftests/drivers/net/mlxsw/router_scale.sh
....@@ -2,16 +2,15 @@
22 # SPDX-License-Identifier: GPL-2.0
33
44 ROUTER_NUM_NETIFS=4
5
+: ${TIMEOUT:=20000} # ms
56
67 router_h1_create()
78 {
89 simple_if_init $h1 192.0.1.1/24
9
- ip route add 193.0.0.0/8 via 192.0.1.2 dev $h1
1010 }
1111
1212 router_h1_destroy()
1313 {
14
- ip route del 193.0.0.0/8 via 192.0.1.2 dev $h1
1514 simple_if_fini $h1 192.0.1.1/24
1615 }
1716
....@@ -64,13 +63,15 @@
6463 router_create
6564 }
6665
67
-router_offload_validate()
66
+wait_for_routes()
6867 {
69
- local route_count=$1
70
- local offloaded_count
68
+ local t0=$1; shift
69
+ local route_count=$1; shift
7170
72
- offloaded_count=$(ip route | grep -o 'offload' | wc -l)
73
- [[ $offloaded_count -ge $route_count ]]
71
+ local t1=$(ip route | grep -o 'offload' | wc -l)
72
+ local delta=$((t1 - t0))
73
+ echo $delta
74
+ [[ $delta -ge $route_count ]]
7475 }
7576
7677 router_routes_create()
....@@ -90,8 +91,8 @@
9091 break 3
9192 fi
9293
93
- echo route add 193.${i}.${j}.${k}/32 via \
94
- 192.0.2.1 dev $rp2 >> $ROUTE_FILE
94
+ echo route add 193.${i}.${j}.${k}/32 dev $rp2 \
95
+ >> $ROUTE_FILE
9596 ((count++))
9697 done
9798 done
....@@ -111,44 +112,18 @@
111112 {
112113 local route_count=$1
113114 local should_fail=$2
114
- local count=0
115
+ local delta
115116
116117 RET=0
117118
119
+ local t0=$(ip route | grep -o 'offload' | wc -l)
118120 router_routes_create $route_count
121
+ delta=$(busywait "$TIMEOUT" wait_for_routes $t0 $route_count)
119122
120
- router_offload_validate $route_count
121
- check_err_fail $should_fail $? "Offload of $route_count routes"
123
+ check_err_fail $should_fail $? "Offload routes: Expected $route_count, got $delta."
122124 if [[ $RET -ne 0 ]] || [[ $should_fail -eq 1 ]]; then
123125 return
124126 fi
125
-
126
- tc filter add dev $h2 ingress protocol ip pref 1 flower \
127
- skip_sw dst_ip 193.0.0.0/8 action drop
128
-
129
- for i in {0..255}
130
- do
131
- for j in {0..255}
132
- do
133
- for k in {0..255}
134
- do
135
- if [[ $count -eq $route_count ]]; then
136
- break 3
137
- fi
138
-
139
- $MZ $h1 -c 1 -p 64 -a $h1mac -b $rp1mac \
140
- -A 192.0.1.1 -B 193.${i}.${j}.${k} \
141
- -t ip -q
142
- ((count++))
143
- done
144
- done
145
- done
146
-
147
- tc_check_packets "dev $h2 ingress" 1 $route_count
148
- check_err $? "Offload mismatch"
149
-
150
- tc filter del dev $h2 ingress protocol ip pref 1 flower \
151
- skip_sw dst_ip 193.0.0.0/8 action drop
152127
153128 router_routes_destroy
154129 }