draft-ietf-isis-yang-isis-cfg-17.txt   draft-ietf-isis-yang-isis-cfg-18.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: October 1, 2017 Arrcus, Inc Expires: January 26, 2018 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 30, 2017 July 25, 2017
YANG Data Model for IS-IS protocol YANG Data Model for IS-IS protocol
draft-ietf-isis-yang-isis-cfg-17 draft-ietf-isis-yang-isis-cfg-18
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 October 1, 2017. This Internet-Draft will expire on January 26, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2017 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
skipping to change at page 2, line 25 skipping to change at page 2, line 25
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 . . . . . . . . . . . . . . . . . . . 11 2.1. IS-IS Configuration . . . . . . . . . . . . . . . . . . . 9
2.2. Multitopology Parameters . . . . . . . . . . . . . . . . 11 2.2. Multitopology Parameters . . . . . . . . . . . . . . . . 10
2.3. Per-Level Parameters . . . . . . . . . . . . . . . . . . 11 2.3. Per-Level Parameters . . . . . . . . . . . . . . . . . . 10
2.4. Per-Interface Parameters . . . . . . . . . . . . . . . . 13 2.4. Per-Interface Parameters . . . . . . . . . . . . . . . . 12
2.5. Authentication Parameters . . . . . . . . . . . . . . . . 16 2.5. Authentication Parameters . . . . . . . . . . . . . . . . 15
2.6. IGP/LDP synchronization . . . . . . . . . . . . . . . . . 16 2.6. IGP/LDP synchronization . . . . . . . . . . . . . . . . . 15
2.7. ISO parameters . . . . . . . . . . . . . . . . . . . . . 16 2.7. ISO parameters . . . . . . . . . . . . . . . . . . . . . 16
2.8. IP FRR . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.8. IP FRR . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.9. Operational States . . . . . . . . . . . . . . . . . . . 17 2.9. Operational States . . . . . . . . . . . . . . . . . . . 16
3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 17 3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 17
4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 18 4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 17
5. Interaction with Other YANG Modules . . . . . . . . . . . . . 22 5. Interaction with Other YANG Modules . . . . . . . . . . . . . 22
6. IS-IS YANG Module . . . . . . . . . . . . . . . . . . . . . . 23 6. IS-IS YANG Module . . . . . . . . . . . . . . . . . . . . . . 22
7. Security Considerations . . . . . . . . . . . . . . . . . . . 99 7. Security Considerations . . . . . . . . . . . . . . . . . . . 97
8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 100 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 98
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 100 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 98
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 100 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 98
11. Change log for ietf-isis YANG module . . . . . . . . . . . . 100 11. Change log for ietf-isis YANG module . . . . . . . . . . . . 98
11.1. From version -16 to version -17 . . . . . . . . . . . . 100 11.1. From version -17 to version -18 . . . . . . . . . . . . 98
11.2. From version -15 to version -16 . . . . . . . . . . . . 100 11.2. From version -16 to version -17 . . . . . . . . . . . . 98
11.3. From version -14 to version -15 . . . . . . . . . . . . 101 11.3. From version -15 to version -16 . . . . . . . . . . . . 99
11.4. From version -13 to version -14 . . . . . . . . . . . . 101 11.4. From version -14 to version -15 . . . . . . . . . . . . 99
11.5. From version -12 to version -13 . . . . . . . . . . . . 101 11.5. From version -13 to version -14 . . . . . . . . . . . . 99
11.6. From version -09 to version -12 . . . . . . . . . . . . 101 11.6. From version -12 to version -13 . . . . . . . . . . . . 99
11.7. From version -08 to version -09 . . . . . . . . . . . . 102 11.7. From version -09 to version -12 . . . . . . . . . . . . 100
11.8. From version -07 to version -08 . . . . . . . . . . . . 102 11.8. From version -08 to version -09 . . . . . . . . . . . . 100
11.9. From version -05 to version -07 . . . . . . . . . . . . 102 11.9. From version -07 to version -08 . . . . . . . . . . . . 100
11.10. From version -03 to version -05 . . . . . . . . . . . . 102 11.10. From version -05 to version -07 . . . . . . . . . . . . 100
11.11. From version -02 to version -03 . . . . . . . . . . . . 103 11.11. From version -03 to version -05 . . . . . . . . . . . . 100
11.12. From version -01 to version -02 . . . . . . . . . . . . 103 11.12. From version -02 to version -03 . . . . . . . . . . . . 101
11.13. From version -00 to version -01 . . . . . . . . . . . . 103 11.13. From version -01 to version -02 . . . . . . . . . . . . 101
12. Normative References . . . . . . . . . . . . . . . . . . . . 104 11.14. From version -00 to version -01 . . . . . . . . . . . . 101
Appendix A. Example of IS-IS configuration in XML . . . . . . . 105 12. Normative References . . . . . . . . . . . . . . . . . . . . 102
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 107 Appendix A. Example of IS-IS configuration in XML . . . . . . . 103
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 105
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 3, line 44 skipping to change at page 3, line 45
denotes a "list" or "leaf-list". denotes a "list" or "leaf-list".
o Parentheses enclose choice and case nodes, and case nodes are also o Parentheses enclose choice and case nodes, and case nodes are also
marked with a colon (":"). marked with a colon (":").
o Ellipsis ("...") stands for contents of subtrees that are not o Ellipsis ("...") stands for contents of subtrees that are not
shown. shown.
2. Design of the Data Model 2. Design of the Data Model
The IS-IS YANG module is divided in two main "isis" containers that The IS-IS YANG module augments the "control-plane-protocol" list in
are augmenting the "control-plane-protocol" lists in ietf-routing ietf-routing module with specific IS-IS parameters.
module with specific IS-IS parameters.
One container contains the writable parameters, while the other The module is designed as per NMDA (Network Management Datastore
contains the operational states. Architecture).
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-state/rt:ribs/rt:rib/rt:routes/rt:route: augment /rt:routing-state/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:
skipping to change at page 5, line 25 skipping to change at page 5, line 25
| ... | ...
+--rw preference +--rw preference
| +--rw (granularity)? | +--rw (granularity)?
| ... | ...
+--rw overload +--rw overload
| +--rw status? boolean | +--rw status? boolean
+--rw overload-max-metric {overload-max-metric}? +--rw overload-max-metric {overload-max-metric}?
| +--rw timeout? rt-types:timer-value-seconds16 | +--rw timeout? rt-types:timer-value-seconds16
+--rw fast-reroute {fast-reroute}? +--rw fast-reroute {fast-reroute}?
| +--rw lfa {lfa}? | +--rw lfa {lfa}?
+--rw spf-control
| +--rw ietf-spf-delay {ietf-spf-delay}?
| ...
+--rw topologies {multi-topology}?
| +--rw topology* [name]
| ...
+--rw interfaces
+--rw interface* [name]
...
augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-pr
otocol:
+--ro isis
+--ro enable? boolean {admin-control}?
+--ro level-type? level
+--ro system-id? system-id
+--ro maximum-area-addresses? uint8 {maximum-area-addresses}?
+--ro area-address* area-address
+--ro mpls
| +--ro ipv4-router-id? inet:ipv4-address {ipv4-router-id}?
| +--ro ipv6-router-id? inet:ipv6-address {ipv6-router-id}?
| +--ro ldp
| ...
+--ro auto-cost {auto-cost}?
| +--ro reference-bandwidth? uint32
| +--ro enable? boolean
+--ro lsp-mtu? uint16
+--ro lsp-lifetime? uint16
+--ro lsp-refresh? rt-types:timer-value-seconds16 {ls
p-refresh}?
+--ro graceful-restart {graceful-restart}?
| +--ro enable? boolean
| +--ro restart-interval? rt-types:timer-value-seconds16
| +--ro helper-enable? boolean
+--ro nsr {nsr}?
| +--ro enable? boolean
+--ro node-tags {node-tag}?
| +--ro node-tag* [tag]
| ...
+--ro authentication
| +--ro (authentication-type)?
| | ...
| +--ro level-1
| | ...
| +--ro level-2
| ...
+--ro metric-type
| +--ro value? enumeration
| +--ro level-1
| | ...
| +--ro level-2
| ...
+--ro default-metric
| +--ro value? wide-metric
| +--ro level-1
| | ...
| +--ro level-2
| ...
+--ro afs {nlpid-control}?
| +--ro af* [af]
| ...
+--ro preference
| +--ro (granularity)?
| ...
+--ro overload
| +--ro status? boolean
+--ro overload-max-metric {overload-max-metric}?
| +--ro timeout? rt-types:timer-value-seconds16
+--ro fast-reroute {fast-reroute}?
| +--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 spf-control +--rw spf-control
| +--ro ietf-spf-delay {ietf-spf-delay}? | +--rw ietf-spf-delay {ietf-spf-delay}?
| ...
+--ro topologies* [name]
| +--ro name leafref
| +--ro local-rib
| ...
+--ro local-rib
| +--ro route* [prefix]
| ... | ...
+--ro system-counters +--rw topologies {multi-topology}?
| +--ro level* [level] | +--rw topology* [name]
| ... | ...
+--ro interfaces +--rw interfaces
| +--ro interface* [interface] | +--rw interface* [name]
| ... | ...
+--ro spf-log +--ro spf-log
| +--ro event* [id] | +--ro event* [id]
| ... | ...
+--ro lsp-log +--ro lsp-log
| +--ro event* [id] | +--ro event* [id]
| ... | ...
+--ro hostnames +--ro hostnames
| +--ro hostname* [system-id] | +--ro hostname* [system-id]
| ... | ...
+--ro database +--ro database
+--ro level-db* [level] | +--ro level-db* [level]
| ...
+--ro local-rib
| +--ro route* [prefix]
| ...
+--ro system-counters
+--ro level* [level]
... ...
rpcs: rpcs:
+---x clear-adjacency +---x clear-adjacency
| +--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
skipping to change at page 14, line 6 skipping to change at page 12, line 30
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
+--rw interface* [name] | +--rw interface* [name]
+--rw name if:interface-ref | +--rw name if:interface-ref
+--rw level-type? level | +--rw level-type? level
+--rw lsp-pacing-interval? rt-types:timer-value-millis | +--rw lsp-pacing-interval? rt-types:timer-value-millis
econds econds
+--rw lsp-retransmit-interval? rt-types:timer-value-second | +--rw lsp-retransmit-interval? rt-types:timer-value-second
s16 s16
+--rw passive? boolean | +--rw passive? boolean
+--rw csnp-interval? rt-types:timer-value-second | +--rw csnp-interval? rt-types:timer-value-second
s16 s16
+--rw hello-padding | +--rw hello-padding
| +--rw enable? boolean | | +--rw enable? boolean
+--rw mesh-group-enable? mesh-group-state | +--rw mesh-group-enable? mesh-group-state
+--rw mesh-group? uint8 | +--rw mesh-group? uint8
+--rw interface-type? interface-type | +--rw interface-type? interface-type
+--rw enable? boolean {admin-control}? | +--rw enable? boolean {admin-control}?
+--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? key-chain:key-chain-ref | | | | +--rw key-chain? 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-re | | | | +--rw key-chain? key-chain:key-chain-re
f f
| | +--:(password) | | | +--:(password)
| | +--rw key? string | | | +--rw key? string
| | +--rw crypto-algorithm? identityref | | | +--rw crypto-algorithm? identityref
| +--rw level-2 | | +--rw level-2
| +--rw (authentication-type)? | | +--rw (authentication-type)?
| +--:(key-chain) {key-chain}? | | +--:(key-chain) {key-chain}?
| | +--rw key-chain? key-chain:key-chain-re | | | +--rw key-chain? key-chain:key-chain-re
f f
| +--:(password) | | +--:(password)
| +--rw key? string | | +--rw key? string
| +--rw crypto-algorithm? identityref | | +--rw crypto-algorithm? identityref
+--rw hello-interval | +--rw hello-interval
| +--rw value? rt-types:timer-value-seconds16 | | +--rw value? rt-types:timer-value-seconds16
| +--rw level-1 | | +--rw level-1
| | +--rw value? rt-types:timer-value-seconds16 | | | +--rw value? rt-types:timer-value-seconds16
| +--rw level-2 | | +--rw level-2
| +--rw value? rt-types:timer-value-seconds16 | | +--rw value? rt-types:timer-value-seconds16
+--rw hello-multiplier | +--rw hello-multiplier
| +--rw value? uint16 | | +--rw value? uint16
| +--rw level-1 | | +--rw level-1
| | +--rw value? uint16 | | | +--rw value? uint16
| +--rw level-2 | | +--rw level-2
| +--rw value? uint16 | | +--rw value? uint16
+--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
+--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
+--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 ldp | | +--rw ldp
| +--rw igp-sync? boolean {ldp-igp-sync}? | | +--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 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
| +--ro adjacencies
| | +--ro adjacency*
| | +--ro neighbor-systype? level
| | +--ro neighbor-sysid? system-id
| | +--ro neighbor-extended-circuit-id? extended-circuit
-id
| | +--ro neighbor-snpa? snpa
| | +--ro usage? level
| | +--ro hold-timer? rt-types:timer-v
alue-seconds16
| | +--ro neighbor-priority? uint8
| | +--ro lastuptime? yang:timestamp
| | +--ro state? adj-state-type
| +--ro event-counters
| | +--ro adjacency-changes? uint32
| | +--ro adjacency-number? uint32
| | +--ro init-fails? uint32
| | +--ro adjacency-rejects? uint32
| | +--ro id-len-mismatch? uint32
| | +--ro max-area-addresses-mismatch? uint32
| | +--ro authentication-type-fails? uint32
| | +--ro authentication-fails? uint32
| | +--ro lan-dis-changes? uint32
| +--ro packet-counters
| +--ro level* [level]
| +--ro level level-number
| +--ro iih
| | +--ro in? uint32
| | +--ro out? uint32
| +--ro ish
| | +--ro in? uint32
| | +--ro out? uint32
| +--ro esh
| | +--ro in? uint32
| | +--ro out? uint32
| +--ro lsp
| | +--ro in? uint32
| | +--ro out? uint32
| +--ro psnp
| | +--ro in? uint32
| | +--ro out? uint32
| +--ro csnp
| | +--ro in? uint32
| | +--ro out? uint32
| +--ro unknown
| +--ro in? uint32
| +--ro out? uint32
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 PSNPs, CSNPs 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
skipping to change at page 17, line 7 skipping to change at page 16, line 34
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 States 2.9. Operational States
An "isis" container provides operational states for IS-IS. This Operational states are provided in the module in various places:
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 informations for each o interface : provides configuration state informations for each
interface. interface.
o adjacencies: provides state informations about current IS-IS o adjacencies: provides state informations about current IS-IS
adjacencies. adjacencies.
o spf-log: provides informations about SPF events on the node. This o spf-log: provides informations about SPF events on the node. This
SHOULD be implemented as a wrapping buffer. SHOULD be implemented as a wrapping buffer.
skipping to change at page 23, line 22 skipping to change at page 22, line 38
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@2017-03-30.yang" <CODE BEGINS> file "ietf-isis@2017-07-25.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";
} }
skipping to change at page 24, line 4 skipping to change at page 23, line 19
prefix "if"; prefix "if";
} }
import ietf-key-chain { import ietf-key-chain {
prefix "key-chain"; prefix "key-chain";
} }
import ietf-routing-types { import ietf-routing-types {
prefix "rt-types"; prefix "rt-types";
} }
import iana-routing-types {
prefix "iana-rt-types";
}
organization organization
"IETF ISIS Working Group"; "IETF ISIS Working Group";
contact contact
"WG List: &lt;mailto:isis-wg@ietf.org&gt; "WG List: &lt;mailto:isis-wg@ietf.org&gt;
Editor: Stephane Litkowski Editor: Stephane Litkowski
&lt;mailto:stephane.litkowski@orange.com&gt; &lt;mailto:stephane.litkowski@orange.com&gt;
Derek Yeung Derek Yeung
skipping to change at page 24, line 38 skipping to change at page 24, line 11
&lt;mailto:yiqu@cisco.com&gt; &lt;mailto:yiqu@cisco.com&gt;
Jeff Tantsura Jeff Tantsura
&lt;mailto:jefftant.ietf@gmail.com&gt; &lt;mailto:jefftant.ietf@gmail.com&gt;
"; ";
description description
"The YANG module defines a generic configuration model for "The YANG module defines a generic configuration model for
ISIS common across all of the vendor implementations."; ISIS common across all of the vendor implementations.";
revision 2017-03-30 { revision 2017-07-25 {
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 ISIS routing protocol."; description "Identity for the ISIS routing protocol.";
skipping to change at page 32, line 4 skipping to change at page 31, line 21
enum "meshBlocked" { enum "meshBlocked" {
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 for configuration and ops state */ /* Grouping definitions for configuration and ops state */
grouping adjacency-state { grouping adjacency-state {
container adjacencies { container adjacencies {
config false;
list adjacency { list adjacency {
leaf neighbor-systype { leaf neighbor-systype {
type level; type level;
description description
"Type of neighboring system"; "Type of neighboring system";
} }
leaf neighbor-sysid { leaf neighbor-sysid {
type system-id; type system-id;
description description
"The system-id of the neighbor"; "The system-id of the neighbor";
skipping to change at page 33, line 32 skipping to change at page 33, line 4
description description
"List of operational adjacencies."; "List of operational adjacencies.";
} }
description description
"This container lists the adjacencies of "This container lists the adjacencies of
the local node."; the local node.";
} }
description description
"Adjacency state"; "Adjacency state";
} }
grouping fast-reroute-global-state { grouping fast-reroute-global-state {
container protected-routes { container protected-routes {
config false;
list af-stats { list af-stats {
key "af prefix alternate"; key "af prefix alternate";
leaf af { leaf af {
type identityref { type identityref {
base rt-types:address-family; base iana-rt-types:address-family;
} }
description description
"Address-family"; "Address-family";
} }
leaf prefix { leaf prefix {
type string; type string;
description description
"Protected prefix."; "Protected prefix.";
} }
leaf alternate { leaf alternate {
skipping to change at page 36, line 12 skipping to change at page 35, line 34
"Metric from alternate node to the destination"; "Metric from alternate node to the destination";
} }
description description
"Per AF statistics."; "Per AF statistics.";
} }
description description
"List of prefixes that are protected."; "List of prefixes that are protected.";
} }
container nonprotected-routes { container nonprotected-routes {
config false;
list af-stats { list af-stats {
key "af prefix"; key "af prefix";
leaf af { leaf af {
type identityref { type identityref {
base rt-types:address-family; base iana-rt-types:address-family;
} }
description description
"Address-family"; "Address-family";
} }
leaf prefix { leaf prefix {
type string; type string;
description description
"Protected prefix."; "Protected prefix.";
} }
description description
skipping to change at page 36, line 29 skipping to change at page 36, line 4
description description
"Address-family"; "Address-family";
} }
leaf prefix { leaf prefix {
type string; type string;
description description
"Protected prefix."; "Protected prefix.";
} }
description description
"Per AF statistics."; "Per AF 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;
leaf frr-protection-method { leaf frr-protection-method {
type string; type string;
description description
"Protection method used."; "Protection method used.";
} }
list af-stats { list af-stats {
key af; key af;
leaf af { leaf af {
type identityref { type identityref {
base rt-types:address-family; base iana-rt-types:address-family;
} }
description description
"Address-family"; "Address-family";
} }
leaf total-routes { leaf total-routes {
type uint32; type uint32;
description description
"Total prefixes."; "Total prefixes.";
} }
leaf unprotected-routes { leaf unprotected-routes {
skipping to change at page 41, line 50 skipping to change at page 41, line 25
enum "QUIET" { enum "QUIET" {
description "QUIET state"; description "QUIET state";
} }
enum "SHORT_WAIT" { enum "SHORT_WAIT" {
description "SHORT_WAIT state"; description "SHORT_WAIT state";
} }
enum "LONG_WAIT" { enum "LONG_WAIT" {
description "LONG_WAIT state"; description "LONG_WAIT state";
} }
} }
config false;
description description
"Current state of the algorithm."; "Current state of the algorithm.";
} }
leaf remaining-time-to-learn { leaf remaining-time-to-learn {
type rt-types:timer-value-milliseconds; type rt-types:timer-value-milliseconds;
units "msec"; units "msec";
config false;
description description
"Remaining time until time-to-learn timer fires."; "Remaining time until time-to-learn timer fires.";
} }
leaf remaining-hold-down { leaf remaining-hold-down {
type rt-types:timer-value-milliseconds; type rt-types:timer-value-milliseconds;
units "msec"; units "msec";
config false;
description description
"Remaining time until hold-down timer fires."; "Remaining time until hold-down timer fires.";
} }
leaf last-event-received { leaf last-event-received {
type yang:timestamp; type yang:timestamp;
config false;
description description
"Time of last IGP event received"; "Time of last IGP event received";
} }
leaf next-spf-time { leaf next-spf-time {
type yang:timestamp; type yang:timestamp;
config false;
description description
"Time when next SPF has been scheduled."; "Time when next SPF has been scheduled.";
} }
leaf last-spf-time { leaf last-spf-time {
type yang:timestamp; type yang:timestamp;
config false;
description description
"Time of last SPF computation."; "Time of last SPF computation.";
} }
description description
"Grouping for IETF SPF delay operational states."; "Grouping for IETF SPF delay operational states.";
} }
grouping local-rib { grouping local-rib {
description "Local-rib grouping."; description "Local-rib grouping.";
container local-rib { container local-rib {
config false;
description "Local-rib."; description "Local-rib.";
list route { list route {
key "prefix"; key "prefix";
description "Routes"; description "Routes";
leaf prefix { leaf prefix {
type inet:ip-prefix; type inet:ip-prefix;
description "Destination prefix."; description "Destination prefix.";
} }
container next-hops { container next-hops {
description "All next hops for the route."; description "All next hops for the route.";
skipping to change at page 45, line 4 skipping to change at page 44, line 34
} }
enum old-only { enum old-only {
description description
"Advertise old metric style only "Advertise old metric style only
(RFC1195)"; (RFC1195)";
} }
enum both { enum both {
description "Advertise both metric description "Advertise both metric
styles"; styles";
} }
} }
default wide-only;
description description
"This leaf describes the type of metric "This leaf describes the type of metric
to be generated. to be generated.
Wide-only means only new metric style Wide-only means only new metric style
is generated, is generated,
old-only means that only old style metric old-only means that only old style metric
is generated, is generated,
and both means that both are advertised. and both means that both are advertised.
This leaf is only affecting IPv4 metrics."; This leaf is only affecting IPv4 metrics.";
} }
skipping to change at page 45, line 34 skipping to change at page 45, line 16
description description
"Value of the metric"; "Value of the metric";
} }
description description
"Grouping for global default metric config."; "Grouping for global default metric config.";
} }
grouping overload-global-cfg { grouping overload-global-cfg {
leaf status { leaf status {
type boolean; type boolean;
default false;
description description
"This leaf defines the overload status."; "This leaf defines the overload status.";
} }
description description
"Grouping for overload bit config."; "Grouping for overload bit config.";
} }
grouping overload-max-metric-global-cfg { grouping overload-max-metric-global-cfg {
leaf timeout { leaf timeout {
type rt-types:timer-value-seconds16; type rt-types:timer-value-seconds16;
skipping to change at page 47, line 37 skipping to change at page 47, line 22
} }
description description
"Interval between "Interval between
hello messages."; hello messages.";
} }
grouping hello-multiplier-cfg { grouping hello-multiplier-cfg {
leaf value { leaf value {
type uint16; type uint16;
default 3;
description description
"This leaf defines the number of "This leaf defines the number of
hello failed to be received before hello failed to be received before
declaring the adjacency down."; declaring the adjacency down.";
} }
description description
"This grouping defines the number of "This grouping defines the number of
hello failed to be received before hello failed to be received before
declaring the adjacency down."; declaring the adjacency down.";
} }
skipping to change at page 48, line 19 skipping to change at page 48, line 4
the interface the interface
for DIS election."; for DIS election.";
} }
description description
"This grouping leaf describes the "This grouping leaf describes the
priority of priority of
the interface the interface
for DIS election."; for DIS election.";
} }
grouping metric-cfg { grouping metric-cfg {
leaf value { leaf value {
type wide-metric; type wide-metric;
default "10";
description description
"Metric value."; "Metric value.";
} }
description description
"Grouping for interface metric"; "Grouping for interface metric";
} }
grouping lfa-if-cfg { grouping lfa-if-cfg {
leaf candidate-disabled { leaf candidate-disabled {
type boolean; type boolean;
default false; default false;
description description
"Prevent the interface to be used as backup."; "Prevent the interface to be used as backup.";
} }
leaf enable { leaf enable {
type boolean; type boolean;
default false;
description description
"Activates LFA. "Activates LFA.
This model assumes activation This model assumes activation
of per-prefix LFA."; of per-prefix LFA.";
} }
container remote-lfa { container remote-lfa {
if-feature remote-lfa; if-feature remote-lfa;
leaf enable { leaf enable {
type boolean; type boolean;
default false;
description description
"Activates rLFA."; "Activates rLFA.";
} }
description description
"remote LFA configuration."; "remote LFA configuration.";
} }
description description
"Grouping for LFA "Grouping for LFA
interface configuration"; interface configuration";
} }
skipping to change at page 51, line 27 skipping to change at page 51, line 14
type rt-types:timer-value-seconds16; type rt-types:timer-value-seconds16;
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 graceful-restart { container graceful-restart {
if-feature graceful-restart; if-feature graceful-restart;
leaf enable { leaf enable {
type boolean; type boolean;
default false;
description description
"Control enabling the feature."; "Control enabling the feature.";
} }
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 failing"; to failing";
} }
leaf helper-enable { leaf helper-enable {
type boolean; type boolean;
default true;
description description
"If enabled, the local router can act as restart helper."; "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;
default false;
description description
"Enable/Disable NSR."; "Enable/Disable NSR.";
} }
} }
uses isis-node-tag-cfg; uses isis-node-tag-cfg;
container authentication { container authentication {
uses authentication-global-cfg; uses authentication-global-cfg;
container level-1 { container level-1 {
uses authentication-global-cfg; uses authentication-global-cfg;
description "level-1 specific cfg"; description "level-1 specific cfg";
} }
container level-2 { container level-2 {
uses authentication-global-cfg; uses authentication-global-cfg;
description "level-2 specific cfg"; description "level-2 specific cfg";
} }
description "authentication global cfg. description "authentication global cfg.
It covers both LSPs and SNPs."; It covers both LSPs and SNPs.";
skipping to change at page 53, line 4 skipping to change at page 52, line 41
container level-1 { container level-1 {
uses default-metric-global-cfg; uses default-metric-global-cfg;
description "level-1 specific cfg"; description "level-1 specific cfg";
} }
container level-2 { container level-2 {
uses default-metric-global-cfg; uses default-metric-global-cfg;
description "level-2 specific cfg"; description "level-2 specific cfg";
} }
description "Default metric global cfg."; description "Default metric global cfg.";
} }
container afs { container afs {
if-feature nlpid-control; if-feature nlpid-control;
list af { list af {
key af; key af;
leaf af { leaf af {
type identityref { type identityref {
base rt-types:address-family; base iana-rt-types:address-family;
} }
description description
"Address-family"; "Address-family";
} }
leaf enable { leaf enable {
type boolean; type boolean;
description description
"Describes the activation state of the "Describes the activation state of the
AF."; AF.";
} }
description description
"This list permits activation "This list permits activation
of new address families."; of new address families.";
skipping to change at page 55, line 49 skipping to change at page 55, line 39
"Only valid when mesh-group-enable "Only valid when mesh-group-enable
equals meshSet"; equals meshSet";
} }
type uint8; type uint8;
description description
"Describes the mesh group ID of "Describes the mesh group ID of
the interface."; the interface.";
} }
leaf interface-type { leaf interface-type {
type interface-type; type interface-type;
default "broadcast";
description description
"This leaf defines the type of adjacency "This leaf defines the type of adjacency
to be established on the interface. to be established on the interface.
This is affecting the type of hello This is affecting the type of hello
message that would be used."; message that would be used.";
} }
uses admin-control; uses admin-control;
leaf-list tag { leaf-list tag {
if-feature prefix-tag; if-feature prefix-tag;
type uint32; type uint32;
description description
skipping to change at page 58, line 24 skipping to change at page 58, line 16
} }
description description
"BFD configuration."; "BFD configuration.";
} }
container afs { container afs {
if-feature nlpid-control; if-feature nlpid-control;
list af { list af {
key af; key af;
leaf af { leaf af {
type identityref { type identityref {
base rt-types:address-family; base iana-rt-types:address-family;
} }
description description
"Address-family"; "Address-family";
} }
description description
"List of AFs."; "List of AFs.";
} }
description description
"Container for address-families"; "Container for address-families";
} }
container mpls { container mpls {
container ldp { container ldp {
leaf igp-sync { leaf igp-sync {
if-feature ldp-igp-sync; if-feature ldp-igp-sync;
type boolean; type boolean;
default false;
description description
"Enables IGP/LDP sync."; "Enables IGP/LDP sync.";
} }
description description
"LDP protocol related configurations."; "LDP protocol related configurations.";
} }
description description
"Container for MPLS specific configuration "Container for MPLS specific configuration
for ISIS."; for ISIS.";
} }
skipping to change at page 59, line 23 skipping to change at page 59, line 16
container level-2 { container level-2 {
uses metric-cfg; uses metric-cfg;
description "level-2 specific cfg"; description "level-2 specific cfg";
} }
description "Metric configuration."; description "Metric configuration.";
} }
} }
grouping system-counters { grouping system-counters {
container system-counters { container system-counters {
config false;
list level { list level {
key level; key level;
leaf level { leaf level {
type level-number; type level-number;
description description
"This leaf describes the ISIS level."; "This leaf describes the ISIS level.";
} }
leaf corrupted-lsps { leaf corrupted-lsps {
type uint32; type uint32;
skipping to change at page 61, line 21 skipping to change at page 61, line 14
description description
"The container defines a list of counters "The container defines a list of counters
for the IS."; for the IS.";
} }
description description
"Grouping for system counters."; "Grouping for system counters.";
} }
grouping event-counters { grouping event-counters {
container event-counters { container event-counters {
config false;
leaf adjacency-changes { leaf adjacency-changes {
type uint32; type uint32;
description description
"The number of times an adjacency state "The number of times an adjacency state
change has occured on this interface."; change has occured on this interface.";
} }
leaf adjacency-number { leaf adjacency-number {
type uint32; type uint32;
description description
"The number of adjacencies on this "The number of adjacencies on this
skipping to change at page 62, line 43 skipping to change at page 62, line 37
} }
description description
"Provides protocol event counters."; "Provides protocol event counters.";
} }
description description
"Grouping for event counters"; "Grouping for event counters";
} }
grouping packet-counters { grouping packet-counters {
container packet-counters { container packet-counters {
config false;
list level { list level {
key level; key level;
leaf level { leaf level {
type level-number; type level-number;
description description
"This leaf describes the ISIS level."; "This leaf describes the ISIS level.";
} }
container iih { container iih {
leaf in { leaf in {
skipping to change at page 65, line 18 skipping to change at page 65, line 12
} }
description description
"Provides packet counters per level."; "Provides packet counters per level.";
} }
description description
"Grouping for packet counters."; "Grouping for packet counters.";
} }
grouping spf-log { grouping spf-log {
container spf-log { container spf-log {
config false;
list event { list event {
key id; key id;
leaf id { leaf id {
type uint32; type uint32;
description description
"This leaf defines the event identifier. "This leaf defines the event identifier.
This is a purely internal value."; This is a purely internal value.";
} }
leaf spf-type { leaf spf-type {
skipping to change at page 66, line 51 skipping to change at page 66, line 47
description description
"This container lists the SPF computation events."; "This container lists the SPF computation events.";
} }
description description
"Grouping for spf-log events."; "Grouping for spf-log events.";
} }
grouping lsp-log { grouping lsp-log {
container lsp-log { container lsp-log {
config false;
list event { list event {
key id; key id;
leaf id { leaf id {
type uint32; type uint32;
description description
"This leaf defines the event identifier. "This leaf defines the event identifier.
This is a purely internal value."; This is a purely internal value.";
} }
leaf level { leaf level {
skipping to change at page 68, line 25 skipping to change at page 68, line 23
"This container lists the LSP reception events. "This container lists the LSP reception events.
Local LSP modification are also contained in the Local LSP modification are also contained in the
list."; list.";
} }
description description
"Grouping for LSP log."; "Grouping for LSP log.";
} }
grouping hostname-db { grouping hostname-db {
container hostnames { container hostnames {
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
"This leaf describes the system-id "This leaf describes the system-id
associated with the hostname."; associated with the hostname.";
} }
leaf hostname { leaf hostname {
type string; type string;
skipping to change at page 82, line 45 skipping to change at page 82, line 44
} }
description description
"This container describes list of IPv6 "This container describes list of IPv6
reachability information. reachability information.
ISIS reference is TLV 236."; ISIS reference is TLV 236.";
} }
} }
grouping lsdb { grouping lsdb {
container database { container database {
config false;
list level-db { list level-db {
key level; key level;
leaf level { leaf level {
type level-number; type level-number;
description description
"Current level number"; "Current level number";
} }
list lsp { list lsp {
skipping to change at page 84, line 20 skipping to change at page 84, line 20
specific parameters."; specific parameters.";
container isis { container isis {
must "count(area-address) > 0" { must "count(area-address) > 0" {
error-message "At least one area-address error-message "At least one area-address
must be configured."; must be configured.";
description description
"Enforce configuration of at least one area."; "Enforce configuration of at least one area.";
} }
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;
description description
"IPFRR."; "IPFRR.";
} }
container spf-control { container spf-control {
container ietf-spf-delay { container ietf-spf-delay {
if-feature ietf-spf-delay; if-feature ietf-spf-delay;
uses ietf-spf-delay-cfg; uses ietf-spf-delay-cfg;
uses ietf-spf-delay-state;
description description
"IETF spf delay algorithm configuration."; "IETF spf delay algorithm configuration.";
} }
description description
"Container for all SPF computation related "Container for all SPF computation related
operations."; operations.";
} }
container topologies { container topologies {
if-feature multi-topology; if-feature multi-topology;
list topology { list topology {
skipping to change at page 86, line 6 skipping to change at page 86, line 6
"Name of RIB."; "Name of RIB.";
} }
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";
} }
uses adjacency-state;
uses event-counters;
uses packet-counters;
description description
"List of ISIS interfaces."; "List of ISIS interfaces.";
} }
description description
"This container defines ISIS interface specific "This container defines ISIS interface specific
configuration objects."; configuration objects.";
} }
uses spf-log;
uses lsp-log;
uses hostname-db;
uses lsdb;
uses local-rib;
uses system-counters;
description description
"This container defines ISIS specific configuration "This container defines ISIS specific configuration
objects."; objects.";
} }
} }
augment "/rt:routing-state/"
+"rt:control-plane-protocols/rt:control-plane-protocol" {
when "rt:type = 'isis:isis'" {
description
"This augment is only valid when routing protocol
instance type is isis.";
}
description
"This augments routing protocol instance states with ISIS
specific parameters.";
container isis {
config false;
uses isis-global-cfg;
container fast-reroute {
if-feature fast-reroute;
uses fast-reroute-global-cfg;
uses fast-reroute-global-state;
description
"IPFRR states.";
}
container spf-control {
container ietf-spf-delay {
if-feature ietf-spf-delay;
uses ietf-spf-delay-cfg;
uses ietf-spf-delay-state;
description
"IETF spf delay algorithm configuration.";
}
description
"Container for all SPF computation related
operations.";
}
list topologies {
key name;
leaf name {
type leafref {
path "../../../../../"
+"rt:ribs/rt:rib/rt:name";
}
description
"Name of RIB.";
}
uses local-rib;
description
"List of topologies.";
}
uses local-rib;
uses system-counters;
container interfaces {
list interface {
key interface;
leaf interface {
type string;
description
"This leaf describes the name
of the interface.";
}
uses isis-if-cfg;
container fast-reroute {
if-feature fast-reroute;
uses fast-reroute-if-cfg;
description
"IPFRR.";
}
list topologies {
key name;
leaf name {
type leafref {
path "../../../../../"
+"../../rt:ribs/rt:rib/rt:name";
}
description
"Name of RIB.";
}
uses isis-if-topologies-cfg;
uses adjacency-state;
description
"List of topologies.";
}
uses adjacency-state;
uses event-counters;
uses packet-counters;
description
"List of interfaces.";
}
description
"The container defines operational parameters
of interfaces.";
}
uses spf-log;
uses lsp-log;
uses hostname-db;
uses lsdb;
description
"This container defines various ISIS states objects.";
}
}
/* RPC methods */ /* RPC methods */
rpc clear-adjacency { rpc clear-adjacency {
description description
"This RPC request clears a particular "This RPC request clears a particular
set of ISIS adjacencies. If the operation set of ISIS adjacencies. If the operation
fails for ISIS internal reason, then fails for ISIS internal reason, then
error-tag and error-app-tag should be set error-tag and error-app-tag should be set
to a meaningful value."; to a meaningful value.";
input { input {
skipping to change at page 100, line 42 skipping to change at page 98, line 39
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 -16 to version -17 11.1. From version -17 to version -18
o NMDA compliancy.
o Set some default values.
o Align with iana-rt-types module.
11.2. From version -16 to version -17
o Cosmetic fixes. o Cosmetic fixes.
o Use of rt-types model. o Use of rt-types model.
11.2. From version -15 to version -16 11.3. From version -15 to version -16
o Alignment with last IETF key chain model. o Alignment with last IETF key chain model.
o lsp-log "change" leaf moved as an identity. o lsp-log "change" leaf moved as an identity.
o Incremental SPF removed from spf-log types. o Incremental SPF removed from spf-log types.
11.3. From version -14 to version -15 11.4. From version -14 to version -15
o Alignment with OSPF model done: o Alignment with OSPF model done:
* Added spf-control container with IETF SPF delay algorithm as a * Added spf-control container with IETF SPF delay algorithm as a
feature. feature.
* Added graceful-restart options. * Added graceful-restart options.
* Added nsr as a feature. * Added nsr as a feature.
skipping to change at page 101, line 34 skipping to change at page 99, line 40
* Added auto-cost container. * Added auto-cost container.
* Moved reference-bandwidth under auto-cost container. * Moved reference-bandwidth under auto-cost container.
* Added IS-IS local RIB as operational state. * Added IS-IS local RIB as operational state.
* Added decode-completed and raw-data leaves in the LSDB model. * Added decode-completed and raw-data leaves in the LSDB model.
* Modified the notification header. * Modified the notification header.
11.4. From version -13 to version -14 11.5. 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.5. From version -12 to version -13 11.6. 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.6. From version -09 to version -12 11.7. From version -09 to version -12
o Rename node-tag container to node-tags. o Rename node-tag container to node-tags.
11.7. From version -08 to version -09 11.8. 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.8. From version -07 to version -08 11.9. 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.9. From version -05 to version -07 11.10. 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.10. From version -03 to version -05 11.11. 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.11. From version -02 to version -03 11.12. 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.12. From version -01 to version -02 11.13. 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 103, line 43 skipping to change at page 101, line 45
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.13. From version -00 to version -01 11.14. 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 104, line 34 skipping to change at page 102, line 36
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-25 (work in Management", draft-ietf-netmod-routing-cfg-25 (work in
progress), November 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., and Z. Zhang, Lindem, A., Qu, Y., Yeung, D., Chen, I., and Z. Zhang,
"Routing Key Chain YANG Data Model", draft-ietf-rtgwg- "Routing Key Chain YANG Data Model", draft-ietf-rtgwg-
yang-key-chain-17 (work in progress), March 2017. yang-key-chain-24 (work in progress), April 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. 90 change blocks. 
357 lines changed or deleted 274 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/