ietf-corpus

rfc-8077

Pseudowire Setup and Maintenance Using the Label Distribution Protocol (LDP)

L. Martini (Editor), G. Heron (Editor)
date2017-02 streamIETF areartg wgpals statusINTERNET STANDARD pages35 canonicalhttps://www.rfc-editor.org/rfc/rfc8077 doi10.17487/RFC8077
Layer 2 services (such as Frame Relay, Asynchronous Transfer Mode, and Ethernet) can be emulated over an MPLS backbone by encapsulating the Layer 2 Protocol Data Units (PDUs) and then transmitting them over pseudowires (PWs). It is also possible to use pseudowires to provide low-rate Time-Division Multiplexed and Synchronous Optical NETworking circuit emulation over an MPLS-enabled network. This document specifies a protocol for establishing and maintaining the pseudowires, using extensions to the Label Distribution Protocol (LDP). Procedures for encapsulating Layer 2 PDUs are specified in other documents. This document is a rewrite of RFC 4447 for publication as an Internet Standard.

obsoletes

also

Extracted elements (30)

design-rationale §4

A large number of pseudowires can be carried through a single MPLS tunnel, so it is never necessary to maintain per-PW state in the network core. The PW label at the bottom of the stack provides the per-PW demultiplexing function while the tunnel label handles core forwarding.

mpls

design-rationale §6.1

Interface Parameter Sub-TLVs are part of the FEC, making it impossible to change interface parameters after a pseudowire is established. This design prevents misuse of the parameters field for mutable status information, which must instead use optional parameter TLVs.

mpls

design-rationale §7.4.1

Label reuse after withdrawal must be deferred until old packets bearing the released label can no longer persist in the network. Premature reuse can cause sequence-number restart confusion at the disposition router when sequencing is enabled.

mpls

design-rationale §6

Two FEC element types are defined: the PWid FEC (0x80) for deployments using a pre-provisioned 32-bit PW ID, and the Generalized PWid FEC (0x81) for structured endpoint identifiers (AGI/SAII/TAII) that support auto-discovery. The choice depends on the provisioning model.

mpls

interoperability-note §6.2.2

For the Generalized PWid FEC, all three sub-elements (AGI, SAII, TAII) MUST be sent even if a particular application does not need all of them; unused sub-elements are sent with Length set to 0.

mpls

interoperability-note §6.3.3

If neither PE includes the PW Status TLV in the initial Label Mapping, or if one PE does not support it, both PEs fall back to the label withdraw method for signaling PW status changes. A PE that cannot support the label withdraw method MUST send a Label Release with 'Label Withdraw PW Status Method Not Supported'.

mpls

normative-requirement §4 MUST

A receiving LSR MUST respond to a Label Request message with either a Label Mapping for the requested label or a Notification message explaining why it cannot satisfy the request.

mpls

normative-requirement §6.5 REQUIRED

All PEs implementing the wildcard withdraw or wildcard status notification procedures are REQUIRED to accept such messages, but are not required to send them.

mpls

normative-requirement §7.3 MUST

During control-word renegotiation, the local PE MUST send a Label Withdraw to the remote PE, MUST send a Label Release for the specific label, and MUST send a Label Request before waiting for the remote PE's new preference. The renegotiation process SHOULD NOT be interrupted.

mpls

normative-requirement §6 MUST

Each FEC TLV MUST contain exactly one FEC element, and the Generic Label TLV MUST be used when setting up and maintaining pseudowires.

mpls

normative-requirement §7.1 MUST

For PW types where the control word is REQUIRED, Label Mapping messages MUST have C=1. When such a message is received with C=0, a Label Release with 'Illegal C-bit' status code MUST be sent and the PW will not be enabled.

mpls

normative-requirement §4 MUST

LDP MUST exchange PW FEC label bindings in downstream unsolicited mode, independent of the negotiated label advertisement mode of the LDP session, per RFC 7358. LDP's liberal label retention mode SHOULD be used.

mpls

normative-requirement §6.3.1 MUST

PEs MUST send Label Mapping messages to their peers as soon as the PW is configured and administratively enabled, regardless of the Attachment Circuit state. If the label-to-PW binding is not available, the PW MUST be considered in the down state.

mpls

normative-requirement §6.4 MUST

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.

mpls

normative-requirement §4 MUST

The PW label MUST always be at the bottom of the label stack, and labels MUST be allocated from the per-platform label space.

mpls

normative-requirement §6.3.3 MUST

When a PW is first set up, the PEs MUST attempt to negotiate usage of the PW Status TLV by including it in the initial Label Mapping message. If the remote PE does not include it in its Label Mapping response, both PEs revert to the label withdraw method.

mpls

normative-requirement §4 MUST

When using the PWid FEC Element, 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.

mpls

protocol-element §4

The pseudowire demultiplexer field is an MPLS label called the PW label. PE1 pushes the PW label as the bottom of the label stack; PE2 identifies the pseudowire by examining this label upon receipt.

mpls, tcp

protocol-element §6.2.2.2

The PW Group ID TLV (type 0x096C) carries an arbitrary 32-bit group identifier used to send wildcard label withdrawals or wildcard status Notification messages to remote PEs upon physical port failure. It MUST only be used with the Generalized PWid FEC.

mpls

protocol-element §6.2.2.1

The PW Interface Parameters TLV (type 0x096B) is used exclusively with the Generalized PWid FEC to carry interface-specific parameters such as MTU. It MUST only be used when sending the Generalized PWid FEC.

mpls

registry §8.2

Eight new LDP status codes are assigned in the 'Status Code Name Space' registry, including: 0x00000024 (Illegal C-Bit), 0x00000025 (Wrong C-Bit), 0x00000028 (PW Status), 0x00000029 (Unassigned/Unrecognized TAI), and 0x0000002B (Label Withdraw PW Status Method Not Supported).

registry, mpls

registry §8.1

Three new LDP TLV types are assigned in the 'TLV Type Name Space' registry: 0x096A (PW Status TLV), 0x096B (PW Interface Parameters TLV), and 0x096C (PW Group ID TLV).

registry, mpls

registry §8.3

Two new FEC element types are assigned in the 'Forwarding Equivalence Class (FEC) Type Name Space' registry: 0x80 (PWid FEC Element) and 0x81 (Generalized PWid FEC Element).

registry, mpls

security-consideration §9.2

An incoming LDP session request MUST NOT be accepted unless its IP source address is known to be from an eligible LDP peer, configured explicitly or discovered via a trusted auto-discovery protocol. Without this restriction, arbitrary remote Attachment Circuits could be connected.

security, mpls

security-consideration §9.2

The LDP MD5 authentication key option MUST be implemented and SHOULD be used to provide integrity and authentication for LDP messages, preventing source address spoofing. It does not provide privacy or strong replay protection.

security, mpls

security-consideration §9.1

The MPLS-enabled network SHOULD be isolated from outside packet insertion; MPLS packets SHOULD NOT be accepted from external interfaces unless the top label was legitimately distributed. The three main data-plane threats are spoofing, alteration, and inspection of PW PDUs.

security, mpls

state-machine §7.2

The C-bit (control word) negotiation state machine: if both endpoints prefer the control word it is used (C=1); if either endpoint prefers not to use it, the result is no control word (C=0). A 'Wrong C-bit' Label Withdraw followed by a C=0 Label Mapping resolves mismatches. The state machine can be restarted via Label Withdraw, Label Release, and Label Request when re-provisioned.

mpls

wire-format §6.2.2

The Generalized PWid FEC Element (type 0x81) encodes AGI, SAII, and TAII as TLV triples (Type, Length, Value) following the C-bit and PW Type fields. Each sub-element uses its own type/length to support variable-length structured attachment identifiers.

mpls

wire-format §6.3.2

The PW Status TLV (type 0x096A) carries a 4-octet bit-field Status Code within an LDP Notification message. Each bit represents an independent fault condition; the lowest bit (PW Not Forwarding) is a generic failure indicator.

mpls

wire-format §6.1

The PWid FEC Element (type 0x80) is a 32-bit-aligned structure containing: 1-byte type, C-bit, 15-bit PW type, 1-byte PW info length, 32-bit Group ID, 32-bit PW ID, and variable-length Interface Parameter Sub-TLVs.

mpls