MPLS-TP Shared-Ring Protection (MSRP) Mechanism for Ring Topology
Extracted elements (30)
Ring tunnel labels are downstream-assigned (as defined in RFC 3031) and can be configured statically, provisioned by a controller, or distributed dynamically via a control protocol. The control plane for label distribution is explicitly outside the scope of this document, allowing MSRP to be agnostic to the provisioning method.
RPS is defined as a new protocol instead of reusing PSC (RFC 6378/6974) because PSC on a ring of N nodes requires (N-1) PSC instances and 2*(N-1) MEPs per ring node. RPS requires only a single protocol instance and 2 MEPs per ring node, regardless of the number of protected LSPs, meeting RFC 5654 efficiency requirements.
Short-wrapping protection switching is executed only at the node upstream of the failure, and the packet leaves the ring via the protection ring tunnel at the egress node. This reduces the additional latency and bandwidth consumption compared to wrapping, where traffic is wrapped twice (switched at both adjacent nodes), at the cost of making the two directions of a protected bidirectional LSP non-co-routed during protection.
The node ID SHOULD be independent of the order in which nodes appear on the ring. This design decision avoids coupling the identifier space to ring topology, making node IDs stable across ring reconfigurations and simplifying management.
To mitigate the temporary traffic loop that can occur in wrapping protection when the egress node fails (before failure-location information propagates to all ring nodes), the TTL of the ring tunnel label SHOULD be set to 2*N by the ingress ring node, where N is the number of nodes on the ring.
In dual-node interconnected rings, both interconnection nodes in the virtual node group MUST be assigned the same LSP label for each traversed LSP, allowing either node to terminate working or protection ring tunnels targeted to the group and stitch service LSPs from source to destination ring.
In dual-node interconnected rings, the direction of working ring tunnels on both rings SHOULD be the same for any given service LSP. This ensures that in normal state traffic passes only one interconnection node and does not traverse the inter-node link, and that switchover is triggered only when the active interconnection node fails.
A new RPS request MUST be transmitted immediately when a change in the transmitted status occurs. The first three RPS protocol messages carrying a new request MUST be transmitted as fast as possible; for fast protection switching within 50 ms, the interval of the first three messages SHOULD be 3.3 ms. Successive RPS requests SHOULD be transmitted at 5-second intervals.
A node in the Idle state MUST generate NR in both directions, MUST terminate RPS requests flowing in both directions, and MUST block traffic flow on protection ring tunnels in both directions.
A node in the Pass-Through state MUST transfer received RPS requests unchanged in the same direction and MUST enable traffic flow on protection ring tunnels in both directions.
A protection switch MUST be initiated only by criteria defined in Section 5.3 (signal fail, administrative commands, etc.). A failure of the RPS protocol or controller MUST NOT trigger a protection switch. Ring switches MUST be preempted by higher-priority RPS requests.
All nodes on the same ring MUST use the same protection mechanism (wrapping, short-wrapping, or steering). If the RPS protocol on any node detects an RPS message with a protection-switching mode that was not provisioned, a protocol failure is reported and the protection mechanism is not activated.
An RPS request MUST be terminated by the destination node of the message. If a node receives an RPS request with its own node ID set as the source node, the message MUST be dropped and not forwarded. A non-destination node with no higher-priority local request MUST forward the RPS request in the same direction.
The RPS processes in each ring node MUST communicate using the Generic Associated Channel (G-ACh). Each node is assigned a node ID that MUST be unique on each ring; the maximum number of nodes supported is 127, with valid node ID values of 1–127.
Three consecutive lost Continuity Check (CC) OAM packets MUST be interpreted as a link failure. A node failure is treated as simultaneous failure of both links attached to the failed node.
When a failure clears, the node MUST enter the Wait-to-Restore (WTR) condition and remain in it for the configured interval, unless preempted by a higher-priority request, another failure, or an external command. The WTR time may be configured in 1-minute steps between 0 and 12 minutes; the default value is 5 minutes.
When multiple Manual Switch (MS) RPS requests exist simultaneously addressing different links and no higher-priority request is on the ring, no switch SHOULD be executed and existing switches MUST be dropped. LP, FS, SF, and FS+SF pairs are allowed to coexist; multiple EXER requests MUST also be allowed to coexist.
When no protection switching is active, each node MUST send RPS requests with No Request (NR) to its two adjacent nodes periodically. When a node detects a failure, it MUST send the appropriate RPS request in both directions to the destination node (the other node adjacent to the failure).
With short-wrapping, protection switching can only be performed once from the working ring tunnel to the protection ring tunnel. A node MUST NOT switch traffic already carried on the protection ring tunnel back to the working ring tunnel, avoiding temporary traffic loops at the egress node.
A ring map is present in each ring node and contains ring topology information: the set of ring nodes, their adjacency, and the status (Intact or Severed) of each inter-node link. Every ring node uses the ring map to determine protection switching behavior.
MSRP introduces a ring tunnel layer as a server layer for LSPs traversing the ring. Each egress node has four ring tunnels: clockwise working (RcW), anticlockwise protection (RaP), anticlockwise working (RaW), and clockwise protection (RcP). LSPs sharing the same egress node and direction share the same ring tunnels.
The 2-bit Protection-Switching Mode (M) field in the RPS PDU indicates the mode used by the sending node: 00=Reserved, 01=Wrapping, 10=Short-Wrapping, 11=Steering. This field allows ring nodes to verify all members use the same protection-switching mechanism.
The RPS Request Code is an 8-bit field encoding the protection condition or external request by priority (highest to lowest): Lockout of Protection (LP=0x0F), Forced Switch (FS=0x0D), Signal Fail (SF=0x0B), Manual Switch (MS=0x06), Wait-to-Restore (WTR=0x05), Exercise (EXER=0x03), Reverse Request (RR=0x01), No Request (NR=0x00).
This document allocates a G-ACh Channel Type value of 0x002A for the RPS protocol message, registered in the IANA 'MPLS Generalized Associated Channel (G-ACh) Types (including Pseudowire Associated Channel Types)' registry.
This document creates the 'RPS Request Codes' IANA registry with eight initial entries: NR (0x00), RR (0x01), EXER (0x03), MS (0x06), WTR (0x05), SF (0x0B), FS (0x0D), LP (0x0F), ordered by priority from lowest to highest.
The MSRP mechanism inherits the security considerations of MPLS-TP. Because RPS messages are carried in-band on the G-ACh, unauthorized injection or modification of RPS PDUs could cause spurious protection switches or suppress legitimate switches. Operators should secure access to management and OAM channels that can originate administrative commands such as LP, FS, and MS.
Each ring node operates in one of three RPS states: Idle (no active RPS request, sending/receiving NR in both directions), Switching (active protection switch or external command), and Pass-Through (highest-priority request is neither destined to nor generated by this node; traffic flows through protection tunnels transparently).
Transition from Idle to Pass-Through is triggered when an RPS request changes from NR to any other code in any direction, provided the new request is not destined to this node. Reversion from Pass-Through to Idle requires NR received in both directions simultaneously. Transition to Switching requires an RPS request destined to this node, an externally initiated command, or detection of a local MPLS-TP section failure.
The MSRP label stack is [Ring Tunnel Label | LSP Label | Service Label](Payload). The Ring Tunnel Label is the outermost label used for ring-level forwarding; the LSP Label identifies the specific transport path; the Service Label identifies the customer service.
The RPS PDU is a 64-bit G-ACh packet. Bits 0–3 are 0001 (G-ACh indicator); bits 4–7 are Version; bits 8–15 are Reserved; bits 16–31 carry the RPS Channel Type (0x002A). The second word contains: Destination Node ID (bits 0–6, 7-bit field), Source Node ID (bits 8–14, 7-bit field), Request code (bits 16–23, 8-bit field), and Protection-Switching Mode M (bits 24–25, 2-bit field).