hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
kernel/tools/testing/selftests/net/rtnetlink.sh
....@@ -5,7 +5,6 @@
55 # set -e
66
77 devdummy="test-dummy0"
8
-ret=0
98
109 # Kselftest framework requirement - SKIP code is 4.
1110 ksft_skip=4
....@@ -66,7 +65,7 @@
6665 devbr="test-br0"
6766 vlandev="testbr-vlan1"
6867
69
- ret=0
68
+ local ret=0
7069 ip link add name "$devbr" type bridge
7170 check_err $?
7271
....@@ -113,7 +112,7 @@
113112 rem=10.42.42.1
114113 loc=10.0.0.1
115114
116
- ret=0
115
+ local ret=0
117116 ip tunnel add $gredev mode gre remote $rem local $loc ttl 1
118117 check_err $?
119118 ip link set $gredev up
....@@ -149,7 +148,7 @@
149148 kci_test_tc()
150149 {
151150 dev=lo
152
- ret=0
151
+ local ret=0
153152
154153 tc qdisc add dev "$dev" root handle 1: htb
155154 check_err $?
....@@ -184,7 +183,7 @@
184183
185184 kci_test_polrouting()
186185 {
187
- ret=0
186
+ local ret=0
188187 ip rule add fwmark 1 lookup 100
189188 check_err $?
190189 ip route add local 0.0.0.0/0 dev lo table 100
....@@ -205,7 +204,9 @@
205204
206205 kci_test_route_get()
207206 {
208
- ret=0
207
+ local hash_policy=$(sysctl -n net.ipv4.fib_multipath_hash_policy)
208
+
209
+ local ret=0
209210
210211 ip route get 127.0.0.1 > /dev/null
211212 check_err $?
....@@ -222,6 +223,19 @@
222223 ip addr add dev "$devdummy" 10.23.7.11/24
223224 check_err $?
224225 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
225239 check_err $?
226240 ip addr del dev "$devdummy" 10.23.7.11/24
227241 check_err $?
....@@ -254,9 +268,28 @@
254268 echo "PASS: preferred_lft addresses have expired"
255269 }
256270
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
+
257290 kci_test_addrlabel()
258291 {
259
- ret=0
292
+ local ret=0
260293
261294 ip addrlabel add prefix dead::/64 dev lo label 1
262295 check_err $?
....@@ -296,7 +329,7 @@
296329
297330 kci_test_ifalias()
298331 {
299
- ret=0
332
+ local ret=0
300333 namewant=$(uuidgen)
301334 syspathname="/sys/class/net/$devdummy/ifalias"
302335
....@@ -351,7 +384,7 @@
351384 kci_test_vrf()
352385 {
353386 vrfname="test-vrf"
354
- ret=0
387
+ local ret=0
355388
356389 ip link show type vrf 2>/dev/null
357390 if [ $? -ne 0 ]; then
....@@ -391,12 +424,12 @@
391424
392425 kci_test_encap_vxlan()
393426 {
394
- ret=0
427
+ local ret=0
395428 vxlan="test-vxlan0"
396429 vlan="test-vlan0"
397430 testns="$1"
398431
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 \
400433 dev "$devdummy" dstport 4789 2>/dev/null
401434 if [ $? -ne 0 ]; then
402435 echo "FAIL: can't add vxlan interface, skipping test"
....@@ -404,16 +437,68 @@
404437 fi
405438 check_err $?
406439
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"
408441 check_err $?
409442
410
- ip netns exec "$testns" ip link set up dev "$vxlan"
443
+ ip -netns "$testns" link set up dev "$vxlan"
411444 check_err $?
412445
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
414447 check_err $?
415448
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"
417502 check_err $?
418503
419504 if [ $ret -ne 0 ]; then
....@@ -425,7 +510,7 @@
425510
426511 kci_test_encap_fou()
427512 {
428
- ret=0
513
+ local ret=0
429514 name="test-fou"
430515 testns="$1"
431516
....@@ -435,19 +520,24 @@
435520 return $ksft_skip
436521 fi
437522
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
439529 if [ $? -ne 0 ];then
440530 echo "FAIL: can't add fou port 7777, skipping test"
441531 return 1
442532 fi
443533
444
- ip netns exec "$testns" ip fou add port 8888 ipproto 4
534
+ ip -netns "$testns" fou add port 8888 ipproto 4
445535 check_err $?
446536
447
- ip netns exec "$testns" ip fou del port 9999 2>/dev/null
537
+ ip -netns "$testns" fou del port 9999 2>/dev/null
448538 check_fail $?
449539
450
- ip netns exec "$testns" ip fou del port 7777
540
+ ip -netns "$testns" fou del port 7777
451541 check_err $?
452542
453543 if [ $ret -ne 0 ]; then
....@@ -462,7 +552,7 @@
462552 kci_test_encap()
463553 {
464554 testns="testns"
465
- ret=0
555
+ local ret=0
466556
467557 ip netns add "$testns"
468558 if [ $? -ne 0 ]; then
....@@ -470,24 +560,27 @@
470560 return $ksft_skip
471561 fi
472562
473
- ip netns exec "$testns" ip link set lo up
563
+ ip -netns "$testns" link set lo up
474564 check_err $?
475565
476
- ip netns exec "$testns" ip link add name "$devdummy" type dummy
566
+ ip -netns "$testns" link add name "$devdummy" type dummy
477567 check_err $?
478
- ip netns exec "$testns" ip link set "$devdummy" up
568
+ ip -netns "$testns" link set "$devdummy" up
479569 check_err $?
480570
481571 kci_test_encap_vxlan "$testns"
572
+ check_err $?
482573 kci_test_encap_fou "$testns"
574
+ check_err $?
483575
484576 ip netns del "$testns"
577
+ return $ret
485578 }
486579
487580 kci_test_macsec()
488581 {
489582 msname="test_macsec0"
490
- ret=0
583
+ local ret=0
491584
492585 ip macsec help 2>&1 | grep -q "^Usage: ip macsec"
493586 if [ $? -ne 0 ]; then
....@@ -545,7 +638,7 @@
545638 #-------------------------------------------------------------------
546639 kci_test_ipsec()
547640 {
548
- ret=0
641
+ local ret=0
549642 algo="aead rfc4106(gcm(aes)) 0x3132333435363738393031323334353664636261 128"
550643 srcip=192.168.123.1
551644 dstip=192.168.123.2
....@@ -645,23 +738,31 @@
645738 #-------------------------------------------------------------------
646739 kci_test_ipsec_offload()
647740 {
648
- ret=0
741
+ local ret=0
649742 algo="aead rfc4106(gcm(aes)) 0x3132333435363738393031323334353664636261 128"
650743 srcip=192.168.123.3
651744 dstip=192.168.123.4
652
- dev=simx1
653
- sysfsd=/sys/kernel/debug/netdevsim/$dev
745
+ sysfsd=/sys/kernel/debug/netdevsim/netdevsim0/ports/0/
654746 sysfsf=$sysfsd/ipsec
747
+ sysfsnet=/sys/bus/netdevsim/devices/netdevsim0/net/
748
+ probed=false
655749
656750 # 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
662759 fi
663760
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
+
665766 ip addr add $srcip dev $dev
666767 ip link set $dev up
667768 if [ ! -d $sysfsd ] ; then
....@@ -681,7 +782,7 @@
681782 tmpl proto esp src $srcip dst $dstip spi 9 \
682783 mode transport reqid 42
683784 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 \
685786 tmpl proto esp src $dstip dst $srcip spi 9 \
686787 mode transport reqid 42
687788 check_err $?
....@@ -734,8 +835,7 @@
734835 fi
735836
736837 # clean up any leftovers
737
- ip link del $dev
738
- rmmod netdevsim
838
+ $probed && rmmod netdevsim
739839
740840 if [ $ret -ne 0 ]; then
741841 echo "FAIL: ipsec_offload"
....@@ -748,7 +848,7 @@
748848 {
749849 testns="testns"
750850 DEV_NS=gretap00
751
- ret=0
851
+ local ret=0
752852
753853 ip netns add "$testns"
754854 if [ $? -ne 0 ]; then
....@@ -764,24 +864,24 @@
764864 fi
765865
766866 # test native tunnel
767
- ip netns exec "$testns" ip link add dev "$DEV_NS" type gretap seq \
867
+ ip -netns "$testns" link add dev "$DEV_NS" type gretap seq \
768868 key 102 local 172.16.1.100 remote 172.16.1.200
769869 check_err $?
770870
771
- ip netns exec "$testns" ip addr add dev "$DEV_NS" 10.1.1.100/24
871
+ ip -netns "$testns" addr add dev "$DEV_NS" 10.1.1.100/24
772872 check_err $?
773873
774
- ip netns exec "$testns" ip link set dev $DEV_NS up
874
+ ip -netns "$testns" link set dev $DEV_NS up
775875 check_err $?
776876
777
- ip netns exec "$testns" ip link del "$DEV_NS"
877
+ ip -netns "$testns" link del "$DEV_NS"
778878 check_err $?
779879
780880 # test external mode
781
- ip netns exec "$testns" ip link add dev "$DEV_NS" type gretap external
881
+ ip -netns "$testns" link add dev "$DEV_NS" type gretap external
782882 check_err $?
783883
784
- ip netns exec "$testns" ip link del "$DEV_NS"
884
+ ip -netns "$testns" link del "$DEV_NS"
785885 check_err $?
786886
787887 if [ $ret -ne 0 ]; then
....@@ -798,7 +898,7 @@
798898 {
799899 testns="testns"
800900 DEV_NS=ip6gretap00
801
- ret=0
901
+ local ret=0
802902
803903 ip netns add "$testns"
804904 if [ $? -ne 0 ]; then
....@@ -814,24 +914,24 @@
814914 fi
815915
816916 # test native tunnel
817
- ip netns exec "$testns" ip link add dev "$DEV_NS" type ip6gretap seq \
917
+ ip -netns "$testns" link add dev "$DEV_NS" type ip6gretap seq \
818918 key 102 local fc00:100::1 remote fc00:100::2
819919 check_err $?
820920
821
- ip netns exec "$testns" ip addr add dev "$DEV_NS" fc00:200::1/96
921
+ ip -netns "$testns" addr add dev "$DEV_NS" fc00:200::1/96
822922 check_err $?
823923
824
- ip netns exec "$testns" ip link set dev $DEV_NS up
924
+ ip -netns "$testns" link set dev $DEV_NS up
825925 check_err $?
826926
827
- ip netns exec "$testns" ip link del "$DEV_NS"
927
+ ip -netns "$testns" link del "$DEV_NS"
828928 check_err $?
829929
830930 # test external mode
831
- ip netns exec "$testns" ip link add dev "$DEV_NS" type ip6gretap external
931
+ ip -netns "$testns" link add dev "$DEV_NS" type ip6gretap external
832932 check_err $?
833933
834
- ip netns exec "$testns" ip link del "$DEV_NS"
934
+ ip -netns "$testns" link del "$DEV_NS"
835935 check_err $?
836936
837937 if [ $ret -ne 0 ]; then
....@@ -848,7 +948,7 @@
848948 {
849949 testns="testns"
850950 DEV_NS=erspan00
851
- ret=0
951
+ local ret=0
852952
853953 ip link help erspan 2>&1 | grep -q "^Usage:"
854954 if [ $? -ne 0 ];then
....@@ -863,40 +963,40 @@
863963 fi
864964
865965 # test native tunnel erspan v1
866
- ip netns exec "$testns" ip link add dev "$DEV_NS" type erspan seq \
966
+ ip -netns "$testns" link add dev "$DEV_NS" type erspan seq \
867967 key 102 local 172.16.1.100 remote 172.16.1.200 \
868968 erspan_ver 1 erspan 488
869969 check_err $?
870970
871
- ip netns exec "$testns" ip addr add dev "$DEV_NS" 10.1.1.100/24
971
+ ip -netns "$testns" addr add dev "$DEV_NS" 10.1.1.100/24
872972 check_err $?
873973
874
- ip netns exec "$testns" ip link set dev $DEV_NS up
974
+ ip -netns "$testns" link set dev $DEV_NS up
875975 check_err $?
876976
877
- ip netns exec "$testns" ip link del "$DEV_NS"
977
+ ip -netns "$testns" link del "$DEV_NS"
878978 check_err $?
879979
880980 # test native tunnel erspan v2
881
- ip netns exec "$testns" ip link add dev "$DEV_NS" type erspan seq \
981
+ ip -netns "$testns" link add dev "$DEV_NS" type erspan seq \
882982 key 102 local 172.16.1.100 remote 172.16.1.200 \
883983 erspan_ver 2 erspan_dir ingress erspan_hwid 7
884984 check_err $?
885985
886
- ip netns exec "$testns" ip addr add dev "$DEV_NS" 10.1.1.100/24
986
+ ip -netns "$testns" addr add dev "$DEV_NS" 10.1.1.100/24
887987 check_err $?
888988
889
- ip netns exec "$testns" ip link set dev $DEV_NS up
989
+ ip -netns "$testns" link set dev $DEV_NS up
890990 check_err $?
891991
892
- ip netns exec "$testns" ip link del "$DEV_NS"
992
+ ip -netns "$testns" link del "$DEV_NS"
893993 check_err $?
894994
895995 # test external mode
896
- ip netns exec "$testns" ip link add dev "$DEV_NS" type erspan external
996
+ ip -netns "$testns" link add dev "$DEV_NS" type erspan external
897997 check_err $?
898998
899
- ip netns exec "$testns" ip link del "$DEV_NS"
999
+ ip -netns "$testns" link del "$DEV_NS"
9001000 check_err $?
9011001
9021002 if [ $ret -ne 0 ]; then
....@@ -913,7 +1013,7 @@
9131013 {
9141014 testns="testns"
9151015 DEV_NS=ip6erspan00
916
- ret=0
1016
+ local ret=0
9171017
9181018 ip link help ip6erspan 2>&1 | grep -q "^Usage:"
9191019 if [ $? -ne 0 ];then
....@@ -928,41 +1028,41 @@
9281028 fi
9291029
9301030 # test native tunnel ip6erspan v1
931
- ip netns exec "$testns" ip link add dev "$DEV_NS" type ip6erspan seq \
1031
+ ip -netns "$testns" link add dev "$DEV_NS" type ip6erspan seq \
9321032 key 102 local fc00:100::1 remote fc00:100::2 \
9331033 erspan_ver 1 erspan 488
9341034 check_err $?
9351035
936
- ip netns exec "$testns" ip addr add dev "$DEV_NS" 10.1.1.100/24
1036
+ ip -netns "$testns" addr add dev "$DEV_NS" 10.1.1.100/24
9371037 check_err $?
9381038
939
- ip netns exec "$testns" ip link set dev $DEV_NS up
1039
+ ip -netns "$testns" link set dev $DEV_NS up
9401040 check_err $?
9411041
942
- ip netns exec "$testns" ip link del "$DEV_NS"
1042
+ ip -netns "$testns" link del "$DEV_NS"
9431043 check_err $?
9441044
9451045 # test native tunnel ip6erspan v2
946
- ip netns exec "$testns" ip link add dev "$DEV_NS" type ip6erspan seq \
1046
+ ip -netns "$testns" link add dev "$DEV_NS" type ip6erspan seq \
9471047 key 102 local fc00:100::1 remote fc00:100::2 \
9481048 erspan_ver 2 erspan_dir ingress erspan_hwid 7
9491049 check_err $?
9501050
951
- ip netns exec "$testns" ip addr add dev "$DEV_NS" 10.1.1.100/24
1051
+ ip -netns "$testns" addr add dev "$DEV_NS" 10.1.1.100/24
9521052 check_err $?
9531053
954
- ip netns exec "$testns" ip link set dev $DEV_NS up
1054
+ ip -netns "$testns" link set dev $DEV_NS up
9551055 check_err $?
9561056
957
- ip netns exec "$testns" ip link del "$DEV_NS"
1057
+ ip -netns "$testns" link del "$DEV_NS"
9581058 check_err $?
9591059
9601060 # test external mode
961
- ip netns exec "$testns" ip link add dev "$DEV_NS" \
1061
+ ip -netns "$testns" link add dev "$DEV_NS" \
9621062 type ip6erspan external
9631063 check_err $?
9641064
965
- ip netns exec "$testns" ip link del "$DEV_NS"
1065
+ ip -netns "$testns" link del "$DEV_NS"
9661066 check_err $?
9671067
9681068 if [ $ret -ne 0 ]; then
....@@ -975,8 +1075,159 @@
9751075 ip netns del "$testns"
9761076 }
9771077
1078
+kci_test_fdb_get()
1079
+{
1080
+ IP="ip -netns testns"
1081
+ BRIDGE="bridge -netns testns"
1082
+ brdev="test-br0"
1083
+ vxlandev="vxlan10"
1084
+ test_mac=de:ad:be:ef:13:37
1085
+ localip="10.0.2.2"
1086
+ dstip="10.0.2.3"
1087
+ local ret=0
1088
+
1089
+ bridge fdb help 2>&1 |grep -q 'bridge fdb get'
1090
+ if [ $? -ne 0 ];then
1091
+ echo "SKIP: fdb get tests: iproute2 too old"
1092
+ return $ksft_skip
1093
+ fi
1094
+
1095
+ ip netns add testns
1096
+ if [ $? -ne 0 ]; then
1097
+ echo "SKIP fdb get tests: cannot add net namespace $testns"
1098
+ return $ksft_skip
1099
+ fi
1100
+
1101
+ $IP link add "$vxlandev" type vxlan id 10 local $localip \
1102
+ dstport 4789 2>/dev/null
1103
+ check_err $?
1104
+ $IP link add name "$brdev" type bridge &>/dev/null
1105
+ check_err $?
1106
+ $IP link set dev "$vxlandev" master "$brdev" &>/dev/null
1107
+ check_err $?
1108
+ $BRIDGE fdb add $test_mac dev "$vxlandev" master &>/dev/null
1109
+ check_err $?
1110
+ $BRIDGE fdb add $test_mac dev "$vxlandev" dst $dstip self &>/dev/null
1111
+ check_err $?
1112
+
1113
+ $BRIDGE fdb get $test_mac brport "$vxlandev" 2>/dev/null | grep -q "dev $vxlandev master $brdev"
1114
+ check_err $?
1115
+ $BRIDGE fdb get $test_mac br "$brdev" 2>/dev/null | grep -q "dev $vxlandev master $brdev"
1116
+ check_err $?
1117
+ $BRIDGE fdb get $test_mac dev "$vxlandev" self 2>/dev/null | grep -q "dev $vxlandev dst $dstip"
1118
+ check_err $?
1119
+
1120
+ ip netns del testns &>/dev/null
1121
+
1122
+ if [ $ret -ne 0 ]; then
1123
+ echo "FAIL: bridge fdb get"
1124
+ return 1
1125
+ fi
1126
+
1127
+ echo "PASS: bridge fdb get"
1128
+}
1129
+
1130
+kci_test_neigh_get()
1131
+{
1132
+ dstmac=de:ad:be:ef:13:37
1133
+ dstip=10.0.2.4
1134
+ dstip6=dead::2
1135
+ local ret=0
1136
+
1137
+ ip neigh help 2>&1 |grep -q 'ip neigh get'
1138
+ if [ $? -ne 0 ];then
1139
+ echo "SKIP: fdb get tests: iproute2 too old"
1140
+ return $ksft_skip
1141
+ fi
1142
+
1143
+ # ipv4
1144
+ ip neigh add $dstip lladdr $dstmac dev "$devdummy" > /dev/null
1145
+ check_err $?
1146
+ ip neigh get $dstip dev "$devdummy" 2> /dev/null | grep -q "$dstmac"
1147
+ check_err $?
1148
+ ip neigh del $dstip lladdr $dstmac dev "$devdummy" > /dev/null
1149
+ check_err $?
1150
+
1151
+ # ipv4 proxy
1152
+ ip neigh add proxy $dstip dev "$devdummy" > /dev/null
1153
+ check_err $?
1154
+ ip neigh get proxy $dstip dev "$devdummy" 2>/dev/null | grep -q "$dstip"
1155
+ check_err $?
1156
+ ip neigh del proxy $dstip dev "$devdummy" > /dev/null
1157
+ check_err $?
1158
+
1159
+ # ipv6
1160
+ ip neigh add $dstip6 lladdr $dstmac dev "$devdummy" > /dev/null
1161
+ check_err $?
1162
+ ip neigh get $dstip6 dev "$devdummy" 2> /dev/null | grep -q "$dstmac"
1163
+ check_err $?
1164
+ ip neigh del $dstip6 lladdr $dstmac dev "$devdummy" > /dev/null
1165
+ check_err $?
1166
+
1167
+ # ipv6 proxy
1168
+ ip neigh add proxy $dstip6 dev "$devdummy" > /dev/null
1169
+ check_err $?
1170
+ ip neigh get proxy $dstip6 dev "$devdummy" 2>/dev/null | grep -q "$dstip6"
1171
+ check_err $?
1172
+ ip neigh del proxy $dstip6 dev "$devdummy" > /dev/null
1173
+ check_err $?
1174
+
1175
+ if [ $ret -ne 0 ];then
1176
+ echo "FAIL: neigh get"
1177
+ return 1
1178
+ fi
1179
+
1180
+ echo "PASS: neigh get"
1181
+}
1182
+
1183
+kci_test_bridge_parent_id()
1184
+{
1185
+ local ret=0
1186
+ sysfsnet=/sys/bus/netdevsim/devices/netdevsim
1187
+ probed=false
1188
+
1189
+ if [ ! -w /sys/bus/netdevsim/new_device ] ; then
1190
+ modprobe -q netdevsim
1191
+ check_err $?
1192
+ if [ $ret -ne 0 ]; then
1193
+ echo "SKIP: bridge_parent_id can't load netdevsim"
1194
+ return $ksft_skip
1195
+ fi
1196
+ probed=true
1197
+ fi
1198
+
1199
+ echo "10 1" > /sys/bus/netdevsim/new_device
1200
+ while [ ! -d ${sysfsnet}10 ] ; do :; done
1201
+ echo "20 1" > /sys/bus/netdevsim/new_device
1202
+ while [ ! -d ${sysfsnet}20 ] ; do :; done
1203
+ udevadm settle
1204
+ dev10=`ls ${sysfsnet}10/net/`
1205
+ dev20=`ls ${sysfsnet}20/net/`
1206
+
1207
+ ip link add name test-bond0 type bond mode 802.3ad
1208
+ ip link set dev $dev10 master test-bond0
1209
+ ip link set dev $dev20 master test-bond0
1210
+ ip link add name test-br0 type bridge
1211
+ ip link set dev test-bond0 master test-br0
1212
+ check_err $?
1213
+
1214
+ # clean up any leftovers
1215
+ ip link del dev test-br0
1216
+ ip link del dev test-bond0
1217
+ echo 20 > /sys/bus/netdevsim/del_device
1218
+ echo 10 > /sys/bus/netdevsim/del_device
1219
+ $probed && rmmod netdevsim
1220
+
1221
+ if [ $ret -ne 0 ]; then
1222
+ echo "FAIL: bridge_parent_id"
1223
+ return 1
1224
+ fi
1225
+ echo "PASS: bridge_parent_id"
1226
+}
1227
+
9781228 kci_test_rtnl()
9791229 {
1230
+ local ret=0
9801231 kci_add_dummy
9811232 if [ $ret -ne 0 ];then
9821233 echo "FAIL: cannot add dummy interface"
....@@ -984,24 +1235,50 @@
9841235 fi
9851236
9861237 kci_test_polrouting
1238
+ check_err $?
9871239 kci_test_route_get
1240
+ check_err $?
9881241 kci_test_addrlft
1242
+ check_err $?
1243
+ kci_test_promote_secondaries
1244
+ check_err $?
9891245 kci_test_tc
1246
+ check_err $?
9901247 kci_test_gre
1248
+ check_err $?
9911249 kci_test_gretap
1250
+ check_err $?
9921251 kci_test_ip6gretap
1252
+ check_err $?
9931253 kci_test_erspan
1254
+ check_err $?
9941255 kci_test_ip6erspan
1256
+ check_err $?
9951257 kci_test_bridge
1258
+ check_err $?
9961259 kci_test_addrlabel
1260
+ check_err $?
9971261 kci_test_ifalias
1262
+ check_err $?
9981263 kci_test_vrf
1264
+ check_err $?
9991265 kci_test_encap
1266
+ check_err $?
10001267 kci_test_macsec
1268
+ check_err $?
10011269 kci_test_ipsec
1270
+ check_err $?
10021271 kci_test_ipsec_offload
1272
+ check_err $?
1273
+ kci_test_fdb_get
1274
+ check_err $?
1275
+ kci_test_neigh_get
1276
+ check_err $?
1277
+ kci_test_bridge_parent_id
1278
+ check_err $?
10031279
10041280 kci_del_dummy
1281
+ return $ret
10051282 }
10061283
10071284 #check for needed privileges
....@@ -1020,4 +1297,4 @@
10201297
10211298 kci_test_rtnl
10221299
1023
-exit $ret
1300
+exit $?