| < draft-ietf-isis-yang-isis-cfg-20.txt | draft-ietf-isis-yang-isis-cfg-21.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: November 26, 2018 Arrcus, Inc | Expires: January 3, 2019 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 | |||
| May 25, 2018 | July 2, 2018 | |||
| YANG Data Model for IS-IS protocol | YANG Data Model for IS-IS protocol | |||
| draft-ietf-isis-yang-isis-cfg-20 | draft-ietf-isis-yang-isis-cfg-21 | |||
| 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 November 26, 2018. | This Internet-Draft will expire on January 3, 2019. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2018 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 31 ¶ | skipping to change at page 2, line 31 ¶ | |||
| 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 . . . . . . . . . . . . . . . . . . . 9 | 2.1. IS-IS Configuration . . . . . . . . . . . . . . . . . . . 9 | |||
| 2.2. Multitopology Parameters . . . . . . . . . . . . . . . . 10 | 2.2. Multitopology Parameters . . . . . . . . . . . . . . . . 10 | |||
| 2.3. Per-Level Parameters . . . . . . . . . . . . . . . . . . 10 | 2.3. Per-Level Parameters . . . . . . . . . . . . . . . . . . 10 | |||
| 2.4. Per-Interface Parameters . . . . . . . . . . . . . . . . 12 | 2.4. Per-Interface Parameters . . . . . . . . . . . . . . . . 12 | |||
| 2.5. Authentication Parameters . . . . . . . . . . . . . . . . 23 | 2.5. Authentication Parameters . . . . . . . . . . . . . . . . 23 | |||
| 2.6. IGP/LDP synchronization . . . . . . . . . . . . . . . . . 23 | 2.6. IGP/LDP synchronization . . . . . . . . . . . . . . . . . 23 | |||
| 2.7. ISO parameters . . . . . . . . . . . . . . . . . . . . . 23 | 2.7. ISO parameters . . . . . . . . . . . . . . . . . . . . . 24 | |||
| 2.8. IP FRR . . . . . . . . . . . . . . . . . . . . . . . . . 23 | 2.8. IP FRR . . . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
| 2.9. Operational States . . . . . . . . . . . . . . . . . . . 24 | 2.9. Operational States . . . . . . . . . . . . . . . . . . . 24 | |||
| 3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 24 | 3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
| 4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 25 | 4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
| 5. Interaction with Other YANG Modules . . . . . . . . . . . . . 26 | 5. Interaction with Other YANG Modules . . . . . . . . . . . . . 26 | |||
| 6. IS-IS YANG Module . . . . . . . . . . . . . . . . . . . . . . 26 | 6. IS-IS YANG Module . . . . . . . . . . . . . . . . . . . . . . 27 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 101 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 94 | |||
| 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 102 | 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 95 | |||
| 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 102 | 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 95 | |||
| 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 103 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 95 | |||
| 11. Change log for ietf-isis YANG module . . . . . . . . . . . . 103 | 11. Change log for ietf-isis YANG module . . . . . . . . . . . . 96 | |||
| 11.1. From version -19 to version -20 . . . . . . . . . . . . 103 | 11.1. From version -19 to version -20 . . . . . . . . . . . . 96 | |||
| 11.2. From version -18 to version -19 . . . . . . . . . . . . 103 | 11.2. From version -18 to version -19 . . . . . . . . . . . . 96 | |||
| 11.3. From version -17 to version -18 . . . . . . . . . . . . 103 | 11.3. From version -17 to version -18 . . . . . . . . . . . . 96 | |||
| 11.4. From version -16 to version -17 . . . . . . . . . . . . 104 | 11.4. From version -16 to version -17 . . . . . . . . . . . . 96 | |||
| 11.5. From version -15 to version -16 . . . . . . . . . . . . 104 | 11.5. From version -15 to version -16 . . . . . . . . . . . . 96 | |||
| 11.6. From version -14 to version -15 . . . . . . . . . . . . 104 | 11.6. From version -14 to version -15 . . . . . . . . . . . . 97 | |||
| 11.7. From version -13 to version -14 . . . . . . . . . . . . 104 | 11.7. From version -13 to version -14 . . . . . . . . . . . . 97 | |||
| 11.8. From version -12 to version -13 . . . . . . . . . . . . 105 | 11.8. From version -12 to version -13 . . . . . . . . . . . . 97 | |||
| 11.9. From version -09 to version -12 . . . . . . . . . . . . 105 | 11.9. From version -09 to version -12 . . . . . . . . . . . . 97 | |||
| 11.10. From version -08 to version -09 . . . . . . . . . . . . 105 | 11.10. From version -08 to version -09 . . . . . . . . . . . . 98 | |||
| 11.11. From version -07 to version -08 . . . . . . . . . . . . 105 | 11.11. From version -07 to version -08 . . . . . . . . . . . . 98 | |||
| 11.12. From version -05 to version -07 . . . . . . . . . . . . 105 | 11.12. From version -05 to version -07 . . . . . . . . . . . . 98 | |||
| 11.13. From version -03 to version -05 . . . . . . . . . . . . 106 | 11.13. From version -03 to version -05 . . . . . . . . . . . . 98 | |||
| 11.14. From version -02 to version -03 . . . . . . . . . . . . 106 | 11.14. From version -02 to version -03 . . . . . . . . . . . . 99 | |||
| 11.15. From version -01 to version -02 . . . . . . . . . . . . 106 | 11.15. From version -01 to version -02 . . . . . . . . . . . . 99 | |||
| 11.16. From version -00 to version -01 . . . . . . . . . . . . 107 | 11.16. From version -00 to version -01 . . . . . . . . . . . . 99 | |||
| 12. Normative References . . . . . . . . . . . . . . . . . . . . 107 | 12. Normative References . . . . . . . . . . . . . . . . . . . . 100 | |||
| Appendix A. Example of IS-IS configuration in XML . . . . . . . 108 | Appendix A. Example of IS-IS configuration in XML . . . . . . . 101 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 111 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 103 | |||
| 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 8 ¶ | skipping to change at page 4, line 8 ¶ | |||
| The IS-IS YANG module augments the "control-plane-protocol" list in | The IS-IS YANG module augments the "control-plane-protocol" list in | |||
| ietf-routing module with specific IS-IS parameters. | ietf-routing module with specific IS-IS parameters. | |||
| The module is designed as per NMDA (Network Management Datastore | The module is designed as per NMDA (Network Management Datastore | |||
| Architecture). | Architecture). | |||
| The figure below describes the overall structure of the isis YANG | The figure below describes the overall structure of the isis YANG | |||
| module: | module: | |||
| module: ietf-isis | module: ietf-isis | |||
| augment /rt:routing/rt:ribs/rt:rib/rt:routes/rt:route: | augment /rt:routing/rt:ribs/rt:rib/rt:routes/rt:route: | |||
| +--ro metric? uint32 | +--ro metric? uint32 | |||
| +--ro tag* uint64 | +--ro tag* uint64 | |||
| +--ro route-type? enumeration | +--ro route-type? enumeration | |||
| augment /if:interfaces/if:interface: | augment /if:interfaces/if:interface: | |||
| +--rw clns-mtu? uint16 | +--rw clns-mtu? uint16 | |||
| augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protoc | augment /rt:routing/rt:control-plane-protocols/ | |||
| ol: | | rt:control-plane-protocol: | |||
| +--rw isis | +--rw isis | |||
| +--rw enable? boolean {admin-control}? | +--rw enable? boolean {admin-control}? | |||
| +--rw level-type? level | +--rw level-type? level | |||
| +--rw system-id? system-id | +--rw system-id? system-id | |||
| +--rw maximum-area-addresses? uint8 {maximum-area-addresses}? | +--rw maximum-area-addresses? | |||
| +--rw area-address* area-address | | uint8 {maximum-area-addresses}? | |||
| +--rw mpls | +--rw area-address* area-address | |||
| | +--rw ipv4-router-id? inet:ipv4-address {ipv4-router-id}? | +--rw mpls | |||
| | +--rw ipv6-router-id? inet:ipv6-address {ipv6-router-id}? | | +--rw ipv4-router-id? inet:ipv4-address {ipv4-router-id}? | |||
| | +--rw ldp | | +--rw ipv6-router-id? inet:ipv6-address {ipv6-router-id}? | |||
| | ... | | +--rw ldp | |||
| +--rw auto-cost {auto-cost}? | | ... | |||
| | +--rw reference-bandwidth? uint32 | +--rw auto-cost {auto-cost}? | |||
| | +--rw enable? boolean | | +--rw reference-bandwidth? uint32 | |||
| +--rw lsp-mtu? uint16 | | +--rw enable? boolean | |||
| +--rw lsp-lifetime? uint16 | +--rw lsp-mtu? uint16 | |||
| +--rw lsp-refresh? rt-types:timer-value-seconds16 {l | +--rw lsp-lifetime? uint16 | |||
| sp-refresh}? | +--rw lsp-refresh? | |||
| +--rw graceful-restart {graceful-restart}? | | rt-types:timer-value-seconds16 {lsp-refresh}? | |||
| | +--rw enable? boolean | +--rw graceful-restart {graceful-restart}? | |||
| | +--rw restart-interval? rt-types:timer-value-seconds16 | | +--rw enable? boolean | |||
| | +--rw helper-enable? boolean | | +--rw restart-interval? rt-types:timer-value-seconds16 | |||
| +--rw nsr {nsr}? | | +--rw helper-enable? boolean | |||
| | +--rw enable? boolean | +--rw nsr {nsr}? | |||
| +--rw node-tags {node-tag}? | | +--rw enable? boolean | |||
| | +--rw node-tag* [tag] | +--rw node-tags {node-tag}? | |||
| | ... | | +--rw node-tag* [tag] | |||
| +--rw authentication | | ... | |||
| | +--rw (authentication-type)? | +--rw authentication | |||
| | | ... | | +--rw (authentication-type)? | |||
| | +--rw level-1 | | | ... | |||
| | | ... | | +--rw level-1 | |||
| | +--rw level-2 | | | ... | |||
| | ... | | +--rw level-2 | |||
| +--rw metric-type | | ... | |||
| | +--rw value? enumeration | ||||
| | +--rw level-1 | ||||
| | | ... | ||||
| | +--rw level-2 | ||||
| | ... | ||||
| +--rw default-metric | ||||
| | +--rw value? wide-metric | ||||
| | +--rw level-1 | ||||
| | | ... | ||||
| | +--rw level-2 | ||||
| | ... | ||||
| +--rw afs {nlpid-control}? | ||||
| | +--rw af* [af] | ||||
| | ... | ||||
| +--rw preference | ||||
| | +--rw (granularity)? | ||||
| | ... | ||||
| +--rw overload | ||||
| | +--rw status? boolean | ||||
| +--rw overload-max-metric {overload-max-metric}? | ||||
| | +--rw timeout? rt-types:timer-value-seconds16 | ||||
| +--rw fast-reroute {fast-reroute}? | ||||
| | +--rw lfa {lfa}? | ||||
| | +--ro protected-routes | ||||
| | | ... | ||||
| | +--ro nonprotected-routes | ||||
| | | ... | ||||
| | +--ro protection-statistics* [frr-protection-method] | ||||
| | ... | ||||
| +--rw spf-control | ||||
| | +--rw ietf-spf-delay {ietf-spf-delay}? | ||||
| | ... | ||||
| +--rw topologies {multi-topology}? | ||||
| | +--rw topology* [name] | ||||
| | ... | ||||
| +--rw interfaces | ||||
| | +--rw interface* [name] | ||||
| | ... | ||||
| +--ro spf-log | ||||
| | +--ro event* [id] | ||||
| | ... | ||||
| +--ro lsp-log | ||||
| | +--ro event* [id] | ||||
| | ... | ||||
| +--ro hostnames | ||||
| | +--ro hostname* [system-id] | ||||
| | ... | ||||
| +--ro database | ||||
| | +--ro level-db* [level] | ||||
| | ... | ||||
| +--ro local-rib | +--rw metric-type | |||
| | +--ro route* [prefix] | | +--rw value? enumeration | |||
| | ... | | +--rw level-1 | |||
| +--ro system-counters | | | ... | |||
| +--ro level* [level] | | +--rw level-2 | |||
| ... | | ... | |||
| +--rw default-metric | ||||
| | +--rw value? wide-metric | ||||
| | +--rw level-1 | ||||
| | | ... | ||||
| | +--rw level-2 | ||||
| | ... | ||||
| +--rw afs {nlpid-control}? | ||||
| | +--rw af* [af] | ||||
| | ... | ||||
| +--rw preference | ||||
| | +--rw (granularity)? | ||||
| | ... | ||||
| +--rw overload | ||||
| | +--rw status? boolean | ||||
| +--rw overload-max-metric {overload-max-metric}? | ||||
| | +--rw timeout? rt-types:timer-value-seconds16 | ||||
| +--rw fast-reroute {fast-reroute}? | ||||
| | +--rw lfa {lfa}? | ||||
| | +--ro protected-routes | ||||
| | | ... | ||||
| | +--ro nonprotected-routes | ||||
| | | ... | ||||
| | +--ro protection-statistics* [frr-protection-method] | ||||
| | ... | ||||
| +--rw spf-control | ||||
| | +--rw ietf-spf-delay {ietf-spf-delay}? | ||||
| | ... | ||||
| +--rw topologies {multi-topology}? | ||||
| | +--rw topology* [name] | ||||
| | ... | ||||
| +--rw interfaces | ||||
| | +--rw interface* [name] | ||||
| | ... | ||||
| +--ro spf-log | ||||
| | +--ro event* [id] | ||||
| | ... | ||||
| +--ro lsp-log | ||||
| | +--ro event* [id] | ||||
| | ... | ||||
| +--ro hostnames | ||||
| | +--ro hostname* [system-id] | ||||
| | ... | ||||
| rpcs: | +--ro database | |||
| +---x clear-adjacency | | +--ro level-db* [level] | |||
| | +---w input | | ... | |||
| | +---w routing-protocol-instance-name instance-state-ref | +--ro local-rib | |||
| | +---w level? level | | +--ro route* [prefix] | |||
| | +---w interface? string | | ... | |||
| +---x clear-database | +--ro system-counters | |||
| +---w input | +--ro level* [level] | |||
| +---w routing-protocol-instance-name instance-state-ref | ... | |||
| +---w level? level | ||||
| notifications: | rpcs: | |||
| +---n database-overload | +---x clear-adjacency | |||
| | +--ro routing-instance? string | | +---w input | |||
| | +--ro routing-protocol-name? string | | +---w routing-protocol-instance-name instance-state-ref | |||
| | +--ro isis-level? level | | +---w level? level | |||
| | +--ro overload? enumeration | | +---w interface? string | |||
| +---n lsp-too-large | +---x clear-database | |||
| | +--ro routing-instance? string | +---w input | |||
| | +--ro routing-protocol-name? string | +---w routing-protocol-instance-name instance-state-ref | |||
| | +--ro isis-level? level | +---w level? level | |||
| | +--ro interface-name? string | ||||
| | +--ro interface-level? level | notifications: | |||
| | +--ro extended-circuit-id? extended-circuit-id | +---n database-overload | |||
| | +--ro pdu-size? uint32 | | +--ro routing-instance? string | |||
| | +--ro lsp-id? lsp-id | | +--ro routing-protocol-name? string | |||
| +---n if-state-change | | +--ro isis-level? level | |||
| | +--ro routing-instance? string | | +--ro overload? enumeration | |||
| | +--ro routing-protocol-name? string | +---n lsp-too-large | |||
| | +--ro isis-level? level | | +--ro routing-instance? string | |||
| | +--ro interface-name? string | | +--ro routing-protocol-name? string | |||
| | +--ro interface-level? level | | +--ro isis-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-name? string | |||
| | +--ro state? if-state-type | | +--ro interface-level? level | |||
| +---n corrupted-lsp-detected | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro routing-instance? string | | +--ro pdu-size? uint32 | |||
| | +--ro routing-protocol-name? string | | +--ro lsp-id? lsp-id | |||
| | +--ro isis-level? level | +---n if-state-change | |||
| | +--ro lsp-id? lsp-id | | +--ro routing-instance? string | |||
| +---n attempt-to-exceed-max-sequence | | +--ro routing-protocol-name? string | |||
| | +--ro routing-instance? string | | +--ro isis-level? level | |||
| | +--ro routing-protocol-name? string | | +--ro interface-name? string | |||
| | +--ro isis-level? level | | +--ro interface-level? level | |||
| | +--ro lsp-id? lsp-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +---n id-len-mismatch | | +--ro state? if-state-type | |||
| | +--ro routing-instance? string | +---n corrupted-lsp-detected | |||
| | +--ro routing-protocol-name? string | | +--ro routing-instance? string | |||
| | +--ro isis-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro interface-name? string | | +--ro isis-level? level | |||
| | +--ro interface-level? level | | +--ro lsp-id? lsp-id | |||
| | +--ro extended-circuit-id? extended-circuit-id | +---n attempt-to-exceed-max-sequence | |||
| | +--ro pdu-field-len? uint8 | | +--ro routing-instance? string | |||
| | +--ro raw-pdu? binary | | +--ro routing-protocol-name? string | |||
| +---n max-area-addresses-mismatch | | +--ro isis-level? level | |||
| | +--ro routing-instance? string | | +--ro lsp-id? lsp-id | |||
| | +--ro routing-protocol-name? string | +---n id-len-mismatch | |||
| | +--ro isis-level? level | | +--ro routing-instance? string | |||
| | +--ro interface-name? string | | +--ro routing-protocol-name? string | |||
| | +--ro interface-level? level | | +--ro isis-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-name? string | |||
| | +--ro max-area-addresses? uint8 | | +--ro interface-level? level | |||
| | +--ro raw-pdu? binary | | +--ro extended-circuit-id? extended-circuit-id | |||
| +---n own-lsp-purge | | +--ro pdu-field-len? uint8 | |||
| | +--ro routing-instance? string | | +--ro raw-pdu? binary | |||
| | +--ro routing-protocol-name? string | +---n max-area-addresses-mismatch | |||
| | +--ro isis-level? level | | +--ro routing-instance? string | |||
| | +--ro interface-name? string | | +--ro routing-protocol-name? string | |||
| | +--ro interface-level? level | | +--ro isis-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-name? string | |||
| | +--ro lsp-id? lsp-id | | +--ro interface-level? level | |||
| +---n sequence-number-skipped | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro routing-instance? string | | +--ro max-area-addresses? uint8 | |||
| | +--ro routing-protocol-name? string | | +--ro raw-pdu? binary | |||
| | +--ro isis-level? level | +---n own-lsp-purge | |||
| | +--ro interface-name? string | | +--ro routing-instance? string | |||
| | +--ro interface-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro isis-level? level | |||
| | +--ro lsp-id? lsp-id | | +--ro interface-name? string | |||
| +---n authentication-type-failure | | +--ro interface-level? level | |||
| | +--ro routing-instance? string | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro routing-protocol-name? string | | +--ro lsp-id? lsp-id | |||
| | +--ro isis-level? level | +---n sequence-number-skipped | |||
| | +--ro interface-name? string | | +--ro routing-instance? string | |||
| | +--ro interface-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro isis-level? level | |||
| | +--ro raw-pdu? binary | | +--ro interface-name? string | |||
| +---n authentication-failure | | +--ro interface-level? level | |||
| | +--ro routing-instance? string | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro routing-protocol-name? string | | +--ro lsp-id? lsp-id | |||
| | +--ro isis-level? level | +---n authentication-type-failure | |||
| | +--ro interface-name? string | | +--ro routing-instance? string | |||
| | +--ro interface-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro isis-level? level | |||
| | +--ro raw-pdu? binary | | +--ro interface-name? string | |||
| +---n version-skew | | +--ro interface-level? level | |||
| | +--ro routing-instance? string | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro routing-protocol-name? string | | +--ro raw-pdu? binary | |||
| | +--ro isis-level? level | +---n authentication-failure | |||
| | +--ro interface-name? string | | +--ro routing-instance? string | |||
| | +--ro interface-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro isis-level? level | |||
| | +--ro protocol-version? uint8 | | +--ro interface-name? string | |||
| | +--ro raw-pdu? binary | | +--ro interface-level? level | |||
| +---n area-mismatch | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro routing-instance? string | | +--ro raw-pdu? binary | |||
| | +--ro routing-protocol-name? string | +---n version-skew | |||
| | +--ro isis-level? level | | +--ro routing-instance? string | |||
| | +--ro interface-name? string | | +--ro routing-protocol-name? string | |||
| | +--ro interface-level? level | | +--ro isis-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-name? string | |||
| | +--ro raw-pdu? binary | | +--ro interface-level? level | |||
| +---n rejected-adjacency | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro routing-instance? string | | +--ro protocol-version? uint8 | |||
| | +--ro routing-protocol-name? string | | +--ro raw-pdu? binary | |||
| | +--ro isis-level? level | +---n area-mismatch | |||
| | +--ro interface-name? string | | +--ro routing-instance? string | |||
| | +--ro interface-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro isis-level? level | |||
| | +--ro raw-pdu? binary | | +--ro interface-name? string | |||
| | +--ro reason? string | | +--ro interface-level? level | |||
| +---n protocols-supported-mismatch | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro routing-instance? string | | +--ro raw-pdu? binary | |||
| | +--ro routing-protocol-name? string | +---n rejected-adjacency | |||
| | +--ro isis-level? level | | +--ro routing-instance? string | |||
| | +--ro interface-name? string | | +--ro routing-protocol-name? string | |||
| | +--ro interface-level? level | | +--ro isis-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-name? string | |||
| | +--ro raw-pdu? binary | | +--ro interface-level? level | |||
| | +--ro protocols* uint8 | | +--ro extended-circuit-id? extended-circuit-id | |||
| +---n lsp-error-detected | | +--ro raw-pdu? binary | |||
| | +--ro routing-instance? string | | +--ro reason? string | |||
| | +--ro routing-protocol-name? string | +---n protocols-supported-mismatch | |||
| | +--ro isis-level? level | | +--ro routing-instance? string | |||
| | +--ro interface-name? string | | +--ro routing-protocol-name? string | |||
| | +--ro interface-level? level | | +--ro isis-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-name? string | |||
| | +--ro lsp-id? lsp-id | | +--ro interface-level? level | |||
| | +--ro raw-pdu? binary | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro error-offset? uint32 | | +--ro raw-pdu? binary | |||
| | +--ro tlv-type? uint8 | | +--ro protocols* uint8 | |||
| +---n adjacency-state-change | +---n lsp-error-detected | |||
| | +--ro routing-instance? string | | +--ro routing-instance? string | |||
| | +--ro routing-protocol-name? string | | +--ro routing-protocol-name? string | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? string | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro neighbor? string | | +--ro lsp-id? lsp-id | |||
| | +--ro neighbor-system-id? system-id | | +--ro raw-pdu? binary | |||
| | +--ro state? adj-state-type | | +--ro error-offset? uint32 | |||
| | +--ro reason? string | | +--ro tlv-type? uint8 | |||
| +---n lsp-received | +---n adjacency-state-change | |||
| | +--ro routing-instance? string | | +--ro routing-instance? string | |||
| | +--ro routing-protocol-name? string | | +--ro routing-protocol-name? string | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? string | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro lsp-id? lsp-id | | +--ro neighbor? string | |||
| | +--ro sequence? uint32 | | +--ro neighbor-system-id? system-id | |||
| | +--ro received-timestamp? yang:timestamp | | +--ro state? adj-state-type | |||
| | +--ro neighbor-system-id? system-id | | +--ro reason? string | |||
| +---n lsp-generation | +---n lsp-received | |||
| +--ro routing-instance? string | | +--ro routing-instance? string | |||
| +--ro routing-protocol-name? string | | +--ro routing-protocol-name? string | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro lsp-id? lsp-id | | +--ro interface-name? string | |||
| +--ro sequence? uint32 | | +--ro interface-level? level | |||
| +--ro send-timestamp? yang:timestamp | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro lsp-id? lsp-id | ||||
| | +--ro sequence? uint32 | ||||
| | +--ro received-timestamp? yang:timestamp | ||||
| | +--ro neighbor-system-id? system-id | ||||
| +---n lsp-generation | ||||
| +--ro routing-instance? string | ||||
| +--ro routing-protocol-name? string | ||||
| +--ro isis-level? level | ||||
| +--ro lsp-id? lsp-id | ||||
| +--ro sequence? uint32 | ||||
| +--ro send-timestamp? yang:timestamp | ||||
| 2.1. IS-IS Configuration | 2.1. IS-IS Configuration | |||
| The IS-IS configuration container is divided in: | The IS-IS configuration container is divided in: | |||
| o Global parameters. | o Global parameters. | |||
| o Per interface configuration (see Section 2.4). | o Per interface configuration (see Section 2.4). | |||
| Additional modules may be created this to support any additional | Additional modules may be created this to support any additional | |||
| skipping to change at page 11, line 7 ¶ | skipping to change at page 11, line 9 ¶ | |||
| | +--rw value? uint8 | | +--rw value? uint8 | |||
| | +--rw level-1 | | +--rw level-1 | |||
| | | +--rw value? uint8 | | | +--rw value? uint8 | |||
| | +--rw level-2 | | +--rw level-2 | |||
| | +--rw value? uint8 | | +--rw value? uint8 | |||
| Example: | Example: | |||
| <priority> | <priority> | |||
| <value>250</value> | <value>250</value> | |||
| <level-1> | <level-1> | |||
| <value>100</value> | <value>100</value> | |||
| </level-1> | </level-1> | |||
| <level-2> | <level-2> | |||
| <value>200</value> | <value>200</value> | |||
| </level-2> | </level-2> | |||
| </priority> | </priority> | |||
| An implementation SHOULD prefer a level specific parameter over a | An implementation SHOULD prefer a level specific parameter over a | |||
| level-all parameter. As example, if the priority is 100 for the | level-all parameter. As example, if the priority is 100 for the | |||
| level-1, 200 for the level-2 and 250 for the top level configuration, | level-1, 200 for the level-2 and 250 for the top level configuration, | |||
| the implementation should use 100 for the level-1 and 200 for the | the implementation should use 100 for the level-1 and 200 for the | |||
| level-2. | level-2. | |||
| Some parameters like "overload bit" and "route preference" are not | Some parameters like "overload bit" and "route preference" are not | |||
| modeled to support a per level configuration. If an implementation | modeled to support a per level configuration. If an implementation | |||
| supports per level configuration for such parameter, this | supports per level configuration for such parameter, this | |||
| implementation SHOULD augment the current model by adding both | implementation SHOULD augment the current model by adding both | |||
| level-1 and level-2 containers and SHOULD reuse existing | level-1 and level-2 containers and SHOULD reuse existing | |||
| configuration groupings. | configuration groupings. | |||
| Example of augmentation: | Example of augmentation: | |||
| augment "/rt:routing/" + | augment "/rt:routing/" + | |||
| "rt:control-plane-protocols/rt:control-plane-protocol"+ | "rt:control-plane-protocols/rt:control-plane-protocol"+ | |||
| "/isis:isis/isis:overload" { | "/isis:isis/isis:overload" { | |||
| when "rt:type = 'isis:isis'" { | when "rt:type = 'isis:isis'" { | |||
| description | description | |||
| "This augment IS-IS routing protocol when used"; | "This augment IS-IS routing protocol when used"; | |||
| } | } | |||
| description | description | |||
| "This augments IS-IS overload configuration | "This augments IS-IS overload configuration | |||
| with per level configuration."; | with per level configuration."; | |||
| container level-1 { | container level-1 { | |||
| uses isis:overload-global-cfg; | uses isis:overload-global-cfg; | |||
| description | description | |||
| "Level 1 configuration."; | "Level 1 configuration."; | |||
| } | } | |||
| container level-2 { | container level-2 { | |||
| uses isis:overload-global-cfg; | uses isis:overload-global-cfg; | |||
| description | description | |||
| "Level 2 configuration."; | "Level 2 configuration."; | |||
| } | } | |||
| } | } | |||
| If an implementation does not support per level configuration for a | If an implementation does not support per level configuration for a | |||
| parameter modeled with per level configuration, the implementation | parameter modeled with per level configuration, the implementation | |||
| SHOULD advertise a deviation to announce the non support of the | SHOULD advertise a deviation to announce the non support of the | |||
| level-1 and level-2 containers. | level-1 and level-2 containers. | |||
| Finally, if an implementation supports per level configuration but | Finally, if an implementation supports per level configuration but | |||
| does not support the level-1-2 configuration, it SHOULD also | does not support the level-1-2 configuration, it SHOULD also | |||
| advertise a deviation. | advertise a deviation. | |||
| 2.4. Per-Interface Parameters | 2.4. Per-Interface Parameters | |||
| skipping to change at page 12, line 33 ¶ | skipping to change at page 13, 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? rt-types:timer-value-milli | | +--rw lsp-pacing-interval? | |||
| seconds | | | rt-types:timer-value-milliseconds | |||
| | +--rw lsp-retransmit-interval? rt-types:timer-value-secon | | +--rw lsp-retransmit-interval? | |||
| ds16 | | | rt-types:timer-value-seconds16 | |||
| | +--rw passive? boolean | | +--rw passive? boolean | |||
| | +--rw csnp-interval? rt-types:timer-value-secon | | +--rw csnp-interval? | |||
| ds16 | | | rt-types:timer-value-seconds16 | |||
| | +--rw hello-padding | | +--rw hello-padding | |||
| | | +--rw enable? boolean | | | +--rw enable? boolean | |||
| | +--rw mesh-group-enable? mesh-group-state | | +--rw mesh-group-enable? mesh-group-state | |||
| | +--rw mesh-group? uint8 | | +--rw mesh-group? uint8 | |||
| | +--rw interface-type? interface-type | | +--rw interface-type? interface-type | |||
| | +--rw enable? boolean {admin-control}? | | +--rw enable? boolean {admin-control}? | |||
| | +--rw tag* uint32 {prefix-tag}? | | +--rw tag* uint32 {prefix-tag}? | |||
| | +--rw tag64* uint64 {prefix-tag64}? | | +--rw tag64* uint64 {prefix-tag64}? | |||
| | +--rw node-flag? boolean {node-flag}? | | +--rw node-flag? boolean {node-flag}? | |||
| | +--rw hello-authentication | | +--rw hello-authentication | |||
| | | +--rw (authentication-type)? | | | +--rw (authentication-type)? | |||
| | | | +--:(key-chain) {key-chain}? | | | | +--:(key-chain) {key-chain}? | |||
| | | | | +--rw key-chain? key-chain:key-chain-ref | | | | | +--rw key-chain? key-chain:key-chain-ref | |||
| | | | +--:(password) | | | | +--:(password) | |||
| | | | +--rw key? string | | | | +--rw key? string | |||
| | | | +--rw crypto-algorithm? identityref | | | | +--rw crypto-algorithm? identityref | |||
| | | +--rw level-1 | | | +--rw level-1 | |||
| | | | +--rw (authentication-type)? | | | | +--rw (authentication-type)? | |||
| | | | +--:(key-chain) {key-chain}? | | | | +--:(key-chain) {key-chain}? | |||
| | | | | +--rw key-chain? key-chain:key-chain-r | | | | | +--rw key-chain? key-chain:key-chain-ref | |||
| ef | ||||
| | | | +--:(password) | | | | +--:(password) | |||
| | | | +--rw key? string | | | | +--rw key? string | |||
| | | | +--rw crypto-algorithm? identityref | | | | +--rw crypto-algorithm? identityref | |||
| | | +--rw level-2 | | | +--rw level-2 | |||
| | | +--rw (authentication-type)? | | | +--rw (authentication-type)? | |||
| | | +--:(key-chain) {key-chain}? | | | +--:(key-chain) {key-chain}? | |||
| | | | +--rw key-chain? key-chain:key-chain-r | | | | +--rw key-chain? key-chain:key-chain-ref | |||
| ef | ||||
| | | +--:(password) | | | +--:(password) | |||
| | | +--rw key? string | | | +--rw key? string | |||
| | | +--rw crypto-algorithm? identityref | | | +--rw crypto-algorithm? identityref | |||
| | +--rw hello-interval | | +--rw hello-interval | |||
| | | +--rw value? rt-types:timer-value-seconds16 | | | +--rw value? rt-types:timer-value-seconds16 | |||
| | | +--rw level-1 | | | +--rw level-1 | |||
| | | | +--rw value? rt-types:timer-value-seconds16 | | | | +--rw value? rt-types:timer-value-seconds16 | |||
| | | +--rw level-2 | | | +--rw level-2 | |||
| | | +--rw value? rt-types:timer-value-seconds16 | | | +--rw value? rt-types:timer-value-seconds16 | |||
| | +--rw hello-multiplier | | +--rw hello-multiplier | |||
| skipping to change at page 14, line 28 ¶ | skipping to change at page 15, line 6 ¶ | |||
| | | | +--rw enable? boolean | | | | +--rw enable? boolean | |||
| | | | +--rw remote-lfa {remote-lfa}? | | | | +--rw remote-lfa {remote-lfa}? | |||
| | | | +--rw enable? boolean | | | | +--rw enable? boolean | |||
| | | +--rw level-2 | | | +--rw level-2 | |||
| | | +--rw candidate-disabled? boolean | | | +--rw candidate-disabled? boolean | |||
| | | +--rw enable? boolean | | | +--rw enable? boolean | |||
| | | +--rw remote-lfa {remote-lfa}? | | | +--rw remote-lfa {remote-lfa}? | |||
| | | +--rw enable? boolean | | | +--rw enable? boolean | |||
| | +--rw topologies {multi-topology}? | | +--rw topologies {multi-topology}? | |||
| | | +--rw topology* [name] | | | +--rw topology* [name] | |||
| | | +--rw name -> ../../../../../../../../rt:ribs/ri | | | +--rw name | |||
| b/name | | | | -> ../../../../../../../../rt:ribs/rib/name | |||
| | | +--rw metric | | | +--rw metric | |||
| | | +--rw value? wide-metric | | | +--rw value? wide-metric | |||
| | | +--rw level-1 | | | +--rw level-1 | |||
| | | | +--rw value? wide-metric | | | | +--rw value? wide-metric | |||
| | | +--rw level-2 | | | +--rw level-2 | |||
| | | +--rw value? wide-metric | | | +--rw value? wide-metric | |||
| | +--ro adjacencies | | +--ro adjacencies | |||
| | | +--ro adjacency* [] | | | +--ro adjacency* [] | |||
| | | +--ro neighbor-systype? level | | | +--ro neighbor-systype? level | |||
| | | +--ro neighbor-sysid? system-id | | | +--ro neighbor-sysid? system-id | |||
| | | +--ro neighbor-extended-circuit-id? extended-circui | | | +--ro neighbor-extended-circuit-id? | |||
| t-id | | | | extended-circuit-id | |||
| | | +--ro neighbor-snpa? snpa | | | +--ro neighbor-snpa? snpa | |||
| | | +--ro usage? level | | | +--ro usage? level | |||
| | | +--ro hold-timer? rt-types:timer- | | | +--ro hold-timer? | |||
| value-seconds16 | | | | rt-types:timer-value-seconds16 | |||
| | | +--ro neighbor-priority? uint8 | | | +--ro neighbor-priority? uint8 | |||
| | | +--ro lastuptime? yang:timestamp | | | +--ro lastuptime? yang:timestamp | |||
| | | +--ro state? adj-state-type | | | +--ro state? adj-state-type | |||
| | +--ro event-counters | | +--ro event-counters | |||
| | | +--ro adjacency-changes? uint32 | | | +--ro adjacency-changes? uint32 | |||
| | | +--ro adjacency-number? uint32 | | | +--ro adjacency-number? uint32 | |||
| | | +--ro init-fails? uint32 | | | +--ro init-fails? uint32 | |||
| | | +--ro adjacency-rejects? uint32 | | | +--ro adjacency-rejects? uint32 | |||
| | | +--ro id-len-mismatch? uint32 | | | +--ro id-len-mismatch? uint32 | |||
| | | +--ro max-area-addresses-mismatch? uint32 | | | +--ro max-area-addresses-mismatch? uint32 | |||
| skipping to change at page 19, line 29 ¶ | skipping to change at page 20, line 10 ¶ | |||
| +--ro database-overload? uint32 | +--ro database-overload? uint32 | |||
| +--ro own-lsp-purge? uint32 | +--ro own-lsp-purge? uint32 | |||
| +--ro manual-address-drop-from-area? uint32 | +--ro manual-address-drop-from-area? uint32 | |||
| +--ro max-sequence? uint32 | +--ro max-sequence? uint32 | |||
| +--ro sequence-number-skipped? uint32 | +--ro sequence-number-skipped? uint32 | |||
| +--ro id-len-mismatch? uint32 | +--ro id-len-mismatch? uint32 | |||
| +--ro partition-changes? uint32 | +--ro partition-changes? uint32 | |||
| +--ro lsp-errors? uint32 | +--ro lsp-errors? uint32 | |||
| +--ro spf-runs? uint32 | +--ro spf-runs? uint32 | |||
| rpcs: | rpcs: | |||
| +---x clear-adjacency | +---x clear-adjacency | |||
| | +---w input | | +---w input | |||
| | +---w routing-protocol-instance-name instance-state-ref | | +---w routing-protocol-instance-name instance-state-ref | |||
| | +---w level? level | | +---w level? level | |||
| | +---w interface? string | | +---w interface? string | |||
| +---x clear-database | +---x clear-database | |||
| +---w input | +---w input | |||
| +---w routing-protocol-instance-name instance-state-ref | +---w routing-protocol-instance-name instance-state-ref | |||
| +---w level? level | +---w level? level | |||
| notifications: | notifications: | |||
| +---n database-overload | +---n database-overload | |||
| | +--ro routing-instance? string | | +--ro routing-instance? string | |||
| | +--ro routing-protocol-name? string | | +--ro routing-protocol-name? string | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro overload? enumeration | | +--ro overload? enumeration | |||
| +---n lsp-too-large | +---n lsp-too-large | |||
| | +--ro routing-instance? string | | +--ro routing-instance? string | |||
| | +--ro routing-protocol-name? string | | +--ro routing-protocol-name? string | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? string | |||
| skipping to change at page 26, line 44 ¶ | skipping to change at page 27, 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@2018-05-25.yang" | <CODE BEGINS> file "ietf-yang@2018-07-02.yang" | |||
| module ietf-isis { | ||||
| yang-version 1.1; | ||||
| namespace "urn:ietf:params:xml:ns:yang:ietf-isis"; | ||||
| module ietf-isis { | prefix isis; | |||
| yang-version 1.1; | ||||
| namespace "urn:ietf:params:xml:ns:yang:ietf-isis"; | ||||
| prefix isis; | import ietf-routing { | |||
| import ietf-routing { | prefix "rt"; | |||
| prefix "rt"; | reference "RFC 8349 - A YANG Data Model for Routing | |||
| reference "RFC 8349 - A YANG Data Model for Routing | Management (NMDA Version)"; | |||
| Management (NMDA Version)"; | } | |||
| } | ||||
| import ietf-inet-types { | import ietf-inet-types { | |||
| prefix inet; | prefix inet; | |||
| reference "RFC 6021 - Common YANG Data Types"; | reference "RFC 6021 - Common YANG Data Types"; | |||
| } | } | |||
| import ietf-yang-types { | import ietf-yang-types { | |||
| prefix yang; | prefix yang; | |||
| reference "RFC 6021 - Common YANG Data Types"; | reference "RFC 6021 - Common YANG Data Types"; | |||
| } | } | |||
| import ietf-interfaces { | import ietf-interfaces { | |||
| prefix "if"; | prefix "if"; | |||
| reference "RFC 8343 - A YANG Data Model for Interface | reference "RFC 8343 - A YANG Data Model for Interface | |||
| Management (NDMA Version)"; | Management (NDMA Version)"; | |||
| } | } | |||
| import ietf-key-chain { | import ietf-key-chain { | |||
| prefix "key-chain"; | prefix "key-chain"; | |||
| reference "RFC 8177 - YANG Data Model for Key Chains"; | reference "RFC 8177 - YANG Data Model for Key Chains"; | |||
| } | } | |||
| import ietf-routing-types { | import ietf-routing-types { | |||
| prefix "rt-types"; | prefix "rt-types"; | |||
| reference "RFC 8291 - Common YANG Data Types for the | reference "RFC 8291 - Common YANG Data Types for the | |||
| Routing Area"; | Routing Area"; | |||
| } | } | |||
| import iana-routing-types { | import iana-routing-types { | |||
| prefix "iana-rt-types"; | prefix "iana-rt-types"; | |||
| reference "RFC 8291 - Common YANG Data Types for the | reference "RFC 8291 - Common YANG Data Types for the | |||
| Routing Area"; | Routing Area"; | |||
| } | } | |||
| import ietf-bfd-types { | import ietf-bfd-types { | |||
| prefix "bfd-types"; | prefix "bfd-types"; | |||
| reference "RFC XXXX - YANG Data Model for Bidirectional | reference "RFC XXXX - YANG Data Model for Bidirectional | |||
| Forwarding Detection (BFD)"; | Forwarding Detection (BFD)"; | |||
| } | } | |||
| organization | organization | |||
| "IETF IS-IS Working Group"; | "IETF IS-IS 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 | |||
| <mailto:derek@arrcus.com> | <mailto:derek@arrcus.com> | |||
| Acee Lindem | Acee Lindem | |||
| <mailto:acee@cisco.com> | <mailto:acee@cisco.com> | |||
| Jeffrey Zhang | Jeffrey Zhang | |||
| <mailto:zzhang@juniper.net> | <mailto:zzhang@juniper.net> | |||
| Ladislav Lhotka | Ladislav Lhotka | |||
| <mailto:llhotka@nic.cz> | <mailto:llhotka@nic.cz> | |||
| Yi Yang | Yi Yang | |||
| <mailto:yiya@cisco.com> | <mailto:yiya@cisco.com> | |||
| Dean Bogdanovic | Dean Bogdanovic | |||
| <mailto:deanb@juniper.net> | <mailto:deanb@juniper.net> | |||
| Kiran Agrahara Sreenivasa | Kiran Agrahara Sreenivasa | |||
| <mailto:kkoushik@brocade.com> | <mailto:kkoushik@brocade.com> | |||
| Yingzhen Qu | Yingzhen Qu | |||
| <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 | |||
| IS-IS common across all of the vendor implementations."; | IS-IS common across all of the vendor implementations."; | |||
| revision 2017-05-25 { | revision 2018-07-02 { | |||
| description | description | |||
| "Initial revision."; | "Initial revision."; | |||
| reference "RFC XXXX"; | reference "RFC XXXX"; | |||
| } | } | |||
| /* Identities */ | /* Identities */ | |||
| identity isis { | identity isis { | |||
| base rt:routing-protocol; | base rt:routing-protocol; | |||
| description "Identity for the IS-IS routing protocol."; | description "Identity for the IS-IS routing protocol."; | |||
| } | } | |||
| identity isis-adjacency-change { | identity isis-adjacency-change { | |||
| description "Identity for the IS-IS routing protocol | description "Identity for the IS-IS routing protocol | |||
| adjacency state."; | adjacency state."; | |||
| } | } | |||
| identity clear-isis-database { | ||||
| description "Identity for the IS-IS routing protocol | ||||
| database reset action."; | ||||
| } | ||||
| identity clear-isis-adjacency { | identity clear-isis-database { | |||
| description "Identity for the IS-IS routing protocol | description "Identity for the IS-IS routing protocol | |||
| adjacency reset action."; | database reset action."; | |||
| } | } | |||
| identity lsp-log-reason { | identity clear-isis-adjacency { | |||
| description "Base identity for an LSP change | description "Identity for the IS-IS routing protocol | |||
| log reason."; | adjacency reset action."; | |||
| } | } | |||
| identity refresh { | identity lsp-log-reason { | |||
| base lsp-log-reason; | description "Base identity for an LSP change log reason."; | |||
| description | } | |||
| "Identity used when the LSP log reason is | ||||
| a refresh LSP received."; | ||||
| } | ||||
| identity content-change { | 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 change in the content of the LSP."; | a refresh LSP received."; | |||
| } | } | |||
| /* Feature definitions */ | identity content-change { | |||
| base lsp-log-reason; | ||||
| description | ||||
| "Identity used when the LSP log reason is | ||||
| a change in the content of the LSP."; | ||||
| } | ||||
| feature ietf-spf-delay { | /* Feature definitions */ | |||
| description | ||||
| "Support of IETF SPF delay algorithm."; | ||||
| reference "RFC XXXX - SPF Back-off algorithm for link | ||||
| state IGPs"; | ||||
| } | ||||
| feature bfd { | ||||
| description | ||||
| "Support for BFD detection of IS-IS neighbor reachability."; | ||||
| reference "RFC 5880 - Bidirectional Forwarding Detection (BFD) | ||||
| RFC 5881 - Bidirectional Forwarding Detection | ||||
| (BFD) for IPv4 and IPv6 (Single Hop)"; | ||||
| } | ||||
| feature key-chain { | ||||
| description | ||||
| "Support of keychain for authentication."; | ||||
| } | feature ietf-spf-delay { | |||
| feature node-flag { | description | |||
| description | "Support of IETF SPF delay algorithm."; | |||
| "Support of node-flag advertisement | reference "RFC XXXX - SPF Back-off algorithm for link | |||
| as prefix attribute"; | state IGPs"; | |||
| reference "RFC7794 - IS-IS Prefix Attributes for | } | |||
| Extended IP and IPv6 Reachability"; | feature bfd { | |||
| } | description | |||
| feature node-tag { | "Support for BFD detection of IS-IS neighbor reachability."; | |||
| description | reference "RFC 5880 - Bidirectional Forwarding Detection (BFD) | |||
| "Support of node tag."; | RFC 5881 - Bidirectional Forwarding Detection | |||
| reference "RFC7917 - Advertising Node Administrative Tags | (BFD) for IPv4 and IPv6 (Single Hop)"; | |||
| in IS-IS"; | } | |||
| } | feature key-chain { | |||
| feature ldp-igp-sync { | description | |||
| description | "Support of keychain for authentication."; | |||
| "Support of synchronization between IS-IS and LDP."; | reference "RFC8177 - YANG Data Model for Key Chains"; | |||
| reference "RFC5443 - LDP IGP Synchronization"; | } | |||
| } | feature node-flag { | |||
| feature fast-reroute { | description | |||
| description | "Support of node-flag advertisement | |||
| "Support of IP Fast Reroute."; | as prefix attribute"; | |||
| } | reference "RFC7794 - IS-IS Prefix Attributes for | |||
| feature nsr { | Extended IP and IPv6 Reachability"; | |||
| description | } | |||
| "Support of | feature node-tag { | |||
| Non Stop Routing."; | description | |||
| } | "Support of node tag."; | |||
| feature lfa { | reference "RFC7917 - Advertising Node Administrative Tags | |||
| description | in IS-IS"; | |||
| "Support of Loop Free Alternates."; | } | |||
| reference "RFC5286 - Basic Specification of IP Fast-Reroute: | feature ldp-igp-sync { | |||
| Loop-free Alternates"; | description | |||
| } | "Support of synchronization between IS-IS and LDP."; | |||
| feature remote-lfa { | reference "RFC5443 - LDP IGP Synchronization"; | |||
| description | } | |||
| "Support of remote Loop Free Alternates."; | feature fast-reroute { | |||
| reference "RFC7490 - Remote Loop-Free Alternate Fast Reroute"; | description | |||
| } | "Support of IP Fast Reroute."; | |||
| } | ||||
| feature nsr { | ||||
| description | ||||
| "Support of Non-Stop Routing."; | ||||
| } | ||||
| feature lfa { | ||||
| description | ||||
| "Support of Loop-Free Alternates."; | ||||
| reference "RFC5286 - Basic Specification of IP Fast-Reroute: | ||||
| Loop-free Alternates"; | ||||
| } | ||||
| feature remote-lfa { | ||||
| description | ||||
| "Support of remote Loop Free Alternates."; | ||||
| reference "RFC7490 - Remote Loop-Free Alternate Fast Reroute"; | ||||
| } | ||||
| feature overload-max-metric { | feature overload-max-metric { | |||
| description | description | |||
| "Support of overload by setting | "Support of overload by setting | |||
| all links to max metric."; | all links to max metric."; | |||
| } | } | |||
| feature prefix-tag { | feature prefix-tag { | |||
| description | description | |||
| "Add 32bit tag to prefixes"; | "Support for 32-bit prefix tags"; | |||
| reference "RFC5130 - A Policy Control Mechanism in | ||||
| IS-IS Using Administrative Tags"; | ||||
| } | ||||
| feature prefix-tag64 { | ||||
| description | ||||
| "Support for 64-bit prefix tags"; | ||||
| reference "RFC5130 - A Policy Control Mechanism in | ||||
| IS-IS Using Administrative Tags"; | ||||
| } | ||||
| feature auto-cost { | ||||
| description | ||||
| "Use an automated assignment of metrics."; | ||||
| } | ||||
| feature ipv4-router-id { | ||||
| description | ||||
| "Support of IPv4 router ID configuration under IS-IS."; | ||||
| } | ||||
| reference "RFC5130 - A Policy Control Mechanism in | feature ipv6-router-id { | |||
| IS-IS Using Administrative Tags"; | description | |||
| } | "Support of IPv6 router ID configuration under IS-IS."; | |||
| feature prefix-tag64 { | } | |||
| description | ||||
| "Add 64bit tag to prefixes"; | ||||
| reference "RFC5130 - A Policy Control Mechanism in | ||||
| IS-IS Using Administrative Tags"; | ||||
| } | ||||
| feature auto-cost { | ||||
| description | ||||
| "Use an automated assignment of metrics."; | ||||
| } | ||||
| feature ipv4-router-id { | ||||
| description | ||||
| "Support of IPv4 router ID configuration under IS-IS."; | ||||
| } | ||||
| feature ipv6-router-id { | feature multi-topology { | |||
| description | description | |||
| "Support of IPv6 router ID configuration under IS-IS."; | "Multitopology routing support."; | |||
| } | reference "RFC5120 - M-IS-IS: Multi Topology Routing in IS-IS"; | |||
| } | ||||
| feature nlpid-control { | ||||
| description | ||||
| "This feature controls the advertisement | ||||
| of support NLPID within IS-IS configuration."; | ||||
| } | ||||
| feature graceful-restart { | ||||
| description | ||||
| "Graceful restart support."; | ||||
| reference "RFC5306 - Restart Signaling in IS-IS"; | ||||
| } | ||||
| feature multi-topology { | feature lsp-refresh { | |||
| description | description | |||
| "Multitopology routing support."; | "Configuration of LSP refresh interval."; | |||
| reference "RFC5120 - M-IS-IS: Multi Topology Routing in IS-IS"; | } | |||
| } | ||||
| feature nlpid-control { | ||||
| description | ||||
| "This feature controls the advertisement | ||||
| of support NLPID within IS-IS configuration."; | ||||
| } | ||||
| feature graceful-restart { | ||||
| description | ||||
| "Graceful restart support."; | ||||
| reference "RFC5306 - Restart Signaling in IS-IS"; | ||||
| } | ||||
| feature lsp-refresh { | feature maximum-area-addresses { | |||
| description | description | |||
| "Configuration of LSP refresh interval."; | "Support of maximum-area-addresses config."; | |||
| } | } | |||
| feature maximum-area-addresses { | feature admin-control { | |||
| description | description | |||
| "Support of maximum-area-addresses config."; | "Control administrative state of IS-IS."; | |||
| } | } | |||
| feature admin-control { | ||||
| description | ||||
| "Control administrative state of IS-IS."; | ||||
| } | ||||
| /* Type definitions */ | /* Type definitions */ | |||
| typedef instance-state-ref { | typedef instance-state-ref { | |||
| 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 for | |||
| an IS-IS protocol instance."; | an IS-IS protocol instance."; | |||
| } | } | |||
| 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 { | } | |||
| type uint32; | ||||
| description | ||||
| "This type defines the extended circuit ID | ||||
| associated with an interface."; | ||||
| } | ||||
| typedef interface-type { | typedef extended-circuit-id { | |||
| type enumeration { | type uint32; | |||
| enum broadcast { | description | |||
| description | "This type defines the extended circuit ID | |||
| "Broadcast interface type."; | associated with an interface."; | |||
| } | } | |||
| enum point-to-point { | ||||
| description | ||||
| "Point to point interface type."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "This type defines the type of adjacency | ||||
| to be established on the interface. | ||||
| This is affecting the type of hello | ||||
| message that would be used."; | ||||
| } | typedef interface-type { | |||
| type enumeration { | ||||
| enum broadcast { | ||||
| description | ||||
| "Broadcast interface type."; | ||||
| } | ||||
| enum point-to-point { | ||||
| description | ||||
| "Point-to-point interface type."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "This type defines the type of adjacency | ||||
| to be established on the interface. | ||||
| The interface-type determines the type | ||||
| of hello message that is used."; | ||||
| typedef level { | } | |||
| type enumeration { | ||||
| enum "level-1" { | ||||
| description | ||||
| "This enum describes L1 only capability."; | ||||
| } | ||||
| enum "level-2" { | ||||
| description | ||||
| "This enum describes L2 only capability."; | ||||
| } | ||||
| enum "level-all" { | ||||
| description | ||||
| "This enum describes both levels capability."; | ||||
| } | ||||
| } | ||||
| default "level-all"; | ||||
| description | ||||
| "This type defines IS-IS level of an object."; | ||||
| } | typedef level { | |||
| type enumeration { | ||||
| enum "level-1" { | ||||
| description | ||||
| "This enum indicates L1-only capability."; | ||||
| } | ||||
| enum "level-2" { | ||||
| description | ||||
| "This enum indicates L2-only capability."; | ||||
| } | ||||
| enum "level-all" { | ||||
| description | ||||
| "This enum indicates capability for both levels."; | ||||
| } | ||||
| } | ||||
| default "level-all"; | ||||
| description | ||||
| "This type defines IS-IS level of an object."; | ||||
| typedef adj-state-type { | } | |||
| typedef adj-state-type { | ||||
| type enumeration { | type enumeration { | |||
| enum "up" { | enum "up" { | |||
| description | description | |||
| "This state describes that | "State indicates the adjacency is established."; | |||
| adjacency is established."; | } | |||
| } | enum "down" { | |||
| enum "down" { | description | |||
| description | "State indicates the adjacency is NOT established."; | |||
| "This state describes that | } | |||
| adjacency is NOT established."; | enum "init" { | |||
| } | description | |||
| enum "init" { | "State indicates the adjacency is establishing."; | |||
| description | } | |||
| "This state describes that | enum "failed" { | |||
| adjacency is establishing."; | description | |||
| } | "State indicates the adjacency is failed."; | |||
| enum "failed" { | } | |||
| description | } | |||
| "This state describes that | description | |||
| adjacency is failed."; | "This type defines states of an adjacency"; | |||
| } | } | |||
| } | ||||
| description | ||||
| "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 "Up state."; | |||
| "Up state."; | ||||
| } | } | |||
| enum "down" { | enum "down" { | |||
| description | description "Down state"; | |||
| "Down state"; | } | |||
| } | } | |||
| } | description | |||
| description | "This type defines the state 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"; | |||
| } | } | |||
| description | description | |||
| "This type defines a current IS-IS level."; | "This type defines the current IS-IS level."; | |||
| } | } | |||
| typedef lsp-id { | typedef lsp-id { | |||
| type string { | type string { | |||
| pattern | pattern | |||
| '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]' | '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]' | |||
| +'{4}\.[0-9][0-9]-[0-9][0-9]'; | +'{4}\.[0-9][0-9]-[0-9][0-9]'; | |||
| } | } | |||
| description | description | |||
| "This type defines IS-IS LSP ID using pattern, | "This type defines the IS-IS LSP ID format using a | |||
| system id looks like : 0143.0438.AeF0.02-01"; | pattern, An example LSP ID is 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 format."; | "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 | "This type defines the Subnetwork Point | |||
| of Attachement format."; | of Attachement (SNPA) 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 IS-IS system id using pattern, | "This type defines IS-IS system-id using pattern, | |||
| system id looks like : 0143.0438.AeF0"; | An example system-id is 0143.0438.AeF0"; | |||
| } | } | |||
| typedef wide-metric { | typedef wide-metric { | |||
| type uint32 { | type uint32 { | |||
| range "0 .. 16777215"; | range "0 .. 16777215"; | |||
| } | } | |||
| description | description | |||
| "This type defines wide style format | "This type defines wide style format of IS-IS metric."; | |||
| of IS-IS metric."; | } | |||
| } | ||||
| typedef std-metric { | typedef std-metric { | |||
| type uint8 { | type uint8 { | |||
| range "0 .. 63"; | range "0 .. 63"; | |||
| } | } | |||
| description | description | |||
| "This type defines old style format | "This type defines old style format of IS-IS metric."; | |||
| of IS-IS metric."; | } | |||
| } | ||||
| typedef mesh-group-state { | typedef mesh-group-state { | |||
| type enumeration { | type enumeration { | |||
| enum "meshinactive" { | enum "mesh-inactive" { | |||
| description | description | |||
| "Interface is not part of a mesh group."; | "Interface is not part of a mesh group."; | |||
| } | } | |||
| enum "meshset" { | enum "mesh-set" { | |||
| description | description | |||
| "Interface is part of a mesh group."; | "Interface is part of a mesh group."; | |||
| } | } | |||
| enum "meshblocked" { | enum "mesh-blocked" { | |||
| description | description | |||
| "LSPs must not be flooded over that interface."; | "LSPs must not be flooded over this interface."; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "This type describes meshgroup state of an interface"; | "This type describes mesh group state of an interface"; | |||
| } | } | |||
| /* Grouping definitions for configuration and ops state */ | /* Grouping definitions for configuration and ops state */ | |||
| grouping adjacency-state { | grouping adjacency-state { | |||
| container adjacencies { | container adjacencies { | |||
| config false; | config false; | |||
| list adjacency { | list adjacency { | |||
| leaf neighbor-systype { | leaf neighbor-sys-type { | |||
| type level; | type level; | |||
| description | description | |||
| "Type of neighboring system"; | "Level capability of neighboring system"; | |||
| } | } | |||
| leaf neighbor-sysid { | leaf neighbor-sysid { | |||
| type system-id; | type system-id; | |||
| description | description | |||
| "The system-id of the neighbor"; | "The system-id of the neighbor"; | |||
| } | } | |||
| leaf neighbor-extended-circuit-id { | leaf neighbor-extended-circuit-id { | |||
| type extended-circuit-id; | type extended-circuit-id; | |||
| description | description | |||
| "Circuit ID of the neighbor"; | "Circuit ID of the neighbor"; | |||
| } | } | |||
| leaf neighbor-snpa { | leaf neighbor-snpa { | |||
| type snpa; | type snpa; | |||
| description | description | |||
| "SNPA of the neighbor"; | "SNPA of the neighbor"; | |||
| } | } | |||
| leaf usage { | leaf usage { | |||
| type level; | type level; | |||
| description | description | |||
| "Define the level(s) activated on the adjacency. | "Define the level(s) activated on the adjacency. | |||
| On a p2p link this might be level 1 and 2, | On a p2p link this might be level 1 and 2, | |||
| but on a LAN, the usage will be level 1 | but on a LAN, the usage will be level 1 | |||
| between peers at L1 or level 2 between | between peers at level 1 or level 2 between | |||
| peers at L2."; | peers at level 2."; | |||
| } | } | |||
| leaf hold-timer { | leaf hold-timer { | |||
| type rt-types:timer-value-seconds16; | type rt-types:timer-value-seconds16; | |||
| units seconds; | units seconds; | |||
| description | description | |||
| "The holding time in seconds for this | "The holding time in seconds for this | |||
| adjacency. This value is based on | adjacency. This value is based on | |||
| received hello PDUs and the elapsed | received hello PDUs and the elapsed | |||
| time since receipt."; | time since receipt."; | |||
| } | } | |||
| leaf neighbor-priority { | leaf neighbor-priority { | |||
| type uint8 { | type uint8 { | |||
| range "0 .. 127"; | range "0 .. 127"; | |||
| } | } | |||
| description | description | |||
| "Priority of the neighboring IS for becoming | "Priority of the neighboring IS for becoming | |||
| the DIS."; | the DIS."; | |||
| } | } | |||
| leaf lastuptime { | leaf lastuptime { | |||
| type yang:timestamp; | type yang:timestamp; | |||
| description | description | |||
| "When the adjacency most recently entered | "When the adjacency most recently entered | |||
| state 'up', measured in hundredths of a | state 'up', measured in hundredths of a | |||
| second since the last reinitialization of | second since the last reinitialization of | |||
| the network management subsystem. | the network management subsystem. | |||
| The value is 0 if the adjacency has never | The value is 0 if the adjacency has never | |||
| been in state 'up'."; | been in state 'up'."; | |||
| } | } | |||
| leaf state { | leaf state { | |||
| type adj-state-type; | type adj-state-type; | |||
| description | description | |||
| "This leaf describes the state of the | "This leaf describes the state of the interface."; | |||
| interface."; | } | |||
| } | ||||
| description | description | |||
| "List of operational adjacencies."; | "List of operational adjacencies."; | |||
| } | } | |||
| description | description | |||
| "This container lists the adjacencies of | "This container lists the adjacencies of | |||
| the local node."; | the local node."; | |||
| } | } | |||
| description | description | |||
| "Adjacency state"; | "Adjacency state"; | |||
| } | } | |||
| grouping fast-reroute-global-state { | grouping fast-reroute-global-state { | |||
| container protected-routes { | container protected-routes { | |||
| config false; | config false; | |||
| list af-stats { | list af-stats { | |||
| key "af prefix alternate"; | key "af prefix alternate"; | |||
| leaf af { | leaf af { | |||
| type iana-rt-types:address-family; | type iana-rt-types:address-family; | |||
| description | description | |||
| "Address-family"; | "Address-family"; | |||
| } | } | |||
| leaf prefix { | leaf prefix { | |||
| type string; | type string; | |||
| description | description | |||
| "Protected prefix."; | "Protected prefix."; | |||
| } | } | |||
| leaf alternate { | leaf alternate { | |||
| type string; | type string; | |||
| description | description | |||
| "Alternate nexthop for the prefix."; | "Alternate nexthop for the prefix."; | |||
| } | } | |||
| leaf alternate-type { | leaf alternate-type { | |||
| type enumeration { | type enumeration { | |||
| enum equalcost { | enum equal-cost { | |||
| description | description | |||
| "ECMP alternate."; | "ECMP alternate."; | |||
| } | } | |||
| enum lfa { | enum lfa { | |||
| description | description | |||
| "LFA alternate."; | "LFA alternate."; | |||
| } | } | |||
| enum remote-lfa { | enum remote-lfa { | |||
| description | description | |||
| "Remote LFA alternate."; | "Remote LFA alternate."; | |||
| } | } | |||
| enum tunnel { | enum tunnel { | |||
| description | description | |||
| "Tunnel based alternate | "Tunnel based alternate | |||
| (like RSVP-TE or GRE)."; | (like RSVP-TE or GRE)."; | |||
| } | } | |||
| enum ti-lfa { | enum ti-lfa { | |||
| description | description | |||
| "TI LFA alternate."; | "TI-LFA alternate."; | |||
| } | } | |||
| enum mrt { | enum mrt { | |||
| description | description | |||
| "MRT alternate."; | "MRT alternate."; | |||
| } | } | |||
| enum other { | enum other { | |||
| description | description | |||
| "Unknown alternate type."; | "Unknown alternate type."; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "Type of alternate."; | "Type of alternate."; | |||
| } | ||||
| } | leaf best { | |||
| leaf best { | type boolean; | |||
| type boolean; | description | |||
| description | "Indicates if the alternate is the preferred."; | |||
| "describes if the alternate is the best one."; | } | |||
| } | leaf non-best-reason { | |||
| leaf non-best-reason { | type string; | |||
| type string; | description | |||
| description | ||||
| "Information field to describe why the alternate | "Information field to describe why the alternate | |||
| is not best."; | is not best."; | |||
| } | } | |||
| leaf protection-available { | leaf protection-available { | |||
| type bits { | type bits { | |||
| bit nodeprotect { | bit node-protect { | |||
| position 0; | position 0; | |||
| description | description | |||
| "Node protection available."; | "Node protection available."; | |||
| } | } | |||
| bit linkprotect { | bit link-protect { | |||
| position 1; | position 1; | |||
| description | description | |||
| "Link protection available."; | "Link protection available."; | |||
| } | } | |||
| bit srlgprotect { | bit srlg-protect { | |||
| position 2; | position 2; | |||
| description | description | |||
| "SRLG protection available."; | "SRLG protection available."; | |||
| } | } | |||
| bit downstreamprotect { | bit downstream-protect { | |||
| position 3; | position 3; | |||
| description | description | |||
| "Downstream protection available."; | "Downstream protection available."; | |||
| } | } | |||
| bit other { | bit other { | |||
| position 4; | position 4; | |||
| description | description | |||
| "Other protection available."; | "Other protection available."; | |||
| } | } | |||
| } | } | |||
| description | description "Protection provided by the alternate."; | |||
| "Describes protection provided by the alternate."; | } | |||
| } | leaf alternate-metric1 { | |||
| leaf alternate-metric1 { | type uint32; | |||
| type uint32; | description | |||
| description | "Metric from Point of Local Repair (PLR) to | |||
| "Metric from PLR to destination | destination through the alternate path."; | |||
| through the alternate path."; | } | |||
| leaf alternate-metric2 { | ||||
| } | type uint32; | |||
| leaf alternate-metric2 { | description | |||
| type uint32; | ||||
| description | ||||
| "Metric from PLR to the alternate node"; | "Metric from PLR to the alternate node"; | |||
| } | } | |||
| leaf alternate-metric3 { | leaf alternate-metric3 { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Metric from alternate node to the destination"; | "Metric from alternate node to the destination"; | |||
| } | } | |||
| description | description | |||
| "Per AF statistics."; | "Per-AF protected prefix statistics."; | |||
| } | } | |||
| description | description | |||
| "List of prefixes that are protected."; | "List of prefixes that are protected."; | |||
| } | } | |||
| container nonprotected-routes { | container unprotected-routes { | |||
| config false; | config false; | |||
| list af-stats { | list af-stats { | |||
| key "af prefix"; | key "af prefix"; | |||
| leaf af { | leaf af { | |||
| type iana-rt-types:address-family; | type iana-rt-types:address-family; | |||
| description | description "Address-family"; | |||
| "Address-family"; | } | |||
| } | leaf prefix { | |||
| leaf prefix { | type string; | |||
| type string; | description "Unprotected prefix."; | |||
| description | } | |||
| "Protected prefix."; | description | |||
| } | "Per AF unprotected prefix statistics."; | |||
| description | } | |||
| "Per AF statistics."; | description | |||
| } | ||||
| description | ||||
| "List of prefixes that are not protected."; | "List of prefixes that are not protected."; | |||
| } | } | |||
| list protection-statistics { | ||||
| key frr-protection-method; | ||||
| config false; | ||||
| leaf frr-protection-method { | ||||
| type string; | ||||
| description | ||||
| "Protection method used."; | ||||
| } | ||||
| list af-stats { | ||||
| key af; | ||||
| leaf af { | list protection-statistics { | |||
| type iana-rt-types:address-family; | key frr-protection-method; | |||
| config false; | ||||
| leaf frr-protection-method { | ||||
| type string; | ||||
| description "Protection method used."; | ||||
| } | ||||
| list af-stats { | ||||
| key af; | ||||
| description | leaf af { | |||
| "Address-family"; | type iana-rt-types: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 | description "Address-family"; | |||
| "Global protection statistics."; | } | |||
| } | leaf total-routes { | |||
| description | type uint32; | |||
| "IPFRR states."; | description "Total prefixes."; | |||
| } | ||||
| leaf unprotected-routes { | ||||
| type uint32; | ||||
| description | ||||
| "Total prefixes that are not protected."; | ||||
| } | ||||
| leaf protected-routes { | ||||
| type uint32; | ||||
| description | ||||
| "Total prefixes that are protected."; | ||||
| } | ||||
| leaf linkprotected-routes { | ||||
| type uint32; | ||||
| description | ||||
| "Total prefixes that are link protected."; | ||||
| } | ||||
| leaf nodeprotected-routes { | ||||
| type uint32; | ||||
| description | ||||
| "Total prefixes that are node protected."; | ||||
| } | ||||
| description | ||||
| "Per AF protected prefix statistics."; | ||||
| } | ||||
| } | description "Global protection statistics."; | |||
| grouping notification-instance-hdr { | } | |||
| description | description "IPFRR states."; | |||
| "This group describes common instance specific | } | |||
| data for notifications."; | ||||
| leaf routing-instance { | ||||
| type string; | ||||
| description | ||||
| "Describes the name of the routing-instance instance."; | ||||
| } | ||||
| leaf routing-protocol-name { | ||||
| type string; | ||||
| description | ||||
| "Describes the name of the IS-IS instance."; | ||||
| } | ||||
| leaf isis-level { | ||||
| type level; | ||||
| description | ||||
| "Describes the IS-IS level of the instance."; | ||||
| } | ||||
| } | ||||
| grouping notification-interface-hdr { | grouping notification-instance-hdr { | |||
| description | description | |||
| "This group describes common interface specific | "Instance specific IS-IS notification data grouping"; | |||
| data for notifications."; | leaf routing-instance { | |||
| leaf interface-name { | type string; | |||
| type string; | description "Name of the routing-instance instance."; | |||
| description | } | |||
| "Describes the name of the IS-IS interface."; | leaf routing-protocol-name { | |||
| } | type string; | |||
| leaf interface-level { | description "Name of the IS-IS instance."; | |||
| type level; | } | |||
| description | leaf isis-level { | |||
| "Describes the IS-IS level of the interface."; | type level; | |||
| } | description "IS-IS level of the instance."; | |||
| leaf extended-circuit-id { | } | |||
| type extended-circuit-id; | } | |||
| description | ||||
| "Describes the extended circuit-id of the interface."; | ||||
| } | ||||
| } | ||||
| grouping route-content { | grouping notification-interface-hdr { | |||
| description | description | |||
| "This group add isis-specific route properties."; | "Interface specific IS-IS notification data grouping"; | |||
| leaf metric { | leaf interface-name { | |||
| type uint32; | type string; | |||
| description | description "IS-IS interface name"; | |||
| "This leaf describes IS-IS metric of a route."; | } | |||
| } | leaf interface-level { | |||
| leaf-list tag { | type level; | |||
| type uint64; | description "IS-IS level of the interface."; | |||
| description | } | |||
| "This leaf describes list of tags associated | leaf extended-circuit-id { | |||
| with the route. The leaf describes both | type extended-circuit-id; | |||
| 32bits and 64bits tags."; | description "Eextended circuit-id of the interface."; | |||
| } | } | |||
| leaf route-type { | } | |||
| type enumeration { | ||||
| enum l2-up-internal { | ||||
| description "Level 2 internal route | ||||
| and not leaked to a lower level"; | ||||
| } | ||||
| enum l1-up-internal { | ||||
| description "Level 1 internal route | ||||
| and not leaked to a lower level"; | ||||
| } | ||||
| enum l2-up-external { | ||||
| description "Level 2 external route | ||||
| and not leaked to a lower level"; | ||||
| } | ||||
| enum l1-up-external { | ||||
| description "Level 1 external route | ||||
| and not leaked to a lower level"; | ||||
| } | ||||
| enum l2-down-internal { | ||||
| description "Level 2 internal route | ||||
| and leaked to a lower level"; | ||||
| } | ||||
| enum l1-down-internal { | ||||
| description "Level 1 internal route | ||||
| and leaked to a lower level"; | ||||
| } | ||||
| enum l2-down-external { | ||||
| description "Level 2 external route | ||||
| and leaked to a lower level"; | ||||
| } | ||||
| enum l1-down-external { | ||||
| description "Level 1 external route | ||||
| and leaked to a lower level"; | ||||
| } | ||||
| } | ||||
| description | ||||
| "This leaf describes the type of IS-IS route."; | ||||
| } | grouping route-content { | |||
| } | description | |||
| "IS-IS protocol-specific route properties grouping."; | ||||
| leaf metric { | ||||
| type uint32; | ||||
| description "IS-IS metric of a route."; | ||||
| } | ||||
| leaf-list tag { | ||||
| type uint64; | ||||
| description | ||||
| "List of tags associated with the route. The leaf | ||||
| describes both 32-bit and 64-bit tags."; | ||||
| } | ||||
| leaf route-type { | ||||
| type enumeration { | ||||
| enum l2-up-internal { | ||||
| description "Level 2 internal route | ||||
| and not leaked to a lower level"; | ||||
| } | ||||
| enum l1-up-internal { | ||||
| description "Level 1 internal route | ||||
| and not leaked to a lower level"; | ||||
| } | ||||
| enum l2-up-external { | ||||
| description "Level 2 external route | ||||
| and not leaked to a lower level"; | ||||
| } | ||||
| enum l1-up-external { | ||||
| description "Level 1 external route | ||||
| and not leaked to a lower level"; | ||||
| } | ||||
| enum l2-down-internal { | ||||
| description "Level 2 internal route | ||||
| and leaked to a lower level"; | ||||
| } | ||||
| enum l1-down-internal { | ||||
| description "Level 1 internal route | ||||
| and leaked to a lower level"; | ||||
| } | ||||
| enum l2-down-external { | ||||
| description "Level 2 external route | ||||
| and leaked to a lower level"; | ||||
| } | ||||
| enum l1-down-external { | ||||
| description "Level 1 external route | ||||
| and leaked to a lower level"; | ||||
| } | ||||
| } | ||||
| description "IS-IS route type."; | ||||
| } | ||||
| } | ||||
| grouping admin-control { | grouping admin-control { | |||
| leaf enable { | leaf enable { | |||
| if-feature admin-control; | if-feature admin-control; | |||
| type boolean; | type boolean; | |||
| default true; | default true; | |||
| description | description | |||
| "Control the administrative | "Control the administrative state."; | |||
| state."; | } | |||
| } | description | |||
| description | "Grouping for admin control."; | |||
| "Grouping for admin control."; | } | |||
| } | ||||
| grouping fast-reroute-global-cfg { | grouping fast-reroute-global-cfg { | |||
| description | description | |||
| "This group defines global | "IPFRR global configuration grouping"; | |||
| configuration of IPFRR."; | container lfa { | |||
| container lfa { | if-feature lfa; | |||
| if-feature lfa; | description | |||
| description | "This container may be augmented with global | |||
| "This container may be | parameters for LFA. Creating the container has no | |||
| augmented with global parameters | effect on LFA activation."; | |||
| for LFA. | } | |||
| Creating the container has no effect on | } | |||
| LFA activation."; | ||||
| } | ||||
| } | ||||
| grouping fast-reroute-if-cfg { | grouping fast-reroute-if-cfg { | |||
| description | description | |||
| "This group defines interface | "IPFRR interface configuration grouping"; | |||
| 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 1 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 rt-types:timer-value-milliseconds; | 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 rt-types:timer-value-milliseconds; | 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 rt-types:timer-value-milliseconds; | 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 rt-types:timer-value-milliseconds; | 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 rt-types:timer-value-milliseconds; | 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 | ||||
| "Grouping for IETF SPF delay configuration."; | ||||
| } | ||||
| grouping ietf-spf-delay-state { | description | |||
| leaf current-state { | "Grouping for IETF SPF delay configuration."; | |||
| type enumeration { | } | |||
| enum "quiet" { | ||||
| description "QUIET state"; | ||||
| } | grouping ietf-spf-delay-state { | |||
| enum "short-wait" { | leaf current-state { | |||
| description "SHORT_WAIT state"; | type enumeration { | |||
| } | enum "quiet" { | |||
| enum "long-wait" { | description "QUIET state"; | |||
| description "LONG_WAIT state"; | } | |||
| } | enum "short-wait" { | |||
| } | description "SHORT_WAIT state"; | |||
| config false; | } | |||
| description | enum "long-wait" { | |||
| description "LONG_WAIT state"; | ||||
| } | ||||
| } | ||||
| config false; | ||||
| description | ||||
| "Current SPF backoff algorithm state."; | "Current SPF backoff algorithm state."; | |||
| } | } | |||
| leaf remaining-time-to-learn { | leaf remaining-time-to-learn { | |||
| type rt-types:timer-value-milliseconds; | type rt-types:timer-value-milliseconds; | |||
| units "msec"; | units "msec"; | |||
| config false; | config false; | |||
| description | description | |||
| "Remaining time until time-to-learn timer fires."; | "Remaining time until time-to-learn timer fires."; | |||
| } | } | |||
| leaf remaining-hold-down { | leaf remaining-hold-down { | |||
| type rt-types:timer-value-milliseconds; | type rt-types:timer-value-milliseconds; | |||
| units "msec"; | units "msec"; | |||
| config false; | config false; | |||
| description | description | |||
| "Remaining time until hold-down timer fires."; | "Remaining time until hold-down timer fires."; | |||
| } | } | |||
| leaf last-event-received { | leaf last-event-received { | |||
| type yang:timestamp; | type yang:timestamp; | |||
| config false; | config false; | |||
| description | description | |||
| "Time of last IGP event received"; | "Time of last IGP event received"; | |||
| } | } | |||
| leaf next-spf-time { | leaf next-spf-time { | |||
| type yang:timestamp; | type yang:timestamp; | |||
| config false; | config false; | |||
| description | description | |||
| "Time when next SPF has been scheduled."; | "Time when next SPF has been scheduled."; | |||
| } | } | |||
| leaf last-spf-time { | leaf last-spf-time { | |||
| type yang:timestamp; | type yang:timestamp; | |||
| config false; | config false; | |||
| description | description | |||
| "Time of last SPF computation."; | "Time of last SPF computation."; | |||
| } | } | |||
| description | description | |||
| "Grouping for IETF SPF delay operational states."; | "Grouping for IETF SPF delay operational states."; | |||
| } | } | |||
| grouping local-rib { | grouping local-rib { | |||
| description "Local-rib grouping."; | description "Local-rib grouping."; | |||
| container local-rib { | container local-rib { | |||
| config false; | config false; | |||
| description "Local-rib."; | description "Local-rib."; | |||
| list route { | list route { | |||
| key "prefix"; | key "prefix"; | |||
| description "Routes"; | description "List of IS-IS local RIB Routes"; | |||
| leaf prefix { | leaf prefix { | |||
| type inet:ip-prefix; | type inet:ip-prefix; | |||
| description "Destination prefix."; | description "Destination prefix."; | |||
| } | } | |||
| container next-hops { | container next-hops { | |||
| description "All next hops for the route."; | description "All next hops for the route."; | |||
| list next-hop { | list next-hop { | |||
| key "next-hop"; | key "next-hop"; | |||
| description "List of next hop for the route"; | description "List of next hop for the route"; | |||
| leaf outgoing-interface { | leaf outgoing-interface { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| description | description | |||
| "Name of the outgoing interface."; | "Name of the outgoing interface."; | |||
| } | } | |||
| leaf next-hop { | leaf next-hop { | |||
| type inet:ip-address; | type inet:ip-address; | |||
| description "Nexthop address."; | description "Nexthop address."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| leaf metric { | leaf metric { | |||
| type uint32; | type uint32; | |||
| description "Metric for this route."; | description "Metric for this route."; | |||
| } | } | |||
| leaf level { | leaf level { | |||
| type level-number; | type level-number; | |||
| description "Level number for this route."; | description "Level number for this route."; | |||
| } | } | |||
| leaf route-tag { | leaf route-tag { | |||
| type uint32; | type uint32; | |||
| description "Route tag for this route."; | description "Route tag for this route."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping isis-node-tag-cfg { | grouping isis-node-tag-cfg { | |||
| description | description "IS-IS node tag config."; | |||
| "IS-IS 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; | leaf tag { | |||
| leaf tag { | type uint32; | |||
| type uint32; | description | |||
| description | ||||
| "Node tag value."; | "Node tag value."; | |||
| } | } | |||
| description | description | |||
| "List of tags."; | "List of tags."; | |||
| } | } | |||
| description | ||||
| "Container for node tags."; | ||||
| } | ||||
| } | ||||
| grouping authentication-global-cfg { | ||||
| choice authentication-type { | ||||
| case key-chain { | ||||
| if-feature key-chain; | ||||
| leaf key-chain { | ||||
| type key-chain:key-chain-ref; | ||||
| description | ||||
| "Reference to a key-chain."; | ||||
| } | ||||
| } | ||||
| case password { | ||||
| leaf key { | ||||
| type string; | ||||
| description | ||||
| "This leaf describes the | ||||
| authentication key."; | ||||
| } | ||||
| leaf crypto-algorithm { | ||||
| type identityref { | ||||
| base key-chain:crypto-algorithm; | ||||
| } | ||||
| description | ||||
| "Cryptographic algorithm associated with key."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "Choice of authentication."; | ||||
| } | ||||
| description | ||||
| "Grouping for global auth config."; | ||||
| } | ||||
| grouping metric-type-global-cfg { | ||||
| leaf value { | ||||
| type enumeration { | ||||
| 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"; | ||||
| } | ||||
| } | ||||
| default wide-only; | ||||
| 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 | description | |||
| "Grouping for global metric style config."; | "Container for node tags."; | |||
| } | } | |||
| } | ||||
| grouping default-metric-global-cfg { | grouping authentication-global-cfg { | |||
| leaf value { | choice authentication-type { | |||
| type wide-metric; | case key-chain { | |||
| default "10"; | if-feature key-chain; | |||
| description | leaf key-chain { | |||
| "Value of the metric"; | type key-chain:key-chain-ref; | |||
| } | description | |||
| description | "Reference to a key-chain."; | |||
| "Grouping for global default metric config."; | } | |||
| } | } | |||
| case password { | ||||
| grouping overload-global-cfg { | leaf key { | |||
| leaf status { | type string; | |||
| type boolean; | description | |||
| default false; | "This leaf specifies the authentication key."; | |||
| description | } | |||
| "This leaf defines the overload status."; | leaf crypto-algorithm { | |||
| } | type identityref { | |||
| description | base key-chain:crypto-algorithm; | |||
| "Grouping for overload bit config."; | } | |||
| } | description | |||
| "Cryptographic algorithm associated with key."; | ||||
| } | ||||
| } | ||||
| description "Choice of authentication."; | ||||
| } | ||||
| description "Grouping for global authentication config."; | ||||
| } | ||||
| grouping overload-max-metric-global-cfg { | grouping metric-type-global-cfg { | |||
| leaf timeout { | leaf value { | |||
| type rt-types:timer-value-seconds16; | type enumeration { | |||
| units "seconds"; | enum wide-only { | |||
| description | description | |||
| "This leaf defines the timeout in seconds | "Advertise new metric style only (RFC5305)"; | |||
| of the overload condition."; | } | |||
| } | enum old-only { | |||
| description | description | |||
| "Grouping for overload-max-metric config."; | "Advertise old metric style only (RFC1195)"; | |||
| } | } | |||
| enum both { | ||||
| description "Advertise both metricstyles"; | ||||
| } | ||||
| } | ||||
| default wide-only; | ||||
| description | ||||
| "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, | ||||
| - both means that both are advertised. | ||||
| This leaf is only affecting IPv4 metrics."; | ||||
| } | ||||
| description | ||||
| "Grouping for global metric style config."; | ||||
| } | ||||
| grouping route-preference-global-cfg { | grouping default-metric-global-cfg { | |||
| choice granularity { | leaf value { | |||
| case detail { | type wide-metric; | |||
| leaf internal { | default "10"; | |||
| type uint8; | description "Value of the metric"; | |||
| description | } | |||
| "This leaf defines the protocol | description | |||
| preference for internal routes."; | "Global default metric config grouping."; | |||
| } | } | |||
| leaf external { | ||||
| type uint8; | ||||
| description | ||||
| "This leaf defines the protocol | ||||
| preference for external routes."; | ||||
| } | ||||
| } | ||||
| case coarse { | ||||
| leaf default { | ||||
| type uint8; | ||||
| description | ||||
| "This leaf defines the protocol | ||||
| preference for all IS-IS routes."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "Choice for implementation of route preference."; | ||||
| } | ||||
| description | ||||
| "This grouping defines how route preference is configured."; | ||||
| } | ||||
| grouping hello-authentication-cfg { | grouping overload-global-cfg { | |||
| choice authentication-type { | leaf status { | |||
| case key-chain { | type boolean; | |||
| if-feature key-chain; | default false; | |||
| leaf key-chain { | description | |||
| type key-chain:key-chain-ref; | "This leaf specifies the overload status."; | |||
| description | } | |||
| "Reference to a key-chain."; | description "Grouping for overload bit config."; | |||
| } | } | |||
| } | ||||
| case password { | ||||
| leaf key { | ||||
| type string; | ||||
| description | ||||
| "This leaf describes the | ||||
| authentication key."; | ||||
| } | ||||
| leaf crypto-algorithm { | ||||
| type identityref { | ||||
| base key-chain:crypto-algorithm; | ||||
| } | ||||
| description | ||||
| "Cryptographic algorithm associated with key."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "Choice of authentication."; | ||||
| } | ||||
| description | ||||
| "Grouping for hello authentication."; | ||||
| } | ||||
| grouping hello-interval-cfg { | grouping overload-max-metric-global-cfg { | |||
| leaf value { | leaf timeout { | |||
| type rt-types:timer-value-seconds16; | type rt-types:timer-value-seconds16; | |||
| units "seconds"; | units "seconds"; | |||
| default 10; | description | |||
| description | "Timeout (in seconds) of the overload condition."; | |||
| "This leaf defines the interval of | } | |||
| hello messages."; | description | |||
| } | "Overload maximum metric configuration grouping"; | |||
| } | ||||
| description | grouping route-preference-global-cfg { | |||
| "Interval between | choice granularity { | |||
| hello messages."; | case detail { | |||
| leaf internal { | ||||
| type uint8; | ||||
| description | ||||
| "Protocol preference for internal routes."; | ||||
| } | ||||
| leaf external { | ||||
| type uint8; | ||||
| description | ||||
| "Protocol preference for external routes."; | ||||
| } | ||||
| } | ||||
| case coarse { | ||||
| leaf default { | ||||
| type uint8; | ||||
| description | ||||
| "Protocol preference for all IS-IS routes."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "Choice for implementation of route preference."; | ||||
| } | ||||
| description | ||||
| "Global route preference grouping"; | ||||
| } | ||||
| } | grouping hello-authentication-cfg { | |||
| choice authentication-type { | ||||
| case key-chain { | ||||
| if-feature key-chain; | ||||
| leaf key-chain { | ||||
| type key-chain:key-chain-ref; | ||||
| description "Reference to a key-chain."; | ||||
| } | ||||
| } | ||||
| case password { | ||||
| leaf key { | ||||
| type string; | ||||
| description "Authentication key specification"; | ||||
| } | ||||
| leaf crypto-algorithm { | ||||
| type identityref { | ||||
| base key-chain:crypto-algorithm; | ||||
| } | ||||
| description | ||||
| "Cryptographic algorithm associated with key."; | ||||
| } | ||||
| } | ||||
| description "Choice of authentication."; | ||||
| } | ||||
| description "Grouping for hello authentication."; | ||||
| } | ||||
| grouping hello-interval-cfg { | ||||
| leaf value { | ||||
| type rt-types:timer-value-seconds16; | ||||
| units "seconds"; | ||||
| default 10; | ||||
| description | ||||
| "Interval (in seconds) between successive hello | ||||
| messages."; | ||||
| } | ||||
| grouping hello-multiplier-cfg { | description "Interval between hello messages."; | |||
| leaf value { | } | |||
| type uint16; | ||||
| default 3; | ||||
| description | ||||
| "This leaf defines the number of | ||||
| hello failed to be received before | ||||
| 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 hello-multiplier-cfg { | |||
| leaf value { | leaf value { | |||
| type uint8 { | type uint16; | |||
| range "0 .. 127"; | default 3; | |||
| } | description | |||
| default 64; | "Number of missed hello messages prior to | |||
| description | declaring the adjacency down."; | |||
| "This leaf describes the priority of | } | |||
| the interface | description | |||
| for DIS election."; | "Number of missed hello messages prior to | |||
| } | adjacency down grouping."; | |||
| } | ||||
| description | grouping priority-cfg { | |||
| "This grouping leaf describes the | leaf value { | |||
| priority of | type uint8 { | |||
| the interface | range "0 .. 127"; | |||
| for DIS election."; | } | |||
| } | default 64; | |||
| description | ||||
| "Priority of interface for DIS election."; | ||||
| } | ||||
| grouping metric-cfg { | description "Interface DIS election priority grouping"; | |||
| leaf value { | } | |||
| type wide-metric; | ||||
| default "10"; | ||||
| description | ||||
| "Metric value."; | ||||
| } | ||||
| description | ||||
| "Grouping for interface metric"; | ||||
| } | ||||
| grouping lfa-if-cfg { | grouping metric-cfg { | |||
| leaf candidate-disabled { | leaf value { | |||
| type boolean; | type wide-metric; | |||
| default false; | default "10"; | |||
| description | description "Metric value."; | |||
| "Prevent the interface to be used as backup."; | } | |||
| } | description "Interface metric grouping"; | |||
| leaf enable { | } | |||
| type boolean; | grouping lfa-if-cfg { | |||
| default false; | leaf candidate-disabled { | |||
| description | type boolean; | |||
| "Activates LFA. | default false; | |||
| This model assumes activation | description | |||
| of per-prefix LFA."; | "Prevent the interface to be used as backup."; | |||
| } | } | |||
| leaf enable { | ||||
| type boolean; | ||||
| default false; | ||||
| description | ||||
| "LFA Activation - this model assumes activation | ||||
| of per-prefix LFA."; | ||||
| } | ||||
| container remote-lfa { | container remote-lfa { | |||
| if-feature remote-lfa; | if-feature remote-lfa; | |||
| leaf enable { | leaf enable { | |||
| type boolean; | type boolean; | |||
| default false; | default false; | |||
| description | description | |||
| "Activates rLFA."; | "Activates rLFA."; | |||
| } | } | |||
| description | description "Remote LFA configuration."; | |||
| "remote LFA configuration."; | } | |||
| } | description "Grouping for LFA interface configuration"; | |||
| description | } | |||
| "Grouping for LFA | ||||
| interface configuration"; | ||||
| } | ||||
| grouping isis-global-cfg { | grouping isis-global-cfg { | |||
| description | description "IS-IS global configuration grouping"; | |||
| "Defines the IS-IS 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 | |||
| "This leaf describes the type of IS-IS node. | "Level of an IS-IS node - can be level-1-only, | |||
| A node can be level-1-only, level-2-only | level-2-only or level-1-2."; | |||
| or level-1-2. | } | |||
| "; | ||||
| } | ||||
| leaf system-id { | leaf system-id { | |||
| type system-id; | type system-id; | |||
| description | description "System-id of the node."; | |||
| "This leaf defines the system-id of the node."; | } | |||
| } | ||||
| leaf maximum-area-addresses { | leaf maximum-area-addresses { | |||
| if-feature maximum-area-addresses; | if-feature maximum-area-addresses; | |||
| type uint8; | type uint8; | |||
| default 3; | default 3; | |||
| description | description "Maximum areas supported."; | |||
| "Defines the maximum areas supported."; | } | |||
| } | ||||
| leaf-list area-address { | leaf-list area-address { | |||
| type area-address; | type area-address; | |||
| description | description | |||
| "List of areas supported by the | "List of areas supported by the protocol instance."; | |||
| protocol instance."; | } | |||
| } | ||||
| container mpls { | container mpls { | |||
| leaf ipv4-router-id { | leaf ipv4-router-id { | |||
| if-feature ipv4-router-id; | if-feature ipv4-router-id; | |||
| type inet:ipv4-address; | type inet:ipv4-address; | |||
| description | description | |||
| "Router ID value that would be used in | "Router ID value that would be used in TLV 134."; | |||
| TLV 134."; | } | |||
| } | leaf ipv6-router-id { | |||
| leaf ipv6-router-id { | if-feature ipv6-router-id; | |||
| if-feature ipv6-router-id; | type inet:ipv6-address; | |||
| type inet:ipv6-address; | description | |||
| description | "Router ID value that would be used in TLV 140."; | |||
| "Router ID value that would be used in | } | |||
| TLV 140."; | container ldp { | |||
| } | container igp-sync { | |||
| container ldp { | if-feature ldp-igp-sync; | |||
| container igp-sync { | description | |||
| if-feature ldp-igp-sync; | "This container may be augmented with global | |||
| description | parameters for igp-ldp-sync."; | |||
| "This container may be augmented | } | |||
| with global parameters for igp-ldp-sync."; | description "LDP configuration."; | |||
| } | } | |||
| description | description "MPLS configuration"; | |||
| "LDP related configuration."; | } | |||
| } | container auto-cost { | |||
| description | if-feature auto-cost; | |||
| "This container handles mpls config."; | leaf reference-bandwidth { | |||
| } | type uint32; | |||
| container auto-cost { | units "bps"; | |||
| if-feature auto-cost; | description "Bandwidth for calculating metric."; | |||
| leaf reference-bandwidth { | } | |||
| type uint32; | leaf enable { | |||
| units "bps"; | type boolean; | |||
| description | default false; | |||
| "This leaf defines the bandwidth for calculating | description "Enable/disable auto-cost."; | |||
| metric."; | } | |||
| } | description "Auto-cost configuration."; | |||
| leaf enable { | ||||
| type boolean; | ||||
| default false; | ||||
| description | ||||
| "Enable/disable auto-cost."; | ||||
| } | ||||
| description | ||||
| "This container defines the auto-cost configuration."; | ||||
| } | ||||
| leaf lsp-mtu { | ||||
| type uint16; | ||||
| units "bytes"; | ||||
| default 1492; | ||||
| description | ||||
| "This leaf describes the maximum size of a | ||||
| LSP PDU in bytes."; | ||||
| } | ||||
| leaf lsp-lifetime { | ||||
| type uint16 { | ||||
| range "1..65535"; | ||||
| } | ||||
| units "seconds"; | ||||
| description | ||||
| "This leaf describes the lifetime of the router | ||||
| LSP in seconds."; | ||||
| } | ||||
| leaf lsp-refresh { | ||||
| if-feature lsp-refresh; | ||||
| type rt-types:timer-value-seconds16; | ||||
| units "seconds"; | ||||
| description | ||||
| "This leaf describes the refresh interval of the | ||||
| router LSP in seconds."; | ||||
| } | ||||
| container graceful-restart { | ||||
| if-feature graceful-restart; | ||||
| leaf enable { | ||||
| type boolean; | ||||
| default false; | ||||
| description | ||||
| "Control enabling the feature."; | ||||
| } | ||||
| leaf restart-interval { | ||||
| type rt-types:timer-value-seconds16; | ||||
| units "seconds"; | ||||
| description | ||||
| "Interval in seconds to attempt graceful restart prior | ||||
| to failing"; | ||||
| } | ||||
| leaf helper-enable { | ||||
| type boolean; | ||||
| default true; | ||||
| description | ||||
| "If enabled, the local router can act as restart helper."; | ||||
| } | ||||
| description | ||||
| "This container activates graceful restart."; | ||||
| } | ||||
| container nsr { | } | |||
| if-feature nsr; | leaf lsp-mtu { | |||
| description | type uint16; | |||
| "Non-Stop Routing (NSR) config state."; | units "bytes"; | |||
| leaf enable { | default 1492; | |||
| type boolean; | description | |||
| default false; | "Maximum size of an LSP PDU in bytes."; | |||
| description | } | |||
| "Enable/Disable NSR."; | leaf lsp-lifetime { | |||
| } | type uint16 { | |||
| } | range "1..65535"; | |||
| } | ||||
| units "seconds"; | ||||
| description | ||||
| "Lifetime of the router's LSPs in seconds."; | ||||
| } | ||||
| leaf lsp-refresh { | ||||
| if-feature lsp-refresh; | ||||
| type rt-types:timer-value-seconds16; | ||||
| units "seconds"; | ||||
| description | ||||
| "Refresh interval of the router's LSPs in seconds."; | ||||
| } | ||||
| container graceful-restart { | ||||
| if-feature graceful-restart; | ||||
| leaf enable { | ||||
| type boolean; | ||||
| default false; | ||||
| description "Enable graceful restart."; | ||||
| } | ||||
| leaf restart-interval { | ||||
| type rt-types:timer-value-seconds16; | ||||
| units "seconds"; | ||||
| description | ||||
| "Interval (in seconds) to attempt graceful restart prior | ||||
| to failure."; | ||||
| } | ||||
| leaf helper-enable { | ||||
| type boolean; | ||||
| default true; | ||||
| description | ||||
| "Enable local IS-IS router as graceful restart helper."; | ||||
| } | ||||
| description "Graceful-Restart Configuration."; | ||||
| } | ||||
| uses isis-node-tag-cfg; | container nsr { | |||
| if-feature nsr; | ||||
| description "Non-Stop Routing (NSR) configuration."; | ||||
| leaf enable { | ||||
| type boolean; | ||||
| default false; | ||||
| description "Enable/Disable Non-Stop Routing (NSR)."; | ||||
| } | ||||
| } | ||||
| container authentication { | uses isis-node-tag-cfg; | |||
| uses authentication-global-cfg; | ||||
| container level-1 { | container authentication { | |||
| uses authentication-global-cfg; | uses authentication-global-cfg; | |||
| description "level-1 specific cfg"; | ||||
| } | ||||
| container level-2 { | ||||
| uses authentication-global-cfg; | ||||
| description "level-2 specific cfg"; | ||||
| } | ||||
| description "authentication global cfg. | ||||
| It covers both LSPs and SNPs."; | ||||
| } | ||||
| container metric-type { | ||||
| uses metric-type-global-cfg; | ||||
| container level-1 { | ||||
| uses metric-type-global-cfg; | ||||
| description "level-1 specific cfg"; | ||||
| } | ||||
| container level-2 { | ||||
| uses metric-type-global-cfg; | ||||
| description "level-2 specific cfg"; | ||||
| } | ||||
| description "Metric style global cfg."; | ||||
| } | ||||
| container default-metric { | container level-1 { | |||
| uses default-metric-global-cfg; | uses authentication-global-cfg; | |||
| container level-1 { | description "level-1 specific configuration"; | |||
| uses default-metric-global-cfg; | } | |||
| description "level-1 specific cfg"; | container level-2 { | |||
| } | uses authentication-global-cfg; | |||
| container level-2 { | description "level-2 specific configuration"; | |||
| uses default-metric-global-cfg; | } | |||
| description "level-2 specific cfg"; | description "Authentication global configuration for | |||
| } | both LSPs and SNPs."; | |||
| description "Default metric global cfg."; | } | |||
| } | ||||
| container afs { | container metric-type { | |||
| if-feature nlpid-control; | uses metric-type-global-cfg; | |||
| list af { | container level-1 { | |||
| key af; | uses metric-type-global-cfg; | |||
| leaf af { | description "level-1 specific configuration"; | |||
| type iana-rt-types:address-family; | } | |||
| container level-2 { | ||||
| uses metric-type-global-cfg; | ||||
| description "level-2 specific configuration"; | ||||
| } | ||||
| description "Metric style global configuration"; | ||||
| } | ||||
| description | container default-metric { | |||
| "Address-family"; | uses default-metric-global-cfg; | |||
| } | container level-1 { | |||
| leaf enable { | uses default-metric-global-cfg; | |||
| type boolean; | description "level-1 specific configuration"; | |||
| description | } | |||
| "Describes the activation state of the | container level-2 { | |||
| AF."; | uses default-metric-global-cfg; | |||
| } | description "level-2 specific configuration"; | |||
| description | } | |||
| "This list permits activation | description "Default metric global configuration"; | |||
| of new address families."; | } | |||
| } | ||||
| description | ||||
| "Container for address-families"; | ||||
| } | container afs { | |||
| if-feature nlpid-control; | ||||
| list af { | ||||
| key af; | ||||
| leaf af { | ||||
| type iana-rt-types:address-family; | ||||
| description "Address-family"; | ||||
| } | ||||
| leaf enable { | ||||
| type boolean; | ||||
| description "Activate the address family."; | ||||
| } | ||||
| description | ||||
| "List of address families and whether or not they | ||||
| are activated."; | ||||
| } | ||||
| description "Address Family configuration"; | ||||
| } | ||||
| container preference { | container preference { | |||
| uses route-preference-global-cfg; | uses route-preference-global-cfg; | |||
| description | description "Router preference configuration for IS-IS | |||
| "This container defines the protocol preference."; | protocol instance route installation"; | |||
| } | } | |||
| container overload { | container overload { | |||
| uses overload-global-cfg; | uses overload-global-cfg; | |||
| description | description "Router protocol instance overload state | |||
| "This container describes if the router is | configuration"; | |||
| 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 | "Router protocol instance overload maximum | |||
| set to overload state using max-metric | metric advertisement configuration."; | |||
| advertisement."; | } | |||
| } | } | |||
| } | ||||
| grouping isis-global-topologies-cfg { | grouping isis-global-topologies-cfg { | |||
| description | description "Per-topology configuration"; | |||
| "Per topology config."; | container default-metric { | |||
| container default-metric { | uses default-metric-global-cfg; | |||
| uses default-metric-global-cfg; | container level-1 { | |||
| container level-1 { | uses default-metric-global-cfg; | |||
| uses default-metric-global-cfg; | description "level-1 specific configuration"; | |||
| description "level-1 specific cfg"; | } | |||
| } | container level-2 { | |||
| container level-2 { | uses default-metric-global-cfg; | |||
| uses default-metric-global-cfg; | description "level-2 specific configuration"; | |||
| description "level-2 specific cfg"; | } | |||
| } | description "Default metric per-topology configuration"; | |||
| description "Default metric per | } | |||
| topology cfg."; | uses isis-node-tag-cfg; | |||
| } | } | |||
| uses isis-node-tag-cfg; | ||||
| } | ||||
| grouping isis-if-cfg { | grouping isis-if-cfg { | |||
| description | description "Interface configuration grouping"; | |||
| "Grouping for interface cfg."; | leaf level-type { | |||
| type level; | ||||
| default "level-all"; | ||||
| description "IS-IS level of the interface."; | ||||
| } | ||||
| leaf lsp-pacing-interval { | ||||
| type rt-types:timer-value-milliseconds; | ||||
| units "milliseconds"; | ||||
| default 33; | ||||
| description | ||||
| "Interval (in milli-seconds) between LSP | ||||
| transmissions."; | ||||
| } | ||||
| leaf lsp-retransmit-interval { | ||||
| type rt-types:timer-value-seconds16; | ||||
| units "seconds"; | ||||
| description | ||||
| "Interval (in seconds) between LSP | ||||
| retransmissions."; | ||||
| } | ||||
| leaf passive { | ||||
| type boolean; | ||||
| default "false"; | ||||
| description | ||||
| "Indicates whetherthe interface is in passive mode (IS-IS | ||||
| not running but network is advertised)."; | ||||
| } | ||||
| leaf csnp-interval { | ||||
| type rt-types:timer-value-seconds16; | ||||
| units "seconds"; | ||||
| default 10; | ||||
| description | ||||
| "Interval (in seconds) between CSNP messages."; | ||||
| } | ||||
| container hello-padding { | ||||
| leaf enable { | ||||
| type boolean; | ||||
| default "true"; | ||||
| description | ||||
| "IS-IS Hello-padding activation - enabled by default."; | ||||
| } | ||||
| description "IS-IS hello padding configuration."; | ||||
| } | ||||
| leaf mesh-group-enable { | ||||
| type mesh-group-state; | ||||
| description "IS-IS interface mesh-group state"; | ||||
| } | ||||
| leaf mesh-group { | ||||
| when "../mesh-group-enable = 'mesh-set'" { | ||||
| description | ||||
| "Only valid when mesh-group-enable equals meshset"; | ||||
| } | ||||
| type uint8; | ||||
| description "IS-IS interface mesh-group ID."; | ||||
| } | ||||
| leaf interface-type { | ||||
| type interface-type; | ||||
| default "broadcast"; | ||||
| description | ||||
| "Type of adjacency to be established on the interface. This | ||||
| dictates the type of hello messages that are used."; | ||||
| } | ||||
| leaf level-type { | uses admin-control; | |||
| type level; | ||||
| default "level-all"; | ||||
| description | ||||
| "This leaf defines the associated IS-IS | ||||
| level of the interface."; | ||||
| } | ||||
| leaf lsp-pacing-interval { | ||||
| type rt-types:timer-value-milliseconds; | ||||
| units "milliseconds"; | ||||
| default 33; | ||||
| description | ||||
| "This leaf defines the interval between | ||||
| LSP transmissions in milli-seconds"; | ||||
| } | ||||
| leaf lsp-retransmit-interval { | ||||
| type rt-types:timer-value-seconds16; | ||||
| units "seconds"; | ||||
| description | ||||
| "This leaf defines the interval between | ||||
| retransmission of LSP"; | ||||
| } | ||||
| leaf passive { | ||||
| type boolean; | ||||
| default "false"; | ||||
| description | ||||
| "This leaf defines if interface is in | ||||
| passive mode (IS-IS not running, | ||||
| but network is advertised)."; | ||||
| } | ||||
| leaf csnp-interval { | ||||
| type rt-types:timer-value-seconds16; | ||||
| units "seconds"; | ||||
| default 10; | ||||
| description | ||||
| "This leaf defines the interval of CSNP | ||||
| messages."; | ||||
| } | ||||
| container hello-padding { | ||||
| leaf enable { | ||||
| type boolean; | ||||
| default "true"; | ||||
| description | ||||
| "Status of Hello-padding activation. | ||||
| By default, the implementation shall | ||||
| pad HELLOs."; | ||||
| } | ||||
| description | ||||
| "This container handles IS-IS hello padding | ||||
| configuration."; | ||||
| } | ||||
| leaf mesh-group-enable { | ||||
| type mesh-group-state; | ||||
| description | ||||
| "Describes the mesh group state of | ||||
| the interface."; | ||||
| } | ||||
| leaf mesh-group { | ||||
| when "../mesh-group-enable = 'meshset'" { | ||||
| description | ||||
| "Only valid when mesh-group-enable | ||||
| equals to meshset"; | ||||
| } | ||||
| type uint8; | ||||
| description | ||||
| "Describes the mesh group ID of | ||||
| the interface."; | ||||
| } | ||||
| leaf interface-type { | ||||
| type interface-type; | ||||
| default "broadcast"; | ||||
| description | ||||
| "This leaf defines the type of adjacency | ||||
| to be established on the interface. | ||||
| This is affecting the type of hello | ||||
| message that would be used."; | ||||
| } | ||||
| uses admin-control; | leaf-list tag { | |||
| if-feature prefix-tag; | ||||
| type uint32; | ||||
| description | ||||
| "List of tags associated with the interface."; | ||||
| } | ||||
| leaf-list tag64 { | ||||
| if-feature prefix-tag64; | ||||
| type uint64; | ||||
| description | ||||
| "List of 64-bit tags associated with the interface."; | ||||
| } | ||||
| leaf node-flag { | ||||
| if-feature node-flag; | ||||
| type boolean; | ||||
| default false; | ||||
| description | ||||
| "Set prefix as a node representative prefix."; | ||||
| } | ||||
| container hello-authentication { | ||||
| uses hello-authentication-cfg; | ||||
| container level-1 { | ||||
| uses hello-authentication-cfg; | ||||
| description "level-1 specific configuration"; | ||||
| } | ||||
| container level-2 { | ||||
| uses hello-authentication-cfg; | ||||
| description "level-2 specific configuration"; | ||||
| } | ||||
| description | ||||
| "Authentication type to be used in hello messages."; | ||||
| } | ||||
| container hello-interval { | ||||
| uses hello-interval-cfg; | ||||
| container level-1 { | ||||
| uses hello-interval-cfg; | ||||
| description "level-1 specific configuration"; | ||||
| } | ||||
| container level-2 { | ||||
| uses hello-interval-cfg; | ||||
| description "level-2 specific configuration"; | ||||
| } | ||||
| description "Interval between hello messages."; | ||||
| } | ||||
| container hello-multiplier { | ||||
| uses hello-multiplier-cfg; | ||||
| container level-1 { | ||||
| uses hello-multiplier-cfg; | ||||
| description "level-1 specific configuration"; | ||||
| } | ||||
| container level-2 { | ||||
| uses hello-multiplier-cfg; | ||||
| description "level-2 specific configuration"; | ||||
| } | ||||
| description "Hello multiplier configuration."; | ||||
| } | ||||
| container priority { | ||||
| must '../interface-type = "broadcast"' { | ||||
| error-message | ||||
| "Priority only applies to broadcast interfaces."; | ||||
| description "Check for broadcast interface."; | ||||
| } | ||||
| uses priority-cfg; | ||||
| container level-1 { | ||||
| uses priority-cfg; | ||||
| description "level-1 specific configuration"; | ||||
| } | ||||
| container level-2 { | ||||
| uses priority-cfg; | ||||
| description "level-2 specific configuration"; | ||||
| } | ||||
| description "Priority for DIS election."; | ||||
| } | ||||
| container metric { | ||||
| uses metric-cfg; | ||||
| container level-1 { | ||||
| uses metric-cfg; | ||||
| description "level-1 specific configuration"; | ||||
| } | ||||
| container level-2 { | ||||
| uses metric-cfg; | ||||
| description "level-2 specific configuration"; | ||||
| } | ||||
| description "Metric configuration."; | ||||
| } | ||||
| container bfd { | ||||
| if-feature bfd; | ||||
| description "BFD Client Configuration."; | ||||
| uses bfd-types:client-cfg-parms; | ||||
| leaf-list tag { | reference "draft-ietf-bfd-yang-xx.txt: | |||
| if-feature prefix-tag; | YANG Data Model for Bidirectional Forwarding | |||
| type uint32; | Detection (BFD)"; | |||
| description | } | |||
| "This leaf defines list of tags associated | container afs { | |||
| with the interface."; | if-feature nlpid-control; | |||
| } | list af { | |||
| leaf-list tag64 { | key af; | |||
| if-feature prefix-tag64; | leaf af { | |||
| type uint64; | type iana-rt-types:address-family; | |||
| description | description "Address-family"; | |||
| "This leaf defines list of 64bits tags | } | |||
| associated with the interface."; | description "List of AFs."; | |||
| } | } | |||
| leaf node-flag { | description "Interface address-families"; | |||
| if-feature node-flag; | } | |||
| type boolean; | container mpls { | |||
| default false; | container ldp { | |||
| description | leaf igp-sync { | |||
| "Set prefix as a node | if-feature ldp-igp-sync; | |||
| representative prefix."; | type boolean; | |||
| } | default false; | |||
| container hello-authentication { | description "Enables IGP/LDP synchronization"; | |||
| uses hello-authentication-cfg; | ||||
| container level-1 { | ||||
| uses hello-authentication-cfg; | ||||
| description "level-1 specific cfg"; | ||||
| } | ||||
| container level-2 { | ||||
| uses hello-authentication-cfg; | ||||
| description "level-2 specific cfg"; | ||||
| } | ||||
| description "Authentication type | ||||
| to be used in hello messages."; | ||||
| } | ||||
| container hello-interval { | ||||
| uses hello-interval-cfg; | ||||
| container level-1 { | ||||
| uses hello-interval-cfg; | ||||
| description "level-1 specific cfg"; | ||||
| } | ||||
| container level-2 { | ||||
| uses hello-interval-cfg; | ||||
| description "level-2 specific cfg"; | ||||
| } | ||||
| description "Interval between | ||||
| hello messages."; | ||||
| } | ||||
| container hello-multiplier { | ||||
| uses hello-multiplier-cfg; | ||||
| container level-1 { | ||||
| uses hello-multiplier-cfg; | ||||
| description "level-1 specific cfg"; | ||||
| } | ||||
| container level-2 { | ||||
| uses hello-multiplier-cfg; | ||||
| description "level-2 specific cfg"; | ||||
| } | ||||
| description "Hello multiplier | ||||
| configuration."; | ||||
| } | ||||
| container priority { | ||||
| must '../interface-type = "broadcast"' { | ||||
| error-message | ||||
| "Priority only applies to broadcast | ||||
| interfaces."; | ||||
| description | ||||
| "Check for broadcast interface."; | ||||
| } | ||||
| uses priority-cfg; | ||||
| container level-1 { | ||||
| uses priority-cfg; | ||||
| description "level-1 specific cfg"; | ||||
| } | ||||
| container level-2 { | ||||
| uses priority-cfg; | ||||
| description "level-2 specific cfg"; | ||||
| } | ||||
| description "Priority for DIS election."; | ||||
| } | ||||
| container metric { | ||||
| uses metric-cfg; | ||||
| container level-1 { | ||||
| uses metric-cfg; | ||||
| description "level-1 specific cfg"; | ||||
| } | ||||
| container level-2 { | ||||
| uses metric-cfg; | ||||
| description "level-2 specific cfg"; | ||||
| } | ||||
| description "Metric configuration."; | ||||
| } | ||||
| container bfd { | ||||
| if-feature bfd; | ||||
| description "BFD Client Configuration."; | ||||
| uses bfd-types:client-cfg-parms; | ||||
| reference "draft-ietf-bfd-yang-xx.txt: | } | |||
| YANG Data Model for Bidirectional Forwarding | description "LDP protocol related configuration."; | |||
| Detection (BFD)"; | } | |||
| } | description "MPLS configuration for IS-IS interfaces"; | |||
| container afs { | } | |||
| if-feature nlpid-control; | } | |||
| list af { | ||||
| key af; | ||||
| leaf af { | ||||
| type iana-rt-types:address-family; | ||||
| description | grouping isis-if-topologies-cfg { | |||
| "Address-family"; | description "IS-IS interface topology configuration."; | |||
| } | container metric { | |||
| description | uses metric-cfg; | |||
| "List of AFs."; | container level-1 { | |||
| } | uses metric-cfg; | |||
| description | description "level-1 specific configuration"; | |||
| "Container for address-families"; | } | |||
| } | container level-2 { | |||
| container mpls { | uses metric-cfg; | |||
| container ldp { | description "level-2 specific configuration"; | |||
| leaf igp-sync { | } | |||
| if-feature ldp-igp-sync; | description "Metric IS-IS interface configuration."; | |||
| type boolean; | } | |||
| default false; | } | |||
| description | ||||
| "Enables IGP/LDP sync."; | ||||
| } | ||||
| description | ||||
| "LDP protocol related configurations."; | ||||
| } | ||||
| description | ||||
| "Container for MPLS specific configuration | ||||
| for IS-IS."; | ||||
| } | ||||
| } | ||||
| grouping isis-if-topologies-cfg { | grouping system-counters { | |||
| description | container system-counters { | |||
| "IS-IS interface topology cfg."; | config false; | |||
| container metric { | list level { | |||
| uses metric-cfg; | key level; | |||
| container level-1 { | ||||
| uses metric-cfg; | ||||
| description "level-1 specific cfg"; | ||||
| } | ||||
| container level-2 { | ||||
| uses metric-cfg; | ||||
| description "level-2 specific cfg"; | ||||
| } | ||||
| description "Metric configuration."; | ||||
| } | ||||
| } | ||||
| grouping system-counters { | leaf level { | |||
| container system-counters { | type level-number; | |||
| config false; | description "IS-IS level."; | |||
| list level { | } | |||
| key 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 IS-IS 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 the ID field length | ||||
| than 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 | ||||
| "List counters for the IS-IS protocol instance"; | ||||
| } | ||||
| description "System counters grouping."; | ||||
| } | ||||
| leaf level { | grouping event-counters { | |||
| type level-number; | container event-counters { | |||
| description | config false; | |||
| "This leaf describes the IS-IS level."; | leaf adjacency-changes { | |||
| } | type uint32; | |||
| leaf corrupted-lsps { | description | |||
| type uint32; | "The number of times an adjacency state change has | |||
| description | occured on this interface."; | |||
| "Number of corrupted in-memory LSPs detected. | } | |||
| LSPs received from the wire with a bad | leaf adjacency-number { | |||
| checksum are silently dropped and not counted. | type uint32; | |||
| LSPs received from the wire with parse errors | description | |||
| are counted by lsp-errors."; | "The number of adjacencies on this interface."; | |||
| } | } | |||
| leaf authentication-type-fails { | leaf init-fails { | |||
| type uint32; | type uint32; | |||
| description | 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 has been | ||||
| received on this interface with the | ||||
| max area address field differing from that of | ||||
| this system."; | ||||
| } | ||||
| leaf authentication-type-fails { | ||||
| type uint32; | ||||
| description | ||||
| "Number of authentication type mismatches."; | "Number of authentication type mismatches."; | |||
| } | } | |||
| leaf authentication-fails { | leaf authentication-fails { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Number of authentication key failures."; | "Number of authentication key failures."; | |||
| } | } | |||
| leaf database-overload { | leaf lan-dis-changes { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Number of times the database has become | "The number of times the DIS has changed on this | |||
| overloaded."; | interface at this level. If the interface type is | |||
| } | point-to-point,the count is zero."; | |||
| leaf own-lsp-purge { | } | |||
| type uint32; | description "IS-IS interface event counters."; | |||
| description | } | |||
| "Number of times a zero-aged copy of the | description | |||
| system's own LSP is received from some | "Grouping for IS-IS interface event counters"; | |||
| 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 { | ||||
| config false; | ||||
| 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 { | ||||
| config false; | ||||
| list level { | ||||
| key level; | ||||
| leaf level { | ||||
| type level-number; | ||||
| description | ||||
| "This leaf describes the IS-IS 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 { | ||||
| config false; | ||||
| 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 { | grouping packet-counters { | |||
| container lsp-log { | container packet-counters { | |||
| config false; | config false; | |||
| list event { | list level { | |||
| key id; | key level; | |||
| leaf id { | leaf level { | |||
| type uint32; | type level-number; | |||
| description | description "IS-IS level."; | |||
| "This leaf defines the event identifier. | } | |||
| This is a purely internal value."; | container iih { | |||
| } | leaf in { | |||
| leaf level { | type uint32; | |||
| type level-number; | description "Received IIH PDUs."; | |||
| description | } | |||
| "This leaf describes the level affected by the | leaf out { | |||
| the computation."; | type uint32; | |||
| } | description "Sent IIH PDUs."; | |||
| container lsp { | } | |||
| leaf lsp { | description "Number of IIH PDUs received/sent."; | |||
| } | ||||
| container ish { | ||||
| leaf in { | ||||
| type uint32; | ||||
| description "Received ISH PDUs."; | ||||
| } | ||||
| leaf out { | ||||
| type uint32; | ||||
| description "Sent ISH PDUs."; | ||||
| } | ||||
| description | ||||
| "ISH PDUs received/sent."; | ||||
| } | ||||
| container esh { | ||||
| leaf in { | ||||
| type uint32; | ||||
| description "Received ESH PDUs."; | ||||
| } | ||||
| leaf out { | ||||
| type uint32; | ||||
| description "Sent ESH PDUs."; | ||||
| } | ||||
| description "Number of ESH PDUs received/sent."; | ||||
| } | ||||
| container lsp { | ||||
| leaf in { | ||||
| type uint32; | ||||
| description "Received LSP PDUs."; | ||||
| } | ||||
| leaf out { | ||||
| type uint32; | ||||
| description "Sent LSP PDUs."; | ||||
| } | ||||
| description "Number of LSP PDUs received/sent."; | ||||
| } | ||||
| container psnp { | ||||
| leaf in { | ||||
| type uint32; | ||||
| description "Received PSNP PDUs."; | ||||
| } | ||||
| leaf out { | ||||
| type uint32; | ||||
| description "Sent PSNP PDUs."; | ||||
| } | ||||
| description "Number of PSNP PDUs received/sent."; | ||||
| } | ||||
| container csnp { | ||||
| leaf in { | ||||
| type uint32; | ||||
| description "Received CSNP PDUs."; | ||||
| } | ||||
| leaf out { | ||||
| type uint32; | ||||
| description "Sent CSNP PDUs."; | ||||
| } | ||||
| description "Number of CSNP PDUs received/sent."; | ||||
| } | ||||
| container unknown { | ||||
| leaf in { | ||||
| type uint32; | ||||
| description "Received unknown PDUs."; | ||||
| } | ||||
| leaf out { | ||||
| type uint32; | ||||
| description "Sent unknown PDUs."; | ||||
| } | ||||
| description "Number of unknown PDUs received/sent."; | ||||
| } | ||||
| description | ||||
| "List of packet counter for supported llevels."; | ||||
| } | ||||
| description "Packet counters per IS-IS level."; | ||||
| } | ||||
| description | ||||
| "Grouping for per IS-IS Level packet counters."; | ||||
| } | ||||
| type lsp-id; | grouping spf-log { | |||
| description | container spf-log { | |||
| "This leaf describes the LSPID | config false; | |||
| of the LSP."; | list event { | |||
| } | key id; | |||
| 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 { | leaf id { | |||
| type yang:timestamp; | type uint32; | |||
| description | ||||
| "Event identifier - purely internal value."; | ||||
| } | ||||
| leaf spf-type { | ||||
| type enumeration { | ||||
| enum full { | ||||
| description "Full SPF computation."; | ||||
| } | ||||
| enum route-only { | ||||
| description | ||||
| "Route reachability only SPF computation"; | ||||
| } | ||||
| } | ||||
| description "Type of SPF computation performed."; | ||||
| } | ||||
| leaf level { | ||||
| type level-number; | ||||
| description | ||||
| "IS-IS level number for SPF computation"; | ||||
| } | ||||
| leaf schedule-timestamp { | ||||
| type yang:timestamp; | ||||
| description | ||||
| "Timestamp of when the SPF computation was | ||||
| scheduled."; | ||||
| } | ||||
| leaf start-timestamp { | ||||
| type yang:timestamp; | ||||
| description | ||||
| "Timestamp of when the SPF computation started."; | ||||
| } | ||||
| leaf end-timestamp { | ||||
| type yang:timestamp; | ||||
| description | ||||
| "Timestamp of when the SPF computation ended."; | ||||
| } | ||||
| list trigger-lsp { | ||||
| key "lsp"; | ||||
| leaf lsp { | ||||
| type lsp-id; | ||||
| description | ||||
| "LSPID of the LSP triggering SPF computation."; | ||||
| } | ||||
| leaf sequence { | ||||
| type uint32; | ||||
| description | ||||
| "Sequence number of the LSP triggering SPF | ||||
| computation"; | ||||
| } | ||||
| description | ||||
| "This list includes the LSPs that triggered the | ||||
| SPF computation."; | ||||
| description | } | |||
| "This leaf describes the timestamp | description | |||
| when the LSP was received. In case of | "List of computation events - implemented as a | |||
| local LSP update, the timestamp refers | wrapping buffer."; | |||
| to the local LSP update time."; | } | |||
| } | ||||
| leaf change { | description | |||
| type identityref { | "This container lists the SPF computation events."; | |||
| base lsp-log-reason; | } | |||
| } | description "Grouping for spf-log events."; | |||
| description | } | |||
| "This leaf describes the type of change | ||||
| in the LSP."; | ||||
| } | ||||
| description | grouping lsp-log { | |||
| "List of LSP events. | container lsp-log { | |||
| It is used as a wrapping buffer."; | config false; | |||
| } | list event { | |||
| key id; | ||||
| description | leaf id { | |||
| "This container lists the LSP reception events. | type uint32; | |||
| Local LSP modification are also contained in the | description | |||
| list."; | "Event identifier - purely internal value."; | |||
| } | } | |||
| description | leaf level { | |||
| "Grouping for LSP log."; | type level-number; | |||
| } | description | |||
| "IS-IS level number for LSP"; | ||||
| } | ||||
| container lsp { | ||||
| leaf lsp { | ||||
| grouping hostname-db { | type lsp-id; | |||
| container hostnames { | description | |||
| config false; | "LSPID of the LSP."; | |||
| list hostname { | } | |||
| key system-id; | leaf sequence { | |||
| leaf system-id { | type uint32; | |||
| type system-id; | description | |||
| description | "Sequence number of the LSP."; | |||
| "This leaf describes the system-id | } | |||
| associated with the hostname."; | description | |||
| } | "LSP identification container - either the received | |||
| leaf hostname { | LSP or the locally generated LSP."; | |||
| 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 */ | leaf received-timestamp { | |||
| type yang:timestamp; | ||||
| description | ||||
| "Timestamp of when the LSP was received. In case | ||||
| of local LSP update, the timestamp refers to the | ||||
| local LSP update time."; | ||||
| } | ||||
| grouping prefix-reachability-attributes { | leaf change { | |||
| description | type identityref { | |||
| "This group defines extended reachability attributes of an | base lsp-log-reason; | |||
| IPv4 or IPv6 prefix."; | } | |||
| description "Type of LSP change."; | ||||
| } | ||||
| leaf external-prefix-flag { | description | |||
| type boolean; | "List of LSP events - implemented as a | |||
| description | wrapping buffer."; | |||
| "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 | |||
| description | "LSP reception and local LSP origination events | |||
| "This group defines the IPv4 source router ID of | container."; | |||
| a prefix advertisement."; | ||||
| leaf ipv4-source-router-id { | } description "Grouping for LSP log."; | |||
| type inet:ipv4-address; | } | |||
| description | ||||
| "IPv4 Source router ID address."; | ||||
| } | ||||
| } | ||||
| grouping prefix-ipv6-source-router-id { | grouping hostname-db { | |||
| description | container hostnames { | |||
| "This group defines the IPv6 source router ID of | config false; | |||
| a prefix advertisement."; | list hostname { | |||
| key system-id; | ||||
| leaf system-id { | ||||
| type system-id; | ||||
| description | ||||
| "System-id associated with the hostname."; | ||||
| } | ||||
| leaf hostname { | ||||
| type string; | ||||
| description | ||||
| "Hostname associated with the system ID."; | ||||
| } | ||||
| description | ||||
| "List of system-id/hostname associations."; | ||||
| } | ||||
| description | ||||
| "Hostname to system-id mapping database."; | ||||
| } | ||||
| description | ||||
| "Grouping for hostname to system-id mapping database."; | ||||
| leaf ipv6-source-router-id { | } | |||
| type inet:ipv6-address; | ||||
| description | ||||
| "IPv6 Source router ID address."; | ||||
| } | ||||
| } | ||||
| grouping prefix-attributes-extension { | /* Groupings for the LSDB description */ | |||
| description | ||||
| "Prefix extended attributes."; | ||||
| uses prefix-reachability-attributes; | grouping prefix-reachability-attributes { | |||
| uses prefix-ipv4-source-router-id; | description | |||
| uses prefix-ipv6-source-router-id; | "Grouping for extended reachability attributes of an | |||
| } | IPv4 or IPv6 prefix."; | |||
| grouping prefix-ipv4-std { | leaf external-prefix-flag { | |||
| description | type boolean; | |||
| "This group defines attributes of an | description "External prefix flag."; | |||
| IPv4 standard prefix."; | } | |||
| leaf up-down { | leaf readvertisement-flag { | |||
| type boolean; | type boolean; | |||
| description | description "Readvertisement flag."; | |||
| "This leaf expresses the value of up/down bit."; | } | |||
| } | leaf node-flag { | |||
| leaf i-e { | type boolean; | |||
| type boolean; | description "Node flag."; | |||
| 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 IS-IS default metric value"; | ||||
| } | ||||
| container delay-metric { | ||||
| leaf metric { | ||||
| type std-metric; | ||||
| description | ||||
| "This leaf describes the IS-IS delay metric value"; | ||||
| } | ||||
| leaf supported { | ||||
| type boolean; | ||||
| default "false"; | ||||
| description | ||||
| "This leaf describes if the metric is supported."; | ||||
| } | ||||
| description | grouping prefix-ipv4-source-router-id { | |||
| "This container defines the IS-IS delay metric."; | description | |||
| } | "Grouping for the IPv4 source router ID of a prefix | |||
| container expense-metric { | advertisement."; | |||
| leaf metric { | ||||
| type std-metric; | ||||
| description | ||||
| "This leaf describes the IS-IS expense metric value"; | ||||
| } | ||||
| leaf supported { | ||||
| type boolean; | ||||
| default "false"; | ||||
| description | ||||
| "This leaf describes if the metric is supported."; | ||||
| } | ||||
| description | ||||
| "This container defines the IS-IS expense metric."; | ||||
| } | leaf ipv4-source-router-id { | |||
| container error-metric { | type inet:ipv4-address; | |||
| leaf metric { | description "IPv4 Source router ID address."; | |||
| type std-metric; | } | |||
| description | } | |||
| "This leaf describes the IS-IS error metric value"; | ||||
| } | ||||
| leaf supported { | ||||
| type boolean; | ||||
| default "false"; | ||||
| description | ||||
| "This leaf describes if the metric is supported."; | ||||
| } | ||||
| description | grouping prefix-ipv6-source-router-id { | |||
| "This container defines the IS-IS error metric."; | description | |||
| } | "Grouping for the IPv6 source router ID of a prefix | |||
| } | advertisement."; | |||
| grouping prefix-ipv4-extended { | leaf ipv6-source-router-id { | |||
| description | type inet:ipv6-address; | |||
| "This group defines attributes of an | description "IPv6 Source router ID address."; | |||
| 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 { | grouping prefix-attributes-extension { | |||
| type wide-metric; | description "Prefix extended attributes."; | |||
| description | uses prefix-reachability-attributes; | |||
| "This leaf describes the IS-IS metric value"; | uses prefix-ipv4-source-router-id; | |||
| } | uses prefix-ipv6-source-router-id; | |||
| 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 { | grouping prefix-ipv4-std { | |||
| description | description | |||
| "This group defines attributes of an | "Grouping for attributes of an IPv4 standard prefix."; | |||
| IPv6 prefix."; | leaf up-down { | |||
| leaf up-down { | type boolean; | |||
| type boolean; | description "Value of up/down bit."; | |||
| description | } | |||
| "This leaf expresses the value of up/down bit."; | leaf i-e { | |||
| } | type boolean; | |||
| leaf ip-prefix { | description "Value of I/E bit."; | |||
| type inet:ipv6-address; | } | |||
| description | leaf ip-prefix { | |||
| "This leaf describes the IPv6 prefix"; | type inet:ipv4-address; | |||
| } | description "IPv4 prefix address"; | |||
| leaf prefix-len { | } | |||
| type uint8; | leaf prefix-len { | |||
| description | type uint8; | |||
| "This leaf describes the IPv4 prefix len in bits"; | description "IPv4 prefix length (in bits)"; | |||
| } | } | |||
| leaf metric { | leaf default-metric { | |||
| type wide-metric; | type std-metric; | |||
| description | description "Default IS-IS metric for IPv4 prefix"; | |||
| "This leaf describes the IS-IS metric value"; | } | |||
| } | container delay-metric { | |||
| leaf-list tag { | leaf metric { | |||
| type uint32; | type std-metric; | |||
| description | description "IS-IS delay metric for IPv4 prefix"; | |||
| "This leaf describes a list of tags associated with | } | |||
| the prefix."; | leaf supported { | |||
| } | type boolean; | |||
| leaf-list tag64 { | default "false"; | |||
| type uint64; | description | |||
| description | "Indicates whether IS-IS delay metric is supported."; | |||
| "This leaf describes a list of 64-bit tags associated with | } | |||
| the prefix."; | description "IS-IS delay metric container."; | |||
| } | } | |||
| uses prefix-attributes-extension; | container expense-metric { | |||
| leaf metric { | ||||
| type std-metric; | ||||
| description "IS-IS expense metric for IPv4 prefix"; | ||||
| } | ||||
| leaf supported { | ||||
| type boolean; | ||||
| default "false"; | ||||
| description | ||||
| "Indicates whether IS-IS delay metric is supported."; | ||||
| } | ||||
| description "IS-IS expense metric container."; | ||||
| } | ||||
| container error-metric { | ||||
| leaf metric { | ||||
| type std-metric; | ||||
| description | ||||
| "This leaf describes the IS-IS error metric value"; | ||||
| } | ||||
| leaf supported { | ||||
| type boolean; | ||||
| default "false"; | ||||
| description "IS-IS error metric for IPv4 prefix"; | ||||
| } | ||||
| description "IS-IS error metric container."; | ||||
| } | ||||
| } | ||||
| } | grouping prefix-ipv4-extended { | |||
| description | ||||
| "Grouping for attributes of an IPv4 extended prefix."; | ||||
| leaf up-down { | ||||
| type boolean; | ||||
| description "Value of up/down bit."; | ||||
| } | ||||
| leaf ip-prefix { | ||||
| type inet:ipv4-address; | ||||
| description "IPv4 prefix address"; | ||||
| } | ||||
| leaf prefix-len { | ||||
| type uint8; | ||||
| description "IPv4 prefix length (in bits)"; | ||||
| } | ||||
| grouping neighbor-extended { | leaf metric { | |||
| description | type wide-metric; | |||
| "This group defines attributes of an | description "IS-IS wide metric value"; | |||
| IS-IS extended neighbor."; | } | |||
| leaf neighbor-id { | leaf-list tag { | |||
| type system-id; | type uint32; | |||
| description | description | |||
| "This leaf describes the system-id of the neighbor."; | "List of 32-bit tags associated with the IPv4 prefix."; | |||
| } | } | |||
| leaf metric { | leaf-list tag64 { | |||
| type wide-metric; | type uint64; | |||
| description | description | |||
| "This leaf describes the IS-IS metric value"; | "List of 32-bit tags associated with the IPv4 prefix."; | |||
| } | } | |||
| } | uses prefix-attributes-extension; | |||
| } | ||||
| grouping neighbor { | grouping prefix-ipv6-extended { | |||
| description | description "Grouping for attributes of an IPv6 prefix."; | |||
| "This group defines attributes of an | leaf up-down { | |||
| IS-IS standard neighbor."; | type boolean; | |||
| leaf neighbor-id { | description "Value of up/down bit."; | |||
| type system-id; | } | |||
| description | leaf ip-prefix { | |||
| "This leaf describes the system-id of the neighbor."; | type inet:ipv6-address; | |||
| } | description "IPv6 prefix address"; | |||
| leaf i-e { | } | |||
| type boolean; | leaf prefix-len { | |||
| description | type uint8; | |||
| "This leaf expresses the value of I/E bit."; | description "IPv4 prefix length (in bits)"; | |||
| } | } | |||
| leaf default-metric { | leaf metric { | |||
| type std-metric; | type wide-metric; | |||
| description | description "IS-IS wide metric value"; | |||
| "This leaf describes the IS-IS default metric value"; | } | |||
| } | leaf-list tag { | |||
| container delay-metric { | type uint32; | |||
| leaf metric { | description | |||
| type std-metric; | "List of 32-bit tags associated with the IPv4 prefix."; | |||
| description | } | |||
| "This leaf describes the IS-IS delay metric value"; | leaf-list tag64 { | |||
| } | type uint64; | |||
| leaf supported { | description | |||
| type boolean; | "List of 32-bit tags associated with the IPv4 prefix."; | |||
| default "false"; | } | |||
| description | uses prefix-attributes-extension; | |||
| "This leaf describes if the metric is supported."; | } | |||
| } | grouping neighbor-extended { | |||
| description | description | |||
| "This container defines the IS-IS delay metric."; | "Grouping for attributes of an IS-IS extended neighbor."; | |||
| } | leaf neighbor-id { | |||
| container expense-metric { | type system-id; | |||
| leaf metric { | description "System-id of the extended neighbor."; | |||
| type std-metric; | } | |||
| description | leaf metric { | |||
| "This leaf describes the IS-IS delay expense value"; | type wide-metric; | |||
| } | description "IS-IS wide metric for extended neighbor"; | |||
| leaf supported { | } | |||
| type boolean; | ||||
| default "false"; | ||||
| description | ||||
| "This leaf describes if the metric is supported."; | ||||
| } | ||||
| description | ||||
| "This container defines the IS-IS expense metric."; | ||||
| } | ||||
| container error-metric { | ||||
| leaf metric { | ||||
| type std-metric; | ||||
| description | ||||
| "This leaf describes the IS-IS error metric value"; | ||||
| } | ||||
| leaf supported { | ||||
| type boolean; | ||||
| default "false"; | ||||
| description | ||||
| "This leaf describes if the metric is supported."; | ||||
| } | ||||
| description | ||||
| "This container defines the IS-IS error metric."; | ||||
| } | ||||
| } | ||||
| grouping lsp-entry { | } | |||
| description | ||||
| "This group defines attributes of an | ||||
| IS-IS LSP database entry."; | ||||
| leaf decoded-completed { | grouping neighbor { | |||
| type boolean; | description "IS-IS standard neighbor grouping."; | |||
| description | leaf neighbor-id { | |||
| "The IS-IS body is fully decoded."; | type system-id; | |||
| } | description "IS-IS neighbor system-id"; | |||
| leaf raw-data { | } | |||
| type yang:hex-string; | leaf i-e { | |||
| description | type boolean; | |||
| "The complete LSP in network byte | description | |||
| order hexadecimal as received or originated."; | "Internal or External (I/E) Metric bit value"; | |||
| } | } | |||
| leaf lsp-id { | leaf default-metric { | |||
| type lsp-id; | type std-metric; | |||
| description | description "IS-IS default metric value"; | |||
| "This leaf describes the LSP ID of the LSP."; | } | |||
| } | container delay-metric { | |||
| leaf checksum { | leaf metric { | |||
| type uint16; | type std-metric; | |||
| description | description "IS-IS delay metric value"; | |||
| "This leaf describes the checksum of the LSP."; | } | |||
| } | leaf supported { | |||
| leaf remaining-lifetime { | type boolean; | |||
| type uint16; | default "false"; | |||
| units "seconds"; | description "IS-IS delay metric supported"; | |||
| description | } | |||
| "This leaf describes the remaining lifetime | description "IS-IS delay metric container"; | |||
| in seconds before the LSP expiration."; | } | |||
| } | container expense-metric { | |||
| leaf sequence { | leaf metric { | |||
| type uint32; | type std-metric; | |||
| description | description "IS-IS delay expense metric value"; | |||
| "This leaf describes the sequence number of the LSP."; | } | |||
| } | leaf supported { | |||
| leaf attributes { | type boolean; | |||
| type bits { | default "false"; | |||
| bit PARTITIONNED { | description "IS-IS delay expense metric supported"; | |||
| description | } | |||
| "If set, the originator supports partition | description "IS-IS delay expense metric container"; | |||
| repair."; | } | |||
| } | container error-metric { | |||
| bit ATTACHED-ERROR { | leaf metric { | |||
| description | type std-metric; | |||
| "If set, the originator is attached to | description "IS-IS error metric value"; | |||
| another area using the referred metric."; | } | |||
| } | leaf supported { | |||
| bit ATTACHED-EXPENSE { | type boolean; | |||
| description | default "false"; | |||
| "If set, the originator is attached to | description "IS-IS error metric supported"; | |||
| another area using the referred metric."; | } | |||
| } | description "IS-IS error metric container"; | |||
| 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 { | grouping lsp-entry { | |||
| type inet:ipv4-address; | description "IS-IS LSP database entry groupting"; | |||
| description | ||||
| "This leaf describes the IPv4 addresses of the node. | ||||
| IS-IS reference is TLV 132."; | ||||
| } | ||||
| leaf-list ipv6-addresses { | leaf decoded-completed { | |||
| type inet:ipv6-address; | type boolean; | |||
| description | description "IS-IS LSP body fully decoded."; | |||
| "This leaf describes the IPv6 interface | } | |||
| addresses of the node. | leaf raw-data { | |||
| IS-IS reference is TLV 232."; | type yang:hex-string; | |||
| } | description | |||
| "The hexadecial representation of the complete LSP in | ||||
| network-byte order (NBO) as received or originated."; | ||||
| } | ||||
| leaf lsp-id { | ||||
| type lsp-id; | ||||
| description "LSP ID of the LSP"; | ||||
| } | ||||
| leaf checksum { | ||||
| type uint16; | ||||
| description "LSP checksum"; | ||||
| } | ||||
| leaf remaining-lifetime { | ||||
| type uint16; | ||||
| units "seconds"; | ||||
| description | ||||
| "Remaining lifetime (in seconds) until LSP expiration."; | ||||
| } | ||||
| leaf sequence { | ||||
| type uint32; | ||||
| description | ||||
| "This leaf describes the sequence number of the LSP."; | ||||
| } | ||||
| leaf attributes { | ||||
| type bits { | ||||
| bit partitioned { | ||||
| description "Originator partition repair supported"; | ||||
| } | ||||
| bit attached-error { | ||||
| description | ||||
| "If set, the originator is attached to | ||||
| another area using the referred metric."; | ||||
| leaf ipv4-te-routerid { | } | |||
| type inet:ipv4-address; | bit attached-expense { | |||
| description | description | |||
| "This leaf describes the IPv4 Traffic Engineering | "If set, the originator is attached to | |||
| router ID of the node. | another area using the referred metric."; | |||
| IS-IS reference is TLV 134."; | } | |||
| } | bit attached-delay { | |||
| description | ||||
| "If set, the originator is attached to | ||||
| another area using the referred metric."; | ||||
| } | ||||
| bit attached-default { | ||||
| description | ||||
| "If set, the originator is attached to | ||||
| another area using the referred metric."; | ||||
| } | ||||
| bit overload { | ||||
| description | ||||
| "If set, the originator is overloaded, | ||||
| and must be avoided in path calculation."; | ||||
| } | ||||
| } | ||||
| description "LSP attributes"; | ||||
| } | ||||
| leaf ipv6-te-routerid { | leaf-list ipv4-addresses { | |||
| type inet:ipv6-address; | type inet:ipv4-address; | |||
| description | description | |||
| "This leaf describes the IPv6 Traffic Engineering | "List of IPv4 addresses of the IS-IS node - IS-IS | |||
| router ID of the node. | reference is TLV 132."; | |||
| IS-IS reference is TLV 140."; | } | |||
| } | ||||
| leaf-list protocol-supported { | leaf-list ipv6-addresses { | |||
| type uint8; | type inet:ipv6-address; | |||
| description | description | |||
| "This leaf describes the list of | "List of IPv6 addresses of the IS-IS node - IS-IS | |||
| supported protocols. | reference is TLV 232."; | |||
| IS-IS reference is TLV 129."; | } | |||
| } | ||||
| leaf dynamic-hostname { | leaf ipv4-te-routerid { | |||
| type string; | type inet:ipv4-address; | |||
| description | description | |||
| "This leaf describes the name of the node. | "IPv4 Traffic Engineering router ID of the IS-IS node - | |||
| IS-IS reference is TLV 137."; | IS-IS reference is TLV 134."; | |||
| } | } | |||
| container authentication { | leaf ipv6-te-routerid { | |||
| leaf authentication-type { | type inet:ipv6-address; | |||
| type string; | description | |||
| description | "IPv6 Traffic Engineering router ID of the IS-IS node - | |||
| "This leaf describes the authentication type | IS-IS reference is TLV 140."; | |||
| 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. IS-IS reference is TLV 10."; | ||||
| } | ||||
| container mt-entries { | leaf-list protocol-supported { | |||
| list topology { | type uint8; | |||
| description | ||||
| "List of supported protocols of the IS-IS node - | ||||
| IS-IS reference is TLV 129."; | ||||
| } | ||||
| leaf MT-ID { | leaf dynamic-hostname { | |||
| type uint16 { | type string; | |||
| range "0 .. 4095"; | description | |||
| } | "Host Name of the IS-IS node - IS-IS reference | |||
| description | is TLV 137."; | |||
| "This leaf defines the identifier | } | |||
| of a topology."; | ||||
| } | ||||
| leaf attributes { | container authentication { | |||
| type bits { | leaf authentication-type { | |||
| bit OVERLOAD { | type string; | |||
| description | description | |||
| "If set, the originator is overloaded, | "Authentication type to be used with IS-IS node."; | |||
| and must be avoided in path | } | |||
| calculation."; | leaf authentication-key { | |||
| } | type string; | |||
| bit ATTACHED { | description | |||
| description | "Authentication keyto be used. For security reasons, | |||
| "If set, the originator is attached to | the authentication key MUST NOT be presented in | |||
| another area using the referred metric."; | plaintext format. It is recommended to use an MD5 | |||
| } | hash to present the authentication-key."; | |||
| } | } | |||
| description | description | |||
| "This leaf describes attributes of the LSP | "IS-IS node authentication information container - | |||
| for the associated topology."; | IS-IS reference is TLV 10."; | |||
| } | } | |||
| description | ||||
| "List of topologies supported."; | ||||
| } | ||||
| description | ||||
| "This container describes the topology supported. | ||||
| IS-IS reference is TLV 229."; | ||||
| } | ||||
| list router-capabilities { | container mt-entries { | |||
| leaf flags { | list topology { | |||
| type bits { | description | |||
| bit flooding { | "List of topologies supported"; | |||
| 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. | ||||
| "; | ||||
| } | ||||
| } | leaf MT-ID { | |||
| description | type uint16 { | |||
| "Flags associated with router capability."; | range "0 .. 4095"; | |||
| } | } | |||
| container node-tags { | description | |||
| if-feature node-tag; | "Multi-Topolgoy identifier of topology."; | |||
| list node-tag { | } | |||
| leaf tag { | ||||
| type uint32; | ||||
| description | ||||
| "Node tag value."; | ||||
| } | ||||
| description | ||||
| "List of tags."; | ||||
| } | ||||
| description | ||||
| "Container for node tags."; | ||||
| } | ||||
| leaf binary { | leaf attributes { | |||
| type binary; | type bits { | |||
| description | bit overload { | |||
| "This leaf describes the capability of the node. | description | |||
| Format is binary according to the protocol encoding."; | "If set, the originator is overloaded, | |||
| } | and must be avoided in path calculation."; | |||
| description | } | |||
| "This container describes the capabilities of the node. | bit attached { | |||
| This container may be extended with detailed | description | |||
| information. | "If set, the originator is attached to | |||
| IS-IS reference is TLV 242."; | another area using the referred metric."; | |||
| } | } | |||
| } | ||||
| description | ||||
| "Attributes of the LSP for the associated | ||||
| topology."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "IS-IS node topology information container - | ||||
| IS-IS reference is TLV 229."; | ||||
| } | ||||
| container is-neighbor { | list router-capabilities { | |||
| list neighbor { | leaf flags { | |||
| uses neighbor; | type bits { | |||
| description | bit flooding { | |||
| "List of neighbors."; | position 0; | |||
| } | description | |||
| description | "If the S bit is set, the IS-IS Router CAPABILITY | |||
| "This leaf describes list of IS-IS neighbors. | TLV MUST be flooded across the entire routing | |||
| IS-IS reference is TLV 2."; | domain. If the S bit is clear, the TLV MUST NOT | |||
| } | be leaked between levels. This bit MUST NOT | |||
| be altered during the TLV leaking."; | ||||
| } | ||||
| bit down { | ||||
| position 1; | ||||
| description | ||||
| "When the IS-IS Router CAPABILITY TLV is leaked | ||||
| from level-2 to level-1, the D bit MUST be set. | ||||
| Otherwise, this bit MUST be clear. IS-IS Router | ||||
| capability TLVs with the D bit set MUST NOT be | ||||
| leaked from level-1 to level-2 in to prevent | ||||
| TLV looping."; | ||||
| } | ||||
| container extended-is-neighbor { | } | |||
| list neighbor { | description "Router Capability Flags"; | |||
| uses neighbor-extended; | } | |||
| description | container node-tags { | |||
| "List of neighbors."; | if-feature node-tag; | |||
| list node-tag { | ||||
| leaf tag { | ||||
| type uint32; | ||||
| description "Node tag value."; | ||||
| } | ||||
| description "List of tags."; | ||||
| } | ||||
| description "Node Tag container"; | ||||
| } | ||||
| } | leaf binary { | |||
| description | type binary; | |||
| "This container describes list of IS-IS extended | description | |||
| neighbors. | "Binary encoding of the IS-IS node capabilities"; | |||
| IS-IS reference is TLV 22."; | } | |||
| } | description | |||
| "IS-IS node capabilities container. This container may | ||||
| be extended with detailed information - IS-IS | ||||
| reference is TLV 242."; | ||||
| } | ||||
| container ipv4-internal-reachability { | container is-neighbor { | |||
| list prefixes { | list neighbor { | |||
| uses prefix-ipv4-std; | uses neighbor; | |||
| description | description "List of neighbors."; | |||
| "List of prefixes."; | } | |||
| } | description | |||
| description | "Standard IS neighbors container - IS-IS reference is | |||
| "This container describes list of IPv4 internal | TLV 2."; | |||
| reachability information. | } | |||
| IS-IS reference is TLV 128."; | ||||
| } | ||||
| container ipv4-external-reachability { | container extended-is-neighbor { | |||
| list prefixes { | list neighbor { | |||
| uses prefix-ipv4-std; | uses neighbor-extended; | |||
| description | description | |||
| "List of prefixes."; | "List of extended IS neighbors"; | |||
| } | } | |||
| description | description | |||
| "This container describes list of IPv4 external | "Standard IS extended neighbors container - IS-IS | |||
| reachability information. | reference is TLV 22"; | |||
| IS-IS reference is TLV 130."; | } | |||
| } | ||||
| container extended-ipv4-reachability { | container ipv4-internal-reachability { | |||
| list prefixes { | list prefixes { | |||
| uses prefix-ipv4-extended; | uses prefix-ipv4-std; | |||
| description | description "List of prefixes."; | |||
| "List of prefixes."; | } | |||
| } | description | |||
| description | "IPv4 internal reachability information container - IS-IS | |||
| "This container describes list of IPv4 extended | reference is TLV 128."; | |||
| reachability information. | } | |||
| IS-IS reference is TLV 135."; | ||||
| } | ||||
| container mt-is-neighbor { | container ipv4-external-reachability { | |||
| list neighbor { | list prefixes { | |||
| leaf MT-ID { | uses prefix-ipv4-std; | |||
| type uint16 { | description "List of prefixes."; | |||
| range "0 .. 4095"; | } | |||
| description | ||||
| "IPv4 external reachability information container - | ||||
| IS-IS reference is TLV 130."; | ||||
| } | ||||
| } | container extended-ipv4-reachability { | |||
| description | list prefixes { | |||
| "This leaf defines the identifier | uses prefix-ipv4-extended; | |||
| of a topology."; | description "List of prefixes."; | |||
| } | } | |||
| uses neighbor-extended; | description | |||
| description | "IPv4 extended reachability information container - | |||
| "List of neighbors."; | IS-IS reference is TLV 135."; | |||
| } | } | |||
| description | ||||
| "This container describes list of IS-IS multi-topology | ||||
| neighbors. | ||||
| IS-IS reference is TLV 223."; | ||||
| } | ||||
| container mt-extended-ipv4-reachability { | container mt-is-neighbor { | |||
| list prefixes { | list neighbor { | |||
| leaf MT-ID { | leaf mt-id { | |||
| type uint16 { | type uint16 { | |||
| range "0 .. 4095"; | range "0 .. 4095"; | |||
| } | } | |||
| description | description "Multi-topology (MT) identifier"; | |||
| "This leaf defines the identifier | } | |||
| of a topology."; | uses neighbor-extended; | |||
| } | description "List of neighbors."; | |||
| uses prefix-ipv4-extended; | } | |||
| description | description | |||
| "List of prefixes."; | "IS-IS multi-topology neighbor container - IS-IS | |||
| reference is TLV 223."; | ||||
| } | ||||
| } | container mt-extended-ipv4-reachability { | |||
| description | list prefixes { | |||
| "This container describes list of IPv4 | leaf mt-id { | |||
| reachability information in multi-topology | type uint16 { | |||
| environment. | range "0 .. 4095"; | |||
| IS-IS reference is TLV 235."; | } | |||
| } | description "Multi-topology (MT) identifier"; | |||
| } | ||||
| uses prefix-ipv4-extended; | ||||
| description "List of extended prefixes."; | ||||
| } | ||||
| description | ||||
| "IPv4 multi-topolgy (MT) extended reachability | ||||
| information container - IS-IS reference is TLV 235."; | ||||
| } | ||||
| container mt-ipv6-reachability { | container mt-ipv6-reachability { | |||
| list prefixes { | list prefixes { | |||
| leaf MT-ID { | leaf MT-ID { | |||
| type uint16 { | type uint16 { | |||
| range "0 .. 4095"; | range "0 .. 4095"; | |||
| } | } | |||
| description | description "Multi-topology (MT) identifier"; | |||
| "This leaf defines the identifier | } | |||
| of a topology."; | uses prefix-ipv6-extended; | |||
| } | description "List of IPv6 extended prefixes."; | |||
| uses prefix-ipv6-extended; | } | |||
| description | description | |||
| "List of prefixes."; | "IPv6 multi-topolgy (MT) extended reachability | |||
| } | information container - IS-IS reference is TLV 237."; | |||
| description | } | |||
| "This container describes list of IPv6 | ||||
| reachability information in multi-topology | ||||
| environment. | ||||
| IS-IS reference is TLV 237."; | ||||
| } | ||||
| container ipv6-reachability { | container ipv6-reachability { | |||
| list prefixes { | list prefixes { | |||
| uses prefix-ipv6-extended; | uses prefix-ipv6-extended; | |||
| description | description "List of IPv6 prefixes."; | |||
| "List of prefixes."; | } | |||
| } | description | |||
| description | "IPv6 reachability information container - IS-IS | |||
| "This container describes list of IPv6 | reference is TLV 236."; | |||
| reachability information. | } | |||
| IS-IS reference is TLV 236."; | } | |||
| } | ||||
| } | ||||
| grouping lsdb { | grouping lsdb { | |||
| container database { | description "Link State Database (LSDB) grouping"; | |||
| config false; | container database { | |||
| list level-db { | config false; | |||
| key level; | list level-db { | |||
| key level; | ||||
| leaf level { | leaf level { | |||
| type level-number; | type level-number; | |||
| description | description "LSDB level number (1 or 2)"; | |||
| "Current level number"; | } | |||
| } | list lsp { | |||
| list lsp { | key lsp-id; | |||
| key lsp-id; | uses lsp-entry; | |||
| uses lsp-entry; | description "List of LSPs in LSDB"; | |||
| description | } | |||
| "List of LSPs in LSDB."; | description "LSP list for LSDB level container"; | |||
| } | } | |||
| description | description "IS-IS Link State database container"; | |||
| "This container describes the list of LSPs | } | |||
| in the level x database."; | } | |||
| } | ||||
| description | ||||
| "This container describes IS-IS Link State | ||||
| databases."; | ||||
| } | ||||
| description | ||||
| "Grouping for LSDB description."; | ||||
| } | ||||
| /* Augmentations */ | /* Augmentations */ | |||
| augment "/rt:routing/" | augment "/rt:routing/" | |||
| +"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 "IS-IS-specific route attributes."; | description "IS-IS-specific route attributes."; | |||
| } | } | |||
| uses route-content; | uses route-content; | |||
| description | description | |||
| "This augments route object in RIB with IS-IS-specific | "This augments route object in RIB with IS-IS-specific | |||
| attributes."; | attributes."; | |||
| } | } | |||
| augment "/if:interfaces/if:interface" { | augment "/if:interfaces/if:interface" { | |||
| leaf clns-mtu { | leaf clns-mtu { | |||
| type uint16; | type uint16; | |||
| description | description "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 IS-IS | "This augments a routing protocol instance with IS-IS | |||
| 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 | |||
| must be configured."; | "At least one area-address must be configured."; | |||
| description | description | |||
| "Enforce configuration of at least one area."; | "Enforce configuration of at least one area."; | |||
| } | } | |||
| uses isis-global-cfg; | ||||
| container fast-reroute { | uses isis-global-cfg; | |||
| 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."; | "IP Fast ReRoute (IPFRR) global container"; | |||
| } | } | |||
| container spf-control { | container spf-control { | |||
| container ietf-spf-delay { | container ietf-spf-delay { | |||
| if-feature ietf-spf-delay; | if-feature ietf-spf-delay; | |||
| uses ietf-spf-delay-cfg; | uses ietf-spf-delay-cfg; | |||
| uses ietf-spf-delay-state; | uses ietf-spf-delay-state; | |||
| description | description "IETF SPF delay algorithm container"; | |||
| "IETF spf delay algorithm configuration."; | } | |||
| } | description | |||
| description | "SPF computation-related information container"; | |||
| "Container for all SPF computation related | } | |||
| operations."; | container topologies { | |||
| } | if-feature multi-topology; | |||
| container topologies { | list topology { | |||
| if-feature multi-topology; | key "name"; | |||
| list topology { | leaf enable { | |||
| key "name"; | type boolean; | |||
| leaf enable { | description "Topology enable configuration"; | |||
| type boolean; | } | |||
| description | leaf name { | |||
| "Control enabling of topologies"; | type leafref { | |||
| } | path "../../../../../../rt:ribs/rt:rib/rt:name"; | |||
| leaf name { | } | |||
| type leafref { | description | |||
| path "../../../../../../rt:ribs/rt:rib/rt:name"; | "Routing Information Base (RIB) corresponding | |||
| } | to topology."; | |||
| } | ||||
| description "RIB"; | ||||
| } | ||||
| uses isis-global-topologies-cfg; | uses isis-global-topologies-cfg; | |||
| description | description "List of topologies"; | |||
| "List of topologies"; | } | |||
| } | description "Multi-topology container"; | |||
| description | } | |||
| "Container for multi-topology"; | container interfaces { | |||
| } | list interface { | |||
| container interfaces { | key "name"; | |||
| list interface { | leaf name { | |||
| key "name"; | type if:interface-ref; | |||
| leaf name { | ||||
| 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."; | "IP Fast ReRoute (IPFRR) interface container"; | |||
| } | } | |||
| 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."; | "Routing Information Base (RIB) corresponding | |||
| } | to topology."; | |||
| uses isis-if-topologies-cfg; | } | |||
| description | uses isis-if-topologies-cfg; | |||
| "List of topologies."; | description "List of interface topologies"; | |||
| } | } | |||
| description | description "Multi-topology container"; | |||
| "Container for multi-topology"; | } | |||
| } | uses adjacency-state; | |||
| uses adjacency-state; | uses event-counters; | |||
| uses event-counters; | uses packet-counters; | |||
| uses packet-counters; | description "List of IS-IS interfaces."; | |||
| description | } | |||
| "List of IS-IS interfaces."; | description | |||
| } | "IS-IS interface specific configuration container"; | |||
| description | ||||
| "This container defines IS-IS interface specific | ||||
| configuration objects."; | ||||
| } | } | |||
| uses spf-log; | uses spf-log; | |||
| uses lsp-log; | uses lsp-log; | |||
| uses hostname-db; | uses hostname-db; | |||
| uses lsdb; | uses lsdb; | |||
| uses local-rib; | uses local-rib; | |||
| uses system-counters; | uses system-counters; | |||
| description | description | |||
| "This container defines IS-IS specific configuration | "IS-IS configuration/state top-level container"; | |||
| objects."; | } | |||
| } | } | |||
| } | ||||
| /* RPC methods */ | ||||
| rpc clear-adjacency { | ||||
| description | ||||
| "This RPC request clears a particular | ||||
| set of IS-IS adjacencies. If the operation | ||||
| fails for IS-IS internal reason, then | ||||
| error-tag and error-app-tag should be set | ||||
| to a meaningful value."; | ||||
| input { | ||||
| leaf routing-protocol-instance-name { | ||||
| type instance-state-ref; | ||||
| mandatory "true"; | ||||
| description | ||||
| "Name of the IS-IS protocol instance whose IS-IS | ||||
| information is being queried. | ||||
| If the IS-IS instance with name equal to the | /* RPC methods */ | |||
| value of this parameter doesn't exist, then this | ||||
| operation SHALL fail with error-tag 'data-missing' | ||||
| and error-app-tag | ||||
| 'routing-protocol-instance-not-found'."; | ||||
| } | ||||
| leaf level { | ||||
| type level; | ||||
| description | ||||
| "IS-IS level of the adjacency to be cleared. | ||||
| If IS-IS level is level-1-2, both level 1 and level 2 | ||||
| adjacencies would be cleared. | ||||
| If the value provided is different from the one | rpc clear-adjacency { | |||
| authorized in the enum type, then this | description | |||
| operation SHALL fail with error-tag 'data-missing' | "This RPC request clears a particular set of IS-IS | |||
| and error-app-tag | adjacencies. If the operation fails due to an internal | |||
| 'bad-isis-level'. | reason, then the error-tag and error-app-tag should be | |||
| "; | set indicating the reason for the failure."; | |||
| input { | ||||
| } | leaf routing-protocol-instance-name { | |||
| leaf interface { | type instance-state-ref; | |||
| type string; | mandatory "true"; | |||
| description | description | |||
| "Name of the IS-IS interface. | "Name of the IS-IS protocol instance whose IS-IS | |||
| information is being queried. | ||||
| If the IS-IS interface with name equal to the | If the corresponding IS-IS instance doesn't exist, | |||
| value of this parameter doesn't exist, then this | then the operation will fail with an error-tag of | |||
| operation SHALL fail with error-tag 'data-missing' | 'data-missing' and an error-app-tag of | |||
| and error-app-tag | 'routing-protocol-instance-not-found'."; | |||
| 'isis-interface-not-found'."; | } | |||
| } | leaf level { | |||
| } | type level; | |||
| } | description | |||
| "IS-IS level of the adjacency to be cleared. If the | ||||
| IS-IS level is level-1-2, both level 1 and level 2 | ||||
| adjacencies would be cleared. | ||||
| rpc clear-database { | If the value provided is different from the one | |||
| description | authorized in the enum type, then the operation | |||
| "This RPC request clears a particular | SHALL fail with an error-tag of 'data-missing' and | |||
| IS-IS database. If the operation | an error-app-tag of 'bad-isis-level'."; | |||
| fails for IS-IS internal reason, then | } | |||
| error-tag and error-app-tag should be set | leaf interface { | |||
| to a meaningful value."; | type string; | |||
| input { | description | |||
| leaf routing-protocol-instance-name { | "IS-IS interface name. | |||
| type instance-state-ref; | ||||
| mandatory "true"; | ||||
| description | ||||
| "Name of the IS-IS protocol instance whose IS-IS | ||||
| information is being queried. | ||||
| If the IS-IS instance with name equal to the | If the corresponding IS-IS interface doesn't exist, | |||
| value of this parameter doesn't exist, then this | then the operation SHALL fail with an error-tag of | |||
| operation SHALL fail with error-tag 'data-missing' | 'data-missing' and an error-app-tag of | |||
| and error-app-tag | 'isis-interface-not-found'."; | |||
| 'routing-protocol-instance-not-found'."; | } | |||
| } | } | |||
| leaf level { | } | |||
| type level; | ||||
| description | ||||
| "IS-IS level of the adjacency to be cleared. | ||||
| If IS-IS level is level-1-2, both level 1 and level 2 | ||||
| adjacencies would be cleared. | ||||
| If the value provided is different from the one | rpc clear-database { | |||
| authorized in the enum type, then this | description | |||
| operation SHALL fail with error-tag 'data-missing' | "This RPC request clears a particular IS-IS database. If | |||
| and error-app-tag | the operation fails for an IS-IS internal reason, then | |||
| 'bad-isis-level'. | the error-tag and error-app-tag should be set | |||
| indicating the reason for the failure."; | ||||
| input { | ||||
| leaf routing-protocol-instance-name { | ||||
| type instance-state-ref; | ||||
| mandatory "true"; | ||||
| description | ||||
| "Name of the IS-IS protocol instance whose IS-IS | ||||
| database(s) is/are being cleard. | ||||
| "; | If the corresponding IS-IS instance doesn't exist, | |||
| } | then the operation will fail with an error-tag of | |||
| } | 'data-missing' and an error-app-tag of | |||
| } | 'routing-protocol-instance-not-found'."; | |||
| } | ||||
| leaf level { | ||||
| type level; | ||||
| description | ||||
| "IS-IS level of the adjacency to be cleared. If the | ||||
| IS-IS level is level-1-2, both level 1 and level 2 | ||||
| databases would be cleared. | ||||
| /* Notifications */ | If the value provided is different from the one | |||
| authorized in the enum type, then the operation | ||||
| SHALL fail with an error-tag of 'data-missing' and | ||||
| an error-app-tag of 'bad-isis-level'."; | ||||
| } | ||||
| } | ||||
| } | ||||
| notification database-overload { | /* Notifications */ | |||
| uses notification-instance-hdr; | notification database-overload { | |||
| uses notification-instance-hdr; | ||||
| leaf overload { | leaf overload { | |||
| type enumeration { | type enumeration { | |||
| enum "off" { | enum off { | |||
| description | description | |||
| "The system has left overload condition."; | "Indicates IS-IS instance has left overload state"; | |||
| } | } | |||
| enum "on" { | enum on { | |||
| description | description | |||
| "The system is in overload condition."; | "Indicates IS-IS instance has entered overload state"; | |||
| } | } | |||
| } | } | |||
| description | description "New overload state of the IS-IS instance"; | |||
| "Describes the new overload state of the instance."; | } | |||
| } | description | |||
| description | "This notification is sent when an IS-IS instance | |||
| "This notification is sent when an IS-IS instance | overload state changes."; | |||
| overload condition changes."; | } | |||
| } | ||||
| notification lsp-too-large { | notification lsp-too-large { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf pdu-size { | leaf pdu-size { | |||
| type uint32; | type uint32; | |||
| description | description "Size of the LSP PDU"; | |||
| "Size of the PDU"; | } | |||
| } | leaf lsp-id { | |||
| leaf lsp-id { | type lsp-id; | |||
| type lsp-id; | description "LSP ID"; | |||
| description | } | |||
| "LSP ID."; | description | |||
| } | "This notification is sent when we attempt to propagate | |||
| description | an LSP that is larger than the dataLinkBlockSize for the | |||
| "This notification is sent when we attempt | circuit. The notification generation must be throttled | |||
| to propagate an LSP that is larger than the | with at least 5 seconds betweeen successive | |||
| dataLinkBlockSize for the circuit. | notifications."; | |||
| The notification generation must be throttled | } | |||
| with at least a 5 second gap. | ||||
| "; | ||||
| } | ||||
| notification if-state-change { | notification if-state-change { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf state { | leaf state { | |||
| type if-state-type; | type if-state-type; | |||
| description "Interface state."; | description "Interface state."; | |||
| } | } | |||
| description | description | |||
| "This notification is sent when an interface | "This notification is sent when an interface | |||
| state change is detected."; | state change is detected."; | |||
| } | } | |||
| notification corrupted-lsp-detected { | notification corrupted-lsp-detected { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| leaf lsp-id { | leaf lsp-id { | |||
| type lsp-id; | type lsp-id; | |||
| description | description "LSP ID"; | |||
| "LSP ID."; | } | |||
| } | description | |||
| description | "This notification is sent when we find that | |||
| "This notification is sent when we find | an LSP that was stored in memory has become | |||
| that an LSP that was stored in memory has | corrupted."; | |||
| become corrupted. | } | |||
| "; | ||||
| } | ||||
| notification attempt-to-exceed-max-sequence { | notification attempt-to-exceed-max-sequence { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| leaf lsp-id { | leaf lsp-id { | |||
| type lsp-id; | type lsp-id; | |||
| description | description "LSP ID"; | |||
| "LSP ID."; | } | |||
| } | description | |||
| description | "This notification is sent when the system | |||
| "This notification is sent when the system | wraps the 32-bit sequence counter of an LSP."; | |||
| wraps the 32-bit sequence counter of an LSP. | } | |||
| "; | ||||
| } | ||||
| notification id-len-mismatch { | notification id-len-mismatch { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf pdu-field-len { | leaf pdu-field-len { | |||
| type uint8; | type uint8; | |||
| description | description "Size of the ID length in the received PDU"; | |||
| "Size of the ID length in the received PDU"; | } | |||
| } | leaf raw-pdu { | |||
| leaf raw-pdu { | type binary; | |||
| type binary; | description "Received raw PDU."; | |||
| description | } | |||
| "Received raw PDU."; | description | |||
| } | "This notification is sent when we receive a PDU | |||
| description | with a different value for the System ID length. | |||
| "This notification is sent when we receive a PDU | The notification generation must be throttled | |||
| with a different value for the System ID length. | with at least 5 seconds betweeen successive | |||
| The notification generation must be throttled | notifications."; | |||
| with at least a 5 second gap. | ||||
| "; | ||||
| } | ||||
| notification max-area-addresses-mismatch { | } | |||
| uses notification-instance-hdr; | ||||
| uses notification-interface-hdr; | ||||
| leaf max-area-addresses { | notification max-area-addresses-mismatch { | |||
| type uint8; | uses notification-instance-hdr; | |||
| description | uses notification-interface-hdr; | |||
| "Received number of supported areas"; | ||||
| } | ||||
| leaf raw-pdu { | ||||
| type binary; | ||||
| description | ||||
| "Received raw PDU."; | ||||
| } | ||||
| description | ||||
| "This notification is sent when we receive a PDU | ||||
| with a different value for the Maximum Area Addresses. | ||||
| The notification generation must be throttled | ||||
| with at least a 5 second gap. | ||||
| "; | ||||
| } | ||||
| notification own-lsp-purge { | leaf max-area-addresses { | |||
| uses notification-instance-hdr; | type uint8; | |||
| uses notification-interface-hdr; | description "Received number of supported areas"; | |||
| leaf lsp-id { | } | |||
| type lsp-id; | leaf raw-pdu { | |||
| description | type binary; | |||
| "LSP ID."; | description "Received raw PDU."; | |||
| } | } | |||
| description | description | |||
| "This notification is sent when the system | "This notification is sent when we receive a PDU | |||
| receives a PDU with its own system ID and zero age. | with a different value for the Maximum Area Addresses. | |||
| "; | The notification generation must be throttled | |||
| } | with at least 5 seconds betweeen successive | |||
| notifications."; | ||||
| } | ||||
| notification sequence-number-skipped { | notification own-lsp-purge { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf lsp-id { | leaf lsp-id { | |||
| type lsp-id; | type lsp-id; | |||
| description | description "LSP ID"; | |||
| "LSP ID."; | } | |||
| } | description | |||
| description | "This notification is sent when the system receives | |||
| "This notification is sent when the system | a PDU with its own system ID and zero age."; | |||
| receives a PDU with its own system ID and | } | |||
| different contents. The system has to reissue | ||||
| the LSP with a higher sequence number. | ||||
| "; | ||||
| } | ||||
| notification authentication-type-failure { | notification sequence-number-skipped { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf raw-pdu { | leaf lsp-id { | |||
| type binary; | type lsp-id; | |||
| description | description "LSP ID"; | |||
| "Received raw PDU."; | } | |||
| } | description | |||
| description | "This notification is sent when the system receives a | |||
| "This notification is sent when the system | PDU with its own system ID and different contents. The | |||
| receives a PDU with the wrong authentication type | system has to reoriginate the LSP with a higher sequence | |||
| field. | number."; | |||
| The notification generation must be throttled with | } | |||
| at least a 5 second gap. | notification authentication-type-failure { | |||
| "; | uses notification-instance-hdr; | |||
| } | uses notification-interface-hdr; | |||
| leaf raw-pdu { | ||||
| type binary; | ||||
| description "Received raw PDU."; | ||||
| } | ||||
| description | ||||
| "This notification is sent when the system receives a | ||||
| PDU with the wrong authentication type field. | ||||
| The notification generation must be throttled | ||||
| with at least 5 seconds betweeen successive | ||||
| notifications."; | ||||
| } | ||||
| notification authentication-failure { | notification authentication-failure { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf raw-pdu { | leaf raw-pdu { | |||
| type binary; | type binary; | |||
| description | description "Received raw PDU."; | |||
| "Received raw PDU."; | } | |||
| description | ||||
| "This notification is sent when the system receives | ||||
| a PDU with the wrong authentication information. | ||||
| The notification generation must be throttled with | ||||
| with at least 5 seconds betweeen successive | ||||
| notifications."; | ||||
| } | ||||
| } | notification version-skew { | |||
| description | uses notification-instance-hdr; | |||
| "This notification is sent when the system | uses notification-interface-hdr; | |||
| receives a PDU with the wrong authentication | leaf protocol-version { | |||
| information. | type uint8; | |||
| The notification generation must be throttled with | description "Protocol version received in the PDU."; | |||
| at least a 5 second gap. | } | |||
| "; | leaf raw-pdu { | |||
| } | type binary; | |||
| description "Received raw PDU."; | ||||
| } | ||||
| description | ||||
| "This notification is sent when the system receives a | ||||
| PDU with a different protocol version number. | ||||
| The notification generation must be throttled | ||||
| with at least 5 seconds betweeen successive | ||||
| notifications."; | ||||
| } | ||||
| notification area-mismatch { | ||||
| uses notification-instance-hdr; | ||||
| uses notification-interface-hdr; | ||||
| leaf raw-pdu { | ||||
| type binary; | ||||
| description "Received raw PDU."; | ||||
| } | ||||
| description | ||||
| "This notification is sent when the system receives a | ||||
| Hello PDU from an IS that does not share any area | ||||
| address. The notification generation must be throttled | ||||
| with at least 5 seconds betweeen successive | ||||
| notifications."; | ||||
| } | ||||
| notification version-skew { | notification rejected-adjacency { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf protocol-version { | leaf raw-pdu { | |||
| type uint8; | type binary; | |||
| description | description | |||
| "Protocol version received in the PDU."; | "Received raw PDU."; | |||
| } | } | |||
| leaf raw-pdu { | leaf reason { | |||
| type binary; | type string; | |||
| description | description | |||
| "Received raw PDU."; | "The system may provide a reason to reject the | |||
| } | adjacency. If the reason is not available, | |||
| description | an empty string will be returned."; | |||
| "This notification is sent when the system | } | |||
| receives a PDU with a different protocol version | description | |||
| number. | "This notification is sent when the system receives a | |||
| The notification generation must be throttled with at least | Hello PDU from an IS but does not establish an adjacency | |||
| a 5 second gap. | for some reason. The notification generation must be | |||
| "; | throttled with at least 5 seconds betweeen successive | |||
| } | notifications."; | |||
| } | ||||
| notification area-mismatch { | notification protocols-supported-mismatch { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf raw-pdu { | leaf raw-pdu { | |||
| type binary; | type binary; | |||
| description | description "Received raw PDU."; | |||
| "Received raw PDU."; | } | |||
| } | leaf-list protocols { | |||
| description | type uint8; | |||
| "This notification is sent when the system | description | |||
| receives a Hello PDU from an IS that does | "List of protocols supported by the remote system."; | |||
| not share any area address. | } | |||
| The notification generation must be throttled with at least | description | |||
| a 5 second gap. | "This notification is sent when the system receives a | |||
| "; | non-pseudonode LSP that has no matching protocols | |||
| } | supported. The notification generation must be throttled | |||
| notification rejected-adjacency { | with at least 5 seconds betweeen successive | |||
| uses notification-instance-hdr; | notifications."; | |||
| uses notification-interface-hdr; | } | |||
| leaf raw-pdu { | ||||
| type binary; | ||||
| description | ||||
| "Received raw PDU."; | ||||
| } | ||||
| leaf reason { | ||||
| type string; | ||||
| description | ||||
| "The system may provide a reason to reject the | ||||
| adjacency. If the reason is not available, | ||||
| the system use an empty string."; | ||||
| } | ||||
| description | ||||
| "This notification is sent when the system | ||||
| receives a Hello PDU from an IS but does not | ||||
| establish an adjacency for some reason. | ||||
| The notification generation must be throttled with at least | ||||
| a 5 second gap. | ||||
| "; | ||||
| } | ||||
| notification protocols-supported-mismatch { | notification lsp-error-detected { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf raw-pdu { | leaf lsp-id { | |||
| type binary; | type lsp-id; | |||
| description | description "LSP ID."; | |||
| "Received raw PDU."; | } | |||
| } | leaf raw-pdu { | |||
| leaf-list protocols { | type binary; | |||
| type uint8; | description "Received raw PDU."; | |||
| description | } | |||
| "The list of protocols supported by the | leaf error-offset { | |||
| remote system."; | type uint32; | |||
| } | description | |||
| description | "If the problem is a malformed TLV, the error-offset | |||
| "This notification is sent when the system | points to the start of the TLV. If the problem is with | |||
| receives a non pseudonode LSP that has no matching | the LSP header, the error-offset points to the errant | |||
| protocol supported. | byte"; | |||
| The notification generation must be throttled with at least | } | |||
| a 5 second gap. | leaf tlv-type { | |||
| "; | type uint8; | |||
| } | description | |||
| notification lsp-error-detected { | "If the problem is a malformed TLV, the tlv-type is set | |||
| uses notification-instance-hdr; | to the type value of the suspicious TLV. Otherwise, | |||
| uses notification-interface-hdr; | this leaf is not present."; | |||
| leaf lsp-id { | } | |||
| type lsp-id; | description | |||
| description | "This notification is sent when the system receives an | |||
| "LSP ID."; | ' LSP with a parse error. The notification generation must | |||
| } | be throttled with at least 5 seconds betweeen successive | |||
| leaf raw-pdu { | notifications."; | |||
| type binary; | } | |||
| description | ||||
| "Received raw PDU."; | ||||
| } | ||||
| leaf error-offset { | ||||
| type uint32; | ||||
| description | ||||
| "If the problem is a malformed TLV, | ||||
| the error-offset points to the start of the TLV. | ||||
| If the problem is with the LSP header, | ||||
| the error-offset points to the suspicious byte"; | ||||
| } | ||||
| leaf tlv-type { | ||||
| type uint8; | ||||
| description | ||||
| "if the problem is a malformed TLV, the tlv-type is set | ||||
| to the type value of the suspicious TLV. | ||||
| Otherwise this leaf is not present."; | ||||
| } | ||||
| description | ||||
| "This notification is sent when the system | ||||
| receives a LSP with a parse error. | ||||
| The notification generation must be throttled with at least | ||||
| a 5 second gap. | ||||
| "; | ||||
| } | ||||
| notification adjacency-state-change { | notification adjacency-state-change { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf neighbor { | leaf neighbor { | |||
| type string; | type string; | |||
| description | description | |||
| "Describes the name of the neighbor. If the | "Name of the neighbor. If the name of the neighbor is | |||
| name of the neighbor is not available, the | not available, it is not returned."; | |||
| field would be empty."; | } | |||
| } | leaf neighbor-system-id { | |||
| leaf neighbor-system-id { | type system-id; | |||
| type system-id; | description "Neighbor system-id"; | |||
| description | } | |||
| "Describes the system-id of the neighbor."; | leaf state { | |||
| } | type adj-state-type; | |||
| leaf state { | ||||
| type adj-state-type; | ||||
| description | description "New state of the IS-IS adjacency."; | |||
| "This leaf describes the new state of the | } | |||
| IS-IS adjacency."; | leaf reason { | |||
| } | type string; | |||
| leaf reason { | description | |||
| type string; | "If the adjacency is going to DOWN, this leaf provides | |||
| description | a reason for the adjacency going down. The reason is | |||
| "If the adjacency is going to DOWN, | provided as a text. If the adjacency is going to UP, no | |||
| this leaf provides a reason for the adjacency | reason is provided."; | |||
| going down. The reason is provided as a text. | } | |||
| If the adjacency is going to UP, no reason is | description | |||
| provided."; | "This notification is sent when an IS-IS adjacency | |||
| } | moves to Up state or to Down state."; | |||
| description | } | |||
| "This notification is sent when an IS-IS adjacency | ||||
| moves to Up state or to Down state."; | ||||
| } | ||||
| notification lsp-received { | notification lsp-received { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf lsp-id { | leaf lsp-id { | |||
| type lsp-id; | type lsp-id; | |||
| description | description "LSP ID"; | |||
| "LSP ID."; | } | |||
| } | leaf sequence { | |||
| leaf sequence { | type uint32; | |||
| type uint32; | description "Sequence number of the received LSP."; | |||
| description | } | |||
| "Sequence number of the received LSP."; | leaf received-timestamp { | |||
| } | type yang:timestamp; | |||
| leaf received-timestamp { | ||||
| type yang:timestamp; | ||||
| description | description "Timestamp when the LSP was received."; | |||
| "This leaf describes the timestamp | } | |||
| when the LSP was received. "; | leaf neighbor-system-id { | |||
| } | type system-id; | |||
| leaf neighbor-system-id { | description "Neighbor system-id of LSP sender"; | |||
| type system-id; | } | |||
| description | description | |||
| "Describes the system-id of the neighbor | "This notification is sent when an LSP is received. | |||
| that sent the LSP."; | The notification generation must be throttled with at | |||
| least 5 seconds betweeen successive notifications."; | ||||
| } | } | |||
| description | ||||
| "This notification is sent when a LSP | ||||
| is received. | ||||
| The notification generation must be throttled with at least | ||||
| a 5 second gap. "; | ||||
| } | ||||
| notification lsp-generation { | notification lsp-generation { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| leaf lsp-id { | ||||
| type lsp-id; | ||||
| description | ||||
| "LSP ID."; | ||||
| } | ||||
| leaf sequence { | ||||
| type uint32; | ||||
| description | ||||
| "Sequence number of the received LSP."; | ||||
| } | ||||
| leaf send-timestamp { | ||||
| type yang:timestamp; | ||||
| description | leaf lsp-id { | |||
| "This leaf describes the timestamp | type lsp-id; | |||
| when our LSP was regenerated. "; | description "LSP ID"; | |||
| } | } | |||
| description | leaf sequence { | |||
| "This notification is sent when a LSP | type uint32; | |||
| is regenerated. | description "Sequence number of the received LSP."; | |||
| The notification generation must be throttled with at least | } | |||
| a 5 second gap. "; | leaf send-timestamp { | |||
| } | type yang:timestamp; | |||
| } | ||||
| <CODE ENDS> | description "Timestamp when our LSP was regenerated."; | |||
| } | ||||
| description | ||||
| "This notification is sent when an LSP is regenerated. | ||||
| The notification generation must be throttled with at | ||||
| least 5 seconds betweeen successive notifications."; | ||||
| } | ||||
| } | ||||
| <CODE ENDS> | ||||
| 7. Security Considerations | 7. Security Considerations | |||
| Configuration and state data defined in this document are designed to | Configuration and state data defined in this document are designed to | |||
| be accessed via the NETCONF protocol [RFC6241]. | be accessed via the NETCONF protocol [RFC6241]. | |||
| As IS-IS is an IGP protocol (critical piece of the network), ensuring | As IS-IS is an IGP protocol (critical piece of the network), ensuring | |||
| stability and security of the protocol is mandatory for the network | stability and security of the protocol is mandatory for the network | |||
| service. | service. | |||
| skipping to change at page 103, line 10 ¶ | skipping to change at page 95, line 47 ¶ | |||
| 9. Acknowledgements | 9. Acknowledgements | |||
| TBD. | TBD. | |||
| 10. IANA Considerations | 10. IANA Considerations | |||
| The IANA is requested to assign two new URIs from the IETF XML | The IANA is requested to assign two new URIs from the IETF XML | |||
| registry ([RFC3688]). Authors are suggesting the following URI: | registry ([RFC3688]). Authors are suggesting the following URI: | |||
| URI: urn:ietf:params:xml:ns:yang:ietf-isis | URI: urn:ietf:params:xml:ns:yang:ietf-isis | |||
| Registrant Contact: IS-IS WG | Registrant Contact: IS-IS WG | |||
| XML: N/A, the requested URI is an XML namespace | XML: N/A, the requested URI is an XML namespace | |||
| This document also requests one new YANG module name in the YANG | This document also requests one new YANG module name in the YANG | |||
| Module Names registry ([RFC6020]) with the following suggestion: | Module Names registry ([RFC6020]) with the following suggestion: | |||
| name: ietf-isis | name: ietf-isis | |||
| namespace: urn:ietf:params:xml:ns:yang:ietf-isis | namespace: urn:ietf:params:xml:ns:yang:ietf-isis | |||
| prefix: isis | prefix: isis | |||
| reference: RFC XXXX | reference: RFC XXXX | |||
| 11. Change log for ietf-isis YANG module | 11. Change log for ietf-isis YANG module | |||
| 11.1. From version -19 to version -20 | 11.1. From version -19 to version -20 | |||
| o Moved to Yang 1.1 | o Moved to Yang 1.1 | |||
| o Lower case enumerations | o Lower case enumerations | |||
| o Add RFC references to features | o Add RFC references to features | |||
| skipping to change at page 107, line 50 ¶ | skipping to change at page 100, line 37 ¶ | |||
| Lhotka, L. and A. Lindem, "A YANG Data Model for Routing | Lhotka, L. and A. Lindem, "A YANG Data Model for Routing | |||
| Management", draft-ietf-netmod-routing-cfg-25 (work in | Management", draft-ietf-netmod-routing-cfg-25 (work in | |||
| progress), November 2016. | progress), November 2016. | |||
| [I-D.ietf-rtgwg-yang-key-chain] | [I-D.ietf-rtgwg-yang-key-chain] | |||
| Lindem, A., Qu, Y., Yeung, D., Chen, I., and Z. Zhang, | Lindem, A., Qu, Y., Yeung, D., Chen, I., and Z. Zhang, | |||
| "Routing Key Chain YANG Data Model", draft-ietf-rtgwg- | "Routing Key Chain YANG Data Model", draft-ietf-rtgwg- | |||
| yang-key-chain-24 (work in progress), April 2017. | yang-key-chain-24 (work in progress), April 2017. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/ | Requirement Levels", BCP 14, RFC 2119, | |||
| RFC2119, March 1997, <https://www.rfc-editor.org/info/ | DOI 10.17487/RFC2119, March 1997, <https://www.rfc- | |||
| rfc2119>. | editor.org/info/rfc2119>. | |||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
| DOI 10.17487/RFC3688, January 2004, <https://www.rfc- | DOI 10.17487/RFC3688, January 2004, <https://www.rfc- | |||
| editor.org/info/rfc3688>. | editor.org/info/rfc3688>. | |||
| [RFC5120] Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi | [RFC5120] Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi | |||
| Topology (MT) Routing in Intermediate System to | Topology (MT) Routing in Intermediate System to | |||
| Intermediate Systems (IS-ISs)", RFC 5120, DOI 10.17487/ | Intermediate Systems (IS-ISs)", RFC 5120, | |||
| RFC5120, February 2008, <https://www.rfc-editor.org/info/ | DOI 10.17487/RFC5120, February 2008, <https://www.rfc- | |||
| rfc5120>. | editor.org/info/rfc5120>. | |||
| [RFC5286] Atlas, A., Ed. and A. Zinin, Ed., "Basic Specification for | [RFC5286] Atlas, A., Ed. and A. Zinin, Ed., "Basic Specification for | |||
| IP Fast Reroute: Loop-Free Alternates", RFC 5286, DOI | IP Fast Reroute: Loop-Free Alternates", RFC 5286, | |||
| 10.17487/RFC5286, September 2008, <https://www.rfc- | DOI 10.17487/RFC5286, September 2008, <https://www.rfc- | |||
| editor.org/info/rfc5286>. | editor.org/info/rfc5286>. | |||
| [RFC5443] Jork, M., Atlas, A., and L. Fang, "LDP IGP | [RFC5443] Jork, M., Atlas, A., and L. Fang, "LDP IGP | |||
| Synchronization", RFC 5443, DOI 10.17487/RFC5443, March | Synchronization", RFC 5443, DOI 10.17487/RFC5443, March | |||
| 2009, <https://www.rfc-editor.org/info/rfc5443>. | 2009, <https://www.rfc-editor.org/info/rfc5443>. | |||
| [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | |||
| the Network Configuration Protocol (NETCONF)", RFC 6020, | the Network Configuration Protocol (NETCONF)", RFC 6020, | |||
| DOI 10.17487/RFC6020, October 2010, <https://www.rfc- | DOI 10.17487/RFC6020, October 2010, <https://www.rfc- | |||
| editor.org/info/rfc6020>. | editor.org/info/rfc6020>. | |||
| skipping to change at page 108, line 39 ¶ | skipping to change at page 101, line 29 ¶ | |||
| [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | |||
| and A. Bierman, Ed., "Network Configuration Protocol | and A. Bierman, Ed., "Network Configuration Protocol | |||
| (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | |||
| <https://www.rfc-editor.org/info/rfc6241>. | <https://www.rfc-editor.org/info/rfc6241>. | |||
| [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure | [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure | |||
| Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, | Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, | |||
| <https://www.rfc-editor.org/info/rfc6242>. | <https://www.rfc-editor.org/info/rfc6242>. | |||
| [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration | [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration | |||
| Protocol (NETCONF) Access Control Model", RFC 6536, DOI | Protocol (NETCONF) Access Control Model", RFC 6536, | |||
| 10.17487/RFC6536, March 2012, <https://www.rfc- | DOI 10.17487/RFC6536, March 2012, <https://www.rfc- | |||
| editor.org/info/rfc6536>. | editor.org/info/rfc6536>. | |||
| [RFC7490] Bryant, S., Filsfils, C., Previdi, S., Shand, M., and N. | [RFC7490] Bryant, S., Filsfils, C., Previdi, S., Shand, M., and N. | |||
| So, "Remote Loop-Free Alternate (LFA) Fast Reroute (FRR)", | So, "Remote Loop-Free Alternate (LFA) Fast Reroute (FRR)", | |||
| RFC 7490, DOI 10.17487/RFC7490, April 2015, | RFC 7490, DOI 10.17487/RFC7490, April 2015, | |||
| <https://www.rfc-editor.org/info/rfc7490>. | <https://www.rfc-editor.org/info/rfc7490>. | |||
| Appendix A. Example of IS-IS configuration in XML | Appendix A. Example of IS-IS configuration in XML | |||
| This section gives an example of configuration of an IS-IS instance | This section gives an example of configuration of an IS-IS instance | |||
| skipping to change at page 109, line 15 ¶ | skipping to change at page 102, line 4 ¶ | |||
| <?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | |||
| <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> | <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> | |||
| <routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> | <routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> | |||
| <name>SLI</name> | <name>SLI</name> | |||
| <router-id>1.1.1.1</router-id> | <router-id>1.1.1.1</router-id> | |||
| <description/> | <description/> | |||
| <interfaces> | <interfaces> | |||
| <interface> | <interface> | |||
| <name>Loopback0</name> | <name>Loopback0</name> | |||
| </interface> | </interface> | |||
| <interface> | <interface> | |||
| <name>Eth1</name> | <name>Eth1</name> | |||
| </interface> | </interface> | |||
| </interfaces> | </interfaces> | |||
| <control-plane-protocols> | <control-plane-protocols> | |||
| <control-plane-protocol> | <control-plane-protocol> | |||
| <name>ISIS</name> | <name>ISIS</name> | |||
| <description/> | <description/> | |||
| <type>isis:isis</type> | <type>isis:isis</type> | |||
| <isis xmlns="urn:ietf:params:xml:ns:yang:ietf-isis"> | <isis xmlns="urn:ietf:params:xml:ns:yang:ietf-isis"> | |||
| <enable>true</enable> | <enable>true</enable> | |||
| <level-type>level-2</level-type> | <level-type>level-2</level-type> | |||
| <system-id>87FC.FCDF.4432</system-id> | <system-id>87FC.FCDF.4432</system-id> | |||
| <area-address>49.0001</area-address> | <area-address>49.0001</area-address> | |||
| <mpls-te> | <mpls-te> | |||
| <ipv4-router-id>1.1.1.1</ipv4-router-id> | <ipv4-router-id>1.1.1.1</ipv4-router-id> | |||
| </mpls-te> | </mpls-te> | |||
| <lsp-lifetime>65535</lsp-lifetime> | <lsp-lifetime>65535</lsp-lifetime> | |||
| <lsp-refresh>65000</lsp-refresh> | <lsp-refresh>65000</lsp-refresh> | |||
| <metric-type> | <metric-type> | |||
| <value>wide</value> | <value>wide</value> | |||
| </metric-type> | </metric-type> | |||
| <default-metric> | <default-metric> | |||
| <value>111111</value> | <value>111111</value> | |||
| </default-metric> | </default-metric> | |||
| <afs> | <afs> | |||
| <af> | <af> | |||
| <af>ipv4-unicast</af> | <af>ipv4-unicast</af> | |||
| <enabled>true</enabled> | <enabled>true</enabled> | |||
| </af> | </af> | |||
| </afs> | </afs> | |||
| <interfaces> | <interfaces> | |||
| <interface> | <interface> | |||
| <name>Loopback0</name> | <name>Loopback0</name> | |||
| <tag>200</tag> | <tag>200</tag> | |||
| <metric> | <metric> | |||
| <value>0</value> | <value>0</value> | |||
| </metric> | </metric> | |||
| <passive>true</passive> | <passive>true</passive> | |||
| </interface> | </interface> | |||
| <interface> | <interface> | |||
| <name>Eth1</name> | <name>Eth1</name> | |||
| <level-type>level-2</level-type> | <level-type>level-2</level-type> | |||
| <interface-type>point-to-point</interface-type> | <interface-type>point-to-point | |||
| </interface-type> | ||||
| <metric> | <metric> | |||
| <value>167890</value> | <value>167890</value> | |||
| </metric> | </metric> | |||
| </interface> | </interface> | |||
| </interfaces> | </interfaces> | |||
| </isis> | </isis> | |||
| </control-plane-protocol> | </control-plane-protocol> | |||
| </control-plane-protocols> | </control-plane-protocols> | |||
| </routing> | </routing> | |||
| <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"> | <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"> | |||
| <interface> | <interface> | |||
| <name>Loopback0</name> | <name>Loopback0</name> | |||
| <description/> | <description/> | |||
| skipping to change at page 110, line 34 ¶ | skipping to change at page 103, line 26 ¶ | |||
| <link-up-down-trap-enable/> | <link-up-down-trap-enable/> | |||
| <ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> | <ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> | |||
| <mtu/> | <mtu/> | |||
| <address> | <address> | |||
| <ip>1.1.1.1</ip> | <ip>1.1.1.1</ip> | |||
| <prefix-length>32</prefix-length> | <prefix-length>32</prefix-length> | |||
| </address> | </address> | |||
| </ipv4> | </ipv4> | |||
| </interface> | </interface> | |||
| <interface> | <interface> | |||
| <name>Eth1</name> | <name>Eth1</name> | |||
| <description/> | <description/> | |||
| <type/> | <type/> | |||
| <link-up-down-trap-enable/> | <link-up-down-trap-enable/> | |||
| <ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> | <ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> | |||
| <mtu/> | <mtu/> | |||
| <address> | <address> | |||
| <ip>10.0.0.1</ip> | <ip>10.0.0.1</ip> | |||
| <prefix-length>30</prefix-length> | <prefix-length>30</prefix-length> | |||
| </address> | </address> | |||
| End of changes. 301 change blocks. | ||||
| 3694 lines changed or deleted | 3317 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/ | ||||