Theoretical foundations and architecture

Basic FRR from the previous lessons covers a single link failure, but a real network raises more questions: how a facility backup differs from a one-to-one detour at the label level, what the merge point does, when node protection is needed instead of link protection, and how P2MP trees are signalled to deliver one stream to many receivers. A separate task is TE between areas and autonomous systems: the TED of each area is isolated and the head end cannot compute the whole path, so the ERO contains loose hops and the path in each segment is computed by an ABR or ASBR. The lesson covers FRR per RFC 4090 (flags, RRO, labels during the detour), P2MP RSVP-TE per RFC 4875, inter-area and inter-domain TE (RFC 5151, the role of a PCE), and also re-optimization with make-before-break and SRLG for shared risks. It assumes you already know the RSVP-TE basics, CSPF and basic FRR (bypass tunnel, PLR, MP) from this module.

What basic FRR covers and what it does not

The basic FRR lesson showed a bypass tunnel around a link and the PLR/MP roles. Here we cover the RFC 4090 details without which node protection, ECMP variants and inter-domain cases are unclear. The head end requests protection in two ways. In the SESSION_ATTRIBUTE object there are flags: 0x01 local protection desired, 0x02 label recording desired, 0x04 SE style desired, 0x08 bandwidth protection desired, 0x10 node protection desired. In the FAST_REROUTE object (RFC 4090) there is the mode: 0x01 one-to-one backup desired, 0x02 facility backup desired, plus setup/hold priorities for the backup path, a hop limit and optionally bandwidth. Each hop adds an RRO subobject with the address and (with label recording) the label, and the flags: 0x01 local protection available, 0x02 local protection in use, 0x04 bandwidth protection, 0x08 node protection. These flags show at any hop whether the LSP is protected and how.

Facility backup: labels in practice

A facility bypass is one tunnel per protected resource (a link or a node) for all LSPs through it. Let the PLR be P1, the protected link P1-PE2, the MP PE2 and the bypass go P1-P2-PE2 with bypass label B. The PLR received the primary LSP with an ingress label and must send it to PE2 with label L (named by PE2). On failure the PLR swaps to L and pushes B on top: the packet leaves with the stack [B, L]. The node after P1 on the detour path swaps B and, as the penultimate hop of the bypass, pops it (PHP), so PE2 receives the packet with the single label L, as if the link were intact. For node protection (NHOP/NNHOP) the MP is a node one further, and the PLR must know the label L that the MP expects from the node after the protected node; it takes it from the RRO of the primary LSP, which is why label recording is mandatory. One NNHOP bypass protects all LSPs that pass through the PLR - protected node - MP triple, and the state grows with the number of resources, not LSPs: this is the main argument for facility.

One-to-one detour

In the one-to-one scheme every PLR along the path builds a separate detour LSP per protected LSP (RFC 4090 section 3). A detour has its own labels at every hop, needs no stack, and its MP is either the egress or a merge point - a node where the detour joins the primary LSP or another detour. Merging is done in the shared RSVP session (shared explicit style through detour objects) so that the same state is not counted twice in bandwidth reservation. Pros: no label stack (simpler for platforms with depth limits), protection of each LSP is configured individually, including bandwidth. Cons: state grows in proportion to the number of LSPs and the path length; with thousands of LSPs this means thousands of detours on each PLR, so facility dominates in large networks. In practice Juniper builds a detour by default (fast-reroute), while link-protection on an RSVP interface gives a facility bypass; Cisco IOS-XE implements facility.

Link or node protection and merge point behaviour

Link protection (NHOP) bypasses only the link: the MP is the neighbor, and the failure of the neighbor itself is not covered. Node protection (NNHOP) bypasses both the node and the link: the bypass ends at the node one further. NNHOP needs a topology where such a path exists without a shared risk, and the labels from the RRO. If there is no NNHOP bypass most platforms fall back to NHOP; so after enabling protection check the FRR database on every PLR for the protection type. Behaviour on the MP: it accepts the packet by the label of the primary LSP and initially changes nothing, and when it gets a Path from the bypass interface (a different PHOP) it updates its state and answers with Resv along the bypass. After the failure the head end receives a PathErr with the Notify code (error code 25, value 3 - tunnel locally repaired) and starts replacing the LSP.

P2MP RSVP-TE (RFC 4875)

A P2MP LSP is a tree from one root (ingress) to leaves (egress). Each root-leaf pair is called an S2L sub-LSP. The key idea: the tree is signalled as a set of sub-LSPs in one session, with an S2L_SUB_LSP object per leaf in the Path; branch nodes replicate packets to several outgoing interfaces, so there is one copy of the stream on a shared segment rather than a copy per receiver. Adding or removing a leaf does not interrupt the others: a sub-LSP is added by a separate Path. Each sub-LSP can be given an explicit path or computed by CSPF; the shared segments of sub-LSPs share resources. Use cases: transport for mVPN (profiles with P2MP RSVP-TE), IPTV and other distribution in an operator network where guaranteed bandwidth and FRR for the distribution matter. FRR protection applies here too, but the bypass for sub-LSPs is built per outgoing link of a branch. Limits: replication capacity on line cards, and the number of sub-LSPs and the state size on the ingress grow with the number of leaves; a network with hundreds of leaves often moves to mLDP or Segment Routing. Configuration and platform: on Juniper a sub-LSP is defined with p2mp <name> under label-switched-path, on Cisco with a destination list and the point-to-multipoint mode on the tunnel.