Lines Matching +full:1 +full:a

8 #   1. icmp, tcp, udp and netfilter
16 # ns-A | ns-B
23 # ns-A:
24 # eth1: 172.16.1.1/24, 2001:db8:1::1/64
25 # lo: 127.0.0.1/8, ::1/128
26 # 172.16.2.1/32, 2001:db8:2::1/128
27 # red: 127.0.0.1/8, ::1/128
28 # 172.16.3.1/32, 2001:db8:3::1/128
31 # eth1: 172.16.1.2/24, 2001:db8:1::2/64
32 # lo2: 127.0.0.1/8, ::1/128
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
59 NSA_IP6=2001:db8:1::1
60 NSB_IP6=2001:db8:1::2
61 VRF_IP6=2001:db8:3::1
62 NS_NET6=2001:db8:1::/120
66 NSA_LO_IP6=2001:db8:2::1
72 MCAST=ff02::1
77 NSA=ns-A
85 which ping6 > /dev/null 2>&1 && ping6=$(which ping6) || ping6=$(which ping)
92 local rc=$1
96 [ "${VERBOSE}" = "1" ] && echo
99 nsuccess=$((nsuccess+1))
102 nfail=$((nfail+1))
107 read a
108 [ "$a" = "q" ] && exit 1
115 read a
116 [ "$a" = "q" ] && exit 1
124 local addr=$1
156 if [ "${VERBOSE}" = "1" ]; then
164 if [ "${VERBOSE}" = "1" ]; then
173 if [ "${VERBOSE}" = "1" ]; then
181 killall nettest ping ping6 >/dev/null 2>&1
182 sleep 1
190 if [ "$VERBOSE" = "1" ]; then
194 out=$($cmd 2>&1)
196 if [ "$VERBOSE" = "1" -a -n "$out" ]; then
234 read a
256 read a
278 read a
284 # set sysctl values in NS-A
292 # get sysctl values in NS-A
303 case "$1" in
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";;
330 local ns=$1
344 [ -z "$addr" ] && return 1
356 local ns=$1
368 ip -netns ${ns} -6 addr add ::1 dev ${vrf} nodad
384 local ns=$1
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
410 local ns1=$1
455 ip netns del ${NSC} >/dev/null 2>&1
460 local with_vrf=${1}
462 # make sure we are starting with a clean slate
477 # tell ns-A how to get to remote addresses of ns-B
489 # ns-B but for a device NOT in the VRF
499 # tell ns-B how to get to remote addresses of ns-A
505 sleep 1
510 # make sure we are starting with a clean slate
535 sleep 1
543 local a
548 for a in ${NSB_IP} ${NSB_LO_IP}
551 run_cmd ping -c1 -w1 ${a}
552 log_test_addr ${a} $? 0 "ping out"
555 run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
556 log_test_addr ${a} $? 0 "ping out, device bind"
559 run_cmd ping -c1 -w1 -I ${NSA_LO_IP} ${a}
560 log_test_addr ${a} $? 0 "ping out, address bind"
566 for a in ${NSA_IP} ${NSA_LO_IP}
569 run_cmd_nsb ping -c1 -w1 ${a}
570 log_test_addr ${a} $? 0 "ping in"
576 for a in ${NSA_IP} ${NSA_LO_IP} 127.0.0.1
579 run_cmd ping -c1 -w1 ${a}
580 log_test_addr ${a} $? 0 "ping local"
587 a=${NSA_IP}
589 run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
590 log_test_addr ${a} $? 0 "ping local, device bind"
593 # fails in a really weird way though because ipv4 special cases
595 for a in ${NSA_LO_IP} 127.0.0.1
599 run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
600 log_test_addr ${a} $? 1 "ping local, device bind"
612 a=${NSB_LO_IP}
613 run_cmd ping -c1 -w1 ${a}
614 log_test_addr ${a} $? 2 "ping out, blocked by rule"
617 # a viable rtable if the oif (e.g., bind to device) is set, so this
619 # run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
621 a=${NSA_LO_IP}
624 run_cmd_nsb ping -c1 -w1 ${a}
625 log_test_addr ${a} $? 1 "ping in, blocked by rule"
627 [ "$VERBOSE" = "1" ] && echo
640 a=${NSB_LO_IP}
641 run_cmd ping -c1 -w1 ${a}
642 log_test_addr ${a} $? 2 "ping out, blocked by route"
645 # a viable rtable if the oif (e.g., bind to device) is set, so this
646 # case succeeds despite not having a route for the address
647 # run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
649 a=${NSA_LO_IP}
652 run_cmd_nsb ping -c1 -w1 ${a}
653 log_test_addr ${a} $? 1 "ping in, blocked by route"
661 a=${NSB_LO_IP}
662 run_cmd ping -c1 -w1 ${a}
663 log_test_addr ${a} $? 2 "ping out, unreachable default route"
666 # a viable rtable if the oif (e.g., bind to device) is set, so this
667 # case succeeds despite not having a route for the address
668 # run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
673 local a
676 set_sysctl net.ipv4.raw_l3mdev_accept=1 2>/dev/null
681 for a in ${NSB_IP} ${NSB_LO_IP}
684 run_cmd ping -c1 -w1 -I ${VRF} ${a}
685 log_test_addr ${a} $? 0 "ping out, VRF bind"
688 run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
689 log_test_addr ${a} $? 0 "ping out, device bind"
692 run_cmd ip vrf exec ${VRF} ping -c1 -w1 -I ${NSA_IP} ${a}
693 log_test_addr ${a} $? 0 "ping out, vrf device + dev address bind"
696 run_cmd ip vrf exec ${VRF} ping -c1 -w1 -I ${VRF_IP} ${a}
697 log_test_addr ${a} $? 0 "ping out, vrf device + vrf address bind"
703 for a in ${NSA_IP} ${VRF_IP}
706 run_cmd_nsb ping -c1 -w1 ${a}
707 log_test_addr ${a} $? 0 "ping in"
713 for a in ${NSA_IP} ${VRF_IP} 127.0.0.1
716 show_hint "Source address should be ${a}"
717 run_cmd ping -c1 -w1 -I ${VRF} ${a}
718 log_test_addr ${a} $? 0 "ping local, VRF bind"
725 a=${NSA_IP}
727 run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
728 log_test_addr ${a} $? 0 "ping local, device bind"
731 for a in ${VRF_IP} 127.0.0.1
735 run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
736 log_test_addr ${a} $? 1 "ping local, device bind"
746 a=${NSB_LO_IP}
747 run_cmd ping -c1 -w1 -I ${VRF} ${a}
748 log_test_addr ${a} $? 2 "ping out, vrf bind, blocked by rule"
751 run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
752 log_test_addr ${a} $? 2 "ping out, device bind, blocked by rule"
754 a=${NSA_LO_IP}
757 run_cmd_nsb ping -c1 -w1 ${a}
758 log_test_addr ${a} $? 1 "ping in, blocked by rule"
760 [ "$VERBOSE" = "1" ] && echo
770 a=${NSB_LO_IP}
771 run_cmd ping -c1 -w1 -I ${VRF} ${a}
772 log_test_addr ${a} $? 2 "ping out, vrf bind, unreachable route"
775 run_cmd ping -c1 -w1 -I ${NSA_DEV} ${a}
776 log_test_addr ${a} $? 2 "ping out, device bind, unreachable route"
778 a=${NSA_LO_IP}
781 run_cmd_nsb ping -c1 -w1 ${a}
782 log_test_addr ${a} $? 1 "ping in, unreachable route"
794 set_sysctl net.ipv4.raw_l3mdev_accept=1 2>/dev/null
817 sleep 1
825 sleep 1
833 sleep 1
841 sleep 1
852 sleep 1
860 sleep 1
868 sleep 1
885 sleep 1
893 sleep 1
901 sleep 1
909 sleep 1
920 sleep 1
928 sleep 1
936 sleep 1
941 # duplicate config between default VRF and a VRF
947 sleep 1
954 sleep 1
962 sleep 1
970 sleep 1
977 sleep 1
984 sleep 1
992 sleep 1
1000 sleep 1
1009 log_test $? 1 "MD5: VRF: Device must be a VRF - single address"
1013 log_test $? 1 "MD5: VRF: Device must be a VRF - prefix"
1024 sleep 1
1031 sleep 1
1038 # This particular test needs tcp_l3mdev_accept=1 for Global server to accept VRF connections
1041 set_sysctl net.ipv4.tcp_l3mdev_accept=1
1045 sleep 1
1051 sleep 1
1057 sleep 1
1063 sleep 1
1073 local a
1078 for a in ${NSA_IP} ${NSA_LO_IP}
1082 sleep 1
1083 run_cmd_nsb nettest -r ${a}
1084 log_test_addr ${a} $? 0 "Global server"
1087 a=${NSA_IP}
1090 sleep 1
1091 run_cmd_nsb nettest -r ${a}
1092 log_test_addr ${a} $? 0 "Device server"
1095 for a in ${NSA_IP} ${NSA_LO_IP}
1099 run_cmd_nsb nettest -r ${a}
1100 log_test_addr ${a} $? 1 "No server"
1106 for a in ${NSB_IP} ${NSB_LO_IP}
1110 sleep 1
1111 run_cmd nettest -r ${a} -0 ${NSA_IP}
1112 log_test_addr ${a} $? 0 "Client"
1116 sleep 1
1117 run_cmd nettest -r ${a} -d ${NSA_DEV}
1118 log_test_addr ${a} $? 0 "Client, device bind"
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"
1134 for a in ${NSA_IP} ${NSA_LO_IP} 127.0.0.1
1138 sleep 1
1139 run_cmd nettest -r ${a} -0 ${a} -1 ${a}
1140 log_test_addr ${a} $? 0 "Global server, local connection"
1143 a=${NSA_IP}
1146 sleep 1
1147 run_cmd nettest -r ${a} -0 ${a}
1148 log_test_addr ${a} $? 0 "Device server, unbound client, local connection"
1150 for a in ${NSA_LO_IP} 127.0.0.1
1155 sleep 1
1156 run_cmd nettest -r ${a}
1157 log_test_addr ${a} $? 1 "Device server, unbound client, local connection"
1160 a=${NSA_IP}
1163 sleep 1
1164 run_cmd nettest -r ${a} -0 ${a} -d ${NSA_DEV}
1165 log_test_addr ${a} $? 0 "Global server, device client, local connection"
1167 for a in ${NSA_LO_IP} 127.0.0.1
1172 sleep 1
1173 run_cmd nettest -r ${a} -d ${NSA_DEV}
1174 log_test_addr ${a} $? 1 "Global server, device client, local connection"
1177 a=${NSA_IP}
1180 sleep 1
1181 run_cmd nettest -d ${NSA_DEV} -r ${a} -0 ${a}
1182 log_test_addr ${a} $? 0 "Device server, device client, local connection"
1186 run_cmd nettest -d ${NSA_DEV} -r ${a}
1187 log_test_addr ${a} $? 1 "No server, device client, local conn"
1194 local a
1204 for a in ${NSA_IP} ${VRF_IP}
1209 sleep 1
1210 run_cmd_nsb nettest -r ${a}
1211 log_test_addr ${a} $? 1 "Global server"
1215 sleep 1
1216 run_cmd_nsb nettest -r ${a}
1217 log_test_addr ${a} $? 0 "VRF server"
1221 sleep 1
1222 run_cmd_nsb nettest -r ${a}
1223 log_test_addr ${a} $? 0 "Device server"
1228 run_cmd_nsb nettest -r ${a}
1229 log_test_addr ${a} $? 1 "No server"
1234 a=${NSA_IP}
1238 sleep 1
1239 run_cmd nettest -r ${a} -d ${NSA_DEV}
1240 log_test_addr ${a} $? 1 "Global server, local connection"
1249 set_sysctl net.ipv4.tcp_l3mdev_accept=1
1251 for a in ${NSA_IP} ${VRF_IP}
1256 sleep 1
1257 run_cmd_nsb nettest -r ${a}
1258 log_test_addr ${a} $? 0 "Global server"
1263 sleep 1
1264 run_cmd_nsb nettest -r ${a}
1265 log_test_addr ${a} $? 0 "VRF server"
1270 run_cmd_nsb nettest -r ${a}
1271 log_test_addr ${a} $? 1 "No server"
1274 a=${NSA_IP}
1278 sleep 1
1279 run_cmd_nsb nettest -r ${a}
1280 log_test_addr ${a} $? 0 "Device server"
1283 for a in ${NSA_IP} ${VRF_IP}
1288 sleep 1
1289 run_cmd nettest -r ${a}
1290 log_test_addr ${a} $? 1 "Global server, local connection"
1296 for a in ${NSB_IP} ${NSB_LO_IP}
1300 sleep 1
1301 run_cmd nettest -r ${a} -d ${VRF}
1302 log_test_addr ${a} $? 0 "Client, VRF bind"
1306 sleep 1
1307 run_cmd nettest -r ${a} -d ${NSA_DEV}
1308 log_test_addr ${a} $? 0 "Client, device bind"
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"
1321 for a in ${NSA_IP} ${VRF_IP} 127.0.0.1
1325 sleep 1
1326 run_cmd nettest -r ${a} -d ${VRF} -0 ${a}
1327 log_test_addr ${a} $? 0 "VRF server, VRF client, local connection"
1330 a=${NSA_IP}
1333 sleep 1
1334 run_cmd nettest -r ${a} -d ${NSA_DEV} -0 ${a}
1335 log_test_addr ${a} $? 0 "VRF server, device client, local connection"
1340 sleep 1
1341 run_cmd nettest -r ${a}
1342 log_test_addr ${a} $? 1 "VRF server, unbound client, local connection"
1346 sleep 1
1347 run_cmd nettest -r ${a} -d ${VRF} -0 ${a}
1348 log_test_addr ${a} $? 0 "Device server, VRF client, local connection"
1352 sleep 1
1353 run_cmd nettest -r ${a} -d ${NSA_DEV} -0 ${a}
1354 log_test_addr ${a} $? 0 "Device server, device client, local connection"
1369 set_sysctl net.ipv4.tcp_l3mdev_accept=1
1382 local a
1387 for a in ${NSA_IP} ${NSA_LO_IP}
1391 sleep 1
1392 run_cmd_nsb nettest -D -r ${a}
1393 log_test_addr ${a} $? 0 "Global server"
1397 run_cmd_nsb nettest -D -r ${a}
1398 log_test_addr ${a} $? 1 "No server"
1401 a=${NSA_IP}
1404 sleep 1
1405 run_cmd_nsb nettest -D -r ${a}
1406 log_test_addr ${a} $? 0 "Device server"
1411 for a in ${NSB_IP} ${NSB_LO_IP}
1415 sleep 1
1416 run_cmd nettest -D -r ${a} -0 ${NSA_IP}
1417 log_test_addr ${a} $? 0 "Client"
1421 sleep 1
1422 run_cmd nettest -D -r ${a} -d ${NSA_DEV} -0 ${NSA_IP}
1423 log_test_addr ${a} $? 0 "Client, device bind"
1427 sleep 1
1428 run_cmd nettest -D -r ${a} -d ${NSA_DEV} -C -0 ${NSA_IP}
1429 log_test_addr ${a} $? 0 "Client, device send via cmsg"
1433 sleep 1
1434 run_cmd nettest -D -r ${a} -d ${NSA_DEV} -S -0 ${NSA_IP}
1435 log_test_addr ${a} $? 0 "Client, device bind via IP_UNICAST_IF"
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"
1451 for a in ${NSA_IP} ${NSA_LO_IP} 127.0.0.1
1455 sleep 1
1456 run_cmd nettest -D -r ${a} -0 ${a} -1 ${a}
1457 log_test_addr ${a} $? 0 "Global server, local connection"
1460 a=${NSA_IP}
1463 sleep 1
1464 run_cmd nettest -D -r ${a}
1465 log_test_addr ${a} $? 0 "Device server, unbound client, local connection"
1467 for a in ${NSA_LO_IP} 127.0.0.1
1472 sleep 1
1473 run_cmd nettest -D -r ${a}
1474 log_test_addr ${a} $? 1 "Device server, unbound client, local connection"
1477 a=${NSA_IP}
1480 sleep 1
1481 run_cmd nettest -D -d ${NSA_DEV} -r ${a}
1482 log_test_addr ${a} $? 0 "Global server, device client, local connection"
1486 sleep 1
1487 run_cmd nettest -D -d ${NSA_DEV} -C -r ${a}
1488 log_test_addr ${a} $? 0 "Global server, device send via cmsg, local connection"
1492 sleep 1
1493 run_cmd nettest -D -d ${NSA_DEV} -S -r ${a}
1494 log_test_addr ${a} $? 0 "Global server, device client via IP_UNICAST_IF, local connection"
1499 for a in ${NSA_LO_IP} 127.0.0.1
1504 sleep 1
1505 run_cmd nettest -D -r ${a} -d ${NSA_DEV}
1506 log_test_addr ${a} $? 2 "Global server, device client, local connection"
1511 sleep 1
1512 run_cmd nettest -D -r ${a} -d ${NSA_DEV} -C
1513 log_test_addr ${a} $? 1 "Global server, device send via cmsg, local connection"
1518 sleep 1
1519 run_cmd nettest -D -r ${a} -d ${NSA_DEV} -S
1520 log_test_addr ${a} $? 1 "Global server, device client via IP_UNICAST_IF, local connection"
1523 a=${NSA_IP}
1526 sleep 1
1527 run_cmd nettest -D -d ${NSA_DEV} -r ${a} -0 ${a}
1528 log_test_addr ${a} $? 0 "Device server, device client, local conn"
1531 run_cmd nettest -D -d ${NSA_DEV} -r ${a}
1532 log_test_addr ${a} $? 2 "No server, device client, local conn"
1537 local a
1546 for a in ${NSA_IP} ${VRF_IP}
1549 show_hint "Fails because ingress is in a VRF and global server is disabled"
1551 sleep 1
1552 run_cmd_nsb nettest -D -r ${a}
1553 log_test_addr ${a} $? 1 "Global server"
1557 sleep 1
1558 run_cmd_nsb nettest -D -r ${a}
1559 log_test_addr ${a} $? 0 "VRF server"
1563 sleep 1
1564 run_cmd_nsb nettest -D -r ${a}
1565 log_test_addr ${a} $? 0 "Enslaved device server"
1569 run_cmd_nsb nettest -D -r ${a}
1570 log_test_addr ${a} $? 1 "No server"
1575 sleep 1
1576 run_cmd nettest -D -d ${VRF} -r ${a}
1577 log_test_addr ${a} $? 1 "Global server, VRF client, local connection"
1580 a=${NSA_IP}
1583 sleep 1
1584 run_cmd nettest -D -d ${VRF} -r ${a}
1585 log_test_addr ${a} $? 0 "VRF server, VRF client, local conn"
1589 sleep 1
1590 run_cmd nettest -D -d ${NSA_DEV} -r ${a}
1591 log_test_addr ${a} $? 0 "VRF server, enslaved device client, local connection"
1593 a=${NSA_IP}
1596 sleep 1
1597 run_cmd nettest -D -d ${VRF} -r ${a}
1598 log_test_addr ${a} $? 0 "Enslaved device server, VRF client, local conn"
1602 sleep 1
1603 run_cmd nettest -D -d ${NSA_DEV} -r ${a}
1604 log_test_addr ${a} $? 0 "Enslaved device server, device client, local conn"
1608 set_sysctl net.ipv4.udp_l3mdev_accept=1
1613 for a in ${NSA_IP} ${VRF_IP}
1617 sleep 1
1618 run_cmd_nsb nettest -D -r ${a}
1619 log_test_addr ${a} $? 0 "Global server"
1623 sleep 1
1624 run_cmd_nsb nettest -D -r ${a}
1625 log_test_addr ${a} $? 0 "VRF server"
1629 sleep 1
1630 run_cmd_nsb nettest -D -r ${a}
1631 log_test_addr ${a} $? 0 "Enslaved device server"
1635 run_cmd_nsb nettest -D -r ${a}
1636 log_test_addr ${a} $? 1 "No server"
1644 sleep 1
1645 run_cmd nettest -d ${VRF} -D -r ${NSB_IP} -1 ${NSA_IP}
1650 sleep 1
1651 run_cmd nettest -d ${NSA_DEV} -D -r ${NSB_IP} -1 ${NSA_IP}
1658 log_test $? 1 "No server, VRF client"
1663 log_test $? 1 "No server, enslaved device client"
1668 a=${NSA_IP}
1671 sleep 1
1672 run_cmd nettest -D -d ${VRF} -r ${a}
1673 log_test_addr ${a} $? 0 "Global server, VRF client, local conn"
1677 sleep 1
1678 run_cmd nettest -D -d ${VRF} -r ${a}
1679 log_test_addr ${a} $? 0 "VRF server, VRF client, local conn"
1683 sleep 1
1684 run_cmd nettest -D -d ${NSA_DEV} -r ${a}
1685 log_test_addr ${a} $? 0 "VRF server, device client, local conn"
1689 sleep 1
1690 run_cmd nettest -D -d ${VRF} -r ${a}
1691 log_test_addr ${a} $? 0 "Enslaved device server, VRF client, local conn"
1695 sleep 1
1696 run_cmd nettest -D -d ${NSA_DEV} -r ${a}
1697 log_test_addr ${a} $? 0 "Enslaved device server, device client, local conn"
1699 for a in ${VRF_IP} 127.0.0.1
1703 sleep 1
1704 run_cmd nettest -D -d ${VRF} -r ${a}
1705 log_test_addr ${a} $? 0 "Global server, VRF client, local conn"
1708 for a in ${VRF_IP} 127.0.0.1
1712 sleep 1
1713 run_cmd nettest -D -d ${VRF} -r ${a}
1714 log_test_addr ${a} $? 0 "VRF server, VRF client, local conn"
1719 for a in ${NSA_IP} ${VRF_IP} 127.0.0.1
1723 run_cmd nettest -D -d ${VRF} -r ${a}
1724 log_test_addr ${a} $? 1 "No server, VRF client, local conn"
1741 set_sysctl net.ipv4.udp_l3mdev_accept=1
1759 for a in ${NSA_IP} ${NSA_LO_IP}
1762 run_cmd nettest -s -R -P icmp -l ${a} -b
1763 log_test_addr ${a} $? 0 "Raw socket bind to local address"
1766 run_cmd nettest -s -R -P icmp -l ${a} -I ${NSA_DEV} -b
1767 log_test_addr ${a} $? 0 "Raw socket bind to local address after device bind"
1773 a=${NSA_IP}
1775 run_cmd nettest -c ${a} -r ${NSB_IP} -t1 -b
1776 log_test_addr ${a} $? 0 "TCP socket bind to local address"
1779 run_cmd nettest -c ${a} -r ${NSB_IP} -d ${NSA_DEV} -t1 -b
1780 log_test_addr ${a} $? 0 "TCP socket bind to local address after device bind"
1782 # Sadly, the kernel allows binding a socket to a device and then
1786 #a=${NSA_LO_IP}
1789 #run_cmd nettest -s -l ${a} -I ${NSA_DEV} -t1 -b
1790 #log_test_addr ${a} $? 1 "TCP socket bind to out of scope local address"
1798 for a in ${NSA_IP} ${VRF_IP}
1801 run_cmd nettest -s -R -P icmp -l ${a} -b
1802 log_test_addr ${a} $? 0 "Raw socket bind to local address"
1805 run_cmd nettest -s -R -P icmp -l ${a} -I ${NSA_DEV} -b
1806 log_test_addr ${a} $? 0 "Raw socket bind to local address after device bind"
1808 run_cmd nettest -s -R -P icmp -l ${a} -I ${VRF} -b
1809 log_test_addr ${a} $? 0 "Raw socket bind to local address after VRF bind"
1812 a=${NSA_LO_IP}
1815 run_cmd nettest -s -R -P icmp -l ${a} -I ${VRF} -b
1816 log_test_addr ${a} $? 1 "Raw socket bind to out of scope address after VRF bind"
1821 for a in ${NSA_IP} ${VRF_IP}
1824 run_cmd nettest -s -l ${a} -I ${VRF} -t1 -b
1825 log_test_addr ${a} $? 0 "TCP socket bind to local address"
1828 run_cmd nettest -s -l ${a} -I ${NSA_DEV} -t1 -b
1829 log_test_addr ${a} $? 0 "TCP socket bind to local address after device bind"
1832 a=${NSA_LO_IP}
1835 run_cmd nettest -s -l ${a} -I ${VRF} -t1 -b
1836 log_test_addr ${a} $? 1 "TCP socket bind to invalid local address for VRF"
1840 run_cmd nettest -s -l ${a} -I ${NSA_DEV} -t1 -b
1841 log_test_addr ${a} $? 1 "TCP socket bind to invalid local address for device bind"
1862 local desc="$1"
1865 local a
1870 for a in ${NSA_IP} ${VRF_IP}
1874 sleep 1
1875 run_cmd_nsb nettest ${varg} -r ${a} &
1878 sleep 1
1879 log_test_addr ${a} 0 0 "${desc}, global server"
1884 for a in ${NSA_IP} ${VRF_IP}
1888 sleep 1
1889 run_cmd_nsb nettest ${varg} -r ${a} &
1892 sleep 1
1893 log_test_addr ${a} 0 0 "${desc}, VRF server"
1898 a=${NSA_IP}
1901 sleep 1
1902 run_cmd_nsb nettest ${varg} -r ${a} &
1905 sleep 1
1906 log_test_addr ${a} 0 0 "${desc}, enslaved device server"
1915 sleep 1
1919 sleep 1
1920 log_test_addr ${a} 0 0 "${desc}, VRF client"
1926 sleep 1
1930 sleep 1
1931 log_test_addr ${a} 0 0 "${desc}, enslaved device client"
1938 for a in ${NSA_IP} ${VRF_IP}
1942 sleep 1
1943 run_cmd nettest ${varg} -d ${VRF} -r ${a} &
1946 sleep 1
1947 log_test_addr ${a} 0 0 "${desc}, global server, VRF client, local"
1952 for a in ${NSA_IP} ${VRF_IP}
1956 sleep 1
1957 run_cmd nettest ${varg} -d ${VRF} -r ${a} &
1960 sleep 1
1961 log_test_addr ${a} 0 0 "${desc}, VRF server and client, local"
1966 a=${NSA_IP}
1969 sleep 1
1970 run_cmd nettest ${varg} -d ${NSA_DEV} -r ${a} &
1973 sleep 1
1974 log_test_addr ${a} 0 0 "${desc}, global server, enslaved device client, local"
1980 sleep 1
1981 run_cmd nettest ${varg} -d ${NSA_DEV} -r ${a} &
1984 sleep 1
1985 log_test_addr ${a} 0 0 "${desc}, VRF server, enslaved device client, local"
1991 sleep 1
1992 run_cmd nettest ${varg} -d ${NSA_DEV} -r ${a} &
1995 sleep 1
1996 log_test_addr ${a} 0 0 "${desc}, enslaved device server and client, local"
2002 local a
2004 for a in ${NSA_IP} ${VRF_IP}
2007 run_cmd_nsb ping -f ${a} &
2010 sleep 1
2011 log_test_addr ${a} 0 0 "Device delete with active traffic - ping in"
2016 a=${NSB_IP}
2018 run_cmd ping -f -I ${VRF} ${a} &
2021 sleep 1
2022 log_test_addr ${a} 0 0 "Device delete with active traffic - ping out"
2033 ipv4_rt "TCP active socket" "-n -1"
2044 local a
2046 # should not have an impact, but make a known state
2052 for a in ${NSB_IP6} ${NSB_LO_IP6} ${NSB_LINKIP6}%${NSA_DEV} ${MCAST}%${NSA_DEV}
2055 run_cmd ${ping6} -c1 -w1 ${a}
2056 log_test_addr ${a} $? 0 "ping out"
2059 for a in ${NSB_IP6} ${NSB_LO_IP6}
2062 run_cmd ${ping6} -c1 -w1 -I ${NSA_DEV} ${a}
2063 log_test_addr ${a} $? 0 "ping out, device bind"
2066 run_cmd ${ping6} -c1 -w1 -I ${NSA_LO_IP6} ${a}
2067 log_test_addr ${a} $? 0 "ping out, loopback address bind"
2073 for a in ${NSA_IP6} ${NSA_LO_IP6} ${NSA_LINKIP6}%${NSB_DEV} ${MCAST}%${NSB_DEV}
2076 run_cmd_nsb ${ping6} -c1 -w1 ${a}
2077 log_test_addr ${a} $? 0 "ping in"
2083 for a in ${NSA_IP6} ${NSA_LO_IP6} ::1 ${NSA_LINKIP6}%${NSA_DEV} ${MCAST}%${NSA_DEV}
2086 run_cmd ${ping6} -c1 -w1 ${a}
2087 log_test_addr ${a} $? 0 "ping local, no bind"
2090 for a in ${NSA_IP6} ${NSA_LINKIP6}%${NSA_DEV} ${MCAST}%${NSA_DEV}
2093 run_cmd ${ping6} -c1 -w1 -I ${NSA_DEV} ${a}
2094 log_test_addr ${a} $? 0 "ping local, device bind"
2097 for a in ${NSA_LO_IP6} ::1
2101 run_cmd ${ping6} -c1 -w1 -I ${NSA_DEV} ${a}
2102 log_test_addr ${a} $? 2 "ping local, device bind"
2114 a=${NSB_LO_IP6}
2115 run_cmd ${ping6} -c1 -w1 ${a}
2116 log_test_addr ${a} $? 2 "ping out, blocked by rule"
2119 run_cmd ${ping6} -c1 -w1 -I ${NSA_DEV} ${a}
2120 log_test_addr ${a} $? 2 "ping out, device bind, blocked by rule"
2122 a=${NSA_LO_IP6}
2125 run_cmd_nsb ${ping6} -c1 -w1 ${a}
2126 log_test_addr ${a} $? 1 "ping in, blocked by rule"
2141 a=${NSB_LO_IP6}
2142 run_cmd ${ping6} -c1 -w1 ${a}
2143 log_test_addr ${a} $? 2 "ping out, blocked by route"
2146 run_cmd ${ping6} -c1 -w1 -I ${NSA_DEV} ${a}
2147 log_test_addr ${a} $? 2 "ping out, device bind, blocked by route"
2149 a=${NSA_LO_IP6}
2152 run_cmd_nsb ${ping6} -c1 -w1 ${a}
2153 log_test_addr ${a} $? 1 "ping in, blocked by route"
2163 a=${NSB_LO_IP6}
2164 run_cmd ${ping6} -c1 -w1 ${a}
2165 log_test_addr ${a} $? 2 "ping out, unreachable route"
2168 run_cmd ${ping6} -c1 -w1 -I ${NSA_DEV} ${a}
2169 log_test_addr ${a} $? 2 "ping out, device bind, unreachable route"
2174 local a
2177 set_sysctl net.ipv4.raw_l3mdev_accept=1 2>/dev/null
2182 for a in ${NSB_IP6} ${NSB_LO_IP6}
2185 run_cmd ${ping6} -c1 -w1 -I ${VRF} ${a}
2186 log_test_addr ${a} $? 0 "ping out, VRF bind"
2189 for a in ${NSB_LINKIP6}%${VRF} ${MCAST}%${VRF}
2193 run_cmd ${ping6} -c1 -w1 ${a}
2194 log_test_addr ${a} $? 2 "ping out, VRF bind"
2197 for a in ${NSB_IP6} ${NSB_LO_IP6} ${NSB_LINKIP6}%${NSA_DEV} ${MCAST}%${NSA_DEV}
2200 run_cmd ${ping6} -c1 -w1 -I ${NSA_DEV} ${a}
2201 log_test_addr ${a} $? 0 "ping out, device bind"
2204 for a in ${NSB_IP6} ${NSB_LO_IP6} ${NSB_LINKIP6}%${NSA_DEV}
2207 run_cmd ip vrf exec ${VRF} ${ping6} -c1 -w1 -I ${VRF_IP6} ${a}
2208 log_test_addr ${a} $? 0 "ping out, vrf device+address bind"
2214 for a in ${NSA_IP6} ${VRF_IP6} ${NSA_LINKIP6}%${NSB_DEV} ${MCAST}%${NSB_DEV}
2217 run_cmd_nsb ${ping6} -c1 -w1 ${a}
2218 log_test_addr ${a} $? 0 "ping in"
2221 a=${NSA_LO_IP6}
2224 run_cmd_nsb ${ping6} -c1 -w1 ${a}
2225 log_test_addr ${a} $? 1 "ping in"
2230 for a in ${NSA_IP6} ${VRF_IP6} ::1
2233 show_hint "Source address should be ${a}"
2234 run_cmd ${ping6} -c1 -w1 -I ${VRF} ${a}
2235 log_test_addr ${a} $? 0 "ping local, VRF bind"
2238 for a in ${NSA_IP6} ${NSA_LINKIP6}%${NSA_DEV} ${MCAST}%${NSA_DEV}
2241 run_cmd ${ping6} -c1 -w1 -I ${NSA_DEV} ${a}
2242 log_test_addr ${a} $? 0 "ping local, device bind"
2250 for a in ${NSA_IP6} ${VRF_IP6}
2254 log_test_addr ${a} $? 0 "ping in, LLA to GUA"
2268 a=${NSB_LO_IP6}
2269 run_cmd ${ping6} -c1 -w1 ${a}
2270 log_test_addr ${a} $? 2 "ping out, blocked by rule"
2273 run_cmd ${ping6} -c1 -w1 -I ${NSA_DEV} ${a}
2274 log_test_addr ${a} $? 2 "ping out, device bind, blocked by rule"
2276 a=${NSA_LO_IP6}
2279 run_cmd_nsb ${ping6} -c1 -w1 ${a}
2280 log_test_addr ${a} $? 1 "ping in, blocked by rule"
2292 a=${NSB_LO_IP6}
2293 run_cmd ${ping6} -c1 -w1 ${a}
2294 log_test_addr ${a} $? 2 "ping out, unreachable route"
2297 run_cmd ${ping6} -c1 -w1 -I ${NSA_DEV} ${a}
2298 log_test_addr ${a} $? 2 "ping out, device bind, unreachable route"
2301 a=${NSA_LO_IP6}
2303 run_cmd_nsb ${ping6} -c1 -w1 ${a}
2304 log_test_addr ${a} $? 2 "ping in, unreachable route"
2335 sleep 1
2343 sleep 1
2351 sleep 1
2359 sleep 1
2370 sleep 1
2378 sleep 1
2386 sleep 1
2403 sleep 1
2411 sleep 1
2419 sleep 1
2427 sleep 1
2438 sleep 1
2446 sleep 1
2454 sleep 1
2459 # duplicate config between default VRF and a VRF
2465 sleep 1
2472 sleep 1
2480 sleep 1
2488 sleep 1
2495 sleep 1
2502 sleep 1
2510 sleep 1
2518 sleep 1
2527 log_test $? 1 "MD5: VRF: Device must be a VRF - single address"
2531 log_test $? 1 "MD5: VRF: Device must be a VRF - prefix"
2537 local a
2542 for a in ${NSA_IP6} ${NSA_LO_IP6} ${NSA_LINKIP6}%${NSB_DEV}
2546 sleep 1
2547 run_cmd_nsb nettest -6 -r ${a}
2548 log_test_addr ${a} $? 0 "Global server"
2552 for a in ${NSA_IP6} ${NSA_LO_IP6} ${NSA_LINKIP6}%${NSB_DEV}
2556 run_cmd_nsb nettest -6 -r ${a}
2557 log_test_addr ${a} $? 1 "No server"
2563 for a in ${NSB_IP6} ${NSB_LO_IP6} ${NSB_LINKIP6}%${NSA_DEV}
2567 sleep 1
2568 run_cmd nettest -6 -r ${a}
2569 log_test_addr ${a} $? 0 "Client"
2572 for a in ${NSB_IP6} ${NSB_LO_IP6} ${NSB_LINKIP6}%${NSA_DEV}
2576 sleep 1
2577 run_cmd nettest -6 -r ${a} -d ${NSA_DEV}
2578 log_test_addr ${a} $? 0 "Client, device bind"
2581 for a in ${NSB_IP6} ${NSB_LO_IP6} ${NSB_LINKIP6}%${NSA_DEV}
2585 run_cmd nettest -6 -r ${a} -d ${NSA_DEV}
2586 log_test_addr ${a} $? 1 "No server, device client"
2592 for a in ${NSA_IP6} ${NSA_LO_IP6} ::1
2596 sleep 1
2597 run_cmd nettest -6 -r ${a}
2598 log_test_addr ${a} $? 0 "Global server, local connection"
2601 a=${NSA_IP6}
2604 sleep 1
2605 run_cmd nettest -6 -r ${a} -0 ${a}
2606 log_test_addr ${a} $? 0 "Device server, unbound client, local connection"
2608 for a in ${NSA_LO_IP6} ::1
2613 sleep 1
2614 run_cmd nettest -6 -r ${a}
2615 log_test_addr ${a} $? 1 "Device server, unbound client, local connection"
2618 a=${NSA_IP6}
2621 sleep 1
2622 run_cmd nettest -6 -r ${a} -d ${NSA_DEV} -0 ${a}
2623 log_test_addr ${a} $? 0 "Global server, device client, local connection"
2625 for a in ${NSA_LO_IP6} ::1
2630 sleep 1
2631 run_cmd nettest -6 -r ${a} -d ${NSA_DEV}
2632 log_test_addr ${a} $? 1 "Global server, device client, local connection"
2635 for a in ${NSA_IP6} ${NSA_LINKIP6}
2639 sleep 1
2640 run_cmd nettest -6 -d ${NSA_DEV} -r ${a}
2641 log_test_addr ${a} $? 0 "Device server, device client, local conn"
2644 for a in ${NSA_IP6} ${NSA_LINKIP6}
2648 run_cmd nettest -6 -d ${NSA_DEV} -r ${a}
2649 log_test_addr ${a} $? 1 "No server, device client, local conn"
2657 local a
2667 for a in ${NSA_IP6} ${VRF_IP6} ${NSA_LINKIP6}%${NSB_DEV}
2672 sleep 1
2673 run_cmd_nsb nettest -6 -r ${a}
2674 log_test_addr ${a} $? 1 "Global server"
2677 for a in ${NSA_IP6} ${VRF_IP6}
2681 sleep 1
2682 run_cmd_nsb nettest -6 -r ${a}
2683 log_test_addr ${a} $? 0 "VRF server"
2687 a=${NSA_LINKIP6}%${NSB_DEV}
2690 sleep 1
2691 run_cmd_nsb nettest -6 -r ${a}
2692 log_test_addr ${a} $? 0 "VRF server"
2694 for a in ${NSA_IP6} ${VRF_IP6} ${NSA_LINKIP6}%${NSB_DEV}
2698 sleep 1
2699 run_cmd_nsb nettest -6 -r ${a}
2700 log_test_addr ${a} $? 0 "Device server"
2704 for a in ${NSA_IP6} ${VRF_IP6} ${NSA_LINKIP6}%${NSB_DEV}
2708 run_cmd_nsb nettest -6 -r ${a}
2709 log_test_addr ${a} $? 1 "No server"
2713 a=${NSA_IP6}
2717 sleep 1
2718 run_cmd nettest -6 -r ${a} -d ${NSA_DEV}
2719 log_test_addr ${a} $? 1 "Global server, local connection"
2728 set_sysctl net.ipv4.tcp_l3mdev_accept=1
2730 for a in ${NSA_IP6} ${VRF_IP6}
2734 sleep 1
2735 run_cmd_nsb nettest -6 -r ${a}
2736 log_test_addr ${a} $? 0 "Global server"
2739 for a in ${NSA_IP6} ${VRF_IP6}
2743 sleep 1
2744 run_cmd_nsb nettest -6 -r ${a}
2745 log_test_addr ${a} $? 0 "VRF server"
2749 a=${NSA_LINKIP6}%${NSB_DEV}
2752 sleep 1
2753 run_cmd_nsb nettest -6 -r ${a}
2754 log_test_addr ${a} $? 0 "Global server"
2758 sleep 1
2759 run_cmd_nsb nettest -6 -r ${a}
2760 log_test_addr ${a} $? 0 "VRF server"
2762 for a in ${NSA_IP6} ${NSA_LINKIP6}%${NSB_DEV}
2766 sleep 1
2767 run_cmd_nsb nettest -6 -r ${a}
2768 log_test_addr ${a} $? 0 "Device server"
2772 for a in ${NSA_IP6} ${VRF_IP6} ${NSA_LINKIP6}%${NSB_DEV}
2776 run_cmd_nsb nettest -6 -r ${a}
2777 log_test_addr ${a} $? 1 "No server"
2781 for a in ${NSA_IP6} ${VRF_IP6}
2786 sleep 1
2787 run_cmd nettest -6 -r ${a}
2788 log_test_addr ${a} $? 1 "Global server, local connection"
2795 for a in ${NSB_IP6} ${NSB_LO_IP6}
2799 sleep 1
2800 run_cmd nettest -6 -r ${a} -d ${VRF}
2801 log_test_addr ${a} $? 0 "Client, VRF bind"
2804 a=${NSB_LINKIP6}
2808 sleep 1
2809 run_cmd nettest -6 -r ${a} -d ${VRF}
2810 log_test_addr ${a} $? 1 "Client, VRF bind"
2812 for a in ${NSB_IP6} ${NSB_LO_IP6} ${NSB_LINKIP6}
2816 sleep 1
2817 run_cmd nettest -6 -r ${a} -d ${NSA_DEV}
2818 log_test_addr ${a} $? 0 "Client, device bind"
2821 for a in ${NSB_IP6} ${NSB_LO_IP6}
2825 run_cmd nettest -6 -r ${a} -d ${VRF}
2826 log_test_addr ${a} $? 1 "No server, VRF client"
2829 for a in ${NSB_IP6} ${NSB_LO_IP6} ${NSB_LINKIP6}
2833 run_cmd nettest -6 -r ${a} -d ${NSA_DEV}
2834 log_test_addr ${a} $? 1 "No server, device client"
2837 for a in ${NSA_IP6} ${VRF_IP6} ::1
2841 sleep 1
2842 run_cmd nettest -6 -r ${a} -d ${VRF} -0 ${a}
2843 log_test_addr ${a} $? 0 "VRF server, VRF client, local connection"
2846 a=${NSA_IP6}
2849 sleep 1
2850 run_cmd nettest -6 -r ${a} -d ${NSA_DEV} -0 ${a}
2851 log_test_addr ${a} $? 0 "VRF server, device client, local connection"
2853 a=${NSA_IP6}
2857 sleep 1
2858 run_cmd nettest -6 -r ${a}
2859 log_test_addr ${a} $? 1 "VRF server, unbound client, local connection"
2863 sleep 1
2864 run_cmd nettest -6 -r ${a} -d ${VRF} -0 ${a}
2865 log_test_addr ${a} $? 0 "Device server, VRF client, local connection"
2867 for a in ${NSA_IP6} ${NSA_LINKIP6}
2871 sleep 1
2872 run_cmd nettest -6 -r ${a} -d ${NSA_DEV} -0 ${a}
2873 log_test_addr ${a} $? 0 "Device server, device client, local connection"
2889 set_sysctl net.ipv4.tcp_l3mdev_accept=1
2902 local a
2907 for a in ${NSA_IP6} ${NSA_LINKIP6}%${NSB_DEV}
2911 sleep 1
2912 run_cmd_nsb nettest -6 -D -r ${a}
2913 log_test_addr ${a} $? 0 "Global server"
2917 sleep 1
2918 run_cmd_nsb nettest -6 -D -r ${a}
2919 log_test_addr ${a} $? 0 "Device server"
2922 a=${NSA_LO_IP6}
2925 sleep 1
2926 run_cmd_nsb nettest -6 -D -r ${a}
2927 log_test_addr ${a} $? 0 "Global server"
2929 # should fail since loopback address is out of scope for a device
2935 #sleep 1
2936 #run_cmd_nsb nettest -6 -D -r ${a}
2937 #log_test_addr ${a} $? 1 "Device server"
2940 for a in ${NSA_IP6} ${NSA_LO_IP6} ${NSA_LINKIP6}%${NSB_DEV}
2944 run_cmd_nsb nettest -6 -D -r ${a}
2945 log_test_addr ${a} $? 1 "No server"
2951 for a in ${NSB_IP6} ${NSB_LO_IP6} ${NSB_LINKIP6}%${NSA_DEV}
2955 sleep 1
2956 run_cmd nettest -6 -D -r ${a} -0 ${NSA_IP6}
2957 log_test_addr ${a} $? 0 "Client"
2961 sleep 1
2962 run_cmd nettest -6 -D -r ${a} -d ${NSA_DEV} -0 ${NSA_IP6}
2963 log_test_addr ${a} $? 0 "Client, device bind"
2967 sleep 1
2968 run_cmd nettest -6 -D -r ${a} -d ${NSA_DEV} -C -0 ${NSA_IP6}
2969 log_test_addr ${a} $? 0 "Client, device send via cmsg"
2973 sleep 1
2974 run_cmd nettest -6 -D -r ${a} -d ${NSA_DEV} -S -0 ${NSA_IP6}
2975 log_test_addr ${a} $? 0 "Client, device bind via IPV6_UNICAST_IF"
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"
2991 for a in ${NSA_IP6} ${NSA_LO_IP6} ::1
2995 sleep 1
2996 run_cmd nettest -6 -D -r ${a} -0 ${a} -1 ${a}
2997 log_test_addr ${a} $? 0 "Global server, local connection"
3000 a=${NSA_IP6}
3003 sleep 1
3004 run_cmd nettest -6 -D -r ${a}
3005 log_test_addr ${a} $? 0 "Device server, unbound client, local connection"
3007 for a in ${NSA_LO_IP6} ::1
3012 sleep 1
3013 run_cmd nettest -6 -D -r ${a}
3014 log_test_addr ${a} $? 1 "Device server, local connection"
3017 a=${NSA_IP6}
3020 sleep 1
3021 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${a}
3022 log_test_addr ${a} $? 0 "Global server, device client, local connection"
3026 sleep 1
3027 run_cmd nettest -6 -D -d ${NSA_DEV} -C -r ${a}
3028 log_test_addr ${a} $? 0 "Global server, device send via cmsg, local connection"
3032 sleep 1
3033 run_cmd nettest -6 -D -d ${NSA_DEV} -S -r ${a}
3034 log_test_addr ${a} $? 0 "Global server, device client via IPV6_UNICAST_IF, local connection"
3036 for a in ${NSA_LO_IP6} ::1
3041 sleep 1
3042 run_cmd nettest -6 -D -r ${a} -d ${NSA_DEV}
3043 log_test_addr ${a} $? 1 "Global server, device client, local connection"
3048 sleep 1
3049 run_cmd nettest -6 -D -r ${a} -d ${NSA_DEV} -C
3050 log_test_addr ${a} $? 1 "Global server, device send via cmsg, local connection"
3055 sleep 1
3056 run_cmd nettest -6 -D -r ${a} -d ${NSA_DEV} -S
3057 log_test_addr ${a} $? 1 "Global server, device client via IP_UNICAST_IF, local connection"
3060 a=${NSA_IP6}
3063 sleep 1
3064 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${a} -0 ${a}
3065 log_test_addr ${a} $? 0 "Device server, device client, local conn"
3069 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${a}
3070 log_test_addr ${a} $? 1 "No server, device client, local conn"
3077 sleep 1
3087 local a
3096 for a in ${NSA_IP6} ${VRF_IP6}
3101 sleep 1
3102 run_cmd_nsb nettest -6 -D -r ${a}
3103 log_test_addr ${a} $? 1 "Global server"
3106 for a in ${NSA_IP6} ${VRF_IP6}
3110 sleep 1
3111 run_cmd_nsb nettest -6 -D -r ${a}
3112 log_test_addr ${a} $? 0 "VRF server"
3115 for a in ${NSA_IP6} ${VRF_IP6}
3119 sleep 1
3120 run_cmd_nsb nettest -6 -D -r ${a}
3121 log_test_addr ${a} $? 0 "Enslaved device server"
3125 for a in ${NSA_IP6} ${VRF_IP6}
3129 run_cmd_nsb nettest -6 -D -r ${a}
3130 log_test_addr ${a} $? 1 "No server"
3136 for a in ${NSA_IP6} ${VRF_IP6}
3141 sleep 1
3142 run_cmd nettest -6 -D -d ${VRF} -r ${a}
3143 log_test_addr ${a} $? 1 "Global server, VRF client, local conn"
3146 for a in ${NSA_IP6} ${VRF_IP6}
3150 sleep 1
3151 run_cmd nettest -6 -D -d ${VRF} -r ${a}
3152 log_test_addr ${a} $? 0 "VRF server, VRF client, local conn"
3155 a=${NSA_IP6}
3159 sleep 1
3160 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${a}
3161 log_test_addr ${a} $? 1 "Global server, device client, local conn"
3165 sleep 1
3166 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${a}
3167 log_test_addr ${a} $? 0 "VRF server, device client, local conn"
3171 sleep 1
3172 run_cmd nettest -6 -D -d ${VRF} -r ${a}
3173 log_test_addr ${a} $? 0 "Enslaved device server, VRF client, local conn"
3177 sleep 1
3178 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${a}
3179 log_test_addr ${a} $? 0 "Enslaved device server, device client, local conn"
3183 set_sysctl net.ipv4.udp_l3mdev_accept=1
3188 for a in ${NSA_IP6} ${VRF_IP6}
3192 sleep 1
3193 run_cmd_nsb nettest -6 -D -r ${a}
3194 log_test_addr ${a} $? 0 "Global server"
3197 for a in ${NSA_IP6} ${VRF_IP6}
3201 sleep 1
3202 run_cmd_nsb nettest -6 -D -r ${a}
3203 log_test_addr ${a} $? 0 "VRF server"
3206 for a in ${NSA_IP6} ${VRF_IP6}
3210 sleep 1
3211 run_cmd_nsb nettest -6 -D -r ${a}
3212 log_test_addr ${a} $? 0 "Enslaved device server"
3216 for a in ${NSA_IP6} ${VRF_IP6}
3219 run_cmd_nsb nettest -6 -D -r ${a}
3220 log_test_addr ${a} $? 1 "No server"
3228 sleep 1
3235 log_test $? 1 "No server, VRF client"
3239 sleep 1
3246 log_test $? 1 "No server, enslaved device client"
3251 a=${NSA_IP6}
3254 sleep 1
3255 run_cmd nettest -6 -D -d ${VRF} -r ${a}
3256 log_test_addr ${a} $? 0 "Global server, VRF client, local conn"
3260 sleep 1
3261 run_cmd nettest -6 -D -d ${VRF} -r ${a}
3262 log_test_addr ${a} $? 0 "VRF server, VRF client, local conn"
3265 a=${VRF_IP6}
3268 sleep 1
3269 run_cmd nettest -6 -D -d ${VRF} -r ${a}
3270 log_test_addr ${a} $? 0 "Global server, VRF client, local conn"
3274 sleep 1
3275 run_cmd nettest -6 -D -d ${VRF} -r ${a}
3276 log_test_addr ${a} $? 0 "VRF server, VRF client, local conn"
3279 for a in ${NSA_IP6} ${VRF_IP6}
3282 run_cmd nettest -6 -D -d ${VRF} -r ${a}
3283 log_test_addr ${a} $? 1 "No server, VRF client, local conn"
3287 a=${NSA_IP6}
3290 sleep 1
3291 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${a}
3292 log_test_addr ${a} $? 0 "Global server, device client, local conn"
3296 sleep 1
3297 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${a}
3298 log_test_addr ${a} $? 0 "VRF server, device client, local conn"
3302 sleep 1
3303 run_cmd nettest -6 -D -d ${VRF} -r ${a}
3304 log_test_addr ${a} $? 0 "Device server, VRF client, local conn"
3308 sleep 1
3309 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${a}
3310 log_test_addr ${a} $? 0 "Device server, device client, local conn"
3313 run_cmd nettest -6 -D -d ${NSA_DEV} -r ${a}
3314 log_test_addr ${a} $? 1 "No server, device client, local conn"
3320 sleep 1
3326 log_test $? 1 "No server, linklocal IP"
3331 sleep 1
3337 log_test $? 1 "No server, device client, peer linklocal IP"
3342 sleep 1
3348 log_test $? 1 "No server, device client, local conn - linklocal IP"
3355 sleep 1
3366 set_sysctl net.ipv4.udp_early_demux=1
3378 set_sysctl net.ipv4.udp_l3mdev_accept=1
3394 for a in ${NSA_IP6} ${NSA_LO_IP6}
3397 run_cmd nettest -6 -s -R -P ipv6-icmp -l ${a} -b
3398 log_test_addr ${a} $? 0 "Raw socket bind to local address"
3401 run_cmd nettest -6 -s -R -P ipv6-icmp -l ${a} -I ${NSA_DEV} -b
3402 log_test_addr ${a} $? 0 "Raw socket bind to local address after device bind"
3408 a=${NSA_IP6}
3410 run_cmd nettest -6 -s -l ${a} -t1 -b
3411 log_test_addr ${a} $? 0 "TCP socket bind to local address"
3414 run_cmd nettest -6 -s -l ${a} -I ${NSA_DEV} -t1 -b
3415 log_test_addr ${a} $? 0 "TCP socket bind to local address after device bind"
3417 a=${NSA_LO_IP6}
3420 run_cmd nettest -6 -s -l ${a} -I ${NSA_DEV} -t1 -b
3421 log_test_addr ${a} $? 1 "TCP socket bind to out of scope local address"
3429 for a in ${NSA_IP6} ${VRF_IP6}
3432 run_cmd nettest -6 -s -R -P ipv6-icmp -l ${a} -I ${VRF} -b
3433 log_test_addr ${a} $? 0 "Raw socket bind to local address after vrf bind"
3436 run_cmd nettest -6 -s -R -P ipv6-icmp -l ${a} -I ${NSA_DEV} -b
3437 log_test_addr ${a} $? 0 "Raw socket bind to local address after device bind"
3440 a=${NSA_LO_IP6}
3443 run_cmd nettest -6 -s -R -P ipv6-icmp -l ${a} -I ${VRF} -b
3444 log_test_addr ${a} $? 1 "Raw socket bind to invalid local address after vrf bind"
3449 # address on enslaved device is valid for the VRF or device in a VRF
3450 for a in ${NSA_IP6} ${VRF_IP6}
3453 run_cmd nettest -6 -s -l ${a} -I ${VRF} -t1 -b
3454 log_test_addr ${a} $? 0 "TCP socket bind to local address with VRF bind"
3457 a=${NSA_IP6}
3459 run_cmd nettest -6 -s -l ${a} -I ${NSA_DEV} -t1 -b
3460 log_test_addr ${a} $? 0 "TCP socket bind to local address with device bind"
3462 a=${VRF_IP6}
3464 run_cmd nettest -6 -s -l ${a} -I ${NSA_DEV} -t1 -b
3465 log_test_addr ${a} $? 1 "TCP socket bind to VRF address with device bind"
3467 a=${NSA_LO_IP6}
3470 run_cmd nettest -6 -s -l ${a} -I ${VRF} -t1 -b
3471 log_test_addr ${a} $? 1 "TCP socket bind to invalid local address for VRF"
3475 run_cmd nettest -6 -s -l ${a} -I ${NSA_DEV} -t1 -b
3476 log_test_addr ${a} $? 1 "TCP socket bind to invalid local address for device bind"
3498 local desc="$1"
3501 local a
3506 for a in ${NSA_IP6} ${VRF_IP6}
3510 sleep 1
3511 run_cmd_nsb nettest ${varg} -r ${a} &
3514 sleep 1
3515 log_test_addr ${a} 0 0 "${desc}, global server"
3520 for a in ${NSA_IP6} ${VRF_IP6}
3524 sleep 1
3525 run_cmd_nsb nettest ${varg} -r ${a} &
3528 sleep 1
3529 log_test_addr ${a} 0 0 "${desc}, VRF server"
3534 for a in ${NSA_IP6} ${VRF_IP6}
3538 sleep 1
3539 run_cmd_nsb nettest ${varg} -r ${a} &
3542 sleep 1
3543 log_test_addr ${a} 0 0 "${desc}, enslaved device server"
3553 sleep 1
3557 sleep 1
3564 sleep 1
3568 sleep 1
3577 for a in ${NSA_IP6} ${VRF_IP6}
3581 sleep 1
3582 run_cmd nettest ${varg} -d ${VRF} -r ${a} &
3585 sleep 1
3586 log_test_addr ${a} 0 0 "${desc}, global server, VRF client"
3591 for a in ${NSA_IP6} ${VRF_IP6}
3595 sleep 1
3596 run_cmd nettest ${varg} -d ${VRF} -r ${a} &
3599 sleep 1
3600 log_test_addr ${a} 0 0 "${desc}, VRF server and client"
3605 a=${NSA_IP6}
3608 sleep 1
3609 run_cmd nettest ${varg} -d ${NSA_DEV} -r ${a} &
3612 sleep 1
3613 log_test_addr ${a} 0 0 "${desc}, global server, device client"
3619 sleep 1
3620 run_cmd nettest ${varg} -d ${NSA_DEV} -r ${a} &
3623 sleep 1
3624 log_test_addr ${a} 0 0 "${desc}, VRF server, device client"
3630 sleep 1
3631 run_cmd nettest ${varg} -d ${NSA_DEV} -r ${a} &
3634 sleep 1
3635 log_test_addr ${a} 0 0 "${desc}, device server, device client"
3641 local a
3643 a=${NSA_IP6}
3645 run_cmd_nsb ${ping6} -f ${a} &
3648 sleep 1
3649 log_test_addr ${a} 0 0 "Device delete with active traffic - ping in"
3655 sleep 1
3657 sleep 1
3658 log_test_addr ${a} 0 0 "Device delete with active traffic - ping out"
3669 ipv6_rt "TCP active socket" "-n -1"
3675 ipv6_rt "UDP active socket" "-D -n -1"
3683 local a
3685 for a in ${NSA_IP} ${VRF_IP}
3689 sleep 1
3690 run_cmd_nsb nettest -r ${a}
3691 log_test_addr ${a} $? 1 "Global server, reject with TCP-reset on Rx"
3697 local stype="$1"
3699 local a
3703 for a in ${NSA_IP} ${VRF_IP}
3707 sleep 1
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
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
3740 local a
3742 for a in ${NSA_IP6} ${VRF_IP6}
3746 sleep 1
3747 run_cmd_nsb nettest -6 -r ${a}
3748 log_test_addr ${a} $? 1 "Global server, reject with TCP-reset on Rx"
3754 local stype="$1"
3756 local a
3760 for a in ${NSA_IP6} ${VRF_IP6}
3764 sleep 1
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
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
3798 # ns-A device enslaved to bridge. Verify traffic with and without
3859 setup_cmd ip -6 addr add dev br0.100 2001:db8:101::1/64 nodad
3865 sleep 1
3882 run_cmd_nsb ${ping6} -c1 -w1 2001:db8:101::1
3900 run_cmd_nsb ${ping6} -c1 -w1 2001:db8:101::1
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
3925 # cycle/flap the first ns-A interface
3928 sleep 1
3936 # cycle/flap the second ns-A interface
3939 sleep 1
3948 # Perform IPv{4,6} SNAT on ns-A, and verify TCP connection is successfully
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…
3960 sleep 1
3965 sleep 1
4020 v) VERBOSE=1;;
4022 *) usage; exit 1;;