Lines Matching +full:- +full:a +full:-
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
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
67 # non-local addresses for freebind tests
86 if [ -f /proc/sys/crypto/fips_enabled ]; then
103 if [ ${rc} -eq ${expected} ]; then
105 printf "TEST: %-70s [ OK ]\n" "${msg}"
108 printf "TEST: %-70s [FAIL]\n" "${msg}"
112 read a
113 [ "$a" = "q" ] && exit 1
120 read a
121 [ "$a" = "q" ] && exit 1
136 log_test $rc $expected "$msg - ${astr}"
201 if [ "$VERBOSE" = "1" -a -n "$out" ]; then
230 if [ $rc -ne 0 ]; then
239 read a
252 if [ $rc -ne 0 ]; then
261 read a
274 if [ $rc -ne 0 ]; then
283 read a
289 # set sysctl values in NS-A
294 run_cmd sysctl -q -w $*
297 # get sysctl values in NS-A
300 ${NSA_CMD} sysctl -n $*
315 ${NSA_IP}) echo "ns-A IP";;
316 ${NSA_IP6}) echo "ns-A IPv6";;
317 ${NSA_LO_IP}) echo "ns-A loopback IP";;
318 ${NSA_LO_IP6}) echo "ns-A loopback IPv6";;
319 ${NSA_LINKIP6}|${NSA_LINKIP6}%*) echo "ns-A IPv6 LLA";;
321 ${NSB_IP}) echo "ns-B IP";;
322 ${NSB_IP6}) echo "ns-B IPv6";;
323 ${NSB_LO_IP}) echo "ns-B loopback IP";;
324 ${NSB_LO_IP6}) echo "ns-B loopback IPv6";;
325 ${NSB_LINKIP6}|${NSB_LINKIP6}%*) echo "ns-B IPv6 LLA";;
345 addr=$(ip -netns ${ns} -6 -br addr show dev ${dev} | \
355 [ -z "$addr" ] && return 1
373 ip -netns ${ns} link add ${vrf} type vrf table ${table}
374 ip -netns ${ns} link set ${vrf} up
375 ip -netns ${ns} route add vrf ${vrf} unreachable default metric 8192
376 ip -netns ${ns} -6 route add vrf ${vrf} unreachable default metric 8192
378 ip -netns ${ns} addr add 127.0.0.1/8 dev ${vrf}
379 ip -netns ${ns} -6 addr add ::1 dev ${vrf} nodad
380 if [ "${addr}" != "-" ]; then
381 ip -netns ${ns} addr add dev ${vrf} ${addr}
383 if [ "${addr6}" != "-" ]; then
384 ip -netns ${ns} -6 addr add dev ${vrf} ${addr6}
387 ip -netns ${ns} ru del pref 0
388 ip -netns ${ns} ru add pref 32765 from all lookup local
389 ip -netns ${ns} -6 ru del pref 0
390 ip -netns ${ns} -6 ru add pref 32765 from all lookup local
399 if [ "${addr}" != "-" ]; then
400 ip -netns ${ns} addr add dev lo ${addr}
402 if [ "${addr6}" != "-" ]; then
403 ip -netns ${ns} -6 addr add dev lo ${addr6}
406 ip -netns ${ns} ro add unreachable default metric 8192
407 ip -netns ${ns} -6 ro add unreachable default metric 8192
409 ip netns exec ${ns} sysctl -qw net.ipv4.ip_forward=1
410 ip netns exec ${ns} sysctl -qw net.ipv6.conf.all.keep_addr_on_down=1
411 ip netns exec ${ns} sysctl -qw net.ipv6.conf.all.forwarding=1
412 ip netns exec ${ns} sysctl -qw net.ipv6.conf.default.forwarding=1
427 ip -netns ${ns1} li add ${ns1_dev} type veth peer name tmp
428 ip -netns ${ns1} li set ${ns1_dev} up
429 ip -netns ${ns1} li set tmp netns ${ns2} name ${ns2_dev}
430 ip -netns ${ns2} li set ${ns2_dev} up
432 if [ "${ns1_addr}" != "-" ]; then
433 ip -netns ${ns1} addr add dev ${ns1_dev} ${ns1_addr}
434 ip -netns ${ns2} addr add dev ${ns2_dev} ${ns2_addr}
437 if [ "${ns1_addr6}" != "-" ]; then
438 ip -netns ${ns1} addr add dev ${ns1_dev} ${ns1_addr6}
439 ip -netns ${ns2} addr add dev ${ns2_dev} ${ns2_addr6}
446 ip netns | grep -q ${NSA}
447 if [ $? -eq 0 ]; then
448 ip -netns ${NSA} link delete ${VRF}
449 ip -netns ${NSA} ro flush table ${VRF_TABLE}
451 ip -netns ${NSA} addr flush dev ${NSA_DEV}
452 ip -netns ${NSA} -6 addr flush dev ${NSA_DEV}
453 ip -netns ${NSA} link set dev ${NSA_DEV} down
454 ip -netns ${NSA} link del dev ${NSA_DEV}
474 # some VRF tests use ns-C which has the same config as
475 # ns-B but for a device NOT in the VRF
478 create_ns ${NSC} "-" "-"
487 # make sure we are starting with a clean slate
492 set -e
506 # tell ns-A how to get to remote addresses of ns-B
510 ip -netns ${NSA} link set dev ${NSA_DEV} vrf ${VRF}
511 ip -netns ${NSA} ro add vrf ${VRF} ${NSB_LO_IP}/32 via ${NSB_IP} dev ${NSA_DEV}
512 ip -netns ${NSA} -6 ro add vrf ${VRF} ${NSB_LO_IP6}/128 via ${NSB_IP6} dev ${NSA_DEV}
514 ip -netns ${NSB} ro add ${VRF_IP}/32 via ${NSA_IP} dev ${NSB_DEV}
515 ip -netns ${NSB} -6 ro add ${VRF_IP6}/128 via ${NSA_IP6} dev ${NSB_DEV}
517 ip -netns ${NSA} ro add ${NSB_LO_IP}/32 via ${NSB_IP} dev ${NSA_DEV}
518 ip -netns ${NSA} ro add ${NSB_LO_IP6}/128 via ${NSB_IP6} dev ${NSA_DEV}
522 # tell ns-B how to get to remote addresses of ns-A
523 ip -netns ${NSB} ro add ${NSA_LO_IP}/32 via ${NSA_IP} dev ${NSB_DEV}
524 ip -netns ${NSB} ro add ${NSA_LO_IP6}/128 via ${NSA_IP6} dev ${NSB_DEV}
533 # make sure we are starting with a clean slate
538 set -e
544 create_ns ${NSA} "-" "-"
545 create_ns ${NSB} "-" "-"
546 create_ns ${NSC} "-" "-"
547 connect_ns ${NSA} ${NSA_DEV} "-" "-" \
548 ${NSB} ${NSB_DEV} "-" "-"
549 connect_ns ${NSA} ${NSA_DEV2} "-" "-" \
550 ${NSC} ${NSC_DEV} "-" "-"
556 create_vrf ${NSA} ${VRF} ${VRF_TABLE} "-" "-"
557 ip -netns ${NSA} link set dev ${NSA_DEV} vrf ${VRF}
558 ip -netns ${NSA} link set dev ${NSA_DEV2} vrf ${VRF}
570 local a
575 for a in ${NSB_IP} ${NSB_LO_IP}
578 run_cmd ping -c1 -w1 ${a}
579 log_test_addr ${a} $? 0 "ping out"
582 run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
583 log_test_addr ${a} $? 0 "ping out, device bind"
586 run_cmd ping -c1 -w1 -I ${NSA_LO_IP} ${a}
587 log_test_addr ${a} $? 0 "ping out, address bind"
593 a=${NSB_IP}
595 run_cmd ping -c 1 -w 1 -r ${a}
596 log_test_addr ${a} $? 0 "ping out (don't route), peer on link"
598 a=${NSB_LO_IP}
601 run_cmd ping -c 1 -w 1 -r ${a}
602 log_test_addr ${a} $? 1 "ping out (don't route), peer not on link"
607 for a in ${NSA_IP} ${NSA_LO_IP}
610 run_cmd_nsb ping -c1 -w1 ${a}
611 log_test_addr ${a} $? 0 "ping in"
617 for a in ${NSA_IP} ${NSA_LO_IP} 127.0.0.1
620 run_cmd ping -c1 -w1 ${a}
621 log_test_addr ${a} $? 0 "ping local"
628 a=${NSA_IP}
630 run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
631 log_test_addr ${a} $? 0 "ping local, device bind"
634 # fails in a really weird way though because ipv4 special cases
636 for a in ${NSA_LO_IP} 127.0.0.1
640 run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
641 log_test_addr ${a} $? 1 "ping local, device bind"
653 a=${NSB_LO_IP}
654 run_cmd ping -c1 -w1 ${a}
655 log_test_addr ${a} $? 2 "ping out, blocked by rule"
658 # a viable rtable if the oif (e.g., bind to device) is set, so this
660 # run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
662 a=${NSA_LO_IP}
665 run_cmd_nsb ping -c1 -w1 ${a}
666 log_test_addr ${a} $? 1 "ping in, blocked by rule"
681 a=${NSB_LO_IP}
682 run_cmd ping -c1 -w1 ${a}
683 log_test_addr ${a} $? 2 "ping out, blocked by route"
686 # a viable rtable if the oif (e.g., bind to device) is set, so this
687 # case succeeds despite not having a route for the address
688 # run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
690 a=${NSA_LO_IP}
693 run_cmd_nsb ping -c1 -w1 ${a}
694 log_test_addr ${a} $? 1 "ping in, blocked by route"
702 a=${NSB_LO_IP}
703 run_cmd ping -c1 -w1 ${a}
704 log_test_addr ${a} $? 2 "ping out, unreachable default route"
707 # a viable rtable if the oif (e.g., bind to device) is set, so this
708 # case succeeds despite not having a route for the address
709 # run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
714 local a
722 for a in ${NSB_IP} ${NSB_LO_IP}
725 run_cmd ping -c1 -w1 -I ${VRF} ${a}
726 log_test_addr ${a} $? 0 "ping out, VRF bind"
729 run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
730 log_test_addr ${a} $? 0 "ping out, device bind"
733 run_cmd ip vrf exec ${VRF} ping -c1 -w1 -I ${NSA_IP} ${a}
734 log_test_addr ${a} $? 0 "ping out, vrf device + dev address bind"
737 run_cmd ip vrf exec ${VRF} ping -c1 -w1 -I ${VRF_IP} ${a}
738 log_test_addr ${a} $? 0 "ping out, vrf device + vrf address bind"
744 for a in ${NSA_IP} ${VRF_IP}
747 run_cmd_nsb ping -c1 -w1 ${a}
748 log_test_addr ${a} $? 0 "ping in"
754 for a in ${NSA_IP} ${VRF_IP} 127.0.0.1
757 show_hint "Source address should be ${a}"
758 run_cmd ping -c1 -w1 -I ${VRF} ${a}
759 log_test_addr ${a} $? 0 "ping local, VRF bind"
766 a=${NSA_IP}
768 run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
769 log_test_addr ${a} $? 0 "ping local, device bind"
772 for a in ${VRF_IP} 127.0.0.1
776 run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
777 log_test_addr ${a} $? 2 "ping local, device bind"
787 a=${NSB_LO_IP}
788 run_cmd ping -c1 -w1 -I ${VRF} ${a}
789 log_test_addr ${a} $? 2 "ping out, vrf bind, blocked by rule"
792 run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
793 log_test_addr ${a} $? 2 "ping out, device bind, blocked by rule"
795 a=${NSA_LO_IP}
798 run_cmd_nsb ping -c1 -w1 ${a}
799 log_test_addr ${a} $? 1 "ping in, blocked by rule"
811 a=${NSB_LO_IP}
812 run_cmd ping -c1 -w1 -I ${VRF} ${a}
813 log_test_addr ${a} $? 2 "ping out, vrf bind, unreachable route"
816 run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
817 log_test_addr ${a} $? 2 "ping out, device bind, unreachable route"
819 a=${NSA_LO_IP}
822 run_cmd_nsb ping -c1 -w1 ${a}
823 log_test_addr ${a} $? 1 "ping in, unreachable route"
863 run_cmd nettest -s -M ${MD5_PW} -m ${NSB_IP} &
865 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_PW}
871 run_cmd nettest -s &
873 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_PW}
879 run_cmd nettest -s -M ${MD5_PW} -m ${NSB_IP} &
881 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_WRONG_PW}
887 run_cmd nettest -s -M ${MD5_PW} -m ${NSB_LO_IP} &
889 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_PW}
893 # MD5 extension - prefix length
898 run_cmd nettest -s -M ${MD5_PW} -m ${NS_NET} &
900 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_PW}
906 run_cmd nettest -s -M ${MD5_PW} -m ${NS_NET} &
908 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_WRONG_PW}
914 run_cmd nettest -s -M ${MD5_PW} -m ${NS_NET} &
916 run_cmd_nsb nettest -c ${NSB_LO_IP} -r ${NSA_IP} -X ${MD5_PW}
931 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NSB_IP} &
933 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_PW}
939 run_cmd nettest -s -I ${VRF} &
941 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_PW}
947 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NSB_IP} &
949 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_WRONG_PW}
955 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NSB_LO_IP} &
957 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_PW}
961 # MD5 extension - prefix length
966 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET} &
968 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_PW}
974 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET} &
976 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_WRONG_PW}
982 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET} &
984 run_cmd_nsb nettest -c ${NSB_LO_IP} -r ${NSA_IP} -X ${MD5_PW}
988 # duplicate config between default VRF and a VRF
992 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NSB_IP} &
993 run_cmd nettest -s -M ${MD5_WRONG_PW} -m ${NSB_IP} &
995 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_PW}
999 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NSB_IP} &
1000 run_cmd nettest -s -M ${MD5_WRONG_PW} -m ${NSB_IP} &
1002 run_cmd_nsc nettest -r ${NSA_IP} -X ${MD5_WRONG_PW}
1007 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NSB_IP} &
1008 run_cmd nettest -s -M ${MD5_WRONG_PW} -m ${NSB_IP} &
1010 run_cmd_nsc nettest -r ${NSA_IP} -X ${MD5_PW}
1015 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NSB_IP} &
1016 run_cmd nettest -s -M ${MD5_WRONG_PW} -m ${NSB_IP} &
1018 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_WRONG_PW}
1022 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET} &
1023 run_cmd nettest -s -M ${MD5_WRONG_PW} -m ${NS_NET} &
1025 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_PW}
1029 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET} &
1030 run_cmd nettest -s -M ${MD5_WRONG_PW} -m ${NS_NET} &
1032 run_cmd_nsc nettest -r ${NSA_IP} -X ${MD5_WRONG_PW}
1037 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET} &
1038 run_cmd nettest -s -M ${MD5_WRONG_PW} -m ${NS_NET} &
1040 run_cmd_nsc nettest -r ${NSA_IP} -X ${MD5_PW}
1045 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET} &
1046 run_cmd nettest -s -M ${MD5_WRONG_PW} -m ${NS_NET} &
1048 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_WRONG_PW}
1055 run_cmd nettest -s -I ${NSA_DEV} -M ${MD5_PW} -m ${NSB_IP}
1056 log_test $? 1 "MD5: VRF: Device must be a VRF - single address"
1059 run_cmd nettest -s -I ${NSA_DEV} -M ${MD5_PW} -m ${NS_NET}
1060 log_test $? 1 "MD5: VRF: Device must be a VRF - prefix"
1070 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET} --no-bind-key-ifindex &
1072 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_PW}
1073 log_test $? 0 "MD5: VRF: VRF-bound server, unbound key accepts connection"
1077 run_cmd nettest -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET} --force-bind-key-ifindex &
1079 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_PW}
1080 log_test $? 0 "MD5: VRF: VRF-bound server, bound key accepts connection"
1091 run_cmd nettest -s -M ${MD5_PW} -m ${NS_NET} --force-bind-key-ifindex &
1093 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_PW}
1097 run_cmd nettest -s -M ${MD5_PW} -m ${NS_NET} --force-bind-key-ifindex &
1099 run_cmd_nsc nettest -r ${NSA_IP} -X ${MD5_PW}
1100 log_test $? 0 "MD5: VRF: Global server, key bound to ifindex=0 accepts non-VRF connection"
1103 run_cmd nettest -s -M ${MD5_PW} -m ${NS_NET} --no-bind-key-ifindex &
1105 run_cmd_nsb nettest -r ${NSA_IP} -X ${MD5_PW}
1109 run_cmd nettest -s -M ${MD5_PW} -m ${NS_NET} --no-bind-key-ifindex &
1111 run_cmd_nsc nettest -r ${NSA_IP} -X ${MD5_PW}
1112 log_test $? 0 "MD5: VRF: Global server, key not bound to ifindex accepts non-VRF connection"
1123 local a
1128 # on link (doesn't need to be routed through a gateway).
1131 nsa_syncookies=$(ip netns exec "${NSA}" sysctl -n net.ipv4.tcp_syncookies)
1132 nsb_syncookies=$(ip netns exec "${NSB}" sysctl -n net.ipv4.tcp_syncookies)
1133 ip netns exec "${NSA}" sysctl -wq net.ipv4.tcp_syncookies=${syncookies}
1134 ip netns exec "${NSB}" sysctl -wq net.ipv4.tcp_syncookies=${syncookies}
1138 a=${NSB_IP}
1140 do_run_cmd nettest -B -N "${NSA}" -O "${NSB}" -r ${a} --client-dontroute
1141 log_test_addr ${a} $? 0 "SO_DONTROUTE client, syncookies=${syncookies}"
1143 a=${NSB_IP}
1145 do_run_cmd nettest -B -N "${NSA}" -O "${NSB}" -r ${a} --server-dontroute
1146 log_test_addr ${a} $? 0 "SO_DONTROUTE server, syncookies=${syncookies}"
1151 # Therefore, we need to use the -c option here, to force the use of the
1153 # to respond to a routed address and not a link local one).
1155 a=${NSB_LO_IP}
1158 do_run_cmd nettest -B -N "${NSA}" -O "${NSB}" -c "${NSA_LO_IP}" -r ${a} --client-dontroute
1159 log_test_addr ${a} $? 1 "SO_DONTROUTE client, syncookies=${syncookies}"
1161 a=${NSB_LO_IP}
1164 do_run_cmd nettest -B -N "${NSA}" -O "${NSB}" -c "${NSA_LO_IP}" -r ${a} --server-dontroute
1165 log_test_addr ${a} $? 2 "SO_DONTROUTE server, syncookies=${syncookies}"
1167 ip netns exec "${NSB}" sysctl -wq net.ipv4.tcp_syncookies=${nsb_syncookies}
1168 ip netns exec "${NSA}" sysctl -wq net.ipv4.tcp_syncookies=${nsa_syncookies}
1173 local a
1178 for a in ${NSA_IP} ${NSA_LO_IP}
1181 run_cmd nettest -s &
1183 run_cmd_nsb nettest -r ${a}
1184 log_test_addr ${a} $? 0 "Global server"
1187 a=${NSA_IP}
1189 run_cmd nettest -s -I ${NSA_DEV} &
1191 run_cmd_nsb nettest -r ${a}
1192 log_test_addr ${a} $? 0 "Device server"
1195 for a in ${NSA_IP} ${NSA_LO_IP}
1199 run_cmd_nsb nettest -r ${a}
1200 log_test_addr ${a} $? 1 "No server"
1206 for a in ${NSB_IP} ${NSB_LO_IP}
1209 run_cmd_nsb nettest -s &
1211 run_cmd nettest -r ${a} -0 ${NSA_IP}
1212 log_test_addr ${a} $? 0 "Client"
1215 run_cmd_nsb nettest -s &
1217 run_cmd nettest -r ${a} -d ${NSA_DEV}
1218 log_test_addr ${a} $? 0 "Client, device bind"
1222 run_cmd nettest -r ${a}
1223 log_test_addr ${a} $? 1 "No server, unbound client"
1227 run_cmd nettest -r ${a} -d ${NSA_DEV}
1228 log_test_addr ${a} $? 1 "No server, device client"
1234 for a in ${NSA_IP} ${NSA_LO_IP} 127.0.0.1
1237 run_cmd nettest -s &
1239 run_cmd nettest -r ${a} -0 ${a} -1 ${a}
1240 log_test_addr ${a} $? 0 "Global server, local connection"
1243 a=${NSA_IP}
1245 run_cmd nettest -s -I ${NSA_DEV} &
1247 run_cmd nettest -r ${a} -0 ${a}
1248 log_test_addr ${a} $? 0 "Device server, unbound client, local connection"
1250 for a in ${NSA_LO_IP} 127.0.0.1
1254 run_cmd nettest -s -I ${NSA_DEV} &
1256 run_cmd nettest -r ${a}
1257 log_test_addr ${a} $? 1 "Device server, unbound client, local connection"
1260 a=${NSA_IP}
1262 run_cmd nettest -s &
1264 run_cmd nettest -r ${a} -0 ${a} -d ${NSA_DEV}
1265 log_test_addr ${a} $? 0 "Global server, device client, local connection"
1267 for a in ${NSA_LO_IP} 127.0.0.1
1271 run_cmd nettest -s &
1273 run_cmd nettest -r ${a} -d ${NSA_DEV}
1274 log_test_addr ${a} $? 1 "Global server, device client, local connection"
1277 a=${NSA_IP}
1279 run_cmd nettest -s -I ${NSA_DEV} -3 ${NSA_DEV} &
1281 run_cmd nettest -d ${NSA_DEV} -r ${a} -0 ${a}
1282 log_test_addr ${a} $? 0 "Device server, device client, local connection"
1286 run_cmd nettest -d ${NSA_DEV} -r ${a}
1287 log_test_addr ${a} $? 1 "No server, device client, local conn"
1297 local a
1307 for a in ${NSA_IP} ${VRF_IP}
1311 run_cmd nettest -s &
1313 run_cmd_nsb nettest -r ${a}
1314 log_test_addr ${a} $? 1 "Global server"
1317 run_cmd nettest -s -I ${VRF} -3 ${VRF} &
1319 run_cmd_nsb nettest -r ${a}
1320 log_test_addr ${a} $? 0 "VRF server"
1323 run_cmd nettest -s -I ${NSA_DEV} -3 ${NSA_DEV} &
1325 run_cmd_nsb nettest -r ${a}
1326 log_test_addr ${a} $? 0 "Device server"
1331 run_cmd_nsb nettest -r ${a}
1332 log_test_addr ${a} $? 1 "No server"
1337 a=${NSA_IP}
1340 run_cmd nettest -s &
1342 run_cmd nettest -r ${a} -d ${NSA_DEV}
1343 log_test_addr ${a} $? 1 "Global server, local connection"
1358 for a in ${NSA_IP} ${VRF_IP}
1362 run_cmd nettest -s -3 ${VRF} &
1364 run_cmd_nsb nettest -r ${a}
1365 log_test_addr ${a} $? 0 "Global server"
1369 run_cmd nettest -s -I ${VRF} -3 ${VRF} &
1371 run_cmd_nsb nettest -r ${a}
1372 log_test_addr ${a} $? 0 "VRF server"
1377 run_cmd_nsb nettest -r ${a}
1378 log_test_addr ${a} $? 1 "No server"
1381 a=${NSA_IP}
1384 run_cmd nettest -s -I ${NSA_DEV} -3 ${NSA_DEV} &
1386 run_cmd_nsb nettest -r ${a}
1387 log_test_addr ${a} $? 0 "Device server"
1390 for a in ${NSA_IP} ${VRF_IP}
1394 run_cmd nettest -s -I ${VRF} &
1396 run_cmd nettest -r ${a}
1397 log_test_addr ${a} $? 1 "Global server, local connection"
1403 for a in ${NSB_IP} ${NSB_LO_IP}
1406 run_cmd_nsb nettest -s &
1408 run_cmd nettest -r ${a} -d ${VRF}
1409 log_test_addr ${a} $? 0 "Client, VRF bind"
1412 run_cmd_nsb nettest -s &
1414 run_cmd nettest -r ${a} -d ${NSA_DEV}
1415 log_test_addr ${a} $? 0 "Client, device bind"
1419 run_cmd nettest -r ${a} -d ${VRF}
1420 log_test_addr ${a} $? 1 "No server, VRF client"
1424 run_cmd nettest -r ${a} -d ${NSA_DEV}
1425 log_test_addr ${a} $? 1 "No server, device client"
1428 for a in ${NSA_IP} ${VRF_IP} 127.0.0.1
1431 run_cmd nettest -s -I ${VRF} -3 ${VRF} &
1433 run_cmd nettest -r ${a} -d ${VRF} -0 ${a}
1434 log_test_addr ${a} $? 0 "VRF server, VRF client, local connection"
1437 a=${NSA_IP}
1439 run_cmd nettest -s -I ${VRF} -3 ${VRF} &
1441 run_cmd nettest -r ${a} -d ${NSA_DEV} -0 ${a}
1442 log_test_addr ${a} $? 0 "VRF server, device client, local connection"
1446 run_cmd nettest -s -I ${VRF} &
1448 run_cmd nettest -r ${a}
1449 log_test_addr ${a} $? 1 "VRF server, unbound client, local connection"
1452 run_cmd nettest -s -I ${NSA_DEV} -3 ${NSA_DEV} &
1454 run_cmd nettest -r ${a} -d ${VRF} -0 ${a}
1455 log_test_addr ${a} $? 0 "Device server, VRF client, local connection"
1458 run_cmd nettest -s -I ${NSA_DEV} -3 ${NSA_DEV} &
1460 run_cmd nettest -r ${a} -d ${NSA_DEV} -0 ${a}
1461 log_test_addr ${a} $? 0 "Device server, device client, local connection"
1489 local a
1494 for a in ${NSA_IP} ${NSA_LO_IP}
1497 run_cmd nettest -D -s -3 ${NSA_DEV} &
1499 run_cmd_nsb nettest -D -r ${a}
1500 log_test_addr ${a} $? 0 "Global server"
1504 run_cmd_nsb nettest -D -r ${a}
1505 log_test_addr ${a} $? 1 "No server"
1508 a=${NSA_IP}
1510 run_cmd nettest -D -I ${NSA_DEV} -s -3 ${NSA_DEV} &
1512 run_cmd_nsb nettest -D -r ${a}
1513 log_test_addr ${a} $? 0 "Device server"
1518 for a in ${NSB_IP} ${NSB_LO_IP}
1521 run_cmd_nsb nettest -D -s &
1523 run_cmd nettest -D -r ${a} -0 ${NSA_IP}
1524 log_test_addr ${a} $? 0 "Client"
1527 run_cmd_nsb nettest -D -s &
1529 run_cmd nettest -D -r ${a} -d ${NSA_DEV} -0 ${NSA_IP}
1530 log_test_addr ${a} $? 0 "Client, device bind"
1533 run_cmd_nsb nettest -D -s &
1535 run_cmd nettest -D -r ${a} -d ${NSA_DEV} -C -0 ${NSA_IP}
1536 log_test_addr ${a} $? 0 "Client, device send via cmsg"
1539 run_cmd_nsb nettest -D -s &
1541 run_cmd nettest -D -r ${a} -d ${NSA_DEV} -S -0 ${NSA_IP}
1542 log_test_addr ${a} $? 0 "Client, device bind via IP_UNICAST_IF"
1545 run_cmd_nsb nettest -D -s &
1547 run_cmd nettest -D -r ${a} -d ${NSA_DEV} -S -0 ${NSA_IP} -U
1548 log_test_addr ${a} $? 0 "Client, device bind via IP_UNICAST_IF, with connect()"
1553 run_cmd nettest -D -r ${a}
1554 log_test_addr ${a} $? 1 "No server, unbound client"
1558 run_cmd nettest -D -r ${a} -d ${NSA_DEV}
1559 log_test_addr ${a} $? 1 "No server, device client"
1565 for a in ${NSA_IP} ${NSA_LO_IP} 127.0.0.1
1568 run_cmd nettest -D -s &
1570 run_cmd nettest -D -r ${a} -0 ${a} -1 ${a}
1571 log_test_addr ${a} $? 0 "Global server, local connection"
1574 a=${NSA_IP}
1576 run_cmd nettest -s -D -I ${NSA_DEV} -3 ${NSA_DEV} &
1578 run_cmd nettest -D -r ${a}
1579 log_test_addr ${a} $? 0 "Device server, unbound client, local connection"
1581 for a in ${NSA_LO_IP} 127.0.0.1
1585 run_cmd nettest -s -D -I ${NSA_DEV} &
1587 run_cmd nettest -D -r ${a}
1588 log_test_addr ${a} $? 1 "Device server, unbound client, local connection"
1591 a=${NSA_IP}
1593 run_cmd nettest -s -D &
1595 run_cmd nettest -D -d ${NSA_DEV} -r ${a}
1596 log_test_addr ${a} $? 0 "Global server, device client, local connection"
1599 run_cmd nettest -s -D &
1601 run_cmd nettest -D -d ${NSA_DEV} -C -r ${a}
1602 log_test_addr ${a} $? 0 "Global server, device send via cmsg, local connection"
1605 run_cmd nettest -s -D &
1607 run_cmd nettest -D -d ${NSA_DEV} -S -r ${a}
1608 log_test_addr ${a} $? 0 "Global server, device client via IP_UNICAST_IF, local connection"
1611 run_cmd nettest -s -D &
1613 run_cmd nettest -D -d ${NSA_DEV} -S -r ${a} -U
1614 …log_test_addr ${a} $? 0 "Global server, device client via IP_UNICAST_IF, local connection, with co…
1617 # IPv4 with device bind has really weird behavior - it overrides the
1620 for a in ${NSA_LO_IP} 127.0.0.1
1624 run_cmd nettest -D -s &
1626 run_cmd nettest -D -r ${a} -d ${NSA_DEV}
1627 log_test_addr ${a} $? 2 "Global server, device client, local connection"
1631 run_cmd nettest -D -s &
1633 run_cmd nettest -D -r ${a} -d ${NSA_DEV} -C
1634 log_test_addr ${a} $? 1 "Global server, device send via cmsg, local connection"
1638 run_cmd nettest -D -s &
1640 run_cmd nettest -D -r ${a} -d ${NSA_DEV} -S
1641 log_test_addr ${a} $? 1 "Global server, device client via IP_UNICAST_IF, local connection"
1645 run_cmd nettest -D -s &
1647 run_cmd nettest -D -r ${a} -d ${NSA_DEV} -S -U
1648 …log_test_addr ${a} $? 1 "Global server, device client via IP_UNICAST_IF, local connection, with co…
1653 a=${NSA_IP}
1655 run_cmd nettest -D -s -I ${NSA_DEV} -3 ${NSA_DEV} &
1657 run_cmd nettest -D -d ${NSA_DEV} -r ${a} -0 ${a}
1658 log_test_addr ${a} $? 0 "Device server, device client, local conn"
1661 run_cmd nettest -D -d ${NSA_DEV} -r ${a}
1662 log_test_addr ${a} $? 2 "No server, device client, local conn"
1667 # on link (doesn't need to be routed through a gateway).
1670 a=${NSB_IP}
1672 do_run_cmd nettest -B -D -N "${NSA}" -O "${NSB}" -r ${a} --client-dontroute
1673 log_test_addr ${a} $? 0 "SO_DONTROUTE client"
1675 a=${NSB_LO_IP}
1678 do_run_cmd nettest -B -D -N "${NSA}" -O "${NSB}" -r ${a} --client-dontroute
1679 log_test_addr ${a} $? 1 "SO_DONTROUTE client"
1684 local a
1693 for a in ${NSA_IP} ${VRF_IP}
1696 show_hint "Fails because ingress is in a VRF and global server is disabled"
1697 run_cmd nettest -D -s &
1699 run_cmd_nsb nettest -D -r ${a}
1700 log_test_addr ${a} $? 1 "Global server"
1703 run_cmd nettest -D -I ${VRF} -s -3 ${NSA_DEV} &
1705 run_cmd_nsb nettest -D -r ${a}
1706 log_test_addr ${a} $? 0 "VRF server"
1709 run_cmd nettest -D -I ${NSA_DEV} -s -3 ${NSA_DEV} &
1711 run_cmd_nsb nettest -D -r ${a}
1712 log_test_addr ${a} $? 0 "Enslaved device server"
1716 run_cmd_nsb nettest -D -r ${a}
1717 log_test_addr ${a} $? 1 "No server"
1721 run_cmd nettest -D -s &
1723 run_cmd nettest -D -d ${VRF} -r ${a}
1724 log_test_addr ${a} $? 1 "Global server, VRF client, local connection"
1727 a=${NSA_IP}
1729 run_cmd nettest -s -D -I ${VRF} -3 ${NSA_DEV} &
1731 run_cmd nettest -D -d ${VRF} -r ${a}
1732 log_test_addr ${a} $? 0 "VRF server, VRF client, local conn"
1735 run_cmd nettest -s -D -I ${VRF} -3 ${NSA_DEV} &
1737 run_cmd nettest -D -d ${NSA_DEV} -r ${a}
1738 log_test_addr ${a} $? 0 "VRF server, enslaved device client, local connection"
1740 a=${NSA_IP}
1742 run_cmd nettest -s -D -I ${NSA_DEV} -3 ${NSA_DEV} &
1744 run_cmd nettest -D -d ${VRF} -r ${a}
1745 log_test_addr ${a} $? 0 "Enslaved device server, VRF client, local conn"
1748 run_cmd nettest -s -D -I ${NSA_DEV} -3 ${NSA_DEV} &
1750 run_cmd nettest -D -d ${NSA_DEV} -r ${a}
1751 log_test_addr ${a} $? 0 "Enslaved device server, device client, local conn"
1760 for a in ${NSA_IP} ${VRF_IP}
1763 run_cmd nettest -D -s -3 ${NSA_DEV} &
1765 run_cmd_nsb nettest -D -r ${a}
1766 log_test_addr ${a} $? 0 "Global server"
1769 run_cmd nettest -D -I ${VRF} -s -3 ${NSA_DEV} &
1771 run_cmd_nsb nettest -D -r ${a}
1772 log_test_addr ${a} $? 0 "VRF server"
1775 run_cmd nettest -D -I ${NSA_DEV} -s -3 ${NSA_DEV} &
1777 run_cmd_nsb nettest -D -r ${a}
1778 log_test_addr ${a} $? 0 "Enslaved device server"
1782 run_cmd_nsb nettest -D -r ${a}
1783 log_test_addr ${a} $? 1 "No server"
1790 run_cmd_nsb nettest -D -s &
1792 run_cmd nettest -d ${VRF} -D -r ${NSB_IP} -1 ${NSA_IP}
1796 run_cmd_nsb nettest -D -s &
1798 run_cmd nettest -d ${NSA_DEV} -D -r ${NSB_IP} -1 ${NSA_IP}
1801 # negative test - should fail
1804 run_cmd nettest -D -d ${VRF} -r ${NSB_IP}
1809 run_cmd nettest -D -d ${NSA_DEV} -r ${NSB_IP}
1815 a=${NSA_IP}
1817 run_cmd nettest -D -s -3 ${NSA_DEV} &
1819 run_cmd nettest -D -d ${VRF} -r ${a}
1820 log_test_addr ${a} $? 0 "Global server, VRF client, local conn"
1823 run_cmd nettest -s -D -I ${VRF} -3 ${NSA_DEV} &
1825 run_cmd nettest -D -d ${VRF} -r ${a}
1826 log_test_addr ${a} $? 0 "VRF server, VRF client, local conn"
1829 run_cmd nettest -s -D -I ${VRF} -3 ${NSA_DEV} &
1831 run_cmd nettest -D -d ${NSA_DEV} -r ${a}
1832 log_test_addr ${a} $? 0 "VRF server, device client, local conn"
1835 run_cmd nettest -s -D -I ${NSA_DEV} -3 ${NSA_DEV} &
1837 run_cmd nettest -D -d ${VRF} -r ${a}
1838 log_test_addr ${a} $? 0 "Enslaved device server, VRF client, local conn"
1841 run_cmd nettest -s -D -I ${NSA_DEV} -3 ${NSA_DEV} &
1843 run_cmd nettest -D -d ${NSA_DEV} -r ${a}
1844 log_test_addr ${a} $? 0 "Enslaved device server, device client, local conn"
1846 for a in ${VRF_IP} 127.0.0.1
1849 run_cmd nettest -D -s -3 ${VRF} &
1851 run_cmd nettest -D -d ${VRF} -r ${a}
1852 log_test_addr ${a} $? 0 "Global server, VRF client, local conn"
1855 for a in ${VRF_IP} 127.0.0.1
1858 run_cmd nettest -s -D -I ${VRF} -3 ${VRF} &
1860 run_cmd nettest -D -d ${VRF} -r ${a}
1861 log_test_addr ${a} $? 0 "VRF server, VRF client, local conn"
1864 # negative test - should fail
1866 for a in ${NSA_IP} ${VRF_IP} 127.0.0.1
1870 run_cmd nettest -D -d ${VRF} -r ${a}
1871 log_test_addr ${a} $? 1 "No server, VRF client, local conn"
1906 for a in ${NSA_IP} ${NSA_LO_IP}
1909 run_cmd nettest -s -R -P icmp -l ${a} -b
1910 log_test_addr ${a} $? 0 "Raw socket bind to local address"
1913 run_cmd nettest -s -R -P icmp -l ${a} -I ${NSA_DEV} -b
1914 log_test_addr ${a} $? 0 "Raw socket bind to local address after device bind"
1920 a=${NL_IP}
1922 run_cmd nettest -s -R -f -l ${a} -b
1923 log_test_addr ${a} $? 0 "Raw socket bind to nonlocal address"
1926 run_cmd nettest -s -f -l ${a} -b
1927 log_test_addr ${a} $? 0 "TCP socket bind to nonlocal address"
1930 run_cmd nettest -s -D -P icmp -f -l ${a} -b
1931 log_test_addr ${a} $? 0 "ICMP socket bind to nonlocal address"
1936 a=${BCAST_IP}
1938 run_cmd nettest -s -D -P icmp -l ${a} -b
1939 log_test_addr ${a} $? 1 "ICMP socket bind to broadcast address"
1941 a=${MCAST_IP}
1943 run_cmd nettest -s -D -P icmp -l ${a} -b
1944 log_test_addr ${a} $? 1 "ICMP socket bind to multicast address"
1949 a=${NSA_IP}
1951 run_cmd nettest -c ${a} -r ${NSB_IP} -t1 -b
1952 log_test_addr ${a} $? 0 "TCP socket bind to local address"
1955 run_cmd nettest -c ${a} -r ${NSB_IP} -d ${NSA_DEV} -t1 -b
1956 log_test_addr ${a} $? 0 "TCP socket bind to local address after device bind"
1958 # Sadly, the kernel allows binding a socket to a device and then
1962 #a=${NSA_LO_IP}
1965 #run_cmd nettest -s -l ${a} -I ${NSA_DEV} -t1 -b
1966 #log_test_addr ${a} $? 1 "TCP socket bind to out of scope local address"
1974 for a in ${NSA_IP} ${VRF_IP}
1978 run_cmd nettest -s -R -P icmp -l ${a} -b
1979 log_test_addr ${a} $? 1 "Raw socket bind to local address"
1982 run_cmd nettest -s -R -P icmp -l ${a} -I ${NSA_DEV} -b
1983 log_test_addr ${a} $? 0 "Raw socket bind to local address after device bind"
1985 run_cmd nettest -s -R -P icmp -l ${a} -I ${VRF} -b
1986 log_test_addr ${a} $? 0 "Raw socket bind to local address after VRF bind"
1989 a=${NSA_LO_IP}
1992 run_cmd nettest -s -R -P icmp -l ${a} -I ${VRF} -b
1993 log_test_addr ${a} $? 1 "Raw socket bind to out of scope address after VRF bind"
1998 a=${NL_IP}
2000 run_cmd nettest -s -R -f -l ${a} -I ${VRF} -b
2001 log_test_addr ${a} $? 0 "Raw socket bind to nonlocal address after VRF bind"
2004 run_cmd nettest -s -f -l ${a} -I ${VRF} -b
2005 log_test_addr ${a} $? 0 "TCP socket bind to nonlocal address after VRF bind"
2008 run_cmd nettest -s -D -P icmp -f -l ${a} -I ${VRF} -b
2009 log_test_addr ${a} $? 0 "ICMP socket bind to nonlocal address after VRF bind"
2014 a=${BCAST_IP}
2016 run_cmd nettest -s -D -P icmp -l ${a} -I ${VRF} -b
2017 log_test_addr ${a} $? 1 "ICMP socket bind to broadcast address after VRF bind"
2019 a=${MCAST_IP}
2021 run_cmd nettest -s -D -P icmp -l ${a} -I ${VRF} -b
2022 log_test_addr ${a} $? 1 "ICMP socket bind to multicast address after VRF bind"
2027 for a in ${NSA_IP} ${VRF_IP}
2030 run_cmd nettest -s -l ${a} -I ${VRF} -t1 -b
2031 log_test_addr ${a} $? 0 "TCP socket bind to local address"
2034 run_cmd nettest -s -l ${a} -I ${NSA_DEV} -t1 -b
2035 log_test_addr ${a} $? 0 "TCP socket bind to local address after device bind"
2038 a=${NSA_LO_IP}
2041 run_cmd nettest -s -l ${a} -I ${VRF} -t1 -b
2042 log_test_addr ${a} $? 1 "TCP socket bind to invalid local address for VRF"
2046 run_cmd nettest -s -l ${a} -I ${NSA_DEV} -t1 -b
2047 log_test_addr ${a} $? 1 "TCP socket bind to invalid local address for device bind"
2073 local a
2078 for a in ${NSA_IP} ${VRF_IP}
2081 run_cmd nettest ${varg} -s &
2083 run_cmd_nsb nettest ${varg} -r ${a} &
2087 log_test_addr ${a} 0 0 "${desc}, global server"
2092 for a in ${NSA_IP} ${VRF_IP}
2095 run_cmd nettest ${varg} -s -I ${VRF} &
2097 run_cmd_nsb nettest ${varg} -r ${a} &
2101 log_test_addr ${a} 0 0 "${desc}, VRF server"
2106 a=${NSA_IP}
2108 run_cmd nettest ${varg} -s -I ${NSA_DEV} &
2110 run_cmd_nsb nettest ${varg} -r ${a} &
2114 log_test_addr ${a} 0 0 "${desc}, enslaved device server"
2122 run_cmd_nsb nettest ${varg} -s &
2124 run_cmd nettest ${varg} -d ${VRF} -r ${NSB_IP} &
2128 log_test_addr ${a} 0 0 "${desc}, VRF client"
2133 run_cmd_nsb nettest ${varg} -s &
2135 run_cmd nettest ${varg} -d ${NSA_DEV} -r ${NSB_IP} &
2139 log_test_addr ${a} 0 0 "${desc}, enslaved device client"
2146 for a in ${NSA_IP} ${VRF_IP}
2149 run_cmd nettest ${varg} -s &
2151 run_cmd nettest ${varg} -d ${VRF} -r ${a} &
2155 log_test_addr ${a} 0 0 "${desc}, global server, VRF client, local"
2160 for a in ${NSA_IP} ${VRF_IP}
2163 run_cmd nettest ${varg} -I ${VRF} -s &
2165 run_cmd nettest ${varg} -d ${VRF} -r ${a} &
2169 log_test_addr ${a} 0 0 "${desc}, VRF server and client, local"
2174 a=${NSA_IP}
2177 run_cmd nettest ${varg} -s &
2179 run_cmd nettest ${varg} -d ${NSA_DEV} -r ${a} &
2183 log_test_addr ${a} 0 0 "${desc}, global server, enslaved device client, local"
2188 run_cmd nettest ${varg} -I ${VRF} -s &
2190 run_cmd nettest ${varg} -d ${NSA_DEV} -r ${a} &
2194 log_test_addr ${a} 0 0 "${desc}, VRF server, enslaved device client, local"
2199 run_cmd nettest ${varg} -I ${NSA_DEV} -s &
2201 run_cmd nettest ${varg} -d ${NSA_DEV} -r ${a} &
2205 log_test_addr ${a} 0 0 "${desc}, enslaved device server and client, local"
2211 local a
2213 for a in ${NSA_IP} ${VRF_IP}
2216 run_cmd_nsb ping -f ${a} &
2220 log_test_addr ${a} 0 0 "Device delete with active traffic - ping in"
2225 a=${NSB_IP}
2227 run_cmd ping -f -I ${VRF} ${a} &
2231 log_test_addr ${a} 0 0 "Device delete with active traffic - ping out"
2236 log_section "Run time tests - ipv4"
2242 ipv4_rt "TCP active socket" "-n -1"
2245 ipv4_rt "TCP passive socket" "-i"
2253 local a
2255 # should not have an impact, but make a known state
2261 for a in ${NSB_IP6} ${NSB_LO_IP6} ${NSB_LINKIP6}%${NSA_DEV} ${MCAST}%${NSA_DEV}
2264 run_cmd ${ping6} -c1 -w1 ${a}
2265 log_test_addr ${a} $? 0 "ping out"
2268 for a in ${NSB_IP6} ${NSB_LO_IP6}
2271 run_cmd ${ping6} -c1 -w1 -I ${NSA_DEV} ${a}
2272 log_test_addr ${a} $? 0 "ping out, device bind"
2275 run_cmd ${ping6} -c1 -w1 -I ${NSA_LO_IP6} ${a}
2276 log_test_addr ${a} $? 0 "ping out, loopback address bind"
2282 for a in ${NSA_IP6} ${NSA_LO_IP6} ${NSA_LINKIP6}%${NSB_DEV} ${MCAST}%${NSB_DEV}
2285 run_cmd_nsb ${ping6} -c1 -w1 ${a}
2286 log_test_addr ${a} $? 0 "ping in"
2292 for a in ${NSA_IP6} ${NSA_LO_IP6} ::1 ${NSA_LINKIP6}%${NSA_DEV} ${MCAST}%${NSA_DEV}
2295 run_cmd ${ping6} -c1 -w1 ${a}
2296 log_test_addr ${a} $? 0 "ping local, no bind"
2299 for a in ${NSA_IP6} ${NSA_LINKIP6}%${NSA_DEV} ${MCAST}%${NSA_DEV}
2302 run_cmd ${ping6} -c1 -w1 -I ${NSA_DEV} ${a}
2303 log_test_addr ${a} $? 0 "ping local, device bind"
2306 for a in ${NSA_LO_IP6} ::1
2310 run_cmd ${ping6} -c1 -w1 -I ${NSA_DEV} ${a}
2311 log_test_addr ${a} $? 2 "ping local, device bind"
2318 setup_cmd ip -6 rule add pref 32765 from all lookup local
2319 setup_cmd ip -6 rule del pref 0 from all lookup local
2320 setup_cmd ip -6 rule add pref 50 to ${NSB_LO_IP6} prohibit
2321 setup_cmd ip -6 rule add pref 51 from ${NSB_IP6} prohibit
2323 a=${NSB_LO_IP6}
2324 run_cmd ${ping6} -c1 -w1 ${a}
2325 log_test_addr ${a} $? 2 "ping out, blocked by rule"
2328 run_cmd ${ping6} -c1 -w1 -I ${NSA_DEV} ${a}
2329 log_test_addr ${a} $? 2 "ping out, device bind, blocked by rule"
2331 a=${NSA_LO_IP6}
2334 run_cmd_nsb ${ping6} -c1 -w1 ${a}
2335 log_test_addr ${a} $? 1 "ping in, blocked by rule"
2337 setup_cmd ip -6 rule add pref 0 from all lookup local
2338 setup_cmd ip -6 rule del pref 32765 from all lookup local
2339 setup_cmd ip -6 rule del pref 50 to ${NSB_LO_IP6} prohibit
2340 setup_cmd ip -6 rule del pref 51 from ${NSB_IP6} prohibit
2346 setup_cmd ip -6 route del ${NSB_LO_IP6}
2347 setup_cmd ip -6 route add unreachable ${NSB_LO_IP6} metric 10
2348 setup_cmd ip -6 route add unreachable ${NSB_IP6} metric 10
2350 a=${NSB_LO_IP6}
2351 run_cmd ${ping6} -c1 -w1 ${a}
2352 log_test_addr ${a} $? 2 "ping out, blocked by route"
2355 run_cmd ${ping6} -c1 -w1 -I ${NSA_DEV} ${a}
2356 log_test_addr ${a} $? 2 "ping out, device bind, blocked by route"
2358 a=${NSA_LO_IP6}
2361 run_cmd_nsb ${ping6} -c1 -w1 ${a}
2362 log_test_addr ${a} $? 1 "ping in, blocked by route"
2369 setup_cmd ip -6 ro del unreachable ${NSB_LO_IP6}
2370 setup_cmd ip -6 ro del unreachable ${NSB_IP6}
2372 a=${NSB_LO_IP6}
2373 run_cmd ${ping6} -c1 -w1 ${a}
2374 log_test_addr ${a} $? 2 "ping out, unreachable route"
2377 run_cmd ${ping6} -c1 -w1 -I ${NSA_DEV} ${a}
2378 log_test_addr ${a} $? 2 "ping out, device bind, unreachable route"
2383 local a
2391 for a in ${NSB_IP6} ${NSB_LO_IP6}
2394 run_cmd ${ping6} -c1 -w1 -I ${VRF} ${a}
2395 log_test_addr ${a} $? 0 "ping out, VRF bind"
2398 for a in ${NSB_LINKIP6}%${VRF} ${MCAST}%${VRF}
2402 run_cmd ${ping6} -c1 -w1 ${a}
2403 log_test_addr ${a} $? 1 "ping out, VRF bind"
2406 for a in ${NSB_IP6} ${NSB_LO_IP6} ${NSB_LINKIP6}%${NSA_DEV} ${MCAST}%${NSA_DEV}
2409 run_cmd ${ping6} -c1 -w1 -I ${NSA_DEV} ${a}
2410 log_test_addr ${a} $? 0 "ping out, device bind"
2413 for a in ${NSB_IP6} ${NSB_LO_IP6} ${NSB_LINKIP6}%${NSA_DEV}
2416 run_cmd ip vrf exec ${VRF} ${ping6} -c1 -w1 -I ${VRF_IP6} ${a}
2417 log_test_addr ${a} $? 0 "ping out, vrf device+address bind"
2423 for a in ${NSA_IP6} ${VRF_IP6} ${NSA_LINKIP6}%${NSB_DEV} ${MCAST}%${NSB_DEV}
2426 run_cmd_nsb ${ping6} -c1 -w1 ${a}
2427 log_test_addr ${a} $? 0 "ping in"
2430 a=${NSA_LO_IP6}
2433 run_cmd_nsb ${ping6} -c1 -w1 ${a}
2434 log_test_addr ${a} $? 1 "ping in"
2439 for a in ${NSA_IP6} ${VRF_IP6} ::1
2442 show_hint "Source address should be ${a}"
2443 run_cmd ${ping6} -c1 -w1 -I ${VRF} ${a}
2444 log_test_addr ${a} $? 0 "ping local, VRF bind"
2447 for a in ${NSA_IP6} ${NSA_LINKIP6}%${NSA_DEV} ${MCAST}%${NSA_DEV}
2450 run_cmd ${ping6} -c1 -w1 -I ${NSA_DEV} ${a}
2451 log_test_addr ${a} $? 0 "ping local, device bind"
2454 # LLA to GUA - remove ipv6 global addresses from ns-B
2455 setup_cmd_nsb ip -6 addr del ${NSB_IP6}/64 dev ${NSB_DEV}
2456 setup_cmd_nsb ip -6 addr del ${NSB_LO_IP6}/128 dev lo
2457 setup_cmd_nsb ip -6 ro add ${NSA_IP6}/128 via ${NSA_LINKIP6} dev ${NSB_DEV}
2459 for a in ${NSA_IP6} ${VRF_IP6}
2462 run_cmd_nsb ${ping6} -c1 -w1 ${NSA_IP6}
2463 log_test_addr ${a} $? 0 "ping in, LLA to GUA"
2466 setup_cmd_nsb ip -6 ro del ${NSA_IP6}/128 via ${NSA_LINKIP6} dev ${NSB_DEV}
2467 setup_cmd_nsb ip -6 addr add ${NSB_IP6}/64 dev ${NSB_DEV}
2468 setup_cmd_nsb ip -6 addr add ${NSB_LO_IP6}/128 dev lo
2474 setup_cmd ip -6 rule add pref 50 to ${NSB_LO_IP6} prohibit
2475 setup_cmd ip -6 rule add pref 51 from ${NSB_IP6} prohibit
2477 a=${NSB_LO_IP6}
2478 run_cmd ${ping6} -c1 -w1 ${a}
2479 log_test_addr ${a} $? 2 "ping out, blocked by rule"
2482 run_cmd ${ping6} -c1 -w1 -I ${NSA_DEV} ${a}
2483 log_test_addr ${a} $? 2 "ping out, device bind, blocked by rule"
2485 a=${NSA_LO_IP6}
2488 run_cmd_nsb ${ping6} -c1 -w1 ${a}
2489 log_test_addr ${a} $? 1 "ping in, blocked by rule"
2492 setup_cmd ip -6 rule del pref 50 to ${NSB_LO_IP6} prohibit
2493 setup_cmd ip -6 rule del pref 51 from ${NSB_IP6} prohibit
2499 setup_cmd ip -6 ro del ${NSB_LO_IP6} vrf ${VRF}
2501 a=${NSB_LO_IP6}
2502 run_cmd ${ping6} -c1 -w1 ${a}
2503 log_test_addr ${a} $? 2 "ping out, unreachable route"
2506 run_cmd ${ping6} -c1 -w1 -I ${NSA_DEV} ${a}
2507 log_test_addr ${a} $? 2 "ping out, device bind, unreachable route"
2509 ip -netns ${NSB} -6 ro del ${NSA_LO_IP6}
2510 a=${NSA_LO_IP6}
2512 run_cmd_nsb ${ping6} -c1 -w1 ${a}
2513 log_test_addr ${a} $? 2 "ping in, unreachable route"
2549 run_cmd nettest -6 -s -M ${MD5_PW} -m ${NSB_IP6} &
2551 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_PW}
2557 run_cmd nettest -6 -s &
2559 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_PW}
2565 run_cmd nettest -6 -s -M ${MD5_PW} -m ${NSB_IP6} &
2567 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_WRONG_PW}
2573 run_cmd nettest -6 -s -M ${MD5_PW} -m ${NSB_LO_IP6} &
2575 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_PW}
2579 # MD5 extension - prefix length
2584 run_cmd nettest -6 -s -M ${MD5_PW} -m ${NS_NET6} &
2586 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_PW}
2592 run_cmd nettest -6 -s -M ${MD5_PW} -m ${NS_NET6} &
2594 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_WRONG_PW}
2600 run_cmd nettest -6 -s -M ${MD5_PW} -m ${NS_NET6} &
2602 run_cmd_nsb nettest -6 -c ${NSB_LO_IP6} -r ${NSA_IP6} -X ${MD5_PW}
2617 run_cmd nettest -6 -s -I ${VRF} -M ${MD5_PW} -m ${NSB_IP6} &
2619 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_PW}
2625 run_cmd nettest -6 -s -I ${VRF} &
2627 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_PW}
2633 run_cmd nettest -6 -s -I ${VRF} -M ${MD5_PW} -m ${NSB_IP6} &
2635 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_WRONG_PW}
2641 run_cmd nettest -6 -s -I ${VRF} -M ${MD5_PW} -m ${NSB_LO_IP6} &
2643 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_PW}
2647 # MD5 extension - prefix length
2652 run_cmd nettest -6 -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET6} &
2654 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_PW}
2660 run_cmd nettest -6 -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET6} &
2662 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_WRONG_PW}
2668 run_cmd nettest -6 -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET6} &
2670 run_cmd_nsb nettest -6 -c ${NSB_LO_IP6} -r ${NSA_IP6} -X ${MD5_PW}
2674 # duplicate config between default VRF and a VRF
2678 run_cmd nettest -6 -s -I ${VRF} -M ${MD5_PW} -m ${NSB_IP6} &
2679 run_cmd nettest -6 -s -M ${MD5_WRONG_PW} -m ${NSB_IP6} &
2681 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_PW}
2685 run_cmd nettest -6 -s -I ${VRF} -M ${MD5_PW} -m ${NSB_IP6} &
2686 run_cmd nettest -6 -s -M ${MD5_WRONG_PW} -m ${NSB_IP6} &
2688 run_cmd_nsc nettest -6 -r ${NSA_IP6} -X ${MD5_WRONG_PW}
2693 run_cmd nettest -6 -s -I ${VRF} -M ${MD5_PW} -m ${NSB_IP6} &
2694 run_cmd nettest -6 -s -M ${MD5_WRONG_PW} -m ${NSB_IP6} &
2696 run_cmd_nsc nettest -6 -r ${NSA_IP6} -X ${MD5_PW}
2701 run_cmd nettest -6 -s -I ${VRF} -M ${MD5_PW} -m ${NSB_IP6} &
2702 run_cmd nettest -6 -s -M ${MD5_WRONG_PW} -m ${NSB_IP6} &
2704 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_WRONG_PW}
2708 run_cmd nettest -6 -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET6} &
2709 run_cmd nettest -6 -s -M ${MD5_WRONG_PW} -m ${NS_NET6} &
2711 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_PW}
2715 run_cmd nettest -6 -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET6} &
2716 run_cmd nettest -6 -s -M ${MD5_WRONG_PW} -m ${NS_NET6} &
2718 run_cmd_nsc nettest -6 -r ${NSA_IP6} -X ${MD5_WRONG_PW}
2723 run_cmd nettest -6 -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET6} &
2724 run_cmd nettest -6 -s -M ${MD5_WRONG_PW} -m ${NS_NET6} &
2726 run_cmd_nsc nettest -6 -r ${NSA_IP6} -X ${MD5_PW}
2731 run_cmd nettest -6 -s -I ${VRF} -M ${MD5_PW} -m ${NS_NET6} &
2732 run_cmd nettest -6 -s -M ${MD5_WRONG_PW} -m ${NS_NET6} &
2734 run_cmd_nsb nettest -6 -r ${NSA_IP6} -X ${MD5_WRONG_PW}
2741 run_cmd nettest -6 -s -I ${NSA_DEV} -M ${MD5_PW} -m ${NSB_IP6}
2742 log_test $? 1 "MD5: VRF: Device must be a VRF - single address"
2745 run_cmd nettest -6 -s -I ${NSA_DEV} -M ${MD5_PW} -m ${NS_NET6}
2746 log_test $? 1 "MD5: VRF: Device must be a VRF - prefix"
2752 local a
2757 for a in ${NSA_IP6} ${NSA_LO_IP6} ${NSA_LINKIP6}%${NSB_DEV}
2760 run_cmd nettest -6 -s &
2762 run_cmd_nsb nettest -6 -r ${a}
2763 log_test_addr ${a} $? 0 "Global server"
2767 for a in ${NSA_IP6} ${NSA_LO_IP6} ${NSA_LINKIP6}%${NSB_DEV}
2771 run_cmd_nsb nettest -6 -r ${a}
2772 log_test_addr ${a} $? 1 "No server"
2778 for a in ${NSB_IP6} ${NSB_LO_IP6} ${NSB_LINKIP6}%${NSA_DEV}
2781 run_cmd_nsb nettest -6 -s &
2783 run_cmd nettest -6 -r ${a}
2784 log_test_addr ${a} $? 0 "Client"
2787 for a in ${NSB_IP6} ${NSB_LO_IP6} ${NSB_LINKIP6}%${NSA_DEV}
2790 run_cmd_nsb nettest -6 -s &
2792 run_cmd nettest -6 -r ${a} -d ${NSA_DEV}
2793 log_test_addr ${a} $? 0 "Client, device bind"
2796 for a in ${NSB_IP6} ${NSB_LO_IP6} ${NSB_LINKIP6}%${NSA_DEV}
2800 run_cmd nettest -6 -r ${a} -d ${NSA_DEV}
2801 log_test_addr ${a} $? 1 "No server, device client"
2807 for a in ${NSA_IP6} ${NSA_LO_IP6} ::1
2810 run_cmd nettest -6 -s &
2812 run_cmd nettest -6 -r ${a}
2813 log_test_addr ${a} $? 0 "Global server, local connection"
2816 a=${NSA_IP6}
2818 run_cmd nettest -6 -s -I ${NSA_DEV} -3 ${NSA_DEV} &
2820 run_cmd nettest -6 -r ${a} -0 ${a}
2821 log_test_addr ${a} $? 0 "Device server, unbound client, local connection"
2823 for a in ${NSA_LO_IP6} ::1
2827 run_cmd nettest -6 -s -I ${NSA_DEV} &
2829 run_cmd nettest -6 -r ${a}
2830 log_test_addr ${a} $? 1 "Device server, unbound client, local connection"
2833 a=${NSA_IP6}
2835 run_cmd nettest -6 -s &
2837 run_cmd nettest -6 -r ${a} -d ${NSA_DEV} -0 ${a}
2838 log_test_addr ${a} $? 0 "Global server, device client, local connection"
2840 for a in ${NSA_LO_IP6} ::1
2844 run_cmd nettest -6 -s &
2846 run_cmd nettest -6 -r ${a} -d ${NSA_DEV}
2847 log_test_addr ${a} $? 1 "Global server, device client, local connection"
2850 for a in ${NSA_IP6} ${NSA_LINKIP6}
2853 run_cmd nettest -6 -s -I ${NSA_DEV} -3 ${NSA_DEV} &
2855 run_cmd nettest -6 -d ${NSA_DEV} -r ${a}
2856 log_test_addr ${a} $? 0 "Device server, device client, local conn"
2859 for a in ${NSA_IP6} ${NSA_LINKIP6}
2863 run_cmd nettest -6 -d ${NSA_DEV} -r ${a}
2864 log_test_addr ${a} $? 1 "No server, device client, local conn"
2872 local a
2882 for a in ${NSA_IP6} ${VRF_IP6} ${NSA_LINKIP6}%${NSB_DEV}
2886 run_cmd nettest -6 -s &
2888 run_cmd_nsb nettest -6 -r ${a}
2889 log_test_addr ${a} $? 1 "Global server"
2892 for a in ${NSA_IP6} ${VRF_IP6}
2895 run_cmd nettest -6 -s -I ${VRF} -3 ${VRF} &
2897 run_cmd_nsb nettest -6 -r ${a}
2898 log_test_addr ${a} $? 0 "VRF server"
2902 a=${NSA_LINKIP6}%${NSB_DEV}
2904 run_cmd nettest -6 -s -I ${VRF} -3 ${NSA_DEV} &
2906 run_cmd_nsb nettest -6 -r ${a}
2907 log_test_addr ${a} $? 0 "VRF server"
2909 for a in ${NSA_IP6} ${VRF_IP6} ${NSA_LINKIP6}%${NSB_DEV}
2912 run_cmd nettest -6 -s -I ${NSA_DEV} -3 ${NSA_DEV} &
2914 run_cmd_nsb nettest -6 -r ${a}
2915 log_test_addr ${a} $? 0 "Device server"
2919 for a in ${NSA_IP6} ${VRF_IP6} ${NSA_LINKIP6}%${NSB_DEV}
2923 run_cmd_nsb nettest -6 -r ${a}
2924 log_test_addr ${a} $? 1 "No server"
2928 a=${NSA_IP6}
2931 run_cmd nettest -6 -s &
2933 run_cmd nettest -6 -r ${a} -d ${NSA_DEV}
2934 log_test_addr ${a} $? 1 "Global server, local connection"
2949 for a in ${NSA_IP6} ${VRF_IP6}
2952 run_cmd nettest -6 -s -3 ${VRF} &
2954 run_cmd_nsb nettest -6 -r ${a}
2955 log_test_addr ${a} $? 0 "Global server"
2958 for a in ${NSA_IP6} ${VRF_IP6}
2961 run_cmd nettest -6 -s -I ${VRF} -3 ${VRF} &
2963 run_cmd_nsb nettest -6 -r ${a}
2964 log_test_addr ${a} $? 0 "VRF server"
2968 a=${NSA_LINKIP6}%${NSB_DEV}
2970 run_cmd nettest -6 -s -3 ${NSA_DEV} &
2972 run_cmd_nsb nettest -6 -r ${a}
2973 log_test_addr ${a} $? 0 "Global server"
2976 run_cmd nettest -6 -s -I ${VRF} -3 ${NSA_DEV} &
2978 run_cmd_nsb nettest -6 -r ${a}
2979 log_test_addr ${a} $? 0 "VRF server"
2981 for a in ${NSA_IP6} ${NSA_LINKIP6}%${NSB_DEV}
2984 run_cmd nettest -6 -s -I ${NSA_DEV} -3 ${NSA_DEV} &
2986 run_cmd_nsb nettest -6 -r ${a}
2987 log_test_addr ${a} $? 0 "Device server"
2991 for a in ${NSA_IP6} ${VRF_IP6} ${NSA_LINKIP6}%${NSB_DEV}
2995 run_cmd_nsb nettest -6 -r ${a}
2996 log_test_addr ${a} $? 1 "No server"
3000 for a in ${NSA_IP6} ${VRF_IP6}
3004 run_cmd nettest -6 -s -I ${VRF} &
3006 run_cmd nettest -6 -r ${a}
3007 log_test_addr ${a} $? 1 "Global server, local connection"
3014 for a in ${NSB_IP6} ${NSB_LO_IP6}
3017 run_cmd_nsb nettest -6 -s &
3019 run_cmd nettest -6 -r ${a} -d ${VRF}
3020 log_test_addr ${a} $? 0 "Client, VRF bind"
3023 a=${NSB_LINKIP6}
3026 run_cmd_nsb nettest -6 -s &
3028 run_cmd nettest -6 -r ${a} -d ${VRF}
3029 log_test_addr ${a} $? 1 "Client, VRF bind"
3031 for a in ${NSB_IP6} ${NSB_LO_IP6} ${NSB_LINKIP6}
3034 run_cmd_nsb nettest -6 -s &
3036 run_cmd nettest -6 -r ${a} -d ${NSA_DEV}
3037 log_test_addr ${a} $? 0 "Client, device bind"
3040 for a in ${NSB_IP6} ${NSB_LO_IP6}
3044 run_cmd nettest -6 -r ${a} -d ${VRF}
3045 log_test_addr ${a} $? 1 "No server, VRF client"
3048 for a in ${NSB_IP6} ${NSB_LO_IP6} ${NSB_LINKIP6}
3052 run_cmd nettest -6 -r ${a} -d ${NSA_DEV}
3053 log_test_addr ${a} $? 1 "No server, device client"
3056 for a in ${NSA_IP6} ${VRF_IP6} ::1
3059 run_cmd nettest -6 -s -I ${VRF} -3 ${VRF} &
3061 run_cmd nettest -6 -r ${a} -d ${VRF} -0 ${a}
3062 log_test_addr ${a} $? 0 "VRF server, VRF client, local connection"
3065 a=${NSA_IP6}
3067 run_cmd nettest -6 -s -I ${VRF} -3 ${VRF} &
3069 run_cmd nettest -6 -r ${a} -d ${NSA_DEV} -0 ${a}
3070 log_test_addr ${a} $? 0 "VRF server, device client, local connection"
3072 a=${NSA_IP6}
3075 run_cmd nettest -6 -s -I ${VRF} &
3077 run_cmd nettest -6 -r ${a}
3078 log_test_addr ${a} $? 1 "VRF server, unbound client, local connection"
3081 run_cmd nettest -6 -s -I ${NSA_DEV} -3 ${NSA_DEV} &
3083 run_cmd nettest -6 -r ${a} -d ${VRF} -0 ${a}
3084 log_test_addr ${a} $? 0 "Device server, VRF client, local connection"
3086 for a in ${NSA_IP6} ${NSA_LINKIP6}
3089 run_cmd nettest -6 -s -I ${NSA_DEV} -3 ${NSA_DEV} &
3091 run_cmd nettest -6 -r ${a} -d ${NSA_DEV} -0 ${a}
3092 log_test_addr ${a} $? 0 "Device server, device client, local connection"
3121 local a
3126 for a in ${NSA_IP6} ${NSA_LINKIP6}%${NSB_DEV}
3129 run_cmd nettest -6 -D -s -3 ${NSA_DEV} &
3131 run_cmd_nsb nettest -6 -D -r ${a}
3132 log_test_addr ${a} $? 0 "Global server"
3135 run_cmd nettest -6 -D -I ${NSA_DEV} -s -3 ${NSA_DEV} &
3137 run_cmd_nsb nettest -6 -D -r ${a}
3138 log_test_addr ${a} $? 0 "Device server"
3141 a=${NSA_LO_IP6}
3143 run_cmd nettest -6 -D -s -3 ${NSA_DEV} &
3145 run_cmd_nsb nettest -6 -D -r ${a}
3146 log_test_addr ${a} $? 0 "Global server"
3148 # should fail since loopback address is out of scope for a device
3149 # bound server, but it does not - hence this is more documenting
3153 #run_cmd nettest -6 -D -I ${NSA_DEV} -s -3 ${NSA_DEV} &
3155 #run_cmd_nsb nettest -6 -D -r ${a}
3156 #log_test_addr ${a} $? 1 "Device server"
3158 # negative test - should fail
3159 for a in ${NSA_IP6} ${NSA_LO_IP6} ${NSA_LINKIP6}%${NSB_DEV}
3163 run_cmd_nsb nettest -6 -D -r ${a}
3164 log_test_addr ${a} $? 1 "No server"
3170 for a in ${NSB_IP6} ${NSB_LO_IP6} ${NSB_LINKIP6}%${NSA_DEV}
3173 run_cmd_nsb nettest -6 -D -s &
3175 run_cmd nettest -6 -D -r ${a} -0 ${NSA_IP6}
3176 log_test_addr ${a} $? 0 "Client"
3179 run_cmd_nsb nettest -6 -D -s &
3181 run_cmd nettest -6 -D -r ${a} -d ${NSA_DEV} -0 ${NSA_IP6}
3182 log_test_addr ${a} $? 0 "Client, device bind"
3185 run_cmd_nsb nettest -6 -D -s &
3187 run_cmd nettest -6 -D -r ${a} -d ${NSA_DEV} -C -0 ${NSA_IP6}
3188 log_test_addr ${a} $? 0 "Client, device send via cmsg"
3191 run_cmd_nsb nettest -6 -D -s &
3193 run_cmd nettest -6 -D -r ${a} -d ${NSA_DEV} -S -0 ${NSA_IP6}
3194 log_test_addr ${a} $? 0 "Client, device bind via IPV6_UNICAST_IF"
3198 run_cmd nettest -6 -D -r ${a}
3199 log_test_addr ${a} $? 1 "No server, unbound client"
3203 run_cmd nettest -6 -D -r ${a} -d ${NSA_DEV}
3204 log_test_addr ${a} $? 1 "No server, device client"
3210 for a in ${NSA_IP6} ${NSA_LO_IP6} ::1
3213 run_cmd nettest -6 -D -s &
3215 run_cmd nettest -6 -D -r ${a} -0 ${a} -1 ${a}
3216 log_test_addr ${a} $? 0 "Global server, local connection"
3219 a=${NSA_IP6}
3221 run_cmd nettest -6 -s -D -I ${NSA_DEV} -3 ${NSA_DEV} &
3223 run_cmd nettest -6 -D -r ${a}
3224 log_test_addr ${a} $? 0 "Device server, unbound client, local connection"
3226 for a in ${NSA_LO_IP6} ::1
3230 run_cmd nettest -6 -s -D -I ${NSA_DEV} &
3232 run_cmd nettest -6 -D -r ${a}
3233 log_test_addr ${a} $? 1 "Device server, local connection"
3236 a=${NSA_IP6}
3238 run_cmd nettest -6 -s -D &
3240 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${a}
3241 log_test_addr ${a} $? 0 "Global server, device client, local connection"
3244 run_cmd nettest -6 -s -D &
3246 run_cmd nettest -6 -D -d ${NSA_DEV} -C -r ${a}
3247 log_test_addr ${a} $? 0 "Global server, device send via cmsg, local connection"
3250 run_cmd nettest -6 -s -D &
3252 run_cmd nettest -6 -D -d ${NSA_DEV} -S -r ${a}
3253 log_test_addr ${a} $? 0 "Global server, device client via IPV6_UNICAST_IF, local connection"
3255 for a in ${NSA_LO_IP6} ::1
3259 run_cmd nettest -6 -D -s &
3261 run_cmd nettest -6 -D -r ${a} -d ${NSA_DEV}
3262 log_test_addr ${a} $? 1 "Global server, device client, local connection"
3266 run_cmd nettest -6 -D -s &
3268 run_cmd nettest -6 -D -r ${a} -d ${NSA_DEV} -C
3269 log_test_addr ${a} $? 1 "Global server, device send via cmsg, local connection"
3273 run_cmd nettest -6 -D -s &
3275 run_cmd nettest -6 -D -r ${a} -d ${NSA_DEV} -S
3276 log_test_addr ${a} $? 1 "Global server, device client via IP_UNICAST_IF, local connection"
3280 run_cmd nettest -6 -D -s &
3282 run_cmd nettest -6 -D -r ${a} -d ${NSA_DEV} -S -U
3283 …log_test_addr ${a} $? 1 "Global server, device client via IP_UNICAST_IF, local connection, with co…
3286 a=${NSA_IP6}
3288 run_cmd nettest -6 -D -s -I ${NSA_DEV} -3 ${NSA_DEV} &
3290 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${a} -0 ${a}
3291 log_test_addr ${a} $? 0 "Device server, device client, local conn"
3295 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${a}
3296 log_test_addr ${a} $? 1 "No server, device client, local conn"
3299 run_cmd_nsb ip -6 addr del ${NSB_IP6}/64 dev ${NSB_DEV}
3300 run_cmd_nsb ip -6 ro add ${NSA_IP6}/128 dev ${NSB_DEV}
3302 run_cmd nettest -6 -s -D &
3304 run_cmd_nsb nettest -6 -D -r ${NSA_IP6}
3305 log_test $? 0 "UDP in - LLA to GUA"
3307 run_cmd_nsb ip -6 ro del ${NSA_IP6}/128 dev ${NSB_DEV}
3308 run_cmd_nsb ip -6 addr add ${NSB_IP6}/64 dev ${NSB_DEV} nodad
3313 local a
3322 for a in ${NSA_IP6} ${VRF_IP6}
3326 run_cmd nettest -6 -D -s &
3328 run_cmd_nsb nettest -6 -D -r ${a}
3329 log_test_addr ${a} $? 1 "Global server"
3332 for a in ${NSA_IP6} ${VRF_IP6}
3335 run_cmd nettest -6 -D -I ${VRF} -s -3 ${NSA_DEV} &
3337 run_cmd_nsb nettest -6 -D -r ${a}
3338 log_test_addr ${a} $? 0 "VRF server"
3341 for a in ${NSA_IP6} ${VRF_IP6}
3344 run_cmd nettest -6 -D -I ${NSA_DEV} -s -3 ${NSA_DEV} &
3346 run_cmd_nsb nettest -6 -D -r ${a}
3347 log_test_addr ${a} $? 0 "Enslaved device server"
3350 # negative test - should fail
3351 for a in ${NSA_IP6} ${VRF_IP6}
3355 run_cmd_nsb nettest -6 -D -r ${a}
3356 log_test_addr ${a} $? 1 "No server"
3362 for a in ${NSA_IP6} ${VRF_IP6}
3366 run_cmd nettest -6 -D -s &
3368 run_cmd nettest -6 -D -d ${VRF} -r ${a}
3369 log_test_addr ${a} $? 1 "Global server, VRF client, local conn"
3372 for a in ${NSA_IP6} ${VRF_IP6}
3375 run_cmd nettest -6 -D -I ${VRF} -s &
3377 run_cmd nettest -6 -D -d ${VRF} -r ${a}
3378 log_test_addr ${a} $? 0 "VRF server, VRF client, local conn"
3381 a=${NSA_IP6}
3384 run_cmd nettest -6 -D -s &
3386 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${a}
3387 log_test_addr ${a} $? 1 "Global server, device client, local conn"
3390 run_cmd nettest -6 -D -I ${VRF} -s -3 ${NSA_DEV} &
3392 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${a}
3393 log_test_addr ${a} $? 0 "VRF server, device client, local conn"
3396 run_cmd nettest -6 -D -I ${NSA_DEV} -s -3 ${NSA_DEV} &
3398 run_cmd nettest -6 -D -d ${VRF} -r ${a}
3399 log_test_addr ${a} $? 0 "Enslaved device server, VRF client, local conn"
3402 run_cmd nettest -6 -D -I ${NSA_DEV} -s -3 ${NSA_DEV} &
3404 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${a}
3405 log_test_addr ${a} $? 0 "Enslaved device server, device client, local conn"
3414 for a in ${NSA_IP6} ${VRF_IP6}
3417 run_cmd nettest -6 -D -s -3 ${NSA_DEV} &
3419 run_cmd_nsb nettest -6 -D -r ${a}
3420 log_test_addr ${a} $? 0 "Global server"
3423 for a in ${NSA_IP6} ${VRF_IP6}
3426 run_cmd nettest -6 -D -I ${VRF} -s -3 ${NSA_DEV} &
3428 run_cmd_nsb nettest -6 -D -r ${a}
3429 log_test_addr ${a} $? 0 "VRF server"
3432 for a in ${NSA_IP6} ${VRF_IP6}
3435 run_cmd nettest -6 -D -I ${NSA_DEV} -s -3 ${NSA_DEV} &
3437 run_cmd_nsb nettest -6 -D -r ${a}
3438 log_test_addr ${a} $? 0 "Enslaved device server"
3441 # negative test - should fail
3442 for a in ${NSA_IP6} ${VRF_IP6}
3445 run_cmd_nsb nettest -6 -D -r ${a}
3446 log_test_addr ${a} $? 1 "No server"
3453 run_cmd_nsb nettest -6 -D -s &
3455 run_cmd nettest -6 -D -d ${VRF} -r ${NSB_IP6}
3458 # negative test - should fail
3460 run_cmd nettest -6 -D -d ${VRF} -r ${NSB_IP6}
3464 run_cmd_nsb nettest -6 -D -s &
3466 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${NSB_IP6}
3469 # negative test - should fail
3471 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${NSB_IP6}
3477 a=${NSA_IP6}
3479 run_cmd nettest -6 -D -s -3 ${NSA_DEV} &
3481 run_cmd nettest -6 -D -d ${VRF} -r ${a}
3482 log_test_addr ${a} $? 0 "Global server, VRF client, local conn"
3485 run_cmd nettest -6 -D -I ${VRF} -s -3 ${NSA_DEV} &
3487 run_cmd nettest -6 -D -d ${VRF} -r ${a}
3488 log_test_addr ${a} $? 0 "VRF server, VRF client, local conn"
3491 a=${VRF_IP6}
3493 run_cmd nettest -6 -D -s -3 ${VRF} &
3495 run_cmd nettest -6 -D -d ${VRF} -r ${a}
3496 log_test_addr ${a} $? 0 "Global server, VRF client, local conn"
3499 run_cmd nettest -6 -D -I ${VRF} -s -3 ${VRF} &
3501 run_cmd nettest -6 -D -d ${VRF} -r ${a}
3502 log_test_addr ${a} $? 0 "VRF server, VRF client, local conn"
3504 # negative test - should fail
3505 for a in ${NSA_IP6} ${VRF_IP6}
3508 run_cmd nettest -6 -D -d ${VRF} -r ${a}
3509 log_test_addr ${a} $? 1 "No server, VRF client, local conn"
3513 a=${NSA_IP6}
3515 run_cmd nettest -6 -D -s -3 ${NSA_DEV} &
3517 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${a}
3518 log_test_addr ${a} $? 0 "Global server, device client, local conn"
3521 run_cmd nettest -6 -D -I ${VRF} -s -3 ${NSA_DEV} &
3523 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${a}
3524 log_test_addr ${a} $? 0 "VRF server, device client, local conn"
3527 run_cmd nettest -6 -D -I ${NSA_DEV} -s -3 ${NSA_DEV} &
3529 run_cmd nettest -6 -D -d ${VRF} -r ${a}
3530 log_test_addr ${a} $? 0 "Device server, VRF client, local conn"
3533 run_cmd nettest -6 -D -I ${NSA_DEV} -s -3 ${NSA_DEV} &
3535 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${a}
3536 log_test_addr ${a} $? 0 "Device server, device client, local conn"
3539 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${a}
3540 log_test_addr ${a} $? 1 "No server, device client, local conn"
3545 run_cmd nettest -6 -D -s &
3547 run_cmd_nsb nettest -6 -D -d ${NSB_DEV} -r ${NSA_LINKIP6}
3551 run_cmd_nsb nettest -6 -D -d ${NSB_DEV} -r ${NSA_LINKIP6}
3556 run_cmd_nsb nettest -6 -D -s &
3558 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${NSB_LINKIP6}
3562 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${NSB_LINKIP6}
3567 run_cmd nettest -6 -D -s &
3569 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${NSA_LINKIP6}
3570 log_test $? 0 "Enslaved device client, local conn - linklocal IP"
3573 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${NSA_LINKIP6}
3574 log_test $? 1 "No server, device client, local conn - linklocal IP"
3577 run_cmd_nsb ip -6 addr del ${NSB_IP6}/64 dev ${NSB_DEV}
3578 run_cmd_nsb ip -6 ro add ${NSA_IP6}/128 dev ${NSB_DEV}
3580 run_cmd nettest -6 -s -D &
3582 run_cmd_nsb nettest -6 -D -r ${NSA_IP6}
3583 log_test $? 0 "UDP in - LLA to GUA"
3585 run_cmd_nsb ip -6 ro del ${NSA_IP6}/128 dev ${NSB_DEV}
3586 run_cmd_nsb ip -6 addr add ${NSB_IP6}/64 dev ${NSB_DEV} nodad
3620 for a in ${NSA_IP6} ${NSA_LO_IP6}
3623 run_cmd nettest -6 -s -R -P ipv6-icmp -l ${a} -b
3624 log_test_addr ${a} $? 0 "Raw socket bind to local address"
3627 run_cmd nettest -6 -s -R -P ipv6-icmp -l ${a} -I ${NSA_DEV} -b
3628 log_test_addr ${a} $? 0 "Raw socket bind to local address after device bind"
3634 a=${NL_IP6}
3636 run_cmd nettest -6 -s -R -P icmp -f -l ${a} -I ${NSA_DEV} -b
3637 log_test_addr ${a} $? 0 "Raw socket bind to nonlocal address"
3642 a=${NSA_IP6}
3644 run_cmd nettest -6 -s -l ${a} -t1 -b
3645 log_test_addr ${a} $? 0 "TCP socket bind to local address"
3648 run_cmd nettest -6 -s -l ${a} -I ${NSA_DEV} -t1 -b
3649 log_test_addr ${a} $? 0 "TCP socket bind to local address after device bind"
3651 # Sadly, the kernel allows binding a socket to a device and then
3654 a=${NSA_LO_IP6}
3657 run_cmd nettest -6 -s -l ${a} -I ${NSA_DEV} -t1 -b
3658 log_test_addr ${a} $? 0 "TCP socket bind to out of scope local address"
3666 for a in ${NSA_IP6} ${VRF_IP6}
3669 run_cmd nettest -6 -s -R -P ipv6-icmp -l ${a} -I ${VRF} -b
3670 log_test_addr ${a} $? 0 "Raw socket bind to local address after vrf bind"
3673 run_cmd nettest -6 -s -R -P ipv6-icmp -l ${a} -I ${NSA_DEV} -b
3674 log_test_addr ${a} $? 0 "Raw socket bind to local address after device bind"
3677 a=${NSA_LO_IP6}
3680 run_cmd nettest -6 -s -R -P ipv6-icmp -l ${a} -I ${VRF} -b
3681 log_test_addr ${a} $? 1 "Raw socket bind to invalid local address after vrf bind"
3686 a=${NL_IP6}
3688 run_cmd nettest -6 -s -R -P icmp -f -l ${a} -I ${VRF} -b
3689 log_test_addr ${a} $? 0 "Raw socket bind to nonlocal address after VRF bind"
3694 # address on enslaved device is valid for the VRF or device in a VRF
3695 for a in ${NSA_IP6} ${VRF_IP6}
3698 run_cmd nettest -6 -s -l ${a} -I ${VRF} -t1 -b
3699 log_test_addr ${a} $? 0 "TCP socket bind to local address with VRF bind"
3702 a=${NSA_IP6}
3704 run_cmd nettest -6 -s -l ${a} -I ${NSA_DEV} -t1 -b
3705 log_test_addr ${a} $? 0 "TCP socket bind to local address with device bind"
3707 # Sadly, the kernel allows binding a socket to a device and then
3711 a=${VRF_IP6}
3714 run_cmd nettest -6 -s -l ${a} -I ${NSA_DEV} -t1 -b
3715 log_test_addr ${a} $? 0 "TCP socket bind to VRF address with device bind"
3717 a=${NSA_LO_IP6}
3720 run_cmd nettest -6 -s -l ${a} -I ${VRF} -t1 -b
3721 log_test_addr ${a} $? 1 "TCP socket bind to invalid local address for VRF"
3725 run_cmd nettest -6 -s -l ${a} -I ${NSA_DEV} -t1 -b
3726 log_test_addr ${a} $? 1 "TCP socket bind to invalid local address for device bind"
3749 local varg="-6 $2"
3751 local a
3756 for a in ${NSA_IP6} ${VRF_IP6}
3759 run_cmd nettest ${varg} -s &
3761 run_cmd_nsb nettest ${varg} -r ${a} &
3765 log_test_addr ${a} 0 0 "${desc}, global server"
3770 for a in ${NSA_IP6} ${VRF_IP6}
3773 run_cmd nettest ${varg} -I ${VRF} -s &
3775 run_cmd_nsb nettest ${varg} -r ${a} &
3779 log_test_addr ${a} 0 0 "${desc}, VRF server"
3784 for a in ${NSA_IP6} ${VRF_IP6}
3787 run_cmd nettest ${varg} -I ${NSA_DEV} -s &
3789 run_cmd_nsb nettest ${varg} -r ${a} &
3793 log_test_addr ${a} 0 0 "${desc}, enslaved device server"
3802 run_cmd_nsb nettest ${varg} -s &
3804 run_cmd nettest ${varg} -d ${VRF} -r ${NSB_IP6} &
3813 run_cmd_nsb nettest ${varg} -s &
3815 run_cmd nettest ${varg} -d ${NSA_DEV} -r ${NSB_IP6} &
3827 for a in ${NSA_IP6} ${VRF_IP6}
3830 run_cmd nettest ${varg} -s &
3832 run_cmd nettest ${varg} -d ${VRF} -r ${a} &
3836 log_test_addr ${a} 0 0 "${desc}, global server, VRF client"
3841 for a in ${NSA_IP6} ${VRF_IP6}
3844 run_cmd nettest ${varg} -I ${VRF} -s &
3846 run_cmd nettest ${varg} -d ${VRF} -r ${a} &
3850 log_test_addr ${a} 0 0 "${desc}, VRF server and client"
3855 a=${NSA_IP6}
3857 run_cmd nettest ${varg} -s &
3859 run_cmd nettest ${varg} -d ${NSA_DEV} -r ${a} &
3863 log_test_addr ${a} 0 0 "${desc}, global server, device client"
3868 run_cmd nettest ${varg} -I ${VRF} -s &
3870 run_cmd nettest ${varg} -d ${NSA_DEV} -r ${a} &
3874 log_test_addr ${a} 0 0 "${desc}, VRF server, device client"
3879 run_cmd nettest ${varg} -I ${NSA_DEV} -s &
3881 run_cmd nettest ${varg} -d ${NSA_DEV} -r ${a} &
3885 log_test_addr ${a} 0 0 "${desc}, device server, device client"
3891 local a
3893 a=${NSA_IP6}
3895 run_cmd_nsb ${ping6} -f ${a} &
3899 log_test_addr ${a} 0 0 "Device delete with active traffic - ping in"
3904 run_cmd ${ping6} -f ${NSB_IP6} -I ${VRF} &
3908 log_test_addr ${a} 0 0 "Device delete with active traffic - ping out"
3913 log_section "Run time tests - ipv6"
3919 ipv6_rt "TCP active socket" "-n -1"
3922 ipv6_rt "TCP passive socket" "-i"
3925 ipv6_rt "UDP active socket" "-D -n -1"
3933 local a
3935 for a in ${NSA_IP} ${VRF_IP}
3938 run_cmd nettest -s &
3940 run_cmd_nsb nettest -r ${a}
3941 log_test_addr ${a} $? 1 "Global server, reject with TCP-reset on Rx"
3949 local a
3951 [ "${stype}" = "UDP" ] && arg="-D"
3953 for a in ${NSA_IP} ${VRF_IP}
3956 run_cmd nettest ${arg} -s &
3958 run_cmd_nsb nettest ${arg} -r ${a}
3959 log_test_addr ${a} $? 1 "Global ${stype} server, Rx reject icmp-port-unreach"
3969 run_cmd iptables -A INPUT -p tcp --dport 12345 -j REJECT --reject-with tcp-reset
3977 run_cmd iptables -F
3978 run_cmd iptables -A INPUT -p tcp --dport 12345 -j REJECT --reject-with icmp-port-unreachable
3979 run_cmd iptables -A INPUT -p udp --dport 12345 -j REJECT --reject-with icmp-port-unreachable
3985 iptables -F
3990 local a
3992 for a in ${NSA_IP6} ${VRF_IP6}
3995 run_cmd nettest -6 -s &
3997 run_cmd_nsb nettest -6 -r ${a}
3998 log_test_addr ${a} $? 1 "Global server, reject with TCP-reset on Rx"
4006 local a
4008 [ "${stype}" = "UDP" ] && arg="$arg -D"
4010 for a in ${NSA_IP6} ${VRF_IP6}
4013 run_cmd nettest -6 -s ${arg} &
4015 run_cmd_nsb nettest -6 ${arg} -r ${a}
4016 log_test_addr ${a} $? 1 "Global ${stype} server, Rx reject icmp-port-unreach"
4026 run_cmd ip6tables -A INPUT -p tcp --dport 12345 -j REJECT --reject-with tcp-reset
4033 run_cmd ip6tables -F
4034 run_cmd ip6tables -A INPUT -p tcp --dport 12345 -j REJECT --reject-with icmp6-port-unreachable
4035 run_cmd ip6tables -A INPUT -p udp --dport 12345 -j REJECT --reject-with icmp6-port-unreachable
4041 ip6tables -F
4048 # ns-A device enslaved to bridge. Verify traffic with and without
4056 setup_cmd ip -6 addr del dev ${NSA_DEV} ${NSA_IP6}/64
4060 setup_cmd ip -6 addr add dev br0 ${NSA_IP6}/64 nodad
4071 run_cmd ping -c1 -w1 -I br0 ${NSB_IP}
4072 log_test $? 0 "Bridge into VRF - IPv4 ping out"
4075 run_cmd ${ping6} -c1 -w1 -I br0 ${NSB_IP6}
4076 log_test $? 0 "Bridge into VRF - IPv6 ping out"
4079 run_cmd_nsb ping -c1 -w1 ${NSA_IP}
4080 log_test $? 0 "Bridge into VRF - IPv4 ping in"
4083 run_cmd_nsb ${ping6} -c1 -w1 ${NSA_IP6}
4084 log_test $? 0 "Bridge into VRF - IPv6 ping in"
4087 if [ $? -eq 0 ]; then
4089 run_cmd ping -c1 -w1 -I br0 ${NSB_IP}
4090 log_test $? 0 "Bridge into VRF with br_netfilter - IPv4 ping out"
4093 run_cmd ${ping6} -c1 -w1 -I br0 ${NSB_IP6}
4094 log_test $? 0 "Bridge into VRF with br_netfilter - IPv6 ping out"
4097 run_cmd_nsb ping -c1 -w1 ${NSA_IP}
4098 log_test $? 0 "Bridge into VRF with br_netfilter - IPv4 ping in"
4101 run_cmd_nsb ${ping6} -c1 -w1 ${NSA_IP6}
4102 log_test $? 0 "Bridge into VRF with br_netfilter - IPv6 ping in"
4109 setup_cmd ip -6 addr add dev br0.100 2001:db8:101::1/64 nodad
4113 setup_cmd_nsb ip -6 addr add dev vlan100 2001:db8:101::2/64 nodad
4120 run_cmd ping -c1 -w1 -I br0.100 172.16.101.2
4121 log_test $? 0 "Bridge vlan into VRF - IPv4 ping out"
4124 run_cmd ${ping6} -c1 -w1 -I br0.100 2001:db8:101::2
4125 log_test $? 0 "Bridge vlan into VRF - IPv6 ping out"
4128 run_cmd_nsb ping -c1 -w1 172.16.101.1
4129 log_test $? 0 "Bridge vlan into VRF - IPv4 ping in"
4132 run_cmd_nsb ${ping6} -c1 -w1 2001:db8:101::1
4133 log_test $? 0 "Bridge vlan into VRF - IPv6 ping in"
4136 if [ $? -eq 0 ]; then
4138 run_cmd ping -c1 -w1 -I br0.100 172.16.101.2
4139 log_test $? 0 "Bridge vlan into VRF with br_netfilter - IPv4 ping out"
4142 run_cmd ${ping6} -c1 -w1 -I br0.100 2001:db8:101::2
4143 log_test $? 0 "Bridge vlan into VRF with br_netfilter - IPv6 ping out"
4146 run_cmd_nsb ping -c1 -w1 172.16.101.1
4147 log_test $? 0 "Bridge vlan into VRF - IPv4 ping in"
4150 run_cmd_nsb ${ping6} -c1 -w1 2001:db8:101::1
4151 log_test $? 0 "Bridge vlan into VRF - IPv6 ping in"
4159 # ns-A device is connected to both ns-B and ns-C on a single VRF but only has
4164 # only want reply from ns-A
4165 setup_cmd_nsb sysctl -qw net.ipv6.icmp.echo_ignore_multicast=1
4166 setup_cmd_nsc sysctl -qw net.ipv6.icmp.echo_ignore_multicast=1
4169 run_cmd_nsb ping -c1 -w1 ${MCAST}%${NSB_DEV}
4170 log_test_addr ${MCAST}%${NSB_DEV} $? 0 "Pre cycle, ping out ns-B"
4172 run_cmd_nsc ping -c1 -w1 ${MCAST}%${NSC_DEV}
4173 log_test_addr ${MCAST}%${NSC_DEV} $? 0 "Pre cycle, ping out ns-C"
4175 # cycle/flap the first ns-A interface
4181 run_cmd_nsb ping -c1 -w1 ${MCAST}%${NSB_DEV}
4182 log_test_addr ${MCAST}%${NSB_DEV} $? 0 "Post cycle ${NSA} ${NSA_DEV}, ping out ns-B"
4183 run_cmd_nsc ping -c1 -w1 ${MCAST}%${NSC_DEV}
4184 log_test_addr ${MCAST}%${NSC_DEV} $? 0 "Post cycle ${NSA} ${NSA_DEV}, ping out ns-C"
4186 # cycle/flap the second ns-A interface
4192 run_cmd_nsb ping -c1 -w1 ${MCAST}%${NSB_DEV}
4193 log_test_addr ${MCAST}%${NSB_DEV} $? 0 "Post cycle ${NSA} ${NSA_DEV2}, ping out ns-B"
4194 run_cmd_nsc ping -c1 -w1 ${MCAST}%${NSC_DEV}
4195 log_test_addr ${MCAST}%${NSC_DEV} $? 0 "Post cycle ${NSA} ${NSA_DEV2}, ping out ns-C"
4198 # Perform IPv{4,6} SNAT on ns-A, and verify TCP connection is successfully
4199 # established with ns-B.
4206 …run_cmd iptables -t nat -A POSTROUTING -p tcp -m tcp --dport ${port} -j SNAT --to-source ${NSA_LO_…
4207 …run_cmd ip6tables -t nat -A POSTROUTING -p tcp -m tcp --dport ${port} -j SNAT --to-source ${NSA_LO…
4209 run_cmd_nsb nettest -s -l ${NSB_IP} -p ${port} &
4211 run_cmd nettest -d ${VRF} -r ${NSB_IP} -p ${port}
4214 run_cmd_nsb nettest -6 -s -l ${NSB_IP6} -p ${port} &
4216 run_cmd nettest -6 -d ${VRF} -r ${NSB_IP6} -p ${port}
4220 …run_cmd iptables -t nat -D POSTROUTING -p tcp -m tcp --dport ${port} -j SNAT --to-source ${NSA_LO_…
4221 …run_cmd ip6tables -t nat -D POSTROUTING -p tcp -m tcp --dport ${port} -j SNAT --to-source ${NSA_LO…
4243 -4 IPv4 tests only
4244 -6 IPv6 tests only
4245 -t <test> Test name/set to run
4246 -p Pause on fail
4247 -P Pause after each test
4248 -v Be verbose
4285 if [ -z "$TESTS" ]; then
4302 declare -i nfail=0
4303 declare -i nsuccess=0
4335 if [ $nfail -ne 0 ]; then
4337 elif [ $nsuccess -eq 0 ]; then