Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'kselftest-rtnetlink'

Daniel Mendes says:

====================
kselftest: rtnetlink: add additional command line options

Many other tests implement options like verbose, pause, and pause
on failure. These patches just add these options to rtnetlink.sh.
The same conventions are used as the tests that already have this
functionality: eg verbose is 0 or 1 but PAUSE is "yes" or "no".
====================

Signed-off-by: David S. Miller <davem@davemloft.net>

+402 -583
+402 -583
tools/testing/selftests/net/rtnetlink.sh
··· 31 31 " 32 32 33 33 devdummy="test-dummy0" 34 + VERBOSE=0 35 + PAUSE=no 36 + PAUSE_ON_FAIL=no 34 37 35 38 # Kselftest framework requirement - SKIP code is 4. 36 39 ksft_skip=4 ··· 54 51 fi 55 52 } 56 53 54 + run_cmd_common() 55 + { 56 + local cmd="$*" 57 + local out 58 + if [ "$VERBOSE" = "1" ]; then 59 + echo "COMMAND: ${cmd}" 60 + fi 61 + out=$($cmd 2>&1) 62 + rc=$? 63 + if [ "$VERBOSE" = "1" -a -n "$out" ]; then 64 + echo " $out" 65 + fi 66 + return $rc 67 + } 68 + 69 + run_cmd() { 70 + run_cmd_common "$@" 71 + rc=$? 72 + check_err $rc 73 + return $rc 74 + } 75 + run_cmd_fail() 76 + { 77 + run_cmd_common "$@" 78 + rc=$? 79 + check_fail $rc 80 + return $rc 81 + } 82 + 83 + run_cmd_grep_common() 84 + { 85 + local find="$1"; shift 86 + local cmd="$*" 87 + local out 88 + if [ "$VERBOSE" = "1" ]; then 89 + echo "COMMAND: ${cmd} 2>&1 | grep -q '${find}'" 90 + fi 91 + out=$($cmd 2>&1 | grep -q "${find}" 2>&1) 92 + return $? 93 + } 94 + 95 + run_cmd_grep() { 96 + run_cmd_grep_common "$@" 97 + rc=$? 98 + check_err $rc 99 + return $rc 100 + } 101 + 102 + run_cmd_grep_fail() 103 + { 104 + run_cmd_grep_common "$@" 105 + rc=$? 106 + check_fail $rc 107 + return $rc 108 + } 109 + 110 + end_test() 111 + { 112 + echo "$*" 113 + [ "${VERBOSE}" = "1" ] && echo 114 + 115 + if [[ $ret -ne 0 ]] && [[ "${PAUSE_ON_FAIL}" = "yes" ]]; then 116 + echo "Hit enter to continue" 117 + read a 118 + fi; 119 + 120 + if [ "${PAUSE}" = "yes" ]; then 121 + echo "Hit enter to continue" 122 + read a 123 + fi 124 + 125 + } 126 + 127 + 57 128 kci_add_dummy() 58 129 { 59 - ip link add name "$devdummy" type dummy 60 - check_err $? 61 - ip link set "$devdummy" up 62 - check_err $? 130 + run_cmd ip link add name "$devdummy" type dummy 131 + run_cmd ip link set "$devdummy" up 63 132 } 64 133 65 134 kci_del_dummy() 66 135 { 67 - ip link del dev "$devdummy" 68 - check_err $? 136 + run_cmd ip link del dev "$devdummy" 69 137 } 70 138 71 139 kci_test_netconf() 72 140 { 73 141 dev="$1" 74 142 r=$ret 75 - 76 - ip netconf show dev "$dev" > /dev/null 77 - check_err $? 78 - 143 + run_cmd ip netconf show dev "$dev" 79 144 for f in 4 6; do 80 - ip -$f netconf show dev "$dev" > /dev/null 81 - check_err $? 145 + run_cmd ip -$f netconf show dev "$dev" 82 146 done 83 147 84 148 if [ $ret -ne 0 ] ;then 85 - echo "FAIL: ip netconf show $dev" 149 + end_test "FAIL: ip netconf show $dev" 86 150 test $r -eq 0 && ret=0 87 151 return 1 88 152 fi ··· 162 92 vlandev="testbr-vlan1" 163 93 164 94 local ret=0 165 - ip link add name "$devbr" type bridge 166 - check_err $? 167 - 168 - ip link set dev "$devdummy" master "$devbr" 169 - check_err $? 170 - 171 - ip link set "$devbr" up 172 - check_err $? 173 - 174 - ip link add link "$devbr" name "$vlandev" type vlan id 1 175 - check_err $? 176 - ip addr add dev "$vlandev" 10.200.7.23/30 177 - check_err $? 178 - ip -6 addr add dev "$vlandev" dead:42::1234/64 179 - check_err $? 180 - ip -d link > /dev/null 181 - check_err $? 182 - ip r s t all > /dev/null 183 - check_err $? 95 + run_cmd ip link add name "$devbr" type bridge 96 + run_cmd ip link set dev "$devdummy" master "$devbr" 97 + run_cmd ip link set "$devbr" up 98 + run_cmd ip link add link "$devbr" name "$vlandev" type vlan id 1 99 + run_cmd ip addr add dev "$vlandev" 10.200.7.23/30 100 + run_cmd ip -6 addr add dev "$vlandev" dead:42::1234/64 101 + run_cmd ip -d link 102 + run_cmd ip r s t all 184 103 185 104 for name in "$devbr" "$vlandev" "$devdummy" ; do 186 105 kci_test_netconf "$name" 187 106 done 188 - 189 - ip -6 addr del dev "$vlandev" dead:42::1234/64 190 - check_err $? 191 - 192 - ip link del dev "$vlandev" 193 - check_err $? 194 - ip link del dev "$devbr" 195 - check_err $? 107 + run_cmd ip -6 addr del dev "$vlandev" dead:42::1234/64 108 + run_cmd ip link del dev "$vlandev" 109 + run_cmd ip link del dev "$devbr" 196 110 197 111 if [ $ret -ne 0 ];then 198 - echo "FAIL: bridge setup" 112 + end_test "FAIL: bridge setup" 199 113 return 1 200 114 fi 201 - echo "PASS: bridge setup" 115 + end_test "PASS: bridge setup" 202 116 203 117 } 204 118 ··· 193 139 loc=10.0.0.1 194 140 195 141 local ret=0 196 - ip tunnel add $gredev mode gre remote $rem local $loc ttl 1 197 - check_err $? 198 - ip link set $gredev up 199 - check_err $? 200 - ip addr add 10.23.7.10 dev $gredev 201 - check_err $? 202 - ip route add 10.23.8.0/30 dev $gredev 203 - check_err $? 204 - ip addr add dev "$devdummy" 10.23.7.11/24 205 - check_err $? 206 - ip link > /dev/null 207 - check_err $? 208 - ip addr > /dev/null 209 - check_err $? 142 + run_cmd ip tunnel add $gredev mode gre remote $rem local $loc ttl 1 143 + run_cmd ip link set $gredev up 144 + run_cmd ip addr add 10.23.7.10 dev $gredev 145 + run_cmd ip route add 10.23.8.0/30 dev $gredev 146 + run_cmd ip addr add dev "$devdummy" 10.23.7.11/24 147 + run_cmd ip link 148 + run_cmd ip addr 210 149 211 150 kci_test_netconf "$gredev" 212 - 213 - ip addr del dev "$devdummy" 10.23.7.11/24 214 - check_err $? 215 - 216 - ip link del $gredev 217 - check_err $? 151 + run_cmd ip addr del dev "$devdummy" 10.23.7.11/24 152 + run_cmd ip link del $gredev 218 153 219 154 if [ $ret -ne 0 ];then 220 - echo "FAIL: gre tunnel endpoint" 155 + end_test "FAIL: gre tunnel endpoint" 221 156 return 1 222 157 fi 223 - echo "PASS: gre tunnel endpoint" 158 + end_test "PASS: gre tunnel endpoint" 224 159 } 225 160 226 161 # tc uses rtnetlink too, for full tc testing ··· 219 176 dev=lo 220 177 local ret=0 221 178 222 - tc qdisc add dev "$dev" root handle 1: htb 223 - check_err $? 224 - tc class add dev "$dev" parent 1: classid 1:10 htb rate 1mbit 225 - check_err $? 226 - tc filter add dev "$dev" parent 1:0 prio 5 handle ffe: protocol ip u32 divisor 256 227 - check_err $? 228 - tc filter add dev "$dev" parent 1:0 prio 5 handle ffd: protocol ip u32 divisor 256 229 - check_err $? 230 - tc filter add dev "$dev" parent 1:0 prio 5 handle ffc: protocol ip u32 divisor 256 231 - check_err $? 232 - tc filter add dev "$dev" protocol ip parent 1: prio 5 handle ffe:2:3 u32 ht ffe:2: match ip src 10.0.0.3 flowid 1:10 233 - check_err $? 234 - tc filter add dev "$dev" protocol ip parent 1: prio 5 handle ffe:2:2 u32 ht ffe:2: match ip src 10.0.0.2 flowid 1:10 235 - check_err $? 236 - tc filter show dev "$dev" parent 1:0 > /dev/null 237 - check_err $? 238 - tc filter del dev "$dev" protocol ip parent 1: prio 5 handle ffe:2:3 u32 239 - check_err $? 240 - tc filter show dev "$dev" parent 1:0 > /dev/null 241 - check_err $? 242 - tc qdisc del dev "$dev" root handle 1: htb 243 - check_err $? 179 + run_cmd tc qdisc add dev "$dev" root handle 1: htb 180 + run_cmd tc class add dev "$dev" parent 1: classid 1:10 htb rate 1mbit 181 + run_cmd tc filter add dev "$dev" parent 1:0 prio 5 handle ffe: protocol ip u32 divisor 256 182 + run_cmd tc filter add dev "$dev" parent 1:0 prio 5 handle ffd: protocol ip u32 divisor 256 183 + run_cmd tc filter add dev "$dev" parent 1:0 prio 5 handle ffc: protocol ip u32 divisor 256 184 + run_cmd tc filter add dev "$dev" protocol ip parent 1: prio 5 handle ffe:2:3 u32 ht ffe:2: match ip src 10.0.0.3 flowid 1:10 185 + run_cmd tc filter add dev "$dev" protocol ip parent 1: prio 5 handle ffe:2:2 u32 ht ffe:2: match ip src 10.0.0.2 flowid 1:10 186 + run_cmd tc filter show dev "$dev" parent 1:0 187 + run_cmd tc filter del dev "$dev" protocol ip parent 1: prio 5 handle ffe:2:3 u32 188 + run_cmd tc filter show dev "$dev" parent 1:0 189 + run_cmd tc qdisc del dev "$dev" root handle 1: htb 244 190 245 191 if [ $ret -ne 0 ];then 246 - echo "FAIL: tc htb hierarchy" 192 + end_test "FAIL: tc htb hierarchy" 247 193 return 1 248 194 fi 249 - echo "PASS: tc htb hierarchy" 195 + end_test "PASS: tc htb hierarchy" 250 196 251 197 } 252 198 253 199 kci_test_polrouting() 254 200 { 255 201 local ret=0 256 - ip rule add fwmark 1 lookup 100 257 - check_err $? 258 - ip route add local 0.0.0.0/0 dev lo table 100 259 - check_err $? 260 - ip r s t all > /dev/null 261 - check_err $? 262 - ip rule del fwmark 1 lookup 100 263 - check_err $? 264 - ip route del local 0.0.0.0/0 dev lo table 100 265 - check_err $? 202 + run_cmd ip rule add fwmark 1 lookup 100 203 + run_cmd ip route add local 0.0.0.0/0 dev lo table 100 204 + run_cmd ip r s t all 205 + run_cmd ip rule del fwmark 1 lookup 100 206 + run_cmd ip route del local 0.0.0.0/0 dev lo table 100 266 207 267 208 if [ $ret -ne 0 ];then 268 - echo "FAIL: policy route test" 209 + end_test "FAIL: policy route test" 269 210 return 1 270 211 fi 271 - echo "PASS: policy routing" 212 + end_test "PASS: policy routing" 272 213 } 273 214 274 215 kci_test_route_get() ··· 260 233 local hash_policy=$(sysctl -n net.ipv4.fib_multipath_hash_policy) 261 234 262 235 local ret=0 263 - 264 - ip route get 127.0.0.1 > /dev/null 265 - check_err $? 266 - ip route get 127.0.0.1 dev "$devdummy" > /dev/null 267 - check_err $? 268 - ip route get ::1 > /dev/null 269 - check_err $? 270 - ip route get fe80::1 dev "$devdummy" > /dev/null 271 - check_err $? 272 - ip route get 127.0.0.1 from 127.0.0.1 oif lo tos 0x10 mark 0x1 > /dev/null 273 - check_err $? 274 - ip route get ::1 from ::1 iif lo oif lo tos 0x10 mark 0x1 > /dev/null 275 - check_err $? 276 - ip addr add dev "$devdummy" 10.23.7.11/24 277 - check_err $? 278 - ip route get 10.23.7.11 from 10.23.7.12 iif "$devdummy" > /dev/null 279 - check_err $? 280 - ip route add 10.23.8.0/24 \ 236 + run_cmd ip route get 127.0.0.1 237 + run_cmd ip route get 127.0.0.1 dev "$devdummy" 238 + run_cmd ip route get ::1 239 + run_cmd ip route get fe80::1 dev "$devdummy" 240 + run_cmd ip route get 127.0.0.1 from 127.0.0.1 oif lo tos 0x10 mark 0x1 241 + run_cmd ip route get ::1 from ::1 iif lo oif lo tos 0x10 mark 0x1 242 + run_cmd ip addr add dev "$devdummy" 10.23.7.11/24 243 + run_cmd ip route get 10.23.7.11 from 10.23.7.12 iif "$devdummy" 244 + run_cmd ip route add 10.23.8.0/24 \ 281 245 nexthop via 10.23.7.13 dev "$devdummy" \ 282 246 nexthop via 10.23.7.14 dev "$devdummy" 283 - check_err $? 247 + 284 248 sysctl -wq net.ipv4.fib_multipath_hash_policy=0 285 - ip route get 10.23.8.11 > /dev/null 286 - check_err $? 249 + run_cmd ip route get 10.23.8.11 287 250 sysctl -wq net.ipv4.fib_multipath_hash_policy=1 288 - ip route get 10.23.8.11 > /dev/null 289 - check_err $? 251 + run_cmd ip route get 10.23.8.11 290 252 sysctl -wq net.ipv4.fib_multipath_hash_policy="$hash_policy" 291 - ip route del 10.23.8.0/24 292 - check_err $? 293 - ip addr del dev "$devdummy" 10.23.7.11/24 294 - check_err $? 253 + run_cmd ip route del 10.23.8.0/24 254 + run_cmd ip addr del dev "$devdummy" 10.23.7.11/24 255 + 295 256 296 257 if [ $ret -ne 0 ];then 297 - echo "FAIL: route get" 258 + end_test "FAIL: route get" 298 259 return 1 299 260 fi 300 261 301 - echo "PASS: route get" 262 + end_test "PASS: route get" 302 263 } 303 264 304 265 kci_test_addrlft() 305 266 { 306 267 for i in $(seq 10 100) ;do 307 268 lft=$(((RANDOM%3) + 1)) 308 - ip addr add 10.23.11.$i/32 dev "$devdummy" preferred_lft $lft valid_lft $((lft+1)) 309 - check_err $? 269 + run_cmd ip addr add 10.23.11.$i/32 dev "$devdummy" preferred_lft $lft valid_lft $((lft+1)) 310 270 done 311 271 312 272 sleep 5 313 - 314 - ip addr show dev "$devdummy" | grep "10.23.11." 273 + run_cmd_grep "10.23.11." ip addr show dev "$devdummy" 315 274 if [ $? -eq 0 ]; then 316 - echo "FAIL: preferred_lft addresses remaining" 317 275 check_err 1 276 + end_test "FAIL: preferred_lft addresses remaining" 318 277 return 319 278 fi 320 279 321 - echo "PASS: preferred_lft addresses have expired" 280 + end_test "PASS: preferred_lft addresses have expired" 322 281 } 323 282 324 283 kci_test_promote_secondaries() ··· 323 310 324 311 [ $promote -eq 0 ] && sysctl -q net.ipv4.conf.$devdummy.promote_secondaries=0 325 312 326 - echo "PASS: promote_secondaries complete" 313 + end_test "PASS: promote_secondaries complete" 327 314 } 328 315 329 316 kci_test_addrlabel() 330 317 { 331 318 local ret=0 332 - 333 - ip addrlabel add prefix dead::/64 dev lo label 1 334 - check_err $? 335 - 336 - ip addrlabel list |grep -q "prefix dead::/64 dev lo label 1" 337 - check_err $? 338 - 339 - ip addrlabel del prefix dead::/64 dev lo label 1 2> /dev/null 340 - check_err $? 341 - 342 - ip addrlabel add prefix dead::/64 label 1 2> /dev/null 343 - check_err $? 344 - 345 - ip addrlabel del prefix dead::/64 label 1 2> /dev/null 346 - check_err $? 319 + run_cmd ip addrlabel add prefix dead::/64 dev lo label 1 320 + run_cmd_grep "prefix dead::/64 dev lo label 1" ip addrlabel list 321 + run_cmd ip addrlabel del prefix dead::/64 dev lo label 1 322 + run_cmd ip addrlabel add prefix dead::/64 label 1 323 + run_cmd ip addrlabel del prefix dead::/64 label 1 347 324 348 325 # concurrent add/delete 349 326 for i in $(seq 1 1000); do ··· 349 346 ip addrlabel del prefix 1c3::/64 label 12345 2>/dev/null 350 347 351 348 if [ $ret -ne 0 ];then 352 - echo "FAIL: ipv6 addrlabel" 349 + end_test "FAIL: ipv6 addrlabel" 353 350 return 1 354 351 fi 355 352 356 - echo "PASS: ipv6 addrlabel" 353 + end_test "PASS: ipv6 addrlabel" 357 354 } 358 355 359 356 kci_test_ifalias() ··· 361 358 local ret=0 362 359 namewant=$(uuidgen) 363 360 syspathname="/sys/class/net/$devdummy/ifalias" 364 - 365 - ip link set dev "$devdummy" alias "$namewant" 366 - check_err $? 361 + run_cmd ip link set dev "$devdummy" alias "$namewant" 367 362 368 363 if [ $ret -ne 0 ]; then 369 - echo "FAIL: cannot set interface alias of $devdummy to $namewant" 364 + end_test "FAIL: cannot set interface alias of $devdummy to $namewant" 370 365 return 1 371 366 fi 372 - 373 - ip link show "$devdummy" | grep -q "alias $namewant" 374 - check_err $? 367 + run_cmd_grep "alias $namewant" ip link show "$devdummy" 375 368 376 369 if [ -r "$syspathname" ] ; then 377 370 read namehave < "$syspathname" 378 371 if [ "$namewant" != "$namehave" ]; then 379 - echo "FAIL: did set ifalias $namewant but got $namehave" 372 + end_test "FAIL: did set ifalias $namewant but got $namehave" 380 373 return 1 381 374 fi 382 375 383 376 namewant=$(uuidgen) 384 377 echo "$namewant" > "$syspathname" 385 - ip link show "$devdummy" | grep -q "alias $namewant" 386 - check_err $? 378 + run_cmd_grep "alias $namewant" ip link show "$devdummy" 387 379 388 380 # sysfs interface allows to delete alias again 389 381 echo "" > "$syspathname" 390 - 391 - ip link show "$devdummy" | grep -q "alias $namewant" 392 - check_fail $? 382 + run_cmd_grep_fail "alias $namewant" ip link show "$devdummy" 393 383 394 384 for i in $(seq 1 100); do 395 385 uuidgen > "$syspathname" & ··· 391 395 wait 392 396 393 397 # re-add the alias -- kernel should free mem when dummy dev is removed 394 - ip link set dev "$devdummy" alias "$namewant" 395 - check_err $? 398 + run_cmd ip link set dev "$devdummy" alias "$namewant" 399 + 396 400 fi 397 401 398 402 if [ $ret -ne 0 ]; then 399 - echo "FAIL: set interface alias $devdummy to $namewant" 403 + end_test "FAIL: set interface alias $devdummy to $namewant" 400 404 return 1 401 405 fi 402 406 403 - echo "PASS: set ifalias $namewant for $devdummy" 407 + end_test "PASS: set ifalias $namewant for $devdummy" 404 408 } 405 409 406 410 kci_test_vrf() 407 411 { 408 412 vrfname="test-vrf" 409 413 local ret=0 410 - 411 - ip link show type vrf 2>/dev/null 414 + run_cmd ip link show type vrf 412 415 if [ $? -ne 0 ]; then 413 - echo "SKIP: vrf: iproute2 too old" 416 + end_test "SKIP: vrf: iproute2 too old" 414 417 return $ksft_skip 415 418 fi 416 - 417 - ip link add "$vrfname" type vrf table 10 418 - check_err $? 419 + run_cmd ip link add "$vrfname" type vrf table 10 419 420 if [ $ret -ne 0 ];then 420 - echo "FAIL: can't add vrf interface, skipping test" 421 + end_test "FAIL: can't add vrf interface, skipping test" 421 422 return 0 422 423 fi 423 - 424 - ip -br link show type vrf | grep -q "$vrfname" 425 - check_err $? 424 + run_cmd_grep "$vrfname" ip -br link show type vrf 426 425 if [ $ret -ne 0 ];then 427 - echo "FAIL: created vrf device not found" 426 + end_test "FAIL: created vrf device not found" 428 427 return 1 429 428 fi 430 429 431 - ip link set dev "$vrfname" up 432 - check_err $? 433 - 434 - ip link set dev "$devdummy" master "$vrfname" 435 - check_err $? 436 - ip link del dev "$vrfname" 437 - check_err $? 430 + run_cmd ip link set dev "$vrfname" up 431 + run_cmd ip link set dev "$devdummy" master "$vrfname" 432 + run_cmd ip link del dev "$vrfname" 438 433 439 434 if [ $ret -ne 0 ];then 440 - echo "FAIL: vrf" 435 + end_test "FAIL: vrf" 441 436 return 1 442 437 fi 443 438 444 - echo "PASS: vrf" 439 + end_test "PASS: vrf" 445 440 } 446 441 447 442 kci_test_encap_vxlan() ··· 441 454 vxlan="test-vxlan0" 442 455 vlan="test-vlan0" 443 456 testns="$1" 444 - 445 - ip -netns "$testns" link add "$vxlan" type vxlan id 42 group 239.1.1.1 \ 446 - dev "$devdummy" dstport 4789 2>/dev/null 457 + run_cmd ip -netns "$testns" link add "$vxlan" type vxlan id 42 group 239.1.1.1 \ 458 + dev "$devdummy" dstport 4789 447 459 if [ $? -ne 0 ]; then 448 - echo "FAIL: can't add vxlan interface, skipping test" 460 + end_test "FAIL: can't add vxlan interface, skipping test" 449 461 return 0 450 462 fi 451 - check_err $? 452 463 453 - ip -netns "$testns" addr add 10.2.11.49/24 dev "$vxlan" 454 - check_err $? 455 - 456 - ip -netns "$testns" link set up dev "$vxlan" 457 - check_err $? 458 - 459 - ip -netns "$testns" link add link "$vxlan" name "$vlan" type vlan id 1 460 - check_err $? 464 + run_cmd ip -netns "$testns" addr add 10.2.11.49/24 dev "$vxlan" 465 + run_cmd ip -netns "$testns" link set up dev "$vxlan" 466 + run_cmd ip -netns "$testns" link add link "$vxlan" name "$vlan" type vlan id 1 461 467 462 468 # changelink testcases 463 - ip -netns "$testns" link set dev "$vxlan" type vxlan vni 43 2>/dev/null 464 - check_fail $? 469 + run_cmd_fail ip -netns "$testns" link set dev "$vxlan" type vxlan vni 43 470 + run_cmd_fail ip -netns "$testns" link set dev "$vxlan" type vxlan group ffe5::5 dev "$devdummy" 471 + run_cmd_fail ip -netns "$testns" link set dev "$vxlan" type vxlan ttl inherit 465 472 466 - ip -netns "$testns" link set dev "$vxlan" type vxlan group ffe5::5 dev "$devdummy" 2>/dev/null 467 - check_fail $? 473 + run_cmd ip -netns "$testns" link set dev "$vxlan" type vxlan ttl 64 474 + run_cmd ip -netns "$testns" link set dev "$vxlan" type vxlan nolearning 468 475 469 - ip -netns "$testns" link set dev "$vxlan" type vxlan ttl inherit 2>/dev/null 470 - check_fail $? 471 - 472 - ip -netns "$testns" link set dev "$vxlan" type vxlan ttl 64 473 - check_err $? 474 - 475 - ip -netns "$testns" link set dev "$vxlan" type vxlan nolearning 476 - check_err $? 477 - 478 - ip -netns "$testns" link set dev "$vxlan" type vxlan proxy 2>/dev/null 479 - check_fail $? 480 - 481 - ip -netns "$testns" link set dev "$vxlan" type vxlan norsc 2>/dev/null 482 - check_fail $? 483 - 484 - ip -netns "$testns" link set dev "$vxlan" type vxlan l2miss 2>/dev/null 485 - check_fail $? 486 - 487 - ip -netns "$testns" link set dev "$vxlan" type vxlan l3miss 2>/dev/null 488 - check_fail $? 489 - 490 - ip -netns "$testns" link set dev "$vxlan" type vxlan external 2>/dev/null 491 - check_fail $? 492 - 493 - ip -netns "$testns" link set dev "$vxlan" type vxlan udpcsum 2>/dev/null 494 - check_fail $? 495 - 496 - ip -netns "$testns" link set dev "$vxlan" type vxlan udp6zerocsumtx 2>/dev/null 497 - check_fail $? 498 - 499 - ip -netns "$testns" link set dev "$vxlan" type vxlan udp6zerocsumrx 2>/dev/null 500 - check_fail $? 501 - 502 - ip -netns "$testns" link set dev "$vxlan" type vxlan remcsumtx 2>/dev/null 503 - check_fail $? 504 - 505 - ip -netns "$testns" link set dev "$vxlan" type vxlan remcsumrx 2>/dev/null 506 - check_fail $? 507 - 508 - ip -netns "$testns" link set dev "$vxlan" type vxlan gbp 2>/dev/null 509 - check_fail $? 510 - 511 - ip -netns "$testns" link set dev "$vxlan" type vxlan gpe 2>/dev/null 512 - check_fail $? 513 - 514 - ip -netns "$testns" link del "$vxlan" 515 - check_err $? 476 + run_cmd_fail ip -netns "$testns" link set dev "$vxlan" type vxlan proxy 477 + run_cmd_fail ip -netns "$testns" link set dev "$vxlan" type vxlan norsc 478 + run_cmd_fail ip -netns "$testns" link set dev "$vxlan" type vxlan l2miss 479 + run_cmd_fail ip -netns "$testns" link set dev "$vxlan" type vxlan l3miss 480 + run_cmd_fail ip -netns "$testns" link set dev "$vxlan" type vxlan external 481 + run_cmd_fail ip -netns "$testns" link set dev "$vxlan" type vxlan udpcsum 482 + run_cmd_fail ip -netns "$testns" link set dev "$vxlan" type vxlan udp6zerocsumtx 483 + run_cmd_fail ip -netns "$testns" link set dev "$vxlan" type vxlan udp6zerocsumrx 484 + run_cmd_fail ip -netns "$testns" link set dev "$vxlan" type vxlan remcsumtx 485 + run_cmd_fail ip -netns "$testns" link set dev "$vxlan" type vxlan remcsumrx 486 + run_cmd_fail ip -netns "$testns" link set dev "$vxlan" type vxlan gbp 487 + run_cmd_fail ip -netns "$testns" link set dev "$vxlan" type vxlan gpe 488 + run_cmd ip -netns "$testns" link del "$vxlan" 516 489 517 490 if [ $ret -ne 0 ]; then 518 - echo "FAIL: vxlan" 491 + end_test "FAIL: vxlan" 519 492 return 1 520 493 fi 521 - echo "PASS: vxlan" 494 + end_test "PASS: vxlan" 522 495 } 523 496 524 497 kci_test_encap_fou() ··· 486 539 local ret=0 487 540 name="test-fou" 488 541 testns="$1" 489 - 490 - ip fou help 2>&1 |grep -q 'Usage: ip fou' 542 + run_cmd_grep 'Usage: ip fou' ip fou help 491 543 if [ $? -ne 0 ];then 492 - echo "SKIP: fou: iproute2 too old" 544 + end_test "SKIP: fou: iproute2 too old" 493 545 return $ksft_skip 494 546 fi 495 547 496 548 if ! /sbin/modprobe -q -n fou; then 497 - echo "SKIP: module fou is not found" 549 + end_test "SKIP: module fou is not found" 498 550 return $ksft_skip 499 551 fi 500 552 /sbin/modprobe -q fou 501 - ip -netns "$testns" fou add port 7777 ipproto 47 2>/dev/null 553 + 554 + run_cmd ip -netns "$testns" fou add port 7777 ipproto 47 502 555 if [ $? -ne 0 ];then 503 - echo "FAIL: can't add fou port 7777, skipping test" 556 + end_test "FAIL: can't add fou port 7777, skipping test" 504 557 return 1 505 558 fi 506 - 507 - ip -netns "$testns" fou add port 8888 ipproto 4 508 - check_err $? 509 - 510 - ip -netns "$testns" fou del port 9999 2>/dev/null 511 - check_fail $? 512 - 513 - ip -netns "$testns" fou del port 7777 514 - check_err $? 515 - 559 + run_cmd ip -netns "$testns" fou add port 8888 ipproto 4 560 + run_cmd_fail ip -netns "$testns" fou del port 9999 561 + run_cmd ip -netns "$testns" fou del port 7777 516 562 if [ $ret -ne 0 ]; then 517 - echo "FAIL: fou" 563 + end_test "FAIL: fou"s 518 564 return 1 519 565 fi 520 566 521 - echo "PASS: fou" 567 + end_test "PASS: fou" 522 568 } 523 569 524 570 # test various encap methods, use netns to avoid unwanted interference ··· 519 579 { 520 580 testns="testns" 521 581 local ret=0 522 - 523 - ip netns add "$testns" 582 + run_cmd ip netns add "$testns" 524 583 if [ $? -ne 0 ]; then 525 - echo "SKIP encap tests: cannot add net namespace $testns" 584 + end_test "SKIP encap tests: cannot add net namespace $testns" 526 585 return $ksft_skip 527 586 fi 528 - 529 - ip -netns "$testns" link set lo up 530 - check_err $? 531 - 532 - ip -netns "$testns" link add name "$devdummy" type dummy 533 - check_err $? 534 - ip -netns "$testns" link set "$devdummy" up 535 - check_err $? 536 - 537 - kci_test_encap_vxlan "$testns" 538 - check_err $? 539 - kci_test_encap_fou "$testns" 540 - check_err $? 587 + run_cmd ip -netns "$testns" link set lo up 588 + run_cmd ip -netns "$testns" link add name "$devdummy" type dummy 589 + run_cmd ip -netns "$testns" link set "$devdummy" up 590 + run_cmd kci_test_encap_vxlan "$testns" 591 + run_cmd kci_test_encap_fou "$testns" 541 592 542 593 ip netns del "$testns" 543 594 return $ret ··· 538 607 { 539 608 msname="test_macsec0" 540 609 local ret=0 541 - 542 - ip macsec help 2>&1 | grep -q "^Usage: ip macsec" 610 + run_cmd_grep "^Usage: ip macsec" ip macsec help 543 611 if [ $? -ne 0 ]; then 544 - echo "SKIP: macsec: iproute2 too old" 612 + end_test "SKIP: macsec: iproute2 too old" 545 613 return $ksft_skip 546 614 fi 547 - 548 - ip link add link "$devdummy" "$msname" type macsec port 42 encrypt on 549 - check_err $? 615 + run_cmd ip link add link "$devdummy" "$msname" type macsec port 42 encrypt on 550 616 if [ $ret -ne 0 ];then 551 - echo "FAIL: can't add macsec interface, skipping test" 617 + end_test "FAIL: can't add macsec interface, skipping test" 618 + return 1 619 + fi 620 + run_cmd ip macsec add "$msname" tx sa 0 pn 1024 on key 01 12345678901234567890123456789012 621 + run_cmd ip macsec add "$msname" rx port 1234 address "1c:ed:de:ad:be:ef" 622 + run_cmd ip macsec add "$msname" rx port 1234 address "1c:ed:de:ad:be:ef" sa 0 pn 1 on key 00 0123456789abcdef0123456789abcdef 623 + run_cmd ip macsec show 624 + run_cmd ip link del dev "$msname" 625 + 626 + if [ $ret -ne 0 ];then 627 + end_test "FAIL: macsec" 552 628 return 1 553 629 fi 554 630 555 - ip macsec add "$msname" tx sa 0 pn 1024 on key 01 12345678901234567890123456789012 556 - check_err $? 557 - 558 - ip macsec add "$msname" rx port 1234 address "1c:ed:de:ad:be:ef" 559 - check_err $? 560 - 561 - ip macsec add "$msname" rx port 1234 address "1c:ed:de:ad:be:ef" sa 0 pn 1 on key 00 0123456789abcdef0123456789abcdef 562 - check_err $? 563 - 564 - ip macsec show > /dev/null 565 - check_err $? 566 - 567 - ip link del dev "$msname" 568 - check_err $? 569 - 570 - if [ $ret -ne 0 ];then 571 - echo "FAIL: macsec" 572 - return 1 573 - fi 574 - 575 - echo "PASS: macsec" 631 + end_test "PASS: macsec" 576 632 } 577 633 578 634 kci_test_macsec_offload() ··· 568 650 sysfsnet=/sys/bus/netdevsim/devices/netdevsim0/net/ 569 651 probed=false 570 652 local ret=0 571 - 572 - ip macsec help 2>&1 | grep -q "^Usage: ip macsec" 653 + run_cmd_grep "^Usage: ip macsec" ip macsec help 573 654 if [ $? -ne 0 ]; then 574 - echo "SKIP: macsec: iproute2 too old" 655 + end_test "SKIP: macsec: iproute2 too old" 575 656 return $ksft_skip 576 657 fi 577 658 578 659 # setup netdevsim since dummydev doesn't have offload support 579 660 if [ ! -w /sys/bus/netdevsim/new_device ] ; then 580 - modprobe -q netdevsim 581 - check_err $? 661 + run_cmd modprobe -q netdevsim 662 + 582 663 if [ $ret -ne 0 ]; then 583 - echo "SKIP: macsec_offload can't load netdevsim" 664 + end_test "SKIP: macsec_offload can't load netdevsim" 584 665 return $ksft_skip 585 666 fi 586 667 probed=true ··· 592 675 593 676 ip link set $dev up 594 677 if [ ! -d $sysfsd ] ; then 595 - echo "FAIL: macsec_offload can't create device $dev" 678 + end_test "FAIL: macsec_offload can't create device $dev" 596 679 return 1 597 680 fi 598 - 599 - ethtool -k $dev | grep -q 'macsec-hw-offload: on' 681 + run_cmd_grep 'macsec-hw-offload: on' ethtool -k $dev 600 682 if [ $? -eq 1 ] ; then 601 - echo "FAIL: macsec_offload netdevsim doesn't support MACsec offload" 683 + end_test "FAIL: macsec_offload netdevsim doesn't support MACsec offload" 602 684 return 1 603 685 fi 604 - 605 - ip link add link $dev kci_macsec1 type macsec port 4 offload mac 606 - check_err $? 607 - 608 - ip link add link $dev kci_macsec2 type macsec address "aa:bb:cc:dd:ee:ff" port 5 offload mac 609 - check_err $? 610 - 611 - ip link add link $dev kci_macsec3 type macsec sci abbacdde01020304 offload mac 612 - check_err $? 613 - 614 - ip link add link $dev kci_macsec4 type macsec port 8 offload mac 2> /dev/null 615 - check_fail $? 686 + run_cmd ip link add link $dev kci_macsec1 type macsec port 4 offload mac 687 + run_cmd ip link add link $dev kci_macsec2 type macsec address "aa:bb:cc:dd:ee:ff" port 5 offload mac 688 + run_cmd ip link add link $dev kci_macsec3 type macsec sci abbacdde01020304 offload mac 689 + run_cmd_fail ip link add link $dev kci_macsec4 type macsec port 8 offload mac 616 690 617 691 msname=kci_macsec1 618 - 619 - ip macsec add "$msname" tx sa 0 pn 1024 on key 01 12345678901234567890123456789012 620 - check_err $? 621 - 622 - ip macsec add "$msname" rx port 1234 address "1c:ed:de:ad:be:ef" 623 - check_err $? 624 - 625 - ip macsec add "$msname" rx port 1234 address "1c:ed:de:ad:be:ef" sa 0 pn 1 on \ 692 + run_cmd ip macsec add "$msname" tx sa 0 pn 1024 on key 01 12345678901234567890123456789012 693 + run_cmd ip macsec add "$msname" rx port 1234 address "1c:ed:de:ad:be:ef" 694 + run_cmd ip macsec add "$msname" rx port 1234 address "1c:ed:de:ad:be:ef" sa 0 pn 1 on \ 626 695 key 00 0123456789abcdef0123456789abcdef 627 - check_err $? 628 - 629 - ip macsec add "$msname" rx port 1235 address "1c:ed:de:ad:be:ef" 2> /dev/null 630 - check_fail $? 631 - 696 + run_cmd_fail ip macsec add "$msname" rx port 1235 address "1c:ed:de:ad:be:ef" 632 697 # clean up any leftovers 633 698 for msdev in kci_macsec{1,2,3,4} ; do 634 699 ip link del $msdev 2> /dev/null ··· 619 720 $probed && rmmod netdevsim 620 721 621 722 if [ $ret -ne 0 ]; then 622 - echo "FAIL: macsec_offload" 723 + end_test "FAIL: macsec_offload" 623 724 return 1 624 725 fi 625 - echo "PASS: macsec_offload" 726 + end_test "PASS: macsec_offload" 626 727 } 627 728 628 729 #------------------------------------------------------------------- ··· 654 755 ip addr add $srcip dev $devdummy 655 756 656 757 # flush to be sure there's nothing configured 657 - ip x s flush ; ip x p flush 658 - check_err $? 758 + run_cmd ip x s flush ; ip x p flush 659 759 660 760 # start the monitor in the background 661 761 tmpfile=`mktemp /var/run/ipsectestXXX` ··· 662 764 sleep 0.2 663 765 664 766 ipsecid="proto esp src $srcip dst $dstip spi 0x07" 665 - ip x s add $ipsecid \ 767 + run_cmd ip x s add $ipsecid \ 666 768 mode transport reqid 0x07 replay-window 32 \ 667 769 $algo sel src $srcip/24 dst $dstip/24 668 - check_err $? 770 + 669 771 670 772 lines=`ip x s list | grep $srcip | grep $dstip | wc -l` 671 - test $lines -eq 2 672 - check_err $? 673 - 674 - ip x s count | grep -q "SAD count 1" 675 - check_err $? 773 + run_cmd test $lines -eq 2 774 + run_cmd_grep "SAD count 1" ip x s count 676 775 677 776 lines=`ip x s get $ipsecid | grep $srcip | grep $dstip | wc -l` 678 - test $lines -eq 2 679 - check_err $? 680 - 681 - ip x s delete $ipsecid 682 - check_err $? 777 + run_cmd test $lines -eq 2 778 + run_cmd ip x s delete $ipsecid 683 779 684 780 lines=`ip x s list | wc -l` 685 - test $lines -eq 0 686 - check_err $? 781 + run_cmd test $lines -eq 0 687 782 688 783 ipsecsel="dir out src $srcip/24 dst $dstip/24" 689 - ip x p add $ipsecsel \ 784 + run_cmd ip x p add $ipsecsel \ 690 785 tmpl proto esp src $srcip dst $dstip \ 691 786 spi 0x07 mode transport reqid 0x07 692 - check_err $? 787 + 693 788 694 789 lines=`ip x p list | grep $srcip | grep $dstip | wc -l` 695 - test $lines -eq 2 696 - check_err $? 790 + run_cmd test $lines -eq 2 697 791 698 - ip x p count | grep -q "SPD IN 0 OUT 1 FWD 0" 699 - check_err $? 792 + run_cmd_grep "SPD IN 0 OUT 1 FWD 0" ip x p count 700 793 701 794 lines=`ip x p get $ipsecsel | grep $srcip | grep $dstip | wc -l` 702 - test $lines -eq 2 703 - check_err $? 795 + run_cmd test $lines -eq 2 704 796 705 - ip x p delete $ipsecsel 706 - check_err $? 797 + run_cmd ip x p delete $ipsecsel 707 798 708 799 lines=`ip x p list | wc -l` 709 - test $lines -eq 0 710 - check_err $? 800 + run_cmd test $lines -eq 0 711 801 712 802 # check the monitor results 713 803 kill $mpid 714 804 lines=`wc -l $tmpfile | cut "-d " -f1` 715 - test $lines -eq 20 716 - check_err $? 805 + run_cmd test $lines -eq 20 717 806 rm -rf $tmpfile 718 807 719 808 # clean up any leftovers 720 - ip x s flush 721 - check_err $? 722 - ip x p flush 723 - check_err $? 809 + run_cmd ip x s flush 810 + run_cmd ip x p flush 724 811 ip addr del $srcip/32 dev $devdummy 725 812 726 813 if [ $ret -ne 0 ]; then 727 - echo "FAIL: ipsec" 814 + end_test "FAIL: ipsec" 728 815 return 1 729 816 fi 730 - echo "PASS: ipsec" 817 + end_test "PASS: ipsec" 731 818 } 732 819 733 820 #------------------------------------------------------------------- ··· 740 857 741 858 # setup netdevsim since dummydev doesn't have offload support 742 859 if [ ! -w /sys/bus/netdevsim/new_device ] ; then 743 - modprobe -q netdevsim 744 - check_err $? 860 + run_cmd modprobe -q netdevsim 745 861 if [ $ret -ne 0 ]; then 746 - echo "SKIP: ipsec_offload can't load netdevsim" 862 + end_test "SKIP: ipsec_offload can't load netdevsim" 747 863 return $ksft_skip 748 864 fi 749 865 probed=true ··· 756 874 ip addr add $srcip dev $dev 757 875 ip link set $dev up 758 876 if [ ! -d $sysfsd ] ; then 759 - echo "FAIL: ipsec_offload can't create device $dev" 877 + end_test "FAIL: ipsec_offload can't create device $dev" 760 878 return 1 761 879 fi 762 880 if [ ! -f $sysfsf ] ; then 763 - echo "FAIL: ipsec_offload netdevsim doesn't support IPsec offload" 881 + end_test "FAIL: ipsec_offload netdevsim doesn't support IPsec offload" 764 882 return 1 765 883 fi 766 884 ··· 768 886 ip x s flush ; ip x p flush 769 887 770 888 # create offloaded SAs, both in and out 771 - ip x p add dir out src $srcip/24 dst $dstip/24 \ 889 + run_cmd ip x p add dir out src $srcip/24 dst $dstip/24 \ 772 890 tmpl proto esp src $srcip dst $dstip spi 9 \ 773 891 mode transport reqid 42 774 - check_err $? 775 - ip x p add dir in src $dstip/24 dst $srcip/24 \ 892 + 893 + run_cmd ip x p add dir in src $dstip/24 dst $srcip/24 \ 776 894 tmpl proto esp src $dstip dst $srcip spi 9 \ 777 895 mode transport reqid 42 778 - check_err $? 779 896 780 - ip x s add proto esp src $srcip dst $dstip spi 9 \ 897 + run_cmd ip x s add proto esp src $srcip dst $dstip spi 9 \ 781 898 mode transport reqid 42 $algo sel src $srcip/24 dst $dstip/24 \ 782 899 offload dev $dev dir out 783 - check_err $? 784 - ip x s add proto esp src $dstip dst $srcip spi 9 \ 900 + 901 + run_cmd ip x s add proto esp src $dstip dst $srcip spi 9 \ 785 902 mode transport reqid 42 $algo sel src $dstip/24 dst $srcip/24 \ 786 903 offload dev $dev dir in 787 - check_err $? 904 + 788 905 if [ $ret -ne 0 ]; then 789 - echo "FAIL: ipsec_offload can't create SA" 906 + end_test "FAIL: ipsec_offload can't create SA" 790 907 return 1 791 908 fi 792 909 793 910 # does offload show up in ip output 794 911 lines=`ip x s list | grep -c "crypto offload parameters: dev $dev dir"` 795 912 if [ $lines -ne 2 ] ; then 796 - echo "FAIL: ipsec_offload SA offload missing from list output" 797 913 check_err 1 914 + end_test "FAIL: ipsec_offload SA offload missing from list output" 798 915 fi 799 916 800 917 # use ping to exercise the Tx path 801 918 ping -I $dev -c 3 -W 1 -i 0 $dstip >/dev/null 802 919 803 920 # does driver have correct offload info 804 - diff $sysfsf - << EOF 921 + run_cmd diff $sysfsf - << EOF 805 922 SA count=2 tx=3 806 923 sa[0] tx ipaddr=0x00000000 00000000 00000000 00000000 807 924 sa[0] spi=0x00000009 proto=0x32 salt=0x61626364 crypt=1 ··· 810 929 sa[1] key=0x34333231 38373635 32313039 36353433 811 930 EOF 812 931 if [ $? -ne 0 ] ; then 813 - echo "FAIL: ipsec_offload incorrect driver data" 932 + end_test "FAIL: ipsec_offload incorrect driver data" 814 933 check_err 1 815 934 fi 816 935 ··· 819 938 ip x p flush 820 939 lines=`grep -c "SA count=0" $sysfsf` 821 940 if [ $lines -ne 1 ] ; then 822 - echo "FAIL: ipsec_offload SA not removed from driver" 823 941 check_err 1 942 + end_test "FAIL: ipsec_offload SA not removed from driver" 824 943 fi 825 944 826 945 # clean up any leftovers ··· 828 947 $probed && rmmod netdevsim 829 948 830 949 if [ $ret -ne 0 ]; then 831 - echo "FAIL: ipsec_offload" 950 + end_test "FAIL: ipsec_offload" 832 951 return 1 833 952 fi 834 - echo "PASS: ipsec_offload" 953 + end_test "PASS: ipsec_offload" 835 954 } 836 955 837 956 kci_test_gretap() ··· 840 959 DEV_NS=gretap00 841 960 local ret=0 842 961 843 - ip netns add "$testns" 962 + run_cmd ip netns add "$testns" 844 963 if [ $? -ne 0 ]; then 845 - echo "SKIP gretap tests: cannot add net namespace $testns" 964 + end_test "SKIP gretap tests: cannot add net namespace $testns" 846 965 return $ksft_skip 847 966 fi 848 967 849 - ip link help gretap 2>&1 | grep -q "^Usage:" 968 + run_cmd_grep "^Usage:" ip link help gretap 850 969 if [ $? -ne 0 ];then 851 - echo "SKIP: gretap: iproute2 too old" 970 + end_test "SKIP: gretap: iproute2 too old" 852 971 ip netns del "$testns" 853 972 return $ksft_skip 854 973 fi 855 974 856 975 # test native tunnel 857 - ip -netns "$testns" link add dev "$DEV_NS" type gretap seq \ 976 + run_cmd ip -netns "$testns" link add dev "$DEV_NS" type gretap seq \ 858 977 key 102 local 172.16.1.100 remote 172.16.1.200 859 - check_err $? 860 978 861 - ip -netns "$testns" addr add dev "$DEV_NS" 10.1.1.100/24 862 - check_err $? 863 979 864 - ip -netns "$testns" link set dev $DEV_NS up 865 - check_err $? 866 - 867 - ip -netns "$testns" link del "$DEV_NS" 868 - check_err $? 980 + run_cmd ip -netns "$testns" addr add dev "$DEV_NS" 10.1.1.100/24 981 + run_cmd ip -netns "$testns" link set dev $DEV_NS ups 982 + run_cmd ip -netns "$testns" link del "$DEV_NS" 869 983 870 984 # test external mode 871 - ip -netns "$testns" link add dev "$DEV_NS" type gretap external 872 - check_err $? 873 - 874 - ip -netns "$testns" link del "$DEV_NS" 875 - check_err $? 985 + run_cmd ip -netns "$testns" link add dev "$DEV_NS" type gretap external 986 + run_cmd ip -netns "$testns" link del "$DEV_NS" 876 987 877 988 if [ $ret -ne 0 ]; then 878 - echo "FAIL: gretap" 989 + end_test "FAIL: gretap" 879 990 ip netns del "$testns" 880 991 return 1 881 992 fi 882 - echo "PASS: gretap" 993 + end_test "PASS: gretap" 883 994 884 995 ip netns del "$testns" 885 996 } ··· 882 1009 DEV_NS=ip6gretap00 883 1010 local ret=0 884 1011 885 - ip netns add "$testns" 1012 + run_cmd ip netns add "$testns" 886 1013 if [ $? -ne 0 ]; then 887 - echo "SKIP ip6gretap tests: cannot add net namespace $testns" 1014 + end_test "SKIP ip6gretap tests: cannot add net namespace $testns" 888 1015 return $ksft_skip 889 1016 fi 890 1017 891 - ip link help ip6gretap 2>&1 | grep -q "^Usage:" 1018 + run_cmd_grep "^Usage:" ip link help ip6gretap 892 1019 if [ $? -ne 0 ];then 893 - echo "SKIP: ip6gretap: iproute2 too old" 1020 + end_test "SKIP: ip6gretap: iproute2 too old" 894 1021 ip netns del "$testns" 895 1022 return $ksft_skip 896 1023 fi 897 1024 898 1025 # test native tunnel 899 - ip -netns "$testns" link add dev "$DEV_NS" type ip6gretap seq \ 1026 + run_cmd ip -netns "$testns" link add dev "$DEV_NS" type ip6gretap seq \ 900 1027 key 102 local fc00:100::1 remote fc00:100::2 901 - check_err $? 902 1028 903 - ip -netns "$testns" addr add dev "$DEV_NS" fc00:200::1/96 904 - check_err $? 905 1029 906 - ip -netns "$testns" link set dev $DEV_NS up 907 - check_err $? 908 - 909 - ip -netns "$testns" link del "$DEV_NS" 910 - check_err $? 1030 + run_cmd ip -netns "$testns" addr add dev "$DEV_NS" fc00:200::1/96 1031 + run_cmd ip -netns "$testns" link set dev $DEV_NS up 1032 + run_cmd ip -netns "$testns" link del "$DEV_NS" 911 1033 912 1034 # test external mode 913 - ip -netns "$testns" link add dev "$DEV_NS" type ip6gretap external 914 - check_err $? 915 - 916 - ip -netns "$testns" link del "$DEV_NS" 917 - check_err $? 1035 + run_cmd ip -netns "$testns" link add dev "$DEV_NS" type ip6gretap external 1036 + run_cmd ip -netns "$testns" link del "$DEV_NS" 918 1037 919 1038 if [ $ret -ne 0 ]; then 920 - echo "FAIL: ip6gretap" 1039 + end_test "FAIL: ip6gretap" 921 1040 ip netns del "$testns" 922 1041 return 1 923 1042 fi 924 - echo "PASS: ip6gretap" 1043 + end_test "PASS: ip6gretap" 925 1044 926 1045 ip netns del "$testns" 927 1046 } ··· 923 1058 testns="testns" 924 1059 DEV_NS=erspan00 925 1060 local ret=0 926 - 927 - ip link help erspan 2>&1 | grep -q "^Usage:" 1061 + run_cmd_grep "^Usage:" ip link help erspan 928 1062 if [ $? -ne 0 ];then 929 - echo "SKIP: erspan: iproute2 too old" 1063 + end_test "SKIP: erspan: iproute2 too old" 930 1064 return $ksft_skip 931 1065 fi 932 - 933 - ip netns add "$testns" 1066 + run_cmd ip netns add "$testns" 934 1067 if [ $? -ne 0 ]; then 935 - echo "SKIP erspan tests: cannot add net namespace $testns" 1068 + end_test "SKIP erspan tests: cannot add net namespace $testns" 936 1069 return $ksft_skip 937 1070 fi 938 1071 939 1072 # test native tunnel erspan v1 940 - ip -netns "$testns" link add dev "$DEV_NS" type erspan seq \ 1073 + run_cmd ip -netns "$testns" link add dev "$DEV_NS" type erspan seq \ 941 1074 key 102 local 172.16.1.100 remote 172.16.1.200 \ 942 1075 erspan_ver 1 erspan 488 943 - check_err $? 944 1076 945 - ip -netns "$testns" addr add dev "$DEV_NS" 10.1.1.100/24 946 - check_err $? 947 1077 948 - ip -netns "$testns" link set dev $DEV_NS up 949 - check_err $? 950 - 951 - ip -netns "$testns" link del "$DEV_NS" 952 - check_err $? 1078 + run_cmd ip -netns "$testns" addr add dev "$DEV_NS" 10.1.1.100/24 1079 + run_cmd ip -netns "$testns" link set dev $DEV_NS up 1080 + run_cmd ip -netns "$testns" link del "$DEV_NS" 953 1081 954 1082 # test native tunnel erspan v2 955 - ip -netns "$testns" link add dev "$DEV_NS" type erspan seq \ 1083 + run_cmd ip -netns "$testns" link add dev "$DEV_NS" type erspan seq \ 956 1084 key 102 local 172.16.1.100 remote 172.16.1.200 \ 957 1085 erspan_ver 2 erspan_dir ingress erspan_hwid 7 958 - check_err $? 959 1086 960 - ip -netns "$testns" addr add dev "$DEV_NS" 10.1.1.100/24 961 - check_err $? 962 1087 963 - ip -netns "$testns" link set dev $DEV_NS up 964 - check_err $? 965 - 966 - ip -netns "$testns" link del "$DEV_NS" 967 - check_err $? 1088 + run_cmd ip -netns "$testns" addr add dev "$DEV_NS" 10.1.1.100/24 1089 + run_cmd ip -netns "$testns" link set dev $DEV_NS up 1090 + run_cmd ip -netns "$testns" link del "$DEV_NS" 968 1091 969 1092 # test external mode 970 - ip -netns "$testns" link add dev "$DEV_NS" type erspan external 971 - check_err $? 972 - 973 - ip -netns "$testns" link del "$DEV_NS" 974 - check_err $? 1093 + run_cmd ip -netns "$testns" link add dev "$DEV_NS" type erspan external 1094 + run_cmd ip -netns "$testns" link del "$DEV_NS" 975 1095 976 1096 if [ $ret -ne 0 ]; then 977 - echo "FAIL: erspan" 1097 + end_test "FAIL: erspan" 978 1098 ip netns del "$testns" 979 1099 return 1 980 1100 fi 981 - echo "PASS: erspan" 1101 + end_test "PASS: erspan" 982 1102 983 1103 ip netns del "$testns" 984 1104 } ··· 973 1123 testns="testns" 974 1124 DEV_NS=ip6erspan00 975 1125 local ret=0 976 - 977 - ip link help ip6erspan 2>&1 | grep -q "^Usage:" 1126 + run_cmd_grep "^Usage:" ip link help ip6erspan 978 1127 if [ $? -ne 0 ];then 979 - echo "SKIP: ip6erspan: iproute2 too old" 1128 + end_test "SKIP: ip6erspan: iproute2 too old" 980 1129 return $ksft_skip 981 1130 fi 982 - 983 - ip netns add "$testns" 1131 + run_cmd ip netns add "$testns" 984 1132 if [ $? -ne 0 ]; then 985 - echo "SKIP ip6erspan tests: cannot add net namespace $testns" 1133 + end_test "SKIP ip6erspan tests: cannot add net namespace $testns" 986 1134 return $ksft_skip 987 1135 fi 988 1136 989 1137 # test native tunnel ip6erspan v1 990 - ip -netns "$testns" link add dev "$DEV_NS" type ip6erspan seq \ 1138 + run_cmd ip -netns "$testns" link add dev "$DEV_NS" type ip6erspan seq \ 991 1139 key 102 local fc00:100::1 remote fc00:100::2 \ 992 1140 erspan_ver 1 erspan 488 993 - check_err $? 994 1141 995 - ip -netns "$testns" addr add dev "$DEV_NS" 10.1.1.100/24 996 - check_err $? 997 1142 998 - ip -netns "$testns" link set dev $DEV_NS up 999 - check_err $? 1000 - 1001 - ip -netns "$testns" link del "$DEV_NS" 1002 - check_err $? 1143 + run_cmd ip -netns "$testns" addr add dev "$DEV_NS" 10.1.1.100/24 1144 + run_cmd ip -netns "$testns" link set dev $DEV_NS up 1145 + run_cmd ip -netns "$testns" link del "$DEV_NS" 1003 1146 1004 1147 # test native tunnel ip6erspan v2 1005 - ip -netns "$testns" link add dev "$DEV_NS" type ip6erspan seq \ 1148 + run_cmd ip -netns "$testns" link add dev "$DEV_NS" type ip6erspan seq \ 1006 1149 key 102 local fc00:100::1 remote fc00:100::2 \ 1007 1150 erspan_ver 2 erspan_dir ingress erspan_hwid 7 1008 - check_err $? 1009 1151 1010 - ip -netns "$testns" addr add dev "$DEV_NS" 10.1.1.100/24 1011 - check_err $? 1012 1152 1013 - ip -netns "$testns" link set dev $DEV_NS up 1014 - check_err $? 1015 - 1016 - ip -netns "$testns" link del "$DEV_NS" 1017 - check_err $? 1153 + run_cmd ip -netns "$testns" addr add dev "$DEV_NS" 10.1.1.100/24 1154 + run_cmd ip -netns "$testns" link set dev $DEV_NS up 1155 + run_cmd ip -netns "$testns" link del "$DEV_NS" 1018 1156 1019 1157 # test external mode 1020 - ip -netns "$testns" link add dev "$DEV_NS" \ 1158 + run_cmd ip -netns "$testns" link add dev "$DEV_NS" \ 1021 1159 type ip6erspan external 1022 - check_err $? 1023 1160 1024 - ip -netns "$testns" link del "$DEV_NS" 1025 - check_err $? 1161 + run_cmd ip -netns "$testns" link del "$DEV_NS" 1026 1162 1027 1163 if [ $ret -ne 0 ]; then 1028 - echo "FAIL: ip6erspan" 1164 + end_test "FAIL: ip6erspan" 1029 1165 ip netns del "$testns" 1030 1166 return 1 1031 1167 fi 1032 - echo "PASS: ip6erspan" 1168 + end_test "PASS: ip6erspan" 1033 1169 1034 1170 ip netns del "$testns" 1035 1171 } ··· 1031 1195 dstip="10.0.2.3" 1032 1196 local ret=0 1033 1197 1034 - bridge fdb help 2>&1 |grep -q 'bridge fdb get' 1198 + run_cmd_grep 'bridge fdb get' bridge fdb help 1035 1199 if [ $? -ne 0 ];then 1036 - echo "SKIP: fdb get tests: iproute2 too old" 1200 + end_test "SKIP: fdb get tests: iproute2 too old" 1037 1201 return $ksft_skip 1038 1202 fi 1039 1203 1040 - ip netns add testns 1204 + run_cmd ip netns add testns 1041 1205 if [ $? -ne 0 ]; then 1042 - echo "SKIP fdb get tests: cannot add net namespace $testns" 1206 + end_test "SKIP fdb get tests: cannot add net namespace $testns" 1043 1207 return $ksft_skip 1044 1208 fi 1045 - 1046 - $IP link add "$vxlandev" type vxlan id 10 local $localip \ 1047 - dstport 4789 2>/dev/null 1048 - check_err $? 1049 - $IP link add name "$brdev" type bridge &>/dev/null 1050 - check_err $? 1051 - $IP link set dev "$vxlandev" master "$brdev" &>/dev/null 1052 - check_err $? 1053 - $BRIDGE fdb add $test_mac dev "$vxlandev" master &>/dev/null 1054 - check_err $? 1055 - $BRIDGE fdb add $test_mac dev "$vxlandev" dst $dstip self &>/dev/null 1056 - check_err $? 1057 - 1058 - $BRIDGE fdb get $test_mac brport "$vxlandev" 2>/dev/null | grep -q "dev $vxlandev master $brdev" 1059 - check_err $? 1060 - $BRIDGE fdb get $test_mac br "$brdev" 2>/dev/null | grep -q "dev $vxlandev master $brdev" 1061 - check_err $? 1062 - $BRIDGE fdb get $test_mac dev "$vxlandev" self 2>/dev/null | grep -q "dev $vxlandev dst $dstip" 1063 - check_err $? 1209 + run_cmd $IP link add "$vxlandev" type vxlan id 10 local $localip \ 1210 + dstport 4789 1211 + run_cmd $IP link add name "$brdev" type bridge 1212 + run_cmd $IP link set dev "$vxlandev" master "$brdev" 1213 + run_cmd $BRIDGE fdb add $test_mac dev "$vxlandev" master 1214 + run_cmd $BRIDGE fdb add $test_mac dev "$vxlandev" dst $dstip self 1215 + run_cmd_grep "dev $vxlandev master $brdev" $BRIDGE fdb get $test_mac brport "$vxlandev" 1216 + run_cmd_grep "dev $vxlandev master $brdev" $BRIDGE fdb get $test_mac br "$brdev" 1217 + run_cmd_grep "dev $vxlandev dst $dstip" $BRIDGE fdb get $test_mac dev "$vxlandev" self 1064 1218 1065 1219 ip netns del testns &>/dev/null 1066 1220 1067 1221 if [ $ret -ne 0 ]; then 1068 - echo "FAIL: bridge fdb get" 1222 + end_test "FAIL: bridge fdb get" 1069 1223 return 1 1070 1224 fi 1071 1225 1072 - echo "PASS: bridge fdb get" 1226 + end_test "PASS: bridge fdb get" 1073 1227 } 1074 1228 1075 1229 kci_test_neigh_get() ··· 1069 1243 dstip6=dead::2 1070 1244 local ret=0 1071 1245 1072 - ip neigh help 2>&1 |grep -q 'ip neigh get' 1246 + run_cmd_grep 'ip neigh get' ip neigh help 1073 1247 if [ $? -ne 0 ];then 1074 - echo "SKIP: fdb get tests: iproute2 too old" 1248 + end_test "SKIP: fdb get tests: iproute2 too old" 1075 1249 return $ksft_skip 1076 1250 fi 1077 1251 1078 1252 # ipv4 1079 - ip neigh add $dstip lladdr $dstmac dev "$devdummy" > /dev/null 1080 - check_err $? 1081 - ip neigh get $dstip dev "$devdummy" 2> /dev/null | grep -q "$dstmac" 1082 - check_err $? 1083 - ip neigh del $dstip lladdr $dstmac dev "$devdummy" > /dev/null 1084 - check_err $? 1253 + run_cmd ip neigh add $dstip lladdr $dstmac dev "$devdummy" 1254 + run_cmd_grep "$dstmac" ip neigh get $dstip dev "$devdummy" 1255 + run_cmd ip neigh del $dstip lladdr $dstmac dev "$devdummy" 1085 1256 1086 1257 # ipv4 proxy 1087 - ip neigh add proxy $dstip dev "$devdummy" > /dev/null 1088 - check_err $? 1089 - ip neigh get proxy $dstip dev "$devdummy" 2>/dev/null | grep -q "$dstip" 1090 - check_err $? 1091 - ip neigh del proxy $dstip dev "$devdummy" > /dev/null 1092 - check_err $? 1258 + run_cmd ip neigh add proxy $dstip dev "$devdummy" 1259 + run_cmd_grep "$dstip" ip neigh get proxy $dstip dev "$devdummy" 1260 + run_cmd ip neigh del proxy $dstip dev "$devdummy" 1093 1261 1094 1262 # ipv6 1095 - ip neigh add $dstip6 lladdr $dstmac dev "$devdummy" > /dev/null 1096 - check_err $? 1097 - ip neigh get $dstip6 dev "$devdummy" 2> /dev/null | grep -q "$dstmac" 1098 - check_err $? 1099 - ip neigh del $dstip6 lladdr $dstmac dev "$devdummy" > /dev/null 1100 - check_err $? 1263 + run_cmd ip neigh add $dstip6 lladdr $dstmac dev "$devdummy" 1264 + run_cmd_grep "$dstmac" ip neigh get $dstip6 dev "$devdummy" 1265 + run_cmd ip neigh del $dstip6 lladdr $dstmac dev "$devdummy" 1101 1266 1102 1267 # ipv6 proxy 1103 - ip neigh add proxy $dstip6 dev "$devdummy" > /dev/null 1104 - check_err $? 1105 - ip neigh get proxy $dstip6 dev "$devdummy" 2>/dev/null | grep -q "$dstip6" 1106 - check_err $? 1107 - ip neigh del proxy $dstip6 dev "$devdummy" > /dev/null 1108 - check_err $? 1268 + run_cmd ip neigh add proxy $dstip6 dev "$devdummy" 1269 + run_cmd_grep "$dstip6" ip neigh get proxy $dstip6 dev "$devdummy" 1270 + run_cmd ip neigh del proxy $dstip6 dev "$devdummy" 1109 1271 1110 1272 if [ $ret -ne 0 ];then 1111 - echo "FAIL: neigh get" 1273 + end_test "FAIL: neigh get" 1112 1274 return 1 1113 1275 fi 1114 1276 1115 - echo "PASS: neigh get" 1277 + end_test "PASS: neigh get" 1116 1278 } 1117 1279 1118 1280 kci_test_bridge_parent_id() ··· 1110 1296 probed=false 1111 1297 1112 1298 if [ ! -w /sys/bus/netdevsim/new_device ] ; then 1113 - modprobe -q netdevsim 1114 - check_err $? 1299 + run_cmd modprobe -q netdevsim 1115 1300 if [ $ret -ne 0 ]; then 1116 - echo "SKIP: bridge_parent_id can't load netdevsim" 1301 + end_test "SKIP: bridge_parent_id can't load netdevsim" 1117 1302 return $ksft_skip 1118 1303 fi 1119 1304 probed=true ··· 1125 1312 udevadm settle 1126 1313 dev10=`ls ${sysfsnet}10/net/` 1127 1314 dev20=`ls ${sysfsnet}20/net/` 1128 - 1129 - ip link add name test-bond0 type bond mode 802.3ad 1130 - ip link set dev $dev10 master test-bond0 1131 - ip link set dev $dev20 master test-bond0 1132 - ip link add name test-br0 type bridge 1133 - ip link set dev test-bond0 master test-br0 1134 - check_err $? 1315 + run_cmd ip link add name test-bond0 type bond mode 802.3ad 1316 + run_cmd ip link set dev $dev10 master test-bond0 1317 + run_cmd ip link set dev $dev20 master test-bond0 1318 + run_cmd ip link add name test-br0 type bridge 1319 + run_cmd ip link set dev test-bond0 master test-br0 1135 1320 1136 1321 # clean up any leftovers 1137 1322 ip link del dev test-br0 ··· 1139 1328 $probed && rmmod netdevsim 1140 1329 1141 1330 if [ $ret -ne 0 ]; then 1142 - echo "FAIL: bridge_parent_id" 1331 + end_test "FAIL: bridge_parent_id" 1143 1332 return 1 1144 1333 fi 1145 - echo "PASS: bridge_parent_id" 1334 + end_test "PASS: bridge_parent_id" 1146 1335 } 1147 1336 1148 1337 address_get_proto() ··· 1220 1409 ip address del dev "$devdummy" "$addr3" 1221 1410 1222 1411 if [ $ret -ne 0 ]; then 1223 - echo "FAIL: address proto $what" 1412 + end_test "FAIL: address proto $what" 1224 1413 return 1 1225 1414 fi 1226 - echo "PASS: address proto $what" 1415 + end_test "PASS: address proto $what" 1227 1416 } 1228 1417 1229 1418 kci_test_address_proto() ··· 1246 1435 1247 1436 kci_add_dummy 1248 1437 if [ $ret -ne 0 ];then 1249 - echo "FAIL: cannot add dummy interface" 1438 + end_test "FAIL: cannot add dummy interface" 1250 1439 return 1 1251 1440 fi 1252 1441 ··· 1266 1455 1267 1456 -t <test> Test(s) to run (default: all) 1268 1457 (options: $(echo $ALL_TESTS)) 1458 + -v Verbose mode (show commands and output) 1459 + -P Pause after every test 1460 + -p Pause after every failing test before cleanup (for debugging) 1269 1461 EOF 1270 1462 } 1271 1463 1272 1464 #check for needed privileges 1273 1465 if [ "$(id -u)" -ne 0 ];then 1274 - echo "SKIP: Need root privileges" 1466 + end_test "SKIP: Need root privileges" 1275 1467 exit $ksft_skip 1276 1468 fi 1277 1469 1278 1470 for x in ip tc;do 1279 1471 $x -Version 2>/dev/null >/dev/null 1280 1472 if [ $? -ne 0 ];then 1281 - echo "SKIP: Could not run test without the $x tool" 1473 + end_test "SKIP: Could not run test without the $x tool" 1282 1474 exit $ksft_skip 1283 1475 fi 1284 1476 done 1285 1477 1286 - while getopts t:h o; do 1478 + while getopts t:hvpP o; do 1287 1479 case $o in 1288 1480 t) TESTS=$OPTARG;; 1481 + v) VERBOSE=1;; 1482 + p) PAUSE_ON_FAIL=yes;; 1483 + P) PAUSE=yes;; 1289 1484 h) usage; exit 0;; 1290 1485 *) usage; exit 1;; 1291 1486 esac 1292 1487 done 1488 + 1489 + [ $PAUSE = "yes" ] && PAUSE_ON_FAIL="no" 1293 1490 1294 1491 kci_test_rtnl 1295 1492