forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
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,8 @@
734835 fi
735836
736837 # clean up any leftovers
737
- ip link del $dev
738
- rmmod netdevsim
838
+ echo 0 > /sys/bus/netdevsim/del_device
839
+ $probed && rmmod netdevsim
739840
740841 if [ $ret -ne 0 ]; then
741842 echo "FAIL: ipsec_offload"
....@@ -748,7 +849,7 @@
748849 {
749850 testns="testns"
750851 DEV_NS=gretap00
751
- ret=0
852
+ local ret=0
752853
753854 ip netns add "$testns"
754855 if [ $? -ne 0 ]; then
....@@ -764,24 +865,24 @@
764865 fi
765866
766867 # 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 \
768869 key 102 local 172.16.1.100 remote 172.16.1.200
769870 check_err $?
770871
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
772873 check_err $?
773874
774
- ip netns exec "$testns" ip link set dev $DEV_NS up
875
+ ip -netns "$testns" link set dev $DEV_NS up
775876 check_err $?
776877
777
- ip netns exec "$testns" ip link del "$DEV_NS"
878
+ ip -netns "$testns" link del "$DEV_NS"
778879 check_err $?
779880
780881 # 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
782883 check_err $?
783884
784
- ip netns exec "$testns" ip link del "$DEV_NS"
885
+ ip -netns "$testns" link del "$DEV_NS"
785886 check_err $?
786887
787888 if [ $ret -ne 0 ]; then
....@@ -798,7 +899,7 @@
798899 {
799900 testns="testns"
800901 DEV_NS=ip6gretap00
801
- ret=0
902
+ local ret=0
802903
803904 ip netns add "$testns"
804905 if [ $? -ne 0 ]; then
....@@ -814,24 +915,24 @@
814915 fi
815916
816917 # 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 \
818919 key 102 local fc00:100::1 remote fc00:100::2
819920 check_err $?
820921
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
822923 check_err $?
823924
824
- ip netns exec "$testns" ip link set dev $DEV_NS up
925
+ ip -netns "$testns" link set dev $DEV_NS up
825926 check_err $?
826927
827
- ip netns exec "$testns" ip link del "$DEV_NS"
928
+ ip -netns "$testns" link del "$DEV_NS"
828929 check_err $?
829930
830931 # 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
832933 check_err $?
833934
834
- ip netns exec "$testns" ip link del "$DEV_NS"
935
+ ip -netns "$testns" link del "$DEV_NS"
835936 check_err $?
836937
837938 if [ $ret -ne 0 ]; then
....@@ -848,7 +949,7 @@
848949 {
849950 testns="testns"
850951 DEV_NS=erspan00
851
- ret=0
952
+ local ret=0
852953
853954 ip link help erspan 2>&1 | grep -q "^Usage:"
854955 if [ $? -ne 0 ];then
....@@ -863,40 +964,40 @@
863964 fi
864965
865966 # 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 \
867968 key 102 local 172.16.1.100 remote 172.16.1.200 \
868969 erspan_ver 1 erspan 488
869970 check_err $?
870971
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
872973 check_err $?
873974
874
- ip netns exec "$testns" ip link set dev $DEV_NS up
975
+ ip -netns "$testns" link set dev $DEV_NS up
875976 check_err $?
876977
877
- ip netns exec "$testns" ip link del "$DEV_NS"
978
+ ip -netns "$testns" link del "$DEV_NS"
878979 check_err $?
879980
880981 # 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 \
882983 key 102 local 172.16.1.100 remote 172.16.1.200 \
883984 erspan_ver 2 erspan_dir ingress erspan_hwid 7
884985 check_err $?
885986
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
887988 check_err $?
888989
889
- ip netns exec "$testns" ip link set dev $DEV_NS up
990
+ ip -netns "$testns" link set dev $DEV_NS up
890991 check_err $?
891992
892
- ip netns exec "$testns" ip link del "$DEV_NS"
993
+ ip -netns "$testns" link del "$DEV_NS"
893994 check_err $?
894995
895996 # 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
897998 check_err $?
898999
899
- ip netns exec "$testns" ip link del "$DEV_NS"
1000
+ ip -netns "$testns" link del "$DEV_NS"
9001001 check_err $?
9011002
9021003 if [ $ret -ne 0 ]; then
....@@ -913,7 +1014,7 @@
9131014 {
9141015 testns="testns"
9151016 DEV_NS=ip6erspan00
916
- ret=0
1017
+ local ret=0
9171018
9181019 ip link help ip6erspan 2>&1 | grep -q "^Usage:"
9191020 if [ $? -ne 0 ];then
....@@ -928,41 +1029,41 @@
9281029 fi
9291030
9301031 # 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 \
9321033 key 102 local fc00:100::1 remote fc00:100::2 \
9331034 erspan_ver 1 erspan 488
9341035 check_err $?
9351036
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
9371038 check_err $?
9381039
939
- ip netns exec "$testns" ip link set dev $DEV_NS up
1040
+ ip -netns "$testns" link set dev $DEV_NS up
9401041 check_err $?
9411042
942
- ip netns exec "$testns" ip link del "$DEV_NS"
1043
+ ip -netns "$testns" link del "$DEV_NS"
9431044 check_err $?
9441045
9451046 # 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 \
9471048 key 102 local fc00:100::1 remote fc00:100::2 \
9481049 erspan_ver 2 erspan_dir ingress erspan_hwid 7
9491050 check_err $?
9501051
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
9521053 check_err $?
9531054
954
- ip netns exec "$testns" ip link set dev $DEV_NS up
1055
+ ip -netns "$testns" link set dev $DEV_NS up
9551056 check_err $?
9561057
957
- ip netns exec "$testns" ip link del "$DEV_NS"
1058
+ ip -netns "$testns" link del "$DEV_NS"
9581059 check_err $?
9591060
9601061 # test external mode
961
- ip netns exec "$testns" ip link add dev "$DEV_NS" \
1062
+ ip -netns "$testns" link add dev "$DEV_NS" \
9621063 type ip6erspan external
9631064 check_err $?
9641065
965
- ip netns exec "$testns" ip link del "$DEV_NS"
1066
+ ip -netns "$testns" link del "$DEV_NS"
9661067 check_err $?
9671068
9681069 if [ $ret -ne 0 ]; then
....@@ -975,8 +1076,159 @@
9751076 ip netns del "$testns"
9761077 }
9771078
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
+
9781229 kci_test_rtnl()
9791230 {
1231
+ local ret=0
9801232 kci_add_dummy
9811233 if [ $ret -ne 0 ];then
9821234 echo "FAIL: cannot add dummy interface"
....@@ -984,24 +1236,50 @@
9841236 fi
9851237
9861238 kci_test_polrouting
1239
+ check_err $?
9871240 kci_test_route_get
1241
+ check_err $?
9881242 kci_test_addrlft
1243
+ check_err $?
1244
+ kci_test_promote_secondaries
1245
+ check_err $?
9891246 kci_test_tc
1247
+ check_err $?
9901248 kci_test_gre
1249
+ check_err $?
9911250 kci_test_gretap
1251
+ check_err $?
9921252 kci_test_ip6gretap
1253
+ check_err $?
9931254 kci_test_erspan
1255
+ check_err $?
9941256 kci_test_ip6erspan
1257
+ check_err $?
9951258 kci_test_bridge
1259
+ check_err $?
9961260 kci_test_addrlabel
1261
+ check_err $?
9971262 kci_test_ifalias
1263
+ check_err $?
9981264 kci_test_vrf
1265
+ check_err $?
9991266 kci_test_encap
1267
+ check_err $?
10001268 kci_test_macsec
1269
+ check_err $?
10011270 kci_test_ipsec
1271
+ check_err $?
10021272 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 $?
10031280
10041281 kci_del_dummy
1282
+ return $ret
10051283 }
10061284
10071285 #check for needed privileges
....@@ -1020,4 +1298,4 @@
10201298
10211299 kci_test_rtnl
10221300
1023
-exit $ret
1301
+exit $?