ietf-corpus

rfc-5085

Pseudowire Virtual Circuit Connectivity Verification (VCCV): A Control Channel for Pseudowires

T. Nadeau (Editor), C. Pignataro (Editor)
date2007-12 streamIETF areartg wgpwe3 statusPROPOSED STANDARD pages30 canonicalhttps://www.rfc-editor.org/rfc/rfc5085 doi10.17487/RFC5085 errataview
This document describes Virtual Circuit Connectivity Verification (VCCV), which provides a control channel that is associated with a pseudowire (PW), as well as the corresponding operations and management functions (such as connectivity verification) to be used over that control channel. VCCV applies to all supported access circuit and transport types currently defined for PWs. [STANDARDS-TRACK]

updated by

Extracted elements (30)

design-rationale §7

Capability selection uses a logical AND of sent and received bitmasks, and a fixed precedence order (Type 1 > Type 2 > Type 3) when multiple CC Types match, to ensure both PEs converge deterministically on a single CC Type without negotiation round-trips.

mpls

design-rationale §5.1.2

CC Type 2 (Router Alert Label) and CC Type 3 (TTL==1) may take a different ECMP path than PW data traffic, potentially testing a path that is not the actual data path. CC Type 1 (PW-ACH, in-band) is the preferred mode when a control word is present because it follows the same data-plane path as PW data.

mpls

design-rationale §6

L2TPv3 already has a built-in Hello keepalive for the L2TP Control Connection, but this only detects dead peers for the entire connection. VCCV provides per-session (per-pseudowire) granularity to troubleshoot individual L2TP sessions independently.

mpls

interoperability-note §5.1.1

CC Type 1 (PW-ACH) can only be used for PW types that employ the control word and only when the CW follows the 'Generic PW MPLS Control Word' format. It cannot be applied to PWs that do not use a control word or use a different CW format.

mpls

interoperability-note §5.3

Changing CC Types after one has been established is NOT RECOMMENDED as it could cause problems at the receiving end and lead to interoperability issues; the pseudowire must be torn down and re-established to use a different CC Type.

mpls

normative-requirement §5.3 MUST NOT

A remote PE MUST NOT send VCCV messages before the capability for the control channel and connectivity verification type to be used has been signaled. If VCCV messages are received prior to advertising capability, they MUST be discarded.

mpls, security

normative-requirement §6.3 MUST NOT

An LCCE MUST NOT send VCCV packets on an L2TPv3 session unless it has received VCCV capability via the VCCV Capability AVP. If VCCV packets are received without capability exchange, they MUST be discarded.

mpls, security

normative-requirement §5.1.1 MUST

CC Type 1 (In-Band VCCV using PW-ACH) MUST be supported when the control word is present on the pseudowire.

mpls

normative-requirement §6.2.1 MUST

For L2TPv3 ICMP Ping, the ICMP Echo request IP Header fields MUST set destination IP to the remote LCCE's tunnel endpoint address, source IP to the local LCCE's tunnel endpoint address, and TTL or Hop Limit to 1.

ip, mpls

normative-requirement §6.1 MUST

For L2TPv3 PWs, to carry VCCV messages the PW MUST be established with an L2-Specific Sublayer (L2SS) that defines the V-bit. If CC Type 0x01 is requested without requesting an L2SS AVP with an L2SS type that defines the V-bit, the session MUST be disconnected with a CDN message.

mpls

normative-requirement §5.2.1 MUST

ICMP Ping CV Type implementations MUST use ICMPv4 if signaling used IPv4 addresses, or ICMPv6 if IPv6 addresses were used. For statically set-up PWs, the encoding MUST match what was used in configuration.

mpls, ip

normative-requirement §4 MUST

If no VCCV capability is signaled, the peer MUST assume the peer has no VCCV capability. The receiving PE MUST NOT send any VCCV control channel traffic to a peer that has not indicated VCCV support.

mpls

normative-requirement §10 MUST

Implementations MUST provide a method to secure the data plane against data-plane attacks, either via IPsec encryption of MPLS packets (per RFC 4023) or by architecting the MPLS network to prevent external packet injection.

security, mpls, ipsec

normative-requirement §4 MUST NOT

Once a valid CC Type is used by a PE, the PE MUST NOT send any traffic down another CC Type control channel, and MUST continue using that CC Type until the pseudowire is re-signaled.

mpls, diameter

normative-requirement §9 MUST

VCCV applications MUST consider congestion and bandwidth usage implications. Outgoing VCCV messages SHOULD be rate-limited to prevent aggressive connectivity verification causing congestion or denial-of-service attacks. ICMP and MPLS LSP Ping SHOULD be rate-limited to below 5% of the associated PW's bit-rate.

congestion, mpls

normative-requirement §5.3 MUST

When a PE signals a PW and desires PW OAM, it MUST indicate this during PW establishment and MUST include the VCCV interface parameter sub-TLV (0x0C) in the PW set-up message.

mpls, registry

normative-requirement §5.1.2 MUST

When CC Type 2 (Router Alert Label) or CC Type 3 (TTL==1) is used and the Control Word is in use on the PW, the CW MUST also be included before the VCCV message to avoid different ECMP hashing behavior.

mpls

normative-requirement §5.2.2 MUST

When LSP Ping is used as CV Type, the LSP Ping header MUST be used per RFC 4379 and MUST contain the target FEC Stack with the appropriate sub-TLV (sub-Type 8, 9, 10, or 11) to identify the PW to be verified.

mpls

protocol-element §4

MPLS CC Types: Type 1 (0x01) uses PW-ACH (in-band with control word), Type 2 (0x02) uses MPLS Router Alert Label (out-of-band), Type 3 (0x04) uses PW label with TTL=1. L2TPv3 defines only Type 1 (0x01): L2-Specific Sublayer with V-bit set.

mpls

protocol-element §4

MPLS CV Types: ICMP Ping (0x01) and LSP Ping (0x02). L2TPv3 CV Types: ICMP Ping (0x01) only. All are 8-bit bitmask fields allowing multiple concurrent CV Types to be advertised.

mpls

protocol-element §4

VCCV defines two type spaces: Control Channel (CC) Types specifying how VCCV messages are encapsulated, and Connectivity Verification (CV) Types specifying what OAM protocol runs over the control channel. Only one CC Type may be active at a time, but multiple CV Types can be supported concurrently.

mpls

registry §8.3.2

IANA assigned V-bit (Bit 0) in the Default L2-Specific Sublayer and ATM-Specific Sublayer to indicate VCCV traffic in L2TPv3 sessions, via the existing L2TP Name Spaces registries.

registry, mpls

registry §8.1

IANA created the 'MPLS VCCV Control Channel Types' registry (8-bit bitmask) and 'MPLS VCCV Control Verification Types' registry (8-bit bitmask) in the Pseudo Wires Name Spaces. New assignments require IETF Consensus and an IESG-approved RFC.

registry, mpls

registry §8.3.4

IANA created the 'VCCV Capability AVP Values' registry in L2TP Name Spaces, covering L2TPv3 CC Types and CV Types bitmasks in the VCCV Capability AVP (Attribute Type 96). New assignments require IETF Consensus.

registry, mpls

security-consideration §10

VCCV is vulnerable to three attack categories: (1) control-plane attacks on VCCV capability signaling, (2) data-plane attacks including packet injection/interception to generate false positives/negatives and flooding attacks causing DoS, and (3) vulnerabilities inherited from carried protocols (LSP Ping, ICMP). Mitigations include VCCV message throttling, IPsec for data-plane protection, and L2TPv3 Cookie field for spoofing prevention.

security, mpls

state-machine §3

VCCV capability negotiation: PW setup → PE sends VCCV capability in signaling (CC Types AND CV Types bitmasks) → peer returns its capabilities → logical AND selects usable types → single CC Type chosen per precedence rules → CC Type locked until PW is re-signaled (torn down and re-established to change).

mpls

wire-format §6.1

The L2-Specific Sublayer with V-bit set for L2TPv3 VCCV is a 32-bit field: V-bit (bit 0) set to 1, next 3 bits set to 0, then 28 bits for Version (4 bits, set to 0), Reserved (8 bits, set to 0), and Channel Type (16 bits: 0x0021 for IPv4 or 0x0057 for IPv6).

mpls

wire-format §6.3.1

The L2TPv3 VCCV Capability AVP (Attribute Type 96) has a 16-bit value field: 8-bit CC Types bitmask followed by 8-bit CV Types bitmask. The AVP Vendor ID MUST be 0, M bit SHOULD be 0, and length (before hiding) is 8.

mpls

wire-format §5.1.1

The PW Associated Channel Header (PW-ACH) used for CC Type 1 is a 32-bit header: first nibble 0001b, 4-bit Version (0), 8-bit Reserved (0), and 16-bit Channel Type (0x0021 for IPv4, 0x0057 for IPv6).

mpls

wire-format §5.3.1

The VCCV LDP Sub-TLV (parameter ID 0x0C, length 4) carries an 8-bit CC Types bitmask and an 8-bit CV Types bitmask encoded in a 32-bit field: [0x0c | 0x04 | CC Types | CV Types].

mpls