| < 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: <mailto:isis-wg@ietf.org> | "WG List: <mailto:isis-wg@ietf.org> | |||
| Editor: Stephane Litkowski | Editor: Stephane Litkowski | |||
| <mailto:stephane.litkowski@orange.com> | <mailto:stephane.litkowski@orange.com> | |||
| Derek Yeung | Derek Yeung | |||
| skipping to change at page 24, line 34 ¶ | skipping to change at page 24, line 38 ¶ | |||
| <mailto:yiqu@cisco.com> | <mailto:yiqu@cisco.com> | |||
| Jeff Tantsura | Jeff Tantsura | |||
| <mailto:jefftant.ietf@gmail.com> | <mailto:jefftant.ietf@gmail.com> | |||
| "; | "; | |||
| 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 18 ¶ | skipping to change at page 25, line 22 ¶ | |||
| identity clear-isis-adjacency { | identity clear-isis-adjacency { | |||
| description "Identity for the ISIS routing protocol | description "Identity for the ISIS routing protocol | |||
| adjacency reset action."; | adjacency reset action."; | |||
| } | } | |||
| identity lsp-log-reason { | identity lsp-log-reason { | |||
| description "Base identity for an LSP change | description "Base identity for an LSP change | |||
| log reason."; | log reason."; | |||
| } | } | |||
| identity refresh { | identity refresh { | |||
| base lsp-log-reason; | base lsp-log-reason; | |||
| description | description | |||
| "Identity used when the LSP log reason is | "Identity used when the LSP log reason is | |||
| a refresh LSP received."; | a refresh LSP received."; | |||
| } | } | |||
| identity content-change { | identity content-change { | |||
| base lsp-log-reason; | base lsp-log-reason; | |||
| description | description | |||
| "Identity used when the LSP log reason is | "Identity used when the LSP log reason is | |||
| a change in the content of the LSP."; | a change in the content of the LSP."; | |||
| } | } | |||
| /* Feature definitions */ | /* Feature definitions */ | |||
| 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 4 ¶ | skipping to change at page 29, line 30 ¶ | |||
| type enumeration { | type enumeration { | |||
| enum "Up" { | enum "Up" { | |||
| description | description | |||
| "This state describes that | "This state describes that | |||
| adjacency is established."; | adjacency is established."; | |||
| } | } | |||
| enum "Down" { | enum "Down" { | |||
| description | description | |||
| "This state describes that | "This state describes that | |||
| adjacency is NOT established."; | adjacency is NOT established."; | |||
| } | } | |||
| enum "Init" { | enum "Init" { | |||
| description | description | |||
| "This state describes that | "This state describes that | |||
| adjacency is establishing."; | adjacency is establishing."; | |||
| } | } | |||
| enum "Failed" { | enum "Failed" { | |||
| description | description | |||
| "This state describes that | "This state describes that | |||
| adjacency is failed."; | adjacency is failed."; | |||
| } | } | |||
| } | } | |||
| 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 4 ¶ | skipping to change at page 47, line 7 ¶ | |||
| 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 | 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 65, line 49 ¶ | skipping to change at page 50, line 46 ¶ | |||
| } | } | |||
| leaf enable { | leaf enable { | |||
| type boolean; | type boolean; | |||
| default false; | default false; | |||
| description | description | |||
| "Enable/disable auto-cost."; | "Enable/disable auto-cost."; | |||
| } | } | |||
| description | description | |||
| "This container defines the auto-cost configuration."; | "This container defines the auto-cost configuration."; | |||
| } | } | |||
| leaf lsp-mtu { | leaf lsp-mtu { | |||
| type uint16; | type uint16; | |||
| units "bytes"; | units "bytes"; | |||
| default 1492; | default 1492; | |||
| description | description | |||
| "This leaf describes the maximum size of a | "This leaf describes the maximum size of a | |||
| LSP PDU in bytes."; | LSP PDU in bytes."; | |||
| } | } | |||
| leaf lsp-lifetime { | leaf lsp-lifetime { | |||
| type uint16 { | type uint16 { | |||
| 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 14 ¶ | skipping to change at page 58, line 46 ¶ | |||
| 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."; | |||
| } | } | |||
| description | description | |||
| "Container for MPLS specific configuration | "Container for MPLS specific configuration | |||
| for ISIS."; | for ISIS."; | |||
| } | } | |||
| } | } | |||
| grouping isis-if-topologies-cfg { | grouping isis-if-topologies-cfg { | |||
| description | description | |||
| "ISIS interface topology cfg."; | "ISIS interface topology cfg."; | |||
| container metric { | container metric { | |||
| uses metric-cfg; | uses metric-cfg; | |||
| container level-1 { | container level-1 { | |||
| uses metric-cfg; | uses metric-cfg; | |||
| 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 26 ¶ | skipping to change at page 84, line 12 ¶ | |||
| +"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 | |||
| specific parameters."; | specific parameters."; | |||
| container isis { | container isis { | |||
| must "count(area-address) > 0" { | must "count(area-address) > 0" { | |||
| error-message "At least one area-address | error-message "At least one area-address | |||
| must be configured."; | must be configured."; | |||
| description | description | |||
| "Enforce configuration of at least one area."; | "Enforce configuration of at least one area."; | |||
| } | } | |||
| uses isis-global-cfg; | uses isis-global-cfg; | |||
| container fast-reroute { | container fast-reroute { | |||
| if-feature fast-reroute; | if-feature fast-reroute; | |||
| uses fast-reroute-global-cfg; | uses fast-reroute-global-cfg; | |||
| 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. 205 change blocks. | ||||
| 1788 lines changed or deleted | 1753 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||