Detecting Data-Plane Failures in Point-to-Multipoint MPLS - Extensions to LSP Ping
updates
- rfc-4379 — Detecting Multi-Protocol Label Switched (MPLS) Data Plane Failures
Extracted elements (32)
The primary design principle for P2MP LSP ping is to extend existing RFC 4379 mechanisms rather than invent new ones, in order to simplify implementation and network operation.
The T (Respond Only If TTL Expired) flag is introduced specifically to prevent bud and egress nodes from sending redundant replies to successive traceroute echo requests as TTL values increase beyond their hop depth. Without this flag, these nodes would respond to every subsequent echo request in the traceroute sequence.
Two mechanisms are provided to prevent ingestion of a flood of concurrent echo replies at the ingress when pinging all egresses of a large P2MP LSP: (1) the Echo Jitter TLV causes responders to randomize reply timing; (2) the P2MP Responder Identifier TLV limits the scope of an echo request to a single egress.
If a node on a P2MP LSP does not support MPLS LSP ping, it will send no reply, causing an incorrect result at the initiating LSR. There is no protocol protection for this situation; operators must ensure uniform support across all nodes in the P2MP LSP.
The Downstream Mapping TLV from RFC 4379 is deprecated for P2MP use. When responding to a P2MP FEC type, a node MUST ignore any Downstream Mapping TLV it receives in the echo request and MUST continue processing as if it were absent.
A node receiving a Node Address P2MP Responder sub-TLV MUST respond if the address matches any local address and MUST NOT respond if it does not match any local address.
A node receiving an Egress Address P2MP Responder sub-TLV MUST respond if it lies on the path to the specified address and MUST NOT respond if it does not lie on that path.
At a cross-over node during traceroute, the Downstream Detailed Mapping TLV in the echo reply MUST carry information only about the outgoing interface corresponding to the input interface on which the echo request arrived.
For P2MP, a node MUST support the Downstream Detailed Mapping TLV (RFC 6424). The Downstream Mapping TLV from RFC 4379 is deprecated for P2MP and MUST NOT be included in an echo request message targeting a P2MP FEC.
For P2MP LSP ping and traceroute, the responding LSR MUST determine whether it is part of the P2MP LSP in question by checking with the control plane, then apply the appropriate reply rules based on presence of a P2MP Responder Identifier TLV.
For the Multicast LDP FEC Stack sub-TLV, if the Address Family is IPv4 the Address Length MUST be 4; if IPv6 the Address Length MUST be 16. No other Address Family values are defined.
If an echo request is destined for more than one node, the Downstream IP Address field of the Downstream Detailed Mapping TLV MUST be set to the ALLROUTERS multicast address, and the Address Type field MUST be set to IPv4 or IPv6 Unnumbered.
If the Echo Jitter TLV is present in an echo request, the responding LSR MUST delay sending its reply for a random amount of time between zero milliseconds and the value specified in the TLV.
It is RECOMMENDED to regulate LSP ping traffic passed to the control plane via a rate limiter applied to the well-known LSP ping UDP port. It is also RECOMMENDED that traceroute operations provide a configurable upper limit on TTL values.
LSP ping MUST NOT be used to attempt to measure round-trip time for P2MP data delivery, because P2MP LSPs are unidirectional and echo replies are often returned via the control plane.
The IPv4 or IPv6 Egress Address P2MP Responder sub-TLV SHOULD NOT be used with an echo request carrying a Multicast LDP FEC Stack sub-TLV, because upstream LSRs in Multicast LDP have no way to know the identity of downstream leaf nodes.
The T (Respond Only If TTL Expired) flag MUST be set only in echo request packets. If the T flag is 1 and the incoming MPLS label TTL is greater than 1, the receiving node MUST drop the echo request and MUST NOT send any echo reply.
To identify a multicast LDP LSP under test, the echo request message MUST carry a Target FEC Stack TLV with exactly one of two new sub-TLVs: either a Multicast P2MP LDP FEC Stack sub-TLV or a Multicast MP2MP LDP FEC Stack sub-TLV.
To identify a P2MP MPLS TE LSP under test, the echo request message MUST carry a Target FEC Stack TLV, and this MUST carry exactly one of two new sub-TLVs: either an RSVP P2MP IPv4 Session sub-TLV or an RSVP P2MP IPv6 Session sub-TLV.
MP2MP LSPs can be handled for OAM purposes by treating them as a collection of P2MP trees, with each MP2MP leaf node acting like a P2MP head-end. The remaining leaf nodes then act like egress or bud nodes for that virtual P2MP tree.
The Downstream Detailed Mapping TLV (RFC 6424) is used in P2MP traceroute echo replies to return multiple Return Codes for different downstream paths. Transit nodes include one DDM TLV; branch nodes include one per downstream path; egress nodes include none.
IANA assigned four new sub-type values under TLV type 1 (Target FEC Stack) in the MPLS LSP Ping Parameters registry: 17 (RSVP P2MP IPv4 Session), 18 (RSVP P2MP IPv6 Session), 19 (Multicast P2MP LDP FEC Stack), 20 (Multicast MP2MP LDP FEC Stack).
IANA assigned two new TLV type values in the MPLS LSP Ping Parameters registry: 11 (P2MP Responder Identifier TLV, with four sub-TLVs for IPv4/IPv6 Egress and Node Addresses) and 12 (Echo Jitter TLV).
IANA created a new 'Global Flags' sub-registry under the MPLS LSP Ping Parameters registry, tracking 16 flags (bits 0–15, most significant first) in the Global Flags field of echo request messages, assigned by Standards Action. Initial entries: bit 15 (V Flag, RFC 4379), bit 14 (T Flag, RFC 6425).
RFC 6425 does not introduce new security concerns beyond those in RFC 4379, but the multi-egress nature of P2MP LSPs heightens the concern about denial-of-service via LSP ping traffic. Rate limiting on the LSP ping well-known UDP port is strongly advised, though it may lead to false indications of LSP failure.
Bud node reply behavior is determined by the Responder Identifier TLV: (1) no TLV → behave as egress+branch; (2) Node Address sub-TLV matching local address → egress+branch; (3) Node Address sub-TLV not matching → no reply; (4) Egress Address sub-TLV matching local address → egress only; (5) node on path to Egress Address → transit; (6) node not on path → no reply.
The Echo Jitter TLV (Type 12, Length 4) contains a single 32-bit Jitter Time field specifying in milliseconds the upper bound of the random delay period that a responding node should apply before sending an echo reply.
The Global Flags field (16 bits) in the MPLS echo request is extended with a T flag at bit 14 (Respond Only If TTL Expired); the existing V flag occupies bit 15. Bits 0–13 are unassigned.
The Multicast P2MP and MP2MP LDP FEC Stack sub-TLVs (Sub-Types 19 and 20) share the same variable-length format: Address Family (2 octets), Address Length (1 octet), Root LSR Address (variable), Opaque Length (2 octets), Opaque Value (variable) that uniquely identifies the P2MP LSP in the context of the Root LSR.
The P2MP Responder Identifier TLV (Type 11, variable length) contains zero or more sub-TLVs: Sub-Type 1 (IPv4 Egress Address, 4 bytes), Sub-Type 2 (IPv6 Egress Address, 16 bytes), Sub-Type 3 (IPv4 Node Address, 4 bytes), Sub-Type 4 (IPv6 Node Address, 16 bytes). If more than one sub-TLV is present, only the first MUST be processed.
The RSVP P2MP IPv4 Session sub-TLV (Sub-Type 17, Length 20) carries: P2MP ID (32 bits), MUST Be Zero / Tunnel ID (32 bits), Extended Tunnel ID (32 bits), IPv4 Tunnel Sender Address (32 bits), MUST Be Zero / LSP ID (32 bits). Fields are taken from RFC 4875 SESSION and SENDER_TEMPLATE objects; Sub-Group ID is omitted.
The RSVP P2MP IPv6 Session sub-TLV (Sub-Type 18, Length 56) carries: P2MP ID (32 bits), MUST Be Zero / Tunnel ID (32 bits), Extended Tunnel ID (128 bits), IPv6 Tunnel Sender Address (128 bits), MUST Be Zero / LSP ID (32 bits). Fields are taken from RFC 4875 IPv6 SESSION and SENDER_TEMPLATE objects.