Skip to content

RFC 8402 - Segment Routing Architecture

Field Value
Title Segment Routing Architecture
Authors C. Filsfils, S. Previdi, L. Ginsberg, B. Decraene, S. Litkowski, R. Shakir
Date July 2018
Status Proposed Standard
Link datatracker.ietf.org/doc/rfc8402

Summary

RFC 8402 defines the architecture for Segment Routing (SR). It introduces the concept of encoding a packet's forwarding path as an ordered list of segments -- instructions that nodes execute to steer traffic. The architecture is applicable to both the MPLS and the IPv6 data planes, referred to as SR-MPLS and SRv6 respectively.

The document establishes the foundational terminology and concepts that all subsequent SR RFCs build upon. It defines the SR domain, the Segment Routing Global Block (SRGB), the Segment Routing Local Block (SRLB), and the three primary segment types: prefix segments, adjacency segments, and binding segments. Each segment type serves a distinct purpose in constructing source-routed paths through the network.

A key design principle of SR is that it leverages existing link-state IGP protocols (IS-IS, OSPF) for segment distribution, avoiding the need for any additional signaling protocol such as LDP or RSVP-TE. This simplification of the control plane is one of the primary motivations behind Segment Routing.

Key Sections

Section Topic Description
2 SR Domain Defines the set of nodes participating in SR and the trust boundary
3 Segment Types Prefix, adjacency, and binding segments
4 SRGB and SRLB Global and local label/SID block allocation
5 IGP Segments How segments are advertised via link-state protocols
6 Binding Segments Policy and service chaining abstraction
8 SR Policies Ordered list of segments encoding a path

Segment Types

Segment Type Scope Purpose Example Use
Prefix SID Global (SRGB) Identifies a prefix in the SR domain; the shortest IGP path is used Steer traffic to a destination node
Adjacency SID Local Identifies a specific link (adjacency) to a neighbor Force traffic over a specific link
Binding SID Local or global Represents an SR Policy or tunnel; provides abstraction Service chaining, inter-domain TE

SRGB and SRLB

The Segment Routing Global Block (SRGB) is the range of labels (SR-MPLS) or SID values reserved for global segments. Every node in the SR domain should advertise the same SRGB to simplify operations, though the architecture allows per-node SRGB ranges.

The Segment Routing Local Block (SRLB) is the range reserved for local segments such as adjacency SIDs. These values are significant only to the node that allocates them.

Block Scope Default Range (MPLS) Used For
SRGB Domain-wide 16000-23999 Prefix SIDs
SRLB Node-local 15000-15999 Adjacency SIDs, local SIDs

Data Plane Instantiations

Property SR-MPLS SRv6
Segment encoding MPLS label stack 128-bit IPv6 addresses in SRH
SID format 20-bit MPLS label LOC:FUNCT:ARG (variable lengths)
Transport MPLS forwarding IPv6 forwarding
MTU impact 4 bytes per segment 16 bytes per segment (before compression)
IGP extensions IS-IS / OSPF SR extensions IS-IS / OSPFv3 SRv6 extensions

Common Pitfalls

  • Assuming the SRGB must be identical on all nodes. The architecture allows different per-node ranges, but operational best practice is to keep them uniform.
  • Confusing Prefix SID index with the actual MPLS label. The label is computed as SRGB base + SID index.
  • Forgetting that Adjacency SIDs are locally significant -- they cannot be used without knowing which node allocated them.
  • Treating Binding SIDs as simple labels -- they represent an entire SR Policy and abstract the underlying segment list.
  • Ignoring the SR domain boundary. Nodes outside the SR domain will not understand SR-MPLS labels or SRv6 SIDs.

References

  1. RFC 8402 - Segment Routing Architecture
  2. RFC 8660 - Segment Routing with the MPLS Data Plane
  3. RFC 8661 - Segment Routing MPLS Interworking with LDP
  4. RFC 9256 - Segment Routing Policy Architecture