Proactive Connectivity Verification, Continuity Check, and Remote Defect Indication for the MPLS Transport Profile
updated by
- rfc-7214 — Moving Generic Associated Channel (G-ACh) IANA Registries to a New Registry
Extracted elements (27)
CV PDU insertion interval is fixed at one per second, enabling mis-connectivity defect detection in a maximum of one second. CC PDUs are interleaved with CV PDUs, with CC used at the configured session rate and CV at 1/second.
In independent mode, the originating MEP ignores DOWN state received from a zero-interval peer, causing the zero-interval peer to continue sending DOWN+RDI messages indefinitely until confirmed. This design adds robustness for RDI exchange on unidirectional failures.
RDI is communicated via the BFD diagnostic field in CC messages rather than as a separate PDU. This keeps RDI associated with the continuity check mechanism and avoids adding a new message type. The diagnostic code field in CV messages is ignored for RDI purposes.
Implementations may interoperate with legacy equipment by implementing RFC 5884 (BFD for MPLS LSPs) and RFC 5085 (VCCV for PWs) in addition to the procedures in this memo. When BFD control packets use IP encapsulation per RFC 5884, IP header fields are set as defined therein.
A node MUST NOT change the value in the Source MEP-ID TLV. When digest-based authentication is used, the Source ID TLV MUST NOT be included in the digest.
A sink MEP MUST encode diagnostic code 9 (mis-connectivity defect) when CV PDU processing indicates a mis-connectivity defect. A sink MEP SHOULD encode code 1 (Control Detection Time Expired) when detection time is exceeded, and code 5 (Path Down) upon receiving LDI.
All BFD packets for P2P transport LSPs MUST be sent with the M bit clear, as this document specifies bidirectional BFD only.
All BFD state changes and Poll/Final exchanges MUST be done using CC packets. P/F and session state information in CV packets MUST be ignored.
In independent mode, an implementation MUST NOT reset bfd.RemoteDiscr upon transitioning to the DOWN state. In coordinated mode, an implementation SHOULD NOT reset bfd.RemoteDiscr until it is exiting the DOWN state.
The My Discriminator field MUST be set to a non-zero value. The transmitted Your Discriminator value MUST reflect back the received My Discriminator field, or be set to zero if not known. A node MUST NOT change the My Discriminator field for an established BFD session.
Traffic blocking as a consequent action upon defect entry MUST be driven only by a defect's consequent action as specified in Section 5.1.1.2 of RFC 6371. When a mis-connectivity defect occurs, all non-OAM traffic received MUST be silently discarded.
When the GAL is used, the TTL field of the GAL MUST be set to at least 1, and the GAL MUST be the end of stack label (S=1).
CC and CV PDUs are multiplexed within a single BFD session using distinct ACH code points: BFD CC code point 0x0022 and BFD proactive CV code point 0x0023. CV PDUs are augmented with a Source MEP-ID TLV for mis-connectivity detection.
Defect entry criteria for CC include: BFD session timeout (loss of continuity) or receipt of LDI/Lock Report. Defect entry for CV mis-connectivity includes: unexpected encapsulation, unexpected globally unique Source MEP-ID, unexpected session discriminator in Your Discriminator field, discriminator present but with unexpected label, or incorrect BFD authentication.
Exit from a mis-connectivity defect state occurs when no CV messages with mis-connectivity defects have been received for a period of 3.5 seconds. Exit from loss of continuity defect differs between coordinated and independent sessions.
Two modes of operation exist for bidirectional LSPs: coordinated (single BFD session where both direction states are coordinated) and independent (two BFD sessions operating independently, characterized by setting bfd.MinRxInterval to zero by the source MEP).
IANA allocated two Pseudowire Associated Channel Types: 0x0022 (MPLS-TP CC message) and 0x0023 (MPLS-TP CV message). A new CC/CV MEP-ID TLV registry was created under the Pseudowire Associated Channel Types registry, with initial values: 0=Section MEP-ID, 1=LSP MEP-ID, 2=PW MEP-ID (Standards Action required). BFD Diagnostic Code 9 (mis-connectivity defect) was also assigned.
BFD authentication (optional, per RFC 5880 Section 6.7) can be applied. Although the Source MEP-ID TLV is excluded from the authentication digest, the discriminator covered by the digest is associated with the expected MEP-ID, preventing impersonation of CV messages.
CV improves network integrity by ensuring traffic does not leak between LSPs. Globally unique MEP-IDs provide authoritative detection of persistent traffic leaking. Non-unique MEP-IDs could result in undetected leaking when two LSPs with common MEP-IDs are misconnected, though this is considered rare and difficult to exploit maliciously.
For independent mode, the source MEP state machine (bfd.MinRxInterval=0) does not transition out of UP except via ADMIN DOWN; LDI and LKR do not trigger DOWN from UP. The sink MEP state machine permits direct DOWN-to-UP transition and includes MIS-CONNECTIVITY as a trigger back to DOWN.
The coordinated session CC state machine has states DOWN, INIT, and UP. LDI and optionally LKR cause transition from UP to DOWN. MIS-CONNECTIVITY, ADMIN DOWN, DOWN, TIMER, LDI, and LKR cause transition from UP or INIT back to DOWN.
The G-ACh header for CC/CV/RDI is a 32-bit field: first nibble 0001b identifies the G-ACh, followed by Version and Flags (both set to 0), and a 16-bit BFD CC/CV code point (0x0022 for CC, 0x0023 for CV).
The LSP MEP-ID TLV (Type=1) contains a 32-bit Global_ID, 32-bit Node Identifier, 16-bit Tunnel_Num (unique within Node context), and 16-bit LSP_Num (unique within Tunnel context). Applicable to LSPs and SPMEs.
The MPLS-TP CC message consists of the G-ACh header (with BFD CC code point 0x0022) prepended to a standard BFD control packet as defined in RFC 5880.
The MPLS-TP CV message consists of the G-ACh header (with BFD CV code point 0x0023), followed by a BFD control packet, followed by a Source MEP-ID TLV. The Source MEP-ID TLV is a 2-octet Type, 2-octet Length, and variable-length Value field. The BFD control packet length field does not include the Source MEP-ID TLV length.
The PW End Point MEP-ID TLV (Type=2) contains a 32-bit Global_ID, 32-bit Node Identifier, 32-bit AC_ID, and a variable-length AGI (Attachment Group Identifier) with 1-byte Type, 1-byte Length, and variable Value fields.
The Section MEP-ID TLV (Type=0) contains a 32-bit MPLS-TP Global_ID, 32-bit Node Identifier, and 32-bit Interface Number, identifying a section maintenance endpoint.