tools/testing/selftests/net/pmtu.sh

Source file repositories/reference/linux-study-clean/tools/testing/selftests/net/pmtu.sh

File Facts

System
Linux kernel
Corpus path
tools/testing/selftests/net/pmtu.sh
Extension
.sh
Size
80406 bytes
Lines
2493
Domain
Support Tooling And Documentation
Bucket
tools
Inferred role
Support Tooling And Documentation: tools
Status
atlas-only

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
#
# Check that route PMTU values match expectations, and that initial device MTU
# values are assigned correctly
#
# Tests currently implemented:
#
# - pmtu_ipv4
#	Set up two namespaces, A and B, with two paths between them over routers
#	R1 and R2 (also implemented with namespaces), with different MTUs:
#
#	  segment a_r1    segment b_r1		a_r1: 2000
#	.--------------R1--------------.	b_r1: 1400
#	A                               B	a_r2: 2000
#	'--------------R2--------------'	b_r2: 1500
#	  segment a_r2    segment b_r2
#
#	Check that PMTU exceptions with the correct PMTU are created. Then
#	decrease and increase the MTU of the local link for one of the paths,
#	A to R1, checking that route exception PMTU changes accordingly over
#	this path. Also check that locked exceptions are created when an ICMP
#	message advertising a PMTU smaller than net.ipv4.route.min_pmtu is
#	received
#
# - pmtu_ipv6
#	Same as pmtu_ipv4, except for locked PMTU tests, using IPv6
#
# - pmtu_ipv4_dscp_icmp_exception
#	Set up the same network topology as pmtu_ipv4, but use non-default
#	routing table in A. A fib-rule is used to jump to this routing table
#	based on DSCP. Send ICMPv4 packets with the expected DSCP value and
#	verify that ECN doesn't interfere with the creation of PMTU exceptions.
#
# - pmtu_ipv4_dscp_udp_exception
#	Same as pmtu_ipv4_dscp_icmp_exception, but use UDP instead of ICMP.
#
# - pmtu_ipv4_vxlan4_exception
#	Set up the same network topology as pmtu_ipv4, create a VXLAN tunnel
#	over IPv4 between A and B, routed via R1. On the link between R1 and B,
#	set a MTU lower than the VXLAN MTU and the MTU on the link between A and
#	R1. Send IPv4 packets, exceeding the MTU between R1 and B, over VXLAN
#	from A to B and check that the PMTU exception is created with the right
#	value on A
#
# - pmtu_ipv6_vxlan4_exception
#	Same as pmtu_ipv4_vxlan4_exception, but send IPv6 packets from A to B
#
# - pmtu_ipv4_vxlan6_exception
#	Same as pmtu_ipv4_vxlan4_exception, but use IPv6 transport from A to B
#
# - pmtu_ipv6_vxlan6_exception
#	Same as pmtu_ipv4_vxlan6_exception, but send IPv6 packets from A to B
#
# - pmtu_ipv4_geneve4_exception
#	Same as pmtu_ipv4_vxlan4_exception, but using a GENEVE tunnel instead of
#	VXLAN
#
# - pmtu_ipv6_geneve4_exception
#	Same as pmtu_ipv6_vxlan4_exception, but using a GENEVE tunnel instead of
#	VXLAN
#
# - pmtu_ipv4_geneve6_exception
#	Same as pmtu_ipv4_vxlan6_exception, but using a GENEVE tunnel instead of
#	VXLAN
#
# - pmtu_ipv6_geneve6_exception
#	Same as pmtu_ipv6_vxlan6_exception, but using a GENEVE tunnel instead of
#	VXLAN
#

Annotation

Implementation Notes