Lines Matching +full:6 +full:a

10 #	Set up two namespaces, A and B, with two paths between them over routers
15 # A B a_r2: 2000
21 # A to R1, checking that route exception PMTU changes accordingly over
23 # message advertising a PMTU smaller than net.ipv4.route.min_pmtu is
31 # routing table in A. A fib-rule is used to jump to this routing table
39 # Set up the same network topology as pmtu_ipv4, create a VXLAN tunnel
40 # over IPv4 between A and B, routed via R1. On the link between R1 and B,
41 # set a MTU lower than the VXLAN MTU and the MTU on the link between A and
43 # from A to B and check that the PMTU exception is created with the right
44 # value on A
47 # Same as pmtu_ipv4_vxlan4_exception, but send IPv6 packets from A to B
50 # Same as pmtu_ipv4_vxlan4_exception, but use IPv6 transport from A to B
53 # Same as pmtu_ipv4_vxlan6_exception, but send IPv6 packets from A to B
56 # Same as pmtu_ipv4_vxlan4_exception, but using a GENEVE tunnel instead of
60 # Same as pmtu_ipv6_vxlan4_exception, but using a GENEVE tunnel instead of
64 # Same as pmtu_ipv4_vxlan6_exception, but using a GENEVE tunnel instead of
68 # Same as pmtu_ipv6_vxlan6_exception, but using a GENEVE tunnel instead of
71 # - pmtu_ipv{4,6}_br_vxlan{4,6}_exception
72 # Set up three namespaces, A, B, and C, with routing between A and B over
73 # R1. R2 is unused in these tests. A has a veth connection to C, and is
74 # connected to B via a VXLAN endpoint, which is directly bridged to C.
77 # Check that both C and A are able to communicate with B over the VXLAN
82 # C---veth A B else: 5000
86 # - pmtu_ipv{4,6}_br_geneve{4,6}_exception
87 # Same as pmtu_ipv{4,6}_br_vxlan{4,6}_exception, with a GENEVE tunnel
90 # - pmtu_ipv{4,6}_ovs_vxlan{4,6}_exception
92 # and B over R1. A and R2 are unused in these tests. The init namespace
93 # has a veth connection to C, and is connected to B via a VXLAN endpoint,
106 # - pmtu_ipv{4,6}_ovs_geneve{4,6}_exception
107 # Same as pmtu_ipv{4,6}_ovs_vxlan{4,6}_exception, with a GENEVE tunnel
110 # - pmtu_ipv{4,6}_fou{4,6}_exception
111 # Same as pmtu_ipv4_vxlan4, but using a direct IPv4/IPv6 encapsulation
114 # - pmtu_ipv{4,6}_fou{4,6}_exception
115 # Same as pmtu_ipv4_vxlan4, but using a generic UDP IPv4/IPv6
118 # - pmtu_ipv{4,6}_ipv{4,6}_exception
119 # Same as pmtu_ipv4_vxlan4, but using a IPv4/IPv6 tunnel over IPv4/IPv6,
171 # Set up two dummy interfaces with different MTUs, create a vti6 tunnel
179 # happens in a timely manner
182 # Same as above, but use IPv6 transport from A to B
193 # Use the same topology as in pmtu_ipv4, but issue a route replacement
208 # Some systems don't have a ping6 binary anymore
272 # index SEGMENT between 1 and 4, a common prefix (PREFIX4 or PREFIX6) and an
273 # identifier ID, which is 1 for hosts (A and B), 2 for routers (R1 and R2).
285 A R1 ${a_r1}
286 A R2 ${a_r2}
290 # Traffic from A to B goes through R1 by default, and through R2, if destined to
292 # Traffic from B to A goes through R1.
295 A default ${prefix4}.${a_r1}.2
296 A ${prefix4}.${b_r2}.1 ${prefix4}.${a_r2}.2
299 A default ${prefix6}:${a_r1}::2
300 A ${prefix6}:${b_r2}::1 ${prefix6}:${a_r2}::2
306 A 4 41 ${prefix4}.${a_r1}.2 veth_A-R1
307 A 4 42 ${prefix4}.${a_r2}.2 veth_A-R2
310 A 6 61 ${prefix6}:${a_r1}::2 veth_A-R1
311 A 6 62 ${prefix6}:${a_r2}::2 veth_A-R2
312 B 6 61 ${prefix6}:${b_r1}::2 veth_B-R1
318 A 4 default 41
319 A 4 ${prefix4}.${b_r2}.1 42
322 A 6 default 61
323 A 6 ${prefix6}:${b_r2}::1 62
324 B 6 default 61
334 veth6_a_addr="fd00:1::a"
342 tunnel6_a_addr="fd00:2::a"
375 if [ "$VERBOSE" = "1" -a -n "$out" ]; then
421 ipproto="4 -6"
425 ipproto="41 -6"
452 setup_fou_or_gue 4 6 fou
456 setup_fou_or_gue 6 4 fou
460 setup_fou_or_gue 6 6 fou
468 setup_fou_or_gue 4 6 gue
472 setup_fou_or_gue 6 4 gue
476 setup_fou_or_gue 6 6 gue
524 setup_ipvX_over_ipvY 6 4
528 setup_ipvX_over_ipvY 4 6
532 setup_ipvX_over_ipvY 6 6
569 vti_mask=${6}
571 [ ${proto} -eq 6 ] && vti_type="vti6" || vti_type="vti"
588 setup_vti 6 ${veth6_a_addr} ${veth6_b_addr} ${tunnel6_a_addr} ${tunnel6_b_addr} ${tunnel6_mask}
596 …setup_vti 6 ${prefix6}:${a_r1}::1 ${prefix6}:${b_r1}::1 ${tunnel6_a_addr} ${tunnel6_b_addr} ${tunn…
692 [ ${1} -eq 6 ] && proto="-6" || proto=""
707 setup_xfrm 6 ${veth6_a_addr} ${veth6_b_addr}
716 setup_xfrm 6 ${veth6_a_addr} ${veth6_b_addr} "encap espinudp 4500 4500 0.0.0.0" && \
717 setup_nettest_xfrm 6 4500
726 setup_xfrm 6 ${prefix6}:${a_r1}::1 ${prefix6}:${b_r1}::1 "encap espinudp 4500 4500 0.0.0.0" && \
727 setup_nettest_xfrm 6 4500
835 run_cmd ${ns_c} ip link add veth_C-A type veth peer name veth_A-C
839 run_cmd ${ns_c} ip link set veth_C-A up
840 run_cmd ${ns_c} ip addr add ${veth4_c_addr}/${veth4_mask} dev veth_C-A
841 run_cmd ${ns_c} ip addr add ${veth6_c_addr}/${veth6_mask} dev veth_C-A
887 run_cmd ${ns_c} ip link add veth_C-A type veth peer name veth_A-C
891 run_cmd ${ns_c} ip link set veth_C-A up
892 run_cmd ${ns_c} ip addr add ${veth4_c_addr}/${veth4_mask} dev veth_C-A
893 run_cmd ${ns_c} ip addr add ${veth6_c_addr}/${veth6_mask} dev veth_C-A
963 [ ${next} -eq 1 -a "${i}" = "lock" ] && next=2 && continue
1021 trace "${ns_a}" veth_A-R1 "${ns_r1}" veth_R1-A \
1023 "${ns_a}" veth_A-R2 "${ns_r2}" veth_R2-A \
1038 mtu "${ns_r1}" veth_R1-A 2000
1043 mtu "${ns_r2}" veth_R2-A 2000
1059 mtu "${ns_r1}" veth_R1-A 1300
1064 check_pmtu_value "1500" "${pmtu_2}" "changing local MTU on a link not on this path" || return 1
1068 mtu "${ns_r1}" veth_R1-A 1700
1073 check_pmtu_value "1500" "${pmtu_2}" "changing local MTU on a link not on this path" || return 1
1076 [ $family -eq 6 ] && return 0
1087 mtu "${ns_r2}" veth_R2-A 500
1093 mtu "${ns_r2}" veth_R2-A 1500
1108 test_pmtu_ipvX 6
1115 trace "${ns_a}" veth_A-R1 "${ns_r1}" veth_R1-A \
1117 "${ns_a}" veth_A-R2 "${ns_r2}" veth_R2-A \
1122 mtu "${ns_r1}" veth_R1-A 2000
1127 mtu "${ns_r2}" veth_R2-A 2000
1160 trace "${ns_a}" veth_A-R1 "${ns_r1}" veth_R1-A \
1162 "${ns_a}" veth_A-R2 "${ns_r2}" veth_R2-A \
1167 mtu "${ns_r1}" veth_R1-A 2000
1172 mtu "${ns_r2}" veth_R2-A 2000
1211 setup namespaces routing ${type}6 || return $ksft_skip
1217 "${ns_a}" veth_A-R1 "${ns_r1}" veth_R1-A \
1230 mtu "${ns_r1}" veth_R1-A $((${ll_mtu} + 1000))
1248 test_pmtu_ipvX_over_vxlanY_or_geneveY_exception vxlan 6 4
1256 test_pmtu_ipvX_over_vxlanY_or_geneveY_exception geneve 6 4
1260 test_pmtu_ipvX_over_vxlanY_or_geneveY_exception vxlan 4 6
1264 test_pmtu_ipvX_over_vxlanY_or_geneveY_exception vxlan 6 6
1268 test_pmtu_ipvX_over_vxlanY_or_geneveY_exception geneve 4 6
1272 test_pmtu_ipvX_over_vxlanY_or_geneveY_exception geneve 6 6
1286 setup namespaces routing bridge bridged_${type}6 || return $ksft_skip
1292 "${ns_a}" veth_A-R1 "${ns_r1}" veth_R1-A \
1294 "${ns_a}" br0 "${ns_a}" veth-A-C \
1295 "${ns_c}" veth_C-A
1309 mtu "${ns_c}" veth_C-A $((${ll_mtu} + 1000))
1310 mtu "${ns_r1}" veth_R1-A $((${ll_mtu} + 1000))
1339 ${ns_b} socat -T 3 -u -6 TCP-LISTEN:50000,reuseaddr STDOUT > $tmpoutfile &
1367 test_pmtu_ipvX_over_bridged_vxlanY_or_geneveY_exception vxlan 6 4
1375 test_pmtu_ipvX_over_bridged_vxlanY_or_geneveY_exception geneve 6 4
1379 test_pmtu_ipvX_over_bridged_vxlanY_or_geneveY_exception vxlan 4 6
1383 test_pmtu_ipvX_over_bridged_vxlanY_or_geneveY_exception vxlan 6 6
1387 test_pmtu_ipvX_over_bridged_vxlanY_or_geneveY_exception geneve 4 6
1391 test_pmtu_ipvX_over_bridged_vxlanY_or_geneveY_exception geneve 6 6
1405 setup namespaces routing ovs_bridge ovs_${type}6 || return $ksft_skip
1417 "" veth_A-R1 "${ns_r1}" veth_R1-A \
1419 "" ovs_br0 "" veth-A-C \
1420 "${ns_c}" veth_C-A
1434 mtu "${ns_c}" veth_C-A $((${ll_mtu} + 1000))
1435 mtu "${ns_r1}" veth_R1-A $((${ll_mtu} + 1000))
1454 test_pmtu_ipvX_over_ovs_vxlanY_or_geneveY_exception vxlan 6 4
1462 test_pmtu_ipvX_over_ovs_vxlanY_or_geneveY_exception geneve 6 4
1466 test_pmtu_ipvX_over_ovs_vxlanY_or_geneveY_exception vxlan 4 6
1470 test_pmtu_ipvX_over_ovs_vxlanY_or_geneveY_exception vxlan 6 6
1474 test_pmtu_ipvX_over_ovs_vxlanY_or_geneveY_exception geneve 4 6
1478 test_pmtu_ipvX_over_ovs_vxlanY_or_geneveY_exception geneve 6 6
1489 "${ns_a}" veth_A-R1 "${ns_r1}" veth_R1-A \
1516 mtu "${ns_r1}" veth_R1-A $((${ll_mtu} + 1000))
1534 test_pmtu_ipvX_over_fouY_or_gueY 6 4 fou
1538 test_pmtu_ipvX_over_fouY_or_gueY 4 6 fou
1542 test_pmtu_ipvX_over_fouY_or_gueY 6 6 fou
1550 test_pmtu_ipvX_over_fouY_or_gueY 6 4 gue
1554 test_pmtu_ipvX_over_fouY_or_gueY 4 6 gue
1558 test_pmtu_ipvX_over_fouY_or_gueY 6 6 gue
1569 "${ns_a}" veth_A-R1 "${ns_r1}" veth_R1-A \
1590 mtu "${ns_r1}" veth_R1-A $((${ll_mtu} + 1000))
1608 test_pmtu_ipvX_over_ipvY_exception 6 4
1612 test_pmtu_ipvX_over_ipvY_exception 4 6
1616 test_pmtu_ipvX_over_ipvY_exception 6 6
1752 mtu "${ns_r1}" veth_R1-A ${veth_mtu}
1786 mtu "${ns_r1}" veth_R1-A ${veth_mtu}
1846 # This can fail, or MTU can be adjusted to a proper value
1884 # This can fail, or MTU can be adjusted to a proper value
1977 "${ns_a}" veth_A-R1 "${ns_r1}" veth_R1-A \
1982 mtu "${ns_r1}" veth_R1-A $((${ll_mtu} + 1000))
2001 err " can't delete veth device in a timely manner, PMTU dst likely leaked"
2006 test_cleanup_vxlanX_exception 6
2038 read a
2078 trace "${ns_a}" veth_A-R1 "${ns_r1}" veth_R1-A \
2080 "${ns_a}" veth_A-R2 "${ns_r2}" veth_R2-A \
2088 mtu "${ns_r1}" veth_R1-A 2000
2093 mtu "${ns_r2}" veth_R2-A 2000
2099 # Add 100 addresses for veth endpoint on B reached by default A route
2105 # that with IPv4 we need to actually cause a route lookup that matches
2106 # the exception caused by ICMP, in order to actually have a cached
2132 trace "${ns_a}" veth_A-R1 "${ns_r1}" veth_R1-A \
2134 "${ns_a}" veth_A-R2 "${ns_r2}" veth_R2-A \
2142 mtu "${ns_r1}" veth_R1-A 2000
2147 mtu "${ns_r2}" veth_R2-A 2000
2153 # Add 100 addresses for veth endpoint on B reached by default A route
2163 if [ "$(${ns_a} ip -oneline -6 route list cache | wc -l)" -ne 101 ]; then
2168 run_cmd ${ns_a} ip -6 route flush cache
2172 [ -n "$(${ns_a} ip -6 route list cache)" ]; then
2184 trace "${ns_a}" veth_A-R1 "${ns_r1}" veth_R1-A \
2186 "${ns_a}" veth_A-R2 "${ns_r2}" veth_R2-A \
2203 mtu "${ns_r1}" veth_R1-A 2000
2208 mtu "${ns_r2}" veth_R2-A 2000
2222 # Replace the route from A to R1
2225 # Delete the device in A
2234 test_pmtu_ipvX_route_change 6