| .. | .. |
|---|
| 5 | 5 | # set -e |
|---|
| 6 | 6 | |
|---|
| 7 | 7 | devdummy="test-dummy0" |
|---|
| 8 | | -ret=0 |
|---|
| 9 | 8 | |
|---|
| 10 | 9 | # Kselftest framework requirement - SKIP code is 4. |
|---|
| 11 | 10 | ksft_skip=4 |
|---|
| .. | .. |
|---|
| 66 | 65 | devbr="test-br0" |
|---|
| 67 | 66 | vlandev="testbr-vlan1" |
|---|
| 68 | 67 | |
|---|
| 69 | | - ret=0 |
|---|
| 68 | + local ret=0 |
|---|
| 70 | 69 | ip link add name "$devbr" type bridge |
|---|
| 71 | 70 | check_err $? |
|---|
| 72 | 71 | |
|---|
| .. | .. |
|---|
| 113 | 112 | rem=10.42.42.1 |
|---|
| 114 | 113 | loc=10.0.0.1 |
|---|
| 115 | 114 | |
|---|
| 116 | | - ret=0 |
|---|
| 115 | + local ret=0 |
|---|
| 117 | 116 | ip tunnel add $gredev mode gre remote $rem local $loc ttl 1 |
|---|
| 118 | 117 | check_err $? |
|---|
| 119 | 118 | ip link set $gredev up |
|---|
| .. | .. |
|---|
| 149 | 148 | kci_test_tc() |
|---|
| 150 | 149 | { |
|---|
| 151 | 150 | dev=lo |
|---|
| 152 | | - ret=0 |
|---|
| 151 | + local ret=0 |
|---|
| 153 | 152 | |
|---|
| 154 | 153 | tc qdisc add dev "$dev" root handle 1: htb |
|---|
| 155 | 154 | check_err $? |
|---|
| .. | .. |
|---|
| 184 | 183 | |
|---|
| 185 | 184 | kci_test_polrouting() |
|---|
| 186 | 185 | { |
|---|
| 187 | | - ret=0 |
|---|
| 186 | + local ret=0 |
|---|
| 188 | 187 | ip rule add fwmark 1 lookup 100 |
|---|
| 189 | 188 | check_err $? |
|---|
| 190 | 189 | ip route add local 0.0.0.0/0 dev lo table 100 |
|---|
| .. | .. |
|---|
| 205 | 204 | |
|---|
| 206 | 205 | kci_test_route_get() |
|---|
| 207 | 206 | { |
|---|
| 208 | | - ret=0 |
|---|
| 207 | + local hash_policy=$(sysctl -n net.ipv4.fib_multipath_hash_policy) |
|---|
| 208 | + |
|---|
| 209 | + local ret=0 |
|---|
| 209 | 210 | |
|---|
| 210 | 211 | ip route get 127.0.0.1 > /dev/null |
|---|
| 211 | 212 | check_err $? |
|---|
| .. | .. |
|---|
| 222 | 223 | ip addr add dev "$devdummy" 10.23.7.11/24 |
|---|
| 223 | 224 | check_err $? |
|---|
| 224 | 225 | ip route get 10.23.7.11 from 10.23.7.12 iif "$devdummy" > /dev/null |
|---|
| 226 | + check_err $? |
|---|
| 227 | + ip route add 10.23.8.0/24 \ |
|---|
| 228 | + nexthop via 10.23.7.13 dev "$devdummy" \ |
|---|
| 229 | + nexthop via 10.23.7.14 dev "$devdummy" |
|---|
| 230 | + check_err $? |
|---|
| 231 | + sysctl -wq net.ipv4.fib_multipath_hash_policy=0 |
|---|
| 232 | + ip route get 10.23.8.11 > /dev/null |
|---|
| 233 | + check_err $? |
|---|
| 234 | + sysctl -wq net.ipv4.fib_multipath_hash_policy=1 |
|---|
| 235 | + ip route get 10.23.8.11 > /dev/null |
|---|
| 236 | + check_err $? |
|---|
| 237 | + sysctl -wq net.ipv4.fib_multipath_hash_policy="$hash_policy" |
|---|
| 238 | + ip route del 10.23.8.0/24 |
|---|
| 225 | 239 | check_err $? |
|---|
| 226 | 240 | ip addr del dev "$devdummy" 10.23.7.11/24 |
|---|
| 227 | 241 | check_err $? |
|---|
| .. | .. |
|---|
| 254 | 268 | echo "PASS: preferred_lft addresses have expired" |
|---|
| 255 | 269 | } |
|---|
| 256 | 270 | |
|---|
| 271 | +kci_test_promote_secondaries() |
|---|
| 272 | +{ |
|---|
| 273 | + promote=$(sysctl -n net.ipv4.conf.$devdummy.promote_secondaries) |
|---|
| 274 | + |
|---|
| 275 | + sysctl -q net.ipv4.conf.$devdummy.promote_secondaries=1 |
|---|
| 276 | + |
|---|
| 277 | + for i in $(seq 2 254);do |
|---|
| 278 | + IP="10.23.11.$i" |
|---|
| 279 | + ip -f inet addr add $IP/16 brd + dev "$devdummy" |
|---|
| 280 | + ifconfig "$devdummy" $IP netmask 255.255.0.0 |
|---|
| 281 | + done |
|---|
| 282 | + |
|---|
| 283 | + ip addr flush dev "$devdummy" |
|---|
| 284 | + |
|---|
| 285 | + [ $promote -eq 0 ] && sysctl -q net.ipv4.conf.$devdummy.promote_secondaries=0 |
|---|
| 286 | + |
|---|
| 287 | + echo "PASS: promote_secondaries complete" |
|---|
| 288 | +} |
|---|
| 289 | + |
|---|
| 257 | 290 | kci_test_addrlabel() |
|---|
| 258 | 291 | { |
|---|
| 259 | | - ret=0 |
|---|
| 292 | + local ret=0 |
|---|
| 260 | 293 | |
|---|
| 261 | 294 | ip addrlabel add prefix dead::/64 dev lo label 1 |
|---|
| 262 | 295 | check_err $? |
|---|
| .. | .. |
|---|
| 296 | 329 | |
|---|
| 297 | 330 | kci_test_ifalias() |
|---|
| 298 | 331 | { |
|---|
| 299 | | - ret=0 |
|---|
| 332 | + local ret=0 |
|---|
| 300 | 333 | namewant=$(uuidgen) |
|---|
| 301 | 334 | syspathname="/sys/class/net/$devdummy/ifalias" |
|---|
| 302 | 335 | |
|---|
| .. | .. |
|---|
| 351 | 384 | kci_test_vrf() |
|---|
| 352 | 385 | { |
|---|
| 353 | 386 | vrfname="test-vrf" |
|---|
| 354 | | - ret=0 |
|---|
| 387 | + local ret=0 |
|---|
| 355 | 388 | |
|---|
| 356 | 389 | ip link show type vrf 2>/dev/null |
|---|
| 357 | 390 | if [ $? -ne 0 ]; then |
|---|
| .. | .. |
|---|
| 391 | 424 | |
|---|
| 392 | 425 | kci_test_encap_vxlan() |
|---|
| 393 | 426 | { |
|---|
| 394 | | - ret=0 |
|---|
| 427 | + local ret=0 |
|---|
| 395 | 428 | vxlan="test-vxlan0" |
|---|
| 396 | 429 | vlan="test-vlan0" |
|---|
| 397 | 430 | testns="$1" |
|---|
| 398 | 431 | |
|---|
| 399 | | - ip netns exec "$testns" ip link add "$vxlan" type vxlan id 42 group 239.1.1.1 \ |
|---|
| 432 | + ip -netns "$testns" link add "$vxlan" type vxlan id 42 group 239.1.1.1 \ |
|---|
| 400 | 433 | dev "$devdummy" dstport 4789 2>/dev/null |
|---|
| 401 | 434 | if [ $? -ne 0 ]; then |
|---|
| 402 | 435 | echo "FAIL: can't add vxlan interface, skipping test" |
|---|
| .. | .. |
|---|
| 404 | 437 | fi |
|---|
| 405 | 438 | check_err $? |
|---|
| 406 | 439 | |
|---|
| 407 | | - ip netns exec "$testns" ip addr add 10.2.11.49/24 dev "$vxlan" |
|---|
| 440 | + ip -netns "$testns" addr add 10.2.11.49/24 dev "$vxlan" |
|---|
| 408 | 441 | check_err $? |
|---|
| 409 | 442 | |
|---|
| 410 | | - ip netns exec "$testns" ip link set up dev "$vxlan" |
|---|
| 443 | + ip -netns "$testns" link set up dev "$vxlan" |
|---|
| 411 | 444 | check_err $? |
|---|
| 412 | 445 | |
|---|
| 413 | | - ip netns exec "$testns" ip link add link "$vxlan" name "$vlan" type vlan id 1 |
|---|
| 446 | + ip -netns "$testns" link add link "$vxlan" name "$vlan" type vlan id 1 |
|---|
| 414 | 447 | check_err $? |
|---|
| 415 | 448 | |
|---|
| 416 | | - ip netns exec "$testns" ip link del "$vxlan" |
|---|
| 449 | + # changelink testcases |
|---|
| 450 | + ip -netns "$testns" link set dev "$vxlan" type vxlan vni 43 2>/dev/null |
|---|
| 451 | + check_fail $? |
|---|
| 452 | + |
|---|
| 453 | + ip -netns "$testns" link set dev "$vxlan" type vxlan group ffe5::5 dev "$devdummy" 2>/dev/null |
|---|
| 454 | + check_fail $? |
|---|
| 455 | + |
|---|
| 456 | + ip -netns "$testns" link set dev "$vxlan" type vxlan ttl inherit 2>/dev/null |
|---|
| 457 | + check_fail $? |
|---|
| 458 | + |
|---|
| 459 | + ip -netns "$testns" link set dev "$vxlan" type vxlan ttl 64 |
|---|
| 460 | + check_err $? |
|---|
| 461 | + |
|---|
| 462 | + ip -netns "$testns" link set dev "$vxlan" type vxlan nolearning |
|---|
| 463 | + check_err $? |
|---|
| 464 | + |
|---|
| 465 | + ip -netns "$testns" link set dev "$vxlan" type vxlan proxy 2>/dev/null |
|---|
| 466 | + check_fail $? |
|---|
| 467 | + |
|---|
| 468 | + ip -netns "$testns" link set dev "$vxlan" type vxlan norsc 2>/dev/null |
|---|
| 469 | + check_fail $? |
|---|
| 470 | + |
|---|
| 471 | + ip -netns "$testns" link set dev "$vxlan" type vxlan l2miss 2>/dev/null |
|---|
| 472 | + check_fail $? |
|---|
| 473 | + |
|---|
| 474 | + ip -netns "$testns" link set dev "$vxlan" type vxlan l3miss 2>/dev/null |
|---|
| 475 | + check_fail $? |
|---|
| 476 | + |
|---|
| 477 | + ip -netns "$testns" link set dev "$vxlan" type vxlan external 2>/dev/null |
|---|
| 478 | + check_fail $? |
|---|
| 479 | + |
|---|
| 480 | + ip -netns "$testns" link set dev "$vxlan" type vxlan udpcsum 2>/dev/null |
|---|
| 481 | + check_fail $? |
|---|
| 482 | + |
|---|
| 483 | + ip -netns "$testns" link set dev "$vxlan" type vxlan udp6zerocsumtx 2>/dev/null |
|---|
| 484 | + check_fail $? |
|---|
| 485 | + |
|---|
| 486 | + ip -netns "$testns" link set dev "$vxlan" type vxlan udp6zerocsumrx 2>/dev/null |
|---|
| 487 | + check_fail $? |
|---|
| 488 | + |
|---|
| 489 | + ip -netns "$testns" link set dev "$vxlan" type vxlan remcsumtx 2>/dev/null |
|---|
| 490 | + check_fail $? |
|---|
| 491 | + |
|---|
| 492 | + ip -netns "$testns" link set dev "$vxlan" type vxlan remcsumrx 2>/dev/null |
|---|
| 493 | + check_fail $? |
|---|
| 494 | + |
|---|
| 495 | + ip -netns "$testns" link set dev "$vxlan" type vxlan gbp 2>/dev/null |
|---|
| 496 | + check_fail $? |
|---|
| 497 | + |
|---|
| 498 | + ip -netns "$testns" link set dev "$vxlan" type vxlan gpe 2>/dev/null |
|---|
| 499 | + check_fail $? |
|---|
| 500 | + |
|---|
| 501 | + ip -netns "$testns" link del "$vxlan" |
|---|
| 417 | 502 | check_err $? |
|---|
| 418 | 503 | |
|---|
| 419 | 504 | if [ $ret -ne 0 ]; then |
|---|
| .. | .. |
|---|
| 425 | 510 | |
|---|
| 426 | 511 | kci_test_encap_fou() |
|---|
| 427 | 512 | { |
|---|
| 428 | | - ret=0 |
|---|
| 513 | + local ret=0 |
|---|
| 429 | 514 | name="test-fou" |
|---|
| 430 | 515 | testns="$1" |
|---|
| 431 | 516 | |
|---|
| .. | .. |
|---|
| 435 | 520 | return $ksft_skip |
|---|
| 436 | 521 | fi |
|---|
| 437 | 522 | |
|---|
| 438 | | - ip netns exec "$testns" ip fou add port 7777 ipproto 47 2>/dev/null |
|---|
| 523 | + if ! /sbin/modprobe -q -n fou; then |
|---|
| 524 | + echo "SKIP: module fou is not found" |
|---|
| 525 | + return $ksft_skip |
|---|
| 526 | + fi |
|---|
| 527 | + /sbin/modprobe -q fou |
|---|
| 528 | + ip -netns "$testns" fou add port 7777 ipproto 47 2>/dev/null |
|---|
| 439 | 529 | if [ $? -ne 0 ];then |
|---|
| 440 | 530 | echo "FAIL: can't add fou port 7777, skipping test" |
|---|
| 441 | 531 | return 1 |
|---|
| 442 | 532 | fi |
|---|
| 443 | 533 | |
|---|
| 444 | | - ip netns exec "$testns" ip fou add port 8888 ipproto 4 |
|---|
| 534 | + ip -netns "$testns" fou add port 8888 ipproto 4 |
|---|
| 445 | 535 | check_err $? |
|---|
| 446 | 536 | |
|---|
| 447 | | - ip netns exec "$testns" ip fou del port 9999 2>/dev/null |
|---|
| 537 | + ip -netns "$testns" fou del port 9999 2>/dev/null |
|---|
| 448 | 538 | check_fail $? |
|---|
| 449 | 539 | |
|---|
| 450 | | - ip netns exec "$testns" ip fou del port 7777 |
|---|
| 540 | + ip -netns "$testns" fou del port 7777 |
|---|
| 451 | 541 | check_err $? |
|---|
| 452 | 542 | |
|---|
| 453 | 543 | if [ $ret -ne 0 ]; then |
|---|
| .. | .. |
|---|
| 462 | 552 | kci_test_encap() |
|---|
| 463 | 553 | { |
|---|
| 464 | 554 | testns="testns" |
|---|
| 465 | | - ret=0 |
|---|
| 555 | + local ret=0 |
|---|
| 466 | 556 | |
|---|
| 467 | 557 | ip netns add "$testns" |
|---|
| 468 | 558 | if [ $? -ne 0 ]; then |
|---|
| .. | .. |
|---|
| 470 | 560 | return $ksft_skip |
|---|
| 471 | 561 | fi |
|---|
| 472 | 562 | |
|---|
| 473 | | - ip netns exec "$testns" ip link set lo up |
|---|
| 563 | + ip -netns "$testns" link set lo up |
|---|
| 474 | 564 | check_err $? |
|---|
| 475 | 565 | |
|---|
| 476 | | - ip netns exec "$testns" ip link add name "$devdummy" type dummy |
|---|
| 566 | + ip -netns "$testns" link add name "$devdummy" type dummy |
|---|
| 477 | 567 | check_err $? |
|---|
| 478 | | - ip netns exec "$testns" ip link set "$devdummy" up |
|---|
| 568 | + ip -netns "$testns" link set "$devdummy" up |
|---|
| 479 | 569 | check_err $? |
|---|
| 480 | 570 | |
|---|
| 481 | 571 | kci_test_encap_vxlan "$testns" |
|---|
| 572 | + check_err $? |
|---|
| 482 | 573 | kci_test_encap_fou "$testns" |
|---|
| 574 | + check_err $? |
|---|
| 483 | 575 | |
|---|
| 484 | 576 | ip netns del "$testns" |
|---|
| 577 | + return $ret |
|---|
| 485 | 578 | } |
|---|
| 486 | 579 | |
|---|
| 487 | 580 | kci_test_macsec() |
|---|
| 488 | 581 | { |
|---|
| 489 | 582 | msname="test_macsec0" |
|---|
| 490 | | - ret=0 |
|---|
| 583 | + local ret=0 |
|---|
| 491 | 584 | |
|---|
| 492 | 585 | ip macsec help 2>&1 | grep -q "^Usage: ip macsec" |
|---|
| 493 | 586 | if [ $? -ne 0 ]; then |
|---|
| .. | .. |
|---|
| 545 | 638 | #------------------------------------------------------------------- |
|---|
| 546 | 639 | kci_test_ipsec() |
|---|
| 547 | 640 | { |
|---|
| 548 | | - ret=0 |
|---|
| 641 | + local ret=0 |
|---|
| 549 | 642 | algo="aead rfc4106(gcm(aes)) 0x3132333435363738393031323334353664636261 128" |
|---|
| 550 | 643 | srcip=192.168.123.1 |
|---|
| 551 | 644 | dstip=192.168.123.2 |
|---|
| .. | .. |
|---|
| 645 | 738 | #------------------------------------------------------------------- |
|---|
| 646 | 739 | kci_test_ipsec_offload() |
|---|
| 647 | 740 | { |
|---|
| 648 | | - ret=0 |
|---|
| 741 | + local ret=0 |
|---|
| 649 | 742 | algo="aead rfc4106(gcm(aes)) 0x3132333435363738393031323334353664636261 128" |
|---|
| 650 | 743 | srcip=192.168.123.3 |
|---|
| 651 | 744 | dstip=192.168.123.4 |
|---|
| 652 | | - dev=simx1 |
|---|
| 653 | | - sysfsd=/sys/kernel/debug/netdevsim/$dev |
|---|
| 745 | + sysfsd=/sys/kernel/debug/netdevsim/netdevsim0/ports/0/ |
|---|
| 654 | 746 | sysfsf=$sysfsd/ipsec |
|---|
| 747 | + sysfsnet=/sys/bus/netdevsim/devices/netdevsim0/net/ |
|---|
| 748 | + probed=false |
|---|
| 655 | 749 | |
|---|
| 656 | 750 | # setup netdevsim since dummydev doesn't have offload support |
|---|
| 657 | | - modprobe netdevsim |
|---|
| 658 | | - check_err $? |
|---|
| 659 | | - if [ $ret -ne 0 ]; then |
|---|
| 660 | | - echo "FAIL: ipsec_offload can't load netdevsim" |
|---|
| 661 | | - return 1 |
|---|
| 751 | + if [ ! -w /sys/bus/netdevsim/new_device ] ; then |
|---|
| 752 | + modprobe -q netdevsim |
|---|
| 753 | + check_err $? |
|---|
| 754 | + if [ $ret -ne 0 ]; then |
|---|
| 755 | + echo "SKIP: ipsec_offload can't load netdevsim" |
|---|
| 756 | + return $ksft_skip |
|---|
| 757 | + fi |
|---|
| 758 | + probed=true |
|---|
| 662 | 759 | fi |
|---|
| 663 | 760 | |
|---|
| 664 | | - ip link add $dev type netdevsim |
|---|
| 761 | + echo "0" > /sys/bus/netdevsim/new_device |
|---|
| 762 | + while [ ! -d $sysfsnet ] ; do :; done |
|---|
| 763 | + udevadm settle |
|---|
| 764 | + dev=`ls $sysfsnet` |
|---|
| 765 | + |
|---|
| 665 | 766 | ip addr add $srcip dev $dev |
|---|
| 666 | 767 | ip link set $dev up |
|---|
| 667 | 768 | if [ ! -d $sysfsd ] ; then |
|---|
| .. | .. |
|---|
| 681 | 782 | tmpl proto esp src $srcip dst $dstip spi 9 \ |
|---|
| 682 | 783 | mode transport reqid 42 |
|---|
| 683 | 784 | check_err $? |
|---|
| 684 | | - ip x p add dir out src $dstip/24 dst $srcip/24 \ |
|---|
| 785 | + ip x p add dir in src $dstip/24 dst $srcip/24 \ |
|---|
| 685 | 786 | tmpl proto esp src $dstip dst $srcip spi 9 \ |
|---|
| 686 | 787 | mode transport reqid 42 |
|---|
| 687 | 788 | check_err $? |
|---|
| .. | .. |
|---|
| 734 | 835 | fi |
|---|
| 735 | 836 | |
|---|
| 736 | 837 | # clean up any leftovers |
|---|
| 737 | | - ip link del $dev |
|---|
| 738 | | - rmmod netdevsim |
|---|
| 838 | + echo 0 > /sys/bus/netdevsim/del_device |
|---|
| 839 | + $probed && rmmod netdevsim |
|---|
| 739 | 840 | |
|---|
| 740 | 841 | if [ $ret -ne 0 ]; then |
|---|
| 741 | 842 | echo "FAIL: ipsec_offload" |
|---|
| .. | .. |
|---|
| 748 | 849 | { |
|---|
| 749 | 850 | testns="testns" |
|---|
| 750 | 851 | DEV_NS=gretap00 |
|---|
| 751 | | - ret=0 |
|---|
| 852 | + local ret=0 |
|---|
| 752 | 853 | |
|---|
| 753 | 854 | ip netns add "$testns" |
|---|
| 754 | 855 | if [ $? -ne 0 ]; then |
|---|
| .. | .. |
|---|
| 764 | 865 | fi |
|---|
| 765 | 866 | |
|---|
| 766 | 867 | # test native tunnel |
|---|
| 767 | | - ip netns exec "$testns" ip link add dev "$DEV_NS" type gretap seq \ |
|---|
| 868 | + ip -netns "$testns" link add dev "$DEV_NS" type gretap seq \ |
|---|
| 768 | 869 | key 102 local 172.16.1.100 remote 172.16.1.200 |
|---|
| 769 | 870 | check_err $? |
|---|
| 770 | 871 | |
|---|
| 771 | | - ip netns exec "$testns" ip addr add dev "$DEV_NS" 10.1.1.100/24 |
|---|
| 872 | + ip -netns "$testns" addr add dev "$DEV_NS" 10.1.1.100/24 |
|---|
| 772 | 873 | check_err $? |
|---|
| 773 | 874 | |
|---|
| 774 | | - ip netns exec "$testns" ip link set dev $DEV_NS up |
|---|
| 875 | + ip -netns "$testns" link set dev $DEV_NS up |
|---|
| 775 | 876 | check_err $? |
|---|
| 776 | 877 | |
|---|
| 777 | | - ip netns exec "$testns" ip link del "$DEV_NS" |
|---|
| 878 | + ip -netns "$testns" link del "$DEV_NS" |
|---|
| 778 | 879 | check_err $? |
|---|
| 779 | 880 | |
|---|
| 780 | 881 | # test external mode |
|---|
| 781 | | - ip netns exec "$testns" ip link add dev "$DEV_NS" type gretap external |
|---|
| 882 | + ip -netns "$testns" link add dev "$DEV_NS" type gretap external |
|---|
| 782 | 883 | check_err $? |
|---|
| 783 | 884 | |
|---|
| 784 | | - ip netns exec "$testns" ip link del "$DEV_NS" |
|---|
| 885 | + ip -netns "$testns" link del "$DEV_NS" |
|---|
| 785 | 886 | check_err $? |
|---|
| 786 | 887 | |
|---|
| 787 | 888 | if [ $ret -ne 0 ]; then |
|---|
| .. | .. |
|---|
| 798 | 899 | { |
|---|
| 799 | 900 | testns="testns" |
|---|
| 800 | 901 | DEV_NS=ip6gretap00 |
|---|
| 801 | | - ret=0 |
|---|
| 902 | + local ret=0 |
|---|
| 802 | 903 | |
|---|
| 803 | 904 | ip netns add "$testns" |
|---|
| 804 | 905 | if [ $? -ne 0 ]; then |
|---|
| .. | .. |
|---|
| 814 | 915 | fi |
|---|
| 815 | 916 | |
|---|
| 816 | 917 | # test native tunnel |
|---|
| 817 | | - ip netns exec "$testns" ip link add dev "$DEV_NS" type ip6gretap seq \ |
|---|
| 918 | + ip -netns "$testns" link add dev "$DEV_NS" type ip6gretap seq \ |
|---|
| 818 | 919 | key 102 local fc00:100::1 remote fc00:100::2 |
|---|
| 819 | 920 | check_err $? |
|---|
| 820 | 921 | |
|---|
| 821 | | - ip netns exec "$testns" ip addr add dev "$DEV_NS" fc00:200::1/96 |
|---|
| 922 | + ip -netns "$testns" addr add dev "$DEV_NS" fc00:200::1/96 |
|---|
| 822 | 923 | check_err $? |
|---|
| 823 | 924 | |
|---|
| 824 | | - ip netns exec "$testns" ip link set dev $DEV_NS up |
|---|
| 925 | + ip -netns "$testns" link set dev $DEV_NS up |
|---|
| 825 | 926 | check_err $? |
|---|
| 826 | 927 | |
|---|
| 827 | | - ip netns exec "$testns" ip link del "$DEV_NS" |
|---|
| 928 | + ip -netns "$testns" link del "$DEV_NS" |
|---|
| 828 | 929 | check_err $? |
|---|
| 829 | 930 | |
|---|
| 830 | 931 | # test external mode |
|---|
| 831 | | - ip netns exec "$testns" ip link add dev "$DEV_NS" type ip6gretap external |
|---|
| 932 | + ip -netns "$testns" link add dev "$DEV_NS" type ip6gretap external |
|---|
| 832 | 933 | check_err $? |
|---|
| 833 | 934 | |
|---|
| 834 | | - ip netns exec "$testns" ip link del "$DEV_NS" |
|---|
| 935 | + ip -netns "$testns" link del "$DEV_NS" |
|---|
| 835 | 936 | check_err $? |
|---|
| 836 | 937 | |
|---|
| 837 | 938 | if [ $ret -ne 0 ]; then |
|---|
| .. | .. |
|---|
| 848 | 949 | { |
|---|
| 849 | 950 | testns="testns" |
|---|
| 850 | 951 | DEV_NS=erspan00 |
|---|
| 851 | | - ret=0 |
|---|
| 952 | + local ret=0 |
|---|
| 852 | 953 | |
|---|
| 853 | 954 | ip link help erspan 2>&1 | grep -q "^Usage:" |
|---|
| 854 | 955 | if [ $? -ne 0 ];then |
|---|
| .. | .. |
|---|
| 863 | 964 | fi |
|---|
| 864 | 965 | |
|---|
| 865 | 966 | # test native tunnel erspan v1 |
|---|
| 866 | | - ip netns exec "$testns" ip link add dev "$DEV_NS" type erspan seq \ |
|---|
| 967 | + ip -netns "$testns" link add dev "$DEV_NS" type erspan seq \ |
|---|
| 867 | 968 | key 102 local 172.16.1.100 remote 172.16.1.200 \ |
|---|
| 868 | 969 | erspan_ver 1 erspan 488 |
|---|
| 869 | 970 | check_err $? |
|---|
| 870 | 971 | |
|---|
| 871 | | - ip netns exec "$testns" ip addr add dev "$DEV_NS" 10.1.1.100/24 |
|---|
| 972 | + ip -netns "$testns" addr add dev "$DEV_NS" 10.1.1.100/24 |
|---|
| 872 | 973 | check_err $? |
|---|
| 873 | 974 | |
|---|
| 874 | | - ip netns exec "$testns" ip link set dev $DEV_NS up |
|---|
| 975 | + ip -netns "$testns" link set dev $DEV_NS up |
|---|
| 875 | 976 | check_err $? |
|---|
| 876 | 977 | |
|---|
| 877 | | - ip netns exec "$testns" ip link del "$DEV_NS" |
|---|
| 978 | + ip -netns "$testns" link del "$DEV_NS" |
|---|
| 878 | 979 | check_err $? |
|---|
| 879 | 980 | |
|---|
| 880 | 981 | # test native tunnel erspan v2 |
|---|
| 881 | | - ip netns exec "$testns" ip link add dev "$DEV_NS" type erspan seq \ |
|---|
| 982 | + ip -netns "$testns" link add dev "$DEV_NS" type erspan seq \ |
|---|
| 882 | 983 | key 102 local 172.16.1.100 remote 172.16.1.200 \ |
|---|
| 883 | 984 | erspan_ver 2 erspan_dir ingress erspan_hwid 7 |
|---|
| 884 | 985 | check_err $? |
|---|
| 885 | 986 | |
|---|
| 886 | | - ip netns exec "$testns" ip addr add dev "$DEV_NS" 10.1.1.100/24 |
|---|
| 987 | + ip -netns "$testns" addr add dev "$DEV_NS" 10.1.1.100/24 |
|---|
| 887 | 988 | check_err $? |
|---|
| 888 | 989 | |
|---|
| 889 | | - ip netns exec "$testns" ip link set dev $DEV_NS up |
|---|
| 990 | + ip -netns "$testns" link set dev $DEV_NS up |
|---|
| 890 | 991 | check_err $? |
|---|
| 891 | 992 | |
|---|
| 892 | | - ip netns exec "$testns" ip link del "$DEV_NS" |
|---|
| 993 | + ip -netns "$testns" link del "$DEV_NS" |
|---|
| 893 | 994 | check_err $? |
|---|
| 894 | 995 | |
|---|
| 895 | 996 | # test external mode |
|---|
| 896 | | - ip netns exec "$testns" ip link add dev "$DEV_NS" type erspan external |
|---|
| 997 | + ip -netns "$testns" link add dev "$DEV_NS" type erspan external |
|---|
| 897 | 998 | check_err $? |
|---|
| 898 | 999 | |
|---|
| 899 | | - ip netns exec "$testns" ip link del "$DEV_NS" |
|---|
| 1000 | + ip -netns "$testns" link del "$DEV_NS" |
|---|
| 900 | 1001 | check_err $? |
|---|
| 901 | 1002 | |
|---|
| 902 | 1003 | if [ $ret -ne 0 ]; then |
|---|
| .. | .. |
|---|
| 913 | 1014 | { |
|---|
| 914 | 1015 | testns="testns" |
|---|
| 915 | 1016 | DEV_NS=ip6erspan00 |
|---|
| 916 | | - ret=0 |
|---|
| 1017 | + local ret=0 |
|---|
| 917 | 1018 | |
|---|
| 918 | 1019 | ip link help ip6erspan 2>&1 | grep -q "^Usage:" |
|---|
| 919 | 1020 | if [ $? -ne 0 ];then |
|---|
| .. | .. |
|---|
| 928 | 1029 | fi |
|---|
| 929 | 1030 | |
|---|
| 930 | 1031 | # test native tunnel ip6erspan v1 |
|---|
| 931 | | - ip netns exec "$testns" ip link add dev "$DEV_NS" type ip6erspan seq \ |
|---|
| 1032 | + ip -netns "$testns" link add dev "$DEV_NS" type ip6erspan seq \ |
|---|
| 932 | 1033 | key 102 local fc00:100::1 remote fc00:100::2 \ |
|---|
| 933 | 1034 | erspan_ver 1 erspan 488 |
|---|
| 934 | 1035 | check_err $? |
|---|
| 935 | 1036 | |
|---|
| 936 | | - ip netns exec "$testns" ip addr add dev "$DEV_NS" 10.1.1.100/24 |
|---|
| 1037 | + ip -netns "$testns" addr add dev "$DEV_NS" 10.1.1.100/24 |
|---|
| 937 | 1038 | check_err $? |
|---|
| 938 | 1039 | |
|---|
| 939 | | - ip netns exec "$testns" ip link set dev $DEV_NS up |
|---|
| 1040 | + ip -netns "$testns" link set dev $DEV_NS up |
|---|
| 940 | 1041 | check_err $? |
|---|
| 941 | 1042 | |
|---|
| 942 | | - ip netns exec "$testns" ip link del "$DEV_NS" |
|---|
| 1043 | + ip -netns "$testns" link del "$DEV_NS" |
|---|
| 943 | 1044 | check_err $? |
|---|
| 944 | 1045 | |
|---|
| 945 | 1046 | # test native tunnel ip6erspan v2 |
|---|
| 946 | | - ip netns exec "$testns" ip link add dev "$DEV_NS" type ip6erspan seq \ |
|---|
| 1047 | + ip -netns "$testns" link add dev "$DEV_NS" type ip6erspan seq \ |
|---|
| 947 | 1048 | key 102 local fc00:100::1 remote fc00:100::2 \ |
|---|
| 948 | 1049 | erspan_ver 2 erspan_dir ingress erspan_hwid 7 |
|---|
| 949 | 1050 | check_err $? |
|---|
| 950 | 1051 | |
|---|
| 951 | | - ip netns exec "$testns" ip addr add dev "$DEV_NS" 10.1.1.100/24 |
|---|
| 1052 | + ip -netns "$testns" addr add dev "$DEV_NS" 10.1.1.100/24 |
|---|
| 952 | 1053 | check_err $? |
|---|
| 953 | 1054 | |
|---|
| 954 | | - ip netns exec "$testns" ip link set dev $DEV_NS up |
|---|
| 1055 | + ip -netns "$testns" link set dev $DEV_NS up |
|---|
| 955 | 1056 | check_err $? |
|---|
| 956 | 1057 | |
|---|
| 957 | | - ip netns exec "$testns" ip link del "$DEV_NS" |
|---|
| 1058 | + ip -netns "$testns" link del "$DEV_NS" |
|---|
| 958 | 1059 | check_err $? |
|---|
| 959 | 1060 | |
|---|
| 960 | 1061 | # test external mode |
|---|
| 961 | | - ip netns exec "$testns" ip link add dev "$DEV_NS" \ |
|---|
| 1062 | + ip -netns "$testns" link add dev "$DEV_NS" \ |
|---|
| 962 | 1063 | type ip6erspan external |
|---|
| 963 | 1064 | check_err $? |
|---|
| 964 | 1065 | |
|---|
| 965 | | - ip netns exec "$testns" ip link del "$DEV_NS" |
|---|
| 1066 | + ip -netns "$testns" link del "$DEV_NS" |
|---|
| 966 | 1067 | check_err $? |
|---|
| 967 | 1068 | |
|---|
| 968 | 1069 | if [ $ret -ne 0 ]; then |
|---|
| .. | .. |
|---|
| 975 | 1076 | ip netns del "$testns" |
|---|
| 976 | 1077 | } |
|---|
| 977 | 1078 | |
|---|
| 1079 | +kci_test_fdb_get() |
|---|
| 1080 | +{ |
|---|
| 1081 | + IP="ip -netns testns" |
|---|
| 1082 | + BRIDGE="bridge -netns testns" |
|---|
| 1083 | + brdev="test-br0" |
|---|
| 1084 | + vxlandev="vxlan10" |
|---|
| 1085 | + test_mac=de:ad:be:ef:13:37 |
|---|
| 1086 | + localip="10.0.2.2" |
|---|
| 1087 | + dstip="10.0.2.3" |
|---|
| 1088 | + local ret=0 |
|---|
| 1089 | + |
|---|
| 1090 | + bridge fdb help 2>&1 |grep -q 'bridge fdb get' |
|---|
| 1091 | + if [ $? -ne 0 ];then |
|---|
| 1092 | + echo "SKIP: fdb get tests: iproute2 too old" |
|---|
| 1093 | + return $ksft_skip |
|---|
| 1094 | + fi |
|---|
| 1095 | + |
|---|
| 1096 | + ip netns add testns |
|---|
| 1097 | + if [ $? -ne 0 ]; then |
|---|
| 1098 | + echo "SKIP fdb get tests: cannot add net namespace $testns" |
|---|
| 1099 | + return $ksft_skip |
|---|
| 1100 | + fi |
|---|
| 1101 | + |
|---|
| 1102 | + $IP link add "$vxlandev" type vxlan id 10 local $localip \ |
|---|
| 1103 | + dstport 4789 2>/dev/null |
|---|
| 1104 | + check_err $? |
|---|
| 1105 | + $IP link add name "$brdev" type bridge &>/dev/null |
|---|
| 1106 | + check_err $? |
|---|
| 1107 | + $IP link set dev "$vxlandev" master "$brdev" &>/dev/null |
|---|
| 1108 | + check_err $? |
|---|
| 1109 | + $BRIDGE fdb add $test_mac dev "$vxlandev" master &>/dev/null |
|---|
| 1110 | + check_err $? |
|---|
| 1111 | + $BRIDGE fdb add $test_mac dev "$vxlandev" dst $dstip self &>/dev/null |
|---|
| 1112 | + check_err $? |
|---|
| 1113 | + |
|---|
| 1114 | + $BRIDGE fdb get $test_mac brport "$vxlandev" 2>/dev/null | grep -q "dev $vxlandev master $brdev" |
|---|
| 1115 | + check_err $? |
|---|
| 1116 | + $BRIDGE fdb get $test_mac br "$brdev" 2>/dev/null | grep -q "dev $vxlandev master $brdev" |
|---|
| 1117 | + check_err $? |
|---|
| 1118 | + $BRIDGE fdb get $test_mac dev "$vxlandev" self 2>/dev/null | grep -q "dev $vxlandev dst $dstip" |
|---|
| 1119 | + check_err $? |
|---|
| 1120 | + |
|---|
| 1121 | + ip netns del testns &>/dev/null |
|---|
| 1122 | + |
|---|
| 1123 | + if [ $ret -ne 0 ]; then |
|---|
| 1124 | + echo "FAIL: bridge fdb get" |
|---|
| 1125 | + return 1 |
|---|
| 1126 | + fi |
|---|
| 1127 | + |
|---|
| 1128 | + echo "PASS: bridge fdb get" |
|---|
| 1129 | +} |
|---|
| 1130 | + |
|---|
| 1131 | +kci_test_neigh_get() |
|---|
| 1132 | +{ |
|---|
| 1133 | + dstmac=de:ad:be:ef:13:37 |
|---|
| 1134 | + dstip=10.0.2.4 |
|---|
| 1135 | + dstip6=dead::2 |
|---|
| 1136 | + local ret=0 |
|---|
| 1137 | + |
|---|
| 1138 | + ip neigh help 2>&1 |grep -q 'ip neigh get' |
|---|
| 1139 | + if [ $? -ne 0 ];then |
|---|
| 1140 | + echo "SKIP: fdb get tests: iproute2 too old" |
|---|
| 1141 | + return $ksft_skip |
|---|
| 1142 | + fi |
|---|
| 1143 | + |
|---|
| 1144 | + # ipv4 |
|---|
| 1145 | + ip neigh add $dstip lladdr $dstmac dev "$devdummy" > /dev/null |
|---|
| 1146 | + check_err $? |
|---|
| 1147 | + ip neigh get $dstip dev "$devdummy" 2> /dev/null | grep -q "$dstmac" |
|---|
| 1148 | + check_err $? |
|---|
| 1149 | + ip neigh del $dstip lladdr $dstmac dev "$devdummy" > /dev/null |
|---|
| 1150 | + check_err $? |
|---|
| 1151 | + |
|---|
| 1152 | + # ipv4 proxy |
|---|
| 1153 | + ip neigh add proxy $dstip dev "$devdummy" > /dev/null |
|---|
| 1154 | + check_err $? |
|---|
| 1155 | + ip neigh get proxy $dstip dev "$devdummy" 2>/dev/null | grep -q "$dstip" |
|---|
| 1156 | + check_err $? |
|---|
| 1157 | + ip neigh del proxy $dstip dev "$devdummy" > /dev/null |
|---|
| 1158 | + check_err $? |
|---|
| 1159 | + |
|---|
| 1160 | + # ipv6 |
|---|
| 1161 | + ip neigh add $dstip6 lladdr $dstmac dev "$devdummy" > /dev/null |
|---|
| 1162 | + check_err $? |
|---|
| 1163 | + ip neigh get $dstip6 dev "$devdummy" 2> /dev/null | grep -q "$dstmac" |
|---|
| 1164 | + check_err $? |
|---|
| 1165 | + ip neigh del $dstip6 lladdr $dstmac dev "$devdummy" > /dev/null |
|---|
| 1166 | + check_err $? |
|---|
| 1167 | + |
|---|
| 1168 | + # ipv6 proxy |
|---|
| 1169 | + ip neigh add proxy $dstip6 dev "$devdummy" > /dev/null |
|---|
| 1170 | + check_err $? |
|---|
| 1171 | + ip neigh get proxy $dstip6 dev "$devdummy" 2>/dev/null | grep -q "$dstip6" |
|---|
| 1172 | + check_err $? |
|---|
| 1173 | + ip neigh del proxy $dstip6 dev "$devdummy" > /dev/null |
|---|
| 1174 | + check_err $? |
|---|
| 1175 | + |
|---|
| 1176 | + if [ $ret -ne 0 ];then |
|---|
| 1177 | + echo "FAIL: neigh get" |
|---|
| 1178 | + return 1 |
|---|
| 1179 | + fi |
|---|
| 1180 | + |
|---|
| 1181 | + echo "PASS: neigh get" |
|---|
| 1182 | +} |
|---|
| 1183 | + |
|---|
| 1184 | +kci_test_bridge_parent_id() |
|---|
| 1185 | +{ |
|---|
| 1186 | + local ret=0 |
|---|
| 1187 | + sysfsnet=/sys/bus/netdevsim/devices/netdevsim |
|---|
| 1188 | + probed=false |
|---|
| 1189 | + |
|---|
| 1190 | + if [ ! -w /sys/bus/netdevsim/new_device ] ; then |
|---|
| 1191 | + modprobe -q netdevsim |
|---|
| 1192 | + check_err $? |
|---|
| 1193 | + if [ $ret -ne 0 ]; then |
|---|
| 1194 | + echo "SKIP: bridge_parent_id can't load netdevsim" |
|---|
| 1195 | + return $ksft_skip |
|---|
| 1196 | + fi |
|---|
| 1197 | + probed=true |
|---|
| 1198 | + fi |
|---|
| 1199 | + |
|---|
| 1200 | + echo "10 1" > /sys/bus/netdevsim/new_device |
|---|
| 1201 | + while [ ! -d ${sysfsnet}10 ] ; do :; done |
|---|
| 1202 | + echo "20 1" > /sys/bus/netdevsim/new_device |
|---|
| 1203 | + while [ ! -d ${sysfsnet}20 ] ; do :; done |
|---|
| 1204 | + udevadm settle |
|---|
| 1205 | + dev10=`ls ${sysfsnet}10/net/` |
|---|
| 1206 | + dev20=`ls ${sysfsnet}20/net/` |
|---|
| 1207 | + |
|---|
| 1208 | + ip link add name test-bond0 type bond mode 802.3ad |
|---|
| 1209 | + ip link set dev $dev10 master test-bond0 |
|---|
| 1210 | + ip link set dev $dev20 master test-bond0 |
|---|
| 1211 | + ip link add name test-br0 type bridge |
|---|
| 1212 | + ip link set dev test-bond0 master test-br0 |
|---|
| 1213 | + check_err $? |
|---|
| 1214 | + |
|---|
| 1215 | + # clean up any leftovers |
|---|
| 1216 | + ip link del dev test-br0 |
|---|
| 1217 | + ip link del dev test-bond0 |
|---|
| 1218 | + echo 20 > /sys/bus/netdevsim/del_device |
|---|
| 1219 | + echo 10 > /sys/bus/netdevsim/del_device |
|---|
| 1220 | + $probed && rmmod netdevsim |
|---|
| 1221 | + |
|---|
| 1222 | + if [ $ret -ne 0 ]; then |
|---|
| 1223 | + echo "FAIL: bridge_parent_id" |
|---|
| 1224 | + return 1 |
|---|
| 1225 | + fi |
|---|
| 1226 | + echo "PASS: bridge_parent_id" |
|---|
| 1227 | +} |
|---|
| 1228 | + |
|---|
| 978 | 1229 | kci_test_rtnl() |
|---|
| 979 | 1230 | { |
|---|
| 1231 | + local ret=0 |
|---|
| 980 | 1232 | kci_add_dummy |
|---|
| 981 | 1233 | if [ $ret -ne 0 ];then |
|---|
| 982 | 1234 | echo "FAIL: cannot add dummy interface" |
|---|
| .. | .. |
|---|
| 984 | 1236 | fi |
|---|
| 985 | 1237 | |
|---|
| 986 | 1238 | kci_test_polrouting |
|---|
| 1239 | + check_err $? |
|---|
| 987 | 1240 | kci_test_route_get |
|---|
| 1241 | + check_err $? |
|---|
| 988 | 1242 | kci_test_addrlft |
|---|
| 1243 | + check_err $? |
|---|
| 1244 | + kci_test_promote_secondaries |
|---|
| 1245 | + check_err $? |
|---|
| 989 | 1246 | kci_test_tc |
|---|
| 1247 | + check_err $? |
|---|
| 990 | 1248 | kci_test_gre |
|---|
| 1249 | + check_err $? |
|---|
| 991 | 1250 | kci_test_gretap |
|---|
| 1251 | + check_err $? |
|---|
| 992 | 1252 | kci_test_ip6gretap |
|---|
| 1253 | + check_err $? |
|---|
| 993 | 1254 | kci_test_erspan |
|---|
| 1255 | + check_err $? |
|---|
| 994 | 1256 | kci_test_ip6erspan |
|---|
| 1257 | + check_err $? |
|---|
| 995 | 1258 | kci_test_bridge |
|---|
| 1259 | + check_err $? |
|---|
| 996 | 1260 | kci_test_addrlabel |
|---|
| 1261 | + check_err $? |
|---|
| 997 | 1262 | kci_test_ifalias |
|---|
| 1263 | + check_err $? |
|---|
| 998 | 1264 | kci_test_vrf |
|---|
| 1265 | + check_err $? |
|---|
| 999 | 1266 | kci_test_encap |
|---|
| 1267 | + check_err $? |
|---|
| 1000 | 1268 | kci_test_macsec |
|---|
| 1269 | + check_err $? |
|---|
| 1001 | 1270 | kci_test_ipsec |
|---|
| 1271 | + check_err $? |
|---|
| 1002 | 1272 | kci_test_ipsec_offload |
|---|
| 1273 | + check_err $? |
|---|
| 1274 | + kci_test_fdb_get |
|---|
| 1275 | + check_err $? |
|---|
| 1276 | + kci_test_neigh_get |
|---|
| 1277 | + check_err $? |
|---|
| 1278 | + kci_test_bridge_parent_id |
|---|
| 1279 | + check_err $? |
|---|
| 1003 | 1280 | |
|---|
| 1004 | 1281 | kci_del_dummy |
|---|
| 1282 | + return $ret |
|---|
| 1005 | 1283 | } |
|---|
| 1006 | 1284 | |
|---|
| 1007 | 1285 | #check for needed privileges |
|---|
| .. | .. |
|---|
| 1020 | 1298 | |
|---|
| 1021 | 1299 | kci_test_rtnl |
|---|
| 1022 | 1300 | |
|---|
| 1023 | | -exit $ret |
|---|
| 1301 | +exit $? |
|---|