A YANG Data Model for IS-IS Segment Routing over the MPLS Data Plane
Extracted elements (25)
The module is structured as an augmentation to the IS-IS YANG data model (RFC 9130) rather than a standalone model, allowing SR MPLS extensions to be activated independently while reusing the base IS-IS configuration and state structure. This follows the layered design of the SR YANG framework (RFC 9020 as base, RFC 9130 as IS-IS base).
The 'remote-lfa-sr' and 'ti-lfa' capabilities are modeled as YANG features rather than mandatory nodes, allowing implementations to advertise optional FRR capabilities without requiring all implementations to support both LFA variants.
The module references and imports RFC 9020 (SR YANG base), RFC 9130 (IS-IS YANG base), RFC 8667 (IS-IS SR extensions protocol), RFC 8402 (SR architecture), and RFC 9855 (TI-LFA); implementations must support these base modules for the augmentations to apply correctly.
Adjacency-SID sub-TLV (grouping adjacency-segment-id) carries adj-sid-flags (F, B, V/I, L/G, S, P/E flags), weight (uint8), optional neighbor-id (isis:system-id, used on LAN adjacencies only), and SID encoding.
Adjacency state (grouping adjacency-state) is a read-only (config false) list of adjacency-sid entries carrying value (uint32), address-family, weight (uint8), and protection-requested (boolean), augmented into the IS-IS adjacency operational state.
LAN adjacency-SID configuration requires a mandatory neighbor-system-id leaf (isis:system-id type), added via augmentation of the adj-sids list when the interface-type is 'broadcast'. This distinguishes LAN adj-SIDs from point-to-point adj-SIDs.
Mapping server policy advertisement is controlled via 'bindings/advertise/policies' leaf-list; by default IS-IS will not advertise or process any mapping server entry. Reception of mapping server entries is controlled by the 'bindings/receive' leaf.
Per-protocol SRGB (protocol-srgb container, requiring sr-mpls:protocol-srgb feature) allows configuration of a protocol-specific Segment Routing Global Block with lower-bound and upper-bound uint32 leaves, distinct from the global SRGB.
Prefix-SID sub-TLV (grouping prefix-sid-sub-tlv) carries prefix-sid-flags (R, N, P, E, V, L flags as identityrefs), an algorithm field (identityref to prefix-sid-algorithm), and SID encoding (label or index). Used in extended-ipv4-reachability, mt-extended-ipv4-reachability, ipv6-reachability, and mt-ipv6-reachability LSDB augmentations.
RLFA SR path augmentation adds a 'use-segment-routing-path' boolean leaf (default false, requires 'remote-lfa-sr' feature) to force RLFA to use an SR path instead of LDP, effective only when remote-lfa is enabled.
SID/Label Binding TLV type 149 (grouping sid-binding-tlv) carries a prefix (inet:ip-prefix as FEC), range (uint16), binding flags (F, M, S, D, A), and lists of prefix-sid-sub-tlvs and sid-sub-tlvs. Multi-Topology variant (type 150) adds a 12-bit mt-id field.
SR activation is controlled by setting the 'enable' leaf to true under /isis:isis/segment-routing. This triggers advertisement of SR MPLS extensions based on parameters configured via the base SR module.
SR Algorithm sub-TLV (grouping sr-algorithm) carries a leaf-list sr-algorithm of identityrefs to sr-cmn:prefix-sid-algorithm, advertising all SR algorithms the router is currently using.
SR Capability sub-TLV (grouping sr-capability) carries sr-capability-flag leaf-list (identityref based on sr-capability identity, with mpls-ipv4 and mpls-ipv6 values) and a global-blocks list of SRGBs, each with range-size (uint24) and SID encoding.
SR Local Block (SRLB) grouping carries a list of local-blocks, each with range-size (rt-types:uint24) and SID encoding (label or index), representing the locally significant label range.
SRMS Preference TLV (grouping srms-preference) carries a single preference leaf (uint8, 0-255) where 255 is most preferred, used to advertise preference of a node acting as SR Mapping Server.
The 'ietf-isis-sr-mpls' YANG module augments the IS-IS base model (RFC 9130) with SR MPLS extensions, requiring support for the base SR module (RFC 9020). It defines data nodes for configuring IS-IS SR MPLS extensions and additions to IS-IS LSPs necessary to support MPLS SR.
The module augments the Fast Reroute (FRR) container under interface to support Topology Independent Loop-Free Alternate (TI-LFA) and enhanced Remote LFA (RLFA) using SR tunneling instead of LDP.
TI-LFA container augments the IS-IS interface LFA fast-reroute configuration with an 'enabled' boolean (default false) and selection-tie-breakers for node-protection and srlg-disjoint, each with a priority (uint8, default 128, lower is more preferred). Requires the 'ti-lfa' feature.
IANA assigned URI 'urn:ietf:params:xml:ns:yang:ietf-isis-sr-mpls' in the IETF XML Registry (RFC 3688) for the module namespace.
IANA registered YANG module name 'ietf-isis-sr-mpls' with namespace 'urn:ietf:params:xml:ns:yang:ietf-isis-sr-mpls' and prefix 'isis-sr-mpls' in the YANG Module Names registry (RFC 6020).
Readable operational state nodes including sr-capability, sr-algorithms, local-blocks, srms-preference, and all LSDB augmentations can disclose operational state of the IS-IS protocol; read access should be controlled via NACM.
Writable data nodes including /isis:isis/segment-routing, /isis:isis/protocol-srgb, and interface-level segment-routing and TI-LFA containers are sensitive; unauthorized write or delete operations can cause a Denial-of-Service by dropping or misrouting traffic.
YANG-based management protocols (NETCONF, RESTCONF) accessing this module must use a secure transport layer (SSH, TLS, QUIC) and must use mutual authentication. The NACM (RFC 8341) should be used to restrict access to authorized users.
The SID TLV encoding (grouping sid-tlv-encoding) represents either a 20-bit MPLS label (label-value, uint32 range 0..1048575) or a 32-bit SID index (index-value, uint32). Interpretation depends on V-Flag and L-Flag: V=0,L=0 means 4-octet index; V=1,L=1 means 3-octet local label using the 20 rightmost bits.