IS-IS Extensions to Support Segment Routing over the IPv6 Data Plane
updates
- rfc-7370 — Updates to the IS-IS TLV Codepoints Registry
Extracted elements (29)
The SRv6 SID Structure sub-sub-TLV is defined for informational purposes (validation of SID allocation schemes by controllers via BGP-LS, and provisioning of filtering rules at SR domain boundaries) rather than for use in packet forwarding, to keep the forwarding plane independent of control-plane SID structure encoding.
The SRv6 Locator TLV shares the sub-TLV space defined for TLVs 135, 235, 236, and 237, enabling reuse of existing sub-TLVs (e.g., administrative tags, Prefix Attribute Flags) in locator advertisements. The X-flag in Prefix Attribute Flags is valid when sent in the SRv6 Locator TLV, unlike its behavior in TLVs 236 and 237; in case of inconsistency, the advertisement in the Prefix Reachability TLV MUST be preferred.
All nodes advertising the same anycast locator MUST instantiate the exact same set of SIDs under that anycast locator; failure to do so may result in traffic being dropped or misrouted.
All SIDs advertised in SRv6 End.X SID and SRv6 LAN End.X SID sub-TLVs MUST be a subnet of a Locator with matching topology and algorithm advertised by the same node. SIDs that do not meet this requirement MUST be ignored.
Endpoint behaviors MUST only be advertised in the specific sub-TLV(s) designated per Table 1: End (PSP/USP/USD) only in End SID; End.X (PSP/USP/USD), End.DX6, and End.DX4 only in End.X SID and LAN End.X SID; End.DT6, End.DT4, and End.DT46 only in End SID.
Locators associated with Flexible Algorithms SHOULD NOT be advertised in Prefix Reachability TLVs (236 or 237), because doing so would cause forwarding to follow the algorithm 0 path instead of the Flexible Algorithm path.
Locators for algorithms 0 and 1 SHOULD also be advertised in a Prefix Reachability TLV (236 or 237) so that legacy routers install a forwarding entry for algorithms 0 and 1 SRv6 traffic.
Locators MUST be advertised in the SRv6 Locator TLV. Forwarding entries for these locators MUST be installed in the forwarding plane of receiving SRv6-capable routers when the associated topology/algorithm is supported.
Reserved bits in the SRv6 Capabilities sub-TLV Flags field MUST be set to zero on transmission and MUST be ignored on receipt.
SRv6 SIDs received from other nodes are not directly routable and MUST NOT be installed in the forwarding plane; reachability depends on the existence of a covering locator.
The SRv6 SID Structure sub-sub-TLV MUST NOT appear more than once in its parent sub-TLV; if it does, the parent sub-TLV MUST be ignored. It MUST NOT be used at a transit node for forwarding packets; it is for informational use by control and management planes only.
When the same prefix with identical prefix length, MTID, and algorithm is received in both a Prefix Reachability TLV and an SRv6 Locator TLV, the Prefix Reachability advertisement MUST be preferred for forwarding plane installation to prevent inconsistent behavior between SRv6-capable and SRv6-incapable routers.
A new Anycast Flag (A-flag, bit 4) is defined in the Prefix Attribute Flags sub-TLV to indicate that a prefix or SRv6 Locator is configured as anycast. The A-flag MUST be preserved when the advertisement is leaked between levels, and the A-flag and N-flag MUST NOT both be set.
The Maximum End D MSD Type (SRH Max End D, value 45) specifies the maximum number of SIDs present in an SRH when performing decapsulation. Zero or absent means the router cannot perform decapsulation-and-forward when the outer IPv6 header contains an SRH.
The Maximum End Pop MSD Type (SRH Max End Pop, value 42) signals the maximum number of SIDs in the SRH for which the router can apply PSP or USP flavors. A zero or absent value means PSP/USP are not supported.
The Maximum H.Encaps MSD Type (SRH Max H.encaps, value 44) signals the maximum number of SIDs addable to a segment list via H.Encaps behavior. Zero or absent means the headend can only apply an SR Policy with one segment without inserting an SRH.
The Maximum Segments Left MSD Type (SRH Max SL, value 41) signals the maximum value of the Segments Left field in the SRH of a received packet before applying the associated Endpoint behavior. If no value is advertised, the supported value is 0.
The SRv6 Capabilities sub-TLV (type 25) of the Router Capability TLV signals that a node supports SR Segment Endpoint Node functionality per RFC 8754. It carries a 2-octet Flags field; the O-flag (bit 1) indicates support for the O-bit in the SRH as defined in RFC 9259.
Bit 4 (Anycast Flag, A-flag) was added to the IS-IS Bit Values for Prefix Attribute Flags Sub-TLV registry.
IANA created the IS-IS Sub-Sub-TLVs for SRv6 SID Sub-TLVs registry (Expert Review), assigning type 1 (SRv6 SID Structure) as valid in sub-TLVs 5, 43, and 44. Also created flag registries for SRv6 Capabilities (O-flag at bit 1), SRv6 Locator TLV (D-flag at bit 0), SRv6 End SID, and SRv6 Adjacency SID (B/S/P flags at bits 0–2).
IANA registered MSD type values 41 (SRH Max SL), 42 (SRH Max End Pop), 44 (SRH Max H.encaps), and 45 (SRH Max End D) in the IGP MSD-Types registry.
IANA registered sub-TLV type 25 (SRv6 Capabilities) in the IS-IS Sub-TLVs for IS-IS Router CAPABILITY TLV registry, and created the IS-IS Sub-Sub-TLVs for SRv6 Capabilities Sub-TLV registry (Expert Review) with reserved type 0.
IANA registered TLV type 27 (SRv6 Locator) in the IS-IS Top-Level TLV Codepoints registry (LSP only), sub-TLV type 5 (SRv6 End SID) in the IS-IS Sub-TLVs for TLVs Advertising Prefix Reachability registry, and updated that registry to add a column for the SRv6 Locator TLV (27), updating RFC 7370.
IS-IS is deployed under a single administrative domain but deployments may expose the routing domain to potential attackers. Stronger authentication mechanisms from RFC 5304 and RFC 5310 SHOULD be used. Advertising incorrect MSD values may have negative consequences, and security concerns for the O-flag and Flexible Algorithms are addressed in RFC 9259 and RFC 9350, respectively.
The SRv6 End SID sub-TLV (type 5, advertised in the SRv6 Locator TLV) carries a 1-octet Flags field (all reserved), a 2-octet Endpoint Behavior codepoint, a 16-octet SID, and optional sub-sub-TLVs. The SID MUST be allocated from its associated locator; End SIDs not allocated from the associated locator MUST be ignored.
The SRv6 End.X SID sub-TLV (type 43) carries a 1-octet Flags field (B/S/P flags), a 1-octet Algorithm, a 1-octet Weight, a 2-octet Endpoint Behavior, a 16-octet SID, and optional sub-sub-TLVs. It is advertised in TLVs 22, 23, 25, 141, 222, and 223 for point-to-point adjacencies.
The SRv6 LAN End.X SID sub-TLV (type 44) extends End.X for LAN adjacencies by prepending a variable-length Neighbor System-ID field (IS-IS ID Length octets) before the Flags/Algorithm/Weight/Endpoint Behavior/SID fields, enabling identification of the physical neighbor on the LAN.
The SRv6 Locator TLV (type 27) contains a 4-bit MTID field and carries one or more locator entries, each with a 4-octet Metric, 1-octet Flags (D-flag), 1-octet Algorithm, 1-octet Loc-Size (1–128 bits), variable-length Locator (1–16 octets), and optional sub-TLVs. The TLV MUST be ignored if Loc-Size is outside the range 1–128.
The SRv6 SID Structure sub-sub-TLV (type 1, length 4) carries four 1-octet fields: LB Length (Locator Block bits), LN Length (Locator Node bits), Fun. Length (Function bits), and Arg. Length (Arguments bits). The sum of all four MUST be ≤ 128; if not, the parent sub-TLV MUST be ignored.