ietf-isis@2021-08-31.yang   ietf-isis@2021-08-31-formatted.yang 
module ietf-isis { module ietf-isis {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-isis"; namespace "urn:ietf:params:xml:ns:yang:ietf-isis";
prefix isis; prefix isis;
import ietf-routing { import ietf-routing {
prefix "rt"; prefix rt;
reference reference
"RFC 8349: A YANG Data Model for Routing Management "RFC 8349: A YANG Data Model for Routing Management
(NMDA Version)"; (NMDA Version)";
} }
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
reference reference
"RFC 6991: Common YANG Data Types"; "RFC 6991: Common YANG Data Types";
} }
import ietf-yang-types { import ietf-yang-types {
prefix yang; prefix yang;
reference reference
"RFC 6991: Common YANG Data Types"; "RFC 6991: Common YANG Data Types";
} }
import ietf-interfaces { import ietf-interfaces {
prefix "if"; prefix if;
reference reference
"RFC 8343: A YANG Data Model for Interface Management"; "RFC 8343: A YANG Data Model for Interface Management";
} }
import ietf-key-chain { import ietf-key-chain {
prefix "key-chain"; prefix key-chain;
reference reference
"RFC 8177: YANG Data Model for Key Chains"; "RFC 8177: YANG Data Model for Key Chains";
} }
import ietf-routing-types { import ietf-routing-types {
prefix "rt-types"; prefix rt-types;
reference reference
"RFC 8294: Common YANG Data Types for the Routing Area"; "RFC 8294: Common YANG Data Types for the Routing Area";
} }
import iana-routing-types { import iana-routing-types {
prefix "iana-rt-types"; prefix iana-rt-types;
reference reference
"RFC 8294: Common YANG Data Types for the Routing Area"; "RFC 8294: Common YANG Data Types for the Routing Area";
} }
import ietf-bfd-types { import ietf-bfd-types {
prefix "bfd-types"; prefix bfd-types;
reference reference
"RFC 9127: YANG Data Model for Bidirectional Forwarding "RFC 9127: YANG Data Model for Bidirectional Forwarding
Detection (BFD)"; Detection (BFD)";
} }
organization organization
"IETF LSR Working Group"; "IETF LSR Working Group";
contact contact
"WG Web: <https://datatracker.ietf.org/wg/lsr/> "WG Web: <https://datatracker.ietf.org/wg/lsr/>
WG List: <mailto:lsr@ietf.org> WG List: <mailto:lsr@ietf.org>
Editor: Stephane Litkowski Editor: Stephane Litkowski
<mailto:slitkows.ietf@gmail.com> <mailto:slitkows.ietf@gmail.com>
Author: Derek Yeung Author: Derek Yeung
<mailto:derek@arrcus.com> <mailto:derek@arrcus.com>
skipping to change at line 211 skipping to change at line 209
identity frr-protection-available-other-type { identity frr-protection-available-other-type {
base frr-protection-available-type; base frr-protection-available-type;
description description
"The level of protection is unknown."; "The level of protection is unknown.";
} }
identity frr-alternate-type { identity frr-alternate-type {
description description
"Base identity for the IP Fast Reroute alternate type."; "Base identity for the IP Fast Reroute alternate type.";
} }
identity frr-alternate-type-equal-cost { identity frr-alternate-type-equal-cost {
base frr-alternate-type; base frr-alternate-type;
description description
"ECMP-based alternate."; "ECMP-based alternate.";
} }
identity frr-alternate-type-lfa { identity frr-alternate-type-lfa {
base frr-alternate-type; base frr-alternate-type;
description description
"LFA-based alternate."; "LFA-based alternate.";
} }
identity frr-alternate-type-remote-lfa { identity frr-alternate-type-remote-lfa {
base frr-alternate-type; base frr-alternate-type;
description description
"Remote-LFA-based alternate."; "Remote-LFA-based alternate.";
} }
identity frr-alternate-type-tunnel { identity frr-alternate-type-tunnel {
base frr-alternate-type; base frr-alternate-type;
description description
"Tunnel-based alternate (such as RSVP-TE or GRE)."; "Tunnel-based alternate (such as RSVP-TE or GRE).";
} }
identity frr-alternate-mrt { identity frr-alternate-mrt {
base frr-alternate-type; base frr-alternate-type;
description description
"MRT-based alternate."; "MRT-based alternate.";
} }
identity frr-alternate-tilfa { identity frr-alternate-tilfa {
base frr-alternate-type; base frr-alternate-type;
description description
"TI-LFA-based alternate."; "TI-LFA-based alternate.";
} }
identity frr-alternate-other { identity frr-alternate-other {
base frr-alternate-type; base frr-alternate-type;
description description
"Other type of alternate."; "Other type of alternate.";
} }
identity unidirectional-link-delay-subtlv-flag { identity unidirectional-link-delay-subtlv-flag {
description description
"Base identity for the flag corresponding to the "Base identity for the flag corresponding to the
Unidirectional Link Delay sub-TLV as defined in RFC 8570."; Unidirectional Link Delay sub-TLV as defined in RFC 8570.";
reference reference
"RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; "RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions";
} }
identity unidirectional-link-delay-subtlv-a-flag { identity unidirectional-link-delay-subtlv-a-flag {
base unidirectional-link-delay-subtlv-flag; base unidirectional-link-delay-subtlv-flag;
description description
"The 'A' bit field represents the Anomalous (A) bit. "The 'A' bit field represents the Anomalous (A) bit.
The A bit is set when the measured value of The A bit is set when the measured value of
this parameter exceeds its configured this parameter exceeds its configured
maximum threshold. maximum threshold.
The A bit is cleared when the measured value The A bit is cleared when the measured value
falls below its configured reuse threshold. falls below its configured reuse threshold.
If the A bit is clear, If the A bit is clear,
the value represents steady-state link performance."; the value represents steady-state link performance.";
} }
identity min-max-unidirectional-link-delay-subtlv-flag { identity min-max-unidirectional-link-delay-subtlv-flag {
description description
"Base identity for the flag corresponding to the Min/Max "Base identity for the flag corresponding to the Min/Max
Unidirectional Link Delay sub-TLV as defined in RFC 8570."; Unidirectional Link Delay sub-TLV as defined in RFC 8570.";
reference reference
"RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; "RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions";
} }
identity min-max-unidirectional-link-delay-subtlv-a-flag { identity min-max-unidirectional-link-delay-subtlv-a-flag {
base min-max-unidirectional-link-delay-subtlv-flag; base min-max-unidirectional-link-delay-subtlv-flag;
description description
"The 'A' bit field represents the Anomalous (A) bit. "The 'A' bit field represents the Anomalous (A) bit.
The A bit is set when the measured value of The A bit is set when the measured value of
this parameter exceeds its configured this parameter exceeds its configured
maximum threshold. maximum threshold.
The A bit is cleared when the measured value The A bit is cleared when the measured value
falls below its configured reuse threshold. falls below its configured reuse threshold.
If the A bit is clear, If the A bit is clear,
the value represents steady-state link performance."; the value represents steady-state link performance.";
} }
identity unidirectional-link-loss-subtlv-flag { identity unidirectional-link-loss-subtlv-flag {
description description
"Base identity for the flag corresponding to the "Base identity for the flag corresponding to the
Unidirectional Link Loss sub-TLV as defined in RFC 8570."; Unidirectional Link Loss sub-TLV as defined in RFC 8570.";
reference reference
"RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; "RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions";
} }
identity unidirectional-link-loss-subtlv-a-flag { identity unidirectional-link-loss-subtlv-a-flag {
base unidirectional-link-loss-subtlv-flag; base unidirectional-link-loss-subtlv-flag;
skipping to change at line 295 skipping to change at line 304
identity unidirectional-link-loss-subtlv-flag { identity unidirectional-link-loss-subtlv-flag {
description description
"Base identity for the flag corresponding to the "Base identity for the flag corresponding to the
Unidirectional Link Loss sub-TLV as defined in RFC 8570."; Unidirectional Link Loss sub-TLV as defined in RFC 8570.";
reference reference
"RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; "RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions";
} }
identity unidirectional-link-loss-subtlv-a-flag { identity unidirectional-link-loss-subtlv-a-flag {
base unidirectional-link-loss-subtlv-flag; base unidirectional-link-loss-subtlv-flag;
description description
"The 'A' bit field represents the Anomalous (A) bit. "The 'A' bit field represents the Anomalous (A) bit.
The A bit is set when the measured value of The A bit is set when the measured value of
this parameter exceeds its configured this parameter exceeds its configured
maximum threshold. maximum threshold.
The A bit is cleared when the measured value The A bit is cleared when the measured value
falls below its configured reuse threshold. falls below its configured reuse threshold.
If the A bit is clear, If the A bit is clear,
the value represents steady-state link performance."; the value represents steady-state link performance.";
} }
identity tlv229-flag { identity tlv229-flag {
description description
"Base identity for the flag corresponding to TLV 229 "Base identity for the flag corresponding to TLV 229
(M-Topologies) as defined in RFC 5120."; (M-Topologies) as defined in RFC 5120.";
reference reference
"RFC 5120: M-ISIS: Multi Topology (MT) Routing in "RFC 5120: M-ISIS: Multi Topology (MT) Routing in
Intermediate System to Intermediate Systems (IS-ISs)"; Intermediate System to Intermediate Systems (IS-ISs)";
} }
identity tlv229-overload-flag { identity tlv229-overload-flag {
base tlv229-flag; base tlv229-flag;
description description
"If set, the originator is overloaded "If set, the originator is overloaded
and must be avoided in the path calculation."; and must be avoided in the path calculation.";
} }
identity tlv229-attached-flag { identity tlv229-attached-flag {
base tlv229-flag; base tlv229-flag;
description description
"If set, the originator is attached to "If set, the originator is attached to
another area using the referred metric."; another area using the referred metric.";
} }
identity router-capability-flag { identity router-capability-flag {
description description
"Base identity for the flag corresponding to the "Base identity for the flag corresponding to the
Router Capability TLV as defined in RFC 7981."; Router Capability TLV as defined in RFC 7981.";
reference reference
"RFC 7981: IS-IS Extensions for Advertising Router "RFC 7981: IS-IS Extensions for Advertising Router
Information"; Information";
} }
identity router-capability-flooding-flag { identity router-capability-flooding-flag {
base router-capability-flag; base router-capability-flag;
description description
"Quote from RFC 7981: "Quote from RFC 7981:
'If the S bit is set(1), the IS-IS Router CAPABILITY TLV 'If the S bit is set(1), the IS-IS Router CAPABILITY TLV
MUST be flooded across the entire routing domain. If the MUST be flooded across the entire routing domain. If the
S bit is not set(0), the TLV MUST NOT be leaked between S bit is not set(0), the TLV MUST NOT be leaked between
levels. This bit MUST NOT be altered during the TLV levels. This bit MUST NOT be altered during the TLV
leaking.'."; leaking.'.";
} }
identity router-capability-down-flag { identity router-capability-down-flag {
base router-capability-flag; base router-capability-flag;
description description
"Quote from RFC 7981: "Quote from RFC 7981:
'When the IS-IS Router CAPABILITY TLV is leaked from 'When the IS-IS Router CAPABILITY TLV is leaked from
Level 2 (L2) to Level 1 (L1), the D bit MUST be set. Level 2 (L2) to Level 1 (L1), the D bit MUST be set.
Otherwise, this bit MUST be clear. IS-IS Router Otherwise, this bit MUST be clear. IS-IS Router
CAPABILITY TLVs with the D bit set MUST NOT be leaked from CAPABILITY TLVs with the D bit set MUST NOT be leaked from
Level 1 to Level 2. This is to prevent TLV looping.'."; Level 1 to Level 2. This is to prevent TLV looping.'.";
} }
identity lsp-flag { identity lsp-flag {
description description
"Base identity for LSP attributes as defined in ISO 10589."; "Base identity for LSP attributes as defined in ISO 10589.";
reference reference
"ISO 10589: Intermediate System to Intermediate System "ISO 10589: Intermediate System to Intermediate System
intra-domain routeing information exchange protocol intra-domain routeing information exchange protocol
for use in conjunction with the protocol for providing for use in conjunction with the protocol for providing
the connectionless-mode network service (ISO 8473)"; the connectionless-mode network service (ISO 8473)";
skipping to change at line 363 skipping to change at line 378
identity lsp-flag { identity lsp-flag {
description description
"Base identity for LSP attributes as defined in ISO 10589."; "Base identity for LSP attributes as defined in ISO 10589.";
reference reference
"ISO 10589: Intermediate System to Intermediate System "ISO 10589: Intermediate System to Intermediate System
intra-domain routeing information exchange protocol intra-domain routeing information exchange protocol
for use in conjunction with the protocol for providing for use in conjunction with the protocol for providing
the connectionless-mode network service (ISO 8473)"; the connectionless-mode network service (ISO 8473)";
} }
identity lsp-partitioned-flag { identity lsp-partitioned-flag {
base lsp-flag; base lsp-flag;
description description
"Originator partition repair supported."; "Originator partition repair supported.";
} }
identity lsp-attached-error-metric-flag { identity lsp-attached-error-metric-flag {
base lsp-flag; base lsp-flag;
description description
"Set when the originator is attached to "Set when the originator is attached to
another area using the error metric."; another area using the error metric.";
} }
identity lsp-attached-delay-metric-flag { identity lsp-attached-delay-metric-flag {
base lsp-flag; base lsp-flag;
description description
"Set when the originator is attached to "Set when the originator is attached to
another area using the delay metric."; another area using the delay metric.";
} }
identity lsp-attached-expense-metric-flag { identity lsp-attached-expense-metric-flag {
base lsp-flag; base lsp-flag;
description description
"Set when the originator is attached to "Set when the originator is attached to
another area using the expense metric."; another area using the expense metric.";
} }
identity lsp-attached-default-metric-flag { identity lsp-attached-default-metric-flag {
base lsp-flag; base lsp-flag;
description description
"Set when the originator is attached to "Set when the originator is attached to
another area using the default metric."; another area using the default metric.";
} }
identity lsp-overload-flag { identity lsp-overload-flag {
base lsp-flag; base lsp-flag;
description description
"If set, the originator is overloaded "If set, the originator is overloaded
and must be avoided in the path calculation."; and must be avoided in the path calculation.";
} }
identity lsp-l1system-flag { identity lsp-l1system-flag {
base lsp-flag; base lsp-flag;
description description
"Set when the Intermediate System has an L1 type."; "Set when the Intermediate System has an L1 type.";
} }
identity lsp-l2system-flag { identity lsp-l2system-flag {
base lsp-flag; base lsp-flag;
description description
"Set when the Intermediate System has an L2 type."; "Set when the Intermediate System has an L2 type.";
} }
/* Feature definitions */ /* Feature definitions */
feature osi-interface { feature osi-interface {
description description
"Support of OSI-specific parameters on an interface."; "Support of OSI-specific parameters on an interface.";
} }
feature poi-tlv { feature poi-tlv {
description description
"Support of the Purge Originator Identification (POI) TLV."; "Support of the Purge Originator Identification (POI) TLV.";
reference reference
"RFC 6232: Purge Originator Identification TLV for IS-IS"; "RFC 6232: Purge Originator Identification TLV for IS-IS";
} }
feature ietf-spf-delay { feature ietf-spf-delay {
description description
"Support for the IETF SPF delay algorithm."; "Support for the IETF SPF delay algorithm.";
reference reference
"RFC 8405: Shortest Path First (SPF) Back-Off Delay Algorithm "RFC 8405: Shortest Path First (SPF) Back-Off Delay Algorithm
for Link-State IGPs"; for Link-State IGPs";
} }
feature bfd { feature bfd {
description description
"Support for detection of IS-IS neighbor reachability "Support for detection of IS-IS neighbor reachability
via BFD."; via BFD.";
reference reference
"RFC 5880: Bidirectional Forwarding Detection (BFD) "RFC 5880: Bidirectional Forwarding Detection (BFD)
RFC 5881: Bidirectional Forwarding Detection (BFD) RFC 5881: Bidirectional Forwarding Detection (BFD)
for IPv4 and IPv6 (Single Hop)"; for IPv4 and IPv6 (Single Hop)";
} }
feature key-chain { feature key-chain {
description description
"Support of key chains for authentication."; "Support of key chains for authentication.";
reference reference
"RFC 8177: YANG Data Model for Key Chains"; "RFC 8177: YANG Data Model for Key Chains";
} }
feature node-flag { feature node-flag {
description description
"Support for node flags for IS-IS prefixes."; "Support for node flags for IS-IS prefixes.";
reference reference
"RFC 7794: IS-IS Prefix Attributes for Extended IPv4 and IPv6 "RFC 7794: IS-IS Prefix Attributes for Extended IPv4 and IPv6
Reachability"; Reachability";
} }
feature node-tag { feature node-tag {
description description
"Support for node administrative tags for IS-IS "Support for node administrative tags for IS-IS
routing instances."; routing instances.";
reference reference
"RFC 7917: Advertising Node Administrative Tags in IS-IS"; "RFC 7917: Advertising Node Administrative Tags in IS-IS";
} }
feature ldp-igp-sync { feature ldp-igp-sync {
description description
"Support for LDP IGP synchronization."; "Support for LDP IGP synchronization.";
reference reference
"RFC 5443: LDP IGP Synchronization"; "RFC 5443: LDP IGP Synchronization";
} }
feature fast-reroute { feature fast-reroute {
description description
"Support for IP Fast Reroute (IP FRR)."; "Support for IP Fast Reroute (IP FRR).";
} }
feature nsr { feature nsr {
description description
"Support for Non-Stop-Routing (NSR). The IS-IS NSR feature "Support for Non-Stop-Routing (NSR). The IS-IS NSR feature
allows a router with redundant control-plane capability allows a router with redundant control-plane capability
(e.g., dual Route Processor (RP) cards) to maintain its (e.g., dual Route Processor (RP) cards) to maintain its
state and adjacencies during planned and unplanned state and adjacencies during planned and unplanned
IS-IS instance restarts. It differs from graceful restart IS-IS instance restarts. It differs from graceful restart
or Non-Stop Forwarding (NSF) in that no protocol signaling or Non-Stop Forwarding (NSF) in that no protocol signaling
or assistance from adjacent IS-IS neighbors is required to or assistance from adjacent IS-IS neighbors is required to
recover control-plane state."; recover control-plane state.";
skipping to change at line 598 skipping to change at line 639
enum point-to-point { enum point-to-point {
description description
"Point-to-point interface type."; "Point-to-point interface type.";
} }
} }
description description
"This type defines the type of adjacency "This type defines the type of adjacency
to be established for the interface. to be established for the interface.
'interface-type' determines the type 'interface-type' determines the type
of Hello message that is used."; of Hello message that is used.";
} }
typedef level { typedef level {
type enumeration { type enumeration {
enum "level-1" { enum level-1 {
description description
"This enum indicates L1-only capability."; "This enum indicates L1-only capability.";
} }
enum "level-2" { enum level-2 {
description description
"This enum indicates L2-only capability."; "This enum indicates L2-only capability.";
} }
enum "level-all" { enum level-all {
description description
"This enum indicates capability for both levels."; "This enum indicates capability for both levels.";
} }
} }
default "level-all"; default "level-all";
description description
"This type defines the IS-IS level of an object."; "This type defines the IS-IS level of an object.";
} }
typedef adj-state-type { typedef adj-state-type {
type enumeration { type enumeration {
enum "up" { enum up {
description description
"This state indicates that the adjacency is established."; "This state indicates that the adjacency is established.";
} }
enum "down" { enum down {
description description
"This state indicates that the adjacency is "This state indicates that the adjacency is
NOT established."; NOT established.";
} }
enum "init" { enum init {
description description
"This state indicates that the adjacency is being "This state indicates that the adjacency is being
established."; established.";
} }
enum "failed" { enum failed {
description description
"This state indicates that the adjacency has failed."; "This state indicates that the adjacency has failed.";
} }
} }
description description
"This type defines the states of an adjacency."; "This type defines the states of an adjacency.";
} }
typedef if-state-type { typedef if-state-type {
type enumeration { type enumeration {
enum "up" { enum up {
description description
"'up' state."; "'up' state.";
} }
enum "down" { enum down {
description description
"'down' state."; "'down' state.";
} }
} }
description description
"This type defines the state of an interface."; "This type defines the state of an interface.";
} }
typedef level-number { typedef level-number {
type uint8 { type uint8 {
range "1 .. 2"; range "1 .. 2";
} }
description description
"This type defines the current IS-IS level."; "This type defines the current IS-IS level.";
} }
typedef lsp-id { typedef lsp-id {
type string { type string {
pattern pattern '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]'
'[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]' + '{4}\.[0-9][0-9]-[0-9][0-9]';
+'{4}\.[0-9][0-9]-[0-9][0-9]';
} }
description description
"This type defines the IS-IS LSP ID format using a "This type defines the IS-IS LSP ID format using a
pattern. An example LSP ID is '0143.0438.AEF0.02-01'."; pattern. An example LSP ID is '0143.0438.AEF0.02-01'.";
} }
typedef area-address { typedef area-address {
type string { type string {
pattern '[0-9A-Fa-f]{2}(\.[0-9A-Fa-f]{4}){0,6}'; pattern '[0-9A-Fa-f]{2}(\.[0-9A-Fa-f]{4}){0,6}';
} }
skipping to change at line 705 skipping to change at line 742
"This type defines the Subnetwork Point of Attachment (SNPA) "This type defines the Subnetwork Point of Attachment (SNPA)
format. The SNPA should be encoded according to the rules format. The SNPA should be encoded according to the rules
specified for the particular type of subnetwork being used. specified for the particular type of subnetwork being used.
As an example, for an Ethernet subnetwork, the SNPA is As an example, for an Ethernet subnetwork, the SNPA is
encoded as a Media Access Control (MAC) address, such as encoded as a Media Access Control (MAC) address, such as
'00aa.bbcc.ddee'."; '00aa.bbcc.ddee'.";
} }
typedef system-id { typedef system-id {
type string { type string {
pattern pattern '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}';
'[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}';
} }
description description
"This type defines the IS-IS system ID by using a pattern. "This type defines the IS-IS system ID by using a pattern.
An example system ID pattern is '0143.0438.AEF0'."; An example system ID pattern is '0143.0438.AEF0'.";
} }
typedef extended-system-id { typedef extended-system-id {
type string { type string {
pattern pattern '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.'
'[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.' + '[0-9][0-9]';
+'[0-9][0-9]';
} }
description description
"This type defines the IS-IS system ID using a pattern. "This type defines the IS-IS system ID using a pattern.
'extended-system-id' contains the pseudonode number 'extended-system-id' contains the pseudonode number
in addition to the system ID. in addition to the system ID.
An example system ID pattern is '0143.0438.AEF0.00'."; An example system ID pattern is '0143.0438.AEF0.00'.";
} }
typedef wide-metric { typedef wide-metric {
type uint32 { type uint32 {
skipping to change at line 743 skipping to change at line 779
typedef std-metric { typedef std-metric {
type uint8 { type uint8 {
range "0 .. 63"; range "0 .. 63";
} }
description description
"This type defines the old-style format of the IS-IS metric."; "This type defines the old-style format of the IS-IS metric.";
} }
typedef mesh-group-state { typedef mesh-group-state {
type enumeration { type enumeration {
enum "mesh-inactive" { enum mesh-inactive {
description description
"The interface is not part of a mesh group."; "The interface is not part of a mesh group.";
} }
enum "mesh-set" { enum mesh-set {
description description
"The interface is part of a mesh group."; "The interface is part of a mesh group.";
} }
enum "mesh-blocked" { enum mesh-blocked {
description description
"LSPs must not be flooded over this interface."; "LSPs must not be flooded over this interface.";
} }
} }
description description
"This type describes the mesh group state of an interface."; "This type describes the mesh group state of an interface.";
} }
/* Grouping for notifications */ /* Grouping for notifications */
skipping to change at line 800 skipping to change at line 836
description description
"IS-IS level of the interface."; "IS-IS level of the interface.";
} }
leaf extended-circuit-id { leaf extended-circuit-id {
type extended-circuit-id; type extended-circuit-id;
description description
"Extended circuit ID of the interface."; "Extended circuit ID of the interface.";
} }
} }
/* Groupings for IP Fast Reroute */ /* Groupings for IP Fast Reroute */
grouping instance-fast-reroute-config { grouping instance-fast-reroute-config {
description description
"This group defines the global configuration of IP "This group defines the global configuration of IP
Fast Reroute (FRR)."; Fast Reroute (FRR).";
container fast-reroute { container fast-reroute {
if-feature fast-reroute; if-feature "fast-reroute";
description description
"This container may be augmented with global "This container may be augmented with global
parameters for IP FRR."; parameters for IP FRR.";
container lfa { container lfa {
if-feature lfa; if-feature "lfa";
description description
"This container may be augmented with "This container may be augmented with
global parameters for Loop-Free Alternates (LFAs). global parameters for Loop-Free Alternates (LFAs).
The creation of this container has no effect on The creation of this container has no effect on
LFA activation."; LFA activation.";
} }
} }
} }
grouping interface-lfa-config { grouping interface-lfa-config {
leaf candidate-enable { leaf candidate-enable {
type boolean; type boolean;
default "true"; default "true";
description description
"Enables the interface to be used as a backup."; "Enables the interface to be used as a backup.";
} }
leaf enable { leaf enable {
type boolean; type boolean;
default false; default "false";
description description
"Activates the LFA. Per-prefix LFA computation is assumed."; "Activates the LFA. Per-prefix LFA computation is assumed.";
} }
container remote-lfa { container remote-lfa {
if-feature remote-lfa; if-feature "remote-lfa";
leaf enable { leaf enable {
type boolean; type boolean;
default false; default "false";
description description
"Activates the remote LFA (R-LFA)."; "Activates the remote LFA (R-LFA).";
} }
description description
"Remote LFA configuration."; "Remote LFA configuration.";
} }
description description
"Grouping for LFA interface configuration."; "Grouping for LFA interface configuration.";
} }
grouping interface-fast-reroute-config { grouping interface-fast-reroute-config {
description description
"This group defines the interface configuration of IP FRR."; "This group defines the interface configuration of IP FRR.";
container fast-reroute { container fast-reroute {
if-feature fast-reroute; if-feature "fast-reroute";
container lfa { container lfa {
if-feature lfa; if-feature "lfa";
uses interface-lfa-config; uses interface-lfa-config;
container level-1 { container level-1 {
uses interface-lfa-config; uses interface-lfa-config;
description description
"LFA level-1 configuration."; "LFA level-1 configuration.";
} }
container level-2 { container level-2 {
uses interface-lfa-config; uses interface-lfa-config;
description description
"LFA level-2 configuration."; "LFA level-2 configuration.";
skipping to change at line 898 skipping to change at line 935
type inet:ip-prefix; type inet:ip-prefix;
description description
"Protected prefix."; "Protected prefix.";
} }
leaf alternate { leaf alternate {
type inet:ip-address; type inet:ip-address;
description description
"Alternate next hop for the prefix."; "Alternate next hop for the prefix.";
} }
leaf alternate-type { leaf alternate-type {
type identityref { type identityref {
base frr-alternate-type; base frr-alternate-type;
} }
description description
"Type of alternate."; "Type of alternate.";
} }
leaf best { leaf best {
type boolean; type boolean;
description description
"Set when the alternate is the preferred alternate; "Set when the alternate is the preferred alternate;
clear otherwise."; clear otherwise.";
} }
leaf non-best-reason { leaf non-best-reason {
skipping to change at line 983 skipping to change at line 1018
type inet:ip-prefix; type inet:ip-prefix;
description description
"Unprotected prefix."; "Unprotected prefix.";
} }
description description
"Per-address-family unprotected prefix statistics."; "Per-address-family unprotected prefix statistics.";
} }
description description
"List of prefixes that are not protected."; "List of prefixes that are not protected.";
} }
list protection-statistics { list protection-statistics {
key frr-protection-method; key "frr-protection-method";
config false; config false;
leaf frr-protection-method { leaf frr-protection-method {
type identityref { type identityref {
base frr-protection-method; base frr-protection-method;
} }
description description
"Protection method used."; "Protection method used.";
} }
list address-family-stats { list address-family-stats {
key address-family; key "address-family";
leaf address-family { leaf address-family {
type iana-rt-types:address-family; type iana-rt-types:address-family;
description description
"Address family."; "Address family.";
} }
leaf total-routes { leaf total-routes {
type yang:gauge32; type yang:gauge32;
description description
"Total prefixes."; "Total prefixes.";
} }
skipping to change at line 1069 skipping to change at line 1101
list next-hop { list next-hop {
key "next-hop"; key "next-hop";
description description
"List of next hops for the route."; "List of next hops for the route.";
leaf outgoing-interface { leaf outgoing-interface {
type if:interface-ref; type if:interface-ref;
description description
"Name of the outgoing interface."; "Name of the outgoing interface.";
} }
leaf next-hop { leaf next-hop {
type inet:ip-address; type inet:ip-address;
description description
"Next-hop address."; "Next-hop address.";
} }
} }
} }
leaf metric { leaf metric {
type uint32; type uint32;
description description
"Metric for this route."; "Metric for this route.";
} }
leaf level { leaf level {
type level-number; type level-number;
skipping to change at line 1195 skipping to change at line 1227
type level; type level;
description description
"Defines the level(s) activated for the adjacency. "Defines the level(s) activated for the adjacency.
On a point-to-point link, this might be level 1 and On a point-to-point link, this might be level 1 and
level 2, but on a LAN, the usage will be level 1 level 2, but on a LAN, the usage will be level 1
between neighbors at level 1 or level 2 between between neighbors at level 1 or level 2 between
neighbors at level 2."; neighbors at level 2.";
} }
leaf hold-timer { leaf hold-timer {
type rt-types:timer-value-seconds16; type rt-types:timer-value-seconds16;
units seconds; units "seconds";
description description
"The holding time (in seconds) for this adjacency. "The holding time (in seconds) for this adjacency.
This value is based on received Hello PDUs and the This value is based on received Hello PDUs and the
elapsed time since receipt."; elapsed time since receipt.";
} }
leaf neighbor-priority { leaf neighbor-priority {
type uint8 { type uint8 {
range "0 .. 127"; range "0 .. 127";
} }
description description
skipping to change at line 1238 skipping to change at line 1269
description description
"This container lists the adjacencies of "This container lists the adjacencies of
the local node."; the local node.";
} }
description description
"Adjacency state."; "Adjacency state.";
} }
grouping admin-control { grouping admin-control {
leaf enable { leaf enable {
if-feature admin-control; if-feature "admin-control";
type boolean; type boolean;
default "true"; default "true";
description description
"Enables or disables the protocol."; "Enables or disables the protocol.";
} }
description description
"Grouping for administrative control."; "Grouping for administrative control.";
} }
grouping ietf-spf-delay { grouping ietf-spf-delay {
leaf initial-delay { leaf initial-delay {
type rt-types:timer-value-milliseconds; type rt-types:timer-value-milliseconds;
units msec; units "msec";
description description
"Delay used while in the QUIET state (milliseconds)."; "Delay used while in the QUIET state (milliseconds).";
} }
leaf short-delay { leaf short-delay {
type rt-types:timer-value-milliseconds; type rt-types:timer-value-milliseconds;
units msec; units "msec";
description description
"Delay used while in the SHORT_WAIT state (milliseconds)."; "Delay used while in the SHORT_WAIT state (milliseconds).";
} }
leaf long-delay { leaf long-delay {
type rt-types:timer-value-milliseconds; type rt-types:timer-value-milliseconds;
units msec; units "msec";
description description
"Delay used while in the LONG_WAIT state (milliseconds)."; "Delay used while in the LONG_WAIT state (milliseconds).";
} }
leaf hold-down { leaf hold-down {
type rt-types:timer-value-milliseconds; type rt-types:timer-value-milliseconds;
units msec; units "msec";
description description
"This timer value defines the period without any changes "This timer value defines the period without any changes
for the IGP to be considered stable (in milliseconds)."; for the IGP to be considered stable (in milliseconds).";
} }
leaf time-to-learn { leaf time-to-learn {
type rt-types:timer-value-milliseconds; type rt-types:timer-value-milliseconds;
units msec; units "msec";
description description
"Duration used to learn all the IGP events "Duration used to learn all the IGP events
related to a single component failure (milliseconds)."; related to a single component failure (milliseconds).";
} }
leaf current-state { leaf current-state {
type enumeration { type enumeration {
enum "quiet" { enum quiet {
description description
"QUIET state."; "QUIET state.";
} }
enum "short-wait" { enum short-wait {
description description
"SHORT_WAIT state."; "SHORT_WAIT state.";
} }
enum "long-wait" { enum long-wait {
description description
"LONG_WAIT state."; "LONG_WAIT state.";
} }
} }
config false; config false;
description description
"Current SPF Back-Off algorithm state."; "Current SPF Back-Off algorithm state.";
} }
leaf remaining-time-to-learn { leaf remaining-time-to-learn {
type rt-types:timer-value-milliseconds; type rt-types:timer-value-milliseconds;
skipping to change at line 1341 skipping to change at line 1371
"Time of the last SPF computation."; "Time of the last SPF computation.";
} }
description description
"Grouping for IETF SPF delay configuration and state."; "Grouping for IETF SPF delay configuration and state.";
} }
grouping node-tag-config { grouping node-tag-config {
description description
"IS-IS node tag configuration state."; "IS-IS node tag configuration state.";
container node-tags { container node-tags {
if-feature node-tag; if-feature "node-tag";
list node-tag { list node-tag {
key tag; key "tag";
leaf tag { leaf tag {
type uint32; type uint32;
description description
"Node tag value."; "Node tag value.";
} }
description description
"List of tags."; "List of tags.";
} }
description description
"Container for node administrative tags."; "Container for node administrative tags.";
} }
} }
grouping authentication-global-cfg { grouping authentication-global-cfg {
choice authentication-type { choice authentication-type {
case key-chain { case key-chain {
if-feature key-chain; if-feature "key-chain";
leaf key-chain { leaf key-chain {
type key-chain:key-chain-ref; type key-chain:key-chain-ref;
description description
"Reference to a key chain."; "Reference to a key chain.";
} }
} }
case password { case password {
leaf key { leaf key {
type string; type string;
description description
skipping to change at line 1447 skipping to change at line 1477
"Advertises the old metric style only (RFC 1195)."; "Advertises the old metric style only (RFC 1195).";
reference reference
"RFC 1195: Use of OSI IS-IS for routing in TCP/IP and "RFC 1195: Use of OSI IS-IS for routing in TCP/IP and
dual environments"; dual environments";
} }
enum both { enum both {
description description
"Advertises both metric styles."; "Advertises both metric styles.";
} }
} }
default wide-only; default "wide-only";
description description
"Type of metric to be generated: "Type of metric to be generated:
- 'wide-only' means that only a new metric style - 'wide-only' means that only a new metric style
is generated. is generated.
- 'old-only' means that only an old metric style - 'old-only' means that only an old metric style
is generated. is generated.
- 'both' means that both are advertised. - 'both' means that both are advertised.
This leaf only affects IPv4 metrics."; This leaf only affects IPv4 metrics.";
skipping to change at line 1486 skipping to change at line 1517
description description
"Value of the metric."; "Value of the metric.";
} }
description description
"Global default metric configuration grouping."; "Global default metric configuration grouping.";
} }
grouping overload-global-cfg { grouping overload-global-cfg {
leaf status { leaf status {
type boolean; type boolean;
default false; default "false";
description description
"This leaf specifies the overload status."; "This leaf specifies the overload status.";
} }
description description
"Grouping for overload bit configuration."; "Grouping for overload bit configuration.";
} }
grouping overload-max-metric-global-cfg { grouping overload-max-metric-global-cfg {
leaf timeout { leaf timeout {
type rt-types:timer-value-seconds16; type rt-types:timer-value-seconds16;
skipping to change at line 1536 skipping to change at line 1567
description description
"Choice for implementation of route preference."; "Choice for implementation of route preference.";
} }
description description
"Global route preference grouping."; "Global route preference grouping.";
} }
grouping hello-authentication-cfg { grouping hello-authentication-cfg {
choice authentication-type { choice authentication-type {
case key-chain { case key-chain {
if-feature key-chain; if-feature "key-chain";
leaf key-chain { leaf key-chain {
type key-chain:key-chain-ref; type key-chain:key-chain-ref;
description description
"Reference to a key chain."; "Reference to a key chain.";
} }
} }
case password { case password {
leaf key { leaf key {
type string; type string;
description description
skipping to change at line 1573 skipping to change at line 1604
} }
grouping hello-interval-cfg { grouping hello-interval-cfg {
leaf value { leaf value {
type rt-types:timer-value-seconds16; type rt-types:timer-value-seconds16;
units "seconds"; units "seconds";
description description
"Interval (in seconds) between successive Hello "Interval (in seconds) between successive Hello
messages."; messages.";
} }
description description
"Interval between Hello messages."; "Interval between Hello messages.";
} }
grouping hello-interval-cfg-with-default { grouping hello-interval-cfg-with-default {
leaf value { leaf value {
type rt-types:timer-value-seconds16; type rt-types:timer-value-seconds16;
units "seconds"; units "seconds";
default 10; default "10";
description description
"Interval (in seconds) between successive Hello "Interval (in seconds) between successive Hello
messages."; messages.";
} }
description description
"Interval between Hello messages."; "Interval between Hello messages.";
} }
grouping hello-multiplier-cfg { grouping hello-multiplier-cfg {
leaf value { leaf value {
type uint16; type uint16;
description description
"Number of missed Hello messages prior to "Number of missed Hello messages prior to
declaring the adjacency down."; declaring the adjacency down.";
skipping to change at line 1602 skipping to change at line 1632
leaf value { leaf value {
type uint16; type uint16;
description description
"Number of missed Hello messages prior to "Number of missed Hello messages prior to
declaring the adjacency down."; declaring the adjacency down.";
} }
description description
"Grouping for the number of missed Hello messages prior to "Grouping for the number of missed Hello messages prior to
declaring the adjacency down."; declaring the adjacency down.";
} }
grouping hello-multiplier-cfg-with-default { grouping hello-multiplier-cfg-with-default {
leaf value { leaf value {
type uint16; type uint16;
default 3; default "3";
description description
"Number of missed Hello messages prior to "Number of missed Hello messages prior to
declaring the adjacency down."; declaring the adjacency down.";
} }
description description
"Grouping for the number of missed Hello messages prior to "Grouping for the number of missed Hello messages prior to
declaring the adjacency down."; declaring the adjacency down.";
} }
grouping priority-cfg { grouping priority-cfg {
skipping to change at line 1623 skipping to change at line 1654
} }
grouping priority-cfg { grouping priority-cfg {
leaf value { leaf value {
type uint8 { type uint8 {
range "0 .. 127"; range "0 .. 127";
} }
description description
"Priority of the interface for DIS election."; "Priority of the interface for DIS election.";
} }
description description
"Interface DIS election priority grouping."; "Interface DIS election priority grouping.";
} }
grouping priority-cfg-with-default { grouping priority-cfg-with-default {
leaf value { leaf value {
type uint8 { type uint8 {
range "0 .. 127"; range "0 .. 127";
} }
default 64; default "64";
description description
"Priority of the interface for DIS election."; "Priority of the interface for DIS election.";
} }
description description
"Interface DIS election priority grouping."; "Interface DIS election priority grouping.";
} }
grouping metric-cfg { grouping metric-cfg {
leaf value { leaf value {
type wide-metric; type wide-metric;
description description
"Metric value."; "Metric value.";
} }
skipping to change at line 1694 skipping to change at line 1724
} }
container level-2 { container level-2 {
uses default-metric-global-cfg; uses default-metric-global-cfg;
description description
"Configuration specific to level 2."; "Configuration specific to level 2.";
} }
description description
"Default metric global configuration."; "Default metric global configuration.";
} }
container auto-cost { container auto-cost {
if-feature auto-cost; if-feature "auto-cost";
description description
"Interface auto-cost configuration state."; "Interface auto-cost configuration state.";
leaf enable { leaf enable {
type boolean; type boolean;
description description
"Enables or disables interface auto-cost."; "Enables or disables interface auto-cost.";
} }
leaf reference-bandwidth { leaf reference-bandwidth {
when "../enable = 'true'" { when "../enable = 'true'" {
description description
"Only when auto-cost is enabled."; "Only when auto-cost is enabled.";
} }
type uint32 { type uint32 {
range "1..4294967"; range "1..4294967";
} }
units Mbits; units "Mbits";
description description
"Configures the reference bandwidth used to automatically "Configures the reference bandwidth used to automatically
determine the interface cost (Mbits). The cost is the determine the interface cost (Mbits). The cost is the
reference bandwidth divided by the interface speed, reference bandwidth divided by the interface speed,
with 1 being the minimum cost."; with 1 being the minimum cost.";
} }
} }
description description
"Grouping for global metric parameters."; "Grouping for global metric parameters.";
} }
grouping high-availability-parameters { grouping high-availability-parameters {
container graceful-restart { container graceful-restart {
if-feature graceful-restart; if-feature "graceful-restart";
leaf enable { leaf enable {
type boolean; type boolean;
default false; default "false";
description description
"Enables graceful restart."; "Enables graceful restart.";
} }
leaf restart-interval { leaf restart-interval {
type rt-types:timer-value-seconds16; type rt-types:timer-value-seconds16;
units "seconds"; units "seconds";
description description
"Interval (in seconds) to attempt graceful restart prior "Interval (in seconds) to attempt graceful restart prior
to failure."; to failure.";
} }
skipping to change at line 1750 skipping to change at line 1779
type boolean; type boolean;
default "true"; default "true";
description description
"Enables a local IS-IS router as a graceful restart "Enables a local IS-IS router as a graceful restart
helper."; helper.";
} }
description description
"Configuration of graceful restart."; "Configuration of graceful restart.";
} }
container nsr { container nsr {
if-feature nsr; if-feature "nsr";
description description
"Non-Stop Routing (NSR) configuration."; "Non-Stop Routing (NSR) configuration.";
leaf enable { leaf enable {
type boolean; type boolean;
default false; default "false";
description description
"Enables or disables NSR."; "Enables or disables NSR.";
} }
} }
description description
"Grouping for high-availability parameters."; "Grouping for high-availability parameters.";
} }
grouping authentication-parameters { grouping authentication-parameters {
container authentication { container authentication {
skipping to change at line 1785 skipping to change at line 1813
description description
"Configuration specific to level 2."; "Configuration specific to level 2.";
} }
description description
"Authentication global configuration for "Authentication global configuration for
both LSPs and Sequence Number PDUs (SNPs)."; both LSPs and Sequence Number PDUs (SNPs).";
} }
description description
"Grouping for authentication parameters."; "Grouping for authentication parameters.";
} }
grouping address-family-parameters { grouping address-family-parameters {
container address-families { container address-families {
if-feature nlpid-control; if-feature "nlpid-control";
list address-family-list { list address-family-list {
key address-family; key "address-family";
leaf address-family { leaf address-family {
type iana-rt-types:address-family; type iana-rt-types:address-family;
description description
"Address family."; "Address family.";
} }
leaf enable { leaf enable {
type boolean; type boolean;
description description
"Activates the address family."; "Activates the address family.";
} }
skipping to change at line 1814 skipping to change at line 1843
description description
"Address family configuration."; "Address family configuration.";
} }
description description
"Grouping for address family parameters."; "Grouping for address family parameters.";
} }
grouping mpls-parameters { grouping mpls-parameters {
container mpls { container mpls {
container te-rid { container te-rid {
if-feature te-rid; if-feature "te-rid";
description description
"Stable IS-IS router IP address used for Traffic "Stable IS-IS router IP address used for Traffic
Engineering."; Engineering.";
leaf ipv4-router-id { leaf ipv4-router-id {
type inet:ipv4-address; type inet:ipv4-address;
description description
"Router ID value that would be used in TLV 134."; "Router ID value that would be used in TLV 134.";
} }
leaf ipv6-router-id { leaf ipv6-router-id {
type inet:ipv6-address; type inet:ipv6-address;
description description
"Router ID value that would be used in TLV 140."; "Router ID value that would be used in TLV 140.";
} }
} }
container ldp { container ldp {
container igp-sync { container igp-sync {
if-feature ldp-igp-sync; if-feature "ldp-igp-sync";
description description
"This container may be augmented with global "This container may be augmented with global
parameters for LDP IGP synchronization."; parameters for LDP IGP synchronization.";
} }
description description
"LDP configuration."; "LDP configuration.";
} }
description description
"MPLS configuration."; "MPLS configuration.";
} }
description description
"Grouping for MPLS global parameters."; "Grouping for MPLS global parameters.";
} }
grouping lsp-parameters { grouping lsp-parameters {
leaf lsp-mtu { leaf lsp-mtu {
type uint16; type uint16;
units "bytes"; units "bytes";
default 1492; default "1492";
description description
"Maximum size of an LSP PDU in bytes."; "Maximum size of an LSP PDU in bytes.";
} }
leaf lsp-lifetime { leaf lsp-lifetime {
type uint16 { type uint16 {
range "1..65535"; range "1..65535";
} }
units "seconds"; units "seconds";
description description
"Lifetime of the router's LSPs in seconds."; "Lifetime of the router's LSPs in seconds.";
} }
leaf lsp-refresh { leaf lsp-refresh {
if-feature lsp-refresh; if-feature "lsp-refresh";
type rt-types:timer-value-seconds16; type rt-types:timer-value-seconds16;
units "seconds"; units "seconds";
description description
"Refresh interval of the router's LSPs in seconds."; "Refresh interval of the router's LSPs in seconds.";
} }
leaf poi-tlv { leaf poi-tlv {
if-feature poi-tlv; if-feature "poi-tlv";
type boolean; type boolean;
default false; default "false";
description description
"Enables the advertisement of the IS-IS Purge Originator "Enables the advertisement of the IS-IS Purge Originator
Identification TLV."; Identification TLV.";
} }
description description
"Grouping for LSP global parameters."; "Grouping for LSP global parameters.";
} }
grouping spf-parameters { grouping spf-parameters {
container spf-control { container spf-control {
leaf paths { leaf paths {
if-feature max-ecmp; if-feature "max-ecmp";
type uint16 { type uint16 {
range "1..65535"; range "1..65535";
}
description
"Maximum number of Equal-Cost Multi-Path (ECMP) paths.";
}
container ietf-spf-delay {
if-feature ietf-spf-delay;
uses ietf-spf-delay;
description
"IETF SPF delay algorithm configuration.";
} }
description description
"SPF calculation control."; "Maximum number of Equal-Cost Multi-Path (ECMP) paths.";
}
container ietf-spf-delay {
if-feature "ietf-spf-delay";
uses ietf-spf-delay;
description
"IETF SPF delay algorithm configuration.";
}
description
"SPF calculation control.";
} }
description description
"Grouping for SPF global parameters."; "Grouping for SPF global parameters.";
} }
grouping instance-config { grouping instance-config {
description description
"IS-IS global configuration grouping."; "IS-IS global configuration grouping.";
uses admin-control; uses admin-control;
leaf level-type { leaf level-type {
type level; type level;
default "level-all"; default "level-all";
description description
"Level of an IS-IS node. Can be 'level-1', 'level-2', or "Level of an IS-IS node. Can be 'level-1', 'level-2', or
'level-all'."; 'level-all'.";
} }
leaf system-id { leaf system-id {
type system-id; type system-id;
description description
"System ID of the node."; "System ID of the node.";
} }
leaf maximum-area-addresses { leaf maximum-area-addresses {
if-feature maximum-area-addresses; if-feature "maximum-area-addresses";
type uint8; type uint8;
default 3; default "3";
description description
"Maximum areas supported."; "Maximum areas supported.";
} }
leaf-list area-address { leaf-list area-address {
type area-address; type area-address;
description description
"List of areas supported by the protocol instance."; "List of areas supported by the protocol instance.";
} }
uses lsp-parameters; uses lsp-parameters;
uses high-availability-parameters; uses high-availability-parameters;
uses node-tag-config; uses node-tag-config;
uses metric-parameters; uses metric-parameters;
uses authentication-parameters; uses authentication-parameters;
uses address-family-parameters; uses address-family-parameters;
uses mpls-parameters; uses mpls-parameters;
uses spf-parameters; uses spf-parameters;
uses instance-fast-reroute-config; uses instance-fast-reroute-config;
container preference { container preference {
uses route-preference-global-cfg; uses route-preference-global-cfg;
description description
"Router preference configuration for IS-IS "Router preference configuration for IS-IS
protocol instance route installation."; protocol instance route installation.";
} }
container overload { container overload {
uses overload-global-cfg; uses overload-global-cfg;
description description
"Router protocol instance overload state configuration."; "Router protocol instance overload state configuration.";
} }
container overload-max-metric { container overload-max-metric {
if-feature overload-max-metric; if-feature "overload-max-metric";
uses overload-max-metric-global-cfg; uses overload-max-metric-global-cfg;
description description
"Router protocol instance overload maximum "Router protocol instance overload maximum
metric advertisement configuration."; metric advertisement configuration.";
} }
} }
grouping instance-state { grouping instance-state {
description description
"IS-IS instance operational state."; "IS-IS instance operational state.";
skipping to change at line 2015 skipping to change at line 2037
} }
description description
"Default metric per-topology configuration."; "Default metric per-topology configuration.";
} }
uses node-tag-config; uses node-tag-config;
} }
grouping interface-config { grouping interface-config {
description description
"Interface configuration grouping."; "Interface configuration grouping.";
uses admin-control; uses admin-control;
leaf level-type { leaf level-type {
type level; type level;
default "level-all"; default "level-all";
description description
"IS-IS level of the interface."; "IS-IS level of the interface.";
} }
leaf lsp-pacing-interval { leaf lsp-pacing-interval {
type rt-types:timer-value-milliseconds; type rt-types:timer-value-milliseconds;
units "milliseconds"; units "milliseconds";
default 33; default "33";
description description
"Interval (in milliseconds) between LSP transmissions."; "Interval (in milliseconds) between LSP transmissions.";
} }
leaf lsp-retransmit-interval { leaf lsp-retransmit-interval {
type rt-types:timer-value-seconds16; type rt-types:timer-value-seconds16;
units "seconds"; units "seconds";
description description
"Interval (in seconds) between LSP retransmissions."; "Interval (in seconds) between LSP retransmissions.";
} }
leaf passive { leaf passive {
type boolean; type boolean;
default "false"; default "false";
description description
"Indicates whether the interface is in passive mode (IS-IS "Indicates whether the interface is in passive mode (IS-IS
is not running, but the network is advertised)."; is not running, but the network is advertised).";
} }
leaf csnp-interval { leaf csnp-interval {
type rt-types:timer-value-seconds16; type rt-types:timer-value-seconds16;
units "seconds"; units "seconds";
default 10; default "10";
description description
"Interval (in seconds) between Complete Sequence Number "Interval (in seconds) between Complete Sequence Number
Packet (CSNP) messages."; Packet (CSNP) messages.";
} }
container hello-padding { container hello-padding {
leaf enable { leaf enable {
type boolean; type boolean;
default "true"; default "true";
description description
"IS-IS Hello padding activation. Enabled by default."; "IS-IS Hello padding activation. Enabled by default.";
skipping to change at line 2083 skipping to change at line 2103
description description
"IS-IS interface mesh group ID."; "IS-IS interface mesh group ID.";
} }
leaf interface-type { leaf interface-type {
type interface-type; type interface-type;
default "broadcast"; default "broadcast";
description description
"Type of adjacency to be established for the interface. "Type of adjacency to be established for the interface.
This dictates the type of Hello messages that are used."; This dictates the type of Hello messages that are used.";
} }
leaf-list tag { leaf-list tag {
if-feature prefix-tag; if-feature "prefix-tag";
type uint32; type uint32;
description description
"List of tags associated with the interface."; "List of tags associated with the interface.";
} }
leaf-list tag64 { leaf-list tag64 {
if-feature prefix-tag64; if-feature "prefix-tag64";
type uint64; type uint64;
description description
"List of 64-bit tags associated with the interface."; "List of 64-bit tags associated with the interface.";
} }
leaf node-flag { leaf node-flag {
if-feature node-flag; if-feature "node-flag";
type boolean; type boolean;
default false; default "false";
description description
"Sets the prefix as a node representative prefix."; "Sets the prefix as a node representative prefix.";
} }
container hello-authentication { container hello-authentication {
uses hello-authentication-cfg; uses hello-authentication-cfg;
container level-1 { container level-1 {
uses hello-authentication-cfg; uses hello-authentication-cfg;
description description
"Configuration specific to level 1."; "Configuration specific to level 1.";
} }
skipping to change at line 2150 skipping to change at line 2169
container level-2 { container level-2 {
uses hello-multiplier-cfg; uses hello-multiplier-cfg;
description description
"Configuration specific to level 2."; "Configuration specific to level 2.";
} }
description description
"Hello multiplier configuration."; "Hello multiplier configuration.";
} }
container priority { container priority {
must '../interface-type = "broadcast"' { must '../interface-type = "broadcast"' {
error-message error-message "Priority only applies to broadcast interfaces.";
"Priority only applies to broadcast interfaces.";
description description
"Checks for a broadcast interface."; "Checks for a broadcast interface.";
} }
uses priority-cfg-with-default; uses priority-cfg-with-default;
container level-1 { container level-1 {
uses priority-cfg; uses priority-cfg;
description description
"Configuration specific to level 1."; "Configuration specific to level 1.";
} }
container level-2 { container level-2 {
skipping to change at line 2185 skipping to change at line 2203
} }
container level-2 { container level-2 {
uses metric-cfg; uses metric-cfg;
description description
"Configuration specific to level 2."; "Configuration specific to level 2.";
} }
description description
"Metric configuration."; "Metric configuration.";
} }
container bfd { container bfd {
if-feature bfd; if-feature "bfd";
description description
"BFD client configuration."; "BFD client configuration.";
uses bfd-types:client-cfg-parms; uses bfd-types:client-cfg-parms;
reference reference
"RFC 9127: YANG Data Model for Bidirectional Forwarding "RFC 9127: YANG Data Model for Bidirectional Forwarding
Detection (BFD)"; Detection (BFD)";
} }
container address-families { container address-families {
if-feature nlpid-control; if-feature "nlpid-control";
list address-family-list { list address-family-list {
key address-family; key "address-family";
leaf address-family { leaf address-family {
type iana-rt-types:address-family; type iana-rt-types:address-family;
description description
"Address family."; "Address family.";
} }
description description
"List of address families."; "List of address families.";
} }
description description
"Interface address families."; "Interface address families.";
} }
container mpls { container mpls {
container ldp { container ldp {
leaf igp-sync { leaf igp-sync {
if-feature ldp-igp-sync; if-feature "ldp-igp-sync";
type boolean; type boolean;
default false; default "false";
description description
"Enables IGP/LDP synchronization."; "Enables IGP/LDP synchronization.";
} }
description description
"Configuration related to LDP."; "Configuration related to LDP.";
} }
description description
"MPLS configuration for IS-IS interfaces."; "MPLS configuration for IS-IS interfaces.";
} }
uses interface-fast-reroute-config; uses interface-fast-reroute-config;
skipping to change at line 2262 skipping to change at line 2280
leaf discontinuity-time { leaf discontinuity-time {
type yang:date-and-time; type yang:date-and-time;
description description
"The time of the most recent occasion at which any one "The time of the most recent occasion at which any one
or more of this IS-IS interface's counters suffered a or more of this IS-IS interface's counters suffered a
discontinuity. If no such discontinuities have occurred discontinuity. If no such discontinuities have occurred
since the IS-IS interface was last reinitialized, then since the IS-IS interface was last reinitialized, then
this node contains the time the IS-IS interface was this node contains the time the IS-IS interface was
reinitialized, which normally occurs when it was reinitialized, which normally occurs when it was
created."; created.";
} }
} }
/* Grouping for the hostname database */ /* Grouping for the hostname database */
grouping hostname-db { grouping hostname-db {
container hostnames { container hostnames {
config false; config false;
list hostname { list hostname {
key system-id; key "system-id";
leaf system-id { leaf system-id {
type system-id; type system-id;
description description
"System ID associated with the hostname."; "System ID associated with the hostname.";
} }
leaf hostname { leaf hostname {
type string { type string {
length "1..255"; length "1..255";
} }
description description
skipping to change at line 2304 skipping to change at line 2322
description description
"Grouping for hostname-to-system-ID mapping database."; "Grouping for hostname-to-system-ID mapping database.";
} }
/* Groupings for counters */ /* Groupings for counters */
grouping system-counters { grouping system-counters {
container system-counters { container system-counters {
config false; config false;
list level { list level {
key level; key "level";
leaf level { leaf level {
type level-number; type level-number;
description description
"IS-IS level."; "IS-IS level.";
} }
leaf corrupted-lsps { leaf corrupted-lsps {
type uint32; type uint32;
description description
"Number of corrupted in-memory LSPs detected. "Number of corrupted in-memory LSPs detected.
LSPs received from the wire with a bad LSPs received from the wire with a bad
skipping to change at line 2464 skipping to change at line 2481
"IS-IS interface event counters."; "IS-IS interface event counters.";
} }
description description
"Grouping for IS-IS interface event counters."; "Grouping for IS-IS interface event counters.";
} }
grouping packet-counters { grouping packet-counters {
container packet-counters { container packet-counters {
config false; config false;
list level { list level {
key level; key "level";
leaf level { leaf level {
type level-number; type level-number;
description description
"IS-IS level."; "IS-IS level.";
} }
container iih { container iih {
leaf in { leaf in {
type uint32; type uint32;
description description
"Received IS-IS Hello (IIH) PDUs."; "Received IS-IS Hello (IIH) PDUs.";
skipping to change at line 2576 skipping to change at line 2592
"List of packet counters for supported levels."; "List of packet counters for supported levels.";
} }
description description
"Packet counters per IS-IS level."; "Packet counters per IS-IS level.";
} }
description description
"Grouping for packet counters per IS-IS level."; "Grouping for packet counters per IS-IS level.";
} }
/* Groupings for various log buffers */ /* Groupings for various log buffers */
grouping spf-log { grouping spf-log {
container spf-log { container spf-log {
config false; config false;
list event { list event {
key id; key "id";
leaf id { leaf id {
type yang:counter32; type yang:counter32;
description description
"Event identifier. A purely internal value. "Event identifier. A purely internal value.
The most recent events are expected to have a bigger The most recent events are expected to have a bigger
ID number."; ID number.";
} }
leaf spf-type { leaf spf-type {
type enumeration { type enumeration {
enum full { enum full {
skipping to change at line 2659 skipping to change at line 2674
"This container lists the SPF computation events."; "This container lists the SPF computation events.";
} }
description description
"Grouping for SPF log events."; "Grouping for SPF log events.";
} }
grouping lsp-log { grouping lsp-log {
container lsp-log { container lsp-log {
config false; config false;
list event { list event {
key id; key "id";
leaf id { leaf id {
type yang:counter32; type yang:counter32;
description description
"Event identifier. A purely internal value. "Event identifier. A purely internal value.
The most recent events are expected to have a bigger The most recent events are expected to have a bigger
ID number."; ID number.";
} }
leaf level { leaf level {
type level-number; type level-number;
description description
skipping to change at line 2688 skipping to change at line 2702
} }
leaf sequence { leaf sequence {
type uint32; type uint32;
description description
"Sequence number of the LSP."; "Sequence number of the LSP.";
} }
description description
"LSP identification container for either the received "LSP identification container for either the received
LSP or the locally generated LSP."; LSP or the locally generated LSP.";
} }
leaf received-timestamp { leaf received-timestamp {
type yang:timestamp; type yang:timestamp;
description description
"This is the timestamp when the LSP was received. "This is the timestamp when the LSP was received.
In the case of a local LSP update, the timestamp refers In the case of a local LSP update, the timestamp refers
to the LSP origination time."; to the LSP origination time.";
} }
leaf reason { leaf reason {
type identityref { type identityref {
base lsp-log-reason; base lsp-log-reason;
} }
description description
"Type of LSP change."; "Type of LSP change.";
} }
description description
"List of LSP events. Implemented as a wrapping buffer."; "List of LSP events. Implemented as a wrapping buffer.";
} }
description description
"This container lists the LSP log. "This container lists the LSP log.
Local LSP modifications are also included in the list."; Local LSP modifications are also included in the list.";
}
} description description
"Grouping for the LSP log."; "Grouping for the LSP log.";
} }
/* Groupings for the Link State Database (LSDB) descriptions */ /* Groupings for the Link State Database (LSDB) descriptions */
/* Unknown TLV and sub-TLV descriptions */ /* Unknown TLV and sub-TLV descriptions */
grouping tlv { grouping tlv {
description description
"Type-Length-Value (TLV)."; "Type-Length-Value (TLV).";
leaf type { leaf type {
type uint16; type uint16;
description description
"TLV type."; "TLV type.";
} }
leaf length { leaf length {
type uint16; type uint16;
skipping to change at line 3049 skipping to change at line 3056
type rt-types:bandwidth-ieee-float32; type rt-types:bandwidth-ieee-float32;
description description
"Maximum LSP bandwidth."; "Maximum LSP bandwidth.";
} }
description description
"List of maximum LSP bandwidths for different "List of maximum LSP bandwidths for different
priorities."; priorities.";
} }
} }
container tdm-specific { container tdm-specific {
when "../switching-capability = 100"; when '../switching-capability = 100';
description description
"Switching-capability-specific information applicable "Switching-capability-specific information applicable
when the switching type is Time-Division Multiplexing when the switching type is Time-Division Multiplexing
(TDM)."; (TDM).";
leaf minimum-lsp-bandwidth { leaf minimum-lsp-bandwidth {
type rt-types:bandwidth-ieee-float32; type rt-types:bandwidth-ieee-float32;
description description
"Minimum LSP bandwidth."; "Minimum LSP bandwidth.";
} }
leaf indication { leaf indication {
type uint8; type uint8;
description description
"Indicates whether the interface supports Standard "Indicates whether the interface supports Standard
or Arbitrary SONET/SDH (Synchronous Optical Network / or Arbitrary SONET/SDH (Synchronous Optical Network /
skipping to change at line 3075 skipping to change at line 3081
Synchronous Digital Hierarchy)."; Synchronous Digital Hierarchy).";
} }
} }
container psc-specific { container psc-specific {
when "../switching-capability >= 1 and when "../switching-capability >= 1 and
../switching-capability <= 4"; ../switching-capability <= 4";
description description
"Switching-capability-specific information applicable "Switching-capability-specific information applicable
when the switching type is PSC1, PSC2, PSC3, or PSC4 when the switching type is PSC1, PSC2, PSC3, or PSC4
('PSC' stands for 'Packet Switching Capability')."; ('PSC' stands for 'Packet Switching Capability').";
leaf minimum-lsp-bandwidth { leaf minimum-lsp-bandwidth {
type rt-types:bandwidth-ieee-float32; type rt-types:bandwidth-ieee-float32;
description description
"Minimum LSP bandwidth."; "Minimum LSP bandwidth.";
} }
leaf mtu { leaf mtu {
type uint16; type uint16;
units bytes; units "bytes";
description description
"Interface MTU."; "Interface MTU.";
} }
} }
} }
} }
grouping neighbor-extended-te-extensions { grouping neighbor-extended-te-extensions {
description description
"Grouping for TE attributes of a neighbor as defined "Grouping for TE attributes of a neighbor as defined
skipping to change at line 3097 skipping to change at line 3102
} }
} }
} }
grouping neighbor-extended-te-extensions { grouping neighbor-extended-te-extensions {
description description
"Grouping for TE attributes of a neighbor as defined "Grouping for TE attributes of a neighbor as defined
in RFC 8570."; in RFC 8570.";
reference reference
"RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; "RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions";
container unidirectional-link-delay { container unidirectional-link-delay {
description description
"Container for the average delay "Container for the average delay
from the local neighbor to the remote neighbor."; from the local neighbor to the remote neighbor.";
container flags { container flags {
leaf-list unidirectional-link-delay-subtlv-flags { leaf-list unidirectional-link-delay-subtlv-flags {
type identityref { type identityref {
base unidirectional-link-delay-subtlv-flag; base unidirectional-link-delay-subtlv-flag;
} }
description description
"This list contains identities for the bits that "This list contains identities for the bits that
are set."; are set.";
} }
description description
"Unidirectional Link Delay sub-TLV flags."; "Unidirectional Link Delay sub-TLV flags.";
} }
leaf value { leaf value {
type uint32; type uint32;
units usec; units "usec";
description description
"Delay value expressed in microseconds."; "Delay value expressed in microseconds.";
} }
} }
container min-max-unidirectional-link-delay { container min-max-unidirectional-link-delay {
description description
"Container for the minimum and maximum delay "Container for the minimum and maximum delay
from the local neighbor to the remote neighbor."; from the local neighbor to the remote neighbor.";
container flags { container flags {
leaf-list min-max-unidirectional-link-delay-subtlv-flags { leaf-list min-max-unidirectional-link-delay-subtlv-flags {
type identityref { type identityref {
base min-max-unidirectional-link-delay-subtlv-flag; base min-max-unidirectional-link-delay-subtlv-flag;
} }
description description
"This list contains identities for the bits that "This list contains identities for the bits that
are set."; are set.";
} }
description description
"Min/Max Unidirectional Link Delay sub-TLV flags."; "Min/Max Unidirectional Link Delay sub-TLV flags.";
} }
leaf min-value { leaf min-value {
type uint32; type uint32;
units usec; units "usec";
description description
"Minimum delay value expressed in microseconds."; "Minimum delay value expressed in microseconds.";
} }
leaf max-value { leaf max-value {
type uint32; type uint32;
units usec; units "usec";
description description
"Maximum delay value expressed in microseconds."; "Maximum delay value expressed in microseconds.";
} }
} }
container unidirectional-link-delay-variation { container unidirectional-link-delay-variation {
description description
"Container for the average delay variation "Container for the average delay variation
from the local neighbor to the remote neighbor."; from the local neighbor to the remote neighbor.";
leaf value { leaf value {
type uint32; type uint32;
units usec; units "usec";
description description
"Delay variation value expressed in microseconds."; "Delay variation value expressed in microseconds.";
} }
} }
container unidirectional-link-loss { container unidirectional-link-loss {
description description
"Container for packet loss from the local neighbor to the "Container for packet loss from the local neighbor to the
remote neighbor."; remote neighbor.";
container flags { container flags {
leaf-list unidirectional-link-loss-subtlv-flags { leaf-list unidirectional-link-loss-subtlv-flags {
type identityref { type identityref {
base unidirectional-link-loss-subtlv-flag; base unidirectional-link-loss-subtlv-flag;
} }
description description
"This list contains identities for the bits that "This list contains identities for the bits that
are set."; are set.";
} }
description description
"Unidirectional Link Loss sub-TLV flags."; "Unidirectional Link Loss sub-TLV flags.";
} }
leaf value { leaf value {
type uint32; type uint32;
units percent; units "percent";
description description
"Link packet loss expressed as a percentage of "Link packet loss expressed as a percentage of
the total traffic sent over a configurable interval."; the total traffic sent over a configurable interval.";
} }
} }
container unidirectional-link-residual-bandwidth { container unidirectional-link-residual-bandwidth {
description description
"Container for the residual bandwidth "Container for the residual bandwidth
from the local neighbor to the remote neighbor."; from the local neighbor to the remote neighbor.";
leaf value { leaf value {
type rt-types:bandwidth-ieee-float32; type rt-types:bandwidth-ieee-float32;
units Bps; units "Bps";
description description
"Residual bandwidth."; "Residual bandwidth.";
} }
} }
container unidirectional-link-available-bandwidth { container unidirectional-link-available-bandwidth {
description description
"Container for the available bandwidth "Container for the available bandwidth
from the local neighbor to the remote neighbor."; from the local neighbor to the remote neighbor.";
leaf value { leaf value {
type rt-types:bandwidth-ieee-float32; type rt-types:bandwidth-ieee-float32;
units Bps; units "Bps";
description description
"Available bandwidth."; "Available bandwidth.";
} }
} }
container unidirectional-link-utilized-bandwidth { container unidirectional-link-utilized-bandwidth {
description description
"Container for the utilized bandwidth "Container for the utilized bandwidth
from the local neighbor to the remote neighbor."; from the local neighbor to the remote neighbor.";
leaf value { leaf value {
type rt-types:bandwidth-ieee-float32; type rt-types:bandwidth-ieee-float32;
units Bps; units "Bps";
description description
"Utilized bandwidth."; "Utilized bandwidth.";
} }
} }
} }
grouping neighbor-te-extensions { grouping neighbor-te-extensions {
description description
"Grouping for TE attributes of a neighbor as defined "Grouping for TE attributes of a neighbor as defined
in RFC 5305."; in RFC 5305.";
skipping to change at line 3295 skipping to change at line 3299
} }
grouping neighbor-extended { grouping neighbor-extended {
description description
"Grouping for attributes of an IS-IS extended neighbor."; "Grouping for attributes of an IS-IS extended neighbor.";
leaf neighbor-id { leaf neighbor-id {
type extended-system-id; type extended-system-id;
description description
"System ID of the extended neighbor."; "System ID of the extended neighbor.";
} }
container instances { container instances {
description description
"List of all adjacencies between the local "List of all adjacencies between the local
system and the neighbor system ID."; system and the neighbor system ID.";
list instance { list instance {
key id; key "id";
leaf id { leaf id {
type uint32; type uint32;
description description
"Unique identifier of an instance of a "Unique identifier of an instance of a
particular neighbor."; particular neighbor.";
} }
leaf metric { leaf metric {
type wide-metric; type wide-metric;
description description
"IS-IS wide metric for the extended neighbor."; "IS-IS wide metric for the extended neighbor.";
skipping to change at line 3332 skipping to change at line 3335
} }
grouping neighbor { grouping neighbor {
description description
"IS-IS standard neighbor grouping."; "IS-IS standard neighbor grouping.";
leaf neighbor-id { leaf neighbor-id {
type extended-system-id; type extended-system-id;
description description
"IS-IS neighbor system ID."; "IS-IS neighbor system ID.";
} }
container instances { container instances {
description description
"List of all adjacencies between the local "List of all adjacencies between the local
system and the neighbor system ID."; system and the neighbor system ID.";
list instance { list instance {
key id; key "id";
leaf id { leaf id {
type uint32; type uint32;
description description
"Unique identifier of an instance of a "Unique identifier of an instance of a
particular neighbor."; particular neighbor.";
} }
leaf i-e { leaf i-e {
type boolean; type boolean;
description description
"Internal or external (I/E) metric bit value. "Internal or external (I/E) metric bit value.
Set to 'false' to indicate an internal metric."; Set to 'false' to indicate an internal metric.";
} }
container default-metric { container default-metric {
leaf metric { leaf metric {
type std-metric; type std-metric;
description description
"IS-IS default metric value."; "IS-IS default metric value.";
} }
description description
"IS-IS default metric container."; "IS-IS default metric container.";
} }
container delay-metric { container delay-metric {
leaf metric { leaf metric {
type std-metric; type std-metric;
description description
"IS-IS delay metric value."; "IS-IS delay metric value.";
} }
leaf supported { leaf supported {
type boolean; type boolean;
default "false"; default "false";
skipping to change at line 3459 skipping to change at line 3464
grouping tlv140-ipv6-te-rid { grouping tlv140-ipv6-te-rid {
leaf ipv6-te-routerid { leaf ipv6-te-routerid {
type inet:ipv6-address; type inet:ipv6-address;
description description
"IPv6 Traffic Engineering router ID of the IS-IS node. "IPv6 Traffic Engineering router ID of the IS-IS node.
The IS-IS reference is TLV 140."; The IS-IS reference is TLV 140.";
} }
description description
"Grouping for TLV 140."; "Grouping for TLV 140.";
} }
grouping tlv129-protocols { grouping tlv129-protocols {
leaf-list protocol-supported { leaf-list protocol-supported {
type uint8; type uint8;
description description
"List of supported protocols of the IS-IS node. "List of supported protocols of the IS-IS node.
The IS-IS reference is TLV 129."; The IS-IS reference is TLV 129.";
} }
description description
"Grouping for TLV 129."; "Grouping for TLV 129.";
} }
grouping tlv137-hostname { grouping tlv137-hostname {
leaf dynamic-hostname { leaf dynamic-hostname {
type string; type string;
description description
"Hostname of the IS-IS node. The IS-IS reference "Hostname of the IS-IS node. The IS-IS reference
is TLV 137."; is TLV 137.";
} }
description description
"Grouping for TLV 137."; "Grouping for TLV 137.";
} }
skipping to change at line 3479 skipping to change at line 3486
grouping tlv137-hostname { grouping tlv137-hostname {
leaf dynamic-hostname { leaf dynamic-hostname {
type string; type string;
description description
"Hostname of the IS-IS node. The IS-IS reference "Hostname of the IS-IS node. The IS-IS reference
is TLV 137."; is TLV 137.";
} }
description description
"Grouping for TLV 137."; "Grouping for TLV 137.";
} }
grouping tlv10-authentication { grouping tlv10-authentication {
container authentication { container authentication {
leaf authentication-type { leaf authentication-type {
type identityref { type identityref {
base key-chain:crypto-algorithm; base key-chain:crypto-algorithm;
} }
description description
"Authentication type to be used with an IS-IS node."; "Authentication type to be used with an IS-IS node.";
} }
leaf authentication-key { leaf authentication-key {
type string; type string;
description description
"Authentication key to be used. For security reasons, "Authentication key to be used. For security reasons,
the authentication key MUST NOT be presented in the authentication key MUST NOT be presented in
a cleartext format in response to any request a cleartext format in response to any request
skipping to change at line 3503 skipping to change at line 3511
a cleartext format in response to any request a cleartext format in response to any request
(e.g., via get or get-config)."; (e.g., via get or get-config).";
} }
description description
"IS-IS node authentication information container. The "IS-IS node authentication information container. The
IS-IS reference is TLV 10."; IS-IS reference is TLV 10.";
} }
description description
"Grouping for TLV 10."; "Grouping for TLV 10.";
} }
grouping tlv229-mt { grouping tlv229-mt {
container mt-entries { container mt-entries {
list topology { list topology {
description description
"List of topologies supported."; "List of topologies supported.";
leaf mt-id { leaf mt-id {
type uint16 { type uint16 {
range "0 .. 4095"; range "0 .. 4095";
} }
description description
"Multi-Topology (MT) identifier of the topology."; "Multi-Topology (MT) identifier of the topology.";
} }
container attributes { container attributes {
leaf-list flags { leaf-list flags {
type identityref { type identityref {
base tlv229-flag; base tlv229-flag;
}
description
"This list contains identities for the bits that
are set.";
} }
description description
"TLV 229 flags."; "This list contains identities for the bits that
are set.";
}
description
"TLV 229 flags.";
} }
} }
description description
"IS-IS node topology information container. The "IS-IS node topology information container. The
IS-IS reference is TLV 229."; IS-IS reference is TLV 229.";
} }
description description
"Grouping for TLV 229."; "Grouping for TLV 229.";
} }
grouping tlv242-router-capabilities { grouping tlv242-router-capabilities {
container router-capabilities { container router-capabilities {
list router-capability { list router-capability {
container flags { container flags {
leaf-list router-capability-flags { leaf-list router-capability-flags {
type identityref { type identityref {
base router-capability-flag; base router-capability-flag;
}
description
"This list contains identities for the bits that
are set.";
} }
description description
"Router Capability flags."; "This list contains identities for the bits that
are set.";
} }
container node-tags { description
if-feature node-tag; "Router Capability flags.";
list node-tag { }
leaf tag { container node-tags {
type uint32; if-feature "node-tag";
description list node-tag {
"Node tag value."; leaf tag {
} type uint32;
description description
"List of tags."; "Node tag value.";
} }
description description
"Container for node administrative tags."; "List of tags.";
} }
uses unknown-tlvs;
description description
"IS-IS node capabilities. This list element may "Container for node administrative tags.";
be extended with detailed information. The IS-IS
reference is TLV 242.";
} }
uses unknown-tlvs;
description description
"List of Router Capability TLVs."; "IS-IS node capabilities. This list element may
be extended with detailed information. The IS-IS
reference is TLV 242.";
} }
description description
"Grouping for TLV 242."; "List of Router Capability TLVs.";
}
description
"Grouping for TLV 242.";
} }
grouping tlv138-srlg { grouping tlv138-srlg {
description description
"Grouping for TLV 138."; "Grouping for TLV 138.";
container links-srlgs { container links-srlgs {
list links { list links {
leaf neighbor-id { leaf neighbor-id {
type extended-system-id; type extended-system-id;
description description
skipping to change at line 3671 skipping to change at line 3676
units "seconds"; units "seconds";
description description
"Remaining lifetime (in seconds) until LSP expiration."; "Remaining lifetime (in seconds) until LSP expiration.";
} }
leaf sequence { leaf sequence {
type uint32; type uint32;
description description
"This leaf describes the sequence number of the LSP."; "This leaf describes the sequence number of the LSP.";
} }
container attributes { container attributes {
leaf-list lsp-flags { leaf-list lsp-flags {
type identityref { type identityref {
base lsp-flag; base lsp-flag;
}
description
"This list contains identities for the bits that
are set.";
} }
description description
"LSP attributes."; "This list contains identities for the bits that
are set.";
}
description
"LSP attributes.";
} }
uses tlv132-ipv4-addresses; uses tlv132-ipv4-addresses;
uses tlv232-ipv6-addresses; uses tlv232-ipv6-addresses;
uses tlv134-ipv4-te-rid; uses tlv134-ipv4-te-rid;
uses tlv140-ipv6-te-rid; uses tlv140-ipv6-te-rid;
uses tlv129-protocols; uses tlv129-protocols;
uses tlv137-hostname; uses tlv137-hostname;
uses tlv10-authentication; uses tlv10-authentication;
uses tlv229-mt; uses tlv229-mt;
uses tlv242-router-capabilities; uses tlv242-router-capabilities;
uses tlv138-srlg; uses tlv138-srlg;
skipping to change at line 3694 skipping to change at line 3698
uses tlv232-ipv6-addresses; uses tlv232-ipv6-addresses;
uses tlv134-ipv4-te-rid; uses tlv134-ipv4-te-rid;
uses tlv140-ipv6-te-rid; uses tlv140-ipv6-te-rid;
uses tlv129-protocols; uses tlv129-protocols;
uses tlv137-hostname; uses tlv137-hostname;
uses tlv10-authentication; uses tlv10-authentication;
uses tlv229-mt; uses tlv229-mt;
uses tlv242-router-capabilities; uses tlv242-router-capabilities;
uses tlv138-srlg; uses tlv138-srlg;
uses unknown-tlvs; uses unknown-tlvs;
container is-neighbor { container is-neighbor {
list neighbor { list neighbor {
key neighbor-id; key "neighbor-id";
uses neighbor; uses neighbor;
description description
"List of neighbors."; "List of neighbors.";
} }
description description
"Standard IS neighbors container. The IS-IS reference is "Standard IS neighbors container. The IS-IS reference is
TLV 2."; TLV 2.";
} }
container extended-is-neighbor { container extended-is-neighbor {
list neighbor { list neighbor {
key neighbor-id; key "neighbor-id";
uses neighbor-extended; uses neighbor-extended;
description description
"List of extended IS neighbors."; "List of extended IS neighbors.";
} }
description description
"Standard IS extended neighbors container. The IS-IS "Standard IS extended neighbors container. The IS-IS
reference is TLV 22."; reference is TLV 22.";
} }
container ipv4-internal-reachability { container ipv4-internal-reachability {
list prefixes { list prefixes {
uses prefix-ipv4-std; uses prefix-ipv4-std;
description description
"List of prefixes."; "List of prefixes.";
} }
description description
"IPv4 internal reachability information container. "IPv4 internal reachability information container.
The IS-IS reference is TLV 128."; The IS-IS reference is TLV 128.";
} }
skipping to change at line 3836 skipping to change at line 3829
reference is TLV 236."; reference is TLV 236.";
} }
} }
grouping lsdb { grouping lsdb {
description description
"Link State Database (LSDB) grouping."; "Link State Database (LSDB) grouping.";
container database { container database {
config false; config false;
list levels { list levels {
key level; key "level";
leaf level { leaf level {
type level-number; type level-number;
description description
"LSDB level number (1 or 2)."; "LSDB level number (1 or 2).";
} }
list lsp { list lsp {
key lsp-id; key "lsp-id";
uses lsp-entry; uses lsp-entry;
description description
"List of LSPs in the LSDB."; "List of LSPs in the LSDB.";
} }
description description
"List of LSPs for the LSDB-level container."; "List of LSPs for the LSDB-level container.";
} }
description description
"IS-IS LSDB container."; "IS-IS LSDB container.";
} }
} }
/* Augmentations */ /* Augmentations */
augment "/rt:routing/" augment "/rt:routing/"
+"rt:ribs/rt:rib/rt:routes/rt:route" { + "rt:ribs/rt:rib/rt:routes/rt:route" {
when "derived-from-or-self(rt:source-protocol, 'isis:isis')" { when "derived-from-or-self(rt:source-protocol, 'isis:isis')" {
description description
"IS-IS-specific route attributes."; "IS-IS-specific route attributes.";
} }
uses route-content; uses route-content;
description description
"This augments the route object in the Routing Information "This augments the route object in the Routing Information
Base (RIB) with IS-IS-specific attributes."; Base (RIB) with IS-IS-specific attributes.";
} }
augment "/if:interfaces/if:interface" { augment "/if:interfaces/if:interface" {
leaf clns-mtu { leaf clns-mtu {
if-feature osi-interface; if-feature "osi-interface";
type uint16; type uint16;
description description
"Connectionless-mode Network Service (CLNS) MTU of the "Connectionless-mode Network Service (CLNS) MTU of the
interface."; interface.";
} }
description description
"ISO-specific interface parameters."; "ISO-specific interface parameters.";
} }
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+"rt:control-plane-protocol" { + "rt:control-plane-protocol" {
when "derived-from-or-self(rt:type, 'isis:isis')" { when "derived-from-or-self(rt:type, 'isis:isis')" {
description description
"This augmentation is only valid when the routing protocol "This augmentation is only valid when the routing protocol
instance type is 'isis'."; instance type is 'isis'.";
} }
description description
"This augments a routing protocol instance with IS-IS-specific "This augments a routing protocol instance with IS-IS-specific
parameters."; parameters.";
container isis { container isis {
must "count(area-address) > 0" { must 'count(area-address) > 0' {
error-message error-message "At least one area address must be configured.";
"At least one area address must be configured.";
description description
"Enforces the configuration of at least one area."; "Enforces the configuration of at least one area.";
} }
uses instance-config; uses instance-config;
uses instance-state; uses instance-state;
container topologies { container topologies {
if-feature multi-topology; if-feature "multi-topology";
list topology { list topology {
key "name"; key "name";
leaf enable { leaf enable {
type boolean; type boolean;
description description
"Enables the topology configuration."; "Enables the topology configuration.";
} }
leaf name { leaf name {
type leafref { type leafref {
path "../../../../../../rt:ribs/rt:rib/rt:name"; path "../../../../../../rt:ribs/rt:rib/rt:name";
skipping to change at line 3934 skipping to change at line 3921
"List of topologies."; "List of topologies.";
} }
description description
"MT container."; "MT container.";
} }
container interfaces { container interfaces {
list interface { list interface {
key "name"; key "name";
leaf name { leaf name {
type if:interface-ref; type if:interface-ref;
description description
"Reference to the interface within "Reference to the interface within
the routing instance."; the routing instance.";
} }
uses interface-config; uses interface-config;
uses interface-state; uses interface-state;
container topologies { container topologies {
if-feature multi-topology; if-feature "multi-topology";
list topology { list topology {
key name; key "name";
leaf name { leaf name {
type leafref { type leafref {
path "../../../../../../../../"+ path "../../../../../../../../"
"rt:ribs/rt:rib/rt:name"; + "rt:ribs/rt:rib/rt:name";
} }
description description
"RIB corresponding to the topology."; "RIB corresponding to the topology.";
} }
uses multi-topology-interface-config; uses multi-topology-interface-config;
description description
"List of interface topologies."; "List of interface topologies.";
} }
description description
"MT container."; "MT container.";
} }
skipping to change at line 3985 skipping to change at line 3968
rpc clear-adjacency { rpc clear-adjacency {
description description
"This RPC request clears a particular set of IS-IS "This RPC request clears a particular set of IS-IS
adjacencies. If the operation fails for an internal adjacencies. If the operation fails for an internal
reason, then the 'error-tag' and 'error-app-tag' should be reason, then the 'error-tag' and 'error-app-tag' should be
set indicating the reason for the failure."; set indicating the reason for the failure.";
reference reference
"RFC 6241: Network Configuration Protocol (NETCONF)"; "RFC 6241: Network Configuration Protocol (NETCONF)";
input { input {
leaf routing-protocol-instance-name { leaf routing-protocol-instance-name {
type leafref { type leafref {
path "/rt:routing/rt:control-plane-protocols/" path "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rt:name"; + "rt:control-plane-protocol/rt:name";
} }
mandatory "true"; mandatory true;
description description
"Name of the IS-IS protocol instance whose IS-IS "Name of the IS-IS protocol instance whose IS-IS
adjacency is being cleared. adjacency is being cleared.
If the corresponding IS-IS instance doesn't exist, If the corresponding IS-IS instance doesn't exist,
then the operation will fail with an 'error-tag' of then the operation will fail with an 'error-tag' of
'data-missing' and an 'error-app-tag' of 'data-missing' and an 'error-app-tag' of
'routing-protocol-instance-not-found'."; 'routing-protocol-instance-not-found'.";
} }
leaf level { leaf level {
skipping to change at line 4038 skipping to change at line 4020
"This RPC request clears a particular IS-IS database. If "This RPC request clears a particular IS-IS database. If
the operation fails for an IS-IS internal reason, then the operation fails for an IS-IS internal reason, then
the 'error-tag' and 'error-app-tag' should be set the 'error-tag' and 'error-app-tag' should be set
indicating the reason for the failure."; indicating the reason for the failure.";
input { input {
leaf routing-protocol-instance-name { leaf routing-protocol-instance-name {
type leafref { type leafref {
path "/rt:routing/rt:control-plane-protocols/" path "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rt:name"; + "rt:control-plane-protocol/rt:name";
} }
mandatory "true"; mandatory true;
description description
"Name of the IS-IS protocol instance whose IS-IS "Name of the IS-IS protocol instance whose IS-IS
database or databases are being cleared. database or databases are being cleared.
If the corresponding IS-IS instance doesn't exist, If the corresponding IS-IS instance doesn't exist,
then the operation will fail with an 'error-tag' of then the operation will fail with an 'error-tag' of
'data-missing' and an 'error-app-tag' of 'data-missing' and an 'error-app-tag' of
'routing-protocol-instance-not-found'."; 'routing-protocol-instance-not-found'.";
} }
leaf level { leaf level {
skipping to change at line 4450 skipping to change at line 4423
} }
leaf neighbor-system-id { leaf neighbor-system-id {
type system-id; type system-id;
description description
"Neighbor system ID of the LSP sender."; "Neighbor system ID of the LSP sender.";
} }
description description
"This notification is sent when an LSP is received. "This notification is sent when an LSP is received.
The generation of the notification must be throttled with The generation of the notification must be throttled with
at least 5 seconds between successive notifications."; at least 5 seconds between successive notifications.";
} }
notification lsp-generation { notification lsp-generation {
uses notification-instance-hdr; uses notification-instance-hdr;
leaf lsp-id { leaf lsp-id {
type lsp-id; type lsp-id;
description description
"LSP ID."; "LSP ID.";
} }
leaf sequence { leaf sequence {
type uint32; type uint32;
description description
"Sequence number of the received LSP."; "Sequence number of the received LSP.";
} }
 End of changes. 263 change blocks. 
351 lines changed or deleted 330 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/