Lines Matching +full:no +full:- +full:loopback +full:- +full:test
2 # SPDX-License-Identifier: GPL-2.0
9 # 2. client, server, no-server
13 # 6. VRF and non-VRF permutations
16 # ns-A | ns-B
17 # No VRF case:
18 # [ lo ] [ eth1 ]---|---[ eth1 ] [ lo ]
21 # [ red ]---[ eth1 ]---|---[ eth1 ] [ lo ]
23 # ns-A:
30 # ns-B:
35 # ns-A to ns-C connection - only for VRF and same config
36 # as ns-A to ns-B
38 # server / client nomenclature relative to ns-A
40 # Kselftest framework requirement - SKIP code is 4.
77 NSA=ns-A
78 NSB=ns-B
79 NSC=ns-C
98 if [ ${rc} -eq ${expected} ]; then
100 printf "TEST: %-70s [ OK ]\n" "${msg}"
103 printf "TEST: %-70s [FAIL]\n" "${msg}"
131 log_test $rc $expected "$msg - ${astr}"
153 # make sure we have no test instances running
196 if [ "$VERBOSE" = "1" -a -n "$out" ]; then
225 if [ $rc -ne 0 ]; then
247 if [ $rc -ne 0 ]; then
269 if [ $rc -ne 0 ]; then
284 # set sysctl values in NS-A
289 run_cmd sysctl -q -w $*
292 # get sysctl values in NS-A
295 ${NSA_CMD} sysctl -n $*
304 127.0.0.1) echo "loopback";;
305 ::1) echo "IPv6 loopback";;
307 ${NSA_IP}) echo "ns-A IP";;
308 ${NSA_IP6}) echo "ns-A IPv6";;
309 ${NSA_LO_IP}) echo "ns-A loopback IP";;
310 ${NSA_LO_IP6}) echo "ns-A loopback IPv6";;
311 ${NSA_LINKIP6}|${NSA_LINKIP6}%*) echo "ns-A IPv6 LLA";;
313 ${NSB_IP}) echo "ns-B IP";;
314 ${NSB_IP6}) echo "ns-B IPv6";;
315 ${NSB_LO_IP}) echo "ns-B loopback IP";;
316 ${NSB_LO_IP6}) echo "ns-B loopback IPv6";;
317 ${NSB_LINKIP6}|${NSB_LINKIP6}%*) echo "ns-B IPv6 LLA";;
334 addr=$(ip -netns ${ns} -6 -br addr show dev ${dev} | \
344 [ -z "$addr" ] && return 1
362 ip -netns ${ns} link add ${vrf} type vrf table ${table}
363 ip -netns ${ns} link set ${vrf} up
364 ip -netns ${ns} route add vrf ${vrf} unreachable default metric 8192
365 ip -netns ${ns} -6 route add vrf ${vrf} unreachable default metric 8192
367 ip -netns ${ns} addr add 127.0.0.1/8 dev ${vrf}
368 ip -netns ${ns} -6 addr add ::1 dev ${vrf} nodad
369 if [ "${addr}" != "-" ]; then
370 ip -netns ${ns} addr add dev ${vrf} ${addr}
372 if [ "${addr6}" != "-" ]; then
373 ip -netns ${ns} -6 addr add dev ${vrf} ${addr6}
376 ip -netns ${ns} ru del pref 0
377 ip -netns ${ns} ru add pref 32765 from all lookup local
378 ip -netns ${ns} -6 ru del pref 0
379 ip -netns ${ns} -6 ru add pref 32765 from all lookup local
390 ip -netns ${ns} link set lo up
391 if [ "${addr}" != "-" ]; then
392 ip -netns ${ns} addr add dev lo ${addr}
394 if [ "${addr6}" != "-" ]; then
395 ip -netns ${ns} -6 addr add dev lo ${addr6}
398 ip -netns ${ns} ro add unreachable default metric 8192
399 ip -netns ${ns} -6 ro add unreachable default metric 8192
401 ip netns exec ${ns} sysctl -qw net.ipv4.ip_forward=1
402 ip netns exec ${ns} sysctl -qw net.ipv6.conf.all.keep_addr_on_down=1
403 ip netns exec ${ns} sysctl -qw net.ipv6.conf.all.forwarding=1
404 ip netns exec ${ns} sysctl -qw net.ipv6.conf.default.forwarding=1
419 ip -netns ${ns1} li add ${ns1_dev} type veth peer name tmp
420 ip -netns ${ns1} li set ${ns1_dev} up
421 ip -netns ${ns1} li set tmp netns ${ns2} name ${ns2_dev}
422 ip -netns ${ns2} li set ${ns2_dev} up
424 if [ "${ns1_addr}" != "-" ]; then
425 ip -netns ${ns1} addr add dev ${ns1_dev} ${ns1_addr}
426 ip -netns ${ns2} addr add dev ${ns2_dev} ${ns2_addr}
429 if [ "${ns1_addr6}" != "-" ]; then
430 ip -netns ${ns1} addr add dev ${ns1_dev} ${ns1_addr6}
431 ip -netns ${ns2} addr add dev ${ns2_dev} ${ns2_addr6}
438 ip netns | grep -q ${NSA}
439 if [ $? -eq 0 ]; then
440 ip -netns ${NSA} link delete ${VRF}
441 ip -netns ${NSA} ro flush table ${VRF_TABLE}
443 ip -netns ${NSA} addr flush dev ${NSA_DEV}
444 ip -netns ${NSA} -6 addr flush dev ${NSA_DEV}
445 ip -netns ${NSA} link set dev ${NSA_DEV} down
446 ip -netns ${NSA} link del dev ${NSA_DEV}
467 set -e
477 # tell ns-A how to get to remote addresses of ns-B
481 ip -netns ${NSA} link set dev ${NSA_DEV} vrf ${VRF}
482 ip -netns ${NSA} ro add vrf ${VRF} ${NSB_LO_IP}/32 via ${NSB_IP} dev ${NSA_DEV}
483 ip -netns ${NSA} -6 ro add vrf ${VRF} ${NSB_LO_IP6}/128 via ${NSB_IP6} dev ${NSA_DEV}
485 ip -netns ${NSB} ro add ${VRF_IP}/32 via ${NSA_IP} dev ${NSB_DEV}
486 ip -netns ${NSB} -6 ro add ${VRF_IP6}/128 via ${NSA_IP6} dev ${NSB_DEV}
488 # some VRF tests use ns-C which has the same config as
489 # ns-B but for a device NOT in the VRF
490 create_ns ${NSC} "-" "-"
494 ip -netns ${NSA} ro add ${NSB_LO_IP}/32 via ${NSB_IP} dev ${NSA_DEV}
495 ip -netns ${NSA} ro add ${NSB_LO_IP6}/128 via ${NSB_IP6} dev ${NSA_DEV}
499 # tell ns-B how to get to remote addresses of ns-A
500 ip -netns ${NSB} ro add ${NSA_LO_IP}/32 via ${NSA_IP} dev ${NSB_DEV}
501 ip -netns ${NSB} ro add ${NSA_LO_IP6}/128 via ${NSA_IP6} dev ${NSB_DEV}
515 set -e
517 create_ns ${NSA} "-" "-"
518 create_ns ${NSB} "-" "-"
519 create_ns ${NSC} "-" "-"
520 connect_ns ${NSA} ${NSA_DEV} "-" "-" \
521 ${NSB} ${NSB_DEV} "-" "-"
522 connect_ns ${NSA} ${NSA_DEV2} "-" "-" \
523 ${NSC} ${NSC_DEV} "-" "-"
529 create_vrf ${NSA} ${VRF} ${VRF_TABLE} "-" "-"
530 ip -netns ${NSA} link set dev ${NSA_DEV} vrf ${VRF}
531 ip -netns ${NSA} link set dev ${NSA_DEV2} vrf ${VRF}
551 run_cmd ping -c1 -w1 ${a}
555 run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
559 run_cmd ping -c1 -w1 -I ${NSA_LO_IP} ${a}
569 run_cmd_nsb ping -c1 -w1 ${a}
579 run_cmd ping -c1 -w1 ${a}
589 run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
592 # loopback addresses not reachable from device bind
598 show_hint "Fails since address on loopback device is out of device scope"
599 run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
613 run_cmd ping -c1 -w1 ${a}
619 # run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
624 run_cmd_nsb ping -c1 -w1 ${a}
641 run_cmd ping -c1 -w1 ${a}
647 # run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
652 run_cmd_nsb ping -c1 -w1 ${a}
662 run_cmd ping -c1 -w1 ${a}
668 # run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
684 run_cmd ping -c1 -w1 -I ${VRF} ${a}
688 run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
692 run_cmd ip vrf exec ${VRF} ping -c1 -w1 -I ${NSA_IP} ${a}
696 run_cmd ip vrf exec ${VRF} ping -c1 -w1 -I ${VRF_IP} ${a}
706 run_cmd_nsb ping -c1 -w1 ${a}
717 run_cmd ping -c1 -w1 -I ${VRF} ${a}
727 run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
735 run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
747 run_cmd ping -c1 -w1 -I ${VRF} ${a}
751 run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
757 run_cmd_nsb ping -c1 -w1 ${a}
771 run_cmd ping -c1 -w1 -I ${VRF} ${a}
775 run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
781 run_cmd_nsb ping -c1 -w1 ${a}
789 log_subsection "No VRF"
816 run_cmd nettest -s -M ${MD5_PW} -m ${NSB_IP} &
818 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_PW}
824 run_cmd nettest -s &
826 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_PW}
827 log_test $? 2 "MD5: Server no config, client uses password"
832 run_cmd nettest -s -M ${MD5_PW} -m ${NSB_IP} &
834 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_WRONG_PW}
840 run_cmd nettest -s -M ${MD5_PW} -m ${NSB_LO_IP} &
842 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_PW}
846 # MD5 extension - prefix length
851 run_cmd nettest -s -M ${MD5_PW} -m ${NS_NET} &
853 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_PW}
859 run_cmd nettest -s -M ${MD5_PW} -m ${NS_NET} &
861 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_WRONG_PW}
867 run_cmd nettest -s -M ${MD5_PW} -m ${NS_NET} &
869 run_cmd_nsb nettest -c ${NSB_LO_IP} -r ${NSA_IP} -X ${MD5_PW}
884 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NSB_IP} &
886 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_PW}
892 run_cmd nettest -s -I ${VRF} &
894 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_PW}
895 log_test $? 2 "MD5: VRF: Server no config, client uses password"
900 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NSB_IP} &
902 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_WRONG_PW}
908 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NSB_LO_IP} &
910 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_PW}
914 # MD5 extension - prefix length
919 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET} &
921 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_PW}
927 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET} &
929 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_WRONG_PW}
935 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET} &
937 run_cmd_nsb nettest -c ${NSB_LO_IP} -r ${NSA_IP} -X ${MD5_PW}
945 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NSB_IP} &
946 run_cmd nettest -s -M ${MD5_WRONG_PW} -m ${NSB_IP} &
948 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_PW}
952 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NSB_IP} &
953 run_cmd nettest -s -M ${MD5_WRONG_PW} -m ${NSB_IP} &
955 run_cmd_nsc nettest -r ${NSA_IP} -X ${MD5_WRONG_PW}
960 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NSB_IP} &
961 run_cmd nettest -s -M ${MD5_WRONG_PW} -m ${NSB_IP} &
963 run_cmd_nsc nettest -r ${NSA_IP} -X ${MD5_PW}
968 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NSB_IP} &
969 run_cmd nettest -s -M ${MD5_WRONG_PW} -m ${NSB_IP} &
971 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_WRONG_PW}
975 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET} &
976 run_cmd nettest -s -M ${MD5_WRONG_PW} -m ${NS_NET} &
978 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_PW}
982 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET} &
983 run_cmd nettest -s -M ${MD5_WRONG_PW} -m ${NS_NET} &
985 run_cmd_nsc nettest -r ${NSA_IP} -X ${MD5_WRONG_PW}
990 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET} &
991 run_cmd nettest -s -M ${MD5_WRONG_PW} -m ${NS_NET} &
993 run_cmd_nsc nettest -r ${NSA_IP} -X ${MD5_PW}
998 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET} &
999 run_cmd nettest -s -M ${MD5_WRONG_PW} -m ${NS_NET} &
1001 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_WRONG_PW}
1008 run_cmd nettest -s -I ${NSA_DEV} -M ${MD5_PW} -m ${NSB_IP}
1009 log_test $? 1 "MD5: VRF: Device must be a VRF - single address"
1012 run_cmd nettest -s -I ${NSA_DEV} -M ${MD5_PW} -m ${NS_NET}
1013 log_test $? 1 "MD5: VRF: Device must be a VRF - prefix"
1023 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET} --no-bind-key-ifindex &
1025 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_PW}
1026 log_test $? 0 "MD5: VRF: VRF-bound server, unbound key accepts connection"
1030 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET} --force-bind-key-ifindex &
1032 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_PW}
1033 log_test $? 0 "MD5: VRF: VRF-bound server, bound key accepts connection"
1038 # This particular test needs tcp_l3mdev_accept=1 for Global server to accept VRF connections
1044 run_cmd nettest -s -M ${MD5_PW} -m ${NS_NET} --force-bind-key-ifindex &
1046 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_PW}
1050 run_cmd nettest -s -M ${MD5_PW} -m ${NS_NET} --force-bind-key-ifindex &
1052 run_cmd_nsc nettest -r ${NSA_IP} -X ${MD5_PW}
1053 log_test $? 0 "MD5: VRF: Global server, key bound to ifindex=0 accepts non-VRF connection"
1056 run_cmd nettest -s -M ${MD5_PW} -m ${NS_NET} --no-bind-key-ifindex &
1058 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_PW}
1062 run_cmd nettest -s -M ${MD5_PW} -m ${NS_NET} --no-bind-key-ifindex &
1064 run_cmd_nsc nettest -r ${NSA_IP} -X ${MD5_PW}
1065 log_test $? 0 "MD5: VRF: Global server, key not bound to ifindex accepts non-VRF connection"
1081 run_cmd nettest -s &
1083 run_cmd_nsb nettest -r ${a}
1089 run_cmd nettest -s -I ${NSA_DEV} &
1091 run_cmd_nsb nettest -r ${a}
1098 show_hint "Should fail 'Connection refused' since there is no server"
1099 run_cmd_nsb nettest -r ${a}
1100 log_test_addr ${a} $? 1 "No server"
1109 run_cmd_nsb nettest -s &
1111 run_cmd nettest -r ${a} -0 ${NSA_IP}
1115 run_cmd_nsb nettest -s &
1117 run_cmd nettest -r ${a} -d ${NSA_DEV}
1122 run_cmd nettest -r ${a}
1123 log_test_addr ${a} $? 1 "No server, unbound client"
1127 run_cmd nettest -r ${a} -d ${NSA_DEV}
1128 log_test_addr ${a} $? 1 "No server, device client"
1137 run_cmd nettest -s &
1139 run_cmd nettest -r ${a} -0 ${a} -1 ${a}
1145 run_cmd nettest -s -I ${NSA_DEV} &
1147 run_cmd nettest -r ${a} -0 ${a}
1153 show_hint "Should fail 'Connection refused' since addresses on loopback are out of device scope"
1154 run_cmd nettest -s -I ${NSA_DEV} &
1156 run_cmd nettest -r ${a}
1162 run_cmd nettest -s &
1164 run_cmd nettest -r ${a} -0 ${a} -d ${NSA_DEV}
1170 show_hint "Should fail 'No route to host' since addresses on loopback are out of device scope"
1171 run_cmd nettest -s &
1173 run_cmd nettest -r ${a} -d ${NSA_DEV}
1179 run_cmd nettest -s -I ${NSA_DEV} -3 ${NSA_DEV} &
1181 run_cmd nettest -d ${NSA_DEV} -r ${a} -0 ${a}
1186 run_cmd nettest -d ${NSA_DEV} -r ${a}
1187 log_test_addr ${a} $? 1 "No server, device client, local conn"
1208 run_cmd nettest -s &
1210 run_cmd_nsb nettest -r ${a}
1214 run_cmd nettest -s -I ${VRF} -3 ${VRF} &
1216 run_cmd_nsb nettest -r ${a}
1220 run_cmd nettest -s -I ${NSA_DEV} -3 ${NSA_DEV} &
1222 run_cmd_nsb nettest -r ${a}
1227 show_hint "Should fail 'Connection refused' since there is no server"
1228 run_cmd_nsb nettest -r ${a}
1229 log_test_addr ${a} $? 1 "No server"
1237 run_cmd nettest -s &
1239 run_cmd nettest -r ${a} -d ${NSA_DEV}
1255 run_cmd nettest -s -3 ${VRF} &
1257 run_cmd_nsb nettest -r ${a}
1262 run_cmd nettest -s -I ${VRF} -3 ${VRF} &
1264 run_cmd_nsb nettest -r ${a}
1270 run_cmd_nsb nettest -r ${a}
1271 log_test_addr ${a} $? 1 "No server"
1277 run_cmd nettest -s -I ${NSA_DEV} -3 ${NSA_DEV} &
1279 run_cmd_nsb nettest -r ${a}
1287 run_cmd nettest -s -I ${VRF} &
1289 run_cmd nettest -r ${a}
1299 run_cmd_nsb nettest -s &
1301 run_cmd nettest -r ${a} -d ${VRF}
1305 run_cmd_nsb nettest -s &
1307 run_cmd nettest -r ${a} -d ${NSA_DEV}
1312 run_cmd nettest -r ${a} -d ${VRF}
1313 log_test_addr ${a} $? 1 "No server, VRF client"
1317 run_cmd nettest -r ${a} -d ${NSA_DEV}
1318 log_test_addr ${a} $? 1 "No server, device client"
1324 run_cmd nettest -s -I ${VRF} -3 ${VRF} &
1326 run_cmd nettest -r ${a} -d ${VRF} -0 ${a}
1332 run_cmd nettest -s -I ${VRF} -3 ${VRF} &
1334 run_cmd nettest -r ${a} -d ${NSA_DEV} -0 ${a}
1338 show_hint "Should fail 'No route to host' since client is out of VRF scope"
1339 run_cmd nettest -s -I ${VRF} &
1341 run_cmd nettest -r ${a}
1345 run_cmd nettest -s -I ${NSA_DEV} -3 ${NSA_DEV} &
1347 run_cmd nettest -r ${a} -d ${VRF} -0 ${a}
1351 run_cmd nettest -s -I ${NSA_DEV} -3 ${NSA_DEV} &
1353 run_cmd nettest -r ${a} -d ${NSA_DEV} -0 ${a}
1360 log_subsection "No VRF"
1363 # tcp_l3mdev_accept should have no affect without VRF;
1390 run_cmd nettest -D -s -3 ${NSA_DEV} &
1392 run_cmd_nsb nettest -D -r ${a}
1396 show_hint "Should fail 'Connection refused' since there is no server"
1397 run_cmd_nsb nettest -D -r ${a}
1398 log_test_addr ${a} $? 1 "No server"
1403 run_cmd nettest -D -I ${NSA_DEV} -s -3 ${NSA_DEV} &
1405 run_cmd_nsb nettest -D -r ${a}
1414 run_cmd_nsb nettest -D -s &
1416 run_cmd nettest -D -r ${a} -0 ${NSA_IP}
1420 run_cmd_nsb nettest -D -s &
1422 run_cmd nettest -D -r ${a} -d ${NSA_DEV} -0 ${NSA_IP}
1426 run_cmd_nsb nettest -D -s &
1428 run_cmd nettest -D -r ${a} -d ${NSA_DEV} -C -0 ${NSA_IP}
1432 run_cmd_nsb nettest -D -s &
1434 run_cmd nettest -D -r ${a} -d ${NSA_DEV} -S -0 ${NSA_IP}
1439 run_cmd nettest -D -r ${a}
1440 log_test_addr ${a} $? 1 "No server, unbound client"
1444 run_cmd nettest -D -r ${a} -d ${NSA_DEV}
1445 log_test_addr ${a} $? 1 "No server, device client"
1454 run_cmd nettest -D -s &
1456 run_cmd nettest -D -r ${a} -0 ${a} -1 ${a}
1462 run_cmd nettest -s -D -I ${NSA_DEV} -3 ${NSA_DEV} &
1464 run_cmd nettest -D -r ${a}
1471 run_cmd nettest -s -D -I ${NSA_DEV} &
1473 run_cmd nettest -D -r ${a}
1479 run_cmd nettest -s -D &
1481 run_cmd nettest -D -d ${NSA_DEV} -r ${a}
1485 run_cmd nettest -s -D &
1487 run_cmd nettest -D -d ${NSA_DEV} -C -r ${a}
1491 run_cmd nettest -s -D &
1493 run_cmd nettest -D -d ${NSA_DEV} -S -r ${a}
1496 # IPv4 with device bind has really weird behavior - it overrides the
1502 show_hint "Should fail since addresses on loopback are out of device scope"
1503 run_cmd nettest -D -s &
1505 run_cmd nettest -D -r ${a} -d ${NSA_DEV}
1509 show_hint "Should fail since addresses on loopback are out of device scope"
1510 run_cmd nettest -D -s &
1512 run_cmd nettest -D -r ${a} -d ${NSA_DEV} -C
1516 show_hint "Should fail since addresses on loopback are out of device scope"
1517 run_cmd nettest -D -s &
1519 run_cmd nettest -D -r ${a} -d ${NSA_DEV} -S
1525 run_cmd nettest -D -s -I ${NSA_DEV} -3 ${NSA_DEV} &
1527 run_cmd nettest -D -d ${NSA_DEV} -r ${a} -0 ${a}
1531 run_cmd nettest -D -d ${NSA_DEV} -r ${a}
1532 log_test_addr ${a} $? 2 "No server, device client, local conn"
1550 run_cmd nettest -D -s &
1552 run_cmd_nsb nettest -D -r ${a}
1556 run_cmd nettest -D -I ${VRF} -s -3 ${NSA_DEV} &
1558 run_cmd_nsb nettest -D -r ${a}
1562 run_cmd nettest -D -I ${NSA_DEV} -s -3 ${NSA_DEV} &
1564 run_cmd_nsb nettest -D -r ${a}
1568 show_hint "Should fail 'Connection refused' since there is no server"
1569 run_cmd_nsb nettest -D -r ${a}
1570 log_test_addr ${a} $? 1 "No server"
1574 run_cmd nettest -D -s &
1576 run_cmd nettest -D -d ${VRF} -r ${a}
1582 run_cmd nettest -s -D -I ${VRF} -3 ${NSA_DEV} &
1584 run_cmd nettest -D -d ${VRF} -r ${a}
1588 run_cmd nettest -s -D -I ${VRF} -3 ${NSA_DEV} &
1590 run_cmd nettest -D -d ${NSA_DEV} -r ${a}
1595 run_cmd nettest -s -D -I ${NSA_DEV} -3 ${NSA_DEV} &
1597 run_cmd nettest -D -d ${VRF} -r ${a}
1601 run_cmd nettest -s -D -I ${NSA_DEV} -3 ${NSA_DEV} &
1603 run_cmd nettest -D -d ${NSA_DEV} -r ${a}
1616 run_cmd nettest -D -s -3 ${NSA_DEV} &
1618 run_cmd_nsb nettest -D -r ${a}
1622 run_cmd nettest -D -I ${VRF} -s -3 ${NSA_DEV} &
1624 run_cmd_nsb nettest -D -r ${a}
1628 run_cmd nettest -D -I ${NSA_DEV} -s -3 ${NSA_DEV} &
1630 run_cmd_nsb nettest -D -r ${a}
1635 run_cmd_nsb nettest -D -r ${a}
1636 log_test_addr ${a} $? 1 "No server"
1643 run_cmd_nsb nettest -D -s &
1645 run_cmd nettest -d ${VRF} -D -r ${NSB_IP} -1 ${NSA_IP}
1649 run_cmd_nsb nettest -D -s &
1651 run_cmd nettest -d ${NSA_DEV} -D -r ${NSB_IP} -1 ${NSA_IP}
1654 # negative test - should fail
1657 run_cmd nettest -D -d ${VRF} -r ${NSB_IP}
1658 log_test $? 1 "No server, VRF client"
1662 run_cmd nettest -D -d ${NSA_DEV} -r ${NSB_IP}
1663 log_test $? 1 "No server, enslaved device client"
1670 run_cmd nettest -D -s -3 ${NSA_DEV} &
1672 run_cmd nettest -D -d ${VRF} -r ${a}
1676 run_cmd nettest -s -D -I ${VRF} -3 ${NSA_DEV} &
1678 run_cmd nettest -D -d ${VRF} -r ${a}
1682 run_cmd nettest -s -D -I ${VRF} -3 ${NSA_DEV} &
1684 run_cmd nettest -D -d ${NSA_DEV} -r ${a}
1688 run_cmd nettest -s -D -I ${NSA_DEV} -3 ${NSA_DEV} &
1690 run_cmd nettest -D -d ${VRF} -r ${a}
1694 run_cmd nettest -s -D -I ${NSA_DEV} -3 ${NSA_DEV} &
1696 run_cmd nettest -D -d ${NSA_DEV} -r ${a}
1702 run_cmd nettest -D -s -3 ${VRF} &
1704 run_cmd nettest -D -d ${VRF} -r ${a}
1711 run_cmd nettest -s -D -I ${VRF} -3 ${VRF} &
1713 run_cmd nettest -D -d ${VRF} -r ${a}
1717 # negative test - should fail
1723 run_cmd nettest -D -d ${VRF} -r ${a}
1724 log_test_addr ${a} $? 1 "No server, VRF client, local conn"
1731 log_subsection "No VRF"
1735 # udp_l3mdev_accept should have no affect without VRF;
1762 run_cmd nettest -s -R -P icmp -l ${a} -b
1766 run_cmd nettest -s -R -P icmp -l ${a} -I ${NSA_DEV} -b
1775 run_cmd nettest -c ${a} -r ${NSB_IP} -t1 -b
1779 run_cmd nettest -c ${a} -r ${NSB_IP} -d ${NSA_DEV} -t1 -b
1784 # is that the address is valid in the L3 domain. So this test
1789 #run_cmd nettest -s -l ${a} -I ${NSA_DEV} -t1 -b
1801 run_cmd nettest -s -R -P icmp -l ${a} -b
1805 run_cmd nettest -s -R -P icmp -l ${a} -I ${NSA_DEV} -b
1808 run_cmd nettest -s -R -P icmp -l ${a} -I ${VRF} -b
1814 show_hint "Address on loopback is out of VRF scope"
1815 run_cmd nettest -s -R -P icmp -l ${a} -I ${VRF} -b
1824 run_cmd nettest -s -l ${a} -I ${VRF} -t1 -b
1828 run_cmd nettest -s -l ${a} -I ${NSA_DEV} -t1 -b
1834 show_hint "Address on loopback out of scope for VRF"
1835 run_cmd nettest -s -l ${a} -I ${VRF} -t1 -b
1839 show_hint "Address on loopback out of scope for device in VRF"
1840 run_cmd nettest -s -l ${a} -I ${NSA_DEV} -t1 -b
1848 log_subsection "No VRF"
1873 run_cmd nettest ${varg} -s &
1875 run_cmd_nsb nettest ${varg} -r ${a} &
1887 run_cmd nettest ${varg} -s -I ${VRF} &
1889 run_cmd_nsb nettest ${varg} -r ${a} &
1900 run_cmd nettest ${varg} -s -I ${NSA_DEV} &
1902 run_cmd_nsb nettest ${varg} -r ${a} &
1911 # client test
1914 run_cmd_nsb nettest ${varg} -s &
1916 run_cmd nettest ${varg} -d ${VRF} -r ${NSB_IP} &
1925 run_cmd_nsb nettest ${varg} -s &
1927 run_cmd nettest ${varg} -d ${NSA_DEV} -r ${NSB_IP} &
1941 run_cmd nettest ${varg} -s &
1943 run_cmd nettest ${varg} -d ${VRF} -r ${a} &
1955 run_cmd nettest ${varg} -I ${VRF} -s &
1957 run_cmd nettest ${varg} -d ${VRF} -r ${a} &
1968 run_cmd nettest ${varg} -s &
1970 run_cmd nettest ${varg} -d ${NSA_DEV} -r ${a} &
1979 run_cmd nettest ${varg} -I ${VRF} -s &
1981 run_cmd nettest ${varg} -d ${NSA_DEV} -r ${a} &
1990 run_cmd nettest ${varg} -I ${NSA_DEV} -s &
1992 run_cmd nettest ${varg} -d ${NSA_DEV} -r ${a} &
2007 run_cmd_nsb ping -f ${a} &
2011 log_test_addr ${a} 0 0 "Device delete with active traffic - ping in"
2018 run_cmd ping -f -I ${VRF} ${a} &
2022 log_test_addr ${a} 0 0 "Device delete with active traffic - ping out"
2027 log_section "Run time tests - ipv4"
2033 ipv4_rt "TCP active socket" "-n -1"
2036 ipv4_rt "TCP passive socket" "-i"
2055 run_cmd ${ping6} -c1 -w1 ${a}
2062 run_cmd ${ping6} -c1 -w1 -I ${NSA_DEV} ${a}
2066 run_cmd ${ping6} -c1 -w1 -I ${NSA_LO_IP6} ${a}
2067 log_test_addr ${a} $? 0 "ping out, loopback address bind"
2076 run_cmd_nsb ${ping6} -c1 -w1 ${a}
2086 run_cmd ${ping6} -c1 -w1 ${a}
2087 log_test_addr ${a} $? 0 "ping local, no bind"
2093 run_cmd ${ping6} -c1 -w1 -I ${NSA_DEV} ${a}
2100 show_hint "Fails since address on loopback is out of device scope"
2101 run_cmd ${ping6} -c1 -w1 -I ${NSA_DEV} ${a}
2109 setup_cmd ip -6 rule add pref 32765 from all lookup local
2110 setup_cmd ip -6 rule del pref 0 from all lookup local
2111 setup_cmd ip -6 rule add pref 50 to ${NSB_LO_IP6} prohibit
2112 setup_cmd ip -6 rule add pref 51 from ${NSB_IP6} prohibit
2115 run_cmd ${ping6} -c1 -w1 ${a}
2119 run_cmd ${ping6} -c1 -w1 -I ${NSA_DEV} ${a}
2125 run_cmd_nsb ${ping6} -c1 -w1 ${a}
2128 setup_cmd ip -6 rule add pref 0 from all lookup local
2129 setup_cmd ip -6 rule del pref 32765 from all lookup local
2130 setup_cmd ip -6 rule del pref 50 to ${NSB_LO_IP6} prohibit
2131 setup_cmd ip -6 rule del pref 51 from ${NSB_IP6} prohibit
2137 setup_cmd ip -6 route del ${NSB_LO_IP6}
2138 setup_cmd ip -6 route add unreachable ${NSB_LO_IP6} metric 10
2139 setup_cmd ip -6 route add unreachable ${NSB_IP6} metric 10
2142 run_cmd ${ping6} -c1 -w1 ${a}
2146 run_cmd ${ping6} -c1 -w1 -I ${NSA_DEV} ${a}
2152 run_cmd_nsb ${ping6} -c1 -w1 ${a}
2160 setup_cmd ip -6 ro del unreachable ${NSB_LO_IP6}
2161 setup_cmd ip -6 ro del unreachable ${NSB_IP6}
2164 run_cmd ${ping6} -c1 -w1 ${a}
2168 run_cmd ${ping6} -c1 -w1 -I ${NSA_DEV} ${a}
2185 run_cmd ${ping6} -c1 -w1 -I ${VRF} ${a}
2193 run_cmd ${ping6} -c1 -w1 ${a}
2200 run_cmd ${ping6} -c1 -w1 -I ${NSA_DEV} ${a}
2207 run_cmd ip vrf exec ${VRF} ${ping6} -c1 -w1 -I ${VRF_IP6} ${a}
2217 run_cmd_nsb ${ping6} -c1 -w1 ${a}
2223 show_hint "Fails since loopback address is out of VRF scope"
2224 run_cmd_nsb ${ping6} -c1 -w1 ${a}
2234 run_cmd ${ping6} -c1 -w1 -I ${VRF} ${a}
2241 run_cmd ${ping6} -c1 -w1 -I ${NSA_DEV} ${a}
2245 # LLA to GUA - remove ipv6 global addresses from ns-B
2246 setup_cmd_nsb ip -6 addr del ${NSB_IP6}/64 dev ${NSB_DEV}
2247 setup_cmd_nsb ip -6 addr del ${NSB_LO_IP6}/128 dev lo
2248 setup_cmd_nsb ip -6 ro add ${NSA_IP6}/128 via ${NSA_LINKIP6} dev ${NSB_DEV}
2253 run_cmd_nsb ${ping6} -c1 -w1 ${NSA_IP6}
2257 setup_cmd_nsb ip -6 ro del ${NSA_IP6}/128 via ${NSA_LINKIP6} dev ${NSB_DEV}
2258 setup_cmd_nsb ip -6 addr add ${NSB_IP6}/64 dev ${NSB_DEV}
2259 setup_cmd_nsb ip -6 addr add ${NSB_LO_IP6}/128 dev lo
2265 setup_cmd ip -6 rule add pref 50 to ${NSB_LO_IP6} prohibit
2266 setup_cmd ip -6 rule add pref 51 from ${NSB_IP6} prohibit
2269 run_cmd ${ping6} -c1 -w1 ${a}
2273 run_cmd ${ping6} -c1 -w1 -I ${NSA_DEV} ${a}
2279 run_cmd_nsb ${ping6} -c1 -w1 ${a}
2283 setup_cmd ip -6 rule del pref 50 to ${NSB_LO_IP6} prohibit
2284 setup_cmd ip -6 rule del pref 51 from ${NSB_IP6} prohibit
2290 setup_cmd ip -6 ro del ${NSB_LO_IP6} vrf ${VRF}
2293 run_cmd ${ping6} -c1 -w1 ${a}
2297 run_cmd ${ping6} -c1 -w1 -I ${NSA_DEV} ${a}
2300 ip -netns ${NSB} -6 ro del ${NSA_LO_IP6}
2303 run_cmd_nsb ${ping6} -c1 -w1 ${a}
2311 log_subsection "No VRF"
2334 run_cmd nettest -6 -s -M ${MD5_PW} -m ${NSB_IP6} &
2336 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_PW}
2342 run_cmd nettest -6 -s &
2344 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_PW}
2345 log_test $? 2 "MD5: Server no config, client uses password"
2350 run_cmd nettest -6 -s -M ${MD5_PW} -m ${NSB_IP6} &
2352 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_WRONG_PW}
2358 run_cmd nettest -6 -s -M ${MD5_PW} -m ${NSB_LO_IP6} &
2360 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_PW}
2364 # MD5 extension - prefix length
2369 run_cmd nettest -6 -s -M ${MD5_PW} -m ${NS_NET6} &
2371 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_PW}
2377 run_cmd nettest -6 -s -M ${MD5_PW} -m ${NS_NET6} &
2379 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_WRONG_PW}
2385 run_cmd nettest -6 -s -M ${MD5_PW} -m ${NS_NET6} &
2387 run_cmd_nsb nettest -6 -c ${NSB_LO_IP6} -r ${NSA_IP6} -X ${MD5_PW}
2402 run_cmd nettest -6 -s -I ${VRF} -M ${MD5_PW} -m ${NSB_IP6} &
2404 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_PW}
2410 run_cmd nettest -6 -s -I ${VRF} &
2412 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_PW}
2413 log_test $? 2 "MD5: VRF: Server no config, client uses password"
2418 run_cmd nettest -6 -s -I ${VRF} -M ${MD5_PW} -m ${NSB_IP6} &
2420 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_WRONG_PW}
2426 run_cmd nettest -6 -s -I ${VRF} -M ${MD5_PW} -m ${NSB_LO_IP6} &
2428 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_PW}
2432 # MD5 extension - prefix length
2437 run_cmd nettest -6 -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET6} &
2439 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_PW}
2445 run_cmd nettest -6 -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET6} &
2447 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_WRONG_PW}
2453 run_cmd nettest -6 -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET6} &
2455 run_cmd_nsb nettest -6 -c ${NSB_LO_IP6} -r ${NSA_IP6} -X ${MD5_PW}
2463 run_cmd nettest -6 -s -I ${VRF} -M ${MD5_PW} -m ${NSB_IP6} &
2464 run_cmd nettest -6 -s -M ${MD5_WRONG_PW} -m ${NSB_IP6} &
2466 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_PW}
2470 run_cmd nettest -6 -s -I ${VRF} -M ${MD5_PW} -m ${NSB_IP6} &
2471 run_cmd nettest -6 -s -M ${MD5_WRONG_PW} -m ${NSB_IP6} &
2473 run_cmd_nsc nettest -6 -r ${NSA_IP6} -X ${MD5_WRONG_PW}
2478 run_cmd nettest -6 -s -I ${VRF} -M ${MD5_PW} -m ${NSB_IP6} &
2479 run_cmd nettest -6 -s -M ${MD5_WRONG_PW} -m ${NSB_IP6} &
2481 run_cmd_nsc nettest -6 -r ${NSA_IP6} -X ${MD5_PW}
2486 run_cmd nettest -6 -s -I ${VRF} -M ${MD5_PW} -m ${NSB_IP6} &
2487 run_cmd nettest -6 -s -M ${MD5_WRONG_PW} -m ${NSB_IP6} &
2489 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_WRONG_PW}
2493 run_cmd nettest -6 -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET6} &
2494 run_cmd nettest -6 -s -M ${MD5_WRONG_PW} -m ${NS_NET6} &
2496 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_PW}
2500 run_cmd nettest -6 -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET6} &
2501 run_cmd nettest -6 -s -M ${MD5_WRONG_PW} -m ${NS_NET6} &
2503 run_cmd_nsc nettest -6 -r ${NSA_IP6} -X ${MD5_WRONG_PW}
2508 run_cmd nettest -6 -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET6} &
2509 run_cmd nettest -6 -s -M ${MD5_WRONG_PW} -m ${NS_NET6} &
2511 run_cmd_nsc nettest -6 -r ${NSA_IP6} -X ${MD5_PW}
2516 run_cmd nettest -6 -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET6} &
2517 run_cmd nettest -6 -s -M ${MD5_WRONG_PW} -m ${NS_NET6} &
2519 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_WRONG_PW}
2526 run_cmd nettest -6 -s -I ${NSA_DEV} -M ${MD5_PW} -m ${NSB_IP6}
2527 log_test $? 1 "MD5: VRF: Device must be a VRF - single address"
2530 run_cmd nettest -6 -s -I ${NSA_DEV} -M ${MD5_PW} -m ${NS_NET6}
2531 log_test $? 1 "MD5: VRF: Device must be a VRF - prefix"
2545 run_cmd nettest -6 -s &
2547 run_cmd_nsb nettest -6 -r ${a}
2556 run_cmd_nsb nettest -6 -r ${a}
2557 log_test_addr ${a} $? 1 "No server"
2566 run_cmd_nsb nettest -6 -s &
2568 run_cmd nettest -6 -r ${a}
2575 run_cmd_nsb nettest -6 -s &
2577 run_cmd nettest -6 -r ${a} -d ${NSA_DEV}
2585 run_cmd nettest -6 -r ${a} -d ${NSA_DEV}
2586 log_test_addr ${a} $? 1 "No server, device client"
2595 run_cmd nettest -6 -s &
2597 run_cmd nettest -6 -r ${a}
2603 run_cmd nettest -6 -s -I ${NSA_DEV} -3 ${NSA_DEV} &
2605 run_cmd nettest -6 -r ${a} -0 ${a}
2611 show_hint "Should fail 'Connection refused' since addresses on loopback are out of device scope"
2612 run_cmd nettest -6 -s -I ${NSA_DEV} &
2614 run_cmd nettest -6 -r ${a}
2620 run_cmd nettest -6 -s &
2622 run_cmd nettest -6 -r ${a} -d ${NSA_DEV} -0 ${a}
2628 show_hint "Should fail 'Connection refused' since addresses on loopback are out of device scope"
2629 run_cmd nettest -6 -s &
2631 run_cmd nettest -6 -r ${a} -d ${NSA_DEV}
2638 run_cmd nettest -6 -s -I ${NSA_DEV} -3 ${NSA_DEV} &
2640 run_cmd nettest -6 -d ${NSA_DEV} -r ${a}
2648 run_cmd nettest -6 -d ${NSA_DEV} -r ${a}
2649 log_test_addr ${a} $? 1 "No server, device client, local conn"
2671 run_cmd nettest -6 -s &
2673 run_cmd_nsb nettest -6 -r ${a}
2680 run_cmd nettest -6 -s -I ${VRF} -3 ${VRF} &
2682 run_cmd_nsb nettest -6 -r ${a}
2689 run_cmd nettest -6 -s -I ${VRF} -3 ${NSA_DEV} &
2691 run_cmd_nsb nettest -6 -r ${a}
2697 run_cmd nettest -6 -s -I ${NSA_DEV} -3 ${NSA_DEV} &
2699 run_cmd_nsb nettest -6 -r ${a}
2708 run_cmd_nsb nettest -6 -r ${a}
2709 log_test_addr ${a} $? 1 "No server"
2716 run_cmd nettest -6 -s &
2718 run_cmd nettest -6 -r ${a} -d ${NSA_DEV}
2733 run_cmd nettest -6 -s -3 ${VRF} &
2735 run_cmd_nsb nettest -6 -r ${a}
2742 run_cmd nettest -6 -s -I ${VRF} -3 ${VRF} &
2744 run_cmd_nsb nettest -6 -r ${a}
2751 run_cmd nettest -6 -s -3 ${NSA_DEV} &
2753 run_cmd_nsb nettest -6 -r ${a}
2757 run_cmd nettest -6 -s -I ${VRF} -3 ${NSA_DEV} &
2759 run_cmd_nsb nettest -6 -r ${a}
2765 run_cmd nettest -6 -s -I ${NSA_DEV} -3 ${NSA_DEV} &
2767 run_cmd_nsb nettest -6 -r ${a}
2776 run_cmd_nsb nettest -6 -r ${a}
2777 log_test_addr ${a} $? 1 "No server"
2785 run_cmd nettest -6 -s -I ${VRF} &
2787 run_cmd nettest -6 -r ${a}
2798 run_cmd_nsb nettest -6 -s &
2800 run_cmd nettest -6 -r ${a} -d ${VRF}
2807 run_cmd_nsb nettest -6 -s &
2809 run_cmd nettest -6 -r ${a} -d ${VRF}
2815 run_cmd_nsb nettest -6 -s &
2817 run_cmd nettest -6 -r ${a} -d ${NSA_DEV}
2825 run_cmd nettest -6 -r ${a} -d ${VRF}
2826 log_test_addr ${a} $? 1 "No server, VRF client"
2833 run_cmd nettest -6 -r ${a} -d ${NSA_DEV}
2834 log_test_addr ${a} $? 1 "No server, device client"
2840 run_cmd nettest -6 -s -I ${VRF} -3 ${VRF} &
2842 run_cmd nettest -6 -r ${a} -d ${VRF} -0 ${a}
2848 run_cmd nettest -6 -s -I ${VRF} -3 ${VRF} &
2850 run_cmd nettest -6 -r ${a} -d ${NSA_DEV} -0 ${a}
2856 run_cmd nettest -6 -s -I ${VRF} &
2858 run_cmd nettest -6 -r ${a}
2862 run_cmd nettest -6 -s -I ${NSA_DEV} -3 ${NSA_DEV} &
2864 run_cmd nettest -6 -r ${a} -d ${VRF} -0 ${a}
2870 run_cmd nettest -6 -s -I ${NSA_DEV} -3 ${NSA_DEV} &
2872 run_cmd nettest -6 -r ${a} -d ${NSA_DEV} -0 ${a}
2880 log_subsection "No VRF"
2883 # tcp_l3mdev_accept should have no affect without VRF;
2910 run_cmd nettest -6 -D -s -3 ${NSA_DEV} &
2912 run_cmd_nsb nettest -6 -D -r ${a}
2916 run_cmd nettest -6 -D -I ${NSA_DEV} -s -3 ${NSA_DEV} &
2918 run_cmd_nsb nettest -6 -D -r ${a}
2924 run_cmd nettest -6 -D -s -3 ${NSA_DEV} &
2926 run_cmd_nsb nettest -6 -D -r ${a}
2929 # should fail since loopback address is out of scope for a device
2930 # bound server, but it does not - hence this is more documenting
2933 #show_hint "Should fail since loopback address is out of scope"
2934 #run_cmd nettest -6 -D -I ${NSA_DEV} -s -3 ${NSA_DEV} &
2936 #run_cmd_nsb nettest -6 -D -r ${a}
2939 # negative test - should fail
2943 show_hint "Should fail 'Connection refused' since there is no server"
2944 run_cmd_nsb nettest -6 -D -r ${a}
2945 log_test_addr ${a} $? 1 "No server"
2954 run_cmd_nsb nettest -6 -D -s &
2956 run_cmd nettest -6 -D -r ${a} -0 ${NSA_IP6}
2960 run_cmd_nsb nettest -6 -D -s &
2962 run_cmd nettest -6 -D -r ${a} -d ${NSA_DEV} -0 ${NSA_IP6}
2966 run_cmd_nsb nettest -6 -D -s &
2968 run_cmd nettest -6 -D -r ${a} -d ${NSA_DEV} -C -0 ${NSA_IP6}
2972 run_cmd_nsb nettest -6 -D -s &
2974 run_cmd nettest -6 -D -r ${a} -d ${NSA_DEV} -S -0 ${NSA_IP6}
2979 run_cmd nettest -6 -D -r ${a}
2980 log_test_addr ${a} $? 1 "No server, unbound client"
2984 run_cmd nettest -6 -D -r ${a} -d ${NSA_DEV}
2985 log_test_addr ${a} $? 1 "No server, device client"
2994 run_cmd nettest -6 -D -s &
2996 run_cmd nettest -6 -D -r ${a} -0 ${a} -1 ${a}
3002 run_cmd nettest -6 -s -D -I ${NSA_DEV} -3 ${NSA_DEV} &
3004 run_cmd nettest -6 -D -r ${a}
3011 run_cmd nettest -6 -s -D -I ${NSA_DEV} &
3013 run_cmd nettest -6 -D -r ${a}
3019 run_cmd nettest -6 -s -D &
3021 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${a}
3025 run_cmd nettest -6 -s -D &
3027 run_cmd nettest -6 -D -d ${NSA_DEV} -C -r ${a}
3031 run_cmd nettest -6 -s -D &
3033 run_cmd nettest -6 -D -d ${NSA_DEV} -S -r ${a}
3039 show_hint "Should fail 'No route to host' since addresses on loopback are out of device scope"
3040 run_cmd nettest -6 -D -s &
3042 run_cmd nettest -6 -D -r ${a} -d ${NSA_DEV}
3046 show_hint "Should fail 'No route to host' since addresses on loopback are out of device scope"
3047 run_cmd nettest -6 -D -s &
3049 run_cmd nettest -6 -D -r ${a} -d ${NSA_DEV} -C
3053 show_hint "Should fail 'No route to host' since addresses on loopback are out of device scope"
3054 run_cmd nettest -6 -D -s &
3056 run_cmd nettest -6 -D -r ${a} -d ${NSA_DEV} -S
3062 run_cmd nettest -6 -D -s -I ${NSA_DEV} -3 ${NSA_DEV} &
3064 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${a} -0 ${a}
3069 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${a}
3070 log_test_addr ${a} $? 1 "No server, device client, local conn"
3073 run_cmd_nsb ip -6 addr del ${NSB_IP6}/64 dev ${NSB_DEV}
3074 run_cmd_nsb ip -6 ro add ${NSA_IP6}/128 dev ${NSB_DEV}
3076 run_cmd nettest -6 -s -D &
3078 run_cmd_nsb nettest -6 -D -r ${NSA_IP6}
3079 log_test $? 0 "UDP in - LLA to GUA"
3081 run_cmd_nsb ip -6 ro del ${NSA_IP6}/128 dev ${NSB_DEV}
3082 run_cmd_nsb ip -6 addr add ${NSB_IP6}/64 dev ${NSB_DEV} nodad
3100 run_cmd nettest -6 -D -s &
3102 run_cmd_nsb nettest -6 -D -r ${a}
3109 run_cmd nettest -6 -D -I ${VRF} -s -3 ${NSA_DEV} &
3111 run_cmd_nsb nettest -6 -D -r ${a}
3118 run_cmd nettest -6 -D -I ${NSA_DEV} -s -3 ${NSA_DEV} &
3120 run_cmd_nsb nettest -6 -D -r ${a}
3124 # negative test - should fail
3128 show_hint "Should fail 'Connection refused' since there is no server"
3129 run_cmd_nsb nettest -6 -D -r ${a}
3130 log_test_addr ${a} $? 1 "No server"
3140 run_cmd nettest -6 -D -s &
3142 run_cmd nettest -6 -D -d ${VRF} -r ${a}
3149 run_cmd nettest -6 -D -I ${VRF} -s &
3151 run_cmd nettest -6 -D -d ${VRF} -r ${a}
3158 run_cmd nettest -6 -D -s &
3160 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${a}
3164 run_cmd nettest -6 -D -I ${VRF} -s -3 ${NSA_DEV} &
3166 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${a}
3170 run_cmd nettest -6 -D -I ${NSA_DEV} -s -3 ${NSA_DEV} &
3172 run_cmd nettest -6 -D -d ${VRF} -r ${a}
3176 run_cmd nettest -6 -D -I ${NSA_DEV} -s -3 ${NSA_DEV} &
3178 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${a}
3191 run_cmd nettest -6 -D -s -3 ${NSA_DEV} &
3193 run_cmd_nsb nettest -6 -D -r ${a}
3200 run_cmd nettest -6 -D -I ${VRF} -s -3 ${NSA_DEV} &
3202 run_cmd_nsb nettest -6 -D -r ${a}
3209 run_cmd nettest -6 -D -I ${NSA_DEV} -s -3 ${NSA_DEV} &
3211 run_cmd_nsb nettest -6 -D -r ${a}
3215 # negative test - should fail
3219 run_cmd_nsb nettest -6 -D -r ${a}
3220 log_test_addr ${a} $? 1 "No server"
3227 run_cmd_nsb nettest -6 -D -s &
3229 run_cmd nettest -6 -D -d ${VRF} -r ${NSB_IP6}
3232 # negative test - should fail
3234 run_cmd nettest -6 -D -d ${VRF} -r ${NSB_IP6}
3235 log_test $? 1 "No server, VRF client"
3238 run_cmd_nsb nettest -6 -D -s &
3240 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${NSB_IP6}
3243 # negative test - should fail
3245 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${NSB_IP6}
3246 log_test $? 1 "No server, enslaved device client"
3253 run_cmd nettest -6 -D -s -3 ${NSA_DEV} &
3255 run_cmd nettest -6 -D -d ${VRF} -r ${a}
3259 run_cmd nettest -6 -D -I ${VRF} -s -3 ${NSA_DEV} &
3261 run_cmd nettest -6 -D -d ${VRF} -r ${a}
3267 run_cmd nettest -6 -D -s -3 ${VRF} &
3269 run_cmd nettest -6 -D -d ${VRF} -r ${a}
3273 run_cmd nettest -6 -D -I ${VRF} -s -3 ${VRF} &
3275 run_cmd nettest -6 -D -d ${VRF} -r ${a}
3278 # negative test - should fail
3282 run_cmd nettest -6 -D -d ${VRF} -r ${a}
3283 log_test_addr ${a} $? 1 "No server, VRF client, local conn"
3289 run_cmd nettest -6 -D -s -3 ${NSA_DEV} &
3291 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${a}
3295 run_cmd nettest -6 -D -I ${VRF} -s -3 ${NSA_DEV} &
3297 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${a}
3301 run_cmd nettest -6 -D -I ${NSA_DEV} -s -3 ${NSA_DEV} &
3303 run_cmd nettest -6 -D -d ${VRF} -r ${a}
3307 run_cmd nettest -6 -D -I ${NSA_DEV} -s -3 ${NSA_DEV} &
3309 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${a}
3313 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${a}
3314 log_test_addr ${a} $? 1 "No server, device client, local conn"
3319 run_cmd nettest -6 -D -s &
3321 run_cmd_nsb nettest -6 -D -d ${NSB_DEV} -r ${NSA_LINKIP6}
3325 run_cmd_nsb nettest -6 -D -d ${NSB_DEV} -r ${NSA_LINKIP6}
3326 log_test $? 1 "No server, linklocal IP"
3330 run_cmd_nsb nettest -6 -D -s &
3332 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${NSB_LINKIP6}
3336 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${NSB_LINKIP6}
3337 log_test $? 1 "No server, device client, peer linklocal IP"
3341 run_cmd nettest -6 -D -s &
3343 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${NSA_LINKIP6}
3344 log_test $? 0 "Enslaved device client, local conn - linklocal IP"
3347 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${NSA_LINKIP6}
3348 log_test $? 1 "No server, device client, local conn - linklocal IP"
3351 run_cmd_nsb ip -6 addr del ${NSB_IP6}/64 dev ${NSB_DEV}
3352 run_cmd_nsb ip -6 ro add ${NSA_IP6}/128 dev ${NSB_DEV}
3354 run_cmd nettest -6 -s -D &
3356 run_cmd_nsb nettest -6 -D -r ${NSA_IP6}
3357 log_test $? 0 "UDP in - LLA to GUA"
3359 run_cmd_nsb ip -6 ro del ${NSA_IP6}/128 dev ${NSB_DEV}
3360 run_cmd_nsb ip -6 addr add ${NSB_IP6}/64 dev ${NSB_DEV} nodad
3369 log_subsection "No VRF"
3372 # udp_l3mdev_accept should have no affect without VRF;
3397 run_cmd nettest -6 -s -R -P ipv6-icmp -l ${a} -b
3401 run_cmd nettest -6 -s -R -P ipv6-icmp -l ${a} -I ${NSA_DEV} -b
3410 run_cmd nettest -6 -s -l ${a} -t1 -b
3414 run_cmd nettest -6 -s -l ${a} -I ${NSA_DEV} -t1 -b
3420 run_cmd nettest -6 -s -l ${a} -I ${NSA_DEV} -t1 -b
3432 run_cmd nettest -6 -s -R -P ipv6-icmp -l ${a} -I ${VRF} -b
3436 run_cmd nettest -6 -s -R -P ipv6-icmp -l ${a} -I ${NSA_DEV} -b
3442 show_hint "Address on loopback is out of VRF scope"
3443 run_cmd nettest -6 -s -R -P ipv6-icmp -l ${a} -I ${VRF} -b
3453 run_cmd nettest -6 -s -l ${a} -I ${VRF} -t1 -b
3459 run_cmd nettest -6 -s -l ${a} -I ${NSA_DEV} -t1 -b
3464 run_cmd nettest -6 -s -l ${a} -I ${NSA_DEV} -t1 -b
3469 show_hint "Address on loopback out of scope for VRF"
3470 run_cmd nettest -6 -s -l ${a} -I ${VRF} -t1 -b
3474 show_hint "Address on loopback out of scope for device in VRF"
3475 run_cmd nettest -6 -s -l ${a} -I ${NSA_DEV} -t1 -b
3484 log_subsection "No VRF"
3499 local varg="-6 $2"
3509 run_cmd nettest ${varg} -s &
3511 run_cmd_nsb nettest ${varg} -r ${a} &
3523 run_cmd nettest ${varg} -I ${VRF} -s &
3525 run_cmd_nsb nettest ${varg} -r ${a} &
3537 run_cmd nettest ${varg} -I ${NSA_DEV} -s &
3539 run_cmd_nsb nettest ${varg} -r ${a} &
3549 # client test
3552 run_cmd_nsb nettest ${varg} -s &
3554 run_cmd nettest ${varg} -d ${VRF} -r ${NSB_IP6} &
3563 run_cmd_nsb nettest ${varg} -s &
3565 run_cmd nettest ${varg} -d ${NSA_DEV} -r ${NSB_IP6} &
3580 run_cmd nettest ${varg} -s &
3582 run_cmd nettest ${varg} -d ${VRF} -r ${a} &
3594 run_cmd nettest ${varg} -I ${VRF} -s &
3596 run_cmd nettest ${varg} -d ${VRF} -r ${a} &
3607 run_cmd nettest ${varg} -s &
3609 run_cmd nettest ${varg} -d ${NSA_DEV} -r ${a} &
3618 run_cmd nettest ${varg} -I ${VRF} -s &
3620 run_cmd nettest ${varg} -d ${NSA_DEV} -r ${a} &
3629 run_cmd nettest ${varg} -I ${NSA_DEV} -s &
3631 run_cmd nettest ${varg} -d ${NSA_DEV} -r ${a} &
3645 run_cmd_nsb ${ping6} -f ${a} &
3649 log_test_addr ${a} 0 0 "Device delete with active traffic - ping in"
3654 run_cmd ${ping6} -f ${NSB_IP6} -I ${VRF} &
3658 log_test_addr ${a} 0 0 "Device delete with active traffic - ping out"
3663 log_section "Run time tests - ipv6"
3669 ipv6_rt "TCP active socket" "-n -1"
3672 ipv6_rt "TCP passive socket" "-i"
3675 ipv6_rt "UDP active socket" "-D -n -1"
3688 run_cmd nettest -s &
3690 run_cmd_nsb nettest -r ${a}
3691 log_test_addr ${a} $? 1 "Global server, reject with TCP-reset on Rx"
3701 [ "${stype}" = "UDP" ] && arg="-D"
3706 run_cmd nettest ${arg} -s &
3708 run_cmd_nsb nettest ${arg} -r ${a}
3709 log_test_addr ${a} $? 1 "Global ${stype} server, Rx reject icmp-port-unreach"
3719 run_cmd iptables -A INPUT -p tcp --dport 12345 -j REJECT --reject-with tcp-reset
3727 run_cmd iptables -F
3728 run_cmd iptables -A INPUT -p tcp --dport 12345 -j REJECT --reject-with icmp-port-unreachable
3729 run_cmd iptables -A INPUT -p udp --dport 12345 -j REJECT --reject-with icmp-port-unreachable
3735 iptables -F
3745 run_cmd nettest -6 -s &
3747 run_cmd_nsb nettest -6 -r ${a}
3748 log_test_addr ${a} $? 1 "Global server, reject with TCP-reset on Rx"
3758 [ "${stype}" = "UDP" ] && arg="$arg -D"
3763 run_cmd nettest -6 -s ${arg} &
3765 run_cmd_nsb nettest -6 ${arg} -r ${a}
3766 log_test_addr ${a} $? 1 "Global ${stype} server, Rx reject icmp-port-unreach"
3776 run_cmd ip6tables -A INPUT -p tcp --dport 12345 -j REJECT --reject-with tcp-reset
3783 run_cmd ip6tables -F
3784 run_cmd ip6tables -A INPUT -p tcp --dport 12345 -j REJECT --reject-with icmp6-port-unreachable
3785 run_cmd ip6tables -A INPUT -p udp --dport 12345 -j REJECT --reject-with icmp6-port-unreachable
3791 ip6tables -F
3798 # ns-A device enslaved to bridge. Verify traffic with and without
3806 setup_cmd ip -6 addr del dev ${NSA_DEV} ${NSA_IP6}/64
3810 setup_cmd ip -6 addr add dev br0 ${NSA_IP6}/64 nodad
3821 run_cmd ping -c1 -w1 -I br0 ${NSB_IP}
3822 log_test $? 0 "Bridge into VRF - IPv4 ping out"
3825 run_cmd ${ping6} -c1 -w1 -I br0 ${NSB_IP6}
3826 log_test $? 0 "Bridge into VRF - IPv6 ping out"
3829 run_cmd_nsb ping -c1 -w1 ${NSA_IP}
3830 log_test $? 0 "Bridge into VRF - IPv4 ping in"
3833 run_cmd_nsb ${ping6} -c1 -w1 ${NSA_IP6}
3834 log_test $? 0 "Bridge into VRF - IPv6 ping in"
3837 if [ $? -eq 0 ]; then
3839 run_cmd ping -c1 -w1 -I br0 ${NSB_IP}
3840 log_test $? 0 "Bridge into VRF with br_netfilter - IPv4 ping out"
3843 run_cmd ${ping6} -c1 -w1 -I br0 ${NSB_IP6}
3844 log_test $? 0 "Bridge into VRF with br_netfilter - IPv6 ping out"
3847 run_cmd_nsb ping -c1 -w1 ${NSA_IP}
3848 log_test $? 0 "Bridge into VRF with br_netfilter - IPv4 ping in"
3851 run_cmd_nsb ${ping6} -c1 -w1 ${NSA_IP6}
3852 log_test $? 0 "Bridge into VRF with br_netfilter - IPv6 ping in"
3859 setup_cmd ip -6 addr add dev br0.100 2001:db8:101::1/64 nodad
3863 setup_cmd_nsb ip -6 addr add dev vlan100 2001:db8:101::2/64 nodad
3870 run_cmd ping -c1 -w1 -I br0.100 172.16.101.2
3871 log_test $? 0 "Bridge vlan into VRF - IPv4 ping out"
3874 run_cmd ${ping6} -c1 -w1 -I br0.100 2001:db8:101::2
3875 log_test $? 0 "Bridge vlan into VRF - IPv6 ping out"
3878 run_cmd_nsb ping -c1 -w1 172.16.101.1
3879 log_test $? 0 "Bridge vlan into VRF - IPv4 ping in"
3882 run_cmd_nsb ${ping6} -c1 -w1 2001:db8:101::1
3883 log_test $? 0 "Bridge vlan into VRF - IPv6 ping in"
3886 if [ $? -eq 0 ]; then
3888 run_cmd ping -c1 -w1 -I br0.100 172.16.101.2
3889 log_test $? 0 "Bridge vlan into VRF with br_netfilter - IPv4 ping out"
3892 run_cmd ${ping6} -c1 -w1 -I br0.100 2001:db8:101::2
3893 log_test $? 0 "Bridge vlan into VRF with br_netfilter - IPv6 ping out"
3896 run_cmd_nsb ping -c1 -w1 172.16.101.1
3897 log_test $? 0 "Bridge vlan into VRF - IPv4 ping in"
3900 run_cmd_nsb ${ping6} -c1 -w1 2001:db8:101::1
3901 log_test $? 0 "Bridge vlan into VRF - IPv6 ping in"
3909 # ns-A device is connected to both ns-B and ns-C on a single VRF but only has
3914 # only want reply from ns-A
3915 setup_cmd_nsb sysctl -qw net.ipv6.icmp.echo_ignore_multicast=1
3916 setup_cmd_nsc sysctl -qw net.ipv6.icmp.echo_ignore_multicast=1
3919 run_cmd_nsb ping -c1 -w1 ${MCAST}%${NSB_DEV}
3920 log_test_addr ${MCAST}%${NSB_DEV} $? 0 "Pre cycle, ping out ns-B"
3922 run_cmd_nsc ping -c1 -w1 ${MCAST}%${NSC_DEV}
3923 log_test_addr ${MCAST}%${NSC_DEV} $? 0 "Pre cycle, ping out ns-C"
3925 # cycle/flap the first ns-A interface
3931 run_cmd_nsb ping -c1 -w1 ${MCAST}%${NSB_DEV}
3932 log_test_addr ${MCAST}%${NSB_DEV} $? 0 "Post cycle ${NSA} ${NSA_DEV}, ping out ns-B"
3933 run_cmd_nsc ping -c1 -w1 ${MCAST}%${NSC_DEV}
3934 log_test_addr ${MCAST}%${NSC_DEV} $? 0 "Post cycle ${NSA} ${NSA_DEV}, ping out ns-C"
3936 # cycle/flap the second ns-A interface
3942 run_cmd_nsb ping -c1 -w1 ${MCAST}%${NSB_DEV}
3943 log_test_addr ${MCAST}%${NSB_DEV} $? 0 "Post cycle ${NSA} ${NSA_DEV2}, ping out ns-B"
3944 run_cmd_nsc ping -c1 -w1 ${MCAST}%${NSC_DEV}
3945 log_test_addr ${MCAST}%${NSC_DEV} $? 0 "Post cycle ${NSA} ${NSA_DEV2}, ping out ns-C"
3948 # Perform IPv{4,6} SNAT on ns-A, and verify TCP connection is successfully
3949 # established with ns-B.
3956 …run_cmd iptables -t nat -A POSTROUTING -p tcp -m tcp --dport ${port} -j SNAT --to-source ${NSA_LO_…
3957 …run_cmd ip6tables -t nat -A POSTROUTING -p tcp -m tcp --dport ${port} -j SNAT --to-source ${NSA_LO…
3959 run_cmd_nsb nettest -s -l ${NSB_IP} -p ${port} &
3961 run_cmd nettest -d ${VRF} -r ${NSB_IP} -p ${port}
3964 run_cmd_nsb nettest -6 -s -l ${NSB_IP6} -p ${port} &
3966 run_cmd nettest -6 -d ${VRF} -r ${NSB_IP6} -p ${port}
3970 …run_cmd iptables -t nat -D POSTROUTING -p tcp -m tcp --dport ${port} -j SNAT --to-source ${NSA_LO_…
3971 …run_cmd ip6tables -t nat -D POSTROUTING -p tcp -m tcp --dport ${port} -j SNAT --to-source ${NSA_LO…
3993 -4 IPv4 tests only
3994 -6 IPv6 tests only
3995 -t <test> Test name/set to run
3996 -p Pause on fail
3997 -P Pause after each test
3998 -v Be verbose
4009 PAUSE_ON_FAIL=no
4010 PAUSE=no
4027 [ "${PAUSE}" = "yes" ] && PAUSE_ON_FAIL=no
4030 # show user test config
4032 if [ -z "$TESTS" ]; then
4041 if [ $? -ne 0 ]; then
4046 declare -i nfail=0
4047 declare -i nsuccess=0
4072 help) echo "Test names: $TESTS"; exit 0;;