draft-ietf-isis-yang-isis-cfg-16.txt   draft-ietf-isis-yang-isis-cfg-17.txt 
IS-IS Working Group S. Litkowski IS-IS Working Group S. Litkowski
Internet-Draft Orange Internet-Draft Orange
Intended status: Standards Track D. Yeung Intended status: Standards Track D. Yeung
Expires: September 30, 2017 Arrcus, Inc Expires: October 1, 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
March 29, 2017 March 30, 2017
YANG Data Model for IS-IS protocol YANG Data Model for IS-IS protocol
draft-ietf-isis-yang-isis-cfg-16 draft-ietf-isis-yang-isis-cfg-17
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 September 30, 2017. This Internet-Draft will expire on October 1, 2017.
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 27 skipping to change at page 2, line 27
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 . . . . . . . . . . . . . . . . . . . 11
2.2. Multitopology Parameters . . . . . . . . . . . . . . . . 11 2.2. Multitopology Parameters . . . . . . . . . . . . . . . . 11
2.3. Per-Level Parameters . . . . . . . . . . . . . . . . . . 12 2.3. Per-Level Parameters . . . . . . . . . . . . . . . . . . 11
2.4. Per-Interface Parameters . . . . . . . . . . . . . . . . 13 2.4. Per-Interface Parameters . . . . . . . . . . . . . . . . 13
2.5. Authentication Parameters . . . . . . . . . . . . . . . . 16 2.5. Authentication Parameters . . . . . . . . . . . . . . . . 16
2.6. IGP/LDP synchronization . . . . . . . . . . . . . . . . . 16 2.6. IGP/LDP synchronization . . . . . . . . . . . . . . . . . 16
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 . . . . . . . . . . . . . . . . . . . 17
3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 17 3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 17
4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 18 4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 18
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 . . . . . . . . . . . . . . . . . . . . . . 23
7. Security Considerations . . . . . . . . . . . . . . . . . . . 101 7. Security Considerations . . . . . . . . . . . . . . . . . . . 99
8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 102 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 100
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 102 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 100
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 102 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 100
11. Change log for ietf-isis YANG module . . . . . . . . . . . . 102 11. Change log for ietf-isis YANG module . . . . . . . . . . . . 100
11.1. From version -15 to version -16 . . . . . . . . . . . . 102 11.1. From version -16 to version -17 . . . . . . . . . . . . 100
11.2. From version -14 to version -15 . . . . . . . . . . . . 102 11.2. From version -15 to version -16 . . . . . . . . . . . . 100
11.3. From version -13 to version -14 . . . . . . . . . . . . 103 11.3. From version -14 to version -15 . . . . . . . . . . . . 101
11.4. From version -12 to version -13 . . . . . . . . . . . . 103 11.4. From version -13 to version -14 . . . . . . . . . . . . 101
11.5. From version -09 to version -12 . . . . . . . . . . . . 103 11.5. From version -12 to version -13 . . . . . . . . . . . . 101
11.6. From version -08 to version -09 . . . . . . . . . . . . 103 11.6. From version -09 to version -12 . . . . . . . . . . . . 101
11.7. From version -07 to version -08 . . . . . . . . . . . . 104 11.7. From version -08 to version -09 . . . . . . . . . . . . 102
11.8. From version -05 to version -07 . . . . . . . . . . . . 104 11.8. From version -07 to version -08 . . . . . . . . . . . . 102
11.9. From version -03 to version -05 . . . . . . . . . . . . 104 11.9. From version -05 to version -07 . . . . . . . . . . . . 102
11.10. From version -02 to version -03 . . . . . . . . . . . . 104 11.10. From version -03 to version -05 . . . . . . . . . . . . 102
11.11. From version -01 to version -02 . . . . . . . . . . . . 105 11.11. From version -02 to version -03 . . . . . . . . . . . . 103
11.12. From version -00 to version -01 . . . . . . . . . . . . 105 11.12. From version -01 to version -02 . . . . . . . . . . . . 103
12. Normative References . . . . . . . . . . . . . . . . . . . . 106 11.13. From version -00 to version -01 . . . . . . . . . . . . 103
Appendix A. Example of IS-IS configuration in XML . . . . . . . 107 12. Normative References . . . . . . . . . . . . . . . . . . . . 104
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 109 Appendix A. Example of IS-IS configuration in XML . . . . . . . 105
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 107
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 30 skipping to change at page 4, line 33
+--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 ldp | +--rw ldp
| ... | ...
+--rw auto-cost {auto-cost}? +--rw auto-cost {auto-cost}?
| +--rw reference-bandwidth? uint32 | +--rw reference-bandwidth? uint32
| +--rw enable? boolean | +--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? rt-types:timer-value-seconds16 {ls
+--rw spf-control p-refresh}?
| +--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 restart-interval? rt-types:timer-value-seconds16
| +--rw helper-enable? boolean | +--rw helper-enable? boolean
+--rw nsr {nsr}? +--rw nsr {nsr}?
| +--rw enable? boolean | +--rw enable? boolean
+--rw node-tags {node-tag}? +--rw node-tags {node-tag}?
| +--rw node-tag* [tag] | +--rw node-tag* [tag]
| ... | ...
+--rw authentication +--rw authentication
| +--rw (authentication-type)? | +--rw (authentication-type)?
| | ... | | ...
| +--rw level-1 | +--rw level-1
skipping to change at page 5, line 22 skipping to change at page 5, line 22
| ... | ...
+--rw afs {nlpid-control}? +--rw afs {nlpid-control}?
| +--rw af* [af] | +--rw af* [af]
| ... | ...
+--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? uint16 | +--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 topologies {multi-topology}?
| +--rw topology* [name] | +--rw topology* [name]
| ... | ...
+--rw interfaces +--rw interfaces
+--rw interface* [name] +--rw interface* [name]
... ...
augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-pr augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-pr
otocol: otocol:
+--ro isis +--ro isis
+--ro enable? boolean {admin-control}? +--ro enable? boolean {admin-control}?
skipping to change at page 5, line 49 skipping to change at page 5, line 52
+--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 ldp | +--ro ldp
| ... | ...
+--ro auto-cost {auto-cost}? +--ro auto-cost {auto-cost}?
| +--ro reference-bandwidth? uint32 | +--ro reference-bandwidth? uint32
| +--ro enable? boolean | +--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? rt-types:timer-value-seconds16 {ls
+--ro spf-control p-refresh}?
| +--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 restart-interval? rt-types:timer-value-seconds16
| +--ro helper-enable? boolean | +--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 40 skipping to change at page 6, line 40
| ... | ...
+--ro afs {nlpid-control}? +--ro afs {nlpid-control}?
| +--ro af* [af] | +--ro af* [af]
| ... | ...
+--ro preference +--ro preference
| +--ro (granularity)? | +--ro (granularity)?
| ... | ...
+--ro overload +--ro overload
| +--ro status? boolean | +--ro status? boolean
+--ro overload-max-metric {overload-max-metric}? +--ro overload-max-metric {overload-max-metric}?
| +--ro timeout? uint16 | +--ro timeout? rt-types:timer-value-seconds16
+--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 spf-control
| +--ro initial-delay? uint16 | +--ro ietf-spf-delay {ietf-spf-delay}?
| +--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 local-rib | +--ro local-rib
| ... | ...
+--ro local-rib
| +--ro route* [prefix]
| ...
+--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]
| ... | ...
+--ro lsp-log +--ro lsp-log
| +--ro event* [id] | +--ro event* [id]
| ... | ...
+--ro database
| +--ro level-db* [level]
| ...
+--ro hostnames +--ro hostnames
+--ro hostname* [system-id] | +--ro hostname* [system-id]
| ...
+--ro database
+--ro level-db* [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 12 skipping to change at page 14, line 9
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? uint16 +--rw lsp-pacing-interval? rt-types:timer-value-millis
+--rw lsp-retransmit-interval? uint16 econds
+--rw lsp-retransmit-interval? rt-types:timer-value-second
s16
+--rw passive? boolean +--rw passive? boolean
+--rw csnp-interval? uint16 +--rw csnp-interval? rt-types:timer-value-second
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
skipping to change at page 14, line 49 skipping to change at page 14, line 49
| | +--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? uint16 | +--rw value? rt-types:timer-value-seconds16
| +--rw level-1 | +--rw level-1
| | +--rw value? uint16 | | +--rw value? rt-types:timer-value-seconds16
| +--rw level-2 | +--rw level-2
| +--rw value? uint16 | +--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
skipping to change at page 23, line 22 skipping to change at page 23, line 22
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-29.yang" <CODE BEGINS> file "ietf-isis@2017-03-30.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;
} }
import ietf-interfaces { import ietf-interfaces {
prefix "if"; prefix "if";
} }
import ietf-key-chain { import ietf-key-chain {
prefix "key-chain"; prefix "key-chain";
} }
import ietf-routing-types {
prefix "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 34 skipping to change at page 24, line 38
&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-29 { revision 2017-03-30 {
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.";
} }
identity isis-adjacency-change { identity isis-adjacency-change {
description "Identity for the ISIS routing protocol description "Identity for the ISIS routing protocol
skipping to change at page 25, line 42 skipping to change at page 25, line 48
feature ietf-spf-delay { feature ietf-spf-delay {
description description
"Support of IETF SPF delay algorithm."; "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
"Support of segment-routing."; "Support of segment-routing.";
} }
feature node-flag { feature node-flag {
description description
"Support of node-flag advertisement "Support of node-flag advertisement
as prefix attribute"; as prefix attribute";
} }
skipping to change at page 28, line 7 skipping to change at page 28, line 13
type leafref { type leafref {
path "/rt:routing-state/" path "/rt:routing-state/"
+"rt:control-plane-protocols/rt:control-plane-protocol/" +"rt:control-plane-protocols/rt:control-plane-protocol/"
+"rt:name"; +"rt:name";
} }
description description
"This type is used for leaves that reference state data of "This type is used for leaves that reference state data of
an ISIS protocol instance."; an ISIS protocol instance.";
} }
typedef admin-state {
type enumeration {
enum "up" {
description
"Up state";
}
enum "down" {
description
"Down state";
}
}
description
"Administrative state of a component.";
}
typedef oper-state {
type enumeration {
enum "up" {
description
"Up state";
}
enum "down" {
description
"Down state";
}
}
description
"Operational state of a component.";
}
typedef circuit-id { typedef circuit-id {
type uint8; type uint8;
description description
"This type defines the circuit ID "This type defines the circuit ID
associated with an interface."; associated with an interface.";
} }
typedef extended-circuit-id { typedef extended-circuit-id {
type uint32; type uint32;
description description
"This type defines the extended circuit ID "This type defines the extended circuit ID
associated with an interface."; associated with an interface.";
} }
typedef interface-type { typedef interface-type {
type enumeration { type enumeration {
enum broadcast { enum broadcast {
description "Broadcast interface type. description
Would result in DIS election."; "Broadcast interface type.";
} }
enum point-to-point { enum point-to-point {
description description
"Point to point interface type."; "Point to point interface type.";
} }
} }
description description
"This type defines the type of adjacency "This type defines the type of adjacency
to be established on the interface. to be established on the interface.
This is affecting the type of hello This is affecting the type of hello
skipping to change at page 30, line 25 skipping to change at page 29, line 50
} }
} }
description description
"This type defines states of an adjacency"; "This type defines states of an adjacency";
} }
typedef if-state-type { typedef if-state-type {
type enumeration { type enumeration {
enum "Up" { enum "Up" {
description description
"This state describes that "Up state.";
.";
} }
enum "Down" { enum "Down" {
description description
"This state describes that "Down state";
.";
} }
} }
description description
"This type defines states of an interface"; "This type defines states of an interface";
} }
typedef level-number { typedef level-number {
type uint8 { type uint8 {
range "1 .. 2"; range "1 .. 2";
} }
skipping to change at page 31, line 13 skipping to change at page 30, line 39
description description
"This type defines ISIS LSP ID using pattern, "This type defines ISIS LSP ID using pattern,
system id looks like : 0143.0438.AeF0.02-01"; system id looks like : 0143.0438.AeF0.02-01";
} }
typedef area-address { typedef area-address {
type string { type string {
pattern '[0-9A-Fa-f]{2}\.([0-9A-Fa-f]{4}\.){0,3}'; pattern '[0-9A-Fa-f]{2}\.([0-9A-Fa-f]{4}\.){0,3}';
} }
description description
"This type defines the area address."; "This type defines the area address format.";
} }
typedef snpa { typedef snpa {
type string { type string {
length "0 .. 20"; length "0 .. 20";
} }
description description
"This type defines Subnetwork Point of Attachement format."; "This type defines Subnetwork Point
of Attachement format.";
} }
typedef system-id { typedef system-id {
type string { type string {
pattern pattern
'[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}'; '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}';
} }
description description
"This type defines ISIS system id using pattern, "This type defines ISIS system id using pattern,
system id looks like : 0143.0438.AeF0"; system id looks like : 0143.0438.AeF0";
skipping to change at page 32, line 26 skipping to change at page 31, line 49
} }
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 */ /* Grouping definitions for configuration and ops state */
grouping adjacency-state {
grouping local-rib { container adjacencies {
description "Local-rib grouping."; list adjacency {
container local-rib { leaf neighbor-systype {
description "Local-rib."; type level;
list route { description
key "prefix"; "Type of neighboring system";
description "Routes";
leaf prefix {
type inet:ip-prefix;
description "Destination prefix.";
} }
container next-hops { leaf neighbor-sysid {
description "All next hops for the route."; type system-id;
list next-hop { description
key "next-hop"; "The system-id of the neighbor";
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 { leaf neighbor-extended-circuit-id {
type uint32; type extended-circuit-id;
description "Metric for this route."; description
"Circuit ID of the neighbor";
} }
leaf level { leaf neighbor-snpa {
type level-number; type snpa;
description "Level number for this route."; description
"SNPA of the neighbor";
} }
leaf route-tag { leaf usage {
type uint32; type level;
description "Route tag for this route."; description
"How is the adjacency used ?
On a p2p link this might be level 1 and 2,
but on a LAN, the usage will be level 1
between peers at L1 or level 2 between
peers at L2.";
}
leaf hold-timer {
type rt-types:timer-value-seconds16;
units seconds;
description
"The holding time in seconds for this
adjacency. This value is based on
received hello PDUs and the elapsed
time since receipt.";
}
leaf neighbor-priority {
type uint8 {
range "0 .. 127";
}
description
"Priority of the neighboring IS for becoming
the DIS.";
}
leaf lastuptime {
type yang:timestamp;
description
"When the adjacency most recently entered
state 'up', measured in hundredths of a
second since the last reinitialization of
the network management subsystem.
The value is 0 if the adjacency has never
been in state 'up'.";
}
leaf state {
type adj-state-type;
description
"This leaf describes the state of the
interface.";
} }
}
}
}
grouping admin-control {
leaf enable {
if-feature admin-control;
type boolean;
default true;
description description
"Control the administrative "List of operational adjacencies.";
state."; }
description
"This container lists the adjacencies of
the local node.";
} }
description description
"Grouping for admin control."; "Adjacency state";
} }
grouping adjacency-state { grouping fast-reroute-global-state {
container adjacencies { container protected-routes {
list adjacency { list af-stats {
leaf neighbor-systype { key "af prefix alternate";
type level;
description
"Type of neighboring system";
}
leaf neighbor-sysid {
type system-id;
description
"The system-id of the neighbor";
}
leaf neighbor-extended-circuit-id {
type extended-circuit-id;
description
"Circuit ID of the neighbor";
}
leaf neighbor-snpa {
type snpa;
description
"SNPA of the neighbor";
}
leaf usage {
type level;
description
"How is the adjacency used ?
On a p2p link this might be level 1 and 2,
but on a LAN, the usage will be level 1
between peers at L1 or level 2 between
peers at L2.";
}
leaf hold-timer {
type uint16;
description
"The holding time in seconds for this
adjacency. This value is based on
received hello PDUs and the elapsed
time since receipt.";
}
leaf neighbor-priority {
type uint8 {
range "0 .. 127";
}
description
"Priority of the neighboring IS for becoming
the DIS.";
}
leaf lastuptime {
type yang:timestamp;
description
"When the adjacency most recently entered
state 'up', measured in hundredths of a
second since the last reinitialization of
the network management subsystem.
The value is 0 if the adjacency has never
been in state 'up'.";
}
leaf state {
type adj-state-type;
description
"This leaf describes the state of the
interface.";
}
description leaf af {
"List of operational adjacencies."; type identityref {
} base rt-types:address-family;
description
"This container lists the adjacencies of
the local node.";
} }
description description
"Adjacency state"; "Address-family";
} }
leaf prefix {
grouping fast-reroute-global-state { type string;
container protected-routes { description
list af-stats { "Protected prefix.";
key "af prefix alternate"; }
leaf alternate {
leaf af { type string;
type identityref { description
base rt:address-family; "Alternate nexthop for the prefix.";
} }
description leaf alternate-type {
"Address-family"; type enumeration {
} enum equalcost {
leaf prefix {
type string;
description
"Protected prefix.";
}
leaf alternate {
type string;
description
"Alternate nexthop for the prefix.";
}
leaf alternate-type {
type enumeration {
enum equalcost {
description
"ECMP alternate.";
}
enum lfa {
description
"LFA alternate.";
}
enum remote-lfa {
description
"Remote LFA alternate.";
}
enum tunnel {
description
"Tunnel based alternate
(like RSVP-TE or GRE).";
}
enum ti-lfa {
description
"TI LFA alternate.";
}
enum mrt {
description
"MRT alternate.";
}
enum other {
description
"Unknown alternate type.";
}
}
description description
"Type of alternate."; "ECMP alternate.";
} }
leaf best { enum lfa {
type boolean;
description description
"describes if the alternate is the best one."; "LFA alternate.";
} }
leaf non-best-reason { enum remote-lfa {
type string;
description description
"Information field to describe why the alternate "Remote LFA alternate.";
is not best.";
} }
leaf protection-available { enum tunnel {
type bits {
bit nodeprotect {
position 0;
description
"Node protection available.";
}
bit linkprotect {
position 1;
description
"Link protection available.";
}
bit srlgprotect {
position 2;
description
"SRLG protection available.";
}
bit downstreamprotect {
position 3;
description
"Downstream protection available.";
}
bit other {
position 4;
description
"Other protection available.";
}
}
description description
"Describes protection provided by the alternate."; "Tunnel based alternate
(like RSVP-TE or GRE).";
} }
leaf alternate-metric1 { enum ti-lfa {
type uint32;
description description
"Metric from PLR to destination "TI LFA alternate.";
through the alternate path.";
} }
leaf alternate-metric2 { enum mrt {
type uint32;
description description
"Metric from PLR to the alternate node"; "MRT alternate.";
} }
leaf alternate-metric3 { enum other {
type uint32;
description description
"Metric from alternate node to the destination"; "Unknown alternate type.";
} }
description
"Per AF statistics.";
} }
description description
"List of prefixes that are protected."; "Type of alternate.";
} }
leaf best {
container nonprotected-routes { type boolean;
list af-stats {
key "af prefix";
leaf af {
type identityref {
base rt:address-family;
}
description
"Address-family";
}
leaf prefix {
type string;
description
"Protected prefix.";
}
description
"Per AF statistics.";
}
description description
"List of prefixes that are not protected."; "describes if the alternate is the best one.";
} }
leaf non-best-reason {
type string;
description
"Information field to describe why the alternate
is not best.";
list protection-statistics { }
key frr-protection-method; leaf protection-available {
type bits {
leaf frr-protection-method { bit nodeprotect {
type string; position 0;
description
"Protection method used.";
}
list af-stats {
key af;
leaf af {
type identityref {
base rt:address-family;
}
description
"Address-family";
}
leaf total-routes {
type uint32;
description description
"Total prefixes."; "Node protection available.";
} }
leaf unprotected-routes { bit linkprotect {
type uint32; position 1;
description description
"Total of prefixes who are "Link protection available.";
not protected.";
} }
leaf protected-routes { bit srlgprotect {
type uint32; position 2;
description description
"Total of prefixes who are "SRLG protection available.";
protected.";
} }
leaf linkprotected-routes { bit downstreamprotect {
type uint32; position 3;
description description
"Total of prefixes who are "Downstream protection available.";
link protected.";
} }
leaf nodeprotected-routes { bit other {
type uint32; position 4;
description description
"Total of prefixes who are "Other protection available.";
node protected.";
} }
description
"Per AF statistics.";
} }
description
"Describes protection provided by the alternate.";
}
leaf alternate-metric1 {
type uint32;
description
"Metric from PLR to destination
through the alternate path.";
}
leaf alternate-metric2 {
type uint32;
description
"Metric from PLR to the alternate node";
}
leaf alternate-metric3 {
type uint32;
description
"Metric from alternate node to the destination";
}
description
"Per AF statistics.";
}
description
"List of prefixes that are protected.";
}
container nonprotected-routes {
list af-stats {
key "af prefix";
leaf af {
type identityref {
base rt-types:address-family;
}
description description
"Global protection statistics."; "Address-family";
}
leaf prefix {
type string;
description
"Protected prefix.";
} }
description description
"IPFRR states."; "Per AF statistics.";
}
description
"List of prefixes that are not protected.";
}
list protection-statistics {
key frr-protection-method;
leaf frr-protection-method {
type string;
description
"Protection method used.";
}
list af-stats {
key af;
leaf af {
type identityref {
base rt-types:address-family;
}
description
"Address-family";
}
leaf total-routes {
type uint32;
description
"Total prefixes.";
}
leaf unprotected-routes {
type uint32;
description
"Total of prefixes who are
not protected.";
}
leaf protected-routes {
type uint32;
description
"Total of prefixes who are
protected.";
}
leaf linkprotected-routes {
type uint32;
description
"Total of prefixes who are
link protected.";
}
leaf nodeprotected-routes {
type uint32;
description
"Total of prefixes who are
node protected.";
}
description
"Per AF statistics.";
}
description
"Global protection statistics.";
}
description
"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 routing-instance { leaf routing-instance {
type string; type string;
description description
"Describes the name of the routing-instance instance."; "Describes the name of the routing-instance instance.";
skipping to change at page 41, line 36 skipping to change at page 39, line 46
enum l1-down-external { enum l1-down-external {
description "Level 1 external route description "Level 1 external route
and leaked to a lower level"; and leaked to a lower level";
} }
} }
description description
"This leaf describes the type of ISIS route."; "This leaf describes the type of ISIS route.";
} }
} }
grouping admin-control {
leaf enable {
if-feature admin-control;
type boolean;
default true;
description
"Control the administrative
state.";
}
description
"Grouping for admin control.";
}
grouping fast-reroute-global-cfg { grouping fast-reroute-global-cfg {
description description
"This group defines global "This group defines global
configuration of IPFRR."; configuration of IPFRR.";
container lfa {
container lfa { if-feature lfa;
if-feature lfa; description
description "This container may be
"This container may be augmented with global parameters
augmented with global parameters for LFA.
for LFA. Creating the container has no effect on
Creating the container has no effect on LFA activation.";
LFA activation."; }
}
} }
grouping fast-reroute-if-cfg { grouping fast-reroute-if-cfg {
description description
"This group defines interface "This group defines interface
configuration of IPFRR."; configuration of IPFRR.";
container lfa { container lfa {
if-feature lfa; if-feature lfa;
uses lfa-if-cfg; uses lfa-if-cfg;
container level-1 { container level-1 {
uses lfa-if-cfg; uses lfa-if-cfg;
description description
"LFA level 21 config"; "LFA level 1 config";
} }
container level-2 { container level-2 {
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 { grouping ietf-spf-delay-cfg {
leaf initial-delay { leaf initial-delay {
type uint16; type rt-types:timer-value-milliseconds;
units msec; units msec;
description description
"Delay used while in QUIET state."; "Delay used while in QUIET state.";
} }
leaf short-delay { leaf short-delay {
type uint16; type rt-types:timer-value-milliseconds;
units msec; units msec;
description description
"Delay used while in SHORT_WAIT state."; "Delay used while in SHORT_WAIT state.";
} }
leaf long-delay { leaf long-delay {
type uint16; type rt-types:timer-value-milliseconds;
units msec; units msec;
description description
"Delay used while in LONG_WAIT state."; "Delay used while in LONG_WAIT state.";
} }
leaf hold-down { leaf hold-down {
type uint16; type rt-types:timer-value-milliseconds;
units msec; units msec;
description description
"Timer used to consider an IGP stability period."; "Timer used to consider an IGP stability period.";
} }
leaf time-to-learn { leaf time-to-learn {
type uint16; type rt-types:timer-value-milliseconds;
units msec; units msec;
description description
"Duration used to learn all the IGP events "Duration used to learn all the IGP events
related to a single component failure."; related to a single component failure.";
} }
description description
"Grouping for IETF SPF delay configuration."; "Grouping for IETF SPF delay configuration.";
} }
skipping to change at page 43, line 34 skipping to change at page 42, line 4
} }
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";
} }
} }
description description
"Current state of the algorithm."; "Current state of the algorithm.";
} }
leaf remaining-time-to-learn { leaf remaining-time-to-learn {
type uint16; type rt-types:timer-value-milliseconds;
units "seconds"; units "msec";
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 uint16; type rt-types:timer-value-milliseconds;
units "seconds"; units "msec";
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;
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;
skipping to change at page 44, line 18 skipping to change at page 42, line 37
} }
leaf last-spf-time { leaf last-spf-time {
type yang:timestamp; type yang:timestamp;
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 prefix-reachability-attributes { grouping local-rib {
description description "Local-rib grouping.";
"This group defines extended reachability attributes of an container local-rib {
IPv4 or IPv6 prefix."; description "Local-rib.";
list route {
leaf external-prefix-flag { key "prefix";
type boolean; description "Routes";
description leaf prefix {
"External prefix flag."; type inet:ip-prefix;
} description "Destination prefix.";
leaf readvertisement-flag {
type boolean;
description
"Readvertisement flag.";
}
leaf node-flag {
type boolean;
description
"Node flag.";
}
}
grouping prefix-ipv4-source-router-id {
description
"This group defines the IPv4 source router ID of
a prefix advertisement.";
leaf ipv4-source-router-id {
type inet:ipv4-address;
description
"IPv4 Source router ID address.";
}
}
grouping prefix-ipv6-source-router-id {
description
"This group defines the IPv6 source router ID of
a prefix advertisement.";
leaf ipv6-source-router-id {
type inet:ipv6-address;
description
"IPv6 Source router ID address.";
}
}
grouping prefix-attributes-extension {
description
"Prefix extended attributes.";
uses prefix-reachability-attributes;
uses prefix-ipv4-source-router-id;
uses prefix-ipv6-source-router-id;
}
grouping prefix-ipv4-std {
description
"This group defines attributes of an
IPv4 standard prefix.";
leaf up-down {
type boolean;
description
"This leaf expresses the value of up/down bit.";
}
leaf i-e {
type boolean;
description
"This leaf expresses the value of I/E bit.";
}
leaf ip-prefix {
type inet:ipv4-address;
description
"This leaf describes the IPv4 prefix";
}
leaf prefix-len {
type uint8;
description
"This leaf describes the IPv4 prefix len in bits";
}
leaf default-metric {
type std-metric;
description
"This leaf describes the ISIS default metric value";
}
container delay-metric {
leaf metric {
type std-metric;
description
"This leaf describes the ISIS delay metric value";
}
leaf supported {
type boolean;
default "false";
description
"This leaf describes if the metric is supported.";
}
description
"This container defines the ISIS delay metric.";
}
container expense-metric {
leaf metric {
type std-metric;
description
"This leaf describes the ISIS expense metric value";
}
leaf supported {
type boolean;
default "false";
description
"This leaf describes if the metric is supported.";
}
description
"This container defines the ISIS expense metric.";
}
container error-metric {
leaf metric {
type std-metric;
description
"This leaf describes the ISIS error metric value";
}
leaf supported {
type boolean;
default "false";
description
"This leaf describes if the metric is supported.";
}
description
"This container defines the ISIS error metric.";
}
}
grouping prefix-ipv4-extended {
description
"This group defines attributes of an
IPv4 extended prefix.";
leaf up-down {
type boolean;
description
"This leaf expresses the value of up/down bit.";
}
leaf ip-prefix {
type inet:ipv4-address;
description
"This leaf describes the IPv4 prefix";
}
leaf prefix-len {
type uint8;
description
"This leaf describes the IPv4 prefix len in bits";
}
leaf metric {
type wide-metric;
description
"This leaf describes the ISIS metric value";
}
leaf-list tag {
type uint32;
description
"This leaf describes a list of tags associated with
the prefix.";
}
leaf-list tag64 {
type uint64;
description
"This leaf describes a list of 64-bit tags associated with
the prefix.";
}
uses prefix-attributes-extension;
}
grouping prefix-ipv6-extended {
description
"This group defines attributes of an
IPv6 prefix.";
leaf up-down {
type boolean;
description
"This leaf expresses the value of up/down bit.";
}
leaf ip-prefix {
type inet:ipv6-address;
description
"This leaf describes the IPv6 prefix";
}
leaf prefix-len {
type uint8;
description
"This leaf describes the IPv4 prefix len in bits";
}
leaf metric {
type wide-metric;
description
"This leaf describes the ISIS metric value";
}
leaf-list tag {
type uint32;
description
"This leaf describes a list of tags associated with
the prefix.";
}
leaf-list tag64 {
type uint64;
description
"This leaf describes a list of 64-bit tags associated with
the prefix.";
}
uses prefix-attributes-extension;
}
grouping neighbor-extended {
description
"This group defines attributes of an
ISIS extended neighbor.";
leaf neighbor-id {
type system-id;
description
"This leaf describes the system-id of the neighbor.";
}
leaf metric {
type wide-metric;
description
"This leaf describes the ISIS metric value";
}
}
grouping neighbor {
description
"This group defines attributes of an
ISIS standard neighbor.";
leaf neighbor-id {
type system-id;
description
"This leaf describes the system-id of the neighbor.";
}
leaf i-e {
type boolean;
description
"This leaf expresses the value of I/E bit.";
}
leaf default-metric {
type std-metric;
description
"This leaf describes the ISIS default metric value";
}
container delay-metric {
leaf metric {
type std-metric;
description
"This leaf describes the ISIS delay metric value";
}
leaf supported {
type boolean;
default "false";
description
"This leaf describes if the metric is supported.";
}
description
"This container defines the ISIS delay metric.";
}
container expense-metric {
leaf metric {
type std-metric;
description
"This leaf describes the ISIS delay expense value";
}
leaf supported {
type boolean;
default "false";
description
"This leaf describes if the metric is supported.";
}
description
"This container defines the ISIS expense metric.";
}
container error-metric {
leaf metric {
type std-metric;
description
"This leaf describes the ISIS error metric value";
}
leaf supported {
type boolean;
default "false";
description
"This leaf describes if the metric is supported.";
}
description
"This container defines the ISIS error metric.";
}
}
grouping database {
description
"This group defines attributes of an
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 {
type lsp-id;
description
"This leaf describes the LSP ID of the LSP.";
}
leaf checksum {
type uint16;
description
"This leaf describes the checksum of the LSP.";
}
leaf remaining-lifetime {
type uint16;
units "seconds";
description
"This leaf describes the remaining lifetime
in seconds before the LSP expiration.";
}
leaf sequence {
type uint32;
description
"This leaf describes the sequence number of the LSP.";
}
leaf attributes {
type bits {
bit PARTITIONNED {
description
"If set, the originator supports partition
repair.";
}
bit ATTACHED-ERROR {
description
"If set, the originator is attached to
another area using the referred metric.";
}
bit ATTACHED-EXPENSE {
description
"If set, the originator is attached to
another area using the referred metric.";
}
bit ATTACHED-DELAY {
description
"If set, the originator is attached to
another area using the referred metric.";
}
bit ATTACHED-DEFAULT {
description
"If set, the originator is attached to
another area using the referred metric.";
}
bit OVERLOAD {
description
"If set, the originator is overloaded,
and must be avoided in path calculation.";
}
}
description
"This leaf describes attributes of the LSP.";
}
container is-neighbor {
list neighbor {
uses neighbor;
description
"List of neighbors.";
}
description
"This leaf describes list of ISIS neighbors.
ISIS reference is TLV 2.";
}
container authentication {
leaf authentication-type {
type string;
description
"This leaf describes the authentication type
to be used.";
}
leaf authentication-key {
type string;
description
"This leaf describes the authentication key
to be used. For security reason, the
authentication key MUST NOT be presented
in plaintext format. Authors recommends
to use MD5 hash to present the authentication-key.";
}
description "This container describes authentication
information of the node. ISIS reference is TLV 10.";
}
container extended-is-neighbor {
list neighbor {
uses neighbor-extended;
description
"List of neighbors.";
}
description
"This container describes list of ISIS extended
neighbors.
ISIS reference is TLV 22.";
}
container ipv4-internal-reachability {
list prefixes {
uses prefix-ipv4-std;
description
"List of prefixes.";
}
description
"This container describes list of IPv4 internal
reachability information.
ISIS reference is TLV 128.";
}
leaf-list protocol-supported {
type uint8;
description
"This leaf describes the list of
supported protocols.
ISIS reference is TLV 129.";
}
container ipv4-external-reachability {
list prefixes {
uses prefix-ipv4-std;
description
"List of prefixes.";
}
description
"This container describes list of IPv4 external
reachability information.
ISIS reference is TLV 130.";
}
leaf-list ipv4-addresses {
type inet:ipv4-address;
description
"This leaf describes the IPv4 addresses of the node.
ISIS reference is TLV 132.";
}
leaf ipv4-te-routerid {
type inet:ipv4-address;
description
"This leaf describes the IPv4 Traffic Engineering
router ID of the node.
ISIS reference is TLV 134.";
}
container extended-ipv4-reachability {
list prefixes {
uses prefix-ipv4-extended;
description
"List of prefixes.";
}
description
"This container describes list of IPv4 extended
reachability information.
ISIS reference is TLV 135.";
}
leaf dynamic-hostname {
type string;
description
"This leaf describes the name of the node.
ISIS reference is TLV 137.";
}
leaf ipv6-te-routerid {
type inet:ipv6-address;
description
"This leaf describes the IPv6 Traffic Engineering
router ID of the node.
ISIS reference is TLV 140.";
}
container mt-is-neighbor {
list neighbor {
leaf MT-ID {
type uint16 {
range "0 .. 4095";
}
description
"This leaf defines the identifier
of a topology.";
}
uses neighbor-extended;
description
"List of neighbors.";
}
description
"This container describes list of ISIS multi-topology
neighbors.
ISIS reference is TLV 223.";
}
container mt-entries {
list topology {
leaf MT-ID {
type uint16 {
range "0 .. 4095";
}
description
"This leaf defines the identifier
of a topology.";
} }
container next-hops {
leaf attributes { description "All next hops for the route.";
type bits { list next-hop {
bit OVERLOAD { key "next-hop";
description "List of next hop for the route";
leaf outgoing-interface {
type if:interface-ref;
description description
"If set, the originator is overloaded, "Name of the outgoing interface.";
and must be avoided in path
calculation.";
} }
bit ATTACHED { leaf next-hop {
description type inet:ip-address;
"If set, the originator is attached to description "Nexthop address.";
another area using the referred metric.";
} }
} }
description
"This leaf describes attributes of the LSP
for the associated topology.";
} }
description leaf metric {
"List of topologies supported."; type uint32;
} description "Metric for this route.";
description
"This container describes the topology supported.
ISIS reference is TLV 229.";
}
leaf-list ipv6-addresses {
type inet:ipv6-address;
description
"This leaf describes the IPv6 interface
addresses of the node.
ISIS reference is TLV 232.";
}
container mt-extended-ipv4-reachability {
list prefixes {
leaf MT-ID {
type uint16 {
range "0 .. 4095";
}
description
"This leaf defines the identifier
of a topology.";
}
uses prefix-ipv4-extended;
description
"List of prefixes.";
}
description
"This container describes list of IPv4
reachability information in multi-topology
environment.
ISIS reference is TLV 235.";
}
container mt-ipv6-reachability {
list prefixes {
leaf MT-ID {
type uint16 {
range "0 .. 4095";
}
description
"This leaf defines the identifier
of a topology.";
} }
uses prefix-ipv6-extended; leaf level {
description type level-number;
"List of prefixes."; description "Level number for this route.";
}
description
"This container describes list of IPv6
reachability information in multi-topology
environment.
ISIS reference is TLV 237.";
}
container ipv6-reachability {
list prefixes {
uses prefix-ipv6-extended;
description
"List of prefixes.";
}
description
"This container describes list of IPv6
reachability information.
ISIS reference is TLV 236.";
}
list router-capabilities {
leaf flags {
type bits {
bit flooding {
position 0;
description
"If the S bit is set(1),
the IS-IS Router CAPABILITY TLV
MUST be flooded across the entire routing domain.
If the S bit is
not set(0), the TLV MUST NOT be leaked between levels.
This bit MUST NOT be altered during the TLV leaking.";
}
bit down {
position 1;
description
"When the IS-IS Router CAPABILITY TLV is
leaked from level-2 to level-1, the D bit
MUST be set. Otherwise, this bit MUST
be clear. IS-IS Router capability TLVs
with the D bit set MUST NOT
be leaked from level-1 to level-2.
This is to prevent TLV looping.
";
}
} }
description leaf route-tag {
"Flags associated with router capability."; type uint32;
} description "Route tag for this route.";
container node-tags {
if-feature node-tag;
list node-tag {
leaf tag {
type uint32;
description
"Node tag value.";
}
description
"List of tags.";
} }
description
"Container for node tags.";
}
leaf binary {
type binary;
description
"This leaf describes the capability of the node.
Format is binary according to the protocol encoding.";
} }
description
"This container describes the capabilities of the node.
This container may be extended with detailed
information.
ISIS reference is TLV 242.";
} }
} }
grouping isis-node-tag-cfg { grouping isis-node-tag-cfg {
description description
"ISIS node tag config."; "ISIS node tag config.";
container node-tags { container node-tags {
if-feature node-tag; if-feature node-tag;
list node-tag { list node-tag {
key tag; key tag;
skipping to change at page 58, line 49 skipping to change at page 44, line 4
} }
description description
"List of tags."; "List of tags.";
} }
description description
"Container for node tags."; "Container for node tags.";
} }
} }
grouping authentication-global-cfg { grouping authentication-global-cfg {
choice authentication-type { choice authentication-type {
case key-chain { case key-chain {
if-feature key-chain; if-feature key-chain;
leaf key-chain { leaf key-chain {
type key-chain:key-chain-ref; type key-chain:key-chain-ref;
description description
"Reference to a key-chain."; "Reference to a key-chain.";
} }
} }
case password { case password {
leaf key { leaf key {
type string; type string;
description description
"This leaf describes the "This leaf describes the
authentication key."; authentication key.";
} }
leaf crypto-algorithm { leaf crypto-algorithm {
type identityref { type identityref {
base key-chain:crypto-algorithm; base key-chain:crypto-algorithm;
}
description
"Cryptographic algorithm associated with key.";
}
} }
description description
"Choice of authentication."; "Cryptographic algorithm associated with key.";
} }
description }
"Grouping for global auth config."; description
"Choice of authentication.";
}
description
"Grouping for global auth config.";
} }
grouping metric-type-global-cfg { grouping metric-type-global-cfg {
leaf value { leaf value {
type enumeration { type enumeration {
enum wide-only { enum wide-only {
description
"Advertise new metric style only
(RFC5305)";
}
enum old-only {
description
"Advertise old metric style only
(RFC1195)";
}
enum both {
description "Advertise both metric
styles";
}
}
description description
"This leaf describes the type of metric "Advertise new metric style only
to be generated. (RFC5305)";
Wide-only means only new metric style
is generated,
old-only means that only old style metric
is generated,
and both means that both are advertised.
This leaf is only affecting IPv4 metrics.";
} }
description enum old-only {
"Grouping for global metric style config."; description
"Advertise old metric style only
(RFC1195)";
}
enum both {
description "Advertise both metric
styles";
}
}
description
"This leaf describes the type of metric
to be generated.
Wide-only means only new metric style
is generated,
old-only means that only old style metric
is generated,
and both means that both are advertised.
This leaf is only affecting IPv4 metrics.";
}
description
"Grouping for global metric style config.";
} }
grouping default-metric-global-cfg { grouping default-metric-global-cfg {
leaf value { leaf value {
type wide-metric; type wide-metric;
default "10"; default "10";
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;
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 uint16; type rt-types:timer-value-seconds16;
units "seconds"; units "seconds";
description description
"This leaf defines the timeout in seconds "This leaf defines the timeout in seconds
of the overload condition."; of the overload condition.";
} }
description description
"Grouping for overload-max-metric config."; "Grouping for overload-max-metric config.";
} }
grouping route-preference-global-cfg {
grouping route-preference-global-cfg {
choice granularity { choice granularity {
case detail { case detail {
leaf internal { leaf internal {
type uint8; type uint8;
description description
"This leaf defines the protocol "This leaf defines the protocol
preference for internal routes."; preference for internal routes.";
} }
leaf external { leaf external {
type uint8; type uint8;
skipping to change at page 61, line 30 skipping to change at page 46, line 33
description description
"This leaf defines the protocol "This leaf defines the protocol
preference for all ISIS routes."; preference for all ISIS routes.";
} }
} }
description description
"Choice for implementation of route preference."; "Choice for implementation of route preference.";
} }
description description
"This grouping defines how route preference is configured."; "This grouping defines how route preference is configured.";
} }
grouping hello-authentication-cfg { grouping hello-authentication-cfg {
choice authentication-type { choice authentication-type {
case key-chain { case key-chain {
if-feature key-chain; if-feature key-chain;
leaf key-chain { leaf key-chain {
type key-chain:key-chain-ref; type key-chain:key-chain-ref;
description description
"Reference to a key-chain."; "Reference to a key-chain.";
} }
} }
case password { case password {
skipping to change at page 62, line 15 skipping to change at page 47, line 17
} }
description description
"Cryptographic algorithm associated with key."; "Cryptographic algorithm associated with key.";
} }
} }
description description
"Choice of authentication."; "Choice of authentication.";
} }
description description
"Grouping for hello authentication."; "Grouping for hello authentication.";
} }
grouping hello-interval-cfg {
leaf value {
type uint16 {
range "1..65535";
}
units "seconds";
default 10;
description
"This leaf defines the interval of
hello messages.";
}
description grouping hello-interval-cfg {
"Interval between leaf value {
hello messages."; type rt-types:timer-value-seconds16;
units "seconds";
default 10;
description
"This leaf defines the interval of
hello messages.";
} }
grouping hello-multiplier-cfg { description
leaf value { "Interval between
type uint16; hello messages.";
description }
"This leaf defines the number of
hello failed to be received before grouping hello-multiplier-cfg {
declaring the adjacency down."; leaf value {
} type uint16;
description description
"This grouping 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
"This grouping defines the number of
hello failed to be received before
declaring the adjacency down.";
}
grouping priority-cfg { grouping priority-cfg {
leaf value { leaf value {
type uint8 { type uint8 {
range "0 .. 127"; range "0 .. 127";
}
default 64;
description
"This leaf describes the priority of
the interface
for DIS election.";
}
description }
"This grouping leaf describes the default 64;
priority of description
the interface "This leaf describes the priority of
for DIS election."; the interface
for DIS election.";
} }
grouping metric-cfg { description
"This grouping leaf describes the
priority of
the interface
for DIS election.";
}
grouping metric-cfg {
leaf value { leaf value {
type wide-metric; type wide-metric;
description description
"Metric value."; "Metric value.";
} }
description description
"Grouping for interface metric"; "Grouping for interface metric";
} }
grouping lfa-if-cfg {
leaf candidate-disabled {
type boolean;
default false;
description
"Prevent the interface to be used as backup.";
}
leaf enable {
type boolean;
description
"Activates LFA.
This model assumes activation
of per-prefix LFA.";
}
container remote-lfa { grouping lfa-if-cfg {
if-feature remote-lfa; leaf candidate-disabled {
leaf enable { type boolean;
type boolean; default false;
description description
"Activates rLFA."; "Prevent the interface to be used as backup.";
}
leaf enable {
type boolean;
description
"Activates LFA.
This model assumes activation
of per-prefix LFA.";
}
} container remote-lfa {
description if-feature remote-lfa;
"remote LFA configuration."; leaf enable {
} type boolean;
description description
"Grouping for LFA "Activates rLFA.";
interface configuration"; }
description
"remote LFA configuration.";
} }
description
"Grouping for LFA
interface configuration";
}
grouping isis-global-cfg { grouping isis-global-cfg {
description description
"Defines the ISIS global configuration."; "Defines the ISIS global configuration.";
uses admin-control; uses admin-control;
leaf level-type { leaf level-type {
type level; type level;
default "level-all"; default "level-all";
description description
skipping to change at page 66, line 22 skipping to change at page 51, line 17
type uint16 { type uint16 {
range "1..65535"; range "1..65535";
} }
units "seconds"; units "seconds";
description description
"This leaf describes the lifetime of the router "This leaf describes the lifetime of the router
LSP in seconds."; LSP in seconds.";
} }
leaf lsp-refresh { leaf lsp-refresh {
if-feature lsp-refresh; if-feature lsp-refresh;
type uint16 { type rt-types:timer-value-seconds16;
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 { leaf restart-interval {
type uint16; 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;
description description
"If enabled, the local router can act as restart helper."; "If enabled, the local router can act as restart helper.";
} }
skipping to change at page 68, line 24 skipping to change at page 53, line 4
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:address-family; base 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.";
} }
description description
"Container for address-families"; "Container for address-families";
} }
container preference { container preference {
uses route-preference-global-cfg; uses route-preference-global-cfg;
description description
"This container defines the protocol preference."; "This container defines the protocol preference.";
} }
container overload { container overload {
uses overload-global-cfg; uses overload-global-cfg;
description description
"This container describes if the router is "This container describes if the router is
set to overload state."; set to overload state.";
} }
container overload-max-metric { container overload-max-metric {
if-feature overload-max-metric; if-feature overload-max-metric;
uses overload-max-metric-global-cfg; uses overload-max-metric-global-cfg;
description description
"This container describes if the router is "This container describes if the router is
set to overload state using max-metric set to overload state using max-metric
advertisement."; advertisement.";
} }
} }
grouping isis-global-topologies-cfg { grouping isis-global-topologies-cfg {
description description
"Per topology config."; "Per topology config.";
container default-metric { container default-metric {
uses default-metric-global-cfg;
container level-1 {
uses default-metric-global-cfg; uses default-metric-global-cfg;
description "level-1 specific cfg";
container level-1 {
uses default-metric-global-cfg;
description "level-1 specific cfg";
}
container level-2 {
uses default-metric-global-cfg;
description "level-2 specific cfg";
}
description "Default metric per
topology cfg.";
} }
container level-2 {
uses isis-node-tag-cfg; uses default-metric-global-cfg;
description "level-2 specific cfg";
}
description "Default metric per
topology cfg.";
}
uses isis-node-tag-cfg;
} }
grouping isis-if-cfg { grouping isis-if-cfg {
description description
"Grouping for interface cfg."; "Grouping for interface cfg.";
leaf level-type { leaf level-type {
type level; type level;
default "level-all"; default "level-all";
description description
"This leaf defines the associated ISIS "This leaf defines the associated ISIS
level of the interface."; level of the interface.";
} }
leaf lsp-pacing-interval { leaf lsp-pacing-interval {
type uint16; type rt-types:timer-value-milliseconds;
units "milliseconds"; units "milliseconds";
default 33; default 33;
description description
"This leaf defines the interval between "This leaf defines the interval between
LSP transmissions in milli-seconds"; LSP transmissions in milli-seconds";
} }
leaf lsp-retransmit-interval { leaf lsp-retransmit-interval {
type uint16; type rt-types:timer-value-seconds16;
units "seconds"; units "seconds";
description description
"This leaf defines the interval between "This leaf defines the interval between
retransmission of LSP"; retransmission of LSP";
} }
leaf passive { leaf passive {
type boolean; type boolean;
default "false"; default "false";
description description
"This leaf defines if interface is in "This leaf defines if interface is in
passive mode (ISIS not running, passive mode (ISIS not running,
but network is advertised)."; but network is advertised).";
} }
leaf csnp-interval { leaf csnp-interval {
type uint16 { type rt-types:timer-value-seconds16;
range "1..65535";
}
units "seconds"; units "seconds";
default 10; default 10;
description description
"This leaf defines the interval of CSNP "This leaf defines the interval of CSNP
messages."; messages.";
} }
container hello-padding { container hello-padding {
leaf enable { leaf enable {
type boolean; type boolean;
default "true"; default "true";
skipping to change at page 73, line 28 skipping to change at page 57, line 23
uses hello-multiplier-cfg; uses hello-multiplier-cfg;
description "level-1 specific cfg"; description "level-1 specific cfg";
} }
container level-2 { container level-2 {
uses hello-multiplier-cfg; uses hello-multiplier-cfg;
description "level-2 specific cfg"; description "level-2 specific cfg";
} }
description "Hello multiplier description "Hello multiplier
configuration."; configuration.";
} }
container priority { container priority {
must '../interface-type = "broadcast"' { must '../interface-type = "broadcast"' {
error-message error-message
"Priority only applies to broadcast "Priority only applies to broadcast
interfaces."; interfaces.";
description description
"Check for broadcast interface."; "Check for broadcast interface.";
} }
uses priority-cfg; uses priority-cfg;
container level-1 { container level-1 {
uses priority-cfg; uses priority-cfg;
description "level-1 specific cfg"; description "level-1 specific cfg";
} }
container level-2 { container level-2 {
uses priority-cfg; uses priority-cfg;
description "level-2 specific cfg"; description "level-2 specific cfg";
} }
description "Priority for DIS election."; description "Priority for DIS election.";
} }
skipping to change at page 74, line 27 skipping to change at page 58, line 18
leaf enable { leaf enable {
type boolean; type boolean;
default false; default false;
description " description "
Enables BFD on the interface Enables BFD on the interface
"; ";
} }
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:address-family; base 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;
description description
"Enables IGP/LDP sync."; "Enables IGP/LDP sync.";
} }
description description
"LDP protocol related configurations."; "LDP protocol related configurations.";
skipping to change at page 75, line 40 skipping to change at page 59, line 21
description "level-1 specific cfg"; description "level-1 specific cfg";
} }
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 {
container system-counters {
list level {
key level;
leaf level {
type level-number;
description
"This leaf describes the ISIS level.";
}
leaf corrupted-lsps {
type uint32;
description
"Number of corrupted in-memory LSPs detected.
LSPs received from the wire with a bad
checksum are silently dropped and not counted.
LSPs received from the wire with parse errors
are counted by lsp-errors.";
}
leaf authentication-type-fails {
type uint32;
description
"Number of authentication type mismatches.";
}
leaf authentication-fails {
type uint32;
description
"Number of authentication key failures.";
}
leaf database-overload {
type uint32;
description
"Number of times the database has become
overloaded.";
}
leaf own-lsp-purge {
type uint32;
description
"Number of times a zero-aged copy of the
system's own LSP is received from some
other node.";
}
leaf manual-address-drop-from-area {
type uint32;
description
"Number of times a manual address
has been dropped from the area.";
}
leaf max-sequence {
type uint32;
description
"Number of times the system has attempted
to exceed the maximum sequence number.";
}
leaf sequence-number-skipped {
type uint32;
description
"Number of times a sequence number skip has
occured.";
}
leaf id-len-mismatch {
type uint32;
description
"Number of times a PDU is received with
a different value for ID field length
from that of the receiving system.";
}
leaf partition-changes {
type uint32;
description
"Number of partition changes detected.";
}
leaf lsp-errors {
type uint32;
description
"Number of LSPs with errors we have
received.";
}
leaf spf-runs {
type uint32;
description
"Number of times we ran SPF at this level.";
}
description
"List of supported levels.";
}
description
"The container defines a list of counters
for the IS.";
}
description
"Grouping for system counters.";
}
grouping event-counters {
container event-counters {
leaf adjacency-changes {
type uint32;
description
"The number of times an adjacency state
change has occured on this interface.";
}
leaf adjacency-number {
type uint32;
description
"The number of adjacencies on this
interface.";
}
leaf init-fails {
type uint32;
description
"The number of times initialization of
this interface has failed. This counts
events such as PPP NCP failures.
Failures to form an adjacency are counted
by adjacency-rejects.";
}
leaf adjacency-rejects {
type uint32;
description
"The number of times an adjacency has been
rejected on this interface.";
}
leaf id-len-mismatch {
type uint32;
description
"The number of times an IS-IS PDU with an ID
field length different from that for this
system has been received on this interface.";
}
leaf max-area-addresses-mismatch {
type uint32;
description
"The number of times an IS-IS PDU with
according max area address field
differs from that for
this system has been received on this
interface.";
}
leaf authentication-type-fails {
type uint32;
description
"Number of authentication type mismatches.";
}
leaf authentication-fails {
type uint32;
description
"Number of authentication key failures.";
}
leaf lan-dis-changes {
type uint32;
description
"The number of times the DIS has changed
on this interface at this level.
If the interface type is point to point,
the count is zero.";
}
description
"Provides protocol event counters.";
}
description
"Grouping for event counters";
}
grouping packet-counters {
container packet-counters {
list level {
key level;
leaf level {
type level-number;
description
"This leaf describes the ISIS level.";
}
container iih {
leaf in {
type uint32;
description
"Received PDUs.";
}
leaf out {
type uint32;
description
"Sent PDUs.";
}
description
"The number of IIH PDUs received/sent.";
}
container ish {
leaf in {
type uint32;
description
"Received PDUs.";
}
leaf out {
type uint32;
description
"Sent PDUs.";
}
description
"The number of ISH PDUs received/sent.";
}
container esh {
leaf in {
type uint32;
description
"Received PDUs.";
}
leaf out {
type uint32;
description
"Sent PDUs.";
}
description
"The number of ESH PDUs received/sent.";
}
container lsp {
leaf in {
type uint32;
description
"Received PDUs.";
}
leaf out {
type uint32;
description
"Sent PDUs.";
}
description
"The number of LSP PDUs received/sent.";
}
container psnp {
leaf in {
type uint32;
description
"Received PDUs.";
}
leaf out {
type uint32;
description
"Sent PDUs.";
}
description
"The number of PSNP PDUs received/sent.";
}
container csnp {
leaf in {
type uint32;
description
"Received PDUs.";
}
leaf out {
type uint32;
description
"Sent PDUs.";
}
description
"The number of CSNP PDUs received/sent.";
}
container unknown {
leaf in {
type uint32;
description
"Received PDUs.";
}
leaf out {
type uint32;
description
"Sent PDUs.";
}
description
"The number of unknown PDUs received/sent.";
}
description
"List of supported levels.";
}
description
"Provides packet counters per level.";
}
description
"Grouping for packet counters.";
}
grouping spf-log {
container spf-log {
list event {
key id;
leaf id {
type uint32;
description
"This leaf defines the event identifier.
This is a purely internal value.";
}
leaf spf-type {
type enumeration {
enum full {
description
"Computation done is a Full SPF.";
}
enum route-only {
description
"Computation done is a
reachability computation
only.";
}
}
description
"This leaf describes the type of computation
used.";
}
leaf level {
type level-number;
description
"This leaf describes the level affected by the
the computation.";
}
leaf schedule-timestamp {
type yang:timestamp;
description
"This leaf describes the timestamp
when the computation was scheduled.";
}
leaf start-timestamp {
type yang:timestamp;
description
"This leaf describes the timestamp
when the computation was started.";
}
leaf end-timestamp {
type yang:timestamp;
description
"This leaf describes the timestamp
when the computation was ended.";
}
list trigger-lsp {
key "lsp";
leaf lsp {
type lsp-id;
description
"This leaf describes the LSPID
of the LSP.";
}
leaf sequence {
type uint32;
description
"This leaf describes the sequence
number of the LSP.";
}
description
"This leaf describes list of LSPs
that triggered the computation.";
}
description
"List of computation events.
It is used as a wrapping buffer.";
}
description
"This container lists the SPF computation events.";
}
description
"Grouping for spf-log events.";
}
grouping lsp-log {
container lsp-log {
list event {
key id;
leaf id {
type uint32;
description
"This leaf defines the event identifier.
This is a purely internal value.";
}
leaf level {
type level-number;
description
"This leaf describes the level affected by the
the computation.";
}
container lsp {
leaf lsp {
type lsp-id;
description
"This leaf describes the LSPID
of the LSP.";
}
leaf sequence {
type uint32;
description
"This leaf describes the sequence
number of the LSP.";
}
description
"This container describes the received LSP
, in case of local LSP update the local
LSP ID is referenced.";
}
leaf received-timestamp {
type yang:timestamp;
description
"This leaf describes the timestamp
when the LSP was received. In case of
local LSP update, the timestamp refers
to the local LSP update time.";
}
leaf change {
type identityref {
base lsp-log-reason;
}
description
"This leaf describes the type of change
in the LSP.";
}
description
"List of LSP events.
It is used as a wrapping buffer.";
}
description
"This container lists the LSP reception events.
Local LSP modification are also contained in the
list.";
}
description
"Grouping for LSP log.";
}
grouping hostname-db {
container hostnames {
list hostname {
key system-id;
leaf system-id {
type system-id;
description
"This leaf describes the system-id
associated with the hostname.";
}
leaf hostname {
type string;
description
"This leaf describes the hostname
associated with the system ID.";
}
description
"List of system-id/hostname associations";
}
description
"This container describes the list
of binding between system-id and
hostnames.";
}
description
"Grouping for hostname to systemid mapping database.";
}
/* Groupings for the LSDB description */
grouping prefix-reachability-attributes {
description
"This group defines extended reachability attributes of an
IPv4 or IPv6 prefix.";
leaf external-prefix-flag {
type boolean;
description
"External prefix flag.";
}
leaf readvertisement-flag {
type boolean;
description
"Readvertisement flag.";
}
leaf node-flag {
type boolean;
description
"Node flag.";
}
}
grouping prefix-ipv4-source-router-id {
description
"This group defines the IPv4 source router ID of
a prefix advertisement.";
leaf ipv4-source-router-id {
type inet:ipv4-address;
description
"IPv4 Source router ID address.";
}
}
grouping prefix-ipv6-source-router-id {
description
"This group defines the IPv6 source router ID of
a prefix advertisement.";
leaf ipv6-source-router-id {
type inet:ipv6-address;
description
"IPv6 Source router ID address.";
}
}
grouping prefix-attributes-extension {
description
"Prefix extended attributes.";
uses prefix-reachability-attributes;
uses prefix-ipv4-source-router-id;
uses prefix-ipv6-source-router-id;
}
grouping prefix-ipv4-std {
description
"This group defines attributes of an
IPv4 standard prefix.";
leaf up-down {
type boolean;
description
"This leaf expresses the value of up/down bit.";
}
leaf i-e {
type boolean;
description
"This leaf expresses the value of I/E bit.";
}
leaf ip-prefix {
type inet:ipv4-address;
description
"This leaf describes the IPv4 prefix";
}
leaf prefix-len {
type uint8;
description
"This leaf describes the IPv4 prefix len in bits";
}
leaf default-metric {
type std-metric;
description
"This leaf describes the ISIS default metric value";
}
container delay-metric {
leaf metric {
type std-metric;
description
"This leaf describes the ISIS delay metric value";
}
leaf supported {
type boolean;
default "false";
description
"This leaf describes if the metric is supported.";
}
description
"This container defines the ISIS delay metric.";
}
container expense-metric {
leaf metric {
type std-metric;
description
"This leaf describes the ISIS expense metric value";
}
leaf supported {
type boolean;
default "false";
description
"This leaf describes if the metric is supported.";
}
description
"This container defines the ISIS expense metric.";
}
container error-metric {
leaf metric {
type std-metric;
description
"This leaf describes the ISIS error metric value";
}
leaf supported {
type boolean;
default "false";
description
"This leaf describes if the metric is supported.";
}
description
"This container defines the ISIS error metric.";
}
}
grouping prefix-ipv4-extended {
description
"This group defines attributes of an
IPv4 extended prefix.";
leaf up-down {
type boolean;
description
"This leaf expresses the value of up/down bit.";
}
leaf ip-prefix {
type inet:ipv4-address;
description
"This leaf describes the IPv4 prefix";
}
leaf prefix-len {
type uint8;
description
"This leaf describes the IPv4 prefix len in bits";
}
leaf metric {
type wide-metric;
description
"This leaf describes the ISIS metric value";
}
leaf-list tag {
type uint32;
description
"This leaf describes a list of tags associated with
the prefix.";
}
leaf-list tag64 {
type uint64;
description
"This leaf describes a list of 64-bit tags associated with
the prefix.";
}
uses prefix-attributes-extension;
}
grouping prefix-ipv6-extended {
description
"This group defines attributes of an
IPv6 prefix.";
leaf up-down {
type boolean;
description
"This leaf expresses the value of up/down bit.";
}
leaf ip-prefix {
type inet:ipv6-address;
description
"This leaf describes the IPv6 prefix";
}
leaf prefix-len {
type uint8;
description
"This leaf describes the IPv4 prefix len in bits";
}
leaf metric {
type wide-metric;
description
"This leaf describes the ISIS metric value";
}
leaf-list tag {
type uint32;
description
"This leaf describes a list of tags associated with
the prefix.";
}
leaf-list tag64 {
type uint64;
description
"This leaf describes a list of 64-bit tags associated with
the prefix.";
}
uses prefix-attributes-extension;
}
grouping neighbor-extended {
description
"This group defines attributes of an
ISIS extended neighbor.";
leaf neighbor-id {
type system-id;
description
"This leaf describes the system-id of the neighbor.";
}
leaf metric {
type wide-metric;
description
"This leaf describes the ISIS metric value";
}
}
grouping neighbor {
description
"This group defines attributes of an
ISIS standard neighbor.";
leaf neighbor-id {
type system-id;
description
"This leaf describes the system-id of the neighbor.";
}
leaf i-e {
type boolean;
description
"This leaf expresses the value of I/E bit.";
}
leaf default-metric {
type std-metric;
description
"This leaf describes the ISIS default metric value";
}
container delay-metric {
leaf metric {
type std-metric;
description
"This leaf describes the ISIS delay metric value";
}
leaf supported {
type boolean;
default "false";
description
"This leaf describes if the metric is supported.";
}
description
"This container defines the ISIS delay metric.";
}
container expense-metric {
leaf metric {
type std-metric;
description
"This leaf describes the ISIS delay expense value";
}
leaf supported {
type boolean;
default "false";
description
"This leaf describes if the metric is supported.";
}
description
"This container defines the ISIS expense metric.";
}
container error-metric {
leaf metric {
type std-metric;
description
"This leaf describes the ISIS error metric value";
}
leaf supported {
type boolean;
default "false";
description
"This leaf describes if the metric is supported.";
}
description
"This container defines the ISIS error metric.";
}
}
grouping lsp-entry {
description
"This group defines attributes of an
ISIS LSP database entry.";
leaf decoded-completed {
type boolean;
description
"The IS-IS 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 {
type lsp-id;
description
"This leaf describes the LSP ID of the LSP.";
}
leaf checksum {
type uint16;
description
"This leaf describes the checksum of the LSP.";
}
leaf remaining-lifetime {
type uint16;
units "seconds";
description
"This leaf describes the remaining lifetime
in seconds before the LSP expiration.";
}
leaf sequence {
type uint32;
description
"This leaf describes the sequence number of the LSP.";
}
leaf attributes {
type bits {
bit PARTITIONNED {
description
"If set, the originator supports partition
repair.";
}
bit ATTACHED-ERROR {
description
"If set, the originator is attached to
another area using the referred metric.";
}
bit ATTACHED-EXPENSE {
description
"If set, the originator is attached to
another area using the referred metric.";
}
bit ATTACHED-DELAY {
description
"If set, the originator is attached to
another area using the referred metric.";
}
bit ATTACHED-DEFAULT {
description
"If set, the originator is attached to
another area using the referred metric.";
}
bit OVERLOAD {
description
"If set, the originator is overloaded,
and must be avoided in path calculation.";
}
}
description
"This leaf describes attributes of the LSP.";
}
leaf-list ipv4-addresses {
type inet:ipv4-address;
description
"This leaf describes the IPv4 addresses of the node.
ISIS reference is TLV 132.";
}
leaf-list ipv6-addresses {
type inet:ipv6-address;
description
"This leaf describes the IPv6 interface
addresses of the node.
ISIS reference is TLV 232.";
}
leaf ipv4-te-routerid {
type inet:ipv4-address;
description
"This leaf describes the IPv4 Traffic Engineering
router ID of the node.
ISIS reference is TLV 134.";
}
leaf ipv6-te-routerid {
type inet:ipv6-address;
description
"This leaf describes the IPv6 Traffic Engineering
router ID of the node.
ISIS reference is TLV 140.";
}
leaf-list protocol-supported {
type uint8;
description
"This leaf describes the list of
supported protocols.
ISIS reference is TLV 129.";
}
leaf dynamic-hostname {
type string;
description
"This leaf describes the name of the node.
ISIS reference is TLV 137.";
}
container authentication {
leaf authentication-type {
type string;
description
"This leaf describes the authentication type
to be used.";
}
leaf authentication-key {
type string;
description
"This leaf describes the authentication key
to be used. For security reason, the
authentication key MUST NOT be presented
in plaintext format. Authors recommends
to use MD5 hash to present the authentication-key.";
}
description "This container describes authentication
information of the node. ISIS reference is TLV 10.";
}
container mt-entries {
list topology {
leaf MT-ID {
type uint16 {
range "0 .. 4095";
}
description
"This leaf defines the identifier
of a topology.";
}
leaf attributes {
type bits {
bit OVERLOAD {
description
"If set, the originator is overloaded,
and must be avoided in path
calculation.";
}
bit ATTACHED {
description
"If set, the originator is attached to
another area using the referred metric.";
}
}
description
"This leaf describes attributes of the LSP
for the associated topology.";
}
description
"List of topologies supported.";
}
description
"This container describes the topology supported.
ISIS reference is TLV 229.";
}
list router-capabilities {
leaf flags {
type bits {
bit flooding {
position 0;
description
"If the S bit is set(1),
the IS-IS Router CAPABILITY TLV
MUST be flooded across the entire routing domain.
If the S bit is
not set(0), the TLV MUST NOT be leaked between levels.
This bit MUST NOT be altered during the TLV leaking.";
}
bit down {
position 1;
description
"When the IS-IS Router CAPABILITY TLV is
leaked from level-2 to level-1, the D bit
MUST be set. Otherwise, this bit MUST
be clear. IS-IS Router capability TLVs
with the D bit set MUST NOT
be leaked from level-1 to level-2.
This is to prevent TLV looping.
";
}
}
description
"Flags associated with router capability.";
}
container node-tags {
if-feature node-tag;
list node-tag {
leaf tag {
type uint32;
description
"Node tag value.";
}
description
"List of tags.";
}
description
"Container for node tags.";
}
leaf binary {
type binary;
description
"This leaf describes the capability of the node.
Format is binary according to the protocol encoding.";
}
description
"This container describes the capabilities of the node.
This container may be extended with detailed
information.
ISIS reference is TLV 242.";
}
container is-neighbor {
list neighbor {
uses neighbor;
description
"List of neighbors.";
}
description
"This leaf describes list of ISIS neighbors.
ISIS reference is TLV 2.";
}
container extended-is-neighbor {
list neighbor {
uses neighbor-extended;
description
"List of neighbors.";
}
description
"This container describes list of ISIS extended
neighbors.
ISIS reference is TLV 22.";
}
container ipv4-internal-reachability {
list prefixes {
uses prefix-ipv4-std;
description
"List of prefixes.";
}
description
"This container describes list of IPv4 internal
reachability information.
ISIS reference is TLV 128.";
}
container ipv4-external-reachability {
list prefixes {
uses prefix-ipv4-std;
description
"List of prefixes.";
}
description
"This container describes list of IPv4 external
reachability information.
ISIS reference is TLV 130.";
}
container extended-ipv4-reachability {
list prefixes {
uses prefix-ipv4-extended;
description
"List of prefixes.";
}
description
"This container describes list of IPv4 extended
reachability information.
ISIS reference is TLV 135.";
}
container mt-is-neighbor {
list neighbor {
leaf MT-ID {
type uint16 {
range "0 .. 4095";
}
description
"This leaf defines the identifier
of a topology.";
}
uses neighbor-extended;
description
"List of neighbors.";
}
description
"This container describes list of ISIS multi-topology
neighbors.
ISIS reference is TLV 223.";
}
container mt-extended-ipv4-reachability {
list prefixes {
leaf MT-ID {
type uint16 {
range "0 .. 4095";
}
description
"This leaf defines the identifier
of a topology.";
}
uses prefix-ipv4-extended;
description
"List of prefixes.";
}
description
"This container describes list of IPv4
reachability information in multi-topology
environment.
ISIS reference is TLV 235.";
}
container mt-ipv6-reachability {
list prefixes {
leaf MT-ID {
type uint16 {
range "0 .. 4095";
}
description
"This leaf defines the identifier
of a topology.";
}
uses prefix-ipv6-extended;
description
"List of prefixes.";
}
description
"This container describes list of IPv6
reachability information in multi-topology
environment.
ISIS reference is TLV 237.";
}
container ipv6-reachability {
list prefixes {
uses prefix-ipv6-extended;
description
"List of prefixes.";
}
description
"This container describes list of IPv6
reachability information.
ISIS reference is TLV 236.";
}
}
grouping lsdb {
container database {
list level-db {
key level;
leaf level {
type level-number;
description
"Current level number";
}
list lsp {
key lsp-id;
uses lsp-entry;
description
"List of LSPs in LSDB.";
}
description
"This container describes the list of LSPs
in the level x database.";
}
description
"This container describes ISIS Link State
databases.";
}
description
"Grouping for LSDB description.";
}
/* Augmentations */
augment "/rt:routing-state/" augment "/rt:routing-state/"
+"rt:ribs/rt:rib/rt:routes/rt:route" { +"rt:ribs/rt:rib/rt:routes/rt:route" {
when "rt:source-protocol = 'isis:isis'" { when "rt:source-protocol = 'isis:isis'" {
description "ISIS-specific route attributes."; description "ISIS-specific route attributes.";
} }
uses route-content; uses route-content;
description description
"This augments route object in RIB with ISIS-specific "This augments route object in RIB with ISIS-specific
attributes."; attributes.";
} }
augment "/if:interfaces/if:interface" augment "/if:interfaces/if:interface" {
{
leaf clns-mtu { leaf clns-mtu {
type uint16; type uint16;
description description
"Defines CLNS MTU of the interface."; "Defines CLNS MTU of the interface.";
} }
description "ISO interface config."; description "ISO interface config.";
} }
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+"rt:control-plane-protocol" { +"rt:control-plane-protocol" {
when "rt:type = 'isis:isis'" { when "rt:type = 'isis:isis'" {
description description
"This augment is only valid when routing protocol "This augment is only valid when routing protocol
instance type is isis."; instance type is isis.";
} }
description description
"This augments a routing protocol instance with ISIS "This augments a routing protocol instance with ISIS
skipping to change at page 76, line 42 skipping to change at page 84, line 27
} }
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;
description description
"IPFRR."; "IPFRR.";
} }
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 topologies { container topologies {
if-feature multi-topology; if-feature multi-topology;
list topology { list topology {
key "name"; key "name";
leaf enable { leaf enable {
type boolean; type boolean;
description description
"Control enabling of topologies"; "Control enabling of topologies";
} }
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;
skipping to change at page 77, line 23 skipping to change at page 85, line 16
} }
uses isis-global-topologies-cfg; uses isis-global-topologies-cfg;
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 {
key "name"; key "name";
leaf name { leaf name {
type if:interface-ref; type if:interface-ref;
description description
"Reference to the interface within "Reference to the interface within
the routing-instance."; the routing-instance.";
} }
uses isis-if-cfg; uses isis-if-cfg;
container fast-reroute { container fast-reroute {
if-feature fast-reroute; if-feature fast-reroute;
uses fast-reroute-if-cfg; uses fast-reroute-if-cfg;
description description
"IPFRR."; "IPFRR.";
} }
container topologies { container topologies {
if-feature multi-topology; if-feature multi-topology;
list topology { list topology {
skipping to change at page 78, line 4 skipping to change at page 85, line 43
container topologies { container topologies {
if-feature multi-topology; if-feature multi-topology;
list topology { list topology {
key name; key name;
leaf name { leaf name {
type leafref { type leafref {
path "../../../../../../../../"+ path "../../../../../../../../"+
"rt:ribs/rt:rib/rt:name"; "rt:ribs/rt:rib/rt:name";
} }
description description
"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";
}
}
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.";
} }
description description
"This container defines ISIS specific configuration "This container defines ISIS specific configuration
objects."; objects.";
} }
} }
augment "/rt:routing-state/" augment "/rt:routing-state/"
+"rt:control-plane-protocols/rt:control-plane-protocol" { +"rt:control-plane-protocols/rt:control-plane-protocol" {
when "rt:type = 'isis:isis'" { when "rt:type = 'isis:isis'" {
description description
"This augment is only valid when routing protocol "This augment is only valid when routing protocol
instance type is isis."; instance type is isis.";
} }
skipping to change at page 78, line 50 skipping to change at page 86, line 41
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 { container spf-control {
if-feature ietf-spf-delay; container ietf-spf-delay {
uses ietf-spf-delay-cfg; if-feature ietf-spf-delay;
uses ietf-spf-delay-state; uses ietf-spf-delay-cfg;
uses ietf-spf-delay-state;
description
"IETF spf delay algorithm configuration.";
}
description description
"IETF SPF delay operational states."; "Container for all SPF computation related
operations.";
} }
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.";
} }
uses local-rib; uses local-rib;
description description
"List of topologies."; "List of topologies.";
} }
uses local-rib;
container system-counters { uses system-counters;
list level {
key level;
leaf level {
type level-number;
description
"This leaf describes the ISIS level.";
}
leaf corrupted-lsps {
type uint32;
description
"Number of corrupted in-memory LSPs detected.
LSPs received from the wire with a bad
checksum are silently dropped and not counted.
LSPs received from the wire with parse errors
are counted by lsp-errors.";
}
leaf authentication-type-fails {
type uint32;
description
"Number of authentication type mismatches.";
}
leaf authentication-fails {
type uint32;
description
"Number of authentication key failures.";
}
leaf database-overload {
type uint32;
description
"Number of times the database has become
overloaded.";
}
leaf own-lsp-purge {
type uint32;
description
"Number of times a zero-aged copy of the
system's own LSP is received from some
other node.";
}
leaf manual-address-drop-from-area {
type uint32;
description
"Number of times a manual address
has been dropped from the area.";
}
leaf max-sequence {
type uint32;
description
"Number of times the system has attempted
to exceed the maximum sequence number.";
}
leaf sequence-number-skipped {
type uint32;
description
"Number of times a sequence number skip has
occured.";
}
leaf id-len-mismatch {
type uint32;
description
"Number of times a PDU is received with
a different value for ID field length
from that of the receiving system.";
}
leaf partition-changes {
type uint32;
description
"Number of partition changes detected.";
}
leaf lsp-errors {
type uint32;
description
"Number of LSPs with errors we have
received.";
}
leaf spf-runs {
type uint32;
description
"Number of times we ran SPF at this level.";
}
description
"List of supported levels.";
}
description
"The container defines a list of counters
for the IS.";
}
container interfaces { container interfaces {
list interface { list interface {
key interface; key interface;
leaf interface { leaf interface {
type string; type string;
description description
"This leaf describes the name "This leaf describes the name
of the interface."; of the interface.";
} }
uses isis-if-cfg; uses isis-if-cfg;
container fast-reroute { container fast-reroute {
if-feature fast-reroute; if-feature fast-reroute;
uses fast-reroute-if-cfg; uses fast-reroute-if-cfg;
description description
"IPFRR."; "IPFRR.";
} }
uses adjacency-state;
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.";
} }
uses isis-if-topologies-cfg; uses isis-if-topologies-cfg;
container fast-reroute {
if-feature fast-reroute;
uses fast-reroute-if-cfg;
description
"IPFRR.";
}
uses adjacency-state; uses adjacency-state;
description description
"List of topologies."; "List of topologies.";
} }
container event-counters { uses adjacency-state;
leaf adjacency-changes { uses event-counters;
type uint32; uses packet-counters;
description
"The number of times an adjacency state
change has occured on this interface.";
}
leaf adjacency-number {
type uint32;
description
"The number of adjacencies on this
interface.";
}
leaf init-fails {
type uint32;
description
"The number of times initialization of
this interface has failed. This counts
events such as PPP NCP failures.
Failures to form an adjacency are counted
by adjacency-rejects.";
}
leaf adjacency-rejects {
type uint32;
description
"The number of times an adjacency has been
rejected on this interface.";
}
leaf id-len-mismatch {
type uint32;
description
"The number of times an IS-IS PDU with an ID
field length different from that for this
system has been received on this interface.";
}
leaf max-area-addresses-mismatch {
type uint32;
description
"The number of times an IS-IS PDU with
according max area address field
differs from that for
this system has been received on this
interface.";
}
leaf authentication-type-fails {
type uint32;
description
"Number of authentication type mismatches.";
}
leaf authentication-fails {
type uint32;
description
"Number of authentication key failures.";
}
leaf lan-dis-changes {
type uint32;
description
"The number of times the DIS has changed
on this interface at this level.
If the interface type is point to point,
the count is zero.";
}
description
"Provides protocol event counters.";
}
container packet-counters {
list level {
key level;
leaf level {
type level-number;
description
"This leaf describes the ISIS level.";
}
container iih {
leaf in {
type uint32;
description
"Received PDUs.";
}
leaf out {
type uint32;
description
"Sent PDUs.";
}
description
"The number of IIH PDUs received/sent.";
}
container ish {
leaf in {
type uint32;
description
"Received PDUs.";
}
leaf out {
type uint32;
description
"Sent PDUs.";
}
description
"The number of ISH PDUs received/sent.";
}
container esh {
leaf in {
type uint32;
description
"Received PDUs.";
}
leaf out {
type uint32;
description
"Sent PDUs.";
}
description
"The number of ESH PDUs received/sent.";
}
container lsp {
leaf in {
type uint32;
description
"Received PDUs.";
}
leaf out {
type uint32;
description
"Sent PDUs.";
}
description
"The number of LSP PDUs received/sent.";
}
container psnp {
leaf in {
type uint32;
description
"Received PDUs.";
}
leaf out {
type uint32;
description
"Sent PDUs.";
}
description
"The number of PSNP PDUs received/sent.";
}
container csnp {
leaf in {
type uint32;
description
"Received PDUs.";
}
leaf out {
type uint32;
description
"Sent PDUs.";
}
description
"The number of CSNP PDUs received/sent.";
}
container unknown {
leaf in {
type uint32;
description
"Received PDUs.";
}
leaf out {
type uint32;
description
"Sent PDUs.";
}
description
"The number of unknown PDUs received/sent.";
}
description
"List of supported levels.";
}
description
"Provides packet counters per level.";
}
description description
"List of interfaces."; "List of interfaces.";
} }
description description
"The container defines operational parameters "The container defines operational parameters
of interfaces."; of interfaces.";
} }
container spf-log { uses spf-log;
list event { uses lsp-log;
key id; uses hostname-db;
uses lsdb;
leaf id {
type uint32;
description
"This leaf defines the event identifier.
This is a purely internal value.";
}
leaf spf-type {
type enumeration {
enum full {
description
"Computation done is a Full SPF.";
}
enum route-only {
description
"Computation done is a
reachability computation
only.";
}
}
description
"This leaf describes the type of computation
used.";
}
leaf level {
type level-number;
description
"This leaf describes the level affected by the
the computation.";
}
leaf schedule-timestamp {
type yang:timestamp;
description
"This leaf describes the timestamp
when the computation was scheduled.";
}
leaf start-timestamp {
type yang:timestamp;
description
"This leaf describes the timestamp
when the computation was started.";
}
leaf end-timestamp {
type yang:timestamp;
description
"This leaf describes the timestamp
when the computation was ended.";
}
list trigger-lsp {
key "lsp";
leaf lsp {
type lsp-id;
description
"This leaf describes the LSPID
of the LSP.";
}
leaf sequence {
type uint32;
description
"This leaf describes the sequence
number of the LSP.";
}
description
"This leaf describes list of LSPs
that triggered the computation.";
}
description
"List of computation events.";
}
description
"This container lists the SPF computation events.";
}
container lsp-log {
list event {
key id;
leaf id {
type uint32;
description
"This leaf defines the event identifier.
This is a purely internal value.";
}
leaf level {
type level-number;
description
"This leaf describes the level affected by the
the computation.";
}
container lsp {
leaf lsp {
type lsp-id;
description
"This leaf describes the LSPID
of the LSP.";
}
leaf sequence {
type uint32;
description
"This leaf describes the sequence
number of the LSP.";
}
description
"This container describes the received LSP
, in case of local LSP update the local
LSP ID is referenced.";
}
leaf received-timestamp {
type yang:timestamp;
description
"This leaf describes the timestamp
when the LSP was received. In case of
local LSP update, the timestamp refers
to the local LSP update time.";
}
leaf change {
type identityref {
base lsp-log-reason;
}
description
"This leaf describes the type of change
in the LSP.";
}
description
"List of LSP events.";
}
description
"This container lists the LSP reception events.
Local LSP modification are also contained in the
list.";
}
container database {
list level-db {
key level;
leaf level {
type level-number;
description
"Current level number";
}
list lsp {
key lsp-id;
uses database;
description
"List of LSPs in LSDB.";
}
description
"This container describes the list of LSPs
in the level x database.";
}
description
"This container describes ISIS Link State
databases.";
}
container hostnames {
list hostname {
key system-id;
leaf system-id {
type system-id;
description
"This leaf describes the system-id
associated with the hostname.";
}
leaf hostname {
type string;
description
"This leaf describes the hostname
associated with the system ID.";
}
description
"List of system-id/hostname associations";
}
description
"This container describes the list
of binding between system-id and
hostnames.";
}
description description
"This container defines various ISIS states objects."; "This container defines various ISIS states objects.";
} }
} }
/* RPC methods */ /* RPC methods */
rpc clear-adjacency { rpc clear-adjacency {
description description
skipping to change at page 102, line 34 skipping to change at page 100, line 42
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 -15 to version -16 11.1. From version -16 to version -17
o Cosmetic fixes.
o Use of rt-types model.
11.2. 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.2. From version -14 to version -15 11.3. 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 103, line 21 skipping to change at page 101, line 34
* 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.3. From version -13 to version -14 11.4. 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.4. From version -12 to version -13 11.5. 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.5. From version -09 to version -12 11.6. From version -09 to version -12
o Rename node-tag container to node-tags. o Rename node-tag container to node-tags.
11.6. From version -08 to version -09 11.7. 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.7. From version -07 to version -08 11.8. 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.8. From version -05 to version -07 11.9. 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.9. From version -03 to version -05 11.10. 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.10. From version -02 to version -03 11.11. 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.11. From version -01 to version -02 11.12. 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 105, line 31 skipping to change at page 103, line 43
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.12. From version -00 to version -01 11.13. 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.
 End of changes. 195 change blocks. 
1780 lines changed or deleted 1751 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/