Lines Matching full:mtu
4 # Check that route PMTU values match expectations, and that initial device MTU
20 # decrease and increase the MTU of the local link for one of the paths,
32 # set a MTU lower than the VXLAN MTU and the MTU on the link between A and
33 # R1. Send IPv4 packets, exceeding the MTU between R1 and B, over VXLAN
66 # MTU on the B-R1 link is lower than other MTUs.
85 # which is handled by Open vSwitch and bridged to C. MTU on the B-R1 link
116 # created if link layer MTU is not exceeded, then exceed it and check that
118 # below for IPv6 doesn't apply here, because, on IPv4, administrative MTU
124 # created by exceeding link layer MTU with ping to other endpoint. Then
125 # decrease and increase MTU of tunnel, checking that route exception PMTU
130 # endpoints. Check that MTU assigned to vti interface is the MTU of the
138 # Set up vti4 interface passing MTU value at link creation, check MTU is
139 # configured, and that link is not created with invalid MTU values
146 # and check that configured MTU is used on link creation and changes, and
147 # that MTU is properly calculated instead when MTU is not configured from
219 pmtu_vti4_default_mtu vti4: default MTU assignment 0
220 pmtu_vti6_default_mtu vti6: default MTU assignment 0
221 pmtu_vti4_link_add_mtu vti4: MTU setting on link creation 0
222 pmtu_vti6_link_add_mtu vti6: MTU setting on link creation 0
223 pmtu_vti6_link_change_mtu vti6: MTU changes on link changes 0
826 mtu() { function
829 mtu="${3}"
831 ${ns_cmd} ip link set dev ${dev} mtu ${mtu}
842 [ "${i}" = "mtu" ] && next=1
883 err " found PMTU exception with incorrect MTU ${value}, expected ${expected}, after ${event}"
906 # Set up initial MTU values
907 mtu "${ns_a}" veth_A-R1 2000
908 mtu "${ns_r1}" veth_R1-A 2000
909 mtu "${ns_r1}" veth_R1-B 1400
910 mtu "${ns_b}" veth_B-R1 1400
912 mtu "${ns_a}" veth_A-R2 2000
913 mtu "${ns_r2}" veth_R2-A 2000
914 mtu "${ns_r2}" veth_R2-B 1500
915 mtu "${ns_b}" veth_B-R2 1500
923 check_pmtu_value "1400" "${pmtu_1}" "exceeding MTU" || return 1
925 check_pmtu_value "1500" "${pmtu_2}" "exceeding MTU" || return 1
927 # Decrease local MTU below PMTU, check for PMTU decrease in route exception
928 mtu "${ns_a}" veth_A-R1 1300
929 mtu "${ns_r1}" veth_R1-A 1300
931 check_pmtu_value "1300" "${pmtu_1}" "decreasing local MTU" || return 1
934 check_pmtu_value "1500" "${pmtu_2}" "changing local MTU on a link not on this path" || return 1
936 # Increase MTU, check for PMTU increase in route exception
937 mtu "${ns_a}" veth_A-R1 1700
938 mtu "${ns_r1}" veth_R1-A 1700
940 check_pmtu_value "1700" "${pmtu_1}" "increasing local MTU" || return 1
943 check_pmtu_value "1500" "${pmtu_2}" "changing local MTU on a link not on this path" || return 1
948 # Decrease remote MTU on path via R2, get new exception
949 mtu "${ns_r2}" veth_R2-B 400
950 mtu "${ns_b}" veth_B-R2 400
953 check_pmtu_value "lock 552" "${pmtu_2}" "exceeding MTU, with MTU < min_pmtu" || return 1
955 # Decrease local MTU below PMTU
956 mtu "${ns_a}" veth_A-R2 500
957 mtu "${ns_r2}" veth_R2-A 500
959 check_pmtu_value "500" "${pmtu_2}" "decreasing local MTU" || return 1
961 # Increase local MTU
962 mtu "${ns_a}" veth_A-R2 1500
963 mtu "${ns_r2}" veth_R2-A 1500
965 check_pmtu_value "1500" "${pmtu_2}" "increasing local MTU" || return 1
970 check_pmtu_value "lock 552" "${pmtu_2}" "exceeding MTU, with MTU < min_pmtu" || return 1
1009 # Create route exception by exceeding link layer MTU
1010 mtu "${ns_a}" veth_A-R1 $((${ll_mtu} + 1000))
1011 mtu "${ns_r1}" veth_R1-A $((${ll_mtu} + 1000))
1012 mtu "${ns_b}" veth_B-R1 ${ll_mtu}
1013 mtu "${ns_r1}" veth_R1-B ${ll_mtu}
1015 mtu "${ns_a}" ${type}_a $((${ll_mtu} + 1000))
1016 mtu "${ns_b}" ${type}_b $((${ll_mtu} + 1000))
1021 check_pmtu_value ${exp_mtu} "${pmtu}" "exceeding link layer MTU on ${type} interface"
1086 # Create route exception by exceeding link layer MTU
1087 mtu "${ns_a}" veth_A-R1 $((${ll_mtu} + 1000))
1088 mtu "${ns_a}" br0 $((${ll_mtu} + 1000))
1089 mtu "${ns_a}" veth_A-C $((${ll_mtu} + 1000))
1090 mtu "${ns_c}" veth_C-A $((${ll_mtu} + 1000))
1091 mtu "${ns_r1}" veth_R1-A $((${ll_mtu} + 1000))
1092 mtu "${ns_b}" veth_B-R1 ${ll_mtu}
1093 mtu "${ns_r1}" veth_R1-B ${ll_mtu}
1095 mtu "${ns_a}" ${type}_a $((${ll_mtu} + 1000))
1096 mtu "${ns_b}" ${type}_b $((${ll_mtu} + 1000))
1103 check_pmtu_value ${exp_mtu} "${pmtu}" "exceeding link layer MTU on bridged ${type} interface"
1105 …check_pmtu_value ${exp_mtu} "${pmtu}" "exceeding link layer MTU on locally bridged ${type} interfa…
1176 # Create route exception by exceeding link layer MTU
1177 mtu "" veth_A-R1 $((${ll_mtu} + 1000))
1178 mtu "" ovs_br0 $((${ll_mtu} + 1000))
1179 mtu "" veth_A-C $((${ll_mtu} + 1000))
1180 mtu "${ns_c}" veth_C-A $((${ll_mtu} + 1000))
1181 mtu "${ns_r1}" veth_R1-A $((${ll_mtu} + 1000))
1182 mtu "${ns_b}" veth_B-R1 ${ll_mtu}
1183 mtu "${ns_r1}" veth_R1-B ${ll_mtu}
1185 mtu "" ${tun_a} $((${ll_mtu} + 1000))
1186 mtu "${ns_b}" ${type}_b $((${ll_mtu} + 1000))
1192 check_pmtu_value ${exp_mtu} "${pmtu}" "exceeding link layer MTU on Open vSwitch ${type} interface"
1260 # Create route exception by exceeding link layer MTU
1261 mtu "${ns_a}" veth_A-R1 $((${ll_mtu} + 1000))
1262 mtu "${ns_r1}" veth_R1-A $((${ll_mtu} + 1000))
1263 mtu "${ns_b}" veth_B-R1 ${ll_mtu}
1264 mtu "${ns_r1}" veth_R1-B ${ll_mtu}
1266 mtu "${ns_a}" ${encap}_a $((${ll_mtu} + 1000))
1267 mtu "${ns_b}" ${encap}_b $((${ll_mtu} + 1000))
1272 check_pmtu_value ${exp_mtu} "${pmtu}" "exceeding link layer MTU on ${encap} interface"
1334 # Create route exception by exceeding link layer MTU
1335 mtu "${ns_a}" veth_A-R1 $((${ll_mtu} + 1000))
1336 mtu "${ns_r1}" veth_R1-A $((${ll_mtu} + 1000))
1337 mtu "${ns_b}" veth_B-R1 ${ll_mtu}
1338 mtu "${ns_r1}" veth_R1-B ${ll_mtu}
1340 mtu "${ns_a}" ip_a $((${ll_mtu} + 1000)) || return
1341 mtu "${ns_b}" ip_b $((${ll_mtu} + 1000)) || return
1346 check_pmtu_value ${exp_mtu} "${pmtu}" "exceeding link layer MTU on ip${inner}ip${outer} interface"
1377 mtu "${ns_a}" veth_a ${veth_mtu}
1378 mtu "${ns_b}" veth_b ${veth_mtu}
1379 mtu "${ns_a}" vti4_a ${vti_mtu}
1380 mtu "${ns_b}" vti4_b ${vti_mtu}
1382 # Send DF packet without exceeding link layer MTU, check that no
1388 # Now exceed link layer MTU by one byte, check that exception is created
1401 # Create route exception by exceeding link layer MTU
1402 mtu "${ns_a}" veth_a 4000
1403 mtu "${ns_b}" veth_b 4000
1404 mtu "${ns_a}" vti6_a 5000
1405 mtu "${ns_b}" vti6_b 5000
1410 check_pmtu_value any "${pmtu}" "creating tunnel exceeding link layer MTU" || return 1
1412 # Decrease tunnel MTU, check for PMTU decrease in route exception
1413 mtu "${ns_a}" vti6_a 3000
1415 check_pmtu_value "3000" "${pmtu}" "decreasing tunnel MTU" || fail=1
1417 # Increase tunnel MTU, check for PMTU increase in route exception
1418 mtu "${ns_a}" vti6_a 9000
1420 check_pmtu_value "9000" "${pmtu}" "increasing tunnel MTU" || fail=1
1428 # Check that MTU of vti device is MTU of veth minus IPv4 header length
1432 err " vti MTU ${vti4_mtu} is not veth MTU ${veth_mtu} minus IPv4 header length"
1440 # Check that MTU of vti device is MTU of veth minus IPv6 header length
1444 err " vti MTU ${vti6_mtu} is not veth MTU ${veth_mtu} minus IPv6 header length"
1462 …run_cmd ${ns_a} ip link add vti4_a mtu ${v} type vti local ${veth4_a_addr} remote ${veth4_b_addr} …
1463 # This can fail, or MTU can be adjusted to a proper value
1465 mtu="$(link_get_mtu "${ns_a}" vti4_a)"
1466 if [ ${mtu} -lt ${min} -o ${mtu} -gt ${max} ]; then
1467 err " vti tunnel created with invalid MTU ${mtu}"
1475 …run_cmd ${ns_a} ip link add vti4_a mtu ${v} type vti local ${veth4_a_addr} remote ${veth4_b_addr} …
1476 mtu="$(link_get_mtu "${ns_a}" vti4_a)"
1478 if [ "${mtu}" != "${v}" ]; then
1479 err " vti MTU ${mtu} doesn't match configured value ${v}"
1500 …run_cmd ${ns_a} ip link add vti6_a mtu ${v} type vti6 local ${veth6_a_addr} remote ${veth6_b_addr}…
1501 # This can fail, or MTU can be adjusted to a proper value
1503 mtu="$(link_get_mtu "${ns_a}" vti6_a)"
1504 if [ ${mtu} -lt ${min} -o ${mtu} -gt ${max} ]; then
1505 err " vti6 tunnel created with invalid MTU ${v}"
1513 …run_cmd ${ns_a} ip link add vti6_a mtu ${v} type vti6 local ${veth6_a_addr} remote ${veth6_b_addr}…
1514 mtu="$(link_get_mtu "${ns_a}" vti6_a)"
1516 if [ "${mtu}" != "${v}" ]; then
1517 err " vti6 MTU ${mtu} doesn't match configured value ${v}"
1528 run_cmd ${ns_a} ip link add dummy0 mtu 1500 type dummy
1530 run_cmd ${ns_a} ip link add dummy1 mtu 3000 type dummy
1539 # Create vti6 interface bound to device, passing MTU, check it
1540 …run_cmd ${ns_a} ip link add vti6_a mtu 1300 type vti6 remote ${dummy6_0_prefix}2 local ${dummy6_0_…
1541 mtu="$(link_get_mtu "${ns_a}" vti6_a)"
1542 if [ ${mtu} -ne 1300 ]; then
1543 err " vti6 MTU ${mtu} doesn't match configured value 1300"
1547 # Move to another device with different MTU, without passing MTU, check
1548 # MTU is adjusted
1550 mtu="$(link_get_mtu "${ns_a}" vti6_a)"
1551 if [ ${mtu} -ne $((3000 - 40)) ]; then
1552 err " vti MTU ${mtu} is not dummy MTU 3000 minus IPv6 header length"
1556 # Move it back, passing MTU, check MTU is not overridden
1557 …run_cmd ${ns_a} ip link set vti6_a mtu 1280 type vti6 remote ${dummy6_0_prefix}2 local ${dummy6_0_…
1558 mtu="$(link_get_mtu "${ns_a}" vti6_a)"
1559 if [ ${mtu} -ne 1280 ]; then
1560 err " vti6 MTU ${mtu} doesn't match configured value 1280"
1590 # Create route exception by exceeding link layer MTU
1591 mtu "${ns_a}" veth_A-R1 $((${ll_mtu} + 1000))
1592 mtu "${ns_r1}" veth_R1-A $((${ll_mtu} + 1000))
1593 mtu "${ns_b}" veth_B-R1 ${ll_mtu}
1594 mtu "${ns_r1}" veth_R1-B ${ll_mtu}
1596 mtu "${ns_a}" ${encap}_a $((${ll_mtu} + 1000))
1597 mtu "${ns_b}" ${encap}_b $((${ll_mtu} + 1000))
1679 # Set up initial MTU values
1680 mtu "${ns_a}" veth_A-R1 2000
1681 mtu "${ns_r1}" veth_R1-A 2000
1682 mtu "${ns_r1}" veth_R1-B 1500
1683 mtu "${ns_b}" veth_B-R1 1500
1685 mtu "${ns_a}" veth_A-R2 2000
1686 mtu "${ns_r2}" veth_R2-A 2000
1687 mtu "${ns_r2}" veth_R2-B 1500
1688 mtu "${ns_b}" veth_B-R2 1500
1733 # Set up initial MTU values
1734 mtu "${ns_a}" veth_A-R1 2000
1735 mtu "${ns_r1}" veth_R1-A 2000
1736 mtu "${ns_r1}" veth_R1-B 1500
1737 mtu "${ns_b}" veth_B-R1 1500
1739 mtu "${ns_a}" veth_A-R2 2000
1740 mtu "${ns_r2}" veth_R2-A 2000
1741 mtu "${ns_r2}" veth_R2-B 1500
1742 mtu "${ns_b}" veth_B-R2 1500