IS-IS Extensions for Segment Routing
Extracted elements (26)
Multiple SRGB Descriptor entries define an ordered set of label ranges that together form the full SRGB; SID indexes span across all ranges in advertisement order. The ordering is load-bearing — changing it changes the label each index resolves to — which motivates the strict append-only requirement for new descriptors.
PHP behavior cannot be determined solely from a Mapping Server advertisement because the originator of the prefix is not identified. PHP MAY be applied if a prefix reachability advertisement exists with a Prefix Attribute Flags sub-TLV where X-Flag and R-Flag are both 0. In the absence of such a sub-TLV, the A-Flag in the Binding TLV indicates direct connectivity and PHP MUST be performed by neighbors of the prefix originator.
A Prefix-SID MUST be unique within a given IGP domain when the L-Flag is not set.
In the SID/Label Binding TLV, if the S-Flag is not set, the TLV MUST NOT be leaked between levels and the S-Flag MUST NOT be altered during TLV leaking. The D-Flag MUST be set when the TLV is leaked from Level-2 to Level-1; TLVs with D-Flag set MUST NOT be leaked from Level-1 to Level-2, preventing looping.
The Algorithm field in an originated Prefix-SID MUST be set to 0 or to a value advertised in the SR-Algorithm sub-TLV. A router receiving a Prefix-SID with an algorithm value not advertised by the remote node in its SR-Algorithm sub-TLV MUST ignore the Prefix-SID sub-TLV.
The Prefix-SID sub-TLV MUST be included when the associated Prefix Reachability TLV is propagated across IS-IS level boundaries. The Level-1-2 router maintains the content (flags and SID) except as specified for N-Flag, R-Flag, P-Flag, and E-Flag handling.
The Prefix-SID sub-TLV MUST be present in the SID/Label Binding TLV when the M-Flag is clear (normal SRMS use), and MUST NOT be present when the M-Flag is set (Mirror Context). The SID/Label sub-TLV (Type 1) MUST be present in the Binding TLV when the M-Flag is set.
The R-Flag MUST be set for prefixes not local to the router that are advertised due to level propagation, leaking, or redistribution from another protocol. A Level-1-2 router propagating its own configured interface addresses to another level MUST NOT set the R-Flag.
The SR-Capabilities sub-TLV MUST be propagated throughout the IS-IS level and MUST NOT be advertised across level boundaries (Router Capability TLV S-Flag MUST be unset). A router MUST NOT advertise more than one SR-Capabilities sub-TLV and MUST NOT advertise overlapping SRGB ranges.
V-Flag and L-Flag combinations are constrained: both set to 0 means the SID/Index/Label is a 4-octet global index; both set to 1 means a 3-octet local label (20 rightmost bits). All other combinations are invalid and any SID advertisement with an invalid V-Flag/L-Flag setting MUST be ignored.
When adding a new SRGB Descriptor, a router SHOULD append it at the end and SHOULD NOT reorder existing blocks; reordering causes FIB label churn and may black-hole traffic during IGP convergence. The originating router MUST ensure SRGB order is preserved after graceful restart.
When propagating a reachability advertisement across IS-IS levels, the router MUST set the P-Flag and MUST clear the E-Flag on the related Prefix-SIDs. If P-Flag is not set, upstream neighbors MUST pop (PHP) the Prefix-SID; if both P-Flag and E-Flag are set, upstream neighbors MUST replace the Prefix-SID with Explicit NULL (0 for IPv4, 2 for IPv6).
When the Prefix Attribute Flags sub-TLV (RFC 7794) is present for a given prefix, the N-Flag and R-Flag values in that sub-TLV MUST be used and the corresponding values in the Prefix-SID sub-TLV MUST be ignored.
When the SR-Algorithm sub-TLV is advertised, algorithm 0 MUST always be present. The SR-Algorithm sub-TLV MUST NOT be advertised more than once at a given level and MUST NOT be flooded across level boundaries (S-Flag MUST be unset).
The Multi-Topology SID/Label Binding TLV (Type 150) extends the SID/Label Binding TLV to support Multi-Topology IS-IS (M-ISIS) by prepending a 2-octet MT ID field. The TLV MUST be ignored if the MT ID is zero to preserve consistent view of the standard unicast topology.
The SID/Label Binding TLV (Type 149) enables the Segment Routing Mapping Server (SRMS) to advertise prefix-to-SID/Label mappings and also supports Mirror SID advertisements. It carries a Flags octet (F, M, S, D, A bits), a 2-octet Range, Prefix Length, variable Prefix, and sub-TLVs.
The SR-Algorithm sub-TLV (Type 19) lists the SR algorithms currently supported by the router. Algorithm 0 is SPF on link metric (local policy overrides permitted); Algorithm 1 is Strict SPF (all nodes MUST honor the SPF forwarding decision; local policy MUST NOT alter it).
The SR Local Block (SRLB) sub-TLV (Type 22 within TLV 242) advertises the range of MPLS labels a router has reserved for Local SIDs (e.g., Adj-SIDs). It enables controllers and applications to know the available Local SID space and avoid allocation collisions. A router MUST NOT advertise more than one SRLB sub-TLV.
The SRMS Preference sub-TLV (Type 24, Length 1) carries an unsigned 8-bit preference value used to break ties between multiple SRMS sources during SID selection as defined in RFC 8661. At most one SRMS Preference sub-TLV MUST be advertised per router.
This document creates and updates several IANA IS-IS registries: Adj-SID (Type 31) and LAN-Adj-SID (Type 32) in Sub-TLVs for TLV 22/23/25/141/222/223; Prefix-SID (Type 3) in Sub-TLVs for TLV 135/235/236/237; SR-Capability (2), SR-Algorithm (19), SRLB (22), and SRMS Preference (24) in Sub-TLVs for TLV 242; new TLVs 149 (SID/Label Binding) and 150 (MT SID/Label Binding) plus a new sub-TLV registry for TLVs 149 and 150 (Expert Review).
IS-IS SR extensions program the MPLS data plane, and the same attacks applicable to the IP/IPv6 control plane can be carried out on the MPLS control plane, potentially resulting in misrouted traffic that may be harder to detect and isolate than IP misrouting. Existing IS-IS cryptographic authentication mechanisms (RFC 5304 and RFC 5310) apply to these extensions.
The Adj-SID sub-TLV (Type 31, Length 5 or 6) contains a 1-octet Flags field (F/B/V/L/S/P bits), a 1-octet Weight for load balancing, and a variable SID/Label/Index. Multiple Adj-SID sub-TLVs MAY be associated with a single IS Neighbor; by default V-Flag and L-Flag are SET.
The LAN-Adj-SID sub-TLV (Type 32, variable length) is used on LAN subnetworks and includes a 1-octet Flags field, 1-octet Weight, a Neighbor System-ID of 'ID Length' octets, and a variable SID/Label/Index. LAN-Adj-SID MUST NOT appear in TLV 141 (inter-AS reachability).
The Prefix-SID sub-TLV (Type 3, Length 5 or 6) carries the SR IGP-Prefix-SID and is associated to a prefix advertised in TLV-135, TLV-235, TLV-236, TLV-237, or Binding TLVs. It contains a 1-octet Flags field (R, N, P, E, V, L bits), a 1-octet Algorithm field, and a variable-length SID/Index/Label.
The SID/Label sub-TLV (Type 1, Length 3 or 4) contains a SID or MPLS label. If Length is 3, the 20 rightmost bits represent an MPLS label value; if Length is 4, the value is a 32-bit index.
The SR-Capabilities sub-TLV (Type 2 within Router Capability TLV 242) carries a 1-octet Flags field (I-Flag: MPLS IPv4 capable; V-Flag: MPLS IPv6 capable) plus one or more SRGB Descriptor entries each containing a 3-octet Range and a SID/Label sub-TLV specifying the first label of the block.