Skip to content

RFC 9352 - IS-IS Extensions for SRv6

Field Value
Title IS-IS Extensions to Support Segment Routing over the IPv6 Data Plane
Authors P. Psenak, C. Filsfils, A. Bashandy, B. Decraene, Z. Hu
Date February 2023
Status Proposed Standard
Link datatracker.ietf.org/doc/rfc9352

Summary

RFC 9352 defines extensions to the IS-IS routing protocol to support SRv6. These extensions allow IS-IS to advertise SRv6 SIDs, locators, and endpoint behaviors, enabling automated SRv6 deployment within an IGP domain.

Key Concepts

SRv6 Locator Advertisement

IS-IS advertises SRv6 locators as reachable IPv6 prefixes with additional SRv6-specific TLVs. This allows all routers in the IS-IS domain to learn:

  • The SRv6 locator prefix for each node
  • The SRv6 SIDs and their associated behaviors
  • The algorithm used for path computation

New TLVs and Sub-TLVs

TLV/Sub-TLV Description
SRv6 Locator TLV (27) Advertises an SRv6 locator with its prefix and flags
SRv6 End SID Sub-TLV Associates an End SID with a locator
SRv6 End.X SID Sub-TLV Advertises adjacency-specific SIDs
SRv6 SID Structure Sub-TLV Describes the locator/function/argument split
SRv6 Capabilities Sub-TLV Advertises SRv6 capabilities of a node

SRv6 SID Structure

The SID Structure sub-TLV communicates how a 128-bit SID is divided:

|<-- Locator Block -->|<-- Locator Node -->|<-- Function -->|<-- Argument -->|
|<------- Locator Length (bits) -------->|

This allows other nodes to understand the structure of SIDs without pre-configuration.

Key Sections

Section Topic Description
2 SRv6 Locator TLV (Type 27) Top-level IS-IS TLV that advertises an SRv6 locator prefix, its metric, algorithm, and flags
2.1 SRv6 End SID Sub-TLV Sub-TLV of the Locator TLV; associates an End SID with a locator and specifies endpoint behavior
2.2 SRv6 End.X SID Sub-TLV Advertises adjacency-specific SIDs (layer-3 cross-connect); carried in the Extended IS Reachability TLV
2.3 SRv6 LAN End.X SID Sub-TLV End.X SID for multi-access (LAN) segments with a neighbor system-ID identifier
3 SRv6 SID Structure Sub-TLV Describes the bit-level decomposition of the SID: Locator Block Length, Locator Node Length, Function Length, Argument Length
4 SRv6 Capabilities Sub-TLV Advertises SRv6 capability flags within the IS-IS Router Capability TLV (type 242)
5 Flex-Algorithm Integration SRv6 locators can be associated with Flex-Algorithm IDs, enabling topology/constraint-aware SID advertisement
6 Security Considerations IS-IS authentication protects SRv6 TLV integrity; no additional mechanisms required beyond standard IS-IS security

SRv6 Locator TLV Detail

The SRv6 Locator TLV (Type 27) structure:

Field Length Description
Metric 4 bytes Route metric for the locator prefix
Flags 1 byte D-flag (leaking from L2 to L1)
Algorithm 1 byte IGP Algorithm (0 = SPF, 128-255 = Flex-Algorithm)
Locator Prefix Length 1 byte Prefix length in bits
Locator Prefix Variable The SRv6 locator IPv6 prefix
Sub-TLVs Variable End SID sub-TLVs, SID Structure sub-TLVs

SRv6 SID Structure Sub-TLV Detail

Field Length Description
Locator Block Length (LBL) 1 byte Number of bits for the Locator Block (common across the domain)
Locator Node Length (LNL) 1 byte Number of bits for the Locator Node (per-node identifier)
Function Length (FL) 1 byte Number of bits for the Function (behavior-specific)
Argument Length (AL) 1 byte Number of bits for the Argument (optional, behavior-specific)

SID Structure Example

For a SID fc00:0:1::1 with block fc00::/24, node 0:0:1::/40, function ::1/16:

  • Locator Block Length = 24
  • Locator Node Length = 16
  • Function Length = 16
  • Argument Length = 0

Common Pitfalls

Locator Block Length vs Locator Node Length. The Locator Block is the common prefix shared across the SRv6 domain (e.g., fc00::/24), while the Locator Node is the per-node portion within the block. Together they form the full Locator. Confusing these two fields leads to incorrect SID resolution. The total Locator Length = Locator Block Length + Locator Node Length.

SID Structure mismatch causes silent failures. If the SID Structure sub-TLV values do not match the actual SID allocation on the advertising node, remote nodes will parse the SID incorrectly. For example, if a node advertises Function Length = 16 but actually uses 20 bits for the function, other nodes will compute wrong SIDs for VPN services.

Algorithm field must match Flex-Algorithm. When advertising a locator under a Flex-Algorithm (algorithm value 128-255), the Algorithm field in the Locator TLV must match the Flex-Algorithm Definition advertised elsewhere in IS-IS (RFC 9350). A mismatch means the locator will not be used for that algorithm's path computation.

End.X SIDs are per-adjacency, not per-locator. End.X SIDs are advertised in the Extended IS Reachability TLV (TLV 22 or TLV 222) as sub-TLVs of the adjacency, not as sub-TLVs of the Locator TLV. This is different from End SIDs which are sub-TLVs of the Locator TLV.

Interaction with Flex-Algorithm

SRv6 locators can be associated with IS-IS Flex-Algorithm, enabling constraint-based path computation. Different locators can be advertised under different algorithms (e.g., shortest path, low latency, disjoint paths).

Configuration Example (Cisco IOS-XR)

router isis CORE
 address-family ipv6 unicast
  segment-routing srv6
   locator MAIN
  !
 !
!

Configuration Example (Juniper)

set protocols isis source-packet-routing srv6 locator myloc end-sid fc00:0:2::1
Document Relationship Description
RFC 9513 OSPFv3 equivalent OSPFv3 Extensions for SRv6 -- the OSPF counterpart to this IS-IS specification
RFC 9350 Dependency IGP Flex-Algorithm definition; SRv6 locators reference Flex-Algo IDs defined here
RFC 9800 Extension Compressed SID support adds new SID Structure considerations for C-SID locators
RFC 8986 Defines behaviors Endpoint behaviors (End, End.X, etc.) advertised via the IS-IS sub-TLVs