Routers that are not configured to support Hop-by-Hop Options are not expected to examine or process the contents of this Option [
RFC 8200].
Routers that support Hop-by-Hop Options but are not configured to support this Option
SHOULD skip over this Option and continue to process the header [
RFC 8200].
Routers that support this Option
MUST compare the value of the Min-PMTU field with the MTU configured for the outgoing link. If the MTU of the outgoing link is less than the Min-PMTU, the router rewrites the Min-PMTU in the Option to use the smaller value. (The router processing is performed without checking the valid range of the Min-PMTU or the Rtn-PMTU fields.)
A router
MUST ignore and
MUST NOT change the Rtn-PMTU field or the R-Flag in the Option.
The PMTU entry associated with the destination in the host's destination cache [
RFC 4861]
SHOULD be updated after detecting a change using the IPv6 Minimum Path MTU Hop-by-Hop Option. This cached value can be used by other flows that share the host's destination cache.
The value in the host destination cache
SHOULD be used by PLPMTUD to select an initial PMTU for a flow. The cached PMTU is only increased by PLPMTUD when the Packetization Layer determines the path actually supports a larger PMTU [
RFC 4821] [
RFC 8899].
When requested to send an IPv6 packet with the MinPMTU HBH Option, the source host includes the Option in an outgoing packet. The source host
MUST fill the Min-PMTU field with the MTU configured for the link over which it will send the packet on the next hop towards the destination host.
When a host includes the Option in a packet it sends, the host
SHOULD set the Rtn-PMTU field to the previously cached value of the received Minimum Path MTU for the flow in the Rtn-PMTU field (see
Section 6.3.3). If this value is not set (for example, because there is no cached reported Min-PMTU value), the Rtn-PMTU field value
MUST be set to zero.
The source host
MAY request the destination host to return the reported Min-PMTU value by setting the R-Flag in the Option of an outgoing packet. The R-Flag
SHOULD NOT be set when the MinPMTU HBH Option was sent solely to provide requested feedback on the return Path MTU to avoid each response generating another response.
The destination host controls when to send a packet with this Option in response to an R-Flag, as well as which packets to include it in. The destination host
MAY limit the rate at which it sends these packets.
A destination host only sets the R-Flag if it wishes the source host to also return the discovered PMTU value for the path from the destination to the source.
The normal sequence of operation of the R-Flag using the terminology from the diagram in
Figure 1 is:
-
The source sends a probe to the destination. The sender sets the R-Flag.
-
The destination responds by sending a probe including the received Min-PMTU as the Rtn-PMTU. A destination that does not wish to probe the return path sets the R-Flag to 0.
This Hop-by-Hop Option is intended to be used with a Path MTU Discovery method.
PLPMTUD [
RFC 8899] uses probe packets for two distinct functions:
-
Probe packets are used to confirm connectivity. Such probes can be of any size up to the Packetization Layer Path MTU (PLPMTU). These probe packets are sent to solicit a response using the path to the remote node. These probe packets can carry the Hop-by-Hop PMTU Option, providing the final size of the packet does not exceed the current PLPMTU. After validating that the packet originates from the path (Section 4.6.1 of RFC 8899), the PLPMTUD method can use the reported size from the Hop-by-Hop Option as the next search point when it resumes the search algorithm. (This use resembles the use of the PTB_SIZE information in Section 4.6.2 of RFC 8899.)
-
A second use of probe packets is to explore if a path supports a packet size greater than the current PLPMTU. If this probe packet is successfully delivered (as determined by the source host), then the PLPMTU is raised to the size of the successful probe. These probe packets do not usually set the Path MTU Hop-by-Hop Option. See Section 1.2 of RFC 8899. Section 4.1 of RFC 8899 also describes ways that a probe packet can be constructed, depending on whether the probe packets carry application data.
The PMTU Hop-by-Hop Option probe can be sent on packets that include application data but needs to be robust to potential loss of the packet (i.e., with the possibility that retransmission might be needed if the packet is lost).
Using a PMTU probe on packets that do not carry application data will avoid the need for loss recovery if a router on the path drops packets that set this Option. (This avoids the transport needing to retransmit a lost packet that includes this Option.) This is the normal default format for both uses of probes.
The upper-layer protocol can request the MinPMTU HBH Option to be included in an outgoing IPv6 packet. A transport protocol (or upper-layer protocol) can include this Option only on specific packets used to test the path. This Option does not need to be included in all packets belonging to a flow.
NOTE: Including this Option in a large packet (e.g., one larger than the present PMTU) is not likely to be useful, since the large packet would itself be dropped by any link along the path with a smaller MTU, preventing the Min-PMTU information from reaching the destination host.
Discussion:
-
In the case of TCP, the Option could be included in a packet that carries a TCP segment sent after the connection is established. A segment without data could be used to avoid the need to retransmit this data if the probe packet is lost. The discovered value can be used to inform PLPMTUD [RFC 4821].
NOTE: A TCP SYN can also negotiate the Maximum Segment Size (MSS), which acts as an upper limit to the packet size that can be sent by a TCP sender. If this Option were to be included in a TCP SYN, it could increase the probability that the SYN segment is lost when routers on the path drop packets with this Option (see Section 6.3.6), which could have an unwanted impact on the result of racing Options [TAPS-ARCH] or feature negotiation.
-
The use with datagram transport protocols (e.g., UDP) is harder to characterize because applications using datagram transports range from very short-lived (low data-volume applications) exchanges to longer (bulk) exchanges of packets between the source and destination hosts [RFC 8085].
-
Simple-exchange protocols (i.e., low data-volume applications [RFC 8085] that only send one or a few packets per transaction) might assume that the PMTU is symmetrical. That is, the PMTU is the same in both directions or at least not smaller for the return path. This optimization does not hold when the paths are not symmetric.
-
The MinPMTU HBH Option can be used with ICMPv6 [RFC 4443]. This requires a response from the remote node and therefore is restricted to use with ICMPv6 echo messages. The MinPMTU HBH Option could provide additional information about the PMTU that might be supported by a path. This could be used as a diagnostic tool to measure the PMTU of a path. As with other uses, the actual supported PMTU is only confirmed after receiving a response to a subsequent probe of the PMTU size.
-
A datagram transport can utilize DPLPMTUD [RFC 8899]. For example, QUIC (see Section 14.3 of RFC 9000) can use DPLPMTUD to determine whether the path to a destination will support a desired maximum datagram size. When using the IPv6 MinPMTU HBH Option, the Option could be added to an additional QUIC PMTU probe that is of minimal size (or one no larger than the currently supported PMTU size). Once the return Path MTU value in the MinPMTU HBH Option has been learned, DPLPMTUD can be triggered to test for a larger PLPMTU using an appropriately sized PLPMTU probe packet (see Section 5.3.1 of RFC 8899).
-
The use of this Option with DNS and DNSSEC over UDP is expected to work for paths where the PMTU is symmetric. The DNS server will learn the PMTU from the DNS query messages. If the Rtn-PMTU value is smaller, then a large DNSSEC response might be dropped and the known problems with PMTUD will then occur. DNS and DNSSEC over transport protocols that can carry the PMTU ought to work.
-
This method also can be used with anycast to discover the PMTU of the path, but the use needs to be aware that the anycast binding might change.
An upper-layer protocol (e.g., transport endpoint) using this Option needs to provide protection from data injection attacks by off-path devices [
RFC 8085]. This requires a method to assure that the information in the Option Data is provided by a node on the path. This validates that the packet forms a part of an existing flow, using context available at the upper layer. For example, a TCP connection or UDP application that maintains the related state and uses a randomized ephemeral port would provide this basic validation to protect from off-path data injection; see
Section 5.1 of
RFC 8085. IPsec [
RFC 4301] and TLS [
RFC 8446] provide greater assurance.
The upper layer discards any received packet when the packet validation fails. When packet validation fails, the upper layer
MUST also discard the associated Option Data from the MinPMTU HBH Option without further processing.
For a connection-oriented upper-layer protocol, caching of the received Min-PMTU could be implemented by saving the value in the connection context at the transport layer. A connectionless upper layer (e.g., one using UDP) requires the upper-layer protocol to cache the value for each flow it uses.
A destination host that receives a MinPMTU HBH Option with the R-Flag
SHOULD include the MinPMTU HBH Option in the next outgoing IPv6 packet for the corresponding flow.
A simple mechanism could only include this Option (with the Rtn-PMTU field set) the first time this Option is received or when it notifies a change in the Minimum Path MTU. This limits the number of packets, including the Option packets, that are sent. However, this does not provide robustness to packet loss or recovery after a sender loses state.
Discussion:
-
Some upper-layer protocols send packets less frequently than the rate at which the host receives packets. This provides less frequent feedback of the received Rtn-PMTU value. However, a host always sends the most recent Rtn-PMTU value.
The Rtn-PMTU field provides an indication of the PMTU from on-path routers. It does not necessarily reflect the actual PMTU between the source and destination hosts. Care therefore needs to be exercised in using the Rtn-PMTU value. Specifically:
-
The actual PMTU can be lower than the Rtn-PMTU value because the Min-PMTU field was not updated by a router on the path that did not process the Option.
-
The actual PMTU may be lower than the Rtn-PMTU value because there is a Layer 2 device with a lower MTU.
-
The actual PMTU may be larger than the Rtn-PMTU value because of a corrupted, delayed, or misordered response. A source host MUST ignore a Rtn-PMTU value larger than the MTU configured for the outgoing link.
-
The path might have changed between the time when the probe was sent and when the Rtn-PMTU value received.
IPv6 requires that every link in the Internet have an MTU of 1280 octets or greater. A node
MUST ignore a Rtn-PMTU value less than 1280 octets [
RFC 8200].
To avoid unintentional dropping of packets that exceed the actual PMTU (e.g., Scenario 3 in
Section 1.1), the source host can delay increasing the PMTU until a probe packet with the size of the Rtn-PMTU value has been successfully acknowledged by the upper layer, confirming that the path supports the larger PMTU. This probing increases robustness but adds one additional path round-trip time before the PMTU is updated. This use resembles that of PTB messages in
Section 4.6 of
RFC 8899 (with the important difference being that a PTB message can only seek to lower the PMTU, whereas this Option could trigger a probe packet to seek to increase the PMTU).
Section 5.2 of
RFC 8201 provides guidance on the caching of PMTU information and also the relation to IPv6 flow labels. Implementations should consider the impact of Equal-Cost Multipath (ECMP) [
RFC 6438], specifically, whether a PMTU ought to be maintained for each transport endpoint or for each network address.
Path characteristics can change, and the actual PMTU could increase or decrease over time, for instance, following a path change when packets are forwarded over a link with a different MTU than that previously used. To bound the delay in discovering an increase in the actual PMTU, a host with a link MTU larger than the current PMTU
SHOULD periodically send the MinPMTU HBH Option with the R-bit set. DPLPMTUD provides recommendations concerning how this could be implemented (see
Section 5.3 of
RFC 8899). Since the Option consumes less capacity than a full-sized probe packet, there can be an advantage in using this to detect a change in the path characteristics.
There is evidence that some middleboxes drop packets that include Hop-by-Hop Options. For example, a firewall might drop a packet that carries an unknown extension header or Option. This practice is expected to decrease as an Option becomes more widely used. It could result in the generation of an ICMPv6 message that indicates the problem. This could be used to (temporarily) suspend use of this Option.
A middlebox that silently discards a packet with this Option results in the dropping of any packet using the Option. This dropping can be avoided by appropriate configuration in a controlled environment, such as within a data center, but it needs to be considered for Internet usage.
Section 6.2 recommends that this Option is not used on packets where loss might adversely impact performance.