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
127 # route exception is not created if link layer MTU is not exceeded, then
128 # lower MTU on second part of routed environment and check that exception
134 # created by exceeding link layer MTU with ping to other endpoint. Then
135 # decrease and increase MTU of tunnel, checking that route exception PMTU
147 # endpoints. Check that MTU assigned to vti interface is the MTU of the
155 # Set up vti4 interface passing MTU value at link creation, check MTU is
156 # configured, and that link is not created with invalid MTU values
163 # and check that configured MTU is used on link creation and changes, and
164 # that MTU is properly calculated instead when MTU is not configured from
248 pmtu_vti4_default_mtu vti4: default MTU assignment 0
249 pmtu_vti6_default_mtu vti6: default MTU assignment 0
250 pmtu_vti4_link_add_mtu vti4: MTU setting on link creation 0
251 pmtu_vti6_link_add_mtu vti6: MTU setting on link creation 0
252 pmtu_vti6_link_change_mtu vti6: MTU changes on link changes 0
907 mtu() { function
910 mtu="${3}"
912 ${ns_cmd} ip link set dev ${dev} mtu ${mtu}
923 [ "${i}" = "mtu" ] && next=1
964 err " found PMTU exception with incorrect MTU ${value}, expected ${expected}, after ${event}"
987 # Set up initial MTU values
988 mtu "${ns_a}" veth_A-R1 2000
989 mtu "${ns_r1}" veth_R1-A 2000
990 mtu "${ns_r1}" veth_R1-B 1400
991 mtu "${ns_b}" veth_B-R1 1400
993 mtu "${ns_a}" veth_A-R2 2000
994 mtu "${ns_r2}" veth_R2-A 2000
995 mtu "${ns_r2}" veth_R2-B 1500
996 mtu "${ns_b}" veth_B-R2 1500
1004 check_pmtu_value "1400" "${pmtu_1}" "exceeding MTU" || return 1
1006 check_pmtu_value "1500" "${pmtu_2}" "exceeding MTU" || return 1
1008 # Decrease local MTU below PMTU, check for PMTU decrease in route exception
1009 mtu "${ns_a}" veth_A-R1 1300
1010 mtu "${ns_r1}" veth_R1-A 1300
1012 check_pmtu_value "1300" "${pmtu_1}" "decreasing local MTU" || return 1
1015 check_pmtu_value "1500" "${pmtu_2}" "changing local MTU on a link not on this path" || return 1
1017 # Increase MTU, check for PMTU increase in route exception
1018 mtu "${ns_a}" veth_A-R1 1700
1019 mtu "${ns_r1}" veth_R1-A 1700
1021 check_pmtu_value "1700" "${pmtu_1}" "increasing local MTU" || return 1
1024 check_pmtu_value "1500" "${pmtu_2}" "changing local MTU on a link not on this path" || return 1
1029 # Decrease remote MTU on path via R2, get new exception
1030 mtu "${ns_r2}" veth_R2-B 400
1031 mtu "${ns_b}" veth_B-R2 400
1034 check_pmtu_value "lock 552" "${pmtu_2}" "exceeding MTU, with MTU < min_pmtu" || return 1
1036 # Decrease local MTU below PMTU
1037 mtu "${ns_a}" veth_A-R2 500
1038 mtu "${ns_r2}" veth_R2-A 500
1040 check_pmtu_value "500" "${pmtu_2}" "decreasing local MTU" || return 1
1042 # Increase local MTU
1043 mtu "${ns_a}" veth_A-R2 1500
1044 mtu "${ns_r2}" veth_R2-A 1500
1046 check_pmtu_value "1500" "${pmtu_2}" "increasing local MTU" || return 1
1051 check_pmtu_value "lock 552" "${pmtu_2}" "exceeding MTU, with MTU < min_pmtu" || return 1
1090 # Create route exception by exceeding link layer MTU
1091 mtu "${ns_a}" veth_A-R1 $((${ll_mtu} + 1000))
1092 mtu "${ns_r1}" veth_R1-A $((${ll_mtu} + 1000))
1093 mtu "${ns_b}" veth_B-R1 ${ll_mtu}
1094 mtu "${ns_r1}" veth_R1-B ${ll_mtu}
1096 mtu "${ns_a}" ${type}_a $((${ll_mtu} + 1000))
1097 mtu "${ns_b}" ${type}_b $((${ll_mtu} + 1000))
1102 check_pmtu_value ${exp_mtu} "${pmtu}" "exceeding link layer MTU on ${type} interface"
1167 # Create route exception by exceeding link layer MTU
1168 mtu "${ns_a}" veth_A-R1 $((${ll_mtu} + 1000))
1169 mtu "${ns_a}" br0 $((${ll_mtu} + 1000))
1170 mtu "${ns_a}" veth_A-C $((${ll_mtu} + 1000))
1171 mtu "${ns_c}" veth_C-A $((${ll_mtu} + 1000))
1172 mtu "${ns_r1}" veth_R1-A $((${ll_mtu} + 1000))
1173 mtu "${ns_b}" veth_B-R1 ${ll_mtu}
1174 mtu "${ns_r1}" veth_R1-B ${ll_mtu}
1176 mtu "${ns_a}" ${type}_a $((${ll_mtu} + 1000))
1177 mtu "${ns_b}" ${type}_b $((${ll_mtu} + 1000))
1184 check_pmtu_value ${exp_mtu} "${pmtu}" "exceeding link layer MTU on bridged ${type} interface"
1186 …check_pmtu_value ${exp_mtu} "${pmtu}" "exceeding link layer MTU on locally bridged ${type} interfa…
1257 # Create route exception by exceeding link layer MTU
1258 mtu "" veth_A-R1 $((${ll_mtu} + 1000))
1259 mtu "" ovs_br0 $((${ll_mtu} + 1000))
1260 mtu "" veth_A-C $((${ll_mtu} + 1000))
1261 mtu "${ns_c}" veth_C-A $((${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 "" ${tun_a} $((${ll_mtu} + 1000))
1267 mtu "${ns_b}" ${type}_b $((${ll_mtu} + 1000))
1273 check_pmtu_value ${exp_mtu} "${pmtu}" "exceeding link layer MTU on Open vSwitch ${type} interface"
1341 # Create route exception by exceeding link layer MTU
1342 mtu "${ns_a}" veth_A-R1 $((${ll_mtu} + 1000))
1343 mtu "${ns_r1}" veth_R1-A $((${ll_mtu} + 1000))
1344 mtu "${ns_b}" veth_B-R1 ${ll_mtu}
1345 mtu "${ns_r1}" veth_R1-B ${ll_mtu}
1347 mtu "${ns_a}" ${encap}_a $((${ll_mtu} + 1000))
1348 mtu "${ns_b}" ${encap}_b $((${ll_mtu} + 1000))
1353 check_pmtu_value ${exp_mtu} "${pmtu}" "exceeding link layer MTU on ${encap} interface"
1415 # Create route exception by exceeding link layer MTU
1416 mtu "${ns_a}" veth_A-R1 $((${ll_mtu} + 1000))
1417 mtu "${ns_r1}" veth_R1-A $((${ll_mtu} + 1000))
1418 mtu "${ns_b}" veth_B-R1 ${ll_mtu}
1419 mtu "${ns_r1}" veth_R1-B ${ll_mtu}
1421 mtu "${ns_a}" ip_a $((${ll_mtu} + 1000)) || return
1422 mtu "${ns_b}" ip_b $((${ll_mtu} + 1000)) || return
1427 check_pmtu_value ${exp_mtu} "${pmtu}" "exceeding link layer MTU on ip${inner}ip${outer} interface"
1458 mtu "${ns_a}" veth_a ${veth_mtu}
1459 mtu "${ns_b}" veth_b ${veth_mtu}
1460 mtu "${ns_a}" vti4_a ${vti_mtu}
1461 mtu "${ns_b}" vti4_b ${vti_mtu}
1463 # Send DF packet without exceeding link layer MTU, check that no
1469 # Now exceed link layer MTU by one byte, check that exception is created
1482 # Create route exception by exceeding link layer MTU
1483 mtu "${ns_a}" veth_a 4000
1484 mtu "${ns_b}" veth_b 4000
1485 mtu "${ns_a}" vti6_a 5000
1486 mtu "${ns_b}" vti6_b 5000
1491 check_pmtu_value any "${pmtu}" "creating tunnel exceeding link layer MTU" || return 1
1493 # Decrease tunnel MTU, check for PMTU decrease in route exception
1494 mtu "${ns_a}" vti6_a 3000
1496 check_pmtu_value "3000" "${pmtu}" "decreasing tunnel MTU" || fail=1
1498 # Increase tunnel MTU, check for PMTU increase in route exception
1499 mtu "${ns_a}" vti6_a 9000
1501 check_pmtu_value "9000" "${pmtu}" "increasing tunnel MTU" || fail=1
1518 mtu "${ns_a}" veth_a ${veth_mtu}
1519 mtu "${ns_b}" veth_b ${veth_mtu}
1520 mtu "${ns_a}" vti4_a ${vti_mtu}
1521 mtu "${ns_b}" vti4_b ${vti_mtu}
1523 # Send DF packet without exceeding link layer MTU, check that no
1529 # Now exceed link layer MTU by one byte, check that exception is created
1542 # Create route exception by exceeding link layer MTU
1543 mtu "${ns_a}" veth_a 4000
1544 mtu "${ns_b}" veth_b 4000
1545 mtu "${ns_a}" vti6_a 5000
1546 mtu "${ns_b}" vti6_b 5000
1551 check_pmtu_value any "${pmtu}" "creating tunnel exceeding link layer MTU" || return 1
1553 # Decrease tunnel MTU, check for PMTU decrease in route exception
1554 mtu "${ns_a}" vti6_a 3000
1556 check_pmtu_value "3000" "${pmtu}" "decreasing tunnel MTU" || fail=1
1558 # Increase tunnel MTU, check for PMTU increase in route exception
1559 mtu "${ns_a}" vti6_a 9000
1561 check_pmtu_value "9000" "${pmtu}" "increasing tunnel MTU" || fail=1
1578 mtu "${ns_a}" veth_A-R1 ${veth_mtu}
1579 mtu "${ns_r1}" veth_R1-A ${veth_mtu}
1580 mtu "${ns_b}" veth_B-R1 ${veth_mtu}
1581 mtu "${ns_r1}" veth_R1-B ${veth_mtu}
1583 mtu "${ns_a}" vti4_a ${vti_mtu}
1584 mtu "${ns_b}" vti4_b ${vti_mtu}
1586 # Send DF packet without exceeding link layer MTU, check that no
1592 # Now decrease link layer MTU by 8 bytes on R1, check that exception is created
1594 mtu "${ns_r1}" veth_R1-B $((veth_mtu - 8))
1612 mtu "${ns_a}" veth_A-R1 ${veth_mtu}
1613 mtu "${ns_r1}" veth_R1-A ${veth_mtu}
1614 mtu "${ns_b}" veth_B-R1 ${veth_mtu}
1615 mtu "${ns_r1}" veth_R1-B ${veth_mtu}
1617 # mtu "${ns_a}" vti6_a ${vti_mtu}
1618 # mtu "${ns_b}" vti6_b ${vti_mtu}
1626 # Now decrease link layer MTU by 8 bytes on R1, check that exception is created
1628 mtu "${ns_r1}" veth_R1-B $((veth_mtu - 8))
1638 # Check that MTU of vti device is MTU of veth minus IPv4 header length
1642 err " vti MTU ${vti4_mtu} is not veth MTU ${veth_mtu} minus IPv4 header length"
1650 # Check that MTU of vti device is MTU of veth minus IPv6 header length
1654 err " vti MTU ${vti6_mtu} is not veth MTU ${veth_mtu} minus IPv6 header length"
1672 …run_cmd ${ns_a} ip link add vti4_a mtu ${v} type vti local ${veth4_a_addr} remote ${veth4_b_addr} …
1673 # This can fail, or MTU can be adjusted to a proper value
1675 mtu="$(link_get_mtu "${ns_a}" vti4_a)"
1676 if [ ${mtu} -lt ${min} -o ${mtu} -gt ${max} ]; then
1677 err " vti tunnel created with invalid MTU ${mtu}"
1685 …run_cmd ${ns_a} ip link add vti4_a mtu ${v} type vti local ${veth4_a_addr} remote ${veth4_b_addr} …
1686 mtu="$(link_get_mtu "${ns_a}" vti4_a)"
1688 if [ "${mtu}" != "${v}" ]; then
1689 err " vti MTU ${mtu} doesn't match configured value ${v}"
1710 …run_cmd ${ns_a} ip link add vti6_a mtu ${v} type vti6 local ${veth6_a_addr} remote ${veth6_b_addr}…
1711 # This can fail, or MTU can be adjusted to a proper value
1713 mtu="$(link_get_mtu "${ns_a}" vti6_a)"
1714 if [ ${mtu} -lt ${min} -o ${mtu} -gt ${max} ]; then
1715 err " vti6 tunnel created with invalid MTU ${v}"
1723 …run_cmd ${ns_a} ip link add vti6_a mtu ${v} type vti6 local ${veth6_a_addr} remote ${veth6_b_addr}…
1724 mtu="$(link_get_mtu "${ns_a}" vti6_a)"
1726 if [ "${mtu}" != "${v}" ]; then
1727 err " vti6 MTU ${mtu} doesn't match configured value ${v}"
1738 run_cmd ${ns_a} ip link add dummy0 mtu 1500 type dummy
1740 run_cmd ${ns_a} ip link add dummy1 mtu 3000 type dummy
1749 # Create vti6 interface bound to device, passing MTU, check it
1750 …run_cmd ${ns_a} ip link add vti6_a mtu 1300 type vti6 remote ${dummy6_0_prefix}2 local ${dummy6_0_…
1751 mtu="$(link_get_mtu "${ns_a}" vti6_a)"
1752 if [ ${mtu} -ne 1300 ]; then
1753 err " vti6 MTU ${mtu} doesn't match configured value 1300"
1757 # Move to another device with different MTU, without passing MTU, check
1758 # MTU is adjusted
1760 mtu="$(link_get_mtu "${ns_a}" vti6_a)"
1761 if [ ${mtu} -ne $((3000 - 40)) ]; then
1762 err " vti MTU ${mtu} is not dummy MTU 3000 minus IPv6 header length"
1766 # Move it back, passing MTU, check MTU is not overridden
1767 …run_cmd ${ns_a} ip link set vti6_a mtu 1280 type vti6 remote ${dummy6_0_prefix}2 local ${dummy6_0_…
1768 mtu="$(link_get_mtu "${ns_a}" vti6_a)"
1769 if [ ${mtu} -ne 1280 ]; then
1770 err " vti6 MTU ${mtu} doesn't match configured value 1280"
1800 # Create route exception by exceeding link layer MTU
1801 mtu "${ns_a}" veth_A-R1 $((${ll_mtu} + 1000))
1802 mtu "${ns_r1}" veth_R1-A $((${ll_mtu} + 1000))
1803 mtu "${ns_b}" veth_B-R1 ${ll_mtu}
1804 mtu "${ns_r1}" veth_R1-B ${ll_mtu}
1806 mtu "${ns_a}" ${encap}_a $((${ll_mtu} + 1000))
1807 mtu "${ns_b}" ${encap}_b $((${ll_mtu} + 1000))
1901 # Set up initial MTU values
1902 mtu "${ns_a}" veth_A-R1 2000
1903 mtu "${ns_r1}" veth_R1-A 2000
1904 mtu "${ns_r1}" veth_R1-B 1500
1905 mtu "${ns_b}" veth_B-R1 1500
1907 mtu "${ns_a}" veth_A-R2 2000
1908 mtu "${ns_r2}" veth_R2-A 2000
1909 mtu "${ns_r2}" veth_R2-B 1500
1910 mtu "${ns_b}" veth_B-R2 1500
1955 # Set up initial MTU values
1956 mtu "${ns_a}" veth_A-R1 2000
1957 mtu "${ns_r1}" veth_R1-A 2000
1958 mtu "${ns_r1}" veth_R1-B 1500
1959 mtu "${ns_b}" veth_B-R1 1500
1961 mtu "${ns_a}" veth_A-R2 2000
1962 mtu "${ns_r2}" veth_R2-A 2000
1963 mtu "${ns_r2}" veth_R2-B 1500
1964 mtu "${ns_b}" veth_B-R2 1500
2016 # Set up initial MTU values
2017 mtu "${ns_a}" veth_A-R1 2000
2018 mtu "${ns_r1}" veth_R1-A 2000
2019 mtu "${ns_r1}" veth_R1-B 1400
2020 mtu "${ns_b}" veth_B-R1 1400
2022 mtu "${ns_a}" veth_A-R2 2000
2023 mtu "${ns_r2}" veth_R2-A 2000
2024 mtu "${ns_r2}" veth_R2-B 1500
2025 mtu "${ns_b}" veth_B-R2 1500
2033 check_pmtu_value "1400" "${pmtu_1}" "exceeding MTU" || return 1
2035 check_pmtu_value "1500" "${pmtu_2}" "exceeding MTU" || return 1