Pseudowire Setup and Maintenance Using the Label Distribution Protocol (LDP)
obsoleted by
- rfc-8077 — Pseudowire Setup and Maintenance Using the Label Distribution Protocol (LDP)
updated by
Extracted elements (29)
The Interface Parameters sub-TLV is part of the FEC in the PWid element, making it impossible to change after PW setup. This is by design: only static interface parameters (like MTU) belong there, while dynamic information (like status) must use optional parameter TLVs.
The PW Grouping TLV is separate from the Attachment Group Identifier (AGI) and has no relation to it. The Group ID / PW Grouping TLV is purely an operational convenience for wildcard withdrawals or status notifications, while the AGI is part of the pseudowire identity used for forwarding.
Two FEC element types are defined rather than one: the PWid FEC (0x80) for simpler cases where both endpoints are pre-provisioned with a 32-bit PW ID, and the Generalized PWid FEC (0x81) for structured endpoint identifiers supporting auto-discovery and more complex provisioning models such as VPLS.
If a PW Status TLV is not supported by the remote peer, the peer automatically ignores it because the I (ignore) bit is set in the TLV. The absence of PW Status TLV in the remote's Label Mapping causes both PEs to revert to the label withdraw method for PW status signaling.
Unknown interface parameter sub-TLVs MUST be silently ignored to allow forward compatibility. Processing of interface parameters should continue when unknown types are encountered.
All PEs implementing the wildcard withdraw or wildcard status notification procedures are REQUIRED to accept such messages, but are not required to send them.
An incoming LDP session request MUST NOT be accepted unless its IP source address is known to be from an eligible LDP peer, either pre-configured or dynamically discovered via a trusted auto-discovery protocol.
For PW types requiring a control word, Label Mapping messages MUST have C=1. When a Label Mapping for such a PW type is received with C=0, a Label Release MUST be sent with an 'Illegal C-bit' status code and the PW will not be enabled.
For PW types where the control word is not mandatory, each PW endpoint MUST be configurable with a parameter specifying whether control word use is PREFERRED or NOT PREFERRED, and there MUST be a default value for this parameter.
LDP MUST be used in downstream unsolicited mode, and LDP's liberal label retention mode SHOULD be used for PW label distribution.
PEs MUST send Label Mapping Messages to peers as soon as the PW is configured and administratively enabled, regardless of attachment circuit state. If the label-to-PW binding is not available, the PW MUST be considered in the down state.
The Interface MTU sub-TLV is REQUIRED for PW types transporting packets; if the MTU parameter does not match in both directions of a specific PW, that PW MUST NOT be enabled.
The LDP MD5 authentication key option (RFC 3036 section 2.9) MUST be implemented and, for greater security, must be used. This provides integrity and authentication for LDP messages and eliminates source address spoofing.
The same PW ID and PW type MUST be assigned for a given circuit in both directions. The Group ID MUST NOT be required to match in both directions. PW labels MUST be allocated from the per-platform label space.
When a PW is first set up, PEs MUST attempt to negotiate the usage of the PW Status TLV by including it in the initial Label Mapping message. If the remote PE does not include a PW Status TLV in its Label Mapping, both PEs revert to the label withdraw method for signaling PW status.
Attachment identifiers in the Generalized PWid FEC consist of an Attachment Group Identifier (AGI), a Source Attachment Individual Identifier (SAII), and a Target Attachment Individual Identifier (TAII). The AGI must be the same at both endpoints; the combination of PE router IP address and AI must be globally unique.
LDP is used in downstream unsolicited mode to distribute PW label bindings. Two new FEC element types are defined: 0x80 (PWid FEC Element) and 0x81 (Generalized PWid FEC Element). Each FEC TLV must contain exactly one FEC element, and the Generic Label TLV must be used.
Wildcard PW status notifications and label withdrawals use Group ID (PWid FEC) or PW Grouping ID TLV (Generalized ID FEC) by setting PW info length to 0 and omitting the PW ID/AGI/SAII/TAII. This enables a single message to affect all PWs in a group upon port failure.
Eight new LDP status codes are registered in the 'STATUS CODE NAME SPACE' (RFC 3036): 0x00000024 Illegal C-Bit, 0x00000025 Wrong C-Bit, 0x00000026 Incompatible bit-rate, 0x00000027 CEP-TDM mis-configuration, 0x00000028 PW Status, 0x00000029 Unassigned/Unrecognized TAI, 0x0000002A Generic Misconfiguration Error, 0x0000002B Label Withdraw PW Status Method Not Supported.
Three new LDP TLV types are registered: 0x096A (PW Status TLV), 0x096B (PW Interface Parameters TLV), and 0x096C (Group ID TLV), in the existing 'TLV TYPE NAME SPACE' registry defined by RFC 3036.
Two new FEC element types, 0x80 and 0x81, are allocated from the 'FEC Type Name Space' registry for the Label Distribution Protocol (LDP RFC 3036).
LDP MD5 authentication (RFC 3036 section 2.9) MUST be implemented to provide integrity and authentication for LDP control messages; it does not protect against replay attacks due to its reliance on pre-shared keys, and does not provide privacy.
The MPLS-enabled network SHOULD be isolated so it is not possible to insert MPLS packets from outside, preventing spoofing, alteration, and inspection of PW PDUs. The specified encapsulations do not by themselves authenticate the encapsulator, assure packet integrity, or ensure privacy.
The C-bit negotiation state machine for optional control word PW types: if received C=0, send C=0 (no control word); if received C=1 and local preference is preferred, send C=1; if received C=1 and local preference is not preferred, send according to local config and wait. On mismatch (sent C=1, received C=0), send Label Withdraw with 'Wrong C-Bit' then a new Label Mapping with C=0.
The Generalized PWid FEC Element (type 0x81) encodes a C-bit, 15-bit PW type, PW info length, and variable-length AGI, SAII, and TAII fields each preceded by a type byte and length byte. If PW info length is 0, it references all PWs using the specified grouping ID with no AGI/SAII/TAII present.
The Interface Parameters Sub-TLV has a 1-byte Sub-TLV Type, a 1-byte Length (inclusive of type and length fields), and a variable-length Value. The Interface MTU sub-TLV carries a 2-octet MTU value excluding encapsulation overhead; the Optional Interface Description string is 0–80 octets in UTF-8.
The PW Grouping ID TLV (type 0x096C) carries a 32-bit arbitrary value representing a group of PWs. It is used with the Generalized PWid FEC element to enable wildcard label withdrawals or status notifications upon physical port failure.
The PW Status TLV (type 0x096A) carries a 4-octet status code bit field, where each bit can be set individually to indicate one or more failures simultaneously. It is transported via the LDP Notification message with the Status TLV status code set to 0x00000028.
The PWid FEC Element (type 0x80) encodes: a 1-bit C (control word) flag, a 15-bit PW type, an 8-bit PW info length, a 32-bit Group ID, a 32-bit PW ID, and variable-length Interface Parameter Sub-TLVs. The PW ID is a non-zero value that together with the PW type identifies a particular PW.