draft-ietf-isis-yang-isis-cfg-35.txt   draft-ietf-isis-yang-isis-cfg-36.txt 
IS-IS Working Group S. Litkowski IS-IS Working Group S. Litkowski
Internet-Draft Orange Internet-Draft Orange
Intended status: Standards Track D. Yeung Intended status: Standards Track D. Yeung
Expires: September 8, 2019 Arrcus, Inc Expires: March 8, 2020 Arrcus, Inc
A. Lindem A. Lindem
Cisco Systems Cisco Systems
J. Zhang J. Zhang
Juniper Networks Juniper Networks
L. Lhotka L. Lhotka
CZ.NIC CZ.NIC
March 7, 2019 September 5, 2019
YANG Data Model for IS-IS Protocol YANG Data Model for IS-IS Protocol
draft-ietf-isis-yang-isis-cfg-35 draft-ietf-isis-yang-isis-cfg-36
Abstract Abstract
This document defines a YANG data model that can be used to configure This document defines a YANG data model that can be used to configure
and manage IS-IS protocol on network elements. and manage IS-IS protocol on network elements.
Requirements Language Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
skipping to change at page 1, line 39 skipping to change at page 1, line 39
capitals, as shown here. capitals, as shown here.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on September 8, 2019. This Internet-Draft will expire on March 8, 2020.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Design of the Data Model . . . . . . . . . . . . . . . . . . 3 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 3
2.1. IS-IS Configuration . . . . . . . . . . . . . . . . . . . 9 2.1. IS-IS Configuration . . . . . . . . . . . . . . . . . . . 9
2.2. Multi-topology Parameters . . . . . . . . . . . . . . . 9 2.2. Multitopology Parameters . . . . . . . . . . . . . . . . 9
2.3. Per-Level Parameters . . . . . . . . . . . . . . . . . . 10 2.3. Per-Level Parameters . . . . . . . . . . . . . . . . . . 10
2.4. Per-Interface Parameters . . . . . . . . . . . . . . . . 11 2.4. Per-Interface Parameters . . . . . . . . . . . . . . . . 11
2.5. Authentication Parameters . . . . . . . . . . . . . . . 19 2.5. Authentication Parameters . . . . . . . . . . . . . . . . 18
2.6. IGP/LDP synchronization . . . . . . . . . . . . . . . . 19 2.6. IGP/LDP synchronization . . . . . . . . . . . . . . . . . 19
2.7. ISO parameters . . . . . . . . . . . . . . . . . . . . . 19 2.7. ISO parameters . . . . . . . . . . . . . . . . . . . . . 19
2.8. IP FRR . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.8. IP FRR . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.9. Operational States . . . . . . . . . . . . . . . . . . . 20 2.9. Operational States . . . . . . . . . . . . . . . . . . . 19
3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 20 3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 20
4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 20 4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 20
5. Interaction with Other YANG Modules . . . . . . . . . . . . 22 5. Interaction with Other YANG Modules . . . . . . . . . . . . . 22
6. IS-IS YANG Module . . . . . . . . . . . . . . . . . . . . . . 22 6. IS-IS YANG Module . . . . . . . . . . . . . . . . . . . . . . 22
7. Security Considerations . . . . . . . . . . . . . . . . . . . 103 7. Security Considerations . . . . . . . . . . . . . . . . . . . 105
8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 104 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 107
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 104 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 107
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 104 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 107
10.1. Normative References . . . . . . . . . . . . . . . . . . 104 10.1. Normative References . . . . . . . . . . . . . . . . . . 107
10.2. Informative References . . . . . . . . . . . . . . . . . 108 10.2. Informative References . . . . . . . . . . . . . . . . . 112
Appendix A. Example of IS-IS configuration in XML . . . . . . . 108 Appendix A. Example of IS-IS configuration in XML . . . . . . . 112
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 111 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 114
1. Introduction 1. Introduction
This document defines a YANG ([RFC7950]) data model for IS-IS routing This document defines a YANG [RFC7950] data model for IS-IS routing
protocol. protocol.
The data model covers configuration of an IS-IS routing protocol The data model covers configuration of an IS-IS routing protocol
instance as well as operational states. instance as well as operational states.
A simplified tree representation of the data model is presented in A simplified tree representation of the data model is presented in
Section 2. Tree diagrams used in this document follow the notation Section 2. Tree diagrams used in this document follow the notation
defined in [RFC8340]. defined in [RFC8340].
The module is designed as per NMDA (Network Management Datastore The module is designed as per NMDA (Network Management Datastore
Architecture) [RFC8342]. Architecture) [RFC8342].
2. Design of the Data Model 2. Design of the Data Model
The IS-IS YANG module augments the "control-plane-protocol" list in The IS-IS YANG module augments the "control-plane-protocol" list in
ietf-routing module (defined in [RFC8349]) with specific IS-IS ietf-routing module [RFC8349] with specific IS-IS parameters.
parameters.
The figure below describes the overall structure of the isis YANG The figure below describes the overall structure of the isis YANG
module: module:
module: ietf-isis module: ietf-isis
augment /rt:routing/rt:ribs/rt:rib/rt:routes/rt:route: augment /rt:routing/rt:ribs/rt:rib/rt:routes/rt:route:
+--ro metric? uint32 +--ro metric? uint32
+--ro tag* uint64 +--ro tag* uint64
+--ro route-type? enumeration +--ro route-type? enumeration
augment /if:interfaces/if:interface: augment /if:interfaces/if:interface:
+--rw clns-mtu? uint16 +--rw clns-mtu? uint16 {osi-interface}?
augment augment
/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol: | /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol:
+--rw isis +--rw isis
+--rw enable? boolean {admin-control}? +--rw enable? boolean {admin-control}?
+--rw level-type? level +--rw level-type? level
+--rw system-id? system-id +--rw system-id? system-id
+--rw maximum-area-addresses? uint8 +--rw maximum-area-addresses? uint8 {maximum-area-addresses}?
| {maximum-area-addresses}? +--rw area-address* area-address
+--rw area-address* area-address +--rw lsp-mtu? uint16
+--rw lsp-mtu? uint16 +--rw lsp-lifetime? uint16
+--rw lsp-lifetime? uint16 +--rw lsp-refresh?
+--rw lsp-refresh? rt-types:timer-value-seconds16 | rt-types:timer-value-seconds16 {lsp-refresh}?
| {lsp-refresh}? +--rw poi-tlv? boolean {poi-tlv}?
+--rw poi-tlv? boolean {poi-tlv}? +--rw graceful-restart {graceful-restart}?
+--rw graceful-restart {graceful-restart}? | +--rw enable? boolean
| +--rw enable? boolean | +--rw restart-interval? rt-types:timer-value-seconds16
| +--rw restart-interval? rt-types:timer-value-seconds16 | +--rw helper-enable? boolean
| +--rw helper-enable? boolean +--rw nsr {nsr}?
+--rw nsr {nsr}? | +--rw enable? boolean
| +--rw enable? boolean +--rw node-tags {node-tag}?
+--rw node-tags {node-tag}? | +--rw node-tag* [tag]
| +--rw node-tag* [tag] | ...
| ... +--rw metric-type
+--rw metric-type | +--rw value? enumeration
| +--rw value? enumeration | +--rw level-1
| +--rw level-1 | | ...
| | ...
| +--rw level-2
| ...
+--rw default-metric
| +--rw value? wide-metric
| +--rw level-1
| | ...
| +--rw level-2
| ...
+--rw auto-cost {auto-cost}?
| +--rw enable? boolean
| +--rw reference-bandwidth? uint32
+--rw authentication
| +--rw (authentication-type)?
| | ...
| +--rw level-1
| | ...
| +--rw level-2
| ...
+--rw address-families {nlpid-control}?
| +--rw address-family-list* [address-family]
| ...
+--rw mpls
| +--rw te-rid {te-rid}?
| | ...
| +--rw ldp
| ...
+--rw spf-control
| +--rw paths? uint16 {max-ecmp}?
| +--rw ietf-spf-delay {ietf-spf-delay}?
| ...
+--rw fast-reroute {fast-reroute}?
| +--rw lfa {lfa}?
+--rw preference
| +--rw (granularity)?
| ...
+--rw overload
| +--rw status? boolean
+--rw overload-max-metric {overload-max-metric}?
| +--rw timeout? rt-types:timer-value-seconds16
+--ro spf-log
| +--ro event* [id]
| ...
+--ro lsp-log
| +--ro event* [id]
| ...
+--ro hostnames | +--rw level-2
| +--ro hostname* [system-id] | ...
| ... +--rw default-metric
+--ro database | +--rw value? wide-metric
| +--ro levels* [level] | +--rw level-1
| ... | | ...
+--ro local-rib | +--rw level-2
| +--ro route* [prefix] | ...
| ... +--rw auto-cost {auto-cost}?
+--ro system-counters | +--rw enable? boolean
| +--ro level* [level] | +--rw reference-bandwidth? uint32
| ... +--rw authentication
+--ro protected-routes | +--rw (authentication-type)?
| +--ro address-family-stats* | | ...
| [address-family prefix alternate] | +--rw level-1
| ... | | ...
+--ro unprotected-routes | +--rw level-2
| +--ro address-family-stats* [address-family prefix] | ...
| ... +--rw address-families {nlpid-control}?
+--ro protection-statistics* [frr-protection-method] | +--rw address-family-list* [address-family]
| +--ro frr-protection-method string | ...
| +--ro address-family-stats* [address-family] +--rw mpls
| ... | +--rw te-rid {te-rid}?
+--rw topologies {multi-topology}? | | ...
| +--rw topology* [name] | +--rw ldp
| ... | ...
+--rw interfaces +--rw spf-control
+--rw interface* [name] | +--rw paths? uint16 {max-ecmp}?
... | +--rw ietf-spf-delay {ietf-spf-delay}?
| ...
+--rw fast-reroute {fast-reroute}?
| +--rw lfa {lfa}?
+--rw preference
| +--rw (granularity)?
| ...
+--rw overload
| +--rw status? boolean
+--rw overload-max-metric {overload-max-metric}?
| +--rw timeout? rt-types:timer-value-seconds16
+--ro spf-log
| +--ro event* [id]
| ...
+--ro lsp-log
| +--ro event* [id]
| ...
+--ro hostnames
| +--ro hostname* [system-id]
| ...
rpcs: +--ro database
+---x clear-adjacency | +--ro levels* [level]
| +---w input | ...
| +---w routing-protocol-instance-name -> +--ro local-rib
/rt:routing/control-plane-protocols/control-plane-protocol/name | +--ro route* [prefix]
| +---w level? level | ...
| +---w interface? if:interface-ref +--ro system-counters
+---x clear-database | +--ro level* [level]
+---w input | ...
+---w routing-protocol-instance-name -> +--ro protected-routes
/rt:routing/control-plane-protocols/control-plane-protocol/name | +--ro address-family-stats* [address-family prefix alternate]
+---w level? level | ...
+--ro unprotected-routes
| +--ro address-family-stats* [address-family prefix]
| ...
+--ro protection-statistics* [frr-protection-method]
| +--ro frr-protection-method identityref
| +--ro address-family-stats* [address-family]
| ...
+--rw discontinuity-time? yang:date-and-time
+--rw topologies {multi-topology}?
| +--rw topology* [name]
| ...
+--rw interfaces
+--rw interface* [name]
...
notifications: rpcs:
+---n database-overload +---x clear-adjacency
| +--ro routing-protocol-name? -> | +---w input
/rt:routing/control-plane-protocols/control-plane-protocol/name | +---w routing-protocol-instance-name
| +--ro isis-level? level | ->/rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro overload? enumeration | +---w level? level
+---n lsp-too-large | +---w interface? if:interface-ref
| +--ro routing-protocol-name? -> +---x clear-database
/rt:routing/control-plane-protocols/control-plane-protocol/name +---w input
| +--ro isis-level? level +---w routing-protocol-instance-name
| +--ro interface-name? if:interface-ref -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro interface-level? level +---w level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro pdu-size? uint32
| +--ro lsp-id? lsp-id
+---n if-state-change
| +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level
| +--ro interface-name? if:interface-ref
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro state? if-state-type
+---n corrupted-lsp-detected
| +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level
| +--ro lsp-id? lsp-id
+---n attempt-to-exceed-max-sequence
| +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level
| +--ro lsp-id? lsp-id
+---n id-len-mismatch
| +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level
| +--ro interface-name? if:interface-ref
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro pdu-field-len? uint8
| +--ro raw-pdu? binary
+---n max-area-addresses-mismatch
| +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level
| +--ro interface-name? if:interface-ref
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro max-area-addresses? uint8
| +--ro raw-pdu? binary
+---n own-lsp-purge
| +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name notifications:
| +--ro isis-level? level +---n database-overload
| +--ro interface-name? if:interface-ref | +--ro routing-protocol-name?
| +--ro interface-level? level | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro extended-circuit-id? extended-circuit-id | +--ro isis-level? level
| +--ro lsp-id? lsp-id | +--ro overload? enumeration
+---n sequence-number-skipped +---n lsp-too-large
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name?
/rt:routing/control-plane-protocols/control-plane-protocol/name | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro lsp-id? lsp-id | +--ro pdu-size? uint32
+---n authentication-type-failure | +--ro lsp-id? lsp-id
| +--ro routing-protocol-name? -> +---n if-state-change
/rt:routing/control-plane-protocols/control-plane-protocol/name | +--ro routing-protocol-name?
| +--ro isis-level? level | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro interface-name? if:interface-ref | +--ro isis-level? level
| +--ro interface-level? level | +--ro interface-name? if:interface-ref
| +--ro extended-circuit-id? extended-circuit-id | +--ro interface-level? level
| +--ro raw-pdu? binary | +--ro extended-circuit-id? extended-circuit-id
+---n authentication-failure | +--ro state? if-state-type
| +--ro routing-protocol-name? -> +---n corrupted-lsp-detected
/rt:routing/control-plane-protocols/control-plane-protocol/name | +--ro routing-protocol-name?
| +--ro isis-level? level | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro interface-name? if:interface-ref | +--ro isis-level? level
| +--ro interface-level? level | +--ro lsp-id? lsp-id
| +--ro extended-circuit-id? extended-circuit-id +---n attempt-to-exceed-max-sequence
| +--ro raw-pdu? binary | +--ro routing-protocol-name?
+---n version-skew | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro routing-protocol-name? -> | +--ro isis-level? level
/rt:routing/control-plane-protocols/control-plane-protocol/name | +--ro lsp-id? lsp-id
| +--ro isis-level? level +---n id-len-mismatch
| +--ro interface-name? if:interface-ref | +--ro routing-protocol-name?
| +--ro interface-level? level | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro extended-circuit-id? extended-circuit-id | +--ro isis-level? level
| +--ro protocol-version? uint8 | +--ro interface-name? if:interface-ref
| +--ro raw-pdu? binary | +--ro interface-level? level
+---n area-mismatch | +--ro extended-circuit-id? extended-circuit-id
| +--ro routing-protocol-name? -> | +--ro pdu-field-len? uint8
/rt:routing/control-plane-protocols/control-plane-protocol/name | +--ro raw-pdu? binary
| +--ro isis-level? level +---n max-area-addresses-mismatch
| +--ro interface-name? if:interface-ref | +--ro routing-protocol-name?
| +--ro interface-level? level | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro extended-circuit-id? extended-circuit-id | +--ro isis-level? level
| +--ro raw-pdu? binary | +--ro interface-name? if:interface-ref
+---n rejected-adjacency | +--ro interface-level? level
| +--ro routing-protocol-name? -> | +--ro extended-circuit-id? extended-circuit-id
/rt:routing/control-plane-protocols/control-plane-protocol/name | +--ro max-area-addresses? uint8
| +--ro isis-level? level | +--ro raw-pdu? binary
| +--ro interface-name? if:interface-ref +---n own-lsp-purge
| +--ro interface-level? level | +--ro routing-protocol-name?
| +--ro extended-circuit-id? extended-circuit-id | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro raw-pdu? binary | +--ro isis-level? level
| +--ro reason? string | +--ro interface-name? if:interface-ref
+---n protocols-supported-mismatch | +--ro interface-level? level
| +--ro routing-protocol-name? -> | +--ro extended-circuit-id? extended-circuit-id
/rt:routing/control-plane-protocols/control-plane-protocol/name | +--ro lsp-id? lsp-id
| +--ro isis-level? level +---n sequence-number-skipped
| +--ro interface-name? if:interface-ref | +--ro routing-protocol-name?
| +--ro interface-level? level | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro extended-circuit-id? extended-circuit-id | +--ro isis-level? level
| +--ro raw-pdu? binary | +--ro interface-name? if:interface-ref
| +--ro protocols* uint8 | +--ro interface-level? level
+---n lsp-error-detected | +--ro extended-circuit-id? extended-circuit-id
| +--ro routing-protocol-name? -> | +--ro lsp-id? lsp-id
/rt:routing/control-plane-protocols/control-plane-protocol/name +---n authentication-type-failure
| +--ro isis-level? level | +--ro routing-protocol-name?
| +--ro interface-name? if:interface-ref | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro interface-level? level | +--ro isis-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro interface-name? if:interface-ref
| +--ro lsp-id? lsp-id | +--ro interface-level? level
| +--ro raw-pdu? binary | +--ro extended-circuit-id? extended-circuit-id
| +--ro error-offset? uint32 | +--ro raw-pdu? binary
| +--ro tlv-type? uint8 +---n authentication-failure
+---n adjacency-state-change | +--ro routing-protocol-name?
| +--ro routing-protocol-name? -> | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
/rt:routing/control-plane-protocols/control-plane-protocol/name | +--ro isis-level? level
| +--ro isis-level? level | +--ro interface-name? if:interface-ref
| +--ro interface-name? if:interface-ref | +--ro interface-level? level
| +--ro interface-level? level | +--ro extended-circuit-id? extended-circuit-id
| +--ro extended-circuit-id? extended-circuit-id | +--ro raw-pdu? binary
| +--ro neighbor? string +---n version-skew
| +--ro neighbor-system-id? system-id | +--ro routing-protocol-name?
| +--ro state? adj-state-type | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro reason? string | +--ro isis-level? level
+---n lsp-received | +--ro interface-name? if:interface-ref
| +--ro routing-protocol-name? -> | +--ro interface-level? level
/rt:routing/control-plane-protocols/control-plane-protocol/name | +--ro extended-circuit-id? extended-circuit-id
| +--ro isis-level? level | +--ro protocol-version? uint8
| +--ro interface-name? if:interface-ref | +--ro raw-pdu? binary
| +--ro interface-level? level +---n area-mismatch
| +--ro extended-circuit-id? extended-circuit-id | +--ro routing-protocol-name?
| +--ro lsp-id? lsp-id | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro sequence? uint32 | +--ro isis-level? level
| +--ro received-timestamp? yang:timestamp | +--ro interface-name? if:interface-ref
| +--ro neighbor-system-id? system-id | +--ro interface-level? level
+---n lsp-generation | +--ro extended-circuit-id? extended-circuit-id
+--ro routing-protocol-name? -> | +--ro raw-pdu? binary
/rt:routing/control-plane-protocols/control-plane-protocol/name +---n rejected-adjacency
+--ro isis-level? level | +--ro routing-protocol-name?
+--ro lsp-id? lsp-id | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
+--ro sequence? uint32 | +--ro isis-level? level
+--ro send-timestamp? yang:timestamp | +--ro interface-name? if:interface-ref
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary
| +--ro reason? string
+---n protocols-supported-mismatch
| +--ro routing-protocol-name?
| -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level
| +--ro interface-name? if:interface-ref
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary
| +--ro protocols* uint8
+---n lsp-error-detected
| +--ro routing-protocol-name?
| -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level
| +--ro interface-name? if:interface-ref
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro lsp-id? lsp-id
| +--ro raw-pdu? binary
| +--ro error-offset? uint32
| +--ro tlv-type? uint8
+---n adjacency-state-change
| +--ro routing-protocol-name?
| -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level
| +--ro interface-name? if:interface-ref
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro neighbor? string
| +--ro neighbor-system-id? system-id
| +--ro state? adj-state-type
| +--ro reason? string
+---n lsp-received
| +--ro routing-protocol-name?
| -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level
| +--ro interface-name? if:interface-ref
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro lsp-id? lsp-id
| +--ro sequence? uint32
| +--ro received-timestamp? yang:timestamp
| +--ro neighbor-system-id? system-id
+---n lsp-generation
+--ro routing-protocol-name?
-> /rt:routing/control-plane-protocols/control-plane-protocol/name
+--ro isis-level? level
+--ro lsp-id? lsp-id
+--ro sequence? uint32
+--ro send-timestamp? yang:timestamp
2.1. IS-IS Configuration 2.1. IS-IS Configuration
The IS-IS configuration is divided in: The IS-IS configuration is divided in:
o Global parameters. o Global parameters.
o Per interface configuration (see Section 2.4). o Per interface configuration (see Section 2.4).
Additional modules may be created to support any additional Additional modules may be created to support any additional
parameters. These additional modules MUST augment the ietf-isis parameters. These additional modules MUST augment the ietf-isis
module. module.
The model implements features, thus some of the configuration The model implements features, thus some of the configuration
statement becomes optional. As an example, the ability to control statement becomes optional. As an example, the ability to control
the administrative state of a particular IS-IS instance is optional. the administrative state of a particular IS-IS instance is optional.
By advertising the feature "admin-control", a device communicates to By advertising the feature "admin-control", a device communicates to
the client that it supports the ability to shut down a particular IS- the client that it supports the ability to shutdown a particular IS-
IS instance. IS instance.
The global configuration contains usual IS-IS parameters such as lsp- The global configuration contains usual IS-IS parameters such as lsp-
mtu, lsp-lifetime, lsp-refresh, default-metric... mtu, lsp-lifetime, lsp-refresh, default-metric...
2.2. Multi-topology Parameters 2.2. Multitopology Parameters
The model supports multi-topology (MT) IS-IS as defined in [RFC5120]. The model supports multitopology (MT) IS-IS as defined in [RFC5120].
The "topologies" container is used to enable support of MT The "topologies" container is used to enable support of MT
extensions. extensions.
The "name" used in the topology list should refer to an existing RIB The "name" used in the topology list should refer to an existing RIB
of the device. of the device.
Some specific parameters could be defined on a per topology basis Some specific parameters can be defined on a per topology basis both
both at global level and at interface level: for example, an at global level and at interface level: for example, an interface
interface metric can be defined per topology. metric can be defined per topology.
Multiple address families (like IPv4 or IPv6) can also be activated Multiple address families (like IPv4 or IPv6) can also be activated
within the default topology. This can be achieved using the address- within the default topology. This can be achieved using the address-
families container (requiring "nlpid-control" feature to be families container (requiring "nlpid-control" feature to be
advertised). advertised).
2.3. Per-Level Parameters 2.3. Per-Level Parameters
Some parameters allow a per level configuration. In this case, the Some parameters allow a per level configuration. In this case, the
parameter is modeled as a container with three configuration parameter is modeled as a container with three configuration
skipping to change at page 10, line 39 skipping to change at page 10, line 37
<priority> <priority>
<value>250</value> <value>250</value>
<level-1> <level-1>
<value>100</value> <value>100</value>
</level-1> </level-1>
<level-2> <level-2>
<value>200</value> <value>200</value>
</level-2> </level-2>
</priority> </priority>
An implementation SHOULD prefer a level specific parameter over a An implementation MUST prefer a level specific parameter over a
level-all parameter. As example, if the priority is 100 for the level-all parameter. As example, if the priority is 100 for the
level-1, 200 for the level-2 and 250 for the top-level configuration, level-1, 200 for the level-2 and 250 for the top-level configuration,
the implementation should use 100 for the level-1 and 200 for the the implementation should use 100 for the level-1 and 200 for the
level-2. level-2.
Some parameters like "overload bit" and "route preference" are not Some parameters like "overload bit" and "route preference" are not
modeled to support a per level configuration. If an implementation modeled to support a per level configuration. If an implementation
supports per level configuration for such parameter, this supports per level configuration for such parameter, this
implementation SHOULD augment the current model by adding both implementation MUST augment the current model by adding both level-1
level-1 and level-2 containers and SHOULD reuse existing and level-2 containers and MUST reuse existing configuration
configuration groupings. groupings.
Example of augmentation: Example of augmentation:
augment "/rt:routing/" + augment "/rt:routing/" +
"rt:control-plane-protocols/rt:control-plane-protocol"+ "rt:control-plane-protocols/rt:control-plane-protocol"+
"/isis:isis/isis:overload" { "/isis:isis/isis:overload" {
when "rt:type = 'isis:isis'" { when "rt:type = 'isis:isis'" {
description description
"This augment IS-IS routing protocol when used"; "This augment IS-IS routing protocol when used";
} }
skipping to change at page 11, line 32 skipping to change at page 11, line 30
} }
container level-2 { container level-2 {
uses isis:overload-global-cfg; uses isis:overload-global-cfg;
description description
"Level 2 configuration."; "Level 2 configuration.";
} }
} }
If an implementation does not support per level configuration for a If an implementation does not support per level configuration for a
parameter modeled with per level configuration, the implementation parameter modeled with per level configuration, the implementation
SHOULD advertise a deviation to announce the non-support of the should advertise a deviation to announce the non-support of the
level-1 and level-2 containers. level-1 and level-2 containers.
Finally, if an implementation supports per level configuration but Finally, if an implementation supports per level configuration but
does not support the level-1-2 configuration, it SHOULD also does not support the level-1-2 configuration, it SHOULD also
advertise a deviation. advertise a deviation.
2.4. Per-Interface Parameters 2.4. Per-Interface Parameters
The per-interface section of the IS-IS instance describes the The per-interface section of the IS-IS instance describes the
interface specific parameters. interface specific parameters.
The interface is modeled as a reference to an existing interface The interface is modeled as a reference to an existing interface
defined in the "ietf-interfaces" YANG model ([RFC8343]. defined in the "ietf-interfaces" YANG model ([RFC8343].
Each interface has some interface-specific parameters that may have a Each interface has some interface-specific parameters that may have a
different per level value as described in previous section. An different per level value as described in previous section. An
interface-specific parameter always overrides an IS-IS global interface-specific parameter MUST be preferred over an IS-IS global
parameter. parameter.
Some parameters like hello-padding are defined as containers to allow Some parameters like hello-padding are defined as containers to allow
easy extension by vendor specific modules. easy extension by vendor specific modules.
+--rw interfaces +--rw interfaces
+--rw interface* [name] +--rw interface* [name]
+--rw name if:interface-ref +--rw name if:interface-ref
+--rw level-type? level +--rw enable? boolean {admin-control}?
+--rw lsp-pacing-interval? +--rw level-type? level
| rt-types:timer-value-milliseconds +--rw lsp-pacing-interval?
+--rw lsp-retransmit-interval? | rt-types:timer-value-milliseconds
| rt-types:timer-value-seconds16 +--rw lsp-retransmit-interval?
+--rw passive? boolean | rt-types:timer-value-seconds16
+--rw csnp-interval? +--rw passive? boolean
| rt-types:timer-value-seconds16 +--rw csnp-interval?
+--rw hello-padding | rt-types:timer-value-seconds16
| +--rw enable? boolean +--rw hello-padding
+--rw mesh-group-enable? mesh-group-state | +--rw enable? boolean
+--rw mesh-group? uint8 +--rw mesh-group-enable? mesh-group-state
+--rw interface-type? interface-type +--rw mesh-group? uint8
+--rw enable? boolean {admin-control}? +--rw interface-type? interface-type
+--rw tag* uint32 {prefix-tag}? +--rw tag* uint32 {prefix-tag}?
+--rw tag64* uint64 {prefix-tag64}? +--rw tag64* uint64 {prefix-tag64}?
+--rw node-flag? boolean {node-flag}? +--rw node-flag? boolean {node-flag}?
+--rw hello-authentication +--rw hello-authentication
| +--rw (authentication-type)? | +--rw (authentication-type)?
| | +--:(key-chain) {key-chain}? | | +--:(key-chain) {key-chain}?
| | | +--rw key-chain? | | | +--rw key-chain? key-chain:key-chain-ref
| | | key-chain:key-chain-ref | | +--:(password)
| | +--:(password) | | +--rw key? string
| | +--rw key? string | | +--rw crypto-algorithm? identityref
| | +--rw crypto-algorithm? identityref | +--rw level-1
| +--rw level-1 | | +--rw (authentication-type)?
| | +--rw (authentication-type)? | | +--:(key-chain) {key-chain}?
| | +--:(key-chain) {key-chain}? | | | +--rw key-chain? key-chain:key-chain-ref
| | | +--rw key-chain? | | +--:(password)
| | | key-chain:key-chain-ref | | +--rw key? string
| | +--:(password) | | +--rw crypto-algorithm? identityref
| | +--rw key? string | +--rw level-2
| | +--rw crypto-algorithm? identityref | +--rw (authentication-type)?
| +--rw level-2 | +--:(key-chain) {key-chain}?
| +--rw (authentication-type)? | | +--rw key-chain? key-chain:key-chain-ref
| +--:(key-chain) {key-chain}? | +--:(password)
| | +--rw key-chain? | +--rw key? string
| | key-chain:key-chain-ref | +--rw crypto-algorithm? identityref
| +--:(password) +--rw hello-interval
| +--rw key? string | +--rw value? rt-types:timer-value-seconds16
| +--rw crypto-algorithm? identityref | +--rw level-1
+--rw hello-interval | | +--rw value? rt-types:timer-value-seconds16
| +--rw value? rt-types:timer-value-seconds16 | +--rw level-2
| +--rw level-1 | +--rw value? rt-types:timer-value-seconds16
| | +--rw value? rt-types:timer-value-seconds16 +--rw hello-multiplier
| +--rw level-2 | +--rw value? uint16
| +--rw value? rt-types:timer-value-seconds16 | +--rw level-1
+--rw hello-multiplier | | +--rw value? uint16
| +--rw value? uint16 | +--rw level-2
| +--rw level-1 | +--rw value? uint16
| | +--rw value? uint16 +--rw priority
| +--rw level-2 | +--rw value? uint8
| +--rw value? uint16 | +--rw level-1
+--rw priority | | +--rw value? uint8
| +--rw value? uint8 | +--rw level-2
| +--rw level-1 | +--rw value? uint8
| | +--rw value? uint8 +--rw metric
| +--rw level-2 | +--rw value? wide-metric
| +--rw value? uint8 | +--rw level-1
+--rw metric | | +--rw value? wide-metric
| +--rw value? wide-metric | +--rw level-2
| +--rw level-1 | +--rw value? wide-metric
| | +--rw value? wide-metric +--rw bfd {bfd}?
| +--rw level-2 | +--rw enable? boolean
| +--rw value? wide-metric | +--rw local-multiplier? multiplier
+--rw bfd {bfd}? | +--rw (interval-config-type)?
| +--rw enable? boolean | +--:(tx-rx-intervals)
| +--rw local-multiplier? multiplier | | +--rw desired-min-tx-interval? uint32
| +--rw (interval-config-type)? | | +--rw required-min-rx-interval? uint32
| +--:(tx-rx-intervals) | +--:(single-interval) {single-minimum-interval}?
| | +--rw desired-min-tx-interval? uint32 | +--rw min-interval? uint32
| | +--rw required-min-rx-interval? uint32 +--rw address-families {nlpid-control}?
| +--:(single-interval) {single-minimum-interval}? | +--rw address-family-list* [address-family]
| +--rw min-interval? uint32 | +--rw address-family iana-rt-types:address-family
+--rw address-families {nlpid-control}? +--rw mpls
| +--rw address-family-list* [address-family] | +--rw ldp
| +--rw address-family iana-rt-types:address-family | +--rw igp-sync? boolean {ldp-igp-sync}?
+--rw mpls +--rw fast-reroute {fast-reroute}?
| +--rw ldp | +--rw lfa {lfa}?
| +--rw igp-sync? boolean {ldp-igp-sync}? | +--rw candidate-enable? boolean
+--rw fast-reroute {fast-reroute}? | +--rw enable? boolean
| +--rw lfa {lfa}? | +--rw remote-lfa {remote-lfa}?
| +--rw candidate-enable? boolean | | +--rw enable? boolean
| +--rw enable? boolean | +--rw level-1
| +--rw remote-lfa {remote-lfa}? | | +--rw candidate-enable? boolean
| | +--rw enable? boolean | | +--rw enable? boolean
| +--rw level-1 | | +--rw remote-lfa {remote-lfa}?
| | +--rw candidate-enable? boolean | | +--rw enable? boolean
| | +--rw enable? boolean | +--rw level-2
| | +--rw remote-lfa {remote-lfa}? | +--rw candidate-enable? boolean
| | +--rw enable? boolean | +--rw enable? boolean
| +--rw level-2 | +--rw remote-lfa {remote-lfa}?
| +--rw candidate-enable? boolean | +--rw enable? boolean
| +--rw enable? boolean +--ro adjacencies
| +--rw remote-lfa {remote-lfa}? | +--ro adjacency* []
| +--rw enable? boolean | +--ro neighbor-sys-type? level
+--ro adjacencies | +--ro neighbor-sysid? system-id
| +--ro adjacency* [] | +--ro neighbor-extended-circuit-id?
| +--ro neighbor-sys-type? level | | extended-circuit-id
| +--ro neighbor-sysid? system-id | +--ro neighbor-snpa? snpa
| +--ro neighbor-extended-circuit-id? | +--ro usage? level
| | extended-circuit-id | +--ro hold-timer?
| +--ro neighbor-snpa? snpa | rt-types:timer-value-seconds16
| +--ro usage? level | +--ro neighbor-priority? uint8
| +--ro hold-timer? | +--ro lastuptime? yang:timestamp
| | rt-types:timer-value-seconds16 | +--ro state? adj-state-type
| +--ro neighbor-priority? uint8 +--ro event-counters
| +--ro lastuptime? yang:timestamp | +--ro adjacency-changes? uint32
| +--ro state? adj-state-type | +--ro adjacency-number? uint32
+--ro event-counters | +--ro init-fails? uint32
| +--ro adjacency-changes? uint32 | +--ro adjacency-rejects? uint32
| +--ro adjacency-number? uint32 | +--ro id-len-mismatch? uint32
| +--ro init-fails? uint32 | +--ro max-area-addresses-mismatch? uint32
| +--ro adjacency-rejects? uint32 | +--ro authentication-type-fails? uint32
| +--ro id-len-mismatch? uint32 | +--ro authentication-fails? uint32
| +--ro max-area-addresses-mismatch? uint32 | +--ro lan-dis-changes? uint32
| +--ro authentication-type-fails? uint32 +--ro packet-counters
| +--ro authentication-fails? uint32 | +--ro level* [level]
| +--ro lan-dis-changes? uint32 | +--ro level level-number
+--ro packet-counters | +--ro iih
| +--ro level* [level] | | +--ro in? uint32
| +--ro level level-number | | +--ro out? uint32
| +--ro iih | +--ro ish
| | +--ro in? uint32 | | +--ro in? uint32
| | +--ro out? uint32 | | +--ro out? uint32
| +--ro ish | +--ro esh
| | +--ro in? uint32 | | +--ro in? uint32
| | +--ro out? uint32 | | +--ro out? uint32
| +--ro esh | +--ro lsp
| | +--ro in? uint32 | | +--ro in? uint32
| | +--ro out? uint32 | | +--ro out? uint32
| +--ro lsp | +--ro psnp
| | +--ro in? uint32 | | +--ro in? uint32
| | +--ro out? uint32 | | +--ro out? uint32
| +--ro psnp | +--ro csnp
| | +--ro in? uint32 | | +--ro in? uint32
| | +--ro out? uint32 | | +--ro out? uint32
| +--ro csnp | +--ro unknown
| | +--ro in? uint32 | +--ro in? uint32
| | +--ro out? uint32 +--rw discontinuity-time? yang:date-and-time
| +--ro unknown +--rw topologies {multi-topology}?
| +--ro in? uint32 +--rw topology* [name]
| +--ro out? uint32 +--rw name
+--rw topologies {multi-topology}? | -> ../../../../../../../../rt:ribs/rib/name
+--rw topology* [name] +--rw metric
+--rw name -> +--rw value? wide-metric
../../../../../../../../rt:ribs/rib/name +--rw level-1
+--rw metric | +--rw value? wide-metric
+--rw value? wide-metric +--rw level-2
+--rw level-1 +--rw value? wide-metric
| +--rw value? wide-metric
+--rw level-2
+--rw value? wide-metric
rpcs: rpcs:
+---x clear-adjacency +---x clear-adjacency
| +---w input | +---w input
| +---w routing-protocol-instance-name -> | +---w routing-protocol-instance-name
/rt:routing/control-plane-protocols/control-plane-protocol/name | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +---w level? level | +---w level? level
| +---w interface? if:interface-ref | +---w interface? if:interface-ref
+---x clear-database +---x clear-database
+---w input +---w input
+---w routing-protocol-instance-name -> +---w routing-protocol-instance-name
/rt:routing/control-plane-protocols/control-plane-protocol/name -> /rt:routing/control-plane-protocols/control-plane-protocol/name
+---w level? level +---w level? level
notifications: notifications:
+---n database-overload +---n database-overload
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name?
/rt:routing/control-plane-protocols/control-plane-protocol/name | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro overload? enumeration | +--ro overload? enumeration
+---n lsp-too-large +---n lsp-too-large
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name?
/rt:routing/control-plane-protocols/control-plane-protocol/name | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro pdu-size? uint32 | +--ro pdu-size? uint32
| +--ro lsp-id? lsp-id | +--ro lsp-id? lsp-id
+---n if-state-change +---n if-state-change
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name?
/rt:routing/control-plane-protocols/control-plane-protocol/name | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro state? if-state-type | +--ro state? if-state-type
+---n corrupted-lsp-detected +---n corrupted-lsp-detected
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name?
/rt:routing/control-plane-protocols/control-plane-protocol/name | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro lsp-id? lsp-id | +--ro lsp-id? lsp-id
+---n attempt-to-exceed-max-sequence +---n attempt-to-exceed-max-sequence
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name?
/rt:routing/control-plane-protocols/control-plane-protocol/name | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro lsp-id? lsp-id | +--ro lsp-id? lsp-id
+---n id-len-mismatch +---n id-len-mismatch
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name?
/rt:routing/control-plane-protocols/control-plane-protocol/name | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro pdu-field-len? uint8 | +--ro pdu-field-len? uint8
| +--ro raw-pdu? binary | +--ro raw-pdu? binary
+---n max-area-addresses-mismatch +---n max-area-addresses-mismatch
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name?
/rt:routing/control-plane-protocols/control-plane-protocol/name | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro max-area-addresses? uint8 | +--ro max-area-addresses? uint8
| +--ro raw-pdu? binary | +--ro raw-pdu? binary
+---n own-lsp-purge +---n own-lsp-purge
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name?
/rt:routing/control-plane-protocols/control-plane-protocol/name | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro lsp-id? lsp-id | +--ro lsp-id? lsp-id
+---n sequence-number-skipped +---n sequence-number-skipped
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name?
/rt:routing/control-plane-protocols/control-plane-protocol/name | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro lsp-id? lsp-id | +--ro lsp-id? lsp-id
+---n authentication-type-failure +---n authentication-type-failure
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name?
/rt:routing/control-plane-protocols/control-plane-protocol/name | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary | +--ro raw-pdu? binary
+---n authentication-failure +---n authentication-failure
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name?
/rt:routing/control-plane-protocols/control-plane-protocol/name | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary | +--ro raw-pdu? binary
+---n version-skew +---n version-skew
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name?
/rt:routing/control-plane-protocols/control-plane-protocol/name | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro protocol-version? uint8 | +--ro protocol-version? uint8
| +--ro raw-pdu? binary | +--ro raw-pdu? binary
+---n area-mismatch +---n area-mismatch
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name?
/rt:routing/control-plane-protocols/control-plane-protocol/name | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary | +--ro raw-pdu? binary
+---n rejected-adjacency +---n rejected-adjacency
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name?
/rt:routing/control-plane-protocols/control-plane-protocol/name | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary | +--ro raw-pdu? binary
| +--ro reason? string | +--ro reason? string
+---n protocols-supported-mismatch +---n protocols-supported-mismatch
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name?
/rt:routing/control-plane-protocols/control-plane-protocol/name | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary | +--ro raw-pdu? binary
| +--ro protocols* uint8 | +--ro protocols* uint8
+---n lsp-error-detected +---n lsp-error-detected
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name?
/rt:routing/control-plane-protocols/control-plane-protocol/name | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro lsp-id? lsp-id | +--ro lsp-id? lsp-id
| +--ro raw-pdu? binary | +--ro raw-pdu? binary
| +--ro error-offset? uint32 | +--ro error-offset? uint32
| +--ro tlv-type? uint8 | +--ro tlv-type? uint8
+---n adjacency-state-change +---n adjacency-state-change
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name?
/rt:routing/control-plane-protocols/control-plane-protocol/name | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro neighbor? string | +--ro neighbor? string
| +--ro neighbor-system-id? system-id | +--ro neighbor-system-id? system-id
| +--ro state? adj-state-type | +--ro state? adj-state-type
| +--ro reason? string | +--ro reason? string
+---n lsp-received +---n lsp-received
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name?
/rt:routing/control-plane-protocols/control-plane-protocol/name | -> /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro lsp-id? lsp-id | +--ro lsp-id? lsp-id
| +--ro sequence? uint32 | +--ro sequence? uint32
| +--ro received-timestamp? yang:timestamp | +--ro received-timestamp? yang:timestamp
| +--ro neighbor-system-id? system-id | +--ro neighbor-system-id? system-id
+---n lsp-generation +---n lsp-generation
+--ro routing-protocol-name? -> +--ro routing-protocol-name?
/rt:routing/control-plane-protocols/control-plane-protocol/name -> /rt:routing/control-plane-protocols/control-plane-protocol/name
+--ro isis-level? level +--ro isis-level? level
+--ro lsp-id? lsp-id +--ro lsp-id? lsp-id
+--ro sequence? uint32 +--ro sequence? uint32
+--ro send-timestamp? yang:timestamp +--ro send-timestamp? yang:timestamp
2.5. Authentication Parameters 2.5. Authentication Parameters
The module enables authentication configuration through the IETF key- The module enables authentication configuration through the IETF key-
chain module ([RFC8177]). The IS-IS module imports the "ietf-key- chain module [RFC8177]. The IS-IS module imports the "ietf-key-
chain" module and reuses some groupings to allow global and per chain" module and reuses some groupings to allow global and per
interface configuration of authentication. If a global interface configuration of authentication. If a global
authentication is configured, an implementation SHOULD authenticate authentication is configured, an implementation SHOULD authenticate
PSNPs (Partial Sequence Number Packets), CSNPs (Complete Sequence PSNPs (Partial Sequence Number Packets), CSNPs (Complete Sequence
Number Packets) and LSPs (Link State Packets) with the authentication Number Packets) and LSPs (Link State Packets) with the authentication
parameters supplied. The authentication of HELLO PDUs (Protocol Data parameters supplied. The authentication of HELLO PDUs (Protocol Data
Units) can be activated on a per interface basis. Units) can be activated on a per interface basis.
2.6. IGP/LDP synchronization 2.6. IGP/LDP synchronization
skipping to change at page 19, line 41 skipping to change at page 19, line 31
As IS-IS protocol is based on ISO protocol suite, some ISO parameters As IS-IS protocol is based on ISO protocol suite, some ISO parameters
may be required. may be required.
This module augments interface configuration model to support ISO This module augments interface configuration model to support ISO
configuration parameters. configuration parameters.
The clns-mtu can be defined under the interface. The clns-mtu can be defined under the interface.
2.8. IP FRR 2.8. IP FRR
This YANG module supports LFA (Loop Free Alternates) ([RFC5286]) and This YANG module supports LFA (Loop Free Alternates) [RFC5286] and
remote LFA ([RFC7490]) as IP FRR techniques. The "fast-reroute" remote LFA [RFC7490] as IP FRR techniques. The "fast-reroute"
container may be augmented by other models to support other IPFRR container may be augmented by other models to support other IPFRR
flavors (MRT, TILFA ...). flavors (MRT, TILFA ...).
The current version of the model supports activation of LFA and The current version of the model supports activation of LFA and
remote LFA at interface only. The global "lfa" container is present remote LFA at interface only. The global "lfa" container is present
but kept empty to allow augmentation with vendor specific properties but kept empty to allow augmentation with vendor specific properties
like policies. like policies.
Remote LFA is considered as a child of LFA. Remote LFA cannot be Remote LFA is considered as a child of LFA. Remote LFA cannot be
enabled if LFA is not enabled. enabled if LFA is not enabled.
The "candidate-disabled" allows to mark an interface to not be used The "candidate-enable" allows to mark an interface to be used as a
as a backup. backup.
2.9. Operational States 2.9. Operational States
Operational states are provided in the module in various places: Operational states are provided in the module in various places:
o system-counters: provides statistical informations about the o system-counters: provides statistical informations about the
global system. global system.
o interface : provides configuration state informations for each o interface : provides configuration state informations for each
interface. interface.
skipping to change at page 20, line 34 skipping to change at page 20, line 27
o lsp-log: provides informations about LSP events on the node o lsp-log: provides informations about LSP events on the node
(reception of an LSP or modification of local LSP). This SHOULD (reception of an LSP or modification of local LSP). This SHOULD
be implemented as a wrapping buffer and an implementation MAY be implemented as a wrapping buffer and an implementation MAY
decide to log refresh LSPs or not. decide to log refresh LSPs or not.
o local-rib: provides the IS-IS internal routing table view. o local-rib: provides the IS-IS internal routing table view.
o database: provides details on the current LSDB. o database: provides details on the current LSDB.
o hostnames: provides informations about system-id to hostname o hostnames: provides informations about system-id to hostname
mappings (as defined in [RFC5301]). mappings [RFC5301].
o fast-reroute: provides informations about IP FRR. o fast-reroute: provides informations about IP FRR.
3. RPC Operations 3. RPC Operations
The "ietf-isis" module defines two RPC operations: The "ietf-isis" module defines two RPC operations:
o clear-database: reset the content of a particular IS-IS database o clear-database: reset the content of a particular IS-IS database
and restart database synchronization with the neighbors. and restart database synchronization with the neighbors.
o clear-adjacency: restart a particular set of IS-IS adjacencies. o clear-adjacency: restart a particular set of IS-IS adjacencies.
4. Notifications 4. Notifications
The "ietf-isis" module introduces some notifications : The "ietf-isis" module introduces some notifications :
database-overload: raised when overload condition is changed. database-overload: raised when overload condition is changed.
lsp-too-large: raised when the system tries to propagate a too lsp-too-large: raised when the system tries to propagate a PDU
large PDU. that is too large.
if-state-change: raised when the state of an interface changes. if-state-change: raised when the state of an interface changes.
corrupted-lsp-detected: raised when the system finds that an LSP corrupted-lsp-detected: raised when the system finds that an LSP
that was stored in memory has become corrupted. that was stored in memory has become corrupted.
attempt-to-exceed-max-sequence: This notification is sent when the attempt-to-exceed-max-sequence: This notification is sent when the
system wraps the 32-bit sequence counter of an LSP. system wraps the 32-bit sequence counter of an LSP.
id-len-mismatch: This notification is sent when we receive a PDU id-len-mismatch: This notification is sent when we receive a PDU
skipping to change at page 22, line 43 skipping to change at page 22, line 38
The module reuses types from [RFC6991] and [RFC8294]. The module reuses types from [RFC6991] and [RFC8294].
To support BFD for fast detection, the module relies on To support BFD for fast detection, the module relies on
[I-D.ietf-bfd-yang]. [I-D.ietf-bfd-yang].
6. IS-IS YANG Module 6. IS-IS YANG Module
The following RFCs, drafts and external standards are not referenced The following RFCs, drafts and external standards are not referenced
in the document text but are referenced in the ietf-isis.yang module: in the document text but are referenced in the ietf-isis.yang module:
[ISO-10589], [RFC1195], [RFC5029], [RFC5130], [RFC5305], [RFC5306], [ISO-10589], [RFC1195], [RFC2966], [RFC4090],[RFC5029], [RFC5130],
[RFC5308], [RFC5880], [RFC5881], [RFC6119], [RFC6232], [RFC7794], [RFC5305], [RFC5306], [RFC5307], [RFC5308], [RFC5880], [RFC5881],
[RFC7810], [RFC7917], [RFC8405]. [RFC6119], [RFC6232], [RFC7794], [RFC7981], [RFC8570], [RFC7917],
[RFC8405].
<CODE BEGINS> file "ietf-isis@2019-03-07.yang" <CODE BEGINS> file "ietf-isis@2019-09-05.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 "RFC 8349 - A YANG Data Model for Routing reference "RFC 8349 - A YANG Data Model for Routing
Management (NMDA Version)"; Management (NMDA Version)";
} }
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
skipping to change at page 24, line 23 skipping to change at page 24, line 20
<mailto:stephane.litkowski@orange.com> <mailto:stephane.litkowski@orange.com>
Derek Yeung Derek Yeung
<mailto:derek@arrcus.com> <mailto:derek@arrcus.com>
Acee Lindem Acee Lindem
<mailto:acee@cisco.com> <mailto:acee@cisco.com>
Jeffrey Zhang Jeffrey Zhang
<mailto:zzhang@juniper.net> <mailto:zzhang@juniper.net>
Ladislav Lhotka Ladislav Lhotka
<mailto:llhotka@nic.cz> <mailto:llhotka@nic.cz>
Yi Yang
<mailto:yiya@cisco.com>
Dean Bogdanovic
<mailto:deanb@juniper.net>
Kiran Agrahara Sreenivasa
<mailto:kkoushik@brocade.com>
Yingzhen Qu
<mailto:yiqu@cisco.com>
Jeff Tantsura
<mailto:jefftant.ietf@gmail.com>
"; ";
description description
"This YANG module defines the generic configuration and "This YANG module defines the generic configuration and
operational state for the IS-IS protocol. operational state for the IS-IS protocol common to all
It is intended that the module vendor implementations. It is intended that the module
will be extended by vendors to define vendor-specific will be extended by vendors to define vendor-specific
IS-IS configuration parameters and policies, IS-IS configuration parameters and policies,
for example, route maps or route policies. for example, route maps or route policies.
This YANG module conforms to the Network Management This YANG model conforms to the Network Management
Datastore Architecture (NDMA) as described in RFC 8242. Datastore Architecture (NMDA) as described in RFC 8242.
Copyright (c) 2018 IETF Trust and the persons identified as Copyright (c) 2018 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject to
to the license terms contained in, the Simplified BSD License the license terms contained in, the Simplified BSD License set
set forth in Section 4.c of the IETF Trust's Legal Provisions forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(http://trustee.ietf.org/license-info). (https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; This version of this YANG module is part of RFC XXXX
see the RFC itself for full legal notices. (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
for full legal notices.
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document 'MAY', and 'OPTIONAL' in this document are to be interpreted as
are to be interpreted as described in BCP 14 [RFC2119] described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
[RFC8174] when, and only when, they appear in all capitals, they appear in all capitals, as shown here.
as shown here.
";
revision 2019-03-07 { This version of this YANG module is part of RFC XXXX;
see the RFC itself for full legal notices.";
revision 2019-09-05 {
description description
"Initial revision."; "Initial revision.";
reference "RFC XXXX"; reference "RFC XXXX";
} }
/* Identities */ /* Identities */
identity isis { identity isis {
base rt:routing-protocol; base rt:routing-protocol;
description "Identity for the IS-IS routing protocol."; description "Identity for the IS-IS routing protocol.";
skipping to change at page 26, line 4 skipping to change at page 25, line 39
"Identity used when the LSP log reason is "Identity used when the LSP log reason is
a refresh LSP received."; a refresh LSP received.";
} }
identity content-change { identity content-change {
base lsp-log-reason; base lsp-log-reason;
description description
"Identity used when the LSP log reason is "Identity used when the LSP log reason is
a change in the content of the LSP."; a change in the content of the LSP.";
} }
identity frr-protection-method {
description
"Base identity for a Fast Reroute protection method.";
}
identity frr-protection-method-lfa {
base frr-protection-method;
description "Loop Free Alternate as defined in RFC5286.";
}
identity frr-protection-method-rlfa {
base frr-protection-method;
description "Remote Loop Free Alternate as defined in RFC7490.";
}
identity frr-protection-method-rsvpte {
base frr-protection-method;
description "RSVP-TE as defined in RFC4090.";
}
identity frr-protection-available-type {
description "Base identity for Fast Reroute protection types
provided by an alternate path.";
}
identity frr-protection-available-node-type {
base frr-protection-available-type;
description "Node protection is provided by the alternate.";
}
identity frr-protection-available-link-type {
base frr-protection-available-type;
description "Link protection is provided by the alternate.";
}
identity frr-protection-available-srlg-type {
base frr-protection-available-type;
description "SRLG protection is provided by the alternate.";
}
identity frr-protection-available-downstream-type {
base frr-protection-available-type;
description "The alternate is downstream on the path.";
}
identity frr-protection-available-other-type {
base frr-protection-available-type;
description "The level of protection is unknown.";
}
identity unidirectional-link-delay-subtlv-flag {
description "Base identity for unidirectional-link-delay
subTLV flags. Flags are defined in RFC8570.";
}
identity unidirectional-link-delay-subtlv-a-flag {
base unidirectional-link-delay-subtlv-flag;
description
"The A bit represents the Anomalous (A) bit.
The A bit is set when the measured value of
this parameter exceeds its configured
maximum threshold.
The A bit is cleared when the measured value
falls below its configured reuse threshold.
If the A bit is clear,
the value represents steady-state link performance.";
}
identity min-max-unidirectional-link-delay-subtlv-flag {
description
"Base identity for min-max-unidirectional-link-delay
subTLV flags. Flags are defined in RFC8570.";
}
identity min-max-unidirectional-link-delay-subtlv-a-flag {
base min-max-unidirectional-link-delay-subtlv-flag;
description
"The A bit represents the Anomalous (A) bit.
The A bit is set when the measured value of
this parameter exceeds its configured
maximum threshold.
The A bit is cleared when the measured value
falls below its configured reuse threshold.
If the A bit is clear,
the value represents steady-state link performance.";
}
identity unidirectional-link-loss-subtlv-flag {
description "Base identity for unidirectional-link-loss
subTLV flags. Flags are defined in RFC8570.";
}
identity unidirectional-link-loss-subtlv-a-flag {
base unidirectional-link-loss-subtlv-flag;
description
"The A bit represents the Anomalous (A) bit.
The A bit is set when the measured value of
this parameter exceeds its configured
maximum threshold.
The A bit is cleared when the measured value
falls below its configured reuse threshold.
If the A bit is clear,
the value represents steady-state link performance.";
}
identity tlv229-flag {
description "Base identity for TLV229 flags. Flags are defined
in RFC5120.";
}
identity tlv229-overload-flag {
base tlv229-flag;
description
"If set, the originator is overloaded,
and must be avoided in path calculation.";
}
identity tlv229-attached-flag {
base tlv229-flag;
description
"If set, the originator is attached to
another area using the referred metric.";
}
identity router-capability-flag {
description "Base identity for router capability flags.
Flags are defined in RFC7981.";
}
identity router-capability-flooding-flag {
base router-capability-flag;
description
"Quote from RFC7981: 'If the S bit is set,
the IS-IS Router CAPABILITY
TLV MUST be flooded across the entire routing
domain. If the S bit is clear, the TLV MUST NOT
be leaked between levels. This bit MUST NOT
be altered during the TLV leaking'.";
}
identity router-capability-down-flag {
base router-capability-flag;
description
"Quote from RFC7981: 'When the IS-IS Router CAPABILITY TLV
is leaked from level-2 to level-1, the D bit MUST be set.
Otherwise, this bit MUST be clear. IS-IS Router
capability TLVs with the D bit set MUST NOT be
leaked from level-1 to level-2 in to prevent
TLV looping'.";
}
identity lsp-flag {
description "Base identity for LSP attributes.
Attributes are defined in ISO 10589";
}
identity lsp-partitioned-flag {
base lsp-flag;
description "Originator partition repair supported";
}
identity lsp-attached-error-metric-flag {
base lsp-flag;
description "Set when originator is attached to
another area using the referred metric.";
}
identity lsp-attached-delay-metric-flag {
base lsp-flag;
description "Set when originator is attached to
another area using the referred metric.";
}
identity lsp-attached-expense-metric-flag {
base lsp-flag;
description "Set when originator is attached to
another area using the referred metric.";
}
identity lsp-attached-default-metric-flag {
base lsp-flag;
description "Set when originator is attached to
another area using the referred metric.";
}
identity lsp-overload-flag {
base lsp-flag;
description
"If set, the originator is overloaded,
and must be avoided in path calculation.";
}
identity lsp-l1system-flag {
base lsp-flag;
description
"Set when the Intermediate System has an L1 type.";
}
identity lsp-l2system-flag {
base lsp-flag;
description
"Set when the Intermediate System has an L2 type.";
}
/* Feature definitions */ /* Feature definitions */
feature osi-interface {
description "Support of OSI specific parameters on an
interface.";
}
feature poi-tlv { feature poi-tlv {
description "Support of Purge Originator Identification."; description "Support of Purge Originator Identification.";
reference "RFC 6232 - Purge Originator Identification TLV reference "RFC 6232 - Purge Originator Identification TLV
for IS-IS"; for IS-IS";
} }
feature ietf-spf-delay { feature ietf-spf-delay {
description description
"Support for IETF SPF delay algorithm."; "Support for IETF SPF delay algorithm.";
reference "RFC 8405 - SPF Back-off algorithm for link reference "RFC 8405 - SPF Back-off algorithm for link
state IGPs"; state IGPs";
skipping to change at page 27, line 4 skipping to change at page 30, line 34
description description
"LDP IGP synchronization."; "LDP IGP synchronization.";
reference "RFC5443 - LDP IGP Synchronization."; reference "RFC5443 - 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
"Non-Stop-Routing (NSR) support."; "Non-Stop-Routing (NSR) support. The IS-IS NSR feature
allows a router with redundant control-plane capability
(e.g., dual Route-Processor (RP) cards) to maintain its
state and adjacencies during planned and unplanned
IS-IS instance restarts. It differs from graceful-restart
or Non-Stop Forwarding (NSF) in that no protocol signaling
or assistance from adjacent IS-IS neighbors is required to
recover control-plane state.";
} }
feature lfa { feature lfa {
description description
"Support for Loop-Free Alternates (LFAs)."; "Support for Loop-Free Alternates (LFAs).";
reference "RFC5286 - Basic Specification of IP Fast-Reroute: reference "RFC5286 - Basic Specification of IP Fast-Reroute:
Loop-free Alternates"; Loop-free Alternates";
} }
feature remote-lfa { feature remote-lfa {
description description
"Support for Remote Loop-Free Alternates (R-LFAs)."; "Support for Remote Loop-Free Alternates (R-LFAs).";
skipping to change at page 27, line 16 skipping to change at page 31, line 4
feature lfa { feature lfa {
description description
"Support for Loop-Free Alternates (LFAs)."; "Support for Loop-Free Alternates (LFAs).";
reference "RFC5286 - Basic Specification of IP Fast-Reroute: reference "RFC5286 - Basic Specification of IP Fast-Reroute:
Loop-free Alternates"; Loop-free Alternates";
} }
feature remote-lfa { feature remote-lfa {
description description
"Support for Remote Loop-Free Alternates (R-LFAs)."; "Support for Remote Loop-Free Alternates (R-LFAs).";
reference "RFC7490 - Remote Loop-Free Alternate Fast Reroute"; reference "RFC7490 - Remote Loop-Free Alternate Fast Reroute";
} }
feature overload-max-metric { feature overload-max-metric {
description description
"Support of overload by setting "Support of overload by setting all links to max metric.
all links to max metric."; In IS-IS, the overload bit is usually used to signal that
a node cannot be used as a transit. The overload-max-metric
feature brings a similar behavior leveraging on setting all
the link metrics to MAX_METRIC.";
} }
feature prefix-tag { feature prefix-tag {
description description
"Support for 32-bit prefix tags"; "Support for 32-bit prefix tags";
reference "RFC5130 - A Policy Control Mechanism in reference "RFC5130 - A Policy Control Mechanism in
IS-IS Using Administrative Tags"; IS-IS Using Administrative Tags";
} }
feature prefix-tag64 { feature prefix-tag64 {
description description
"Support for 64-bit prefix tags"; "Support for 64-bit prefix tags";
skipping to change at page 33, line 44 skipping to change at page 37, line 34
"This container may be augmented with "This container may be augmented with
global parameters for Loop-Free Alternatives (LFA). global parameters for Loop-Free Alternatives (LFA).
Container creation has no effect on LFA activation."; Container creation has no effect on 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
"Enable the interface to be used as backup."; "Enable the interface to be used as backup.";
} }
leaf enable { leaf enable {
type boolean; type boolean;
default false; default false;
description description
"Activates LFA - Per-prefix LFA computation "Activates LFA - Per-prefix LFA computation
is assumed."; is assumed.";
} }
skipping to change at page 36, line 22 skipping to change at page 40, line 13
leaf non-best-reason { leaf non-best-reason {
type string { type string {
length "1..255"; length "1..255";
} }
description description
"Information field to describe why the alternate "Information field to describe why the alternate
is not best. The length should be limited to 255 is not best. The length should be limited to 255
unicode characters. The expected format is a single unicode characters. The expected format is a single
line text."; line text.";
} }
leaf protection-available { container protection-available {
type bits { leaf-list protection-types {
bit node-protect { type identityref {
position 0; base frr-protection-available-type;
description
"Node protection available.";
}
bit link-protect {
position 1;
description
"Link protection available.";
}
bit srlg-protect {
position 2;
description
"SRLG protection available.";
}
bit downstream-protect {
position 3;
description
"Downstream protection available.";
}
bit other {
position 4;
description
"Other protection available.";
} }
description "This list contains a set of protection
types defined as identities.
An identity must be added for each type of
protection provided by the alternate.
As an example, if an alternate provides
SRLG, node and link protection, three
identities must be added in this list:
one for SRLG protection, one for node
protection, one for link protection.";
} }
description "Protection provided by the alternate."; description "Protection types provided by the alternate.";
} }
leaf alternate-metric1 { leaf alternate-metric1 {
type uint32; type uint32;
description description
"Metric from Point of Local Repair (PLR) to "Metric from Point of Local Repair (PLR) to
destination through the alternate path."; destination through the alternate path.";
} }
leaf alternate-metric2 { leaf alternate-metric2 {
type uint32; type uint32;
description description
skipping to change at page 38, line 4 skipping to change at page 41, line 29
"Per AF unprotected prefix statistics."; "Per AF 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 string; type identityref {
description "Protection method used. base frr-protection-method;
The expected format is a single word. }
As example: LFA,rLFA, MRT, RSVP-TE..."; description "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 "Address-family"; description "Address-family";
} }
leaf total-routes { leaf total-routes {
skipping to change at page 40, line 15 skipping to change at page 43, line 40
description "IS-IS metric of a route."; description "IS-IS metric of a route.";
} }
leaf-list tag { leaf-list tag {
type uint64; type uint64;
description description
"List of tags associated with the route. The leaf "List of tags associated with the route. The leaf
describes both 32-bit and 64-bit tags."; describes both 32-bit and 64-bit tags.";
} }
leaf route-type { leaf route-type {
type enumeration { type enumeration {
enum l2-up-internal { enum l2-intra-area {
description "Level 2 internal route description "Level 2 internal route. As per RFC2966,
and not leaked to a lower level"; the prefix is directly connected to the
} advertising router. It cannot be
enum l1-up-internal { distinguished from an L1->L2 inter-area
description "Level 1 internal route route.";
and not leaked to a lower level";
}
enum l2-up-external {
description "Level 2 external route
and not leaked to a lower level";
} }
enum l1-up-external { enum l1-intra-area {
description "Level 1 external route description "Level 1 internal route. As per RFC2966,
and not leaked to a lower level"; the prefix is directly connected to the
advertising router.";
} }
enum l2-down-internal { enum l2-external {
description "Level 2 internal route description "Level 2 external route. As per RFC2966,
and leaked to a lower level"; such a route is learned from other IGPs.
It cannot be distinguished from an L1->L2
inter-area external route.";
} }
enum l1-down-internal { enum l1-external {
description "Level 1 internal route description "Level 1 external route. As per RFC2966,
and leaked to a lower level"; such a route is learned from other IGPs.";
} }
enum l2-down-external { enum l1-inter-area {
description "Level 2 external route description "These prefixes are learned via L2 routing.";
and leaked to a lower level";
} }
enum l1-down-external { enum l1-inter-area-external {
description "Level 1 external route description "These prefixes are learned via L2 routing
and leaked to a lower level"; towards an l2-external route.";
} }
} }
description "IS-IS route type."; description "IS-IS route type.";
} }
} }
/* Grouping definitions for configuration and ops state */ /* Grouping definitions for configuration and ops state */
grouping adjacency-state { grouping adjacency-state {
container adjacencies { container adjacencies {
config false; config false;
list adjacency { list adjacency {
leaf neighbor-sys-type { leaf neighbor-sys-type {
type level; type level;
description description
"Level capability of neighboring system"; "Level capability of neighboring system";
skipping to change at page 41, line 36 skipping to change at page 45, line 12
type snpa; type snpa;
description description
"SNPA of the neighbor"; "SNPA of the neighbor";
} }
leaf usage { leaf usage {
type level; type level;
description description
"Define the level(s) activated on the adjacency. "Define the level(s) activated on the adjacency.
On a p2p link this might be level 1 and 2, On a p2p link this might be level 1 and 2,
but on a LAN, the usage will be level 1 but on a LAN, the usage will be level 1
between peers at level 1 or level 2 between between neighbors at level 1 or level 2 between
peers 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 "The holding time in seconds for this
adjacency. This value is based on adjacency. This value is based on
received hello PDUs and the elapsed received hello PDUs and the elapsed
time since receipt."; time since receipt.";
} }
skipping to change at page 42, line 41 skipping to change at page 46, line 15
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
"Enable/Disable the protocol."; "Enable/Disable the protocol.";
} }
description description
"Grouping for admin control."; "Grouping for admin 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;
skipping to change at page 45, line 28 skipping to change at page 48, line 49
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
"This leaf specifies the authentication key. The "This leaf specifies the authentication key. The
length of the key may be dependent on the length of the key may be dependent on the
cryptographic algorithm. In cases where it is cryptographic algorithm.";
not, a key length of at least 32 octets should be
supported to allow for interoperability with
strong keys.";
} }
leaf crypto-algorithm { leaf crypto-algorithm {
type identityref { type identityref {
base key-chain:crypto-algorithm; base key-chain:crypto-algorithm;
} }
description description
"Cryptographic algorithm associated with key."; "Cryptographic algorithm associated with key.";
} }
} }
description "Choice of authentication."; description "Choice of authentication.";
skipping to change at page 48, line 5 skipping to change at page 51, line 25
leaf key-chain { leaf key-chain {
type key-chain:key-chain-ref; type key-chain:key-chain-ref;
description "Reference to a key-chain."; description "Reference to a key-chain.";
} }
} }
case password { case password {
leaf key { leaf key {
type string; type string;
description "Authentication key specification - The description "Authentication key specification - The
length of the key may be dependent on the length of the key may be dependent on the
cryptographic algorithm. In cases where cryptographic algorithm.";
it is not, a key length of at least 32 octets
should be supported to allow for
interoperability with strong keys.";
} }
leaf crypto-algorithm { leaf crypto-algorithm {
type identityref { type identityref {
base key-chain:crypto-algorithm; base key-chain:crypto-algorithm;
} }
description description
"Cryptographic algorithm associated with key."; "Cryptographic algorithm associated with key.";
} }
} }
description "Choice of authentication."; description "Choice of authentication.";
skipping to change at page 50, line 47 skipping to change at page 54, line 15
} }
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.";
} }
leaf helper-enable { leaf helper-enable {
type boolean; type boolean;
default true; default "true";
description description
"Enable local IS-IS router as graceful restart helper."; "Enable local IS-IS router as graceful restart helper.";
} }
description "Graceful-Restart Configuration."; description "Graceful-Restart Configuration.";
} }
container nsr { container nsr {
if-feature nsr; if-feature nsr;
description "Non-Stop Routing (NSR) configuration."; description "Non-Stop Routing (NSR) configuration.";
leaf enable { leaf enable {
type boolean; type boolean;
default false; default false;
description "Enable/Disable Non-Stop Routing (NSR)."; description "Enable/Disable Non-Stop Routing (NSR).";
} }
} }
skipping to change at page 53, line 42 skipping to change at page 57, line 10
"Maximum number of Equal-Cost Multi-Path (ECMP) paths."; "Maximum number of Equal-Cost Multi-Path (ECMP) paths.";
} }
container ietf-spf-delay { container ietf-spf-delay {
if-feature ietf-spf-delay; if-feature ietf-spf-delay;
uses ietf-spf-delay; uses ietf-spf-delay;
description "IETF SPF delay algorithm configuration."; description "IETF SPF delay algorithm configuration.";
} }
description description
"SPF calculation control."; "SPF calculation control.";
} }
description "Grouping for SPF global parameters."; description "Grouping for SPF global parameters.";
} }
grouping instance-config { grouping instance-config {
description "IS-IS global configuration grouping"; description "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
skipping to change at page 55, line 11 skipping to change at page 58, line 26
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
"IS-IS instance operational state.";
uses spf-log;
uses lsp-log;
uses hostname-db;
uses lsdb;
uses local-rib;
uses system-counters;
uses instance-fast-reroute-state;
leaf discontinuity-time {
type yang:date-and-time;
description description
"IS-IS instance operational state."; "The time on the most recent occasion at which any one
uses spf-log; or more of this IS-IS instance's counters suffered a
uses lsp-log; discontinuity. If no such discontinuities have occurred
uses hostname-db; since the IS-IS instance was last re-initialized, then
uses lsdb; this node contains the time the IS-IS instance was
uses local-rib; re-initialized which normally occurs when it was
uses system-counters; created.";
uses instance-fast-reroute-state; }
} }
grouping multi-topology-config { grouping multi-topology-config {
description "Per-topology configuration"; description "Per-topology configuration";
container default-metric { container default-metric {
uses default-metric-global-cfg; uses default-metric-global-cfg;
container level-1 { container level-1 {
uses default-metric-global-cfg; uses default-metric-global-cfg;
description "level-1 specific configuration"; description "level-1 specific configuration";
} }
skipping to change at page 55, line 41 skipping to change at page 59, line 19
uses default-metric-global-cfg; uses default-metric-global-cfg;
description "level-2 specific configuration"; description "level-2 specific configuration";
} }
description "Default metric per-topology configuration"; description "Default metric per-topology configuration";
} }
uses node-tag-config; uses node-tag-config;
} }
grouping interface-config { grouping interface-config {
description "Interface configuration grouping"; description "Interface configuration grouping";
uses admin-control;
leaf level-type { leaf level-type {
type level; type level;
default "level-all"; default "level-all";
description "IS-IS level of the interface."; description "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
skipping to change at page 57, line 8 skipping to change at page 60, line 37
description "IS-IS interface mesh-group ID."; description "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 on the interface. This "Type of adjacency to be established on the interface. This
dictates the type of hello messages that are used."; dictates the type of hello messages that are used.";
} }
uses admin-control;
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
skipping to change at page 60, line 4 skipping to change at page 63, line 31
container level-1 { container level-1 {
uses metric-cfg; uses metric-cfg;
description "level-1 specific configuration"; description "level-1 specific configuration";
} }
container level-2 { container level-2 {
uses metric-cfg; uses metric-cfg;
description "level-2 specific configuration"; description "level-2 specific configuration";
} }
description "Metric IS-IS interface configuration."; description "Metric IS-IS interface configuration.";
} }
} }
grouping interface-state { grouping interface-state {
description description
"IS-IS interface operational state."; "IS-IS interface operational state.";
uses adjacency-state; uses adjacency-state;
uses event-counters; uses event-counters;
uses packet-counters; uses packet-counters;
leaf discontinuity-time {
type yang:date-and-time;
description
"The time on the most recent occasion at which any one
or more of this IS-IS interfaces's counters suffered a
discontinuity. If no such discontinuities have occurred
since the IS-IS interface was last re-initialized, then
this node contains the time the IS-IS interface was
re-initialized which normally occurs when it was
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.";
} }
skipping to change at page 62, line 36 skipping to change at page 66, line 25
type uint32; type uint32;
description description
"Number of times we ran SPF at this level."; "Number of times we ran SPF at this level.";
} }
description description
"List of supported levels."; "List of supported levels.";
} }
description description
"List counters for the IS-IS protocol instance"; "List counters for the IS-IS protocol instance";
} }
description "System counters grouping."; description
"Grouping for IS-IS system counters";
} }
grouping event-counters { grouping event-counters {
container event-counters { container event-counters {
config false; config false;
leaf adjacency-changes { leaf adjacency-changes {
type uint32; type uint32;
description description
"The number of times an adjacency state change has "The number of times an adjacency state change has
occurred on this interface."; occurred on this interface.";
skipping to change at page 65, line 44 skipping to change at page 69, line 33
type uint32; type uint32;
description "Sent CSNP PDUs."; description "Sent CSNP PDUs.";
} }
description "Number of CSNP PDUs received/sent."; description "Number of CSNP PDUs received/sent.";
} }
container unknown { container unknown {
leaf in { leaf in {
type uint32; type uint32;
description "Received unknown PDUs."; description "Received unknown PDUs.";
} }
leaf out {
type uint32;
description "Sent unknown PDUs.";
}
description "Number of unknown PDUs received/sent."; description "Number of unknown PDUs received/sent.";
} }
description description
"List of packet counter for supported levels."; "List of packet counter for supported levels.";
} }
description "Packet counters per IS-IS level."; description "Packet counters per IS-IS level.";
} }
description description
"Grouping for per IS-IS Level packet counters."; "Grouping for per IS-IS Level packet counters.";
} }
skipping to change at page 75, line 32 skipping to change at page 79, line 17
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
in RFC7810"; in RFC8570";
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 one."; from the local neighbor to the remote one.";
leaf flags { container flags {
type bits { leaf-list unidirectional-link-delay-subtlv-flags {
bit A { type identityref {
position 7; base unidirectional-link-delay-subtlv-flag;
description }
"The A bit represents the Anomalous (A) bit. description
The A bit is set when the measured value of "This list contains identities for the bits
this parameter exceeds its configured which are set.";
maximum threshold.
The A bit is cleared when the measured value
falls below its configured reuse threshold.
If the A bit is clear,
the value represents steady-state link performance.";
}
} }
description description
"Flags."; "unidirectional-link-delay subTLV 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 min and max delay "Container for the min and max delay
from the local neighbor to the remote one."; from the local neighbor to the remote one.";
leaf flags { container flags {
type bits { leaf-list min-max-unidirectional-link-delay-subtlv-flags {
bit A { type identityref {
position 7; base min-max-unidirectional-link-delay-subtlv-flag;
}
description description
"The A bit represents the Anomalous (A) bit. "This list contains identities for the bits which are
The A bit is set when the measured value of set.";
this parameter exceeds its configured
maximum threshold.
The A bit is cleared when the measured value
falls below its configured reuse threshold.
If the A bit is clear,
the value represents steady-state link performance.";
}
} }
description description
"Flags."; "min-max-unidirectional-link-delay subTLV 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;
skipping to change at page 77, line 13 skipping to change at page 80, line 34
description description
"Container for the average delay variation "Container for the average delay variation
from the local neighbor to the remote one."; from the local neighbor to the remote one.";
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 the packet loss "Container for the packet loss
from the local neighbor to the remote one."; from the local neighbor to the remote one.";
leaf flags { container flags {
type bits { leaf-list unidirectional-link-loss-subtlv-flags {
bit A { type identityref {
position 7; base unidirectional-link-loss-subtlv-flag;
}
description description
"The A bit represents the Anomalous (A) bit. "This list contains identities for the bits which are
The A bit is set when the measured value of set.";
this parameter exceeds its configured
maximum threshold.
The A bit is cleared when the measured value
falls below its configured reuse threshold.
If the A bit is clear,
the value represents steady-state link performance.";
}
} }
description description
"Flags."; "unidirectional-link-loss subTLV flags.";
} }
leaf value { leaf value {
type uint32; type uint32;
units percent; units percent;
description description
"Link packet loss expressed as a percentage "Link packet loss expressed as a percentage
of the total traffic sent over a configurable interval."; of the total traffic sent over a configurable interval.";
} }
} }
container unidirectional-link-residual-bandwidth { container unidirectional-link-residual-bandwidth {
skipping to change at page 83, line 42 skipping to change at page 87, line 9
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 identifier of topology."; "Multi-Topology identifier of topology.";
} }
container attributes {
leaf attributes { leaf-list flags {
type bits { type identityref {
bit overload { base tlv229-flag;
description }
"If set, the originator is overloaded, description
and must be avoided in path calculation."; "This list contains identities for the bits which are
} set.";
bit attached {
description
"If set, the originator is attached to
another area using the referred metric.";
} }
} description
description "TLV 229 flags.";
"Attributes of the LSP for the associated
topology.";
} }
} }
description description
"IS-IS node topology information container - "IS-IS node topology information container -
IS-IS reference is TLV 229."; IS-IS reference is TLV 229.";
} }
description "Grouping for TLV229."; description "Grouping for TLV229.";
} }
grouping tlv242-router-capabilities { grouping tlv242-router-capabilities {
container router-capabilities { container router-capabilities {
list router-capability { list router-capability {
leaf flags { container flags {
type bits { leaf-list router-capability-flags {
bit flooding { type identityref {
position 0; base router-capability-flag;
description }
"If the S bit is set, the IS-IS Router CAPABILITY
TLV MUST be flooded across the entire routing
domain. If the S bit is clear, the TLV MUST NOT
be leaked between levels. This bit MUST NOT
be altered during the TLV leaking.";
}
bit down {
position 1;
description description
"When the IS-IS Router CAPABILITY TLV is leaked "This list contains identities for the bits which are
from level-2 to level-1, the D bit MUST be set. set.";
Otherwise, this bit MUST be clear. IS-IS Router
capability TLVs with the D bit set MUST NOT be
leaked from level-1 to level-2 in to prevent
TLV looping.";
}
} }
description "Router Capability Flags"; description
"Router capability flags.";
} }
container node-tags { container node-tags {
if-feature node-tag; if-feature node-tag;
list node-tag { list node-tag {
leaf tag { leaf tag {
type uint32; type uint32;
description "Node tag value."; description "Node tag value.";
} }
description "List of tags."; description "List of tags.";
} }
description "Container for node admin tags"; description "Container for node admin tags";
} }
uses unknown-tlvs; uses unknown-tlvs;
leaf binary {
type binary;
description
"Binary encoding of the IS-IS node capabilities";
}
description description
"IS-IS node capabilities. This list element may "IS-IS node capabilities. This list element may
be extended with detailed information - IS-IS be extended with detailed information - IS-IS
reference is TLV 242."; reference is TLV 242.";
} }
description "List of router capability TLVs."; description "List of router capability TLVs.";
} }
description "Grouping for TLV242."; description "Grouping for TLV242.";
} }
skipping to change at page 87, line 15 skipping to change at page 90, line 7
type uint16; type uint16;
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.";
} }
leaf attributes { container attributes {
type bits { leaf-list lsp-flags {
bit partitioned { type identityref {
description "Originator partition repair supported"; base lsp-flag;
} }
bit attached-error { description
description "This list contains identities for the bits which are
"If set, the originator is attached to set.";
another area using the referred metric.";
}
bit attached-expense {
description
"If set, the originator is attached to
another area using the referred metric.";
}
bit attached-delay {
description
"If set, the originator is attached to
another area using the referred metric.";
}
bit attached-default {
description
"If set, the originator is attached to
another area using the referred metric.";
}
bit overload {
description
"If set, the originator is overloaded,
and must be avoided in path calculation.";
} }
} description "LSP attributes.";
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;
skipping to change at page 91, line 25 skipping to change at page 93, line 41
description "IS-IS-specific route attributes."; description "IS-IS-specific route attributes.";
} }
uses route-content; uses route-content;
description description
"This augments route object in RIB with IS-IS-specific "This augments route object in RIB with IS-IS-specific
attributes."; attributes.";
} }
augment "/if:interfaces/if:interface" { augment "/if:interfaces/if:interface" {
leaf clns-mtu { leaf clns-mtu {
if-feature osi-interface;
type uint16; type uint16;
description "CLNS MTU of the interface"; description "CLNS MTU of the interface";
} }
description "ISO specific interface parameters."; description "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 "rt:type = 'isis:isis'" { when "rt:type = 'isis:isis'" {
description description
"This augment is only valid when routing protocol "This augment is only valid when routing protocol
instance type is 'isis'"; instance type is 'isis'";
} }
description description
"This augments a routing protocol instance with IS-IS "This augments a routing protocol instance with IS-IS
specific parameters."; specific parameters.";
skipping to change at page 96, line 4 skipping to change at page 98, line 24
uses notification-instance-hdr; uses notification-instance-hdr;
uses notification-interface-hdr; uses notification-interface-hdr;
leaf pdu-size { leaf pdu-size {
type uint32; type uint32;
description "Size of the LSP PDU"; description "Size of the LSP PDU";
} }
leaf lsp-id { leaf lsp-id {
type lsp-id; type lsp-id;
description "LSP ID"; description "LSP ID";
} }
description description
"This notification is sent when we attempt to propagate "This notification is sent when we attempt to propagate
an LSP that is larger than the dataLinkBlockSize for the an LSP that is larger than the dataLinkBlockSize (ISO10589)
circuit. The notification generation must be throttled for the circuit. The notification generation must be
with at least 5 seconds between successive throttled with at least 5 seconds between successive
notifications."; notifications.";
} }
notification if-state-change { notification if-state-change {
uses notification-instance-hdr; uses notification-instance-hdr;
uses notification-interface-hdr; uses notification-interface-hdr;
leaf state { leaf state {
type if-state-type; type if-state-type;
description "Interface state."; description "Interface state.";
skipping to change at page 103, line 4 skipping to change at page 105, line 22
description "LSP ID"; description "LSP ID";
} }
leaf sequence { leaf sequence {
type uint32; type uint32;
description "Sequence number of the received LSP."; description "Sequence number of the received LSP.";
} }
leaf send-timestamp { leaf send-timestamp {
type yang:timestamp; type yang:timestamp;
description "Timestamp when our LSP was regenerated."; description "Timestamp when our LSP was regenerated.";
} }
description description
"This notification is sent when an LSP is regenerated. "This notification is sent when an LSP is regenerated.
The notification generation must be throttled with at The notification generation must be throttled with at
least 5 seconds between successive notifications."; least 5 seconds between successive notifications.";
} }
} }
<CODE ENDS> <CODE ENDS>
7. Security Considerations 7. Security Considerations
The YANG module specified in this document defines a schema for data The YANG modules specified in this document define a schema for data
that is designed to be accessed via network management protocols such that is designed to be accessed via network management protocols such
as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer
is the secure transport layer, and the mandatory-to-implement secure is the secure transport layer, and the mandatory-to-implement secure
transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer
is HTTPS, and the mandatory-to-implement secure transport is TLS is HTTPS, and the mandatory-to-implement secure transport is TLS
[RFC8446] [RFC8446].
The Network Configuration Access Control Model (NACM) [RFC8341] The NETCONF Access Control Model (NACM) [RFC8341] provides the means
provides the means to restrict access for particular NETCONF or to restrict access for particular NETCONF or RESTCONF users to a pre-
RESTCONF users to a preconfigured subset of all available NETCONF or configured subset of all available NETCONF or RESTCONF protocol
RESTCONF protocol operations and content. operations and content.
There are a number of data nodes defined in this YANG module that are There are a number of data nodes defined in ietf-isis.yang module
writable/creatable/deletable (i.e., config true, which is the that are writable/creatable/deletable (i.e., config true, which is
default). These data nodes may be considered sensitive or vulnerable the default). These data nodes may be considered sensitive or
in some network environments. Write operations (e.g., edit-config) vulnerable in some network environments. Write operations (e.g.,
to these data nodes without proper protection can have a negative edit-config) to these data nodes without proper protection can have a
effect on network operations. For IS-IS, the ability to modify IS-IS negative effect on network operations. Writable data node represent
configuration will allow the entire IS-IS domain to be compromised configuration of each instance and interface. These correspond to
including creating adjacencies with unauthorized routers to misroute the following schema nodes:
traffic, isolate routers, or mount a massive Denial-of-Service (DoS)
attack. A user should consider all the configuration nodes are
sensible.
Some of the readable data nodes in this YANG module may be considered /isis
sensitive or vulnerable in some network environments. It is thus
important to control read access (e.g., via get, get-config, or /isis/interfaces/interface[name]
notification) to these data nodes. The exposure of the Link State
Database (LSDB) will expose the detailed topology of the network For IS-IS, the ability to modify IS-IS configuration will allow the
including authentication parameters. Implementations MUST NOT entire IS-IS domain to be compromised including forming adjacencies
provide a configured authentication key in a clear text format in with unauthorized routers to misroute traffic or mount a massive
response to any request (e.g., via get, get-config). Denial-of-Service (DoS) attack. For example, adding IS-IS on any
unprotected interface could allow an IS-IS adjacency to be formed
with an unauthorized and malicious neighbor. Once an adjacency is
formed, traffic could be hijacked. As a simpler example, a Denial-
of-Service attack could be mounted by changing the cost of an IS-IS
interface to be asymmetric such that a hard routing loop ensues. In
general, unauthorized modification of most IS-IS features will pose
there own set of security risks and the "Security Considerations" in
the respective reference RFCs should be consulted.
Some of the readable data nodes in the ietf-isi.yang module may be
considered sensitive or vulnerable in some network environments. It
is thus important to control read access (e.g., via get, get-config,
or notification) to these data nodes. The exposure of the Link State
Database (LSDB) will expose the detailed topology of the network.
The Link State Database (LSDB) is represented by the following schema
node:
/isis/database
Exposure of the Link State Database includes information beyond the
scope of the IS-IS router and this may be undesirable since exposure
may facilitate other attacks. Additionally, the complete IP network
topology and, if deployed, the traffic engineering topology of the
IS-IS domain can be reconstucted. Network operators may consider
their topologies to be sensitive confidential data.
For IS-IS authentication, configuration is supported via the For IS-IS authentication, configuration is supported via the
specification of key-chain [RFC8177] or the direction specification specification of key-chain [RFC8177] or the direction specification
of key and authentication algorithm. Hence, authentication of key and authentication algorithm. Hence, authentification
configuration using the "auth-table-trailer" case in the configuration using the "auth-table-trailer" case in the
"authentication" container inherits the security considerations of "authentication" container inherits the security considerations of
[RFC8177]. This includes the considerations with respect to the [RFC8177]. This includes the considerations with respect to the
local storage and handling of authentication keys. local storage and handling of authentication keys.
Some of the RPC operations in this YANG module may be considered Some of the RPC operations in this YANG module may be considered
sensitive or vulnerable in some network environments. It is thus sensitive or vulnerable in some network environments. It is thus
important to control access to these operations. The OSPF YANG important to control access to these operations. The IS-IS YANG
module support the "clear-adjacency" and "clear-database" RPCs. If module support the "clear-adjacency" and "clear-database" RPCs. If
access to either of these is compromised, they can result in access too either of these is compromised, they can result in
temporary network outages be employed to mount DoS attacks. temporary network outages be employed to mount DoS attacks.
The actual authentication key data (whether locally specified or part
of a key-chain) is sensitive and needs to be kept secret from
unauthorized parties; compromise of the key data would allow an
attacker to forge IS-IS traffic that would be accepted as authentic,
potentially compromising the entirety IS-IS domain.
8. Contributors 8. Contributors
Authors would like to thank Kiran Agrahara Sreenivasa, Dean Authors would like to thank Kiran Agrahara Sreenivasa, Dean
Bogdanovic, Yingzhen Qu, Yi Yang, Jeff Tanstura for their major Bogdanovic, Yingzhen Qu, Yi Yang, Jeff Tanstura for their major
contributions to the draft. contributions to the draft.
9. IANA Considerations 9. IANA Considerations
The IANA is requested to assign two new URIs from the IETF XML The IANA is requested to assign two new URIs from the IETF XML
registry ([RFC3688]). Authors are suggesting the following URI: registry [RFC3688]. Authors are suggesting the following URI:
URI: urn:ietf:params:xml:ns:yang:ietf-isis URI: urn:ietf:params:xml:ns:yang:ietf-isis
Registrant Contact: The IESG Registrant Contact: The IESG
XML: N/A, the requested URI is an XML namespace XML: N/A, the requested URI is an XML namespace
This document also requests one new YANG module name in the YANG This document also requests one new YANG module name in the YANG
Module Names registry ([RFC6020]) with the following suggestion: Module Names registry [RFC6020] with the following suggestion:
name: ietf-isis name: ietf-isis
namespace: urn:ietf:params:xml:ns:yang:ietf-isis namespace: urn:ietf:params:xml:ns:yang:ietf-isis
prefix: isis prefix: isis
reference: RFC XXXX reference: RFC XXXX
10. References 10. References
10.1. Normative References 10.1. Normative References
[I-D.ietf-bfd-yang] [I-D.ietf-bfd-yang]
Rahman, R., Zheng, L., Jethanandani, M., Networks, J., and Rahman, R., Zheng, L., Jethanandani, M., Networks, J., and
G. Mirsky, "YANG Data Model for Bidirectional Forwarding G. Mirsky, "YANG Data Model for Bidirectional Forwarding
Detection (BFD)", draft-ietf-bfd-yang-17 (work in Detection (BFD)", draft-ietf-bfd-yang-17 (work in
progress), August 2018. progress), August 2018.
[ISO-10589] [ISO-10589]
ISO, , "Intermediate System to Intermediate System intra- "Intermediate System to Intermediate System intra- domain
domain routing information exchange protocol for use in routeing information exchange protocol for use in
conjunction with the protocol for providing the conjunction with the protocol for providing the
connectionless-mode network service (ISO 8473)", connectionless-mode network service (ISO 8473)",
International Standard 10589: 2002, Second Edition, 2002. International Standard 10589: 2002, Second Edition, 2002.
[RFC1195] Callon, R., "Use of OSI IS-IS for routing in TCP/IP and [RFC1195] Callon, R., "Use of OSI IS-IS for routing in TCP/IP and
dual environments", RFC 1195, DOI 10.17487/RFC1195, dual environments", RFC 1195, DOI 10.17487/RFC1195,
December 1990, <https://www.rfc-editor.org/info/rfc1195>. December 1990, <https://www.rfc-editor.org/info/rfc1195>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, <https://www.rfc- DOI 10.17487/RFC2119, March 1997,
editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC2966] Li, T., Przygienda, T., and H. Smit, "Domain-wide Prefix
Distribution with Two-Level IS-IS", RFC 2966,
DOI 10.17487/RFC2966, October 2000,
<https://www.rfc-editor.org/info/rfc2966>.
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
DOI 10.17487/RFC3688, January 2004, <https://www.rfc- DOI 10.17487/RFC3688, January 2004,
editor.org/info/rfc3688>. <https://www.rfc-editor.org/info/rfc3688>.
[RFC4090] Pan, P., Ed., Swallow, G., Ed., and A. Atlas, Ed., "Fast
Reroute Extensions to RSVP-TE for LSP Tunnels", RFC 4090,
DOI 10.17487/RFC4090, May 2005,
<https://www.rfc-editor.org/info/rfc4090>.
[RFC5029] Vasseur, JP. and S. Previdi, "Definition of an IS-IS Link [RFC5029] Vasseur, JP. and S. Previdi, "Definition of an IS-IS Link
Attribute Sub-TLV", RFC 5029, DOI 10.17487/RFC5029, Attribute Sub-TLV", RFC 5029, DOI 10.17487/RFC5029,
September 2007, <https://www.rfc-editor.org/info/rfc5029>. September 2007, <https://www.rfc-editor.org/info/rfc5029>.
[RFC5120] Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi [RFC5120] Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi
Topology (MT) Routing in Intermediate System to Topology (MT) Routing in Intermediate System to
Intermediate Systems (IS-ISs)", RFC 5120, Intermediate Systems (IS-ISs)", RFC 5120,
DOI 10.17487/RFC5120, February 2008, <https://www.rfc- DOI 10.17487/RFC5120, February 2008,
editor.org/info/rfc5120>. <https://www.rfc-editor.org/info/rfc5120>.
[RFC5130] Previdi, S., Shand, M., Ed., and C. Martin, "A Policy [RFC5130] Previdi, S., Shand, M., Ed., and C. Martin, "A Policy
Control Mechanism in IS-IS Using Administrative Tags", Control Mechanism in IS-IS Using Administrative Tags",
RFC 5130, DOI 10.17487/RFC5130, February 2008, RFC 5130, DOI 10.17487/RFC5130, February 2008,
<https://www.rfc-editor.org/info/rfc5130>. <https://www.rfc-editor.org/info/rfc5130>.
[RFC5286] Atlas, A., Ed. and A. Zinin, Ed., "Basic Specification for [RFC5286] Atlas, A., Ed. and A. Zinin, Ed., "Basic Specification for
IP Fast Reroute: Loop-Free Alternates", RFC 5286, IP Fast Reroute: Loop-Free Alternates", RFC 5286,
DOI 10.17487/RFC5286, September 2008, <https://www.rfc- DOI 10.17487/RFC5286, September 2008,
editor.org/info/rfc5286>. <https://www.rfc-editor.org/info/rfc5286>.
[RFC5301] McPherson, D. and N. Shen, "Dynamic Hostname Exchange [RFC5301] McPherson, D. and N. Shen, "Dynamic Hostname Exchange
Mechanism for IS-IS", RFC 5301, DOI 10.17487/RFC5301, Mechanism for IS-IS", RFC 5301, DOI 10.17487/RFC5301,
October 2008, <https://www.rfc-editor.org/info/rfc5301>. October 2008, <https://www.rfc-editor.org/info/rfc5301>.
[RFC5305] Li, T. and H. Smit, "IS-IS Extensions for Traffic [RFC5305] Li, T. and H. Smit, "IS-IS Extensions for Traffic
Engineering", RFC 5305, DOI 10.17487/RFC5305, October Engineering", RFC 5305, DOI 10.17487/RFC5305, October
2008, <https://www.rfc-editor.org/info/rfc5305>. 2008, <https://www.rfc-editor.org/info/rfc5305>.
[RFC5306] Shand, M. and L. Ginsberg, "Restart Signaling for IS-IS", [RFC5306] Shand, M. and L. Ginsberg, "Restart Signaling for IS-IS",
RFC 5306, DOI 10.17487/RFC5306, October 2008, RFC 5306, DOI 10.17487/RFC5306, October 2008,
<https://www.rfc-editor.org/info/rfc5306>. <https://www.rfc-editor.org/info/rfc5306>.
[RFC5307] Kompella, K., Ed. and Y. Rekhter, Ed., "IS-IS Extensions
in Support of Generalized Multi-Protocol Label Switching
(GMPLS)", RFC 5307, DOI 10.17487/RFC5307, October 2008,
<https://www.rfc-editor.org/info/rfc5307>.
[RFC5308] Hopps, C., "Routing IPv6 with IS-IS", RFC 5308, [RFC5308] Hopps, C., "Routing IPv6 with IS-IS", RFC 5308,
DOI 10.17487/RFC5308, October 2008, <https://www.rfc- DOI 10.17487/RFC5308, October 2008,
editor.org/info/rfc5308>. <https://www.rfc-editor.org/info/rfc5308>.
[RFC5443] Jork, M., Atlas, A., and L. Fang, "LDP IGP
Synchronization", RFC 5443, DOI 10.17487/RFC5443, March
2009, <https://www.rfc-editor.org/info/rfc5443>.
[RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection
(BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010,
<https://www.rfc-editor.org/info/rfc5880>. <https://www.rfc-editor.org/info/rfc5880>.
[RFC5881] Katz, D. and D. Ward, "Bidirectional Forwarding Detection [RFC5881] Katz, D. and D. Ward, "Bidirectional Forwarding Detection
(BFD) for IPv4 and IPv6 (Single Hop)", RFC 5881, (BFD) for IPv4 and IPv6 (Single Hop)", RFC 5881,
DOI 10.17487/RFC5881, June 2010, <https://www.rfc- DOI 10.17487/RFC5881, June 2010,
editor.org/info/rfc5881>. <https://www.rfc-editor.org/info/rfc5881>.
[RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for
the Network Configuration Protocol (NETCONF)", RFC 6020, the Network Configuration Protocol (NETCONF)", RFC 6020,
DOI 10.17487/RFC6020, October 2010, <https://www.rfc- DOI 10.17487/RFC6020, October 2010,
editor.org/info/rfc6020>. <https://www.rfc-editor.org/info/rfc6020>.
[RFC6119] Harrison, J., Berger, J., and M. Bartlett, "IPv6 Traffic [RFC6119] Harrison, J., Berger, J., and M. Bartlett, "IPv6 Traffic
Engineering in IS-IS", RFC 6119, DOI 10.17487/RFC6119, Engineering in IS-IS", RFC 6119, DOI 10.17487/RFC6119,
February 2011, <https://www.rfc-editor.org/info/rfc6119>. February 2011, <https://www.rfc-editor.org/info/rfc6119>.
[RFC6232] Wei, F., Qin, Y., Li, Z., Li, T., and J. Dong, "Purge [RFC6232] Wei, F., Qin, Y., Li, Z., Li, T., and J. Dong, "Purge
Originator Identification TLV for IS-IS", RFC 6232, Originator Identification TLV for IS-IS", RFC 6232,
DOI 10.17487/RFC6232, May 2011, <https://www.rfc- DOI 10.17487/RFC6232, May 2011,
editor.org/info/rfc6232>. <https://www.rfc-editor.org/info/rfc6232>.
[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
and A. Bierman, Ed., "Network Configuration Protocol and A. Bierman, Ed., "Network Configuration Protocol
(NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
<https://www.rfc-editor.org/info/rfc6241>. <https://www.rfc-editor.org/info/rfc6241>.
[RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure
Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011,
<https://www.rfc-editor.org/info/rfc6242>. <https://www.rfc-editor.org/info/rfc6242>.
skipping to change at page 107, line 10 skipping to change at page 110, line 33
[RFC7490] Bryant, S., Filsfils, C., Previdi, S., Shand, M., and N. [RFC7490] Bryant, S., Filsfils, C., Previdi, S., Shand, M., and N.
So, "Remote Loop-Free Alternate (LFA) Fast Reroute (FRR)", So, "Remote Loop-Free Alternate (LFA) Fast Reroute (FRR)",
RFC 7490, DOI 10.17487/RFC7490, April 2015, RFC 7490, DOI 10.17487/RFC7490, April 2015,
<https://www.rfc-editor.org/info/rfc7490>. <https://www.rfc-editor.org/info/rfc7490>.
[RFC7794] Ginsberg, L., Ed., Decraene, B., Previdi, S., Xu, X., and [RFC7794] Ginsberg, L., Ed., Decraene, B., Previdi, S., Xu, X., and
U. Chunduri, "IS-IS Prefix Attributes for Extended IPv4 U. Chunduri, "IS-IS Prefix Attributes for Extended IPv4
and IPv6 Reachability", RFC 7794, DOI 10.17487/RFC7794, and IPv6 Reachability", RFC 7794, DOI 10.17487/RFC7794,
March 2016, <https://www.rfc-editor.org/info/rfc7794>. March 2016, <https://www.rfc-editor.org/info/rfc7794>.
[RFC7810] Previdi, S., Ed., Giacalone, S., Ward, D., Drake, J., and
Q. Wu, "IS-IS Traffic Engineering (TE) Metric Extensions",
RFC 7810, DOI 10.17487/RFC7810, May 2016,
<https://www.rfc-editor.org/info/rfc7810>.
[RFC7917] Sarkar, P., Ed., Gredler, H., Hegde, S., Litkowski, S., [RFC7917] Sarkar, P., Ed., Gredler, H., Hegde, S., Litkowski, S.,
and B. Decraene, "Advertising Node Administrative Tags in and B. Decraene, "Advertising Node Administrative Tags in
IS-IS", RFC 7917, DOI 10.17487/RFC7917, July 2016, IS-IS", RFC 7917, DOI 10.17487/RFC7917, July 2016,
<https://www.rfc-editor.org/info/rfc7917>. <https://www.rfc-editor.org/info/rfc7917>.
[RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
RFC 7950, DOI 10.17487/RFC7950, August 2016, RFC 7950, DOI 10.17487/RFC7950, August 2016,
<https://www.rfc-editor.org/info/rfc7950>. <https://www.rfc-editor.org/info/rfc7950>.
[RFC7981] Ginsberg, L., Previdi, S., and M. Chen, "IS-IS Extensions
for Advertising Router Information", RFC 7981,
DOI 10.17487/RFC7981, October 2016,
<https://www.rfc-editor.org/info/rfc7981>.
[RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017,
<https://www.rfc-editor.org/info/rfc8040>. <https://www.rfc-editor.org/info/rfc8040>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8177] Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J. [RFC8177] Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J.
Zhang, "YANG Data Model for Key Chains", RFC 8177, Zhang, "YANG Data Model for Key Chains", RFC 8177,
DOI 10.17487/RFC8177, June 2017, <https://www.rfc- DOI 10.17487/RFC8177, June 2017,
editor.org/info/rfc8177>. <https://www.rfc-editor.org/info/rfc8177>.
[RFC8294] Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger, [RFC8294] Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger,
"Common YANG Data Types for the Routing Area", RFC 8294, "Common YANG Data Types for the Routing Area", RFC 8294,
DOI 10.17487/RFC8294, December 2017, <https://www.rfc- DOI 10.17487/RFC8294, December 2017,
editor.org/info/rfc8294>. <https://www.rfc-editor.org/info/rfc8294>.
[RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration
Access Control Model", STD 91, RFC 8341, Access Control Model", STD 91, RFC 8341,
DOI 10.17487/RFC8341, March 2018, <https://www.rfc- DOI 10.17487/RFC8341, March 2018,
editor.org/info/rfc8341>. <https://www.rfc-editor.org/info/rfc8341>.
[RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
and R. Wilton, "Network Management Datastore Architecture and R. Wilton, "Network Management Datastore Architecture
(NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018,
<https://www.rfc-editor.org/info/rfc8342>. <https://www.rfc-editor.org/info/rfc8342>.
[RFC8343] Bjorklund, M., "A YANG Data Model for Interface [RFC8343] Bjorklund, M., "A YANG Data Model for Interface
Management", RFC 8343, DOI 10.17487/RFC8343, March 2018, Management", RFC 8343, DOI 10.17487/RFC8343, March 2018,
<https://www.rfc-editor.org/info/rfc8343>. <https://www.rfc-editor.org/info/rfc8343>.
[RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for
Routing Management (NMDA Version)", RFC 8349, Routing Management (NMDA Version)", RFC 8349,
DOI 10.17487/RFC8349, March 2018, <https://www.rfc- DOI 10.17487/RFC8349, March 2018,
editor.org/info/rfc8349>. <https://www.rfc-editor.org/info/rfc8349>.
[RFC8405] Decraene, B., Litkowski, S., Gredler, H., Lindem, A., [RFC8405] Decraene, B., Litkowski, S., Gredler, H., Lindem, A.,
Francois, P., and C. Bowers, "Shortest Path First (SPF) Francois, P., and C. Bowers, "Shortest Path First (SPF)
Back-Off Delay Algorithm for Link-State IGPs", RFC 8405, Back-Off Delay Algorithm for Link-State IGPs", RFC 8405,
DOI 10.17487/RFC8405, June 2018, <https://www.rfc- DOI 10.17487/RFC8405, June 2018,
editor.org/info/rfc8405>. <https://www.rfc-editor.org/info/rfc8405>.
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
<https://www.rfc-editor.org/info/rfc8446>. <https://www.rfc-editor.org/info/rfc8446>.
10.2. Informative References [RFC8570] Ginsberg, L., Ed., Previdi, S., Ed., Giacalone, S., Ward,
D., Drake, J., and Q. Wu, "IS-IS Traffic Engineering (TE)
Metric Extensions", RFC 8570, DOI 10.17487/RFC8570, March
2019, <https://www.rfc-editor.org/info/rfc8570>.
[RFC5443] Jork, M., Atlas, A., and L. Fang, "LDP IGP 10.2. Informative References
Synchronization", RFC 5443, DOI 10.17487/RFC5443, March
2009, <https://www.rfc-editor.org/info/rfc5443>.
[RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
<https://www.rfc-editor.org/info/rfc8340>. <https://www.rfc-editor.org/info/rfc8340>.
Appendix A. Example of IS-IS configuration in XML Appendix A. Example of IS-IS configuration in XML
This section gives an example of configuration of an IS-IS instance This section gives an example of configuration of an IS-IS instance
on a device. The example is written in XML. on a device. The example is written in XML.
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> <routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing">
<name>SLI</name> <name>SLI</name>
<router-id>1.1.1.1</router-id> <router-id>1.1.1.1</router-id>
<control-plane-protocols> <control-plane-protocols>
<control-plane-protocol> <control-plane-protocol>
<name>ISIS-example</name> <name>ISIS-example</name>
<description/> <description/>
<type> <type>
<type <type xmlns:isis="urn:ietf:params:xml:ns:yang:ietf-isis">
xmlns:isis="urn:ietf:params:xml:ns:yang:ietf-isis">
isis:isis isis:isis
</type> </type>
</type> </type>
<isis xmlns="urn:ietf:params:xml:ns:yang:ietf-isis"> <isis xmlns="urn:ietf:params:xml:ns:yang:ietf-isis">
<enable>true</enable> <enable>true</enable>
<level-type>level-2</level-type> <level-type>level-2</level-type>
<system-id>87FC.FCDF.4432</system-id> <system-id>87FC.FCDF.4432</system-id>
<area-address>49.0001</area-address> <area-address>49.0001</area-address>
<mpls> <mpls>
<te-rid> <te-rid>
<ipv4-router-id>192.0.2.1</ipv4-router-id> <ipv4-router-id>192.0.2.1</ipv4-router-id>
</te-rid> </te-rid>
skipping to change at page 109, line 46 skipping to change at page 113, line 21
<name>Loopback0</name> <name>Loopback0</name>
<tag>200</tag> <tag>200</tag>
<metric> <metric>
<value>0</value> <value>0</value>
</metric> </metric>
<passive>true</passive> <passive>true</passive>
</interface> </interface>
<interface> <interface>
<name>Eth1</name> <name>Eth1</name>
<level-type>level-2</level-type> <level-type>level-2</level-type>
<interface-type>point-to-point</interface-type>
<interface-type>point-to-point</interface-type>
<metric> <metric>
<value>167890</value> <value>167890</value>
</metric> </metric>
</interface> </interface>
</interfaces> </interfaces>
</isis> </isis>
</control-plane-protocol> </control-plane-protocol>
</control-plane-protocols> </control-plane-protocols>
</routing> </routing>
<interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"> <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
<interface> <interface>
<name>Loopback0</name> <name>Loopback0</name>
<description/> <description/>
<type <type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">
xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">
ianaift:softwareLoopback ianaift:softwareLoopback
</type> </type>
<link-up-down-trap-enable>enabled</link-up-down-trap-enable>
<link-up-down-trap-enable>enabled</link-up-down-trap-enable>
<ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> <ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip">
<address> <address>
<ip>192.0.2.1</ip> <ip>192.0.2.1</ip>
<prefix-length>32</prefix-length> <prefix-length>32</prefix-length>
</address> </address>
</ipv4> </ipv4>
<ipv6 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> <ipv6 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip">
<address> <address>
<ip>2001:DB8::1</ip> <ip>2001:DB8::1</ip>
<prefix-length>128</prefix-length> <prefix-length>128</prefix-length>
</address> </address>
</ipv6> </ipv6>
</interface> </interface>
<interface> <interface>
<name>Eth1</name> <name>Eth1</name>
<description/> <description/>
<type <type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">
xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">
ianaift:ethernetCsmacd ianaift:ethernetCsmacd
</type> </type>
<link-up-down-trap-enable>enabled</link-up-down-trap-enable>
<link-up-down-trap-enable>enabled</link-up-down-trap-enable>
<ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> <ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip">
<address> <address>
<ip>198.51.100.1</ip> <ip>198.51.100.1</ip>
<prefix-length>30</prefix-length> <prefix-length>30</prefix-length>
</address> </address>
</ipv4> </ipv4>
<ipv6 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> <ipv6 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip">
<address> <address>
<ip>2001:DB8:0:0:FF::1</ip> <ip>2001:DB8:0:0:FF::1</ip>
<prefix-length>64</prefix-length> <prefix-length>64</prefix-length>
 End of changes. 141 change blocks. 
984 lines changed or deleted 1142 lines changed or added

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