draft-ietf-isis-yang-isis-cfg-14.txt   draft-ietf-isis-yang-isis-cfg-15.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: May 7, 2017 Arrcus, Inc Expires: August 5, 2017 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
November 03, 2016 February 01, 2017
YANG Data Model for IS-IS protocol YANG Data Model for IS-IS protocol
draft-ietf-isis-yang-isis-cfg-14 draft-ietf-isis-yang-isis-cfg-15
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", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
skipping to change at page 1, line 44 skipping to change at page 1, line 44
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 http://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 May 7, 2017. This Internet-Draft will expire on August 5, 2017.
Copyright Notice Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the Copyright (c) 2017 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 (http://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 . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Tree diagram . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Tree diagram . . . . . . . . . . . . . . . . . . . . . . 3
2. Design of the Data Model . . . . . . . . . . . . . . . . . . 3 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 3
2.1. IS-IS Configuration . . . . . . . . . . . . . . . . . . . 10 2.1. IS-IS Configuration . . . . . . . . . . . . . . . . . . . 11
2.2. Multitopology Parameters . . . . . . . . . . . . . . . . 10 2.2. Multitopology Parameters . . . . . . . . . . . . . . . . 11
2.3. Per-Level Parameters . . . . . . . . . . . . . . . . . . 10 2.3. Per-Level Parameters . . . . . . . . . . . . . . . . . . 12
2.4. Per-Interface Parameters . . . . . . . . . . . . . . . . 12 2.4. Per-Interface Parameters . . . . . . . . . . . . . . . . 13
2.5. Authentication Parameters . . . . . . . . . . . . . . . . 16 2.5. Authentication Parameters . . . . . . . . . . . . . . . . 17
2.6. IGP/LDP synchronization . . . . . . . . . . . . . . . . . 16 2.6. IGP/LDP synchronization . . . . . . . . . . . . . . . . . 17
2.7. ISO parameters . . . . . . . . . . . . . . . . . . . . . 16 2.7. ISO parameters . . . . . . . . . . . . . . . . . . . . . 17
2.8. IP FRR . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.8. IP FRR . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.9. Operational State . . . . . . . . . . . . . . . . . . . . 17 2.9. Operational States . . . . . . . . . . . . . . . . . . . 18
3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 17 3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 18
4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 18 4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 19
5. Interaction with Other YANG Modules . . . . . . . . . . . . . 22 5. Interaction with Other YANG Modules . . . . . . . . . . . . . 23
6. IS-IS YANG Module . . . . . . . . . . . . . . . . . . . . . . 22 6. IS-IS YANG Module . . . . . . . . . . . . . . . . . . . . . . 24
7. Security Considerations . . . . . . . . . . . . . . . . . . . 97 7. Security Considerations . . . . . . . . . . . . . . . . . . . 102
8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 98 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 103
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 98 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 103
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 98 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 103
11. Change log for ietf-isis YANG module . . . . . . . . . . . . 99 11. Change log for ietf-isis YANG module . . . . . . . . . . . . 104
11.1. From version -13 to version -14 . . . . . . . . . . . . 99 11.1. From version -14 to version -15 . . . . . . . . . . . . 104
11.2. From version -12 to version -13 . . . . . . . . . . . . 99 11.2. From version -13 to version -14 . . . . . . . . . . . . 104
11.3. From version -09 to version -12 . . . . . . . . . . . . 99 11.3. From version -12 to version -13 . . . . . . . . . . . . 104
11.4. From version -08 to version -09 . . . . . . . . . . . . 99 11.4. From version -09 to version -12 . . . . . . . . . . . . 105
11.5. From version -07 to version -08 . . . . . . . . . . . . 99 11.5. From version -08 to version -09 . . . . . . . . . . . . 105
11.6. From version -05 to version -07 . . . . . . . . . . . . 100 11.6. From version -07 to version -08 . . . . . . . . . . . . 105
11.7. From version -03 to version -05 . . . . . . . . . . . . 100 11.7. From version -05 to version -07 . . . . . . . . . . . . 105
11.8. From version -02 to version -03 . . . . . . . . . . . . 100 11.8. From version -03 to version -05 . . . . . . . . . . . . 106
11.9. From version -01 to version -02 . . . . . . . . . . . . 100 11.9. From version -02 to version -03 . . . . . . . . . . . . 106
11.10. From version -00 to version -01 . . . . . . . . . . . . 101 11.10. From version -01 to version -02 . . . . . . . . . . . . 106
11.11. From version -00 to version -01 . . . . . . . . . . . . 107
12. Normative References . . . . . . . . . . . . . . . . . . . . 101 12. Normative References . . . . . . . . . . . . . . . . . . . . 107
Appendix A. Example of IS-IS configuration in XML . . . . . . . 103 Appendix A. Example of IS-IS configuration in XML . . . . . . . 108
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 105 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 111
1. Introduction 1. Introduction
This document defines a YANG data model for IS-IS routing protocol. This document defines a YANG data model for IS-IS routing 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.
1.1. Tree diagram 1.1. Tree diagram
skipping to change at page 4, line 21 skipping to change at page 4, line 23
: :
+--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 {maximum-area-addresses}? +--rw maximum-area-addresses? uint8 {maximum-area-addresses}?
+--rw area-address* area-address +--rw area-address* area-address
+--rw mpls +--rw mpls
| +--rw ipv4-router-id? inet:ipv4-address {ipv4-router-id}? | +--rw ipv4-router-id? inet:ipv4-address {ipv4-router-id}?
| +--rw ipv6-router-id? inet:ipv6-address {ipv6-router-id}? | +--rw ipv6-router-id? inet:ipv6-address {ipv6-router-id}?
| +--rw igp-ldp-sync {igp-ldp-sync}? | +--rw ldp
+--rw reference-bandwidth? uint32 {reference-bandwidth}? | ...
+--rw auto-cost {auto-cost}?
| +--rw reference-bandwidth? uint32
| +--rw enable? boolean
+--rw lsp-mtu? uint16 +--rw lsp-mtu? uint16
+--rw lsp-lifetime? uint16 +--rw lsp-lifetime? uint16
+--rw lsp-refresh? uint16 {lsp-refresh}? +--rw lsp-refresh? uint16 {lsp-refresh}?
+--rw spf-control
| +--rw ietf-spf-delay {ietf-spf-delay}?
| ...
+--rw graceful-restart {graceful-restart}? +--rw graceful-restart {graceful-restart}?
| +--rw enable? boolean | +--rw enable? boolean
| +--rw restart-interval? uint16
| +--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 authentication +--rw authentication
| +--rw (authentication-type)? | +--rw (authentication-type)?
| | ... | | ...
| +--rw level-1 | +--rw level-1
| | ... | | ...
skipping to change at page 5, line 32 skipping to change at page 5, line 42
otocol: otocol:
+--ro isis +--ro isis
+--ro enable? boolean {admin-control}? +--ro enable? boolean {admin-control}?
+--ro level-type? level +--ro level-type? level
+--ro system-id? system-id +--ro system-id? system-id
+--ro maximum-area-addresses? uint8 {maximum-area-addresses}? +--ro maximum-area-addresses? uint8 {maximum-area-addresses}?
+--ro area-address* area-address +--ro area-address* area-address
+--ro mpls +--ro mpls
| +--ro ipv4-router-id? inet:ipv4-address {ipv4-router-id}? | +--ro ipv4-router-id? inet:ipv4-address {ipv4-router-id}?
| +--ro ipv6-router-id? inet:ipv6-address {ipv6-router-id}? | +--ro ipv6-router-id? inet:ipv6-address {ipv6-router-id}?
| +--ro igp-ldp-sync {igp-ldp-sync}? | +--ro ldp
+--ro reference-bandwidth? uint32 {reference-bandwidth}? | ...
+--ro auto-cost {auto-cost}?
| +--ro reference-bandwidth? uint32
| +--ro enable? boolean
+--ro lsp-mtu? uint16 +--ro lsp-mtu? uint16
+--ro lsp-lifetime? uint16 +--ro lsp-lifetime? uint16
+--ro lsp-refresh? uint16 {lsp-refresh}? +--ro lsp-refresh? uint16 {lsp-refresh}?
+--ro spf-control
| +--ro ietf-spf-delay {ietf-spf-delay}?
| ...
+--ro graceful-restart {graceful-restart}? +--ro graceful-restart {graceful-restart}?
| +--ro enable? boolean | +--ro enable? boolean
| +--ro restart-interval? uint16
| +--ro helper-enable? boolean
+--ro nsr {nsr}? +--ro nsr {nsr}?
| +--ro enable? boolean | +--ro enable? boolean
+--ro node-tags {node-tag}? +--ro node-tags {node-tag}?
| +--ro node-tag* [tag] | +--ro node-tag* [tag]
| ... | ...
+--ro authentication +--ro authentication
| +--ro (authentication-type)? | +--ro (authentication-type)?
| | ... | | ...
| +--ro level-1 | +--ro level-1
| | ... | | ...
skipping to change at page 6, line 32 skipping to change at page 6, line 49
+--ro overload-max-metric {overload-max-metric}? +--ro overload-max-metric {overload-max-metric}?
| +--ro timeout? uint16 | +--ro timeout? uint16
+--ro fast-reroute {fast-reroute}? +--ro fast-reroute {fast-reroute}?
| +--ro lfa {lfa}? | +--ro lfa {lfa}?
| +--ro protected-routes | +--ro protected-routes
| | ... | | ...
| +--ro nonprotected-routes | +--ro nonprotected-routes
| | ... | | ...
| +--ro protection-statistics* [frr-protection-method] | +--ro protection-statistics* [frr-protection-method]
| ... | ...
+--ro ietf-spf-delay {ietf-spf-delay}?
| +--ro initial-delay? uint16
| +--ro short-delay? uint16
| +--ro long-delay? uint16
| +--ro hold-down? uint16
| +--ro time-to-learn? uint16
| +--ro current-state? enumeration
| +--ro remaining-time-to-learn? uint16
| +--ro remaining-hold-down? uint16
| +--ro last-event-received? yang:timestamp
| +--ro next-spf-time? yang:timestamp
| +--ro last-spf-time? yang:timestamp
+--ro local-rib
| +--ro route* [prefix]
| ...
+--ro topologies* [name] +--ro topologies* [name]
| +--ro name leafref | +--ro name leafref
| +--ro fast-route {fast-reroute}? | +--ro local-rib
| ... | ...
+--ro system-counters +--ro system-counters
| +--ro level* [level] | +--ro level* [level]
| ... | ...
+--ro interfaces +--ro interfaces
| +--ro interface* [interface] | +--ro interface* [interface]
| ... | ...
+--ro spf-log +--ro spf-log
| +--ro event* [id] | +--ro event* [id]
| ... | ...
skipping to change at page 7, line 18 skipping to change at page 7, line 50
| +--ro input | +--ro input
| +--ro routing-protocol-instance-name instance-state-ref | +--ro routing-protocol-instance-name instance-state-ref
| +--ro level? level | +--ro level? level
| +--ro interface? string | +--ro interface? string
+---x clear-database +---x clear-database
+--ro input +--ro input
+--ro routing-protocol-instance-name instance-state-ref +--ro routing-protocol-instance-name instance-state-ref
+--ro level? level +--ro level? level
notifications: notifications:
+---n database-overload +---n database-overload
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro overload? enumeration | +--ro isis-level? level
| +--ro overload? enumeration
+---n lsp-too-large +---n lsp-too-large
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro interface-name? string | +--ro isis-level? level
| +--ro interface-level? level | +--ro interface-name? string
| +--ro extended-circuit-id? extended-circuit-id | +--ro interface-level? level
| +--ro pdu-size? uint32 | +--ro extended-circuit-id? extended-circuit-id
| +--ro lsp-id? lsp-id | +--ro pdu-size? uint32
| +--ro lsp-id? lsp-id
+---n if-state-change
| +--ro routing-instance? string
| +--ro routing-protocol-name? string
| +--ro isis-level? level
| +--ro interface-name? string
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro state? if-state-type
+---n corrupted-lsp-detected +---n corrupted-lsp-detected
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro lsp-id? lsp-id | +--ro isis-level? level
| +--ro lsp-id? lsp-id
+---n attempt-to-exceed-max-sequence +---n attempt-to-exceed-max-sequence
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro lsp-id? lsp-id | +--ro isis-level? level
| +--ro lsp-id? lsp-id
+---n id-len-mismatch +---n id-len-mismatch
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro interface-name? string | +--ro isis-level? level
| +--ro interface-level? level | +--ro interface-name? string
| +--ro extended-circuit-id? extended-circuit-id | +--ro interface-level? level
| +--ro pdu-field-len? uint8 | +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary | +--ro pdu-field-len? uint8
| +--ro raw-pdu? binary
+---n max-area-addresses-mismatch +---n max-area-addresses-mismatch
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro interface-name? string | +--ro isis-level? level
| +--ro interface-level? level | +--ro interface-name? string
| +--ro extended-circuit-id? extended-circuit-id | +--ro interface-level? level
| +--ro max-area-addresses? uint8 | +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary | +--ro max-area-addresses? uint8
| +--ro raw-pdu? binary
+---n own-lsp-purge +---n own-lsp-purge
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro interface-name? string | +--ro isis-level? level
| +--ro interface-level? level | +--ro interface-name? string
| +--ro extended-circuit-id? extended-circuit-id | +--ro interface-level? level
| +--ro lsp-id? lsp-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro lsp-id? lsp-id
+---n sequence-number-skipped +---n sequence-number-skipped
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro interface-name? string | +--ro isis-level? level
| +--ro interface-level? level | +--ro interface-name? string
| +--ro extended-circuit-id? extended-circuit-id | +--ro interface-level? level
| +--ro lsp-id? lsp-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro lsp-id? lsp-id
+---n authentication-type-failure +---n authentication-type-failure
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro interface-name? string | +--ro isis-level? level
| +--ro interface-level? level | +--ro interface-name? string
| +--ro extended-circuit-id? extended-circuit-id | +--ro interface-level? level
| +--ro raw-pdu? binary | +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary
+---n authentication-failure +---n authentication-failure
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro interface-name? string | +--ro isis-level? level
| +--ro interface-level? level | +--ro interface-name? string
| +--ro extended-circuit-id? extended-circuit-id | +--ro interface-level? level
| +--ro raw-pdu? binary | +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary
+---n version-skew +---n version-skew
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro interface-name? string | +--ro isis-level? level
| +--ro interface-level? level | +--ro interface-name? string
| +--ro extended-circuit-id? extended-circuit-id | +--ro interface-level? level
| +--ro protocol-version? uint8 | +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary | +--ro protocol-version? uint8
| +--ro raw-pdu? binary
+---n area-mismatch +---n area-mismatch
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro interface-name? string | +--ro isis-level? level
| +--ro interface-level? level | +--ro interface-name? string
| +--ro extended-circuit-id? extended-circuit-id | +--ro interface-level? level
| +--ro raw-pdu? binary | +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary
+---n rejected-adjacency +---n rejected-adjacency
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro interface-name? string | +--ro isis-level? level
| +--ro interface-level? level | +--ro interface-name? string
| +--ro extended-circuit-id? extended-circuit-id | +--ro interface-level? level
| +--ro raw-pdu? binary | +--ro extended-circuit-id? extended-circuit-id
| +--ro reason? string | +--ro raw-pdu? binary
| +--ro reason? string
+---n protocols-supported-mismatch +---n protocols-supported-mismatch
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro interface-name? string | +--ro isis-level? level
| +--ro interface-level? level | +--ro interface-name? string
| +--ro extended-circuit-id? extended-circuit-id | +--ro interface-level? level
| +--ro raw-pdu? binary | +--ro extended-circuit-id? extended-circuit-id
| +--ro protocols* uint8 | +--ro raw-pdu? binary
| +--ro protocols* uint8
+---n lsp-error-detected +---n lsp-error-detected
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro interface-name? string | +--ro isis-level? level
| +--ro interface-level? level | +--ro interface-name? string
| +--ro extended-circuit-id? extended-circuit-id | +--ro interface-level? level
| +--ro lsp-id? lsp-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary | +--ro lsp-id? lsp-id
| +--ro error-offset? uint32 | +--ro raw-pdu? binary
| +--ro tlv-type? uint8 | +--ro error-offset? uint32
+---n adjacency-change | +--ro tlv-type? uint8
| +--ro instance-name? string +---n adjacency-state-change
| +--ro instance-level? level | +--ro routing-instance? string
| +--ro interface-name? string | +--ro routing-protocol-name? string
| +--ro interface-level? level | +--ro isis-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro interface-name? string
| +--ro neighbor? string | +--ro interface-level? level
| +--ro neighbor-system-id? system-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro level? level | +--ro neighbor? string
| +--ro state? enumeration | +--ro neighbor-system-id? system-id
| +--ro reason? string | +--ro state? adj-state-type
| +--ro reason? string
+---n lsp-received +---n lsp-received
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro interface-name? string | +--ro isis-level? level
| +--ro interface-level? level | +--ro interface-name? string
| +--ro extended-circuit-id? extended-circuit-id | +--ro interface-level? level
| +--ro lsp-id? lsp-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro sequence? uint32 | +--ro lsp-id? lsp-id
| +--ro received-timestamp? yang:timestamp | +--ro sequence? uint32
| +--ro neighbor-system-id? system-id | +--ro received-timestamp? yang:timestamp
| +--ro neighbor-system-id? system-id
+---n lsp-generation +---n lsp-generation
+--ro instance-name? string +--ro routing-instance? string
+--ro instance-level? level +--ro routing-protocol-name? string
+--ro lsp-id? lsp-id +--ro isis-level? level
+--ro sequence? uint32 +--ro lsp-id? lsp-id
+--ro send-timestamp? yang:timestamp +--ro sequence? uint32
+--ro send-timestamp? yang:timestamp
2.1. IS-IS Configuration 2.1. IS-IS Configuration
The IS-IS configuration container is divided in: The IS-IS configuration container 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 this to support any additional Additional modules may be created this to support any additional
parameters. These modules should augment the ietf-isis module. parameters. These additional modules should augment the ietf-isis
module.
The model implements features, so some of the configuration statement The model implements features, thus some of the configuration
becomes optional. As an example, the ability to control the statement becomes optional. As an example, the ability to control
administrative state of a particular IS-IS instance is optional. By the administrative state of a particular IS-IS instance is optional.
advertising the feature "admin-control", a device communicates to the By advertising the feature "admin-control", a device communicates to
client that it supports the ability to shutdown a particular IS-IS the client that it supports the ability to shutdown a particular 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. Multitopology Parameters 2.2. Multitopology Parameters
The model supports multitopology (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.
skipping to change at page 10, line 47 skipping to change at page 12, line 11
Some specific parameters could be defined on a per topology basis Some specific parameters could be defined on a per topology basis
both at global level and at interface level: for example, an both at global level and at interface level: for example, an
interface metric can be defined per topology. interface 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 "afs" within the default topology. This can be achieved using the "afs"
container (requiring "nlpid-control" feature to be advertised). container (requiring "nlpid-control" feature to be advertised).
2.3. Per-Level Parameters 2.3. Per-Level Parameters
Some parameters support 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
locations: locations:
o top level container: corresponds to level-1-2, so the o a top level container: corresponds to level-1-2, so the
configuration applies to both levels. configuration applies to both levels.
o level-1 container: corresponds to level-1 specific parameters. o a level-1 container: corresponds to level-1 specific parameters.
o level-2 container: corresponds to level-2 specific parameters. o a level-2 container: corresponds to level-2 specific parameters.
+--rw priority +--rw priority
| +--rw value? uint8 | +--rw value? uint8
| +--rw level-1 | +--rw level-1
| | +--rw value? uint8 | | +--rw value? uint8
| +--rw level-2 | +--rw level-2
| +--rw value? uint8 | +--rw value? uint8
Example: Example:
skipping to change at page 12, line 43 skipping to change at page 13, line 45
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 a reference to an interface defined in the "ietf- The interface is modeled as a reference to an existing interface
interfaces" YANG model. defined in the "ietf-interfaces" YANG model.
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 override an IS-IS global interface-specific parameter always override 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
skipping to change at page 15, line 18 skipping to change at page 16, line 21
| +--rw level-1 | +--rw level-1
| | +--rw value? wide-metric | | +--rw value? wide-metric
| +--rw level-2 | +--rw level-2
| +--rw value? wide-metric | +--rw value? wide-metric
+--rw bfd {bfd}? +--rw bfd {bfd}?
| +--rw enable? boolean | +--rw enable? boolean
+--rw afs {nlpid-control}? +--rw afs {nlpid-control}?
| +--rw af* [af] | +--rw af* [af]
| +--rw af identityref | +--rw af identityref
+--rw mpls +--rw mpls
| +--rw igp-ldp-sync {igp-ldp-sync}? | +--rw ldp
| +--rw enable? boolean | +--rw igp-sync? boolean {ldp-igp-sync}?
+--rw fast-reroute {fast-reroute}? +--rw fast-reroute {fast-reroute}?
| +--rw lfa {lfa}? | +--rw lfa {lfa}?
| +--rw candidate-disabled? boolean | +--rw candidate-disabled? boolean
| +--rw enable? boolean | +--rw enable? boolean
| +--rw remote-lfa {remote-lfa}? | +--rw remote-lfa {remote-lfa}?
| | +--rw enable? boolean | | +--rw enable? boolean
| +--rw level-1 | +--rw level-1
| | +--rw candidate-disabled? boolean | | +--rw candidate-disabled? boolean
| | +--rw enable? boolean | | +--rw enable? boolean
| | +--rw remote-lfa {remote-lfa}? | | +--rw remote-lfa {remote-lfa}?
| | +--rw enable? boolean | | +--rw enable? boolean
| +--rw level-2 | +--rw level-2
| +--rw candidate-disabled? boolean | +--rw candidate-disabled? boolean
| +--rw enable? boolean | +--rw enable? boolean
| +--rw remote-lfa {remote-lfa}? | +--rw remote-lfa {remote-lfa}?
| +--rw enable? boolean | +--rw enable? boolean
+--rw topologies {multi-topology}? +--rw topologies {multi-topology}?
+--rw topology* [name] +--rw topology* [name]
+--rw name leafref +--rw name leafref
+--rw fast-reroute {fast-reroute}?
| +--rw lfa {lfa}?
| +--rw candidate-disabled? boolean
| +--rw enable? boolean
| +--rw remote-lfa {remote-lfa}?
| | +--rw enable? boolean
| +--rw level-1
| | +--rw candidate-disabled? boolean
| | +--rw enable? boolean
| | +--rw remote-lfa {remote-lfa}?
| | +--rw enable? boolean
| +--rw level-2
| +--rw candidate-disabled? boolean
| +--rw enable? boolean
| +--rw remote-lfa {remote-lfa}?
| +--rw enable? boolean
+--rw metric +--rw metric
+--rw value? wide-metric +--rw value? wide-metric
+--rw level-1 +--rw level-1
| +--rw value? wide-metric | +--rw value? wide-metric
+--rw level-2 +--rw level-2
+--rw value? wide-metric +--rw value? wide-metric
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 ([I-D.ietf-rtgwg-yang-key-chain]). The IS-IS module chain module ([I-D.ietf-rtgwg-yang-key-chain]). The IS-IS module
imports the "ietf-key-chain" module and reuses some groupings to imports the "ietf-key-chain" module and reuses some groupings to
allow global and per interface configuration of authentication. If a allow global and per interface configuration of authentication. If a
global authentication is configured, an implementation SHOULD global authentication is configured, an implementation SHOULD
authenticate PSNP, CSNP and LSPs with the authentication parameters authenticate PSNPs, CSNPs and LSPs with the authentication parameters
supplied. The authentication of hello PDUs can be activated on a per supplied. The authentication of hello PDUs can be activated on a per
interface basis. interface basis.
2.6. IGP/LDP synchronization 2.6. IGP/LDP synchronization
[RFC5443] defines a mechanism where IGP needs to be synchronized with [RFC5443] defines a mechanism where IGP needs to be synchronized with
LDP. An "igp-ldp-sync" feature has been defined in the model to LDP. An "ldp-igp-sync" feature has been defined in the model to
support this mechanism. The "mpls/igp-ldp-sync" container under support this mechanism. The "mpls/ldp/igp-sync" leaf under
"interface" allows activation of the mechanism on a per interface "interface" allows activation of the mechanism on a per interface
basis. The "mpls/igp-ldp-sync" container in the global configuration basis. The "mpls/ldp/igp-sync" container in the global configuration
is empty on purpose and is not required for the activation. The goal is empty on purpose and is not required for the activation. The goal
of this empty container is to allow easy augmentation with additional of this empty container is to allow easy augmentation with additional
parameters like timers for example. parameters like timers for example.
2.7. ISO parameters 2.7. ISO parameters
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
skipping to change at page 17, line 16 skipping to change at page 18, line 5
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-disabled" allows to mark an interface to not be used
as a backup. as a backup.
2.9. Operational State 2.9. Operational States
A "isis" container provides operational states for IS-IS. This An "isis" container provides operational states for IS-IS. This
container is divided in multiple components: container is divided in multiple components:
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 information for each o interface : provides configuration state informations for each
interface. interface.
o adjacencies: provides state information about current IS-IS o adjacencies: provides state informations about current IS-IS
adjacencies. adjacencies.
o spf-log: provides information about SPF events on the node. o spf-log: provides informations about SPF events on the node.
o lsp-log: provides information 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). (reception of an LSP or modification of local LSP).
o database: provides details on current LSDB. o local-rib: provides the IS-IS internal routing table view.
o hostnames: provides information about system-id to hostname o database: provides details on the current LSDB.
o hostnames: provides informations about system-id to hostname
mappings. mappings.
o fast-reroute: provides information 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-isis-database: reset the content of a particular IS-IS o clear-isis-database: reset the content of a particular IS-IS
database and restart database synchronization with the neighbors. database and restart database synchronization with the neighbors.
o clear-isis-adjacency: restart a particular set of IS-IS o clear-isis-adjacency: restart a particular set of IS-IS
adjacencies. adjacencies.
skipping to change at page 19, line 32 skipping to change at page 20, line 22
adjacency-change : This notification is sent when an IS-IS adjacency-change : This notification is sent when an IS-IS
adjacency moves to Up state or to Down state. adjacency moves to Up state or to Down state.
lsp-received : This notification is sent when a LSP is received. lsp-received : This notification is sent when a LSP is received.
lsp-generation : This notification is sent when a LSP is lsp-generation : This notification is sent when a LSP is
regenerated. regenerated.
notifications: notifications:
+---n database-overload +---n database-overload
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro overload? enumeration | +--ro isis-level? level
| +--ro overload? enumeration
+---n lsp-too-large +---n lsp-too-large
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro interface-name? string | +--ro isis-level? level
| +--ro interface-level? level | +--ro interface-name? string
| +--ro extended-circuit-id? extended-circuit-id | +--ro interface-level? level
| +--ro pdu-size? uint32 | +--ro extended-circuit-id? extended-circuit-id
| +--ro lsp-id? lsp-id | +--ro pdu-size? uint32
| +--ro lsp-id? lsp-id
+---n if-state-change
| +--ro routing-instance? string
| +--ro routing-protocol-name? string
| +--ro isis-level? level
| +--ro interface-name? string
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro state? if-state-type
+---n corrupted-lsp-detected +---n corrupted-lsp-detected
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro lsp-id? lsp-id | +--ro isis-level? level
| +--ro lsp-id? lsp-id
+---n attempt-to-exceed-max-sequence +---n attempt-to-exceed-max-sequence
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro lsp-id? lsp-id | +--ro isis-level? level
| +--ro lsp-id? lsp-id
+---n id-len-mismatch +---n id-len-mismatch
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro interface-name? string | +--ro isis-level? level
| +--ro interface-level? level | +--ro interface-name? string
| +--ro extended-circuit-id? extended-circuit-id | +--ro interface-level? level
| +--ro pdu-field-len? uint8 | +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary | +--ro pdu-field-len? uint8
| +--ro raw-pdu? binary
+---n max-area-addresses-mismatch +---n max-area-addresses-mismatch
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro interface-name? string | +--ro isis-level? level
| +--ro interface-level? level | +--ro interface-name? string
| +--ro extended-circuit-id? extended-circuit-id | +--ro interface-level? level
| +--ro max-area-addresses? uint8 | +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary | +--ro max-area-addresses? uint8
| +--ro raw-pdu? binary
+---n own-lsp-purge +---n own-lsp-purge
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro interface-name? string | +--ro isis-level? level
| +--ro interface-level? level | +--ro interface-name? string
| +--ro extended-circuit-id? extended-circuit-id | +--ro interface-level? level
| +--ro lsp-id? lsp-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro lsp-id? lsp-id
+---n sequence-number-skipped +---n sequence-number-skipped
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro interface-name? string | +--ro isis-level? level
| +--ro interface-level? level | +--ro interface-name? string
| +--ro extended-circuit-id? extended-circuit-id | +--ro interface-level? level
| +--ro lsp-id? lsp-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro lsp-id? lsp-id
+---n authentication-type-failure +---n authentication-type-failure
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro interface-name? string | +--ro isis-level? level
| +--ro interface-level? level | +--ro interface-name? string
| +--ro extended-circuit-id? extended-circuit-id | +--ro interface-level? level
| +--ro raw-pdu? binary | +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary
+---n authentication-failure +---n authentication-failure
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro interface-name? string | +--ro isis-level? level
| +--ro interface-level? level | +--ro interface-name? string
| +--ro extended-circuit-id? extended-circuit-id | +--ro interface-level? level
| +--ro raw-pdu? binary | +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary
+---n version-skew +---n version-skew
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro interface-name? string | +--ro isis-level? level
| +--ro interface-level? level | +--ro interface-name? string
| +--ro extended-circuit-id? extended-circuit-id | +--ro interface-level? level
| +--ro protocol-version? uint8 | +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary | +--ro protocol-version? uint8
| +--ro raw-pdu? binary
+---n area-mismatch +---n area-mismatch
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro interface-name? string | +--ro isis-level? level
| +--ro interface-level? level | +--ro interface-name? string
| +--ro extended-circuit-id? extended-circuit-id | +--ro interface-level? level
| +--ro raw-pdu? binary | +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary
+---n rejected-adjacency +---n rejected-adjacency
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro interface-name? string | +--ro isis-level? level
| +--ro interface-level? level | +--ro interface-name? string
| +--ro extended-circuit-id? extended-circuit-id | +--ro interface-level? level
| +--ro raw-pdu? binary | +--ro extended-circuit-id? extended-circuit-id
| +--ro reason? string | +--ro raw-pdu? binary
| +--ro reason? string
+---n protocols-supported-mismatch +---n protocols-supported-mismatch
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro interface-name? string | +--ro isis-level? level
| +--ro interface-level? level | +--ro interface-name? string
| +--ro extended-circuit-id? extended-circuit-id | +--ro interface-level? level
| +--ro raw-pdu? binary | +--ro extended-circuit-id? extended-circuit-id
| +--ro protocols* uint8 | +--ro raw-pdu? binary
| +--ro protocols* uint8
+---n lsp-error-detected +---n lsp-error-detected
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro interface-name? string | +--ro isis-level? level
| +--ro interface-level? level | +--ro interface-name? string
| +--ro extended-circuit-id? extended-circuit-id | +--ro interface-level? level
| +--ro lsp-id? lsp-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary | +--ro lsp-id? lsp-id
| +--ro error-offset? uint32 | +--ro raw-pdu? binary
| +--ro tlv-type? uint8 | +--ro error-offset? uint32
+---n adjacency-change | +--ro tlv-type? uint8
| +--ro instance-name? string +---n adjacency-state-change
| +--ro instance-level? level | +--ro routing-instance? string
| +--ro interface-name? string | +--ro routing-protocol-name? string
| +--ro interface-level? level | +--ro isis-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro interface-name? string
| +--ro neighbor? string | +--ro interface-level? level
| +--ro neighbor-system-id? system-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro level? level | +--ro neighbor? string
| +--ro state? enumeration | +--ro neighbor-system-id? system-id
| +--ro reason? string | +--ro state? adj-state-type
| +--ro reason? string
+---n lsp-received +---n lsp-received
| +--ro instance-name? string | +--ro routing-instance? string
| +--ro instance-level? level | +--ro routing-protocol-name? string
| +--ro interface-name? string | +--ro isis-level? level
| +--ro interface-level? level | +--ro interface-name? string
| +--ro extended-circuit-id? extended-circuit-id | +--ro interface-level? level
| +--ro lsp-id? lsp-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro sequence? uint32 | +--ro lsp-id? lsp-id
| +--ro received-timestamp? yang:timestamp | +--ro sequence? uint32
| +--ro neighbor-system-id? system-id | +--ro received-timestamp? yang:timestamp
| +--ro neighbor-system-id? system-id
+---n lsp-generation +---n lsp-generation
+--ro instance-name? string +--ro routing-instance? string
+--ro instance-level? level +--ro routing-protocol-name? string
+--ro lsp-id? lsp-id +--ro isis-level? level
+--ro sequence? uint32 +--ro lsp-id? lsp-id
+--ro send-timestamp? yang:timestamp +--ro sequence? uint32
+--ro send-timestamp? yang:timestamp
5. Interaction with Other YANG Modules 5. Interaction with Other YANG Modules
The "isis" configuration container augments the "/rt:routing/ The "isis" configuration container augments the "/rt:routing/
rt:control-plane-protocols/control-plane-protocol" container of the rt:control-plane-protocols/control-plane-protocol" container of the
ietf-routing [I-D.ietf-netmod-routing-cfg] module by defining IS-IS ietf-routing [I-D.ietf-netmod-routing-cfg] module by defining IS-IS
specific parameters. specific parameters.
The "isis" module augments "/if:interfaces/if:interface" with ISO The "isis" module augments "/if:interfaces/if:interface" with ISO
specific parameters. specific parameters.
skipping to change at page 22, line 43 skipping to change at page 24, line 10
Some IS-IS specific routes attributes are added to route objects of Some IS-IS specific routes attributes are added to route objects of
the ietf-routing module by augmenting "/rt:routing- the ietf-routing module by augmenting "/rt:routing-
state/rt:ribs/rt:rib/rt:routes/rt:route". state/rt:ribs/rt:rib/rt:routes/rt:route".
The modules defined in this document use some groupings from ietf- The modules defined in this document use some groupings from ietf-
keychain [I-D.ietf-rtgwg-yang-key-chain]. keychain [I-D.ietf-rtgwg-yang-key-chain].
6. IS-IS YANG Module 6. IS-IS YANG Module
<CODE BEGINS> file "ietf-isis@2016-11-03.yang" <CODE BEGINS> file "ietf-isis@2017-01-13.yang"
module ietf-isis { module ietf-isis {
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";
} }
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
} }
import ietf-yang-types { import ietf-yang-types {
prefix yang; prefix yang;
} }
skipping to change at page 24, line 38 skipping to change at page 26, line 4
description "Identity for the ISIS routing protocol description "Identity for the ISIS routing protocol
database reset action."; database reset action.";
} }
identity clear-isis-adjacency { identity clear-isis-adjacency {
description "Identity for the ISIS routing protocol description "Identity for the ISIS routing protocol
adjacency reset action."; adjacency reset action.";
} }
/* Feature definitions */ /* Feature definitions */
feature ietf-spf-delay {
description
"Support of IETF SPF delay algorithm.";
}
feature bfd { feature bfd {
description description
"Support of BFD for IS-IS links."; "Support of BFD for IS-IS links.";
} }
feature key-chain { feature key-chain {
description description
"Support of keychain for authentication."; "Support of keychain for authentication.";
} }
feature segment-routing { feature segment-routing {
description description
skipping to change at page 25, line 12 skipping to change at page 26, line 29
} }
feature node-flag { feature node-flag {
description description
"Support of node-flag advertisement "Support of node-flag advertisement
as prefix attribute"; as prefix attribute";
} }
feature node-tag { feature node-tag {
description description
"Support of node tag."; "Support of node tag.";
} }
feature igp-ldp-sync { feature ldp-igp-sync {
description description
"Support of RFC5443."; "Support of RFC5443.";
} }
feature fast-reroute { feature fast-reroute {
description description
"Support of IPFRR."; "Support of IPFRR.";
} }
feature nsr { feature nsr {
description description
"Support of "Support of
skipping to change at page 25, line 47 skipping to change at page 27, line 16
all links to max metric."; all links to max metric.";
} }
feature prefix-tag { feature prefix-tag {
description description
"Add 32bit tag to prefixes"; "Add 32bit tag to prefixes";
} }
feature prefix-tag64 { feature prefix-tag64 {
description description
"Add 64bit tag to prefixes"; "Add 64bit tag to prefixes";
} }
feature reference-bandwidth { feature auto-cost {
description description
"Use a reference bandwidth to compute metric."; "Use an automated assignment of metrics.";
} }
feature ipv4-router-id { feature ipv4-router-id {
description description
"Support of IPv4 router ID configuration under ISIS."; "Support of IPv4 router ID configuration under ISIS.";
} }
feature ipv6-router-id { feature ipv6-router-id {
description description
"Support of IPv6 router ID configuration under ISIS."; "Support of IPv6 router ID configuration under ISIS.";
} }
skipping to change at page 28, line 35 skipping to change at page 30, line 4
"This enum describes L1 only capability."; "This enum describes L1 only capability.";
} }
enum "level-2" { enum "level-2" {
description description
"This enum describes L2 only capability."; "This enum describes L2 only capability.";
} }
enum "level-all" { enum "level-all" {
description description
"This enum describes both levels capability."; "This enum describes both levels capability.";
} }
} }
default "level-all"; default "level-all";
description description
"This type defines ISIS level of an object."; "This type defines ISIS level of an object.";
} }
typedef adj-state-type {
type enumeration {
enum "Up" {
description
"This state describes that
adjacency is established.";
}
enum "Down" {
description
"This state describes that
adjacency is NOT established.";
}
enum "Init" {
description
"This state describes that
adjacency is establishing.";
}
enum "Failed" {
description
"This state describes that
adjacency is failed.";
}
}
description
"This type defines states of an adjacency";
}
typedef if-state-type {
type enumeration {
enum "Up" {
description
"This state describes that
.";
}
enum "Down" {
description
"This state describes that
.";
}
}
description
"This type defines states of an interface";
}
typedef level-number { typedef level-number {
type uint8 { type uint8 {
range "1 .. 2"; range "1 .. 2";
} }
description description
"This type defines a current ISIS level."; "This type defines a current ISIS level.";
} }
typedef lsp-id { typedef lsp-id {
type string { type string {
skipping to change at page 30, line 32 skipping to change at page 32, line 46
description description
"LSPs must not be flooded over that interface."; "LSPs must not be flooded over that interface.";
} }
} }
description description
"This type describes meshgroup state of an interface"; "This type describes meshgroup state of an interface";
} }
/* Grouping definitions */ /* Grouping definitions */
grouping admin-control { grouping local-rib {
description "Local-rib grouping.";
container local-rib {
description "Local-rib.";
list route {
key "prefix";
description "Routes";
leaf prefix {
type inet:ip-prefix;
description "Destination prefix.";
}
container next-hops {
description "All next hops for the route.";
list next-hop {
key "next-hop";
description "List of next hop for the route";
leaf outgoing-interface {
type if:interface-ref;
description
"Name of the outgoing interface.";
}
leaf next-hop {
type inet:ip-address;
description "Nexthop address.";
}
}
}
leaf metric {
type uint32;
description "Metric for this route.";
}
leaf level {
type level-number;
description "Level number for this route.";
}
leaf route-tag {
type uint32;
description "Route tag for this route.";
}
}
}
}
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
"Control the administrative "Control the administrative
state."; state.";
}
}
description description
"Grouping for admin control."; "Grouping for admin control.";
} }
grouping adjacency-state { grouping adjacency-state {
container adjacencies { container adjacencies {
list adjacency { list adjacency {
leaf neighbor-systype { leaf neighbor-systype {
type level; type level;
description description
skipping to change at page 32, line 18 skipping to change at page 35, line 23
description description
"When the adjacency most recently entered "When the adjacency most recently entered
state 'up', measured in hundredths of a state 'up', measured in hundredths of a
second since the last reinitialization of second since the last reinitialization of
the network management subsystem. the network management subsystem.
The value is 0 if the adjacency has never The value is 0 if the adjacency has never
been in state 'up'."; been in state 'up'.";
} }
leaf state { leaf state {
type enumeration { type adj-state-type;
enum "Up" {
description
"This state describes that
adjacency is established.";
}
enum "Down" {
description
"This state describes that
adjacency is NOT established.";
}
enum "Init" {
description
"This state describes that
adjacency is establishing.";
}
enum "Failed" {
description
"This state describes that
adjacency is failed.";
}
}
description description
"This leaf describes the state of the "This leaf describes the state of the
interface."; interface.";
} }
description description
"List of operational adjacencies."; "List of operational adjacencies.";
} }
description description
"This container lists the adjacencies of "This container lists the adjacencies of
skipping to change at page 37, line 21 skipping to change at page 40, line 4
} }
description description
"Per AF statistics."; "Per AF statistics.";
} }
description description
"Global protection statistics."; "Global protection statistics.";
} }
description description
"IPFRR states."; "IPFRR states.";
} }
grouping notification-instance-hdr { grouping notification-instance-hdr {
description description
"This group describes common instance specific "This group describes common instance specific
data for notifications."; data for notifications.";
leaf instance-name { leaf routing-instance {
type string;
description
"Describes the name of the routing-instance instance.";
}
leaf routing-protocol-name {
type string; type string;
description description
"Describes the name of the ISIS instance."; "Describes the name of the ISIS instance.";
} }
leaf instance-level { leaf isis-level {
type level; type level;
description description
"Describes the ISIS level of the instance."; "Describes the ISIS level of the instance.";
} }
} }
grouping notification-interface-hdr { grouping notification-interface-hdr {
description description
"This group describes common interface specific "This group describes common interface specific
data for notifications."; data for notifications.";
skipping to change at page 40, line 12 skipping to change at page 42, line 49
uses lfa-if-cfg; uses lfa-if-cfg;
description description
"LFA level 2 config"; "LFA level 2 config";
} }
description description
"LFA config"; "LFA config";
} }
} }
grouping ietf-spf-delay-cfg {
leaf initial-delay {
type uint16;
units msec;
description
"Delay used while in QUIET state.";
}
leaf short-delay {
type uint16;
units msec;
description
"Delay used while in SHORT_WAIT state.";
}
leaf long-delay {
type uint16;
units msec;
description
"Delay used while in LONG_WAIT state.";
}
leaf hold-down {
type uint16;
units msec;
description
"Timer used to consider an IGP stability period.";
}
leaf time-to-learn {
type uint16;
units msec;
description
"Duration used to learn all the IGP events
related to a single component failure.";
}
description
"Grouping for IETF SPF delay configuration.";
}
grouping ietf-spf-delay-state {
leaf current-state {
type enumeration {
enum "QUIET" {
description "QUIET state";
}
enum "SHORT_WAIT" {
description "SHORT_WAIT state";
}
enum "LONG_WAIT" {
description "LONG_WAIT state";
}
}
description
"Current state of the algorithm.";
}
leaf remaining-time-to-learn {
type uint16;
units "seconds";
description
"Remaining time until time-to-learn timer fires.";
}
leaf remaining-hold-down {
type uint16;
units "seconds";
description
"Remaining time until hold-down timer fires.";
}
leaf last-event-received {
type yang:timestamp;
description
"Time of last IGP event received";
}
leaf next-spf-time {
type yang:timestamp;
description
"Time when next SPF has been scheduled.";
}
leaf last-spf-time {
type yang:timestamp;
description
"Time of last SPF computation.";
}
description
"Grouping for IETF SPF delay operational states.";
}
grouping prefix-reachability-attributes { grouping prefix-reachability-attributes {
description description
"This group defines extended reachability attributes of an "This group defines extended reachability attributes of an
IPv4 or IPv6 prefix."; IPv4 or IPv6 prefix.";
leaf external-prefix-flag { leaf external-prefix-flag {
type boolean; type boolean;
description description
"External prefix flag."; "External prefix flag.";
} }
skipping to change at page 46, line 27 skipping to change at page 51, line 4
leaf supported { leaf supported {
type boolean; type boolean;
default "false"; default "false";
description description
"This leaf describes if the metric is supported."; "This leaf describes if the metric is supported.";
} }
description description
"This container defines the ISIS error metric."; "This container defines the ISIS error metric.";
} }
} }
grouping database { grouping database {
description description
"This group defines attributes of an "This group defines attributes of an
ISIS database (Link State DB)."; ISIS database (Link State DB).";
leaf decoded-completed {
type boolean;
description
"The OSPF LSA body is fully decoded.";
}
leaf raw-data {
type yang:hex-string;
description
"The complete LSP in network byte
order hexadecimal as received or originated.";
}
leaf lsp-id { leaf lsp-id {
type lsp-id; type lsp-id;
description description
"This leaf describes the LSP ID of the LSP."; "This leaf describes the LSP ID of the LSP.";
} }
leaf checksum { leaf checksum {
type uint16; type uint16;
description description
"This leaf describes the checksum of the LSP."; "This leaf describes the checksum of the LSP.";
} }
skipping to change at page 60, line 34 skipping to change at page 65, line 26
"Router ID value that would be used in "Router ID value that would be used in
TLV 134."; TLV 134.";
} }
leaf ipv6-router-id { leaf ipv6-router-id {
if-feature ipv6-router-id; if-feature ipv6-router-id;
type inet:ipv6-address; type inet:ipv6-address;
description description
"Router ID value that would be used in "Router ID value that would be used in
TLV 140."; TLV 140.";
} }
container igp-ldp-sync { container ldp {
if-feature igp-ldp-sync; container igp-sync {
if-feature ldp-igp-sync;
description
"This container may be augmented
with global parameters for igp-ldp-sync.";
}
description description
"This container may be augmented "LDP related configuration.";
with global parameters for igp-ldp-sync.";
} }
description description
"This container handles mpls config."; "This container handles mpls config.";
} }
leaf reference-bandwidth { container auto-cost {
if-feature reference-bandwidth; if-feature auto-cost;
type uint32; leaf reference-bandwidth {
units "bps"; type uint32;
description units "bps";
"This leaf defines the bandwidth for calculating description
metric."; "This leaf defines the bandwidth for calculating
metric.";
}
leaf enable {
type boolean;
default false;
description
"Enable/disable auto-cost.";
}
description
"This container defines the auto-cost configuration.";
} }
leaf lsp-mtu { leaf lsp-mtu {
type uint16; type uint16;
units "bytes"; units "bytes";
default 1492; default 1492;
description description
"This leaf describes the maximum size of a "This leaf describes the maximum size of a
LSP PDU in bytes."; LSP PDU in bytes.";
} }
leaf lsp-lifetime { leaf lsp-lifetime {
type uint16 { type uint16 {
skipping to change at page 61, line 31 skipping to change at page 66, line 37
leaf lsp-refresh { leaf lsp-refresh {
if-feature lsp-refresh; if-feature lsp-refresh;
type uint16 { type uint16 {
range "1..65535"; range "1..65535";
} }
units "seconds"; units "seconds";
description description
"This leaf describes the refresh interval of the "This leaf describes the refresh interval of the
router LSP in seconds."; router LSP in seconds.";
} }
container spf-control {
container ietf-spf-delay {
if-feature ietf-spf-delay;
uses ietf-spf-delay-cfg;
description
"IETF spf delay algorithm configuration.";
}
description
"Container for all SPF computation related
operations.";
}
container graceful-restart { container graceful-restart {
if-feature graceful-restart; if-feature graceful-restart;
leaf enable { leaf enable {
type boolean; type boolean;
description description
"Control enabling the feature."; "Control enabling the feature.";
} }
leaf restart-interval {
type uint16;
units "seconds";
description
"Interval in seconds to attempt graceful restart prior
to failing";
}
leaf helper-enable {
type boolean;
description
"If enabled, the local router can act as restart helper.";
}
description description
"This container activates graceful restart."; "This container activates graceful restart.";
} }
container nsr { container nsr {
if-feature nsr; if-feature nsr;
description description
"Non-Stop Routing (NSR) config state."; "Non-Stop Routing (NSR) config state.";
leaf enable { leaf enable {
type boolean; type boolean;
skipping to change at page 69, line 31 skipping to change at page 75, line 11
} }
description description
"List of AFs."; "List of AFs.";
} }
description description
"Container for address-families"; "Container for address-families";
} }
container mpls { container mpls {
container igp-ldp-sync { container ldp {
if-feature igp-ldp-sync; leaf igp-sync {
leaf enable { if-feature ldp-igp-sync;
type boolean; type boolean;
description description
"Enable/disable IGP LDP sync."; "Enables IGP/LDP sync.";
} }
description description
"IGP-LDP sync configuration."; "LDP protocol related configurations.";
} }
description description
"Container for MPLS specific configuration "Container for MPLS specific configuration
for ISIS."; for ISIS.";
} }
} }
grouping isis-if-topologies-cfg { grouping isis-if-topologies-cfg {
description description
"ISIS interface topology cfg."; "ISIS interface topology cfg.";
skipping to change at page 71, line 47 skipping to change at page 77, line 27
leaf name { leaf name {
type leafref { type leafref {
path "../../../../../../rt:ribs/rt:rib/rt:name"; path "../../../../../../rt:ribs/rt:rib/rt:name";
} }
description "RIB"; description "RIB";
} }
uses isis-global-topologies-cfg; uses isis-global-topologies-cfg;
container fast-reroute {
if-feature fast-reroute;
uses fast-reroute-global-cfg;
description
"IPFRR.";
}
description description
"List of topologies"; "List of topologies";
} }
description description
"Container for multi-topology"; "Container for multi-topology";
} }
container interfaces { container interfaces {
list interface { list interface {
skipping to change at page 72, line 46 skipping to change at page 78, line 20
leaf name { leaf name {
type leafref { type leafref {
path "../../../../../../../../"+ path "../../../../../../../../"+
"rt:ribs/rt:rib/rt:name"; "rt:ribs/rt:rib/rt:name";
} }
description description
"Name of RIB."; "Name of RIB.";
} }
container fast-reroute {
if-feature fast-reroute;
uses fast-reroute-if-cfg;
description
"IPFRR.";
}
uses isis-if-topologies-cfg; uses isis-if-topologies-cfg;
description description
"List of topologies."; "List of topologies.";
} }
description description
"Container for multi-topology"; "Container for multi-topology";
} }
description description
"List of ISIS interfaces."; "List of ISIS interfaces.";
skipping to change at page 73, line 47 skipping to change at page 79, line 15
container isis { container isis {
config false; config false;
uses isis-global-cfg; uses isis-global-cfg;
container fast-reroute { container fast-reroute {
if-feature fast-reroute; if-feature fast-reroute;
uses fast-reroute-global-cfg; uses fast-reroute-global-cfg;
uses fast-reroute-global-state; uses fast-reroute-global-state;
description description
"IPFRR states."; "IPFRR states.";
} }
container ietf-spf-delay {
if-feature ietf-spf-delay;
uses ietf-spf-delay-cfg;
uses ietf-spf-delay-state;
description
"IETF SPF delay operational states.";
}
uses local-rib;
list topologies { list topologies {
key name; key name;
leaf name { leaf name {
type leafref { type leafref {
path "../../../../../" path "../../../../../"
+"rt:ribs/rt:rib/rt:name"; +"rt:ribs/rt:rib/rt:name";
} }
description description
"Name of RIB."; "Name of RIB.";
} }
container fast-route { uses local-rib;
if-feature fast-reroute;
uses fast-reroute-global-cfg;
uses fast-reroute-global-state;
description
"IPFRR states.";
}
description description
"List of topologies."; "List of topologies.";
} }
container system-counters { container system-counters {
list level { list level {
key level; key level;
leaf level { leaf level {
type level-number; type level-number;
skipping to change at page 81, line 50 skipping to change at page 87, line 18
description description
"This leaf describes the type of computation "This leaf describes the type of computation
used."; used.";
} }
leaf level { leaf level {
type level-number; type level-number;
description description
"This leaf describes the level affected by the "This leaf describes the level affected by the
the computation."; the computation.";
} }
leaf spf-delay {
type uint32;
units "milliseconds";
description
"This leaf describes the SPF delay that
was used for this event.";
}
leaf schedule-timestamp { leaf schedule-timestamp {
type yang:timestamp; type yang:timestamp;
description description
"This leaf describes the timestamp "This leaf describes the timestamp
when the computation was scheduled."; when the computation was scheduled.";
} }
leaf start-timestamp { leaf start-timestamp {
type yang:timestamp; type yang:timestamp;
description description
"This leaf describes the timestamp "This leaf describes the timestamp
skipping to change at page 89, line 37 skipping to change at page 94, line 47
} }
description description
"This notification is sent when we attempt "This notification is sent when we attempt
to propagate an LSP that is larger than the to propagate an LSP that is larger than the
dataLinkBlockSize for the circuit. dataLinkBlockSize for the circuit.
The notification generation must be throttled The notification generation must be throttled
with at least a 5 second gap. with at least a 5 second gap.
"; ";
} }
notification if-state-change {
uses notification-instance-hdr;
uses notification-interface-hdr;
leaf state {
type if-state-type;
description "Interface state.";
}
description
"This notification is sent when an interface
state change is detected.";
}
notification corrupted-lsp-detected { notification corrupted-lsp-detected {
uses notification-instance-hdr; uses notification-instance-hdr;
leaf lsp-id { leaf lsp-id {
type lsp-id; type lsp-id;
description description
"LSP ID."; "LSP ID.";
} }
description description
"This notification is sent when we find "This notification is sent when we find
that an LSP that was stored in memory has that an LSP that was stored in memory has
skipping to change at page 95, line 4 skipping to change at page 100, line 28
"if the problem is a malformed TLV, the tlv-type is set "if the problem is a malformed TLV, the tlv-type is set
to the type value of the suspicious TLV. to the type value of the suspicious TLV.
Otherwise this leaf is not present."; Otherwise this leaf is not present.";
} }
description description
"This notification is sent when the system "This notification is sent when the system
receives a LSP with a parse error. receives a LSP with a parse error.
The notification generation must be throttled with at least The notification generation must be throttled with at least
a 5 second gap. a 5 second gap.
"; ";
} }
notification adjacency-change { notification adjacency-state-change {
uses notification-instance-hdr; uses notification-instance-hdr;
uses notification-interface-hdr; uses notification-interface-hdr;
leaf neighbor { leaf neighbor {
type string; type string;
description description
"Describes the name of the neighbor. If the "Describes the name of the neighbor. If the
name of the neighbor is not available, the name of the neighbor is not available, the
field would be empty."; field would be empty.";
} }
leaf neighbor-system-id { leaf neighbor-system-id {
type system-id; type system-id;
description description
"Describes the system-id of the neighbor."; "Describes the system-id of the neighbor.";
} }
leaf level {
type level;
description
"Describes the ISIS level of the adjacency.";
}
leaf state { leaf state {
type enumeration { type adj-state-type;
enum "Up" {
description
"This state describes that
adjacency is established.";
}
enum "Down" {
description
"This state describes that
adjacency is no more established.";
}
}
description description
"This leaf describes the new state of the "This leaf describes the new state of the
ISIS adjacency."; ISIS adjacency.";
} }
leaf reason { leaf reason {
type string; type string;
description description
"If the adjacency is going to DOWN, "If the adjacency is going to DOWN,
this leaf provides a reason for the adjacency this leaf provides a reason for the adjacency
going down. The reason is provided as a text. going down. The reason is provided as a text.
skipping to change at page 98, line 10 skipping to change at page 103, line 15
depending on the internal organization, for example: depending on the internal organization, for example:
o User FullWrite: would access to the whole data model. This kind o User FullWrite: would access to the whole data model. This kind
of profile may be restricted to few experienced people. of profile may be restricted to few experienced people.
o User PartialWrite: would only access to configuration part within o User PartialWrite: would only access to configuration part within
/isis/interfaces/interface. So this kind of profile is restricted /isis/interfaces/interface. So this kind of profile is restricted
to creation/modification/deletion of interfaces. This profile to creation/modification/deletion of interfaces. This profile
does not have access to RPC. does not have access to RPC.
o User Read: would only access to state part /isis-state. o User Read: would only access to the operational states.
Unauthorized access to configuration or RPC may cause high damages to Unauthorized access to configuration or RPC may cause high damages to
the network service. the network service.
The /isis-state/database may contain authentication information. As The "isis/database" may contain authentication information. As
presented in the description of the /isis-state/database/level- presented in the description of the "/isis/database/level-
1/lsp/authentication/authentication-key, the authentication MUST 1/lsp/authentication/authentication-key", the authentication MUST
never be presented in plaintext format for security reason. Authors never be displayed in a plaintext format for security reason.
recommend the usage of MD5 to display or return the authentication- Authors recommend the usage of MD5 to display or return the
key. authentication-key.
Some authentication-key may also be present in the /isis Some authentication-key may also be required in the "isis" writable
configuration. When configuring IS-IS using the NETCONF protocol, container. When configuring IS-IS using the NETCONF protocol,
authors recommends the usage of secure transport of NETCONF using SSH authors recommends the usage of secure transport of NETCONF using SSH
([RFC6242]). ([RFC6242]).
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 for their major contributions to the Bogdanovic, Yingzhen Qu, Yi Yang for their major contributions to the
draft. draft.
9. Acknowledgements 9. Acknowledgements
skipping to change at page 99, line 7 skipping to change at page 104, line 15
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
11. Change log for ietf-isis YANG module 11. Change log for ietf-isis YANG module
11.1. From version -13 to version -14 11.1. From version -14 to version -15
o Alignment with OSPF model done:
* Added spf-control container with IETF SPF delay algorithm as a
feature.
* Added graceful-restart options.
* Added nsr as a feature.
* Removed per topology FRR. Need to be augmented if necessary.
* Created an ldp container within mpls.
* Renamed igp-ldp-sync to igp-sync.
* Added auto-cost container.
* Moved reference-bandwidth under auto-cost container.
* Added IS-IS local RIB as operational state.
* Added decode-completed and raw-data leaves in the LSDB model.
* Modified the notification header.
11.2. From version -13 to version -14
o Segment Routing extensions are now in a separate document. o Segment Routing extensions are now in a separate document.
11.2. From version -12 to version -13 11.3. From version -12 to version -13
o Move feature nlpid-control to container rather than list. o Move feature nlpid-control to container rather than list.
o Rename multi-topology to topologies to align with OSPF. o Rename multi-topology to topologies to align with OSPF.
o Rename bfd/enabled to bfd/enable for consistency reason. o Rename bfd/enabled to bfd/enable for consistency reason.
o Add support for NSR with a feature. o Add support for NSR with a feature.
11.3. From version -09 to version -12 11.4. From version -09 to version -12
o Rename node-tag container to node-tags. o Rename node-tag container to node-tags.
11.4. From version -08 to version -09 11.5. From version -08 to version -09
o Added container before af list. o Added container before af list.
o Added container before topology list. o Added container before topology list.
o Aligned LFA if per level cfg. o Aligned LFA if per level cfg.
o Align to draft-ietf-netmod-routing-cfg-23. o Align to draft-ietf-netmod-routing-cfg-23.
11.5. From version -07 to version -08 11.6. From version -07 to version -08
o Remove selector from system-id type. o Remove selector from system-id type.
o Add some default values. o Add some default values.
o Moved lists to containers+groupings for per level configuration. o Moved lists to containers+groupings for per level configuration.
o remove routing-instance as per core routing model v21. o remove routing-instance as per core routing model v21.
o added BFD leaf (no more BFD protocol model). o added BFD leaf (no more BFD protocol model).
o changed keychain module reference. o changed keychain module reference.
11.6. From version -05 to version -07 11.7. From version -05 to version -07
o Move Overload config from list to container. o Move Overload config from list to container.
o Move Overload-max-metric config from list to container. o Move Overload-max-metric config from list to container.
o Move preference config from list to container. o Move preference config from list to container.
o Add Node flag in config. o Add Node flag in config.
o Removed BFD config => moved to isis-bfd module. o Removed BFD config => moved to isis-bfd module.
o Remove call to routing policy model. o Remove call to routing policy model.
11.7. From version -03 to version -05 11.8. From version -03 to version -05
o Correct invalid references to previous versions of core routing o Correct invalid references to previous versions of core routing
model. model.
o Remove BFD config and replace by groupings from ietf-bfd. o Remove BFD config and replace by groupings from ietf-bfd.
o Adding routing-policy support through routing-policy model. o Adding routing-policy support through routing-policy model.
11.8. From version -02 to version -03 11.9. From version -02 to version -03
o Reviewed config and op state groupings. o Reviewed config and op state groupings.
o Add default value to lfa candidate-disabled. o Add default value to lfa candidate-disabled.
o Add enable leaf to isis container to reflect admin state. o Add enable leaf to isis container to reflect admin state.
o Move to VRF centric only. o Move to VRF centric only.
o Segment routing is part os a separate module. o Segment routing is part os a separate module.
11.9. From version -01 to version -02 11.10. From version -01 to version -02
o Adding IPFRR. o Adding IPFRR.
o Adding igp-ldp-sync. o Adding igp-ldp-sync.
o Adding segment-routing. o Adding segment-routing.
o Adding instance reference to operational states. o Adding instance reference to operational states.
o Move AF type from string to identity. o Move AF type from string to identity.
skipping to change at page 101, line 17 skipping to change at page 107, line 5
o Added modification information in lsp-log. o Added modification information in lsp-log.
o Removing igp-ldp-sync timer in IS-IS. o Removing igp-ldp-sync timer in IS-IS.
o Defining hierarchy for operational states. o Defining hierarchy for operational states.
o Adding clns-mtu. o Adding clns-mtu.
o Adding key-chain. o Adding key-chain.
11.10. From version -00 to version -01 11.11. From version -00 to version -01
o Interface metric move from af container to interface container. o Interface metric move from af container to interface container.
o Hello-padding on interface moved to hello-padding-disable with o Hello-padding on interface moved to hello-padding-disable with
empty type. empty type.
o three-way-handshake removed. o three-way-handshake removed.
o route preference changed to a choice. o route preference changed to a choice.
skipping to change at page 101, line 51 skipping to change at page 107, line 39
o Make BFD a feature. o Make BFD a feature.
o Create mpls-te container and put router-id inside. o Create mpls-te container and put router-id inside.
o Remove GR helper disable and timers. o Remove GR helper disable and timers.
12. Normative References 12. Normative References
[I-D.ietf-netmod-routing-cfg] [I-D.ietf-netmod-routing-cfg]
Lhotka, L. and A. Lindem, "A YANG Data Model for Routing Lhotka, L. and A. Lindem, "A YANG Data Model for Routing
Management", draft-ietf-netmod-routing-cfg-24 (work in Management", draft-ietf-netmod-routing-cfg-25 (work in
progress), October 2016. progress), November 2016.
[I-D.ietf-rtgwg-yang-key-chain] [I-D.ietf-rtgwg-yang-key-chain]
Lindem, A., Qu, Y., Yeung, D., Chen, I., Zhang, Z., and Y. Lindem, A., Qu, Y., Yeung, D., Chen, I., Zhang, Z., and Y.
Yang, "Routing Key Chain YANG Data Model", draft-ietf- Yang, "Routing Key Chain YANG Data Model", draft-ietf-
rtgwg-yang-key-chain-10 (work in progress), October 2016. rtgwg-yang-key-chain-13 (work in progress), January 2017.
[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, DOI 10.17487/ Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/
RFC2119, March 1997, RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>. <http://www.rfc-editor.org/info/rfc2119>.
[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, DOI 10.17487/RFC3688, January 2004,
<http://www.rfc-editor.org/info/rfc3688>. <http://www.rfc-editor.org/info/rfc3688>.
 End of changes. 123 change blocks. 
441 lines changed or deleted 723 lines changed or added

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