Definition of Time to Live TLV for LSP-Ping Mechanisms
Extracted elements (16)
The scope of the TTL TLV is intentionally limited to MS-PW and bidirectional co-routed MPLS LSPs because the mechanism only works when the MPLS Echo Reply is sent down the co-routed return path.
The TTL TLV is introduced because existing LSP-Ping mechanisms cannot verify connectivity of a segment of an MS-PW or bidirectional co-routed LSP from an intermediate node: the receiver needs to know the hop-count distance of the originator to set the correct TTL on the Echo Reply so it is intercepted at the originating node rather than at the endpoint.
The TTL TLV value takes precedence over the Switching Point TLV and other TTL determination methods to ensure the originator of the LSP-Ping echo request can reliably analyze the return path.
If the receiver does not understand the TTL TLV, it will simply ignore the TLV, consistent with the handling of all optional TLVs in LSP-Ping. In that case, any determination of the reply TTL is beyond the scope of this document.
If the return path is any mechanism other than the co-routed LSP, the TTL TLV in the MPLS Echo Request MUST be ignored. The TLV's presence implies use of the co-routed LSP return path.
If the TTL TLV is present and understood, and the Value field is non-zero, the receiver MUST use the TTL value from the TTL TLV when creating the MPLS header of the MPLS Echo Reply. This value takes precedence over any TTL determined by other means, including the Switching Point TLV.
Reserved bits in the Flags field of the TTL TLV MUST be set to zero (MBZ) when sending and MUST be ignored on receipt.
To prevent echo reply packets from traveling beyond the originating node in error scenarios, the return TTL value on the MPLS Echo Reply MUST be computed as: (TTL TLV Value) - (Incoming Label TTL) + 1. If the packet is punted to CPU before TTL decrement, an additional 1 MUST be added.
In traceroute mode, the TTL value in the TTL TLV is set to 1 for the first Echo Request, incremented by 1 for each subsequent request, mirroring the TTL values set on the MPLS label stack.
The R flag in the Flags field of the TTL TLV signals that the Value field is meant to be used as the TTL for the MPLS Echo Reply packet. Other bits in the Flags field are reserved for future use.
IANA assigned TLV type value 32769 to the Time To Live TLV in the 'Multi-Protocol Label Switching (MPLS) Label Switched Paths (LSPs) Ping Parameters' registry under the 'TLVs' subregistry.
A faulty transit node that modifies the TTL TLV value could cause the wrong node to reply to the MPLS Echo Request or to receive the MPLS Echo Reply. An LSP trace can help identify such a faulty node.
If an MPLS Echo Request is intercepted before its intended destination for reasons other than label TTL expiry (e.g., network fault), and the return TTL is set directly from the TTL TLV value, the echo response may travel beyond the originating node, creating a security risk. The TTL adjustment formula (Section 4.2) mitigates this.
Per RFC 4379, source address checking of MPLS Echo Requests is recommended; however, with the TTL TLV, the source address may now be any node along the LSP path, not just endpoints.
Setting the TTL TLV enables intermediate devices to receive MPLS Echo Reply packets redirected to the CPU, potentially allowing a flood of LSP-Ping packets to overwhelm the CPU. Implementations SHOULD rate-limit LSP-Ping packets redirected to the CPU.
The TTL TLV has Type=32769, Length=8, and contains an 8-bit Value field (the TTL), an 8-bit Reserved field, and a 16-bit Flags field. The Flags field contains a single defined bit: the R (Reply TTL) flag at bit 15; all other bits are MBZ.