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
227 pmtu_vti4_default_mtu vti4: default MTU assignment 0
228 pmtu_vti6_default_mtu vti6: default MTU assignment 0
229 pmtu_vti4_link_add_mtu vti4: MTU setting on link creation 0
230 pmtu_vti6_link_add_mtu vti6: MTU setting on link creation 0
231 pmtu_vti6_link_change_mtu vti6: MTU changes on link changes 0
835 mtu() { function
838 mtu="${3}"
840 ${ns_cmd} ip link set dev ${dev} mtu ${mtu}
851 [ "${i}" = "mtu" ] && next=1
892 err " found PMTU exception with incorrect MTU ${value}, expected ${expected}, after ${event}"
915 # Set up initial MTU values
916 mtu "${ns_a}" veth_A-R1 2000
917 mtu "${ns_r1}" veth_R1-A 2000
918 mtu "${ns_r1}" veth_R1-B 1400
919 mtu "${ns_b}" veth_B-R1 1400
921 mtu "${ns_a}" veth_A-R2 2000
922 mtu "${ns_r2}" veth_R2-A 2000
923 mtu "${ns_r2}" veth_R2-B 1500
924 mtu "${ns_b}" veth_B-R2 1500
932 check_pmtu_value "1400" "${pmtu_1}" "exceeding MTU" || return 1
934 check_pmtu_value "1500" "${pmtu_2}" "exceeding MTU" || return 1
936 # Decrease local MTU below PMTU, check for PMTU decrease in route exception
937 mtu "${ns_a}" veth_A-R1 1300
938 mtu "${ns_r1}" veth_R1-A 1300
940 check_pmtu_value "1300" "${pmtu_1}" "decreasing local MTU" || return 1
943 check_pmtu_value "1500" "${pmtu_2}" "changing local MTU on a link not on this path" || return 1
945 # Increase MTU, check for PMTU increase in route exception
946 mtu "${ns_a}" veth_A-R1 1700
947 mtu "${ns_r1}" veth_R1-A 1700
949 check_pmtu_value "1700" "${pmtu_1}" "increasing local MTU" || return 1
952 check_pmtu_value "1500" "${pmtu_2}" "changing local MTU on a link not on this path" || return 1
957 # Decrease remote MTU on path via R2, get new exception
958 mtu "${ns_r2}" veth_R2-B 400
959 mtu "${ns_b}" veth_B-R2 400
962 check_pmtu_value "lock 552" "${pmtu_2}" "exceeding MTU, with MTU < min_pmtu" || return 1
964 # Decrease local MTU below PMTU
965 mtu "${ns_a}" veth_A-R2 500
966 mtu "${ns_r2}" veth_R2-A 500
968 check_pmtu_value "500" "${pmtu_2}" "decreasing local MTU" || return 1
970 # Increase local MTU
971 mtu "${ns_a}" veth_A-R2 1500
972 mtu "${ns_r2}" veth_R2-A 1500
974 check_pmtu_value "1500" "${pmtu_2}" "increasing local MTU" || return 1
979 check_pmtu_value "lock 552" "${pmtu_2}" "exceeding MTU, with MTU < min_pmtu" || return 1
1018 # Create route exception by exceeding link layer MTU
1019 mtu "${ns_a}" veth_A-R1 $((${ll_mtu} + 1000))
1020 mtu "${ns_r1}" veth_R1-A $((${ll_mtu} + 1000))
1021 mtu "${ns_b}" veth_B-R1 ${ll_mtu}
1022 mtu "${ns_r1}" veth_R1-B ${ll_mtu}
1024 mtu "${ns_a}" ${type}_a $((${ll_mtu} + 1000))
1025 mtu "${ns_b}" ${type}_b $((${ll_mtu} + 1000))
1030 check_pmtu_value ${exp_mtu} "${pmtu}" "exceeding link layer MTU on ${type} interface"
1095 # Create route exception by exceeding link layer MTU
1096 mtu "${ns_a}" veth_A-R1 $((${ll_mtu} + 1000))
1097 mtu "${ns_a}" br0 $((${ll_mtu} + 1000))
1098 mtu "${ns_a}" veth_A-C $((${ll_mtu} + 1000))
1099 mtu "${ns_c}" veth_C-A $((${ll_mtu} + 1000))
1100 mtu "${ns_r1}" veth_R1-A $((${ll_mtu} + 1000))
1101 mtu "${ns_b}" veth_B-R1 ${ll_mtu}
1102 mtu "${ns_r1}" veth_R1-B ${ll_mtu}
1104 mtu "${ns_a}" ${type}_a $((${ll_mtu} + 1000))
1105 mtu "${ns_b}" ${type}_b $((${ll_mtu} + 1000))
1112 check_pmtu_value ${exp_mtu} "${pmtu}" "exceeding link layer MTU on bridged ${type} interface"
1114 …check_pmtu_value ${exp_mtu} "${pmtu}" "exceeding link layer MTU on locally bridged ${type} interfa…
1185 # Create route exception by exceeding link layer MTU
1186 mtu "" veth_A-R1 $((${ll_mtu} + 1000))
1187 mtu "" ovs_br0 $((${ll_mtu} + 1000))
1188 mtu "" veth_A-C $((${ll_mtu} + 1000))
1189 mtu "${ns_c}" veth_C-A $((${ll_mtu} + 1000))
1190 mtu "${ns_r1}" veth_R1-A $((${ll_mtu} + 1000))
1191 mtu "${ns_b}" veth_B-R1 ${ll_mtu}
1192 mtu "${ns_r1}" veth_R1-B ${ll_mtu}
1194 mtu "" ${tun_a} $((${ll_mtu} + 1000))
1195 mtu "${ns_b}" ${type}_b $((${ll_mtu} + 1000))
1201 check_pmtu_value ${exp_mtu} "${pmtu}" "exceeding link layer MTU on Open vSwitch ${type} interface"
1269 # Create route exception by exceeding link layer MTU
1270 mtu "${ns_a}" veth_A-R1 $((${ll_mtu} + 1000))
1271 mtu "${ns_r1}" veth_R1-A $((${ll_mtu} + 1000))
1272 mtu "${ns_b}" veth_B-R1 ${ll_mtu}
1273 mtu "${ns_r1}" veth_R1-B ${ll_mtu}
1275 mtu "${ns_a}" ${encap}_a $((${ll_mtu} + 1000))
1276 mtu "${ns_b}" ${encap}_b $((${ll_mtu} + 1000))
1281 check_pmtu_value ${exp_mtu} "${pmtu}" "exceeding link layer MTU on ${encap} interface"
1343 # Create route exception by exceeding link layer MTU
1344 mtu "${ns_a}" veth_A-R1 $((${ll_mtu} + 1000))
1345 mtu "${ns_r1}" veth_R1-A $((${ll_mtu} + 1000))
1346 mtu "${ns_b}" veth_B-R1 ${ll_mtu}
1347 mtu "${ns_r1}" veth_R1-B ${ll_mtu}
1349 mtu "${ns_a}" ip_a $((${ll_mtu} + 1000)) || return
1350 mtu "${ns_b}" ip_b $((${ll_mtu} + 1000)) || return
1355 check_pmtu_value ${exp_mtu} "${pmtu}" "exceeding link layer MTU on ip${inner}ip${outer} interface"
1386 mtu "${ns_a}" veth_a ${veth_mtu}
1387 mtu "${ns_b}" veth_b ${veth_mtu}
1388 mtu "${ns_a}" vti4_a ${vti_mtu}
1389 mtu "${ns_b}" vti4_b ${vti_mtu}
1391 # Send DF packet without exceeding link layer MTU, check that no
1397 # Now exceed link layer MTU by one byte, check that exception is created
1410 # Create route exception by exceeding link layer MTU
1411 mtu "${ns_a}" veth_a 4000
1412 mtu "${ns_b}" veth_b 4000
1413 mtu "${ns_a}" vti6_a 5000
1414 mtu "${ns_b}" vti6_b 5000
1419 check_pmtu_value any "${pmtu}" "creating tunnel exceeding link layer MTU" || return 1
1421 # Decrease tunnel MTU, check for PMTU decrease in route exception
1422 mtu "${ns_a}" vti6_a 3000
1424 check_pmtu_value "3000" "${pmtu}" "decreasing tunnel MTU" || fail=1
1426 # Increase tunnel MTU, check for PMTU increase in route exception
1427 mtu "${ns_a}" vti6_a 9000
1429 check_pmtu_value "9000" "${pmtu}" "increasing tunnel MTU" || fail=1
1437 # Check that MTU of vti device is MTU of veth minus IPv4 header length
1441 err " vti MTU ${vti4_mtu} is not veth MTU ${veth_mtu} minus IPv4 header length"
1449 # Check that MTU of vti device is MTU of veth minus IPv6 header length
1453 err " vti MTU ${vti6_mtu} is not veth MTU ${veth_mtu} minus IPv6 header length"
1471 …run_cmd ${ns_a} ip link add vti4_a mtu ${v} type vti local ${veth4_a_addr} remote ${veth4_b_addr} …
1472 # This can fail, or MTU can be adjusted to a proper value
1474 mtu="$(link_get_mtu "${ns_a}" vti4_a)"
1475 if [ ${mtu} -lt ${min} -o ${mtu} -gt ${max} ]; then
1476 err " vti tunnel created with invalid MTU ${mtu}"
1484 …run_cmd ${ns_a} ip link add vti4_a mtu ${v} type vti local ${veth4_a_addr} remote ${veth4_b_addr} …
1485 mtu="$(link_get_mtu "${ns_a}" vti4_a)"
1487 if [ "${mtu}" != "${v}" ]; then
1488 err " vti MTU ${mtu} doesn't match configured value ${v}"
1509 …run_cmd ${ns_a} ip link add vti6_a mtu ${v} type vti6 local ${veth6_a_addr} remote ${veth6_b_addr}…
1510 # This can fail, or MTU can be adjusted to a proper value
1512 mtu="$(link_get_mtu "${ns_a}" vti6_a)"
1513 if [ ${mtu} -lt ${min} -o ${mtu} -gt ${max} ]; then
1514 err " vti6 tunnel created with invalid MTU ${v}"
1522 …run_cmd ${ns_a} ip link add vti6_a mtu ${v} type vti6 local ${veth6_a_addr} remote ${veth6_b_addr}…
1523 mtu="$(link_get_mtu "${ns_a}" vti6_a)"
1525 if [ "${mtu}" != "${v}" ]; then
1526 err " vti6 MTU ${mtu} doesn't match configured value ${v}"
1537 run_cmd ${ns_a} ip link add dummy0 mtu 1500 type dummy
1539 run_cmd ${ns_a} ip link add dummy1 mtu 3000 type dummy
1548 # Create vti6 interface bound to device, passing MTU, check it
1549 …run_cmd ${ns_a} ip link add vti6_a mtu 1300 type vti6 remote ${dummy6_0_prefix}2 local ${dummy6_0_…
1550 mtu="$(link_get_mtu "${ns_a}" vti6_a)"
1551 if [ ${mtu} -ne 1300 ]; then
1552 err " vti6 MTU ${mtu} doesn't match configured value 1300"
1556 # Move to another device with different MTU, without passing MTU, check
1557 # MTU is adjusted
1559 mtu="$(link_get_mtu "${ns_a}" vti6_a)"
1560 if [ ${mtu} -ne $((3000 - 40)) ]; then
1561 err " vti MTU ${mtu} is not dummy MTU 3000 minus IPv6 header length"
1565 # Move it back, passing MTU, check MTU is not overridden
1566 …run_cmd ${ns_a} ip link set vti6_a mtu 1280 type vti6 remote ${dummy6_0_prefix}2 local ${dummy6_0_…
1567 mtu="$(link_get_mtu "${ns_a}" vti6_a)"
1568 if [ ${mtu} -ne 1280 ]; then
1569 err " vti6 MTU ${mtu} doesn't match configured value 1280"
1599 # Create route exception by exceeding link layer MTU
1600 mtu "${ns_a}" veth_A-R1 $((${ll_mtu} + 1000))
1601 mtu "${ns_r1}" veth_R1-A $((${ll_mtu} + 1000))
1602 mtu "${ns_b}" veth_B-R1 ${ll_mtu}
1603 mtu "${ns_r1}" veth_R1-B ${ll_mtu}
1605 mtu "${ns_a}" ${encap}_a $((${ll_mtu} + 1000))
1606 mtu "${ns_b}" ${encap}_b $((${ll_mtu} + 1000))
1692 # Set up initial MTU values
1693 mtu "${ns_a}" veth_A-R1 2000
1694 mtu "${ns_r1}" veth_R1-A 2000
1695 mtu "${ns_r1}" veth_R1-B 1500
1696 mtu "${ns_b}" veth_B-R1 1500
1698 mtu "${ns_a}" veth_A-R2 2000
1699 mtu "${ns_r2}" veth_R2-A 2000
1700 mtu "${ns_r2}" veth_R2-B 1500
1701 mtu "${ns_b}" veth_B-R2 1500
1746 # Set up initial MTU values
1747 mtu "${ns_a}" veth_A-R1 2000
1748 mtu "${ns_r1}" veth_R1-A 2000
1749 mtu "${ns_r1}" veth_R1-B 1500
1750 mtu "${ns_b}" veth_B-R1 1500
1752 mtu "${ns_a}" veth_A-R2 2000
1753 mtu "${ns_r2}" veth_R2-A 2000
1754 mtu "${ns_r2}" veth_R2-B 1500
1755 mtu "${ns_b}" veth_B-R2 1500
1807 # Set up initial MTU values
1808 mtu "${ns_a}" veth_A-R1 2000
1809 mtu "${ns_r1}" veth_R1-A 2000
1810 mtu "${ns_r1}" veth_R1-B 1400
1811 mtu "${ns_b}" veth_B-R1 1400
1813 mtu "${ns_a}" veth_A-R2 2000
1814 mtu "${ns_r2}" veth_R2-A 2000
1815 mtu "${ns_r2}" veth_R2-B 1500
1816 mtu "${ns_b}" veth_B-R2 1500
1824 check_pmtu_value "1400" "${pmtu_1}" "exceeding MTU" || return 1
1826 check_pmtu_value "1500" "${pmtu_2}" "exceeding MTU" || return 1