rfc-9130

YANG Data Model for the IS-IS Protocol

S. Litkowski (Editor), D. Yeung, A. Lindem, J. Zhang, L. Lhotka
date2022-10 streamIETF areartg wglsr statusPROPOSED STANDARD pages103 canonicalhttps://www.rfc-editor.org/rfc/rfc9130 doi10.17487/RFC9130
This document defines a YANG data model that can be used to configure and manage the IS-IS protocol on network elements.

Extracted elements (30)

design-rationale §2.8

Remote LFAs are treated as an extension of LFAs: remote LFAs cannot be enabled if LFAs are not enabled. This design choice enforces the dependency relationship between the two FRR mechanisms rather than allowing independent activation.

yang, routing

design-rationale §2.6

The global 'mpls/ldp/igp-sync' container in the global configuration is intentionally left empty. Its sole purpose is to serve as an augmentation point for additional LDP IGP synchronization parameters (e.g., timers) by vendors, while per-interface activation uses the 'mpls/ldp/igp-sync' leaf.

yang, routing, mpls

design-rationale §2

The 'ietf-isis' YANG module augments the 'control-plane-protocol' list in the 'ietf-routing' module (RFC 8349) rather than defining a standalone module, aligning with the Network Management Datastore Architecture (NMDA) as described in RFC 8342. This design integrates IS-IS configuration within a unified routing management framework.

yang, netconf, routing

design-rationale §1

The module is designed per the Network Management Datastore Architecture (NMDA, RFC 8342), meaning configuration and operational state are unified in a single schema rather than split across separate '-state' modules as in the pre-NMDA pattern. This avoids the duplication problem of earlier YANG modules.

yang, netconf, routing

interoperability-note §5

The 'ietf-isis' module imports and depends on: ietf-routing (RFC 8349), ietf-interfaces (RFC 8343), ietf-key-chain (RFC 8177), ietf-routing-types and iana-routing-types (RFC 8294), ietf-inet-types and ietf-yang-types (RFC 6991), and ietf-bfd-types (RFC 9314). Implementations must support all these base modules.

yang, routing, netconf

normative-requirement §2.1 MUST

Additional YANG modules that extend IS-IS configuration MUST augment the 'ietf-isis' module rather than defining parallel structures. This ensures a consistent and extensible data model for vendor-specific IS-IS parameters.

yang, routing

normative-requirement §2.3 MUST

An implementation MUST prefer a level-specific parameter over a top-level parameter. For example, if priority is 100 for level-1 and 250 at the top level, the implementation must use 100 for level-1 and 250 for level-2.

yang, routing

normative-requirement §2.4 MUST

An interface-specific parameter MUST be preferred over an IS-IS global parameter. This mirrors the level-specific preference rule applied at the interface granularity.

yang, routing

normative-requirement §2.3 MUST

If an implementation supports per-level configuration for a parameter not modeled with per-level containers (such as overload bit), it MUST augment the current model by adding both level-1 and level-2 containers and MUST reuse existing configuration groupings.

yang, routing

normative-requirement §2.5 SHOULD

If global authentication is configured, an implementation SHOULD authenticate PSNPs, CSNPs, and LSPs with the supplied authentication parameters. Authentication of Hello PDUs can be activated on a per-interface basis.

yang, routing, security

normative-requirement §2.9 SHOULD

The lsp-log operational state container SHOULD be implemented as a wrapping buffer. The implementation MAY optionally log LSP refreshes.

yang, routing

normative-requirement §2.9 SHOULD

The spf-log operational state container SHOULD be implemented as a wrapping buffer, providing information about SPF events for an IS-IS instance.

yang, routing

protocol-element §2.5

Authentication is modeled as a choice within a 'authentication-type' node offering two cases: 'key-chain' (referencing RFC 8177 key-chain-ref, feature-guarded) and 'password' (a plaintext key plus an identityref for the crypto-algorithm). This applies globally and per-interface/per-level.

yang, routing, security

protocol-element §2.8

IP FRR support models LFA (RFC 5286) and remote LFA (RFC 7490) via a 'fast-reroute' container at both the global and interface levels. The global 'lfa' container is intentionally empty to permit augmentation; the 'fast-reroute' container may be augmented for MRTs (RFC 7812) and TI-LFA.

yang, routing

protocol-element §2.2

Multi-topology IS-IS (RFC 5120) is supported via a 'topologies' container (feature 'multi-topology') containing a list of topology instances keyed by name, which must reference an existing RIB defined in RFC 8349. Per-topology interface metrics can be configured.

yang, routing

protocol-element §2

The graceful-restart feature models restart configuration: 'enabled' (boolean), 'restart-interval' (timer-value-seconds16), and 'helper-enabled' (boolean), guarded by the 'graceful-restart' feature referencing RFC 8706.

yang, routing

protocol-element §3

The 'ietf-isis' module defines two RPC operations: 'clear-database' (resets a particular IS-IS LSDB and restarts synchronization with all neighbors) and 'clear-adjacency' (restarts a particular set of IS-IS adjacencies). Both take routing-protocol-instance-name and optional level and interface inputs.

yang, routing, netconf

protocol-element §2

The IETF SPF delay algorithm state is modeled under 'spf-control/ietf-spf-delay' with configurable timers (initial-delay default 50ms, short-delay default 200ms, long-delay default 5000ms, hold-down default 10000ms, time-to-learn default 500ms) and read-only current-state (quiet/short-wait/long-wait), referencing RFC 8405.

yang, routing

protocol-element §2.4

The interface container covers per-interface IS-IS configuration including: interface-type (broadcast/point-to-point), hello-padding, mesh-group-enabled, BFD integration (RFC 9314), LFA fast-reroute configuration, and operational adjacency state with event-counters and packet-counters per level.

yang, routing

protocol-element §2.9

The local-rib operational state under the IS-IS instance exposes the IS-IS internal routing table, with routes keyed by IP prefix and including next-hops (outgoing-interface and next-hop address), metric, level number, and route-tag.

yang, routing

protocol-element §4

The module defines 18 notifications covering the full IS-IS operational event space, including: database-overload, lsp-too-large, if-state-change, corrupted-lsp-detected, attempt-to-exceed-max-sequence, id-len-mismatch, max-area-addresses-mismatch, own-lsp-purge, sequence-number-skipped, authentication-type-failure, authentication-failure, version-skew, area-mismatch, rejected-adjacency, protocols-supported-mismatch, lsp-error-detected, adjacency-state-change, lsp-received, and lsp-generation.

yang, routing

protocol-element §2.3

The module defines a three-tier per-level configuration pattern: a top-level container (applies to both levels), a level-1 container, and a level-2 container. Parameters such as hello-interval, hello-multiplier, priority, and metric all follow this pattern.

yang, routing

registry §8

IANA registered the 'ietf-isis' YANG module in the 'IANA YANG Module Names' registry with: Name 'ietf-isis', Namespace 'urn:ietf:params:xml:ns:yang:ietf-isis', Prefix 'isis', and Reference 'RFC 9130'.

yang, registry

security-consideration §7

Authentication keys configured via the 'key' leaf (password case) are stored as cleartext strings in the datastore. Operators should use the key-chain approach (RFC 8177) where possible, as key-chain implementations may provide encrypted storage. Exposure of authentication keys would allow an attacker to inject forged IS-IS PDUs.

yang, routing, security, crypto

security-consideration §7

The 'ietf-isis' YANG module defines writable data nodes that, if manipulated by unauthorized users, could disrupt IS-IS routing across a domain. Implementations must apply access control (e.g., NETCONF access control model, RFC 8341) to protect sensitive nodes such as authentication keys, overload status, and protocol enable/disable.

yang, routing, security

state-machine §6

The adjacency state machine is defined by the 'adj-state-type' enumeration with four states: 'up' (adjacency established), 'down' (not established), 'init' (being established), and 'failed' (adjacency failed). Transitions are reported via the 'adjacency-state-change' notification.

yang, routing

state-machine §6

The IETF SPF back-off delay algorithm state machine has three states: QUIET (uses initial-delay), SHORT_WAIT (uses short-delay), and LONG_WAIT (uses long-delay). Current state is exposed as a read-only 'current-state' leaf under 'spf-control/ietf-spf-delay'.

yang, routing

wire-format §6

The 'lsp-id' typedef is encoded as a string matching '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9][0-9]-[0-9][0-9]', combining the system ID, pseudonode number, and fragment number (e.g., '0143.0438.AEF0.02-01').

yang, routing

wire-format §6

The 'system-id' typedef is encoded as a string matching the pattern '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}', representing a 6-octet IS-IS system identifier in dotted-hex notation (e.g., '0143.0438.AEF0').

yang, routing

wire-format §6

The 'wide-metric' typedef is a uint32 with range 0..16777215, representing the wide-style IS-IS metric (RFC 5305). The legacy 'std-metric' typedef is uint8 with range 0..63 for the old-style metric (RFC 1195).

yang, routing