| < draft-ietf-isis-yang-isis-cfg-24.txt | draft-ietf-isis-yang-isis-cfg-25.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: February 10, 2019 Arrcus, Inc | Expires: May 30, 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 | |||
| August 09, 2018 | November 26, 2018 | |||
| YANG Data Model for IS-IS protocol | YANG Data Model for IS-IS protocol | |||
| draft-ietf-isis-yang-isis-cfg-24 | draft-ietf-isis-yang-isis-cfg-25 | |||
| 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", "NOT RECOMMENDED", "MAY", and | |||
| document are to be interpreted as described in [RFC2119]. | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | ||||
| capitals, as shown here. | ||||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| 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 https://datatracker.ietf.org/drafts/current/. | Drafts is at https://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 February 10, 2019. | This Internet-Draft will expire on May 30, 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 | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.1. Tree diagram . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 4 | 2.1. IS-IS Configuration . . . . . . . . . . . . . . . . . . . 9 | |||
| 2.1. IS-IS Configuration . . . . . . . . . . . . . . . . . . . 10 | 2.2. Multitopology Parameters . . . . . . . . . . . . . . . . 9 | |||
| 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 . . . . . . . . . . . . . . . . 11 | |||
| 2.5. Authentication Parameters . . . . . . . . . . . . . . . . 23 | 2.5. Authentication Parameters . . . . . . . . . . . . . . . . 17 | |||
| 2.6. IGP/LDP synchronization . . . . . . . . . . . . . . . . . 23 | 2.6. IGP/LDP synchronization . . . . . . . . . . . . . . . . . 17 | |||
| 2.7. ISO parameters . . . . . . . . . . . . . . . . . . . . . 24 | 2.7. ISO parameters . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 2.8. IP FRR . . . . . . . . . . . . . . . . . . . . . . . . . 24 | 2.8. IP FRR . . . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 2.9. Operational States . . . . . . . . . . . . . . . . . . . 24 | 2.9. Operational States . . . . . . . . . . . . . . . . . . . 18 | |||
| 3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 25 | 3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 25 | 4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 5. Interaction with Other YANG Modules . . . . . . . . . . . . . 26 | 5. Interaction with Other YANG Modules . . . . . . . . . . . . . 20 | |||
| 6. IS-IS YANG Module . . . . . . . . . . . . . . . . . . . . . . 27 | 6. IS-IS YANG Module . . . . . . . . . . . . . . . . . . . . . . 21 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 95 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 100 | |||
| 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 96 | 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 101 | |||
| 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 96 | 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 101 | |||
| 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 96 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 101 | |||
| 11. Change log for ietf-isis YANG module . . . . . . . . . . . . 96 | 11. Change log for ietf-isis YANG module . . . . . . . . . . . . 101 | |||
| 11.1. From version -22 to version -24 . . . . . . . . . . . . 96 | 11.1. From version -24 to version -25 . . . . . . . . . . . . 101 | |||
| 11.2. From version -21 to version -22 . . . . . . . . . . . . 96 | 11.2. From version -22 to version -24 . . . . . . . . . . . . 102 | |||
| 11.3. From version -20 to version -21 . . . . . . . . . . . . 96 | 11.3. From version -21 to version -22 . . . . . . . . . . . . 102 | |||
| 11.4. From version -19 to version -20 . . . . . . . . . . . . 97 | 11.4. From version -20 to version -21 . . . . . . . . . . . . 103 | |||
| 11.5. From version -18 to version -19 . . . . . . . . . . . . 97 | 11.5. From version -19 to version -20 . . . . . . . . . . . . 103 | |||
| 11.6. From version -17 to version -18 . . . . . . . . . . . . 97 | 11.6. From version -18 to version -19 . . . . . . . . . . . . 103 | |||
| 11.7. From version -16 to version -17 . . . . . . . . . . . . 97 | 11.7. From version -17 to version -18 . . . . . . . . . . . . 103 | |||
| 11.8. From version -15 to version -16 . . . . . . . . . . . . 97 | 11.8. From version -16 to version -17 . . . . . . . . . . . . 103 | |||
| 11.9. From version -14 to version -15 . . . . . . . . . . . . 97 | 11.9. From version -15 to version -16 . . . . . . . . . . . . 103 | |||
| 11.10. From version -13 to version -14 . . . . . . . . . . . . 98 | 11.10. From version -14 to version -15 . . . . . . . . . . . . 104 | |||
| 11.11. From version -12 to version -13 . . . . . . . . . . . . 98 | 11.11. From version -13 to version -14 . . . . . . . . . . . . 104 | |||
| 11.12. From version -09 to version -12 . . . . . . . . . . . . 98 | 11.12. From version -12 to version -13 . . . . . . . . . . . . 104 | |||
| 11.13. From version -08 to version -09 . . . . . . . . . . . . 98 | 11.13. From version -09 to version -12 . . . . . . . . . . . . 104 | |||
| 11.14. From version -07 to version -08 . . . . . . . . . . . . 99 | 11.14. From version -08 to version -09 . . . . . . . . . . . . 105 | |||
| 11.15. From version -05 to version -07 . . . . . . . . . . . . 99 | 11.15. From version -07 to version -08 . . . . . . . . . . . . 105 | |||
| 11.16. From version -03 to version -05 . . . . . . . . . . . . 99 | 11.16. From version -05 to version -07 . . . . . . . . . . . . 105 | |||
| 11.17. From version -02 to version -03 . . . . . . . . . . . . 99 | 11.17. From version -03 to version -05 . . . . . . . . . . . . 105 | |||
| 11.18. From version -01 to version -02 . . . . . . . . . . . . 100 | 11.18. From version -02 to version -03 . . . . . . . . . . . . 106 | |||
| 11.19. From version -00 to version -01 . . . . . . . . . . . . 100 | 11.19. From version -01 to version -02 . . . . . . . . . . . . 106 | |||
| 12. Normative References . . . . . . . . . . . . . . . . . . . . 101 | 11.20. From version -00 to version -01 . . . . . . . . . . . . 106 | |||
| Appendix A. Example of IS-IS configuration in XML . . . . . . . 102 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 107 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 104 | 12.1. Normative References . . . . . . . . . . . . . . . . . . 107 | |||
| 12.2. Informative References . . . . . . . . . . . . . . . . . 109 | ||||
| Appendix A. Example of IS-IS configuration in XML . . . . . . . 109 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 112 | ||||
| 1. Introduction | 1. Introduction | |||
| This document defines a YANG data model for IS-IS routing protocol. | This document defines a YANG ([RFC7950]) 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 | A simplified tree representation of the data model is presented in | |||
| Section 2. Tree diagrams used in this document follow the notation | ||||
| A simplified graphical representation of the data model is presented | defined in [RFC8340]. | |||
| in Section 2. | ||||
| The meaning of the symbols in these diagrams is as follows: | ||||
| o Brackets "[" and "]" enclose list keys. | ||||
| o Curly braces "{" and "}" contain names of optional features that | ||||
| make the corresponding node conditional. | ||||
| o Abbreviations before data node names: "rw" means configuration | ||||
| (read-write), and "ro" state data (read-only). | ||||
| o Symbols after data node names: "?" means an optional node and "*" | ||||
| denotes a "list" or "leaf-list". | ||||
| o Parentheses enclose choice and case nodes, and case nodes are also | ||||
| marked with a colon (":"). | ||||
| o Ellipsis ("...") stands for contents of subtrees that are not | The module is designed as per NMDA (Network Management Datastore | |||
| shown. | Architecture) [RFC8342]. | |||
| 2. Design of the Data Model | 2. Design of the Data Model | |||
| 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 (defined in [RFC8349]) with specific IS-IS | |||
| parameters. | ||||
| The module is designed as per NMDA (Network Management Datastore | ||||
| 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/ | augment | |||
| | rt:control-plane-protocol: | /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol: | |||
| +--rw isis | ||||
| +--rw enable? boolean {admin-control}? | ||||
| +--rw level-type? level | ||||
| +--rw system-id? system-id | ||||
| +--rw maximum-area-addresses? uint8 {maximum-area-addresses}? | ||||
| +--rw area-address* area-address | ||||
| +--rw mpls | ||||
| | +--rw te-rid {te-rid}? | ||||
| | | ... | ||||
| | +--rw ldp | ||||
| | ... | ||||
| +--rw auto-cost {auto-cost}? | ||||
| | +--rw reference-bandwidth? uint32 | ||||
| | +--rw enable? boolean | ||||
| +--rw lsp-mtu? uint16 | ||||
| +--rw lsp-lifetime? uint16 | ||||
| +--rw lsp-refresh? | ||||
| | rt-types:timer-value-seconds16 {lsp-refresh}? | ||||
| +--rw graceful-restart {graceful-restart}? | ||||
| | +--rw enable? boolean | ||||
| | +--rw restart-interval? rt-types:timer-value-seconds16 | ||||
| | +--rw helper-enable? boolean | ||||
| +--rw nsr {nsr}? | ||||
| | +--rw enable? boolean | ||||
| +--rw node-tags {node-tag}? | ||||
| | +--rw node-tag* [tag] | ||||
| | ... | ||||
| +--rw authentication | +--rw isis | |||
| | +--rw (authentication-type)? | +--rw enable? boolean {admin-control}? | |||
| | | ... | +--rw level-type? level | |||
| | +--rw level-1 | +--rw system-id? system-id | |||
| | | ... | +--rw maximum-area-addresses? uint8 {maximum-area-addresses}? | |||
| | +--rw level-2 | +--rw area-address* area-address | |||
| | ... | +--rw lsp-mtu? uint16 | |||
| +--rw metric-type | +--rw lsp-lifetime? uint16 | |||
| | +--rw value? enumeration | +--rw lsp-refresh? rt-types:timer-value-seconds16 | |||
| | +--rw level-1 | {lsp-refresh}? | |||
| | | ... | +--rw poi-tlv? boolean {poi-tlv}? | |||
| | +--rw level-2 | +--rw graceful-restart {graceful-restart}? | |||
| | ... | | +--rw enable? boolean | |||
| +--rw default-metric | | +--rw restart-interval? rt-types:timer-value-seconds16 | |||
| | +--rw value? wide-metric | | +--rw helper-enable? boolean | |||
| | +--rw level-1 | +--rw nsr {nsr}? | |||
| | | ... | | +--rw enable? boolean | |||
| | +--rw level-2 | +--rw node-tags {node-tag}? | |||
| | ... | | +--rw node-tag* [tag] | |||
| +--rw afs {nlpid-control}? | | ... | |||
| | +--rw af* [af] | +--rw metric-type | |||
| | ... | | +--rw value? enumeration | |||
| +--rw preference | | +--rw level-1 | |||
| | +--rw (granularity)? | | | ... | |||
| | ... | | +--rw level-2 | |||
| +--rw overload | | ... | |||
| | +--rw status? boolean | +--rw default-metric | |||
| +--rw overload-max-metric {overload-max-metric}? | | +--rw value? wide-metric | |||
| | +--rw timeout? rt-types:timer-value-seconds16 | | +--rw level-1 | |||
| +--rw fast-reroute {fast-reroute}? | | | ... | |||
| | +--rw lfa {lfa}? | | +--rw level-2 | |||
| | +--ro protected-routes | | ... | |||
| | | ... | +--rw auto-cost {auto-cost}? | |||
| | +--ro unprotected-routes | | +--rw enable? boolean | |||
| | | ... | | +--rw reference-bandwidth? uint32 | |||
| | +--ro protection-statistics* [frr-protection-method] | +--rw authentication | |||
| | ... | | +--rw (authentication-type)? | |||
| +--rw spf-control | | | ... | |||
| | +--rw paths? uint16 {max-ecmp}? | | +--rw level-1 | |||
| | +--rw ietf-spf-delay {ietf-spf-delay}? | | | ... | |||
| | ... | | +--rw level-2 | |||
| +--rw topologies {multi-topology}? | | ... | |||
| | +--rw topology* [name] | +--rw address-families {nlpid-control}? | |||
| | ... | | +--rw address-family-list* [address-family] | |||
| +--rw interfaces | | ... | |||
| | +--rw interface* [name] | +--rw mpls | |||
| | ... | | +--rw te-rid {te-rid}? | |||
| +--ro spf-log | | | ... | |||
| | +--ro event* [id] | | +--rw ldp | |||
| | ... | | ... | |||
| +--ro lsp-log | +--rw spf-control | |||
| | +--ro event* [id] | | +--rw paths? uint16 {max-ecmp}? | |||
| | ... | | +--rw ietf-spf-delay {ietf-spf-delay}? | |||
| +--ro hostnames | | ... | |||
| | +--ro hostname* [system-id] | +--rw fast-reroute {fast-reroute}? | |||
| | ... | | +--rw lfa {lfa}? | |||
| +--ro database | +--rw preference | |||
| | +--ro level-db* [level] | | +--rw (granularity)? | |||
| | ... | | ... | |||
| +--ro local-rib | +--rw overload | |||
| | +--ro route* [prefix] | | +--rw status? boolean | |||
| | ... | +--rw overload-max-metric {overload-max-metric}? | |||
| +--ro system-counters | | +--rw timeout? rt-types:timer-value-seconds16 | |||
| +--ro level* [level] | +--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 | ||||
| | +--ro route* [prefix] | ||||
| | ... | ||||
| +--ro system-counters | ||||
| | +--ro level* [level] | ||||
| | ... | ||||
| +--ro protected-routes | ||||
| | +--ro address-family-stats* [address-family prefix alternate] | ||||
| | ... | ||||
| +--ro unprotected-routes | ||||
| | +--ro address-family-stats* [address-family prefix] | ||||
| | ... | ||||
| +--ro protection-statistics* [frr-protection-method] | ||||
| | +--ro frr-protection-method string | ||||
| | +--ro address-family-stats* [address-family] | ||||
| | ... | ||||
| +--rw topologies {multi-topology}? | ||||
| | +--rw topology* [name] | ||||
| | ... | ||||
| +--rw interfaces | ||||
| +--rw interface* [name] | ||||
| ... | ||||
| 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 -> | |||
| | +---w level? level | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +---w interface? string | | +---w level? level | |||
| +---x clear-database | | +---w interface? if:interface-ref | |||
| +---w input | +---x clear-database | |||
| +---w routing-protocol-instance-name instance-state-ref | +---w input | |||
| +---w level? level | +---w routing-protocol-instance-name -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | ||||
| +---w level? level | ||||
| notifications: | notifications: | |||
| +---n database-overload | +---n database-overload | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--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-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro pdu-size? uint32 | | +--ro pdu-size? uint32 | |||
| | +--ro lsp-id? lsp-id | | +--ro lsp-id? lsp-id | |||
| +---n if-state-change | +---n if-state-change | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro state? if-state-type | | +--ro state? if-state-type | |||
| +---n corrupted-lsp-detected | +---n corrupted-lsp-detected | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro lsp-id? lsp-id | | +--ro lsp-id? lsp-id | |||
| +---n attempt-to-exceed-max-sequence | +---n attempt-to-exceed-max-sequence | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro lsp-id? lsp-id | | +--ro lsp-id? lsp-id | |||
| +---n id-len-mismatch | +---n id-len-mismatch | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro pdu-field-len? uint8 | | +--ro pdu-field-len? uint8 | |||
| | +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| +---n max-area-addresses-mismatch | +---n max-area-addresses-mismatch | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro max-area-addresses? uint8 | | +--ro max-area-addresses? uint8 | |||
| | +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| +---n own-lsp-purge | +---n own-lsp-purge | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? if:interface-ref | |||
| | +--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 lsp-id? lsp-id | |||
| +---n sequence-number-skipped | +---n sequence-number-skipped | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? if:interface-ref | |||
| | +--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 lsp-id? lsp-id | |||
| +---n authentication-type-failure | +---n authentication-type-failure | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| +---n authentication-failure | +---n authentication-failure | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| +---n version-skew | +---n version-skew | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro protocol-version? uint8 | | +--ro protocol-version? uint8 | |||
| | +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| +---n area-mismatch | +---n area-mismatch | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| +---n rejected-adjacency | +---n rejected-adjacency | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| | +--ro reason? string | | +--ro reason? string | |||
| +---n protocols-supported-mismatch | +---n protocols-supported-mismatch | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| | +--ro protocols* uint8 | | +--ro protocols* uint8 | |||
| +---n lsp-error-detected | +---n lsp-error-detected | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? if:interface-ref | |||
| | +--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 lsp-id? lsp-id | |||
| | +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| | +--ro error-offset? uint32 | | +--ro error-offset? uint32 | |||
| | +--ro tlv-type? uint8 | | +--ro tlv-type? uint8 | |||
| +---n adjacency-state-change | +---n adjacency-state-change | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? if:interface-ref | |||
| | +--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 neighbor? string | |||
| | +--ro neighbor-system-id? system-id | | +--ro neighbor-system-id? system-id | |||
| | +--ro state? adj-state-type | | +--ro state? adj-state-type | |||
| | +--ro reason? string | | +--ro reason? string | |||
| +---n lsp-received | +---n lsp-received | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? if:interface-ref | |||
| | +--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 lsp-id? lsp-id | |||
| | +--ro sequence? uint32 | | +--ro sequence? uint32 | |||
| | +--ro received-timestamp? yang:timestamp | | +--ro received-timestamp? yang:timestamp | |||
| | +--ro neighbor-system-id? system-id | | +--ro neighbor-system-id? system-id | |||
| +---n lsp-generation | +---n lsp-generation | |||
| +--ro routing-instance? string | +--ro routing-protocol-name? -> | |||
| +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| +--ro isis-level? level | +--ro isis-level? level | |||
| +--ro lsp-id? lsp-id | +--ro lsp-id? lsp-id | |||
| +--ro sequence? uint32 | +--ro sequence? uint32 | |||
| +--ro send-timestamp? yang:timestamp | +--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 to support any additional | |||
| parameters. These additional modules should augment the ietf-isis | parameters. These additional modules MUST augment the ietf-isis | |||
| module. | module. | |||
| The model implements features, thus some of the configuration | The model implements features, thus some of the configuration | |||
| statement becomes optional. As an example, the ability to control | statement becomes optional. As an example, the ability to control | |||
| the administrative state of a particular IS-IS instance is optional. | the administrative state of a particular IS-IS instance is optional. | |||
| By advertising the feature "admin-control", a device communicates to | By advertising the feature "admin-control", a device communicates to | |||
| the client that it supports the ability to shutdown a particular IS- | the client that it supports the ability to shutdown a particular IS- | |||
| IS instance. | IS instance. | |||
| The global configuration contains usual IS-IS parameters such as lsp- | The global configuration contains usual IS-IS parameters such as lsp- | |||
| skipping to change at page 12, line 8 ¶ | skipping to change at page 11, line 8 ¶ | |||
| 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 | |||
| The per-interface section of the IS-IS instance describes the | The per-interface section of the IS-IS instance describes the | |||
| interface specific parameters. | interface specific parameters. | |||
| The interface is modeled as a reference to an existing interface | The interface is modeled as a reference to an existing interface | |||
| defined in the "ietf-interfaces" YANG model. | defined in the "ietf-interfaces" YANG model ([RFC8343]. | |||
| Each interface has some interface-specific parameters that may have a | Each interface has some interface-specific parameters that may have a | |||
| different per level value as described in previous section. An | different per level value as described in previous section. An | |||
| interface-specific parameter always override an IS-IS global | interface-specific parameter always override an IS-IS global | |||
| parameter. | parameter. | |||
| Some parameters like hello-padding are defined as containers to allow | Some parameters like hello-padding are defined as containers to allow | |||
| easy extension by vendor specific modules. | easy extension by vendor specific modules. | |||
| +--rw interfaces | +--rw interfaces | |||
| | +--rw interface* [name] | +--rw interface* [name] | |||
| | +--rw name if:interface-ref | +--rw name if:interface-ref | |||
| | +--rw level-type? level | +--rw level-type? level | |||
| | +--rw lsp-pacing-interval? | +--rw lsp-pacing-interval? | |||
| | | rt-types:timer-value-milliseconds | rt-types:timer-value-milliseconds | |||
| | +--rw lsp-retransmit-interval? | +--rw lsp-retransmit-interval? | |||
| | | rt-types:timer-value-seconds16 | rt-types:timer-value-seconds16 | |||
| | +--rw passive? boolean | +--rw passive? boolean | |||
| | +--rw csnp-interval? | +--rw csnp-interval? | |||
| | | rt-types:timer-value-seconds16 | 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-ref | | | | +--rw key-chain? | |||
| | | | +--:(password) | key-chain:key-chain-ref | |||
| | | | +--rw key? string | | | +--:(password) | |||
| | | | +--rw crypto-algorithm? identityref | | | +--rw key? string | |||
| | | +--rw level-2 | | | +--rw crypto-algorithm? identityref | |||
| | | +--rw (authentication-type)? | | +--rw level-2 | |||
| | | +--:(key-chain) {key-chain}? | | +--rw (authentication-type)? | |||
| | | | +--rw key-chain? key-chain:key-chain-ref | | +--:(key-chain) {key-chain}? | |||
| | | +--:(password) | | | +--rw key-chain? | |||
| | | +--rw key? string | key-chain:key-chain-ref | |||
| | | +--rw crypto-algorithm? identityref | | +--:(password) | |||
| | +--rw hello-interval | | +--rw key? string | |||
| | | +--rw value? rt-types:timer-value-seconds16 | | +--rw crypto-algorithm? identityref | |||
| | | +--rw level-1 | +--rw hello-interval | |||
| | | | +--rw value? rt-types:timer-value-seconds16 | | +--rw value? rt-types:timer-value-seconds16 | |||
| | | +--rw level-2 | | +--rw level-1 | |||
| | | +--rw value? rt-types:timer-value-seconds16 | | | +--rw value? rt-types:timer-value-seconds16 | |||
| | +--rw hello-multiplier | | +--rw level-2 | |||
| | | +--rw value? uint16 | | +--rw value? rt-types:timer-value-seconds16 | |||
| | | +--rw level-1 | +--rw hello-multiplier | |||
| | | | +--rw value? uint16 | | +--rw value? uint16 | |||
| | | +--rw level-2 | | +--rw level-1 | |||
| | | +--rw value? uint16 | | | +--rw value? uint16 | |||
| | +--rw priority | | +--rw level-2 | |||
| | | +--rw value? uint8 | | +--rw value? uint16 | |||
| | | +--rw level-1 | +--rw priority | |||
| | | | +--rw value? uint8 | | +--rw value? uint8 | |||
| | | +--rw level-2 | | +--rw level-1 | |||
| | | +--rw value? uint8 | | | +--rw value? uint8 | |||
| | +--rw metric | | +--rw level-2 | |||
| | | +--rw value? wide-metric | | +--rw value? uint8 | |||
| | | +--rw level-1 | +--rw metric | |||
| | | | +--rw value? wide-metric | | +--rw value? wide-metric | |||
| | | +--rw level-2 | | +--rw level-1 | |||
| | | +--rw value? wide-metric | | | +--rw value? wide-metric | |||
| | +--rw bfd {bfd}? | | +--rw level-2 | |||
| | | +--rw enable? boolean | | +--rw value? wide-metric | |||
| | | +--rw local-multiplier? multiplier | +--rw bfd {bfd}? | |||
| | | +--rw (interval-config-type)? | | +--rw enable? boolean | |||
| | | +--:(tx-rx-intervals) | | +--rw local-multiplier? multiplier | |||
| | | | +--rw desired-min-tx-interval? uint32 | | +--rw (interval-config-type)? | |||
| | | | +--rw required-min-rx-interval? uint32 | | +--:(tx-rx-intervals) | |||
| | | +--:(single-interval) {single-minimum-interval}? | | | +--rw desired-min-tx-interval? uint32 | |||
| | | +--rw min-interval? uint32 | | | +--rw required-min-rx-interval? uint32 | |||
| | +--rw afs {nlpid-control}? | | +--:(single-interval) {single-minimum-interval}? | |||
| | | +--rw af* [af] | | +--rw min-interval? uint32 | |||
| | | +--rw af iana-rt-types:address-family | +--rw address-families {nlpid-control}? | |||
| | +--rw mpls | | +--rw address-family-list* [address-family] | |||
| | | +--rw ldp | | +--rw address-family iana-rt-types:address-family | |||
| | | +--rw igp-sync? boolean {ldp-igp-sync}? | +--rw mpls | |||
| | +--rw fast-reroute {fast-reroute}? | | +--rw ldp | |||
| | | +--rw lfa {lfa}? | | +--rw igp-sync? boolean {ldp-igp-sync}? | |||
| | | +--rw candidate-disabled? boolean | +--rw fast-reroute {fast-reroute}? | |||
| | | +--rw enable? boolean | | +--rw lfa {lfa}? | |||
| | | +--rw remote-lfa {remote-lfa}? | | +--rw candidate-enable? boolean | |||
| | | | +--rw enable? boolean | | +--rw enable? boolean | |||
| | | +--rw level-1 | | +--rw remote-lfa {remote-lfa}? | |||
| | | | +--rw candidate-disabled? boolean | | | +--rw enable? boolean | |||
| | | | +--rw enable? boolean | | +--rw level-1 | |||
| | | | +--rw remote-lfa {remote-lfa}? | | | +--rw candidate-enable? boolean | |||
| | | | +--rw enable? boolean | | | +--rw enable? boolean | |||
| | | +--rw level-2 | | | +--rw remote-lfa {remote-lfa}? | |||
| | | +--rw candidate-disabled? boolean | | | +--rw enable? boolean | |||
| | | +--rw enable? boolean | | +--rw level-2 | |||
| | | +--rw remote-lfa {remote-lfa}? | | +--rw candidate-enable? boolean | |||
| | | +--rw enable? boolean | | +--rw enable? boolean | |||
| | +--rw topologies {multi-topology}? | | +--rw remote-lfa {remote-lfa}? | |||
| | | +--rw topology* [name] | | +--rw enable? boolean | |||
| | | +--rw name | +--rw topologies {multi-topology}? | |||
| | | -> ../../../../../../../../rt:ribs/rib/name | +--rw topology* [name] | |||
| | | +--rw metric | +--rw name -> | |||
| | | +--rw value? wide-metric | ../../../../../../../../rt:ribs/rib/name | |||
| | | +--rw level-1 | +--rw metric | |||
| | | | +--rw value? wide-metric | +--rw value? wide-metric | |||
| | | +--rw level-2 | +--rw level-1 | |||
| | | +--rw value? wide-metric | | +--rw value? wide-metric | |||
| | +--ro adjacencies | +--rw level-2 | |||
| | | +--ro adjacency* [] | +--rw value? wide-metric | |||
| | | +--ro neighbor-sys-type? level | ||||
| | | +--ro neighbor-sysid? system-id | ||||
| | | +--ro neighbor-extended-circuit-id? | ||||
| | | extended-circuit-id | ||||
| | | +--ro neighbor-snpa? snpa | ||||
| | | +--ro usage? level | ||||
| | | +--ro hold-timer? | ||||
| | | rt-types:timer-value-seconds16 | ||||
| | | +--ro neighbor-priority? uint8 | ||||
| | | +--ro lastuptime? yang:timestamp | ||||
| | | +--ro state? adj-state-type | ||||
| | +--ro event-counters | ||||
| | | +--ro adjacency-changes? uint32 | ||||
| | | +--ro adjacency-number? uint32 | ||||
| | | +--ro init-fails? uint32 | ||||
| | | +--ro adjacency-rejects? uint32 | ||||
| | | +--ro id-len-mismatch? uint32 | ||||
| | | +--ro max-area-addresses-mismatch? uint32 | ||||
| | | +--ro authentication-type-fails? uint32 | ||||
| | | +--ro authentication-fails? uint32 | ||||
| | | +--ro lan-dis-changes? uint32 | ||||
| | +--ro packet-counters | ||||
| | +--ro level* [level] | ||||
| | +--ro level level-number | ||||
| | +--ro iih | ||||
| | | +--ro in? uint32 | ||||
| | | +--ro out? uint32 | ||||
| | +--ro ish | ||||
| | | +--ro in? uint32 | ||||
| | | +--ro out? uint32 | ||||
| | +--ro esh | ||||
| | | +--ro in? uint32 | ||||
| | | +--ro out? uint32 | ||||
| | +--ro lsp | ||||
| | | +--ro in? uint32 | ||||
| | | +--ro out? uint32 | ||||
| | +--ro psnp | ||||
| | | +--ro in? uint32 | ||||
| | | +--ro out? uint32 | ||||
| | +--ro csnp | ||||
| | | +--ro in? uint32 | ||||
| | | +--ro out? uint32 | ||||
| | +--ro unknown | ||||
| | +--ro in? uint32 | ||||
| | +--ro out? uint32 | ||||
| +--ro spf-log | ||||
| | +--ro event* [id] | ||||
| | +--ro id uint32 | ||||
| | +--ro spf-type? enumeration | ||||
| | +--ro level? level-number | ||||
| | +--ro schedule-timestamp? yang:timestamp | ||||
| | +--ro start-timestamp? yang:timestamp | ||||
| | +--ro end-timestamp? yang:timestamp | ||||
| | +--ro trigger-lsp* [lsp] | ||||
| | +--ro lsp lsp-id | ||||
| | +--ro sequence? uint32 | ||||
| +--ro lsp-log | ||||
| | +--ro event* [id] | ||||
| | +--ro id uint32 | ||||
| | +--ro level? level-number | ||||
| | +--ro lsp | ||||
| | | +--ro lsp? lsp-id | ||||
| | | +--ro sequence? uint32 | ||||
| | +--ro received-timestamp? yang:timestamp | ||||
| | +--ro change? identityref | ||||
| +--ro hostnames | ||||
| | +--ro hostname* [system-id] | ||||
| | +--ro system-id system-id | ||||
| | +--ro hostname? string | ||||
| +--ro database | ||||
| | +--ro level-db* [level] | ||||
| | +--ro level level-number | ||||
| | +--ro lsp* [lsp-id] | ||||
| | +--ro decoded-completed? boolean | ||||
| | +--ro raw-data? yang:hex-string | ||||
| | +--ro lsp-id lsp-id | ||||
| | +--ro checksum? uint16 | ||||
| | +--ro remaining-lifetime? uint16 | ||||
| | +--ro sequence? uint32 | ||||
| | +--ro attributes? bits | ||||
| | +--ro ipv4-addresses* inet:ipv4-address | ||||
| | +--ro ipv6-addresses* inet:ipv6-address | ||||
| | +--ro ipv4-te-routerid? inet:ipv4-address | ||||
| | +--ro ipv6-te-routerid? inet:ipv6-address | ||||
| | +--ro protocol-supported* uint8 | ||||
| | +--ro dynamic-hostname? string | ||||
| | +--ro authentication | ||||
| | | +--ro authentication-type? string | ||||
| | | +--ro authentication-key? string | ||||
| | +--ro mt-entries | ||||
| | | +--ro topology* [] | ||||
| | | +--ro MT-ID? uint16 | ||||
| | | +--ro attributes? bits | ||||
| | +--ro router-capabilities* [] | ||||
| | | +--ro flags? bits | ||||
| | | +--ro node-tags {node-tag}? | ||||
| | | | +--ro node-tag* [] | ||||
| | | | +--ro tag? uint32 | ||||
| | | +--ro binary? binary | ||||
| | +--ro is-neighbor | ||||
| | | +--ro neighbor* [] | ||||
| | | +--ro neighbor-id? system-id | ||||
| | | +--ro i-e? boolean | ||||
| | | +--ro default-metric? std-metric | ||||
| | | +--ro delay-metric | ||||
| | | | +--ro metric? std-metric | ||||
| | | | +--ro supported? boolean | ||||
| | | +--ro expense-metric | ||||
| | | | +--ro metric? std-metric | ||||
| | | | +--ro supported? boolean | ||||
| | | +--ro error-metric | ||||
| | | +--ro metric? std-metric | ||||
| | | +--ro supported? boolean | ||||
| | +--ro extended-is-neighbor | ||||
| | | +--ro neighbor* [] | ||||
| | | +--ro neighbor-id? system-id | ||||
| | | +--ro metric? wide-metric | ||||
| | +--ro ipv4-internal-reachability | ||||
| | | +--ro prefixes* [] | ||||
| | | +--ro up-down? boolean | ||||
| | | +--ro i-e? boolean | ||||
| | | +--ro ip-prefix? inet:ipv4-address | ||||
| | | +--ro prefix-len? uint8 | ||||
| | | +--ro default-metric? std-metric | ||||
| | | +--ro delay-metric | ||||
| | | | +--ro metric? std-metric | ||||
| | | | +--ro supported? boolean | ||||
| | | +--ro expense-metric | ||||
| | | | +--ro metric? std-metric | ||||
| | | | +--ro supported? boolean | ||||
| | | +--ro error-metric | ||||
| | | +--ro metric? std-metric | ||||
| | | +--ro supported? boolean | ||||
| | +--ro ipv4-external-reachability | ||||
| | | +--ro prefixes* [] | ||||
| | | +--ro up-down? boolean | ||||
| | | +--ro i-e? boolean | ||||
| | | +--ro ip-prefix? inet:ipv4-address | ||||
| | | +--ro prefix-len? uint8 | ||||
| | | +--ro default-metric? std-metric | ||||
| | | +--ro delay-metric | ||||
| | | | +--ro metric? std-metric | ||||
| | | | +--ro supported? boolean | ||||
| | | +--ro expense-metric | ||||
| | | | +--ro metric? std-metric | ||||
| | | | +--ro supported? boolean | ||||
| | | +--ro error-metric | ||||
| | | +--ro metric? std-metric | ||||
| | | +--ro supported? boolean | ||||
| | +--ro extended-ipv4-reachability | ||||
| | | +--ro prefixes* [] | ||||
| | | +--ro up-down? boolean | ||||
| | | +--ro ip-prefix? inet:ipv4-address | ||||
| | | +--ro prefix-len? uint8 | ||||
| | | +--ro metric? wide-metric | ||||
| | | +--ro tag* uint32 | ||||
| | | +--ro tag64* uint64 | ||||
| | | +--ro external-prefix-flag? boolean | ||||
| | | +--ro readvertisement-flag? boolean | ||||
| | | +--ro node-flag? boolean | ||||
| | | +--ro ipv4-source-router-id? inet:ipv4-address | ||||
| | | +--ro ipv6-source-router-id? inet:ipv6-address | ||||
| | +--ro mt-is-neighbor | ||||
| | | +--ro neighbor* [] | ||||
| | | +--ro mt-id? uint16 | ||||
| | | +--ro neighbor-id? system-id | ||||
| | | +--ro metric? wide-metric | ||||
| | +--ro mt-extended-ipv4-reachability | ||||
| | | +--ro prefixes* [] | ||||
| | | +--ro mt-id? uint16 | ||||
| | | +--ro up-down? boolean | ||||
| | | +--ro ip-prefix? inet:ipv4-address | ||||
| | | +--ro prefix-len? uint8 | ||||
| | | +--ro metric? wide-metric | ||||
| | | +--ro tag* uint32 | ||||
| | | +--ro tag64* uint64 | ||||
| | | +--ro external-prefix-flag? boolean | ||||
| | | +--ro readvertisement-flag? boolean | ||||
| | | +--ro node-flag? boolean | ||||
| | | +--ro ipv4-source-router-id? inet:ipv4-address | ||||
| | | +--ro ipv6-source-router-id? inet:ipv6-address | ||||
| | +--ro mt-ipv6-reachability | ||||
| | | +--ro prefixes* [] | ||||
| | | +--ro MT-ID? uint16 | ||||
| | | +--ro up-down? boolean | ||||
| | | +--ro ip-prefix? inet:ipv6-address | ||||
| | | +--ro prefix-len? uint8 | ||||
| | | +--ro metric? wide-metric | ||||
| | | +--ro tag* uint32 | ||||
| | | +--ro tag64* uint64 | ||||
| | | +--ro external-prefix-flag? boolean | ||||
| | | +--ro readvertisement-flag? boolean | ||||
| | | +--ro node-flag? boolean | ||||
| | | +--ro ipv4-source-router-id? inet:ipv4-address | ||||
| | | +--ro ipv6-source-router-id? inet:ipv6-address | ||||
| | +--ro ipv6-reachability | ||||
| | +--ro prefixes* [] | ||||
| | +--ro up-down? boolean | ||||
| | +--ro ip-prefix? inet:ipv6-address | ||||
| | +--ro prefix-len? uint8 | ||||
| | +--ro metric? wide-metric | ||||
| | +--ro tag* uint32 | ||||
| | +--ro tag64* uint64 | ||||
| | +--ro external-prefix-flag? boolean | ||||
| | +--ro readvertisement-flag? boolean | ||||
| | +--ro node-flag? boolean | ||||
| | +--ro ipv4-source-router-id? inet:ipv4-address | ||||
| | +--ro ipv6-source-router-id? inet:ipv6-address | ||||
| +--ro local-rib | ||||
| | +--ro route* [prefix] | ||||
| | +--ro prefix inet:ip-prefix | ||||
| | +--ro next-hops | ||||
| | | +--ro next-hop* [next-hop] | ||||
| | | +--ro outgoing-interface? if:interface-ref | ||||
| | | +--ro next-hop inet:ip-address | ||||
| | +--ro metric? uint32 | ||||
| | +--ro level? level-number | ||||
| | +--ro route-tag? uint32 | ||||
| +--ro system-counters | ||||
| +--ro level* [level] | ||||
| +--ro level level-number | ||||
| +--ro corrupted-lsps? uint32 | ||||
| +--ro authentication-type-fails? uint32 | ||||
| +--ro authentication-fails? uint32 | ||||
| +--ro database-overload? uint32 | ||||
| +--ro own-lsp-purge? uint32 | ||||
| +--ro manual-address-drop-from-area? uint32 | ||||
| +--ro max-sequence? uint32 | ||||
| +--ro sequence-number-skipped? uint32 | ||||
| +--ro id-len-mismatch? uint32 | ||||
| +--ro partition-changes? uint32 | ||||
| +--ro lsp-errors? 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 -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | ||||
| | +---w level? level | | +---w level? level | |||
| | +---w interface? string | | +---w interface? if:interface-ref | |||
| +---x clear-database | +---x clear-database | |||
| +---w input | +---w input | |||
| +---w routing-protocol-instance-name instance-state-ref | +---w routing-protocol-instance-name -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | ||||
| +---w level? level | +---w level? level | |||
| notifications: | notifications: | |||
| +---n database-overload | +---n database-overload | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--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-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro pdu-size? uint32 | | +--ro pdu-size? uint32 | |||
| | +--ro lsp-id? lsp-id | | +--ro lsp-id? lsp-id | |||
| +---n if-state-change | +---n if-state-change | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro state? if-state-type | | +--ro state? if-state-type | |||
| +---n corrupted-lsp-detected | +---n corrupted-lsp-detected | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro lsp-id? lsp-id | | +--ro lsp-id? lsp-id | |||
| +---n attempt-to-exceed-max-sequence | +---n attempt-to-exceed-max-sequence | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro lsp-id? lsp-id | | +--ro lsp-id? lsp-id | |||
| +---n id-len-mismatch | +---n id-len-mismatch | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro pdu-field-len? uint8 | | +--ro pdu-field-len? uint8 | |||
| | +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| +---n max-area-addresses-mismatch | +---n max-area-addresses-mismatch | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro max-area-addresses? uint8 | | +--ro max-area-addresses? uint8 | |||
| | +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| +---n own-lsp-purge | +---n own-lsp-purge | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? if:interface-ref | |||
| | +--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 lsp-id? lsp-id | |||
| +---n sequence-number-skipped | +---n sequence-number-skipped | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? if:interface-ref | |||
| | +--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 lsp-id? lsp-id | |||
| +---n authentication-type-failure | +---n authentication-type-failure | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| +---n authentication-failure | +---n authentication-failure | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| +---n version-skew | +---n version-skew | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro protocol-version? uint8 | | +--ro protocol-version? uint8 | |||
| | +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| +---n area-mismatch | +---n area-mismatch | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| +---n rejected-adjacency | +---n rejected-adjacency | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| | +--ro reason? string | | +--ro reason? string | |||
| +---n protocols-supported-mismatch | +---n protocols-supported-mismatch | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| | +--ro protocols* uint8 | | +--ro protocols* uint8 | |||
| +---n lsp-error-detected | +---n lsp-error-detected | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? if:interface-ref | |||
| | +--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 lsp-id? lsp-id | |||
| | +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| | +--ro error-offset? uint32 | | +--ro error-offset? uint32 | |||
| | +--ro tlv-type? uint8 | | +--ro tlv-type? uint8 | |||
| +---n adjacency-state-change | +---n adjacency-state-change | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? if:interface-ref | |||
| | +--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 neighbor? string | |||
| | +--ro neighbor-system-id? system-id | | +--ro neighbor-system-id? system-id | |||
| | +--ro state? adj-state-type | | +--ro state? adj-state-type | |||
| | +--ro reason? string | | +--ro reason? string | |||
| +---n lsp-received | +---n lsp-received | |||
| | +--ro routing-instance? string | | +--ro routing-protocol-name? -> | |||
| | +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? string | | +--ro interface-name? if:interface-ref | |||
| | +--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 lsp-id? lsp-id | |||
| | +--ro sequence? uint32 | | +--ro sequence? uint32 | |||
| | +--ro received-timestamp? yang:timestamp | | +--ro received-timestamp? yang:timestamp | |||
| | +--ro neighbor-system-id? system-id | | +--ro neighbor-system-id? system-id | |||
| +---n lsp-generation | +---n lsp-generation | |||
| +--ro routing-instance? string | +--ro routing-protocol-name? -> | |||
| +--ro routing-protocol-name? string | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| +--ro isis-level? level | +--ro isis-level? level | |||
| +--ro lsp-id? lsp-id | +--ro lsp-id? lsp-id | |||
| +--ro sequence? uint32 | +--ro sequence? uint32 | |||
| +--ro send-timestamp? yang:timestamp | +--ro send-timestamp? yang:timestamp | |||
| 2.5. Authentication Parameters | 2.5. Authentication Parameters | |||
| The module enables authentication configuration through the IETF key- | The module enables authentication configuration through the IETF key- | |||
| chain module ([I-D.ietf-rtgwg-yang-key-chain]). The IS-IS module | chain module ([RFC8177]). The IS-IS module imports the "ietf-key- | |||
| imports the "ietf-key-chain" module and reuses some groupings to | chain" module and reuses some groupings to allow global and per | |||
| allow global and per interface configuration of authentication. If a | interface configuration of authentication. If a global | |||
| global authentication is configured, an implementation SHOULD | authentication is configured, an implementation SHOULD authenticate | |||
| authenticate PSNPs, CSNPs and LSPs with the authentication parameters | PSNPs, CSNPs and LSPs with the authentication parameters supplied. | |||
| supplied. The authentication of hello PDUs can be activated on a per | The authentication of hello PDUs can be activated on a per interface | |||
| interface basis. | basis. | |||
| 2.6. IGP/LDP synchronization | 2.6. IGP/LDP synchronization | |||
| [RFC5443] defines a mechanism where IGP needs to be synchronized with | [RFC5443] defines a mechanism where IGP needs to be synchronized with | |||
| LDP. An "ldp-igp-sync" feature has been defined in the model to | LDP. An "ldp-igp-sync" feature has been defined in the model to | |||
| support this mechanism. The "mpls/ldp/igp-sync" leaf under | support this mechanism. The "mpls/ldp/igp-sync" leaf under | |||
| "interface" allows activation of the mechanism on a per interface | "interface" allows activation of the mechanism on a per interface | |||
| basis. The "mpls/ldp/igp-sync" container in the global configuration | basis. The "mpls/ldp/igp-sync" container in the global configuration | |||
| is empty on purpose and is not required for the activation. The goal | is empty on purpose and is not required for the activation. The goal | |||
| of this empty container is to allow easy augmentation with additional | of this empty container is to allow easy augmentation with additional | |||
| skipping to change at page 25, line 23 ¶ | skipping to change at page 19, line 9 ¶ | |||
| o hostnames: provides informations about system-id to hostname | o hostnames: provides informations about system-id to hostname | |||
| mappings. | mappings. | |||
| o fast-reroute: provides informations about IP FRR. | o fast-reroute: provides informations about IP FRR. | |||
| 3. RPC Operations | 3. RPC Operations | |||
| The "ietf-isis" module defines two RPC operations: | The "ietf-isis" module defines two RPC operations: | |||
| o clear-isis-database: reset the content of a particular IS-IS | o clear-database: reset the content of a particular IS-IS database | |||
| database and restart database synchronization with the neighbors. | and restart database synchronization with the neighbors. | |||
| o clear-isis-adjacency: restart a particular set of IS-IS | o clear-adjacency: restart a particular set of IS-IS adjacencies. | |||
| adjacencies. | ||||
| 4. Notifications | 4. Notifications | |||
| The "ietf-isis" module introduces some notifications : | The "ietf-isis" module introduces some notifications : | |||
| database-overload : raised when overload condition is changed. | database-overload: raised when overload condition is changed. | |||
| lsp-too-large : raised when the system tries to propagate a too | lsp-too-large: raised when the system tries to propagate a too | |||
| large PDU. | large PDU. | |||
| corrupted-lsp-detected : raised when the system find that an LSP | if-state-change: raise when the state of an interface changes. | |||
| corrupted-lsp-detected: raised when the system find that an LSP | ||||
| that was stored in memory has become corrupted. | that was stored in memory has become corrupted. | |||
| attempt-to-exceed-max-sequence : This notification is sent when | attempt-to-exceed-max-sequence: This notification is sent when the | |||
| the system wraps the 32-bit sequence counter of an LSP. | system wraps the 32-bit sequence counter of an LSP. | |||
| id-len-mismatch : This notification is sent when we receive a PDU | id-len-mismatch: This notification is sent when we receive a PDU | |||
| with a different value for the System ID length. | with a different value for the System ID length. | |||
| max-area-addresses-mismatch : This notification is sent when we | max-area-addresses-mismatch: This notification is sent when we | |||
| receive a PDU with a different value for the Maximum Area | receive a PDU with a different value for the Maximum Area | |||
| Addresses. | Addresses. | |||
| own-lsp-purge : This notification is sent when the system receives | own-lsp-purge: This notification is sent when the system receives | |||
| a PDU with its own system ID and zero age. | a PDU with its own system ID and zero age. | |||
| sequence-number-skipped : This notification is sent when the | sequence-number-skipped: This notification is sent when the system | |||
| system receives a PDU with its own system ID and different | receives a PDU with its own system ID and different contents. The | |||
| contents. The system has to reissue the LSP with a higher | system has to reissue the LSP with a higher sequence number. | |||
| sequence number. | ||||
| authentication-type-failure : This notification is sent when the | authentication-type-failure: This notification is sent when the | |||
| system receives a PDU with the wrong authentication type field. | system receives a PDU with the wrong authentication type field. | |||
| authentication-failure : This notification is sent when the system | authentication-failure: This notification is sent when the system | |||
| receives a PDU with the wrong authentication information. | receives a PDU with the wrong authentication information. | |||
| version-skew : This notification is sent when the system receives | version-skew: This notification is sent when the system receives a | |||
| a PDU with a different protocol version number. | PDU with a different protocol version number. | |||
| area-mismatch : This notification is sent when the system receives | area-mismatch: This notification is sent when the system receives | |||
| a Hello PDU from an IS that does not share any area address. | a Hello PDU from an IS that does not share any area address. | |||
| rejected-adjacency : This notification is sent when the system | rejected-adjacency: This notification is sent when the system | |||
| receives a Hello PDU from an IS but does not establish an | receives a Hello PDU from an IS but does not establish an | |||
| adjacency for some reason. | adjacency for some reason. | |||
| protocols-supported-mismatch : This notification is sent when the | protocols-supported-mismatch: This notification is sent when the | |||
| system receives a non pseudonode LSP that has no matching protocol | system receives a non pseudonode LSP that has no matching protocol | |||
| supported. | supported. | |||
| lsp-error-detected : This notification is sent when the system | lsp-error-detected: This notification is sent when the system | |||
| receives a LSP with a parse error. | receives a LSP with a parse error. | |||
| adjacency-change : This notification is sent when an IS-IS | adjacency-state-change: This notification is sent when an IS-IS | |||
| adjacency moves to Up state or to Down state. | adjacency moves to Up state or to Down state. | |||
| lsp-received : This notification is sent when a LSP is received. | lsp-received: This notification is sent when a LSP is received. | |||
| lsp-generation : This notification is sent when a LSP is | lsp-generation: This notification is sent when a LSP is | |||
| regenerated. | regenerated. | |||
| 5. Interaction with Other YANG Modules | 5. Interaction with Other YANG Modules | |||
| The "isis" configuration container augments the "/rt:routing/ | The "isis" configuration container augments the "/rt:routing/ | |||
| rt:control-plane-protocols/control-plane-protocol" container of the | rt:control-plane-protocols/control-plane-protocol" container of the | |||
| ietf-routing [I-D.ietf-netmod-routing-cfg] module by defining IS-IS | ietf-routing [RFC8349] module by defining IS-IS specific parameters. | |||
| specific parameters. | ||||
| The "isis" module augments "/if:interfaces/if:interface" with ISO | The "isis" module augments "/if:interfaces/if:interface" defined by | |||
| specific parameters. | [RFC8343] with ISO specific parameters. | |||
| The "isis" operational state container augments the "/rt:routing- | The "isis" operational state container augments the "/rt:routing- | |||
| state/rt:control-plane-protocols/control-plane-protocol" container of | state/rt:control-plane-protocols/control-plane-protocol" container of | |||
| the ietf-routing module by defining IS-IS specific operational | the ietf-routing module by defining IS-IS specific operational | |||
| states. | states. | |||
| 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 [RFC8177]. | |||
| The module reuses types from [RFC6991] and [RFC8294]. | ||||
| To support BFD for fast detection, the module relies on | ||||
| [I-D.ietf-bfd-yang]. | ||||
| 6. IS-IS YANG Module | 6. IS-IS YANG Module | |||
| <CODE BEGINS> file "ietf-isis@2018-08-09.yang" | <CODE BEGINS> file "ietf-isis@2018-11-26.yang" | |||
| module ietf-isis { | module ietf-isis { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-isis"; | namespace "urn:ietf:params:xml:ns:yang:ietf-isis"; | |||
| prefix isis; | prefix isis; | |||
| import ietf-routing { | import ietf-routing { | |||
| prefix "rt"; | prefix "rt"; | |||
| 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 6991 - 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 6991 - 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 8294 - 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 8294 - 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).Please replace YYYY with | |||
| } | published RFC | |||
| number for draft-ietf-bfd-yang."; | ||||
| } | ||||
| organization | organization | |||
| "IETF IS-IS Working Group"; | "IETF LSR Working Group"; | |||
| contact | contact | |||
| "WG List: <mailto:isis-wg@ietf.org> | "WG List: <mailto:lsr@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 | "This YANG module defines the generic configuration and | |||
| IS-IS common across all of the vendor implementations."; | operational state for the IS-IS protocol. | |||
| It is intended that the module | ||||
| will be extended by vendors to define vendor-specific | ||||
| IS-IS configuration parameters and policies, | ||||
| for example route maps or route policies. | ||||
| revision 2018-08-09 { | This YANG model conforms to the Network Management | |||
| description | Datastore Architecture (NDMA) as described in RFC 8242. | |||
| "Initial revision."; | ||||
| reference "RFC XXXX"; | ||||
| } | ||||
| /* Identities */ | Copyright (c) 2018 IETF Trust and the persons identified as | |||
| authors of the code. All rights reserved. | ||||
| identity isis { | Redistribution and use in source and binary forms, with or | |||
| base rt:routing-protocol; | without modification, is permitted pursuant to, and subject | |||
| description "Identity for the IS-IS routing protocol."; | to the license terms contained in, the Simplified BSD License | |||
| } | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| Relating to IETF Documents | ||||
| (http://trustee.ietf.org/license-info). | ||||
| identity isis-adjacency-change { | This version of this YANG module is part of RFC XXXX; | |||
| description "Identity for the IS-IS routing protocol | see the RFC itself for full legal notices."; | |||
| adjacency state."; | ||||
| } | ||||
| identity clear-isis-database { | revision 2018-11-26 { | |||
| description "Identity for the IS-IS routing protocol | description | |||
| database reset action."; | "Initial revision."; | |||
| } | reference "RFC XXXX"; | |||
| } | ||||
| identity clear-isis-adjacency { | /* Identities */ | |||
| description "Identity for the IS-IS routing protocol | ||||
| adjacency reset action."; | ||||
| } | ||||
| identity lsp-log-reason { | identity isis { | |||
| description "Base identity for an LSP change log reason."; | base rt:routing-protocol; | |||
| } | description "Identity for the IS-IS routing protocol."; | |||
| } | ||||
| 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 definitions */ | ||||
| feature ietf-spf-delay { | feature poi-tlv { | |||
| description | description "Support of Purge Originator Identification."; | |||
| "Support of IETF SPF delay algorithm."; | reference "RFC 6232 - Purge Originator Identification TLV | |||
| reference "RFC XXXX - SPF Back-off algorithm for link | for IS-IS"; | |||
| state IGPs"; | } | |||
| } | feature ietf-spf-delay { | |||
| feature bfd { | description | |||
| description | "Support for IETF SPF delay algorithm."; | |||
| "Support for BFD detection of IS-IS neighbor reachability."; | reference "RFC 8405 - SPF Back-off algorithm for link | |||
| reference "RFC 5880 - Bidirectional Forwarding Detection (BFD) | state IGPs"; | |||
| RFC 5881 - Bidirectional Forwarding Detection | } | |||
| (BFD) for IPv4 and IPv6 (Single Hop)"; | feature bfd { | |||
| } | description | |||
| feature key-chain { | "Support for BFD detection of IS-IS neighbor reachability."; | |||
| description | reference "RFC 5880 - Bidirectional Forwarding Detection (BFD) | |||
| "Support of keychain for authentication."; | RFC 5881 - Bidirectional Forwarding Detection | |||
| reference "RFC8177 - YANG Data Model for Key Chains"; | (BFD) for IPv4 and IPv6 (Single Hop)"; | |||
| } | } | |||
| feature node-flag { | feature key-chain { | |||
| description | description | |||
| "Support of node-flag advertisement | "Support of keychain for authentication."; | |||
| as prefix attribute"; | reference "RFC8177 - YANG Data Model for Key Chains"; | |||
| reference "RFC7794 - IS-IS Prefix Attributes for | } | |||
| Extended IP and IPv6 Reachability"; | feature node-flag { | |||
| } | description | |||
| feature node-tag { | "Support for node-flag for IS-IS prefixes."; | |||
| description | reference "RFC7794 - IS-IS Prefix Attributes for | |||
| "Support of node tag."; | Extended IP and IPv6 Reachability"; | |||
| reference "RFC7917 - Advertising Node Administrative Tags | } | |||
| in IS-IS"; | feature node-tag { | |||
| } | description | |||
| feature ldp-igp-sync { | "Support for node admin tag for IS-IS routing instances."; | |||
| description | reference "RFC7917 - Advertising Node Administrative Tags | |||
| "Support of synchronization between IS-IS and LDP."; | in IS-IS"; | |||
| reference "RFC5443 - LDP IGP Synchronization"; | } | |||
| } | feature ldp-igp-sync { | |||
| feature fast-reroute { | description | |||
| description | "LDP IGP synchronization."; | |||
| "Support of IP Fast Reroute."; | reference "RFC5443 - LDP IGP Synchronization."; | |||
| } | ||||
| feature fast-reroute { | ||||
| description | ||||
| "Support for IP Fast Reroute (IP-FRR)."; | ||||
| } | ||||
| feature nsr { | ||||
| description | ||||
| "Non-Stop-Routing (NSR) support."; | ||||
| } | ||||
| feature lfa { | ||||
| description | ||||
| "Support for Loop-Free Alternates (LFAs)."; | ||||
| reference "RFC5286 - Basic Specification of IP Fast-Reroute: | ||||
| Loop-free Alternates"; | ||||
| } | ||||
| feature remote-lfa { | ||||
| description | ||||
| "Support for Remote Loop-Free Alternates (R-LFAs)."; | ||||
| reference "RFC7490 - Remote Loop-Free Alternate Fast Reroute"; | ||||
| } | ||||
| } | feature overload-max-metric { | |||
| feature nsr { | description | |||
| description | "Support of overload by setting | |||
| "Support of Non-Stop Routing."; | all links to max metric."; | |||
| } | } | |||
| feature lfa { | feature prefix-tag { | |||
| description | description | |||
| "Support of Loop-Free Alternates."; | "Support for 32-bit prefix tags"; | |||
| reference "RFC5286 - Basic Specification of IP Fast-Reroute: | reference "RFC5130 - A Policy Control Mechanism in | |||
| Loop-free Alternates"; | IS-IS Using Administrative Tags"; | |||
| } | } | |||
| feature remote-lfa { | feature prefix-tag64 { | |||
| description | description | |||
| "Support of remote Loop Free Alternates."; | "Support for 64-bit prefix tags"; | |||
| reference "RFC7490 - Remote Loop-Free Alternate Fast Reroute"; | reference "RFC5130 - A Policy Control Mechanism in | |||
| } | IS-IS Using Administrative Tags"; | |||
| } | ||||
| feature auto-cost { | ||||
| description | ||||
| "Calculate IS-IS interface metric according to | ||||
| reference bandwidth."; | ||||
| } | ||||
| feature overload-max-metric { | feature te-rid { | |||
| description | description | |||
| "Support of overload by setting | "Traffic-Engineering Router-ID."; | |||
| all links to max metric."; | reference "RFC5305 - IS-IS Extensions for Traffic Engineering | |||
| } | RFC6119 - IPv6 Traffic Engineering in IS-IS"; | |||
| feature prefix-tag { | } | |||
| description | feature max-ecmp { | |||
| "Support for 32-bit prefix tags"; | description | |||
| reference "RFC5130 - A Policy Control Mechanism in | "Setting maximum number of ECMP paths."; | |||
| IS-IS Using Administrative Tags"; | } | |||
| } | feature multi-topology { | |||
| feature prefix-tag64 { | description | |||
| description | "Support for Multiple-Topology Routing (MTR)."; | |||
| "Support for 64-bit prefix tags"; | reference "RFC5120 - M-IS-IS: Multi Topology Routing in IS-IS"; | |||
| reference "RFC5130 - A Policy Control Mechanism in | } | |||
| IS-IS Using Administrative Tags"; | feature nlpid-control { | |||
| } | description | |||
| feature auto-cost { | "This feature controls the advertisement | |||
| description | of support NLPID within IS-IS configuration."; | |||
| "Use an automated assignment of metrics."; | } | |||
| } | feature graceful-restart { | |||
| description | ||||
| "IS-IS Graceful restart support."; | ||||
| reference "RFC5306 - Restart Signaling in IS-IS"; | ||||
| } | ||||
| feature te-rid { | feature lsp-refresh { | |||
| description | description | |||
| "Traffic-Engineering Router-ID."; | "Configuration of LSP refresh interval."; | |||
| reference "RFC5305 - IS-IS Extensions for Traffic Engineering | } | |||
| RFC6119 - IPv6 Traffic Engineering in IS-IS"; | ||||
| } | ||||
| feature max-ecmp { | ||||
| description | ||||
| "Setting maximum number of ECMP paths."; | ||||
| } | feature maximum-area-addresses { | |||
| feature multi-topology { | description | |||
| description | "Support of maximum-area-addresses config."; | |||
| "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 lsp-refresh { | feature admin-control { | |||
| description | description | |||
| "Configuration of LSP refresh interval."; | "Administrative control of the protocol state."; | |||
| } | } | |||
| feature maximum-area-addresses { | /* Type definitions */ | |||
| description | ||||
| "Support of maximum-area-addresses config."; | ||||
| } | ||||
| feature admin-control { | typedef circuit-id { | |||
| description | type uint8; | |||
| "Control administrative state of IS-IS."; | description | |||
| } | "This type defines the circuit ID | |||
| associated with an interface."; | ||||
| } | ||||
| /* Type definitions */ | typedef extended-circuit-id { | |||
| type uint32; | ||||
| description | ||||
| "This type defines the extended circuit ID | ||||
| associated with an interface."; | ||||
| } | ||||
| typedef instance-state-ref { | typedef interface-type { | |||
| type leafref { | type enumeration { | |||
| path "/rt:routing-state/" | enum broadcast { | |||
| +"rt:control-plane-protocols/rt:control-plane-protocol/" | description | |||
| +"rt:name"; | "Broadcast interface type."; | |||
| } | } | |||
| description | enum point-to-point { | |||
| "This type is used for leaves that reference state data for | description | |||
| an IS-IS protocol instance."; | "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 circuit-id { | } | |||
| type uint8; | ||||
| description | ||||
| "This type defines the circuit ID | ||||
| associated with an interface."; | ||||
| } | ||||
| typedef extended-circuit-id { | typedef level { | |||
| type uint32; | type enumeration { | |||
| description | enum "level-1" { | |||
| "This type defines the extended circuit ID | description | |||
| associated with an interface."; | "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 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 adj-state-type { | |||
| type enumeration { | ||||
| enum "up" { | ||||
| description | ||||
| "State indicates the adjacency is established."; | ||||
| } | ||||
| enum "down" { | ||||
| description | ||||
| "State indicates the adjacency is NOT established."; | ||||
| } | ||||
| enum "init" { | ||||
| description | ||||
| "State indicates the adjacency is establishing."; | ||||
| } | ||||
| enum "failed" { | ||||
| description | ||||
| "State indicates the adjacency is failed."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "This type defines states of an adjacency"; | ||||
| } | ||||
| typedef level { | typedef if-state-type { | |||
| type enumeration { | type enumeration { | |||
| enum "level-1" { | enum "up" { | |||
| description | description "Up state."; | |||
| "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."; | ||||
| } | } | |||
| enum "down" { | ||||
| description "Down state"; | ||||
| } | ||||
| } | ||||
| description | ||||
| "This type defines the state of an interface"; | ||||
| } | ||||
| typedef adj-state-type { | typedef level-number { | |||
| type enumeration { | type uint8 { | |||
| enum "up" { | range "1 .. 2"; | |||
| description | } | |||
| "State indicates the adjacency is established."; | description | |||
| } | "This type defines the current IS-IS level."; | |||
| enum "down" { | } | |||
| description | ||||
| "State indicates the adjacency is NOT established."; | ||||
| } | ||||
| enum "init" { | ||||
| description | ||||
| "State indicates the adjacency is establishing."; | ||||
| } | ||||
| enum "failed" { | ||||
| description | ||||
| "State indicates the adjacency is failed."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "This type defines states of an adjacency"; | ||||
| } | ||||
| typedef if-state-type { | typedef lsp-id { | |||
| type enumeration { | type string { | |||
| enum "up" { | pattern | |||
| description "Up state."; | '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]' | |||
| +'{4}\.[0-9][0-9]-[0-9][0-9]'; | ||||
| } | ||||
| description | ||||
| "This type defines the IS-IS LSP ID format using a | ||||
| pattern, An example LSP ID is 0143.0438.AEF0.02-01"; | ||||
| } | ||||
| } | typedef area-address { | |||
| enum "down" { | type string { | |||
| description "Down state"; | 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 state of an interface"; | } | |||
| } | ||||
| typedef level-number { | typedef snpa { | |||
| type uint8 { | type string { | |||
| range "1 .. 2"; | length "0 .. 20"; | |||
| } | } | |||
| description | description | |||
| "This type defines the current IS-IS level."; | "This type defines the Subnetwork Point | |||
| } | of Attachement (SNPA) format."; | |||
| typedef lsp-id { | } | |||
| type string { | ||||
| pattern | ||||
| '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]' | ||||
| +'{4}\.[0-9][0-9]-[0-9][0-9]'; | ||||
| } | ||||
| description | ||||
| "This type defines the IS-IS LSP ID format using a | ||||
| pattern, An example LSP ID is 0143.0438.AeF0.02-01"; | ||||
| } | ||||
| typedef area-address { | typedef system-id { | |||
| type string { | type string { | |||
| pattern '[0-9A-Fa-f]{2}\.([0-9A-Fa-f]{4}\.){0,3}'; | pattern | |||
| } | '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}'; | |||
| description | } | |||
| "This type defines the area address format."; | description | |||
| } | "This type defines IS-IS system-id using pattern, | |||
| An example system-id is 0143.0438.AEF0"; | ||||
| } | ||||
| typedef extended-system-id { | ||||
| type string { | ||||
| pattern | ||||
| '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9][0-9]'; | ||||
| } | ||||
| description | ||||
| "This type defines IS-IS system-id using pattern. The extended | ||||
| system id contains the pseudonode number in | ||||
| addition to the | ||||
| system id. | ||||
| An example system-id is 0143.0438.AEF0.00"; | ||||
| } | ||||
| typedef snpa { | typedef wide-metric { | |||
| type string { | type uint32 { | |||
| length "0 .. 20"; | range "0 .. 16777215"; | |||
| } | } | |||
| description | description | |||
| "This type defines the Subnetwork Point | "This type defines wide style format of IS-IS metric."; | |||
| of Attachement (SNPA) format."; | } | |||
| } | ||||
| typedef system-id { | typedef std-metric { | |||
| type string { | type uint8 { | |||
| pattern | range "0 .. 63"; | |||
| '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}'; | } | |||
| } | description | |||
| description | "This type defines old style format of IS-IS metric."; | |||
| "This type defines IS-IS system-id using pattern, | } | |||
| An example system-id is 0143.0438.AeF0"; | ||||
| } | ||||
| typedef wide-metric { | typedef mesh-group-state { | |||
| type uint32 { | type enumeration { | |||
| range "0 .. 16777215"; | enum "mesh-inactive" { | |||
| } | description | |||
| description | "Interface is not part of a mesh group."; | |||
| "This type defines wide style format of IS-IS metric."; | } | |||
| } | enum "mesh-set" { | |||
| description | ||||
| "Interface is part of a mesh group."; | ||||
| } | ||||
| enum "mesh-blocked" { | ||||
| description | ||||
| "LSPs must not be flooded over this interface."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "This type describes mesh group state of an interface"; | ||||
| } | ||||
| typedef std-metric { | /* Grouping for notifications */ | |||
| type uint8 { | ||||
| range "0 .. 63"; | ||||
| } | ||||
| description | ||||
| "This type defines old style format of IS-IS metric."; | ||||
| } | ||||
| typedef mesh-group-state { | grouping notification-instance-hdr { | |||
| type enumeration { | description | |||
| enum "mesh-inactive" { | "Instance specific IS-IS notification data grouping"; | |||
| description | leaf routing-protocol-name { | |||
| "Interface is not part of a mesh group."; | type leafref { | |||
| } | path "/rt:routing/rt:control-plane-protocols/" | |||
| enum "mesh-set" { | + "rt:control-plane-protocol/rt:name"; | |||
| description | } | |||
| "Interface is part of a mesh group."; | description "Name of the IS-IS instance."; | |||
| } | } | |||
| enum "mesh-blocked" { | leaf isis-level { | |||
| description | type level; | |||
| "LSPs must not be flooded over this interface."; | description "IS-IS level of the instance."; | |||
| } | } | |||
| } | } | |||
| description | ||||
| "This type describes mesh group state of an interface"; | ||||
| } | ||||
| /* Grouping definitions for configuration and ops state */ | grouping notification-interface-hdr { | |||
| description | ||||
| "Interface specific IS-IS notification data grouping"; | ||||
| leaf interface-name { | ||||
| type if:interface-ref; | ||||
| description "IS-IS interface name"; | ||||
| } | ||||
| leaf interface-level { | ||||
| type level; | ||||
| description "IS-IS level of the interface."; | ||||
| } | ||||
| leaf extended-circuit-id { | ||||
| type extended-circuit-id; | ||||
| description "Eextended circuit-id of the interface."; | ||||
| } | ||||
| } | ||||
| grouping adjacency-state { | /* Groupings for IP Fast Reroute */ | |||
| container adjacencies { | ||||
| config false; | ||||
| list adjacency { | ||||
| leaf neighbor-sys-type { | ||||
| type level; | ||||
| description | ||||
| "Level capability of neighboring system"; | ||||
| } | ||||
| leaf neighbor-sysid { | ||||
| type system-id; | ||||
| description | ||||
| "The system-id of the neighbor"; | ||||
| } | ||||
| leaf neighbor-extended-circuit-id { | ||||
| type extended-circuit-id; | ||||
| description | ||||
| "Circuit ID of the neighbor"; | ||||
| } | ||||
| leaf neighbor-snpa { | ||||
| type snpa; | ||||
| description | ||||
| "SNPA of the neighbor"; | ||||
| } | ||||
| leaf usage { | ||||
| type level; | ||||
| description | ||||
| "Define the level(s) activated on the adjacency. | ||||
| On a p2p link this might be level 1 and 2, | ||||
| but on a LAN, the usage will be level 1 | ||||
| between peers at level 1 or level 2 between | ||||
| peers at level 2."; | ||||
| } | ||||
| leaf hold-timer { | ||||
| type rt-types:timer-value-seconds16; | ||||
| units seconds; | ||||
| description | ||||
| "The holding time in seconds for this | ||||
| adjacency. This value is based on | ||||
| received hello PDUs and the elapsed | ||||
| time since receipt."; | ||||
| } | ||||
| leaf neighbor-priority { | ||||
| type uint8 { | ||||
| range "0 .. 127"; | ||||
| } | ||||
| description | ||||
| "Priority of the neighboring IS for becoming | ||||
| the DIS."; | ||||
| } | ||||
| leaf lastuptime { | ||||
| type yang:timestamp; | ||||
| description | ||||
| "When the adjacency most recently entered | ||||
| state 'up', measured in hundredths of a | ||||
| second since the last reinitialization of | ||||
| the network management subsystem. | ||||
| The value is 0 if the adjacency has never | ||||
| been in state 'up'."; | ||||
| } | ||||
| leaf state { | ||||
| type adj-state-type; | ||||
| description | ||||
| "This leaf describes the state of the interface."; | ||||
| } | ||||
| description | grouping instance-fast-reroute-config { | |||
| "List of operational adjacencies."; | description | |||
| } | "This group defines global configuration of IP | |||
| Fast ReRoute (FRR)."; | ||||
| container fast-reroute { | ||||
| if-feature fast-reroute; | ||||
| description | ||||
| "This container may be augmented with global | ||||
| parameters for IP-FRR."; | ||||
| container lfa { | ||||
| if-feature lfa; | ||||
| description | ||||
| "This container may be augmented with | ||||
| global parameters for Loop-Free Alternatives (LFA). | ||||
| Container creation has no effect on LFA activation."; | ||||
| } | ||||
| } | ||||
| } | ||||
| grouping interface-lfa-config { | ||||
| leaf candidate-enable { | ||||
| type boolean; | ||||
| default true; | ||||
| description | ||||
| "Enable the interface to be used as backup."; | ||||
| } | ||||
| leaf enable { | ||||
| type boolean; | ||||
| default false; | ||||
| description | ||||
| "Activates LFA - Per-prefix LFA computation | ||||
| is assumed."; | ||||
| } | ||||
| container remote-lfa { | ||||
| if-feature remote-lfa; | ||||
| leaf enable { | ||||
| type boolean; | ||||
| default false; | ||||
| description | ||||
| "Activates Remote LFA (R-LFA)."; | ||||
| } | ||||
| description | ||||
| "Remote LFA configuration."; | ||||
| } | ||||
| description "Grouping for LFA interface configuration"; | ||||
| } | ||||
| grouping interface-fast-reroute-config { | ||||
| description | ||||
| "This group defines interface configuration of IP-FRR."; | ||||
| container fast-reroute { | ||||
| if-feature fast-reroute; | ||||
| container lfa { | ||||
| if-feature lfa; | ||||
| uses interface-lfa-config; | ||||
| container level-1 { | ||||
| uses interface-lfa-config; | ||||
| description | ||||
| "LFA level 1 config"; | ||||
| } | ||||
| container level-2 { | ||||
| uses interface-lfa-config; | ||||
| description | description | |||
| "This container lists the adjacencies of | "LFA level 2 config"; | |||
| the local node."; | } | |||
| } | description | |||
| description | "LFA configuration."; | |||
| "Adjacency state"; | } | |||
| } | description | |||
| "Interface IP Fast-reroute configuration."; | ||||
| } | ||||
| } | ||||
| grouping instance-fast-reroute-state { | ||||
| description "IPFRR state data grouping"; | ||||
| grouping fast-reroute-global-state { | container protected-routes { | |||
| container protected-routes { | config false; | |||
| config false; | list address-family-stats { | |||
| list af-stats { | key "address-family prefix alternate"; | |||
| key "af prefix alternate"; | ||||
| leaf af { | leaf address-family { | |||
| type iana-rt-types:address-family; | type iana-rt-types:address-family; | |||
| description | description | |||
| "Address-family"; | "Address-family"; | |||
| } | ||||
| leaf prefix { | ||||
| type string; | ||||
| description | ||||
| "Protected prefix."; | ||||
| } | ||||
| leaf alternate { | ||||
| type string; | ||||
| description | ||||
| "Alternate nexthop for the prefix."; | ||||
| } | ||||
| leaf alternate-type { | ||||
| type enumeration { | ||||
| enum equal-cost { | ||||
| description | ||||
| "ECMP alternate."; | ||||
| } | ||||
| enum lfa { | ||||
| description | ||||
| "LFA alternate."; | ||||
| } | ||||
| enum remote-lfa { | ||||
| description | ||||
| "Remote LFA alternate."; | ||||
| } | ||||
| enum tunnel { | ||||
| description | ||||
| "Tunnel based alternate | ||||
| (like RSVP-TE or GRE)."; | ||||
| } | ||||
| enum ti-lfa { | ||||
| description | ||||
| "TI-LFA alternate."; | ||||
| } | ||||
| enum mrt { | ||||
| description | ||||
| "MRT alternate."; | ||||
| } | ||||
| enum other { | ||||
| description | ||||
| "Unknown alternate type."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "Type of alternate."; | ||||
| } | ||||
| leaf best { | ||||
| type boolean; | ||||
| description | ||||
| "Indicates if the alternate is the preferred."; | ||||
| } | ||||
| leaf non-best-reason { | ||||
| type string; | ||||
| description | ||||
| "Information field to describe why the alternate | ||||
| is not best."; | ||||
| } | ||||
| leaf protection-available { | ||||
| type bits { | ||||
| bit node-protect { | ||||
| position 0; | ||||
| description | ||||
| "Node protection available."; | ||||
| } | ||||
| bit link-protect { | ||||
| position 1; | ||||
| description | ||||
| "Link protection available."; | ||||
| } | ||||
| bit srlg-protect { | ||||
| position 2; | ||||
| description | ||||
| "SRLG protection available."; | ||||
| } | ||||
| bit downstream-protect { | ||||
| position 3; | ||||
| description | ||||
| "Downstream protection available."; | ||||
| } | ||||
| bit other { | ||||
| position 4; | ||||
| description | ||||
| "Other protection available."; | ||||
| } | ||||
| } | ||||
| description "Protection provided by the alternate."; | ||||
| } | ||||
| leaf alternate-metric1 { | ||||
| type uint32; | ||||
| description | ||||
| "Metric from Point of Local Repair (PLR) to | ||||
| destination through the alternate path."; | ||||
| } | ||||
| leaf alternate-metric2 { | ||||
| type uint32; | ||||
| description | ||||
| "Metric from PLR to the alternate node"; | ||||
| } | ||||
| leaf alternate-metric3 { | ||||
| type uint32; | ||||
| description | ||||
| "Metric from alternate node to the destination"; | ||||
| } | ||||
| description | ||||
| "Per-AF protected prefix statistics."; | ||||
| } | ||||
| description | ||||
| "List of prefixes that are protected."; | ||||
| } | ||||
| container unprotected-routes { | } | |||
| config false; | leaf prefix { | |||
| list af-stats { | type string; | |||
| key "af prefix"; | description | |||
| "Protected prefix."; | ||||
| } | ||||
| leaf alternate { | ||||
| type string; | ||||
| description | ||||
| "Alternate nexthop for the prefix."; | ||||
| } | ||||
| leaf alternate-type { | ||||
| type enumeration { | ||||
| enum equal-cost { | ||||
| description | ||||
| "ECMP alternate."; | ||||
| } | ||||
| enum lfa { | ||||
| description | ||||
| "LFA alternate."; | ||||
| } | ||||
| enum remote-lfa { | ||||
| description | ||||
| "Remote LFA alternate."; | ||||
| } | ||||
| enum tunnel { | ||||
| description | ||||
| "Tunnel based alternate | ||||
| (like RSVP-TE or GRE)."; | ||||
| } | ||||
| enum ti-lfa { | ||||
| description | ||||
| "TI-LFA alternate."; | ||||
| } | ||||
| enum mrt { | ||||
| description | ||||
| "MRT alternate."; | ||||
| } | ||||
| enum other { | ||||
| description | ||||
| "Unknown alternate type."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "Type of alternate."; | ||||
| } | ||||
| leaf best { | ||||
| type boolean; | ||||
| description | ||||
| "Indicates if the alternate is the preferred."; | ||||
| } | ||||
| leaf non-best-reason { | ||||
| type string; | ||||
| description | ||||
| "Information field to describe why the alternate | ||||
| is not best."; | ||||
| } | ||||
| leaf protection-available { | ||||
| type bits { | ||||
| bit node-protect { | ||||
| position 0; | ||||
| description | ||||
| "Node protection available."; | ||||
| } | ||||
| bit link-protect { | ||||
| position 1; | ||||
| description | ||||
| "Link protection available."; | ||||
| } | ||||
| bit srlg-protect { | ||||
| position 2; | ||||
| description | ||||
| "SRLG protection available."; | ||||
| } | ||||
| bit downstream-protect { | ||||
| position 3; | ||||
| description | ||||
| "Downstream protection available."; | ||||
| } | ||||
| bit other { | ||||
| position 4; | ||||
| description | ||||
| "Other protection available."; | ||||
| } | ||||
| } | ||||
| description "Protection provided by the alternate."; | ||||
| } | ||||
| leaf alternate-metric1 { | ||||
| type uint32; | ||||
| description | ||||
| "Metric from Point of Local Repair (PLR) to | ||||
| destination through the alternate path."; | ||||
| } | ||||
| leaf alternate-metric2 { | ||||
| type uint32; | ||||
| description | ||||
| "Metric from PLR to the alternate node"; | ||||
| } | ||||
| leaf alternate-metric3 { | ||||
| type uint32; | ||||
| description | ||||
| "Metric from alternate node to the destination"; | ||||
| } | ||||
| description | ||||
| "Per-AF protected prefix statistics."; | ||||
| } | ||||
| description | ||||
| "List of prefixes that are protected."; | ||||
| } | ||||
| leaf af { | container unprotected-routes { | |||
| type iana-rt-types:address-family; | config false; | |||
| list address-family-stats { | ||||
| key "address-family prefix"; | ||||
| description "Address-family"; | leaf address-family { | |||
| } | type iana-rt-types:address-family; | |||
| leaf prefix { | ||||
| type string; | ||||
| description "Unprotected prefix."; | ||||
| } | ||||
| description | ||||
| "Per AF unprotected prefix statistics."; | ||||
| } | ||||
| description | ||||
| "List of prefixes that are not protected."; | ||||
| } | ||||
| list protection-statistics { | description "Address-family"; | |||
| key frr-protection-method; | } | |||
| config false; | leaf prefix { | |||
| leaf frr-protection-method { | type string; | |||
| type string; | description "Unprotected prefix."; | |||
| description "Protection method used."; | } | |||
| } | description | |||
| list af-stats { | "Per AF unprotected prefix statistics."; | |||
| key af; | } | |||
| description | ||||
| "List of prefixes that are not protected."; | ||||
| } | ||||
| 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 address-family-stats { | ||||
| key address-family; | ||||
| description "Address-family"; | leaf address-family { | |||
| } | type iana-rt-types:address-family; | |||
| leaf total-routes { | description "Address-family"; | |||
| type uint32; | } | |||
| description "Total prefixes."; | leaf total-routes { | |||
| } | type uint32; | |||
| leaf unprotected-routes { | description "Total prefixes."; | |||
| type uint32; | } | |||
| description | leaf unprotected-routes { | |||
| "Total prefixes that are not protected."; | type uint32; | |||
| } | description | |||
| leaf protected-routes { | "Total prefixes that are not protected."; | |||
| type uint32; | } | |||
| description | leaf protected-routes { | |||
| "Total prefixes that are protected."; | type uint32; | |||
| } | description | |||
| leaf linkprotected-routes { | "Total prefixes that are protected."; | |||
| type uint32; | } | |||
| description | leaf linkprotected-routes { | |||
| "Total prefixes that are link protected."; | type uint32; | |||
| } | description | |||
| leaf nodeprotected-routes { | "Total prefixes that are link protected."; | |||
| type uint32; | } | |||
| description | leaf nodeprotected-routes { | |||
| "Total prefixes that are node protected."; | type uint32; | |||
| } | description | |||
| description | "Total prefixes that are node protected."; | |||
| "Per AF protected prefix statistics."; | } | |||
| description | ||||
| "Per AF protected prefix statistics."; | ||||
| } | ||||
| } | description "Global protection statistics."; | |||
| } | ||||
| } | ||||
| description "Global protection statistics."; | /* Route table and local RIB groupings */ | |||
| } | ||||
| description "IPFRR states."; | ||||
| } | ||||
| grouping notification-instance-hdr { | grouping local-rib { | |||
| description | description "Local-rib - RIB for Routes computed by the local | |||
| "Instance specific IS-IS notification data grouping"; | IS-IS routing instance."; | |||
| leaf routing-instance { | container local-rib { | |||
| type string; | config false; | |||
| description "Name of the routing-instance instance."; | description "Local-rib."; | |||
| } | list route { | |||
| leaf routing-protocol-name { | key "prefix"; | |||
| type string; | description "Routes"; | |||
| description "Name of the IS-IS instance."; | leaf prefix { | |||
| } | type inet:ip-prefix; | |||
| leaf isis-level { | description "Destination prefix."; | |||
| type level; | ||||
| description "IS-IS level of the instance."; | ||||
| } | ||||
| } | ||||
| grouping notification-interface-hdr { | } | |||
| description | container next-hops { | |||
| "Interface specific IS-IS notification data grouping"; | description "Next hops for the route."; | |||
| leaf interface-name { | list next-hop { | |||
| type string; | key "next-hop"; | |||
| description "IS-IS interface name"; | description "List of next hops for the route"; | |||
| } | leaf outgoing-interface { | |||
| leaf interface-level { | type if:interface-ref; | |||
| type level; | description | |||
| description "IS-IS level of the interface."; | "Name of the outgoing interface."; | |||
| } | } | |||
| leaf extended-circuit-id { | leaf next-hop { | |||
| type extended-circuit-id; | type inet:ip-address; | |||
| description "Eextended circuit-id of the interface."; | description "Nexthop address."; | |||
| } | } | |||
| } | } | |||
| } | ||||
| leaf metric { | ||||
| type uint32; | ||||
| description "Metric for this route."; | ||||
| } | ||||
| leaf level { | ||||
| type level-number; | ||||
| description "Level number for this route."; | ||||
| } | ||||
| leaf route-tag { | ||||
| type uint32; | ||||
| description "Route tag for this route."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| grouping route-content { | grouping route-content { | |||
| description | description | |||
| "IS-IS protocol-specific route properties grouping."; | "IS-IS protocol-specific route properties grouping."; | |||
| leaf metric { | leaf metric { | |||
| type uint32; | type uint32; | |||
| description "IS-IS metric of a route."; | description "IS-IS metric of a route."; | |||
| } | } | |||
| leaf-list tag { | leaf-list tag { | |||
| type uint64; | type uint64; | |||
| description | description | |||
| "List of tags associated with the route. The leaf | "List of tags associated with the route. The leaf | |||
| describes both 32-bit and 64-bit tags."; | describes both 32-bit and 64-bit tags."; | |||
| } | } | |||
| leaf route-type { | leaf route-type { | |||
| type enumeration { | type enumeration { | |||
| enum l2-up-internal { | enum l2-up-internal { | |||
| description "Level 2 internal route | description "Level 2 internal route | |||
| and not leaked to a lower level"; | and not leaked to a lower level"; | |||
| } | } | |||
| enum l1-up-internal { | enum l1-up-internal { | |||
| description "Level 1 internal route | description "Level 1 internal route | |||
| and not leaked to a lower level"; | and not leaked to a lower level"; | |||
| } | } | |||
| enum l2-up-external { | enum l2-up-external { | |||
| description "Level 2 external route | description "Level 2 external route | |||
| and not leaked to a lower level"; | and not leaked to a lower level"; | |||
| } | } | |||
| enum l1-up-external { | enum l1-up-external { | |||
| description "Level 1 external route | description "Level 1 external route | |||
| and not leaked to a lower level"; | and not leaked to a lower level"; | |||
| } | } | |||
| enum l2-down-internal { | enum l2-down-internal { | |||
| description "Level 2 internal route | description "Level 2 internal route | |||
| and leaked to a lower level"; | and leaked to a lower level"; | |||
| } | } | |||
| enum l1-down-internal { | enum l1-down-internal { | |||
| description "Level 1 internal route | description "Level 1 internal route | |||
| and leaked to a lower level"; | and leaked to a lower level"; | |||
| } | } | |||
| enum l2-down-external { | enum l2-down-external { | |||
| description "Level 2 external route | description "Level 2 external route | |||
| and leaked to a lower level"; | and leaked to a lower level"; | |||
| } | } | |||
| enum l1-down-external { | enum l1-down-external { | |||
| description "Level 1 external route | description "Level 1 external route | |||
| and leaked to a lower level"; | and leaked to a lower level"; | |||
| } | } | |||
| } | } | |||
| description "IS-IS route type."; | description "IS-IS route type."; | |||
| } | } | |||
| } | } | |||
| grouping admin-control { | /* Grouping definitions for configuration and ops state */ | |||
| leaf enable { | ||||
| if-feature admin-control; | ||||
| type boolean; | ||||
| default true; | ||||
| description | ||||
| "Control the administrative state."; | ||||
| } | ||||
| description | ||||
| "Grouping for admin control."; | ||||
| } | ||||
| grouping fast-reroute-global-cfg { | grouping adjacency-state { | |||
| description | container adjacencies { | |||
| "IPFRR global configuration grouping"; | config false; | |||
| container lfa { | list adjacency { | |||
| if-feature lfa; | leaf neighbor-sys-type { | |||
| description | type level; | |||
| "This container may be augmented with global | description | |||
| parameters for LFA. Creating the container has no | "Level capability of neighboring system"; | |||
| effect on LFA activation."; | } | |||
| } | leaf neighbor-sysid { | |||
| } | type system-id; | |||
| description | ||||
| "The system-id of the neighbor"; | ||||
| } | ||||
| leaf neighbor-extended-circuit-id { | ||||
| type extended-circuit-id; | ||||
| description | ||||
| "Circuit ID of the neighbor"; | ||||
| } | ||||
| leaf neighbor-snpa { | ||||
| type snpa; | ||||
| description | ||||
| "SNPA of the neighbor"; | ||||
| } | ||||
| leaf usage { | ||||
| type level; | ||||
| description | ||||
| "Define the level(s) activated on the adjacency. | ||||
| On a p2p link this might be level 1 and 2, | ||||
| but on a LAN, the usage will be level 1 | ||||
| between peers at level 1 or level 2 between | ||||
| peers at level 2."; | ||||
| } | ||||
| leaf hold-timer { | ||||
| type rt-types:timer-value-seconds16; | ||||
| units seconds; | ||||
| description | ||||
| "The holding time in seconds for this | ||||
| adjacency. This value is based on | ||||
| received hello PDUs and the elapsed | ||||
| time since receipt."; | ||||
| } | ||||
| leaf neighbor-priority { | ||||
| type uint8 { | ||||
| range "0 .. 127"; | ||||
| } | ||||
| description | ||||
| "Priority of the neighboring IS for becoming | ||||
| the DIS."; | ||||
| } | ||||
| leaf lastuptime { | ||||
| type yang:timestamp; | ||||
| description | ||||
| "When the adjacency most recently entered | ||||
| state 'up', measured in hundredths of a | ||||
| second since the last reinitialization of | ||||
| the network management subsystem. | ||||
| The value is 0 if the adjacency has never | ||||
| been in state 'up'."; | ||||
| } | ||||
| leaf state { | ||||
| type adj-state-type; | ||||
| description | ||||
| "This leaf describes the state of the interface."; | ||||
| } | ||||
| grouping fast-reroute-if-cfg { | description | |||
| description | "List of operational adjacencies."; | |||
| "IPFRR interface configuration grouping"; | } | |||
| container lfa { | description | |||
| if-feature lfa; | "This container lists the adjacencies of | |||
| uses lfa-if-cfg; | the local node."; | |||
| container level-1 { | } | |||
| uses lfa-if-cfg; | description | |||
| description | "Adjacency state"; | |||
| "LFA level 1 config"; | } | |||
| } | ||||
| container level-2 { | ||||
| uses lfa-if-cfg; | ||||
| description | ||||
| "LFA level 2 config"; | ||||
| } | ||||
| description | ||||
| "LFA config"; | ||||
| } | ||||
| } | ||||
| grouping ietf-spf-delay-cfg { | grouping admin-control { | |||
| leaf initial-delay { | leaf enable { | |||
| type rt-types:timer-value-milliseconds; | if-feature admin-control; | |||
| units msec; | type boolean; | |||
| description | default true; | |||
| "Delay used while in QUIET state."; | description | |||
| "Enable/Disable the protocol."; | ||||
| } | ||||
| description | ||||
| "Grouping for admin control."; | ||||
| } | ||||
| } | grouping ietf-spf-delay { | |||
| leaf short-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 SHORT_WAIT state."; | "Delay used while in QUIET state (milliseconds)."; | |||
| } | } | |||
| leaf long-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 LONG_WAIT state."; | "Delay used while in SHORT_WAIT state (milliseconds)."; | |||
| } | } | |||
| leaf long-delay { | ||||
| type rt-types:timer-value-milliseconds; | ||||
| units msec; | ||||
| description | ||||
| "Delay used while in LONG_WAIT state (milliseconds)."; | ||||
| } | ||||
| 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 | |||
| } | (milliseconds)."; | |||
| leaf time-to-learn { | } | |||
| type rt-types:timer-value-milliseconds; | leaf time-to-learn { | |||
| units msec; | type rt-types:timer-value-milliseconds; | |||
| description | units msec; | |||
| "Duration used to learn all the IGP events | description | |||
| related to a single component failure."; | "Duration used to learn all the IGP events | |||
| } | related to a single component failure (milliseconds)."; | |||
| } | ||||
| leaf current-state { | ||||
| type enumeration { | ||||
| enum "quiet" { | ||||
| description "QUIET state"; | ||||
| } | ||||
| enum "short-wait" { | ||||
| description "SHORT_WAIT state"; | ||||
| } | ||||
| enum "long-wait" { | ||||
| description "LONG_WAIT state"; | ||||
| } | ||||
| } | ||||
| config false; | ||||
| description | ||||
| "Current SPF backoff algorithm state."; | ||||
| } | ||||
| leaf remaining-time-to-learn { | ||||
| type rt-types:timer-value-milliseconds; | ||||
| units "msec"; | ||||
| config false; | ||||
| description | ||||
| "Remaining time until time-to-learn timer fires."; | ||||
| } | ||||
| leaf remaining-hold-down { | ||||
| type rt-types:timer-value-milliseconds; | ||||
| units "msec"; | ||||
| config false; | ||||
| description | ||||
| "Remaining time until hold-down timer fires."; | ||||
| } | ||||
| leaf last-event-received { | ||||
| type yang:timestamp; | ||||
| config false; | ||||
| description | ||||
| "Time of last IGP event received"; | ||||
| } | ||||
| leaf next-spf-time { | ||||
| type yang:timestamp; | ||||
| config false; | ||||
| description | ||||
| "Time when next SPF has been scheduled."; | ||||
| } | ||||
| leaf last-spf-time { | ||||
| type yang:timestamp; | ||||
| config false; | ||||
| description | ||||
| "Time of last SPF computation."; | ||||
| } | ||||
| description | ||||
| "Grouping for IETF SPF delay configuration and state."; | ||||
| } | ||||
| description | grouping node-tag-config { | |||
| "Grouping for IETF SPF delay configuration."; | description | |||
| } | "IS-IS node tag config state."; | |||
| container node-tags { | ||||
| if-feature node-tag; | ||||
| list node-tag { | ||||
| key tag; | ||||
| leaf tag { | ||||
| type uint32; | ||||
| description | ||||
| "Node tag value."; | ||||
| } | ||||
| description | ||||
| "List of tags."; | ||||
| } | ||||
| description | ||||
| "Container for node admin tags."; | ||||
| } | ||||
| } | ||||
| grouping ietf-spf-delay-state { | grouping authentication-global-cfg { | |||
| leaf current-state { | choice authentication-type { | |||
| type enumeration { | case key-chain { | |||
| enum "quiet" { | if-feature key-chain; | |||
| description "QUIET state"; | leaf key-chain { | |||
| } | type key-chain:key-chain-ref; | |||
| enum "short-wait" { | description | |||
| description "SHORT_WAIT state"; | "Reference to a key-chain."; | |||
| } | } | |||
| enum "long-wait" { | } | |||
| description "LONG_WAIT state"; | case password { | |||
| } | leaf key { | |||
| } | type string; | |||
| config false; | description | |||
| description | "This leaf specifies the authentication key."; | |||
| "Current SPF backoff algorithm state."; | } | |||
| leaf crypto-algorithm { | ||||
| type identityref { | ||||
| base key-chain:crypto-algorithm; | ||||
| } | ||||
| description | ||||
| "Cryptographic algorithm associated with key."; | ||||
| } | ||||
| } | ||||
| description "Choice of authentication."; | ||||
| } | ||||
| description "Grouping for global authentication config."; | ||||
| } | ||||
| } | grouping metric-type-global-cfg { | |||
| leaf remaining-time-to-learn { | leaf value { | |||
| type rt-types:timer-value-milliseconds; | type enumeration { | |||
| units "msec"; | enum wide-only { | |||
| config false; | description | |||
| description | "Advertise new metric style only (RFC5305)"; | |||
| "Remaining time until time-to-learn timer fires."; | } | |||
| } | enum old-only { | |||
| leaf remaining-hold-down { | description | |||
| type rt-types:timer-value-milliseconds; | "Advertise old metric style only (RFC1195)"; | |||
| units "msec"; | } | |||
| config false; | enum both { | |||
| description | description "Advertise both metric styles"; | |||
| "Remaining time until hold-down timer fires."; | } | |||
| } | } | |||
| leaf last-event-received { | default wide-only; | |||
| type yang:timestamp; | description | |||
| config false; | "Type of metric to be generated: | |||
| description | - wide-only means only new metric style | |||
| "Time of last IGP event received"; | is generated, | |||
| } | - old-only means that only old style metric | |||
| leaf next-spf-time { | is generated, | |||
| type yang:timestamp; | - both means that both are advertised. | |||
| config false; | This leaf is only affecting IPv4 metrics."; | |||
| description | } | |||
| "Time when next SPF has been scheduled."; | description | |||
| } | "Grouping for global metric style config."; | |||
| leaf last-spf-time { | } | |||
| type yang:timestamp; | ||||
| config false; | ||||
| description | ||||
| "Time of last SPF computation."; | ||||
| } | ||||
| description | ||||
| "Grouping for IETF SPF delay operational states."; | ||||
| } | ||||
| grouping local-rib { | grouping default-metric-global-cfg { | |||
| description "Local-rib grouping."; | leaf value { | |||
| container local-rib { | type wide-metric; | |||
| config false; | default "10"; | |||
| description "Local-rib."; | description "Value of the metric"; | |||
| list route { | } | |||
| key "prefix"; | description | |||
| description "List of IS-IS local RIB Routes"; | "Global default metric config grouping."; | |||
| leaf prefix { | } | |||
| type inet:ip-prefix; | ||||
| description "Destination prefix."; | ||||
| } | grouping overload-global-cfg { | |||
| container next-hops { | leaf status { | |||
| description "All next hops for the route."; | type boolean; | |||
| list next-hop { | default false; | |||
| key "next-hop"; | description | |||
| description "List of next hop for the route"; | "This leaf specifies the overload status."; | |||
| leaf outgoing-interface { | } | |||
| type if:interface-ref; | description "Grouping for overload bit config."; | |||
| description | } | |||
| "Name of the outgoing interface."; | ||||
| } | ||||
| leaf next-hop { | ||||
| type inet:ip-address; | ||||
| description "Nexthop address."; | ||||
| } | ||||
| } | ||||
| } | ||||
| leaf metric { | ||||
| type uint32; | ||||
| description "Metric for this route."; | ||||
| } | ||||
| leaf level { | ||||
| type level-number; | ||||
| description "Level number for this route."; | ||||
| } | ||||
| leaf route-tag { | ||||
| type uint32; | ||||
| description "Route tag for this route."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| grouping isis-node-tag-cfg { | grouping overload-max-metric-global-cfg { | |||
| description "IS-IS node tag config."; | leaf timeout { | |||
| container node-tags { | type rt-types:timer-value-seconds16; | |||
| if-feature node-tag; | units "seconds"; | |||
| list node-tag { | description | |||
| key tag; | "Timeout (in seconds) of the overload condition."; | |||
| leaf tag { | } | |||
| type uint32; | description | |||
| description | "Overload maximum metric configuration grouping"; | |||
| "Node tag value."; | } | |||
| } | ||||
| description | ||||
| "List of tags."; | ||||
| } | ||||
| description | ||||
| "Container for node tags."; | ||||
| } | ||||
| } | ||||
| grouping authentication-global-cfg { | grouping route-preference-global-cfg { | |||
| choice authentication-type { | choice granularity { | |||
| case key-chain { | case detail { | |||
| if-feature key-chain; | leaf internal { | |||
| leaf key-chain { | type uint8; | |||
| type key-chain:key-chain-ref; | description | |||
| description | "Protocol preference for internal routes."; | |||
| "Reference to a key-chain."; | } | |||
| } | leaf external { | |||
| } | type uint8; | |||
| case password { | description | |||
| leaf key { | "Protocol preference for external routes."; | |||
| type string; | } | |||
| description | } | |||
| "This leaf specifies the authentication key."; | case coarse { | |||
| } | leaf default { | |||
| leaf crypto-algorithm { | type uint8; | |||
| type identityref { | description | |||
| base key-chain:crypto-algorithm; | "Protocol preference for all IS-IS routes."; | |||
| } | } | |||
| description | } | |||
| "Cryptographic algorithm associated with key."; | description | |||
| } | "Choice for implementation of route preference."; | |||
| } | } | |||
| description "Choice of authentication."; | description | |||
| } | "Global route preference grouping"; | |||
| description "Grouping for global authentication config."; | } | |||
| } | ||||
| grouping metric-type-global-cfg { | grouping hello-authentication-cfg { | |||
| leaf value { | choice authentication-type { | |||
| type enumeration { | case key-chain { | |||
| enum wide-only { | if-feature key-chain; | |||
| description | leaf key-chain { | |||
| "Advertise new metric style only (RFC5305)"; | type key-chain:key-chain-ref; | |||
| } | description "Reference to a key-chain."; | |||
| enum old-only { | } | |||
| description | } | |||
| "Advertise old metric style only (RFC1195)"; | case password { | |||
| } | leaf key { | |||
| enum both { | type string; | |||
| description "Advertise both metricstyles"; | description "Authentication key specification"; | |||
| } | } | |||
| } | leaf crypto-algorithm { | |||
| default wide-only; | type identityref { | |||
| description | base key-chain:crypto-algorithm; | |||
| "Type of metric to be generated: | } | |||
| - wide-only means only new metric style | description | |||
| is generated, | "Cryptographic algorithm associated with key."; | |||
| - old-only means that only old style metric | } | |||
| is generated, | } | |||
| - both means that both are advertised. | description "Choice of authentication."; | |||
| This leaf is only affecting IPv4 metrics."; | } | |||
| } | description "Grouping for hello authentication."; | |||
| description | } | |||
| "Grouping for global metric style config."; | ||||
| } | ||||
| grouping default-metric-global-cfg { | grouping hello-interval-cfg { | |||
| leaf value { | leaf value { | |||
| type wide-metric; | type rt-types:timer-value-seconds16; | |||
| default "10"; | units "seconds"; | |||
| description "Value of the metric"; | default 10; | |||
| } | description | |||
| description | "Interval (in seconds) between successive hello | |||
| "Global default metric config grouping."; | messages."; | |||
| } | } | |||
| grouping overload-global-cfg { | description "Interval between hello messages."; | |||
| leaf status { | } | |||
| type boolean; | ||||
| default false; | ||||
| description | ||||
| "This leaf specifies the overload status."; | ||||
| } | ||||
| description "Grouping for overload bit config."; | ||||
| } | ||||
| grouping overload-max-metric-global-cfg { | grouping hello-multiplier-cfg { | |||
| leaf timeout { | leaf value { | |||
| type rt-types:timer-value-seconds16; | type uint16; | |||
| units "seconds"; | default 3; | |||
| description | description | |||
| "Timeout (in seconds) of the overload condition."; | "Number of missed hello messages prior to | |||
| } | declaring the adjacency down."; | |||
| description | } | |||
| "Overload maximum metric configuration grouping"; | description | |||
| } | "Number of missed hello messages prior to | |||
| adjacency down grouping."; | ||||
| } | ||||
| grouping route-preference-global-cfg { | grouping priority-cfg { | |||
| choice granularity { | leaf value { | |||
| case detail { | type uint8 { | |||
| leaf internal { | range "0 .. 127"; | |||
| type uint8; | } | |||
| description | default 64; | |||
| "Protocol preference for internal routes."; | description | |||
| } | "Priority of interface for DIS election."; | |||
| 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 { | description "Interface DIS election priority grouping"; | |||
| 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 { | grouping metric-cfg { | |||
| leaf value { | leaf value { | |||
| type rt-types:timer-value-seconds16; | type wide-metric; | |||
| units "seconds"; | default "10"; | |||
| default 10; | description "Metric value."; | |||
| description | } | |||
| "Interval (in seconds) between successive hello | description "Interface metric grouping"; | |||
| messages."; | } | |||
| } | grouping metric-parameters { | |||
| container metric-type { | ||||
| uses metric-type-global-cfg; | ||||
| container level-1 { | ||||
| uses metric-type-global-cfg; | ||||
| description "level-1 specific configuration"; | ||||
| } | ||||
| container level-2 { | ||||
| uses metric-type-global-cfg; | ||||
| description "level-2 specific configuration"; | ||||
| } | ||||
| description "Metric style global configuration"; | ||||
| } | ||||
| description "Interval between hello messages."; | container default-metric { | |||
| } | uses default-metric-global-cfg; | |||
| container level-1 { | ||||
| uses default-metric-global-cfg; | ||||
| description "level-1 specific configuration"; | ||||
| } | ||||
| container level-2 { | ||||
| uses default-metric-global-cfg; | ||||
| description "level-2 specific configuration"; | ||||
| } | ||||
| description "Default metric global configuration"; | ||||
| } | ||||
| container auto-cost { | ||||
| if-feature auto-cost; | ||||
| description | ||||
| "Interface Auto-cost configuration state."; | ||||
| leaf enable { | ||||
| type boolean; | ||||
| description | ||||
| "Enable/Disable interface auto-cost."; | ||||
| } | ||||
| leaf reference-bandwidth { | ||||
| when "../enable = 'true'" { | ||||
| description "Only when auto cost is enabled"; | ||||
| } | ||||
| type uint32 { | ||||
| range "1..4294967"; | ||||
| } | ||||
| units Mbits; | ||||
| description | ||||
| "Configure reference bandwidth used to automatically | ||||
| determine interface cost (Mbits). The cost is the | ||||
| reference bandwidth divided by the interface speed | ||||
| with 1 being the minimum cost."; | ||||
| grouping hello-multiplier-cfg { | } | |||
| leaf value { | } | |||
| type uint16; | ||||
| default 3; | ||||
| description | ||||
| "Number of missed hello messages prior to | ||||
| declaring the adjacency down."; | ||||
| } | ||||
| description | ||||
| "Number of missed hello messages prior to | ||||
| adjacency down grouping."; | ||||
| } | ||||
| grouping priority-cfg { | description "Grouping for global metric parameters."; | |||
| leaf value { | } | |||
| type uint8 { | ||||
| range "0 .. 127"; | ||||
| } | ||||
| default 64; | ||||
| description | ||||
| "Priority of interface for DIS election."; | ||||
| } | ||||
| description "Interface DIS election priority grouping"; | grouping high-availability-parameters { | |||
| } | 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."; | ||||
| } | ||||
| container nsr { | ||||
| if-feature nsr; | ||||
| description "Non-Stop Routing (NSR) configuration."; | ||||
| leaf enable { | ||||
| type boolean; | ||||
| default false; | ||||
| description "Enable/Disable Non-Stop Routing (NSR)."; | ||||
| } | ||||
| } | ||||
| description "Grouping for High Availability parameters."; | ||||
| } | ||||
| grouping metric-cfg { | grouping authentication-parameters { | |||
| leaf value { | container authentication { | |||
| type wide-metric; | uses authentication-global-cfg; | |||
| default "10"; | ||||
| description "Metric value."; | ||||
| } | ||||
| description "Interface metric grouping"; | ||||
| } | ||||
| grouping lfa-if-cfg { | container level-1 { | |||
| leaf candidate-disabled { | uses authentication-global-cfg; | |||
| type boolean; | description "level-1 specific configuration"; | |||
| default false; | ||||
| description | ||||
| "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 { | } | |||
| if-feature remote-lfa; | container level-2 { | |||
| leaf enable { | uses authentication-global-cfg; | |||
| type boolean; | description "level-2 specific configuration"; | |||
| default false; | } | |||
| description | description "Authentication global configuration for | |||
| "Activates rLFA."; | both LSPs and SNPs."; | |||
| } | } | |||
| description "Remote LFA configuration."; | description "Grouping for authentication parameters"; | |||
| } | } | |||
| description "Grouping for LFA interface configuration"; | grouping address-family-parameters { | |||
| } | container address-families { | |||
| if-feature nlpid-control; | ||||
| list address-family-list { | ||||
| key address-family; | ||||
| leaf address-family { | ||||
| 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"; | ||||
| } | ||||
| description "Grouping for address family parameters."; | ||||
| } | ||||
| grouping isis-global-cfg { | grouping mpls-parameters { | |||
| description "IS-IS global configuration grouping"; | container mpls { | |||
| container te-rid { | ||||
| if-feature te-rid; | ||||
| description | ||||
| "Stable ISIS Router IP Address used for Traffic | ||||
| Engineering"; | ||||
| leaf ipv4-router-id { | ||||
| type inet:ipv4-address; | ||||
| description | ||||
| "Router ID value that would be used in TLV 134."; | ||||
| } | ||||
| leaf ipv6-router-id { | ||||
| type inet:ipv6-address; | ||||
| description | ||||
| "Router ID value that would be used in TLV 140."; | ||||
| uses admin-control; | } | |||
| } | ||||
| container ldp { | ||||
| container igp-sync { | ||||
| if-feature ldp-igp-sync; | ||||
| description | ||||
| "This container may be augmented with global | ||||
| parameters for igp-ldp-sync."; | ||||
| } | ||||
| description "LDP configuration."; | ||||
| } | ||||
| description "MPLS configuration"; | ||||
| } | ||||
| description "Grouping for MPLS global parameters."; | ||||
| } | ||||
| leaf level-type { | grouping lsp-parameters { | |||
| type level; | leaf lsp-mtu { | |||
| default "level-all"; | type uint16; | |||
| description | units "bytes"; | |||
| "Level of an IS-IS node - can be level-1-only, | default 1492; | |||
| level-2-only or level-1-2."; | description | |||
| } | "Maximum size of an LSP PDU in bytes."; | |||
| } | ||||
| 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."; | ||||
| } | ||||
| leaf poi-tlv { | ||||
| if-feature poi-tlv; | ||||
| type boolean; | ||||
| default false; | ||||
| description | ||||
| "Enable advertisement of IS-IS purge TLV."; | ||||
| } | ||||
| description "Grouping for LSP global parameters."; | ||||
| } | ||||
| grouping spf-parameters { | ||||
| container spf-control { | ||||
| leaf paths { | ||||
| if-feature max-ecmp; | ||||
| type uint16 { | ||||
| range "1..32"; | ||||
| } | ||||
| description | ||||
| "Maximum number of Equal-Cost Multi-Path (ECMP) paths."; | ||||
| } | ||||
| container ietf-spf-delay { | ||||
| if-feature ietf-spf-delay; | ||||
| uses ietf-spf-delay; | ||||
| description "IETF SPF delay algorithm configuration."; | ||||
| } | ||||
| description | ||||
| "SPF calculation control."; | ||||
| } | ||||
| description "Grouping for SPF global parameters."; | ||||
| } | ||||
| grouping instance-config { | ||||
| description "IS-IS global configuration grouping"; | ||||
| leaf system-id { | uses admin-control; | |||
| type system-id; | ||||
| description "System-id of the node."; | ||||
| } | ||||
| leaf maximum-area-addresses { | leaf level-type { | |||
| if-feature maximum-area-addresses; | type level; | |||
| type uint8; | default "level-all"; | |||
| default 3; | description | |||
| description "Maximum areas supported."; | "Level of an IS-IS node - can be level-1-only, | |||
| } | level-2-only or level-1-2."; | |||
| } | ||||
| leaf-list area-address { | leaf system-id { | |||
| type area-address; | type system-id; | |||
| description | description "System-id of the node."; | |||
| "List of areas supported by the protocol instance."; | } | |||
| } | ||||
| container mpls { | leaf maximum-area-addresses { | |||
| container te-rid { | if-feature maximum-area-addresses; | |||
| if-feature te-rid; | type uint8; | |||
| description | default 3; | |||
| "Stable ISIS Router IP Address used for Traffic | description "Maximum areas supported."; | |||
| Engineering"; | } | |||
| leaf ipv4-router-id { | ||||
| type inet:ipv4-address; | ||||
| description | ||||
| "Router ID value that would be used in TLV 134."; | ||||
| } | ||||
| leaf ipv6-router-id { | ||||
| type inet:ipv6-address; | ||||
| description | ||||
| "Router ID value that would be used in TLV 140."; | ||||
| } | ||||
| } | ||||
| container ldp { | ||||
| container igp-sync { | ||||
| if-feature ldp-igp-sync; | ||||
| description | ||||
| "This container may be augmented with global | ||||
| parameters for igp-ldp-sync."; | ||||
| } | ||||
| description "LDP configuration."; | ||||
| } | ||||
| description "MPLS configuration"; | ||||
| } | ||||
| container auto-cost { | ||||
| if-feature auto-cost; | ||||
| leaf reference-bandwidth { | ||||
| type uint32; | ||||
| units "bps"; | ||||
| description "Bandwidth for calculating metric."; | ||||
| } | ||||
| leaf enable { | ||||
| type boolean; | ||||
| default false; | ||||
| description "Enable/disable auto-cost."; | ||||
| } | ||||
| description "Auto-cost configuration."; | ||||
| } | ||||
| leaf lsp-mtu { | ||||
| type uint16; | ||||
| units "bytes"; | ||||
| default 1492; | ||||
| description | ||||
| "Maximum size of an LSP PDU in bytes."; | ||||
| } | ||||
| 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."; | ||||
| } | ||||
| container nsr { | leaf-list area-address { | |||
| if-feature nsr; | type area-address; | |||
| description "Non-Stop Routing (NSR) configuration."; | description | |||
| leaf enable { | "List of areas supported by the protocol instance."; | |||
| type boolean; | } | |||
| default false; | ||||
| description "Enable/Disable Non-Stop Routing (NSR)."; | ||||
| } | ||||
| } | ||||
| uses isis-node-tag-cfg; | uses lsp-parameters; | |||
| uses high-availability-parameters; | ||||
| uses node-tag-config; | ||||
| uses metric-parameters; | ||||
| uses authentication-parameters; | ||||
| uses address-family-parameters; | ||||
| uses mpls-parameters; | ||||
| uses spf-parameters; | ||||
| uses instance-fast-reroute-config; | ||||
| container authentication { | container preference { | |||
| uses authentication-global-cfg; | uses route-preference-global-cfg; | |||
| description "Router preference configuration for IS-IS | ||||
| protocol instance route installation"; | ||||
| } | ||||
| container level-1 { | container overload { | |||
| uses authentication-global-cfg; | uses overload-global-cfg; | |||
| description "level-1 specific configuration"; | description "Router protocol instance overload state | |||
| } | configuration"; | |||
| container level-2 { | } | |||
| uses authentication-global-cfg; | ||||
| description "level-2 specific configuration"; | ||||
| } | ||||
| description "Authentication global configuration for | ||||
| both LSPs and SNPs."; | ||||
| } | ||||
| container metric-type { | container overload-max-metric { | |||
| uses metric-type-global-cfg; | if-feature overload-max-metric; | |||
| container level-1 { | uses overload-max-metric-global-cfg; | |||
| uses metric-type-global-cfg; | description | |||
| description "level-1 specific configuration"; | "Router protocol instance overload maximum | |||
| } | metric advertisement configuration."; | |||
| container level-2 { | } | |||
| uses metric-type-global-cfg; | } | |||
| description "level-2 specific configuration"; | ||||
| } | ||||
| description "Metric style global configuration"; | ||||
| } | ||||
| container default-metric { | grouping instance-state { | |||
| uses default-metric-global-cfg; | description | |||
| container level-1 { | "IS-IS instance operational state."; | |||
| uses default-metric-global-cfg; | uses spf-log; | |||
| description "level-1 specific configuration"; | uses lsp-log; | |||
| } | uses hostname-db; | |||
| container level-2 { | uses lsdb; | |||
| uses default-metric-global-cfg; | uses local-rib; | |||
| description "level-2 specific configuration"; | uses system-counters; | |||
| } | uses instance-fast-reroute-state; | |||
| description "Default metric global configuration"; | } | |||
| } | ||||
| container afs { | grouping multi-topology-config { | |||
| if-feature nlpid-control; | description "Per-topology configuration"; | |||
| list af { | container default-metric { | |||
| key af; | uses default-metric-global-cfg; | |||
| leaf af { | container level-1 { | |||
| type iana-rt-types:address-family; | uses default-metric-global-cfg; | |||
| description "Address-family"; | description "level-1 specific configuration"; | |||
| } | } | |||
| leaf enable { | container level-2 { | |||
| type boolean; | uses default-metric-global-cfg; | |||
| description "Activate the address family."; | description "level-2 specific configuration"; | |||
| } | } | |||
| description | description "Default metric per-topology configuration"; | |||
| "List of address families and whether or not they | } | |||
| are activated."; | uses node-tag-config; | |||
| } | } | |||
| description "Address Family configuration"; | ||||
| } | ||||
| container preference { | grouping interface-config { | |||
| uses route-preference-global-cfg; | description "Interface configuration grouping"; | |||
| description "Router preference configuration for IS-IS | leaf level-type { | |||
| protocol instance route installation"; | 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."; | ||||
| } | ||||
| container overload { | uses admin-control; | |||
| uses overload-global-cfg; | ||||
| description "Router protocol instance overload state | ||||
| configuration"; | ||||
| } | ||||
| container overload-max-metric { | leaf-list tag { | |||
| if-feature overload-max-metric; | if-feature prefix-tag; | |||
| uses overload-max-metric-global-cfg; | type uint32; | |||
| description | description | |||
| "Router protocol instance overload maximum | "List of tags associated with the interface."; | |||
| metric advertisement configuration."; | } | |||
| } | 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; | ||||
| grouping isis-global-topologies-cfg { | reference "draft-ietf-bfd-yang-xx.txt: | |||
| description "Per-topology configuration"; | YANG Data Model for Bidirectional Forwarding | |||
| container default-metric { | Detection (BFD)"; | |||
| uses default-metric-global-cfg; | } | |||
| container level-1 { | container address-families { | |||
| uses default-metric-global-cfg; | if-feature nlpid-control; | |||
| description "level-1 specific configuration"; | list address-family-list { | |||
| } | key address-family; | |||
| container level-2 { | leaf address-family { | |||
| uses default-metric-global-cfg; | type iana-rt-types:address-family; | |||
| description "level-2 specific configuration"; | description "Address-family"; | |||
| } | } | |||
| description "Default metric per-topology configuration"; | description "List of AFs."; | |||
| } | } | |||
| uses isis-node-tag-cfg; | description "Interface address-families"; | |||
| } | } | |||
| container mpls { | ||||
| container ldp { | ||||
| leaf igp-sync { | ||||
| if-feature ldp-igp-sync; | ||||
| type boolean; | ||||
| default false; | ||||
| description "Enables IGP/LDP synchronization"; | ||||
| } | ||||
| description "LDP protocol related configuration."; | ||||
| } | ||||
| description "MPLS configuration for IS-IS interfaces"; | ||||
| } | ||||
| uses interface-fast-reroute-config; | ||||
| } | ||||
| grouping isis-if-cfg { | grouping multi-topology-interface-config { | |||
| description "Interface configuration grouping"; | description "IS-IS interface topology configuration."; | |||
| leaf level-type { | container metric { | |||
| type level; | uses metric-cfg; | |||
| default "level-all"; | container level-1 { | |||
| description "IS-IS level of the interface."; | uses metric-cfg; | |||
| } | description "level-1 specific configuration"; | |||
| leaf lsp-pacing-interval { | } | |||
| type rt-types:timer-value-milliseconds; | container level-2 { | |||
| units "milliseconds"; | uses metric-cfg; | |||
| default 33; | description "level-2 specific configuration"; | |||
| description | } | |||
| "Interval (in milli-seconds) between LSP | description "Metric IS-IS interface configuration."; | |||
| transmissions."; | } | |||
| } | } | |||
| leaf lsp-retransmit-interval { | grouping interface-state { | |||
| type rt-types:timer-value-seconds16; | description | |||
| units "seconds"; | "IS-IS interface operational state."; | |||
| description | uses adjacency-state; | |||
| "Interval (in seconds) between LSP | uses event-counters; | |||
| retransmissions."; | uses packet-counters; | |||
| } | } | |||
| 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."; | ||||
| } | ||||
| uses admin-control; | /* Grouping for the hostname database */ | |||
| leaf-list tag { | grouping hostname-db { | |||
| if-feature prefix-tag; | container hostnames { | |||
| type uint32; | config false; | |||
| description | list hostname { | |||
| "List of tags associated with the interface."; | key system-id; | |||
| } | leaf system-id { | |||
| leaf-list tag64 { | type system-id; | |||
| if-feature prefix-tag64; | description | |||
| type uint64; | "System-id associated with the hostname."; | |||
| description | } | |||
| "List of 64-bit tags associated with the interface."; | leaf hostname { | |||
| } | type string; | |||
| leaf node-flag { | description | |||
| if-feature node-flag; | "Hostname associated with the system ID."; | |||
| type boolean; | } | |||
| default false; | description | |||
| description | "List of system-id/hostname associations."; | |||
| "Set prefix as a node representative prefix."; | } | |||
| } | description | |||
| container hello-authentication { | "Hostname to system-id mapping database."; | |||
| uses hello-authentication-cfg; | } | |||
| container level-1 { | description | |||
| uses hello-authentication-cfg; | "Grouping for hostname to system-id mapping database."; | |||
| 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; | ||||
| reference "draft-ietf-bfd-yang-xx.txt: | /* Groupings for counters */ | |||
| YANG Data Model for Bidirectional Forwarding | ||||
| Detection (BFD)"; | ||||
| } | ||||
| container afs { | ||||
| if-feature nlpid-control; | ||||
| list af { | ||||
| key af; | ||||
| leaf af { | ||||
| type iana-rt-types:address-family; | ||||
| description "Address-family"; | ||||
| } | ||||
| description "List of AFs."; | ||||
| } | ||||
| description "Interface address-families"; | ||||
| } | ||||
| container mpls { | ||||
| container ldp { | ||||
| leaf igp-sync { | ||||
| if-feature ldp-igp-sync; | ||||
| type boolean; | ||||
| default false; | ||||
| description "Enables IGP/LDP synchronization"; | ||||
| } | ||||
| description "LDP protocol related configuration."; | ||||
| } | ||||
| description "MPLS configuration for IS-IS interfaces"; | ||||
| } | ||||
| } | ||||
| grouping isis-if-topologies-cfg { | grouping system-counters { | |||
| description "IS-IS interface topology configuration."; | container system-counters { | |||
| container metric { | config false; | |||
| uses metric-cfg; | list level { | |||
| container level-1 { | key level; | |||
| uses metric-cfg; | ||||
| description "level-1 specific configuration"; | ||||
| } | ||||
| container level-2 { | ||||
| uses metric-cfg; | ||||
| description "level-2 specific configuration"; | ||||
| } | ||||
| description "Metric IS-IS interface 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 "IS-IS level."; | config false; | |||
| } | leaf adjacency-changes { | |||
| leaf corrupted-lsps { | type uint32; | |||
| type uint32; | description | |||
| description | "The number of times an adjacency state change has | |||
| "Number of corrupted in-memory LSPs detected. | occured on this interface."; | |||
| LSPs received from the wire with a bad | } | |||
| checksum are silently dropped and not counted. | 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 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."; | ||||
| } | ||||
| 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 "IS-IS interface event counters."; | ||||
| } | ||||
| description | ||||
| "Grouping for IS-IS interface event counters"; | ||||
| } | ||||
| LSPs received from the wire with parse errors | grouping packet-counters { | |||
| are counted by lsp-errors."; | container packet-counters { | |||
| } | config false; | |||
| leaf authentication-type-fails { | list level { | |||
| type uint32; | key level; | |||
| 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."; | ||||
| } | ||||
| grouping event-counters { | leaf level { | |||
| container event-counters { | type level-number; | |||
| config false; | description "IS-IS level."; | |||
| leaf adjacency-changes { | } | |||
| type uint32; | container iih { | |||
| description | leaf in { | |||
| "The number of times an adjacency state change has | type uint32; | |||
| occured on this interface."; | description "Received IIH PDUs."; | |||
| } | } | |||
| leaf adjacency-number { | leaf out { | |||
| type uint32; | type uint32; | |||
| description | description "Sent IIH PDUs."; | |||
| "The number of adjacencies on this interface."; | } | |||
| } | description "Number of IIH PDUs received/sent."; | |||
| leaf init-fails { | } | |||
| type uint32; | container ish { | |||
| description | leaf in { | |||
| "The number of times initialization of this | type uint32; | |||
| interface has failed. This counts events such | description "Received ISH PDUs."; | |||
| as PPP NCP failures. Failures to form an | } | |||
| adjacency are counted by adjacency-rejects."; | leaf out { | |||
| } | type uint32; | |||
| leaf adjacency-rejects { | description "Sent ISH PDUs."; | |||
| type uint32; | } | |||
| description | description | |||
| "The number of times an adjacency has been | "ISH PDUs received/sent."; | |||
| rejected on this interface."; | } | |||
| } | container esh { | |||
| leaf id-len-mismatch { | leaf in { | |||
| type uint32; | type uint32; | |||
| description | description "Received ESH PDUs."; | |||
| "The number of times an IS-IS PDU with an ID | } | |||
| field length different from that for this | leaf out { | |||
| system has been received on this interface."; | type uint32; | |||
| } | description "Sent ESH PDUs."; | |||
| leaf max-area-addresses-mismatch { | } | |||
| type uint32; | description "Number of ESH PDUs received/sent."; | |||
| description | } | |||
| "The number of times an IS-IS PDU has been | container lsp { | |||
| received on this interface with the | leaf in { | |||
| max area address field differing from that of | type uint32; | |||
| this system."; | description "Received LSP PDUs."; | |||
| } | } | |||
| leaf authentication-type-fails { | leaf out { | |||
| type uint32; | type uint32; | |||
| description | description "Sent LSP PDUs."; | |||
| "Number of authentication type mismatches."; | } | |||
| } | description "Number of LSP PDUs received/sent."; | |||
| leaf authentication-fails { | } | |||
| type uint32; | container psnp { | |||
| description | leaf in { | |||
| "Number of authentication key failures."; | type uint32; | |||
| } | description "Received PSNP PDUs."; | |||
| leaf lan-dis-changes { | } | |||
| type uint32; | leaf out { | |||
| description | type uint32; | |||
| "The number of times the DIS has changed on this | description "Sent PSNP PDUs."; | |||
| interface at this level. If the interface type is | } | |||
| point-to-point,the count is zero."; | description "Number of PSNP PDUs received/sent."; | |||
| } | } | |||
| description "IS-IS interface event counters."; | container csnp { | |||
| } | leaf in { | |||
| description | type uint32; | |||
| "Grouping for IS-IS interface event counters"; | 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."; | ||||
| } | ||||
| grouping packet-counters { | /* Groupings for various log buffers */ | |||
| container packet-counters { | grouping spf-log { | |||
| config false; | container spf-log { | |||
| list level { | config false; | |||
| key level; | list event { | |||
| key id; | ||||
| leaf level { | leaf id { | |||
| type level-number; | type uint32; | |||
| description "IS-IS level."; | description | |||
| } | "Event identifier - purely internal value."; | |||
| container iih { | } | |||
| leaf in { | leaf spf-type { | |||
| type uint32; | type enumeration { | |||
| description "Received IIH PDUs."; | enum full { | |||
| } | description "Full SPF computation."; | |||
| leaf out { | } | |||
| type uint32; | enum route-only { | |||
| description "Sent IIH PDUs."; | description | |||
| } | "Route reachability only SPF computation"; | |||
| 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."; | } | |||
| } | description "Type of SPF computation performed."; | |||
| container psnp { | } | |||
| leaf in { | leaf level { | |||
| type uint32; | type level-number; | |||
| description "Received PSNP PDUs."; | description | |||
| } | "IS-IS level number for SPF computation"; | |||
| leaf out { | } | |||
| type uint32; | leaf schedule-timestamp { | |||
| description "Sent PSNP PDUs."; | type yang:timestamp; | |||
| } | description | |||
| description "Number of PSNP PDUs received/sent."; | "Timestamp of when the SPF computation was | |||
| } | scheduled."; | |||
| container csnp { | } | |||
| leaf in { | leaf start-timestamp { | |||
| type uint32; | type yang:timestamp; | |||
| description "Received CSNP PDUs."; | description | |||
| } | "Timestamp of when the SPF computation started."; | |||
| leaf out { | } | |||
| type uint32; | leaf end-timestamp { | |||
| description "Sent CSNP PDUs."; | type yang:timestamp; | |||
| } | description | |||
| description "Number of CSNP PDUs received/sent."; | "Timestamp of when the SPF computation ended."; | |||
| } | } | |||
| container unknown { | list trigger-lsp { | |||
| leaf in { | key "lsp"; | |||
| type uint32; | leaf lsp { | |||
| description "Received unknown PDUs."; | type lsp-id; | |||
| } | description | |||
| leaf out { | "LSPID of the LSP triggering SPF computation."; | |||
| type uint32; | } | |||
| description "Sent unknown PDUs."; | leaf sequence { | |||
| } | type uint32; | |||
| description "Number of unknown PDUs received/sent."; | description | |||
| } | "Sequence number of the LSP triggering SPF | |||
| description | computation"; | |||
| "List of packet counter for supported llevels."; | } | |||
| } | description | |||
| description "Packet counters per IS-IS level."; | "This list includes the LSPs that triggered the | |||
| } | SPF computation."; | |||
| description | } | |||
| "Grouping for per IS-IS Level packet counters."; | description | |||
| } | "List of computation events - implemented as a | |||
| wrapping buffer."; | ||||
| } | ||||
| grouping spf-log { | description | |||
| container spf-log { | "This container lists the SPF computation events."; | |||
| config false; | } | |||
| list event { | description "Grouping for spf-log events."; | |||
| key id; | } | |||
| leaf id { | grouping lsp-log { | |||
| type uint32; | container lsp-log { | |||
| description | config false; | |||
| "Event identifier - purely internal value."; | list event { | |||
| } | key id; | |||
| 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 | ||||
| "List of computation events - implemented as a | ||||
| wrapping buffer."; | ||||
| } | ||||
| description | leaf id { | |||
| "This container lists the SPF computation events."; | type uint32; | |||
| } | description | |||
| description "Grouping for spf-log events."; | "Event identifier - purely internal value."; | |||
| } | } | |||
| leaf level { | ||||
| type level-number; | ||||
| description | ||||
| "IS-IS level number for LSP"; | ||||
| } | ||||
| container lsp { | ||||
| leaf lsp { | ||||
| type lsp-id; | ||||
| description | ||||
| "LSPID of the LSP."; | ||||
| } | ||||
| leaf sequence { | ||||
| type uint32; | ||||
| description | ||||
| "Sequence number of the LSP."; | ||||
| } | ||||
| description | ||||
| "LSP identification container - either the received | ||||
| LSP or the locally generated LSP."; | ||||
| } | ||||
| grouping lsp-log { | leaf received-timestamp { | |||
| container lsp-log { | type yang:timestamp; | |||
| config false; | description | |||
| list event { | "This is the timestamp when the LSA was received. | |||
| key id; | In case of local LSA update, the timestamp refers | |||
| to the LSA origination time."; | ||||
| } | ||||
| leaf id { | leaf reason { | |||
| type uint32; | type identityref { | |||
| description | base lsp-log-reason; | |||
| "Event identifier - purely internal value."; | ||||
| } | ||||
| leaf level { | ||||
| type level-number; | ||||
| description | ||||
| "IS-IS level number for LSP"; | ||||
| } | ||||
| container lsp { | ||||
| leaf lsp { | ||||
| type lsp-id; | } | |||
| description | description "Type of LSP change."; | |||
| "LSPID of the LSP."; | } | |||
| } | ||||
| leaf sequence { | ||||
| type uint32; | ||||
| description | ||||
| "Sequence number of the LSP."; | ||||
| } | description | |||
| description | "List of LSP events - implemented as a | |||
| "LSP identification container - either the received | wrapping buffer."; | |||
| LSP or the locally generated LSP."; | } | |||
| } | ||||
| leaf received-timestamp { | description | |||
| type yang:timestamp; | "This container lists the LSP log. | |||
| Local LSP modifications are also included | ||||
| in the list."; | ||||
| description | } description "Grouping for LSP log."; | |||
| "Timestamp of when the LSP was received. In case | } | |||
| of local LSP update, the timestamp refers to the | ||||
| local LSP update time."; | ||||
| } | ||||
| leaf change { | /* Groupings for the LSDB description */ | |||
| type identityref { | ||||
| base lsp-log-reason; | ||||
| } | ||||
| description "Type of LSP change."; | ||||
| } | ||||
| description | /* Unknown TLV and subTLV description */ | |||
| "List of LSP events - implemented as a | grouping tlv { | |||
| wrapping buffer."; | description | |||
| } | "Type-Length-Value (TLV)"; | |||
| leaf type { | ||||
| type uint16; | ||||
| description "TLV type."; | ||||
| } | ||||
| leaf length { | ||||
| type uint16; | ||||
| description "TLV length (octets)."; | ||||
| } | ||||
| leaf value { | ||||
| type yang:hex-string; | ||||
| description "TLV value."; | ||||
| } | ||||
| } | ||||
| description | grouping unknown-tlvs { | |||
| "LSP reception and local LSP origination events | description | |||
| container."; | "Unknown TLVs grouping - Used for unknown TLVs or | |||
| unknown sub-TLVs."; | ||||
| container unknown-tlvs { | ||||
| description "All unknown TLVs."; | ||||
| list unknown-tlv { | ||||
| description "Unknown TLV."; | ||||
| uses tlv; | ||||
| } | } | |||
| description "Grouping for LSP log."; | } | |||
| } | } | |||
| grouping hostname-db { | /* TLVs and subTLVs for prefixes */ | |||
| container hostnames { | ||||
| config false; | ||||
| 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."; | ||||
| } | ||||
| /* Groupings for the LSDB description */ | grouping prefix-reachability-attributes { | |||
| description | ||||
| "Grouping for extended reachability attributes of an | ||||
| IPv4 or IPv6 prefix."; | ||||
| grouping prefix-reachability-attributes { | leaf external-prefix-flag { | |||
| description | type boolean; | |||
| "Grouping for extended reachability attributes of an | description "External prefix flag."; | |||
| IPv4 or IPv6 prefix."; | } | |||
| leaf readvertisement-flag { | ||||
| type boolean; | ||||
| description "Readvertisement flag."; | ||||
| } | ||||
| leaf node-flag { | ||||
| type boolean; | ||||
| description "Node flag."; | ||||
| } | ||||
| } | ||||
| leaf external-prefix-flag { | grouping prefix-ipv4-source-router-id { | |||
| type boolean; | description | |||
| description "External prefix flag."; | "Grouping for the IPv4 source router ID of a prefix | |||
| } | advertisement."; | |||
| leaf readvertisement-flag { | ||||
| type boolean; | ||||
| description "Readvertisement flag."; | ||||
| } | ||||
| leaf node-flag { | ||||
| type boolean; | ||||
| description "Node flag."; | ||||
| } | ||||
| } | ||||
| grouping prefix-ipv4-source-router-id { | leaf ipv4-source-router-id { | |||
| description | type inet:ipv4-address; | |||
| "Grouping for the IPv4 source router ID of a prefix | description "IPv4 Source router ID address."; | |||
| advertisement."; | } | |||
| } | ||||
| leaf ipv4-source-router-id { | grouping prefix-ipv6-source-router-id { | |||
| type inet:ipv4-address; | description | |||
| description "IPv4 Source router ID address."; | "Grouping for the IPv6 source router ID of a prefix | |||
| } | advertisement."; | |||
| } | ||||
| grouping prefix-ipv6-source-router-id { | leaf ipv6-source-router-id { | |||
| description | type inet:ipv6-address; | |||
| "Grouping for the IPv6 source router ID of a prefix | description "IPv6 Source router ID address."; | |||
| advertisement."; | } | |||
| } | ||||
| leaf ipv6-source-router-id { | grouping prefix-attributes-extension { | |||
| type inet:ipv6-address; | description "Prefix extended attributes."; | |||
| description "IPv6 Source router ID address."; | ||||
| } | ||||
| } | ||||
| grouping prefix-attributes-extension { | uses prefix-reachability-attributes; | |||
| description "Prefix extended attributes."; | uses prefix-ipv4-source-router-id; | |||
| uses prefix-ipv6-source-router-id; | ||||
| } | ||||
| uses prefix-reachability-attributes; | grouping prefix-ipv4-std { | |||
| uses prefix-ipv4-source-router-id; | description | |||
| uses prefix-ipv6-source-router-id; | "Grouping for attributes of an IPv4 standard prefix."; | |||
| } | leaf up-down { | |||
| type boolean; | ||||
| description "Value of up/down bit."; | ||||
| } | ||||
| leaf i-e { | ||||
| type boolean; | ||||
| description "Value of I/E bit."; | ||||
| } | ||||
| leaf ip-prefix { | ||||
| type inet:ipv4-address; | ||||
| description "IPv4 prefix address"; | ||||
| } | ||||
| leaf prefix-len { | ||||
| type uint8; | ||||
| description "IPv4 prefix length (in bits)"; | ||||
| } | ||||
| leaf default-metric { | ||||
| type std-metric; | ||||
| description "Default IS-IS metric for IPv4 prefix"; | ||||
| } | ||||
| container delay-metric { | ||||
| leaf metric { | ||||
| type std-metric; | ||||
| description "IS-IS delay metric for IPv4 prefix"; | ||||
| } | ||||
| leaf supported { | ||||
| type boolean; | ||||
| default "false"; | ||||
| description | ||||
| "Indicates whether IS-IS delay metric is supported."; | ||||
| } | ||||
| description "IS-IS delay metric container."; | ||||
| } | ||||
| 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-std { | grouping prefix-ipv4-extended { | |||
| description | description | |||
| "Grouping for attributes of an IPv4 standard prefix."; | "Grouping for attributes of an IPv4 extended prefix."; | |||
| leaf up-down { | leaf up-down { | |||
| type boolean; | type boolean; | |||
| description "Value of up/down bit."; | description "Value of up/down bit."; | |||
| } | } | |||
| leaf i-e { | leaf ip-prefix { | |||
| type boolean; | type inet:ipv4-address; | |||
| description "Value of I/E bit."; | description "IPv4 prefix address"; | |||
| } | } | |||
| leaf ip-prefix { | leaf prefix-len { | |||
| type inet:ipv4-address; | type uint8; | |||
| description "IPv4 prefix address"; | description "IPv4 prefix length (in bits)"; | |||
| } | } | |||
| leaf prefix-len { | ||||
| type uint8; | ||||
| description "IPv4 prefix length (in bits)"; | ||||
| } | ||||
| leaf default-metric { | ||||
| type std-metric; | ||||
| description "Default IS-IS metric for IPv4 prefix"; | ||||
| } | ||||
| container delay-metric { | ||||
| leaf metric { | ||||
| type std-metric; | ||||
| description "IS-IS delay metric for IPv4 prefix"; | ||||
| } | ||||
| leaf supported { | ||||
| type boolean; | ||||
| default "false"; | ||||
| description | ||||
| "Indicates whether IS-IS delay metric is supported."; | ||||
| } | ||||
| description "IS-IS delay metric container."; | ||||
| } | ||||
| 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 { | leaf metric { | |||
| description | type wide-metric; | |||
| "Grouping for attributes of an IPv4 extended prefix."; | description "IS-IS wide metric value"; | |||
| leaf up-down { | } | |||
| type boolean; | leaf-list tag { | |||
| description "Value of up/down bit."; | type uint32; | |||
| } | description | |||
| leaf ip-prefix { | "List of 32-bit tags associated with the IPv4 prefix."; | |||
| type inet:ipv4-address; | } | |||
| description "IPv4 prefix address"; | leaf-list tag64 { | |||
| } | type uint64; | |||
| leaf prefix-len { | description | |||
| type uint8; | "List of 32-bit tags associated with the IPv4 prefix."; | |||
| description "IPv4 prefix length (in bits)"; | } | |||
| } | uses prefix-attributes-extension; | |||
| } | ||||
| leaf metric { | grouping prefix-ipv6-extended { | |||
| type wide-metric; | description "Grouping for attributes of an IPv6 prefix."; | |||
| description "IS-IS wide metric value"; | leaf up-down { | |||
| } | type boolean; | |||
| leaf-list tag { | description "Value of up/down bit."; | |||
| type uint32; | } | |||
| description | leaf ip-prefix { | |||
| "List of 32-bit tags associated with the IPv4 prefix."; | type inet:ipv6-address; | |||
| } | description "IPv6 prefix address"; | |||
| leaf-list tag64 { | } | |||
| type uint64; | leaf prefix-len { | |||
| description | type uint8; | |||
| "List of 32-bit tags associated with the IPv4 prefix."; | description "IPv4 prefix length (in bits)"; | |||
| } | } | |||
| uses prefix-attributes-extension; | leaf metric { | |||
| } | type wide-metric; | |||
| description "IS-IS wide metric value"; | ||||
| } | ||||
| leaf-list tag { | ||||
| type uint32; | ||||
| description | ||||
| "List of 32-bit tags associated with the IPv4 prefix."; | ||||
| } | ||||
| leaf-list tag64 { | ||||
| type uint64; | ||||
| description | ||||
| "List of 32-bit tags associated with the IPv4 prefix."; | ||||
| } | ||||
| uses prefix-attributes-extension; | ||||
| } | ||||
| grouping prefix-ipv6-extended { | /* TLVs and subTLVs for neighbors */ | |||
| description "Grouping for attributes of an IPv6 prefix."; | ||||
| leaf up-down { | ||||
| type boolean; | ||||
| description "Value of up/down bit."; | ||||
| } | ||||
| leaf ip-prefix { | ||||
| type inet:ipv6-address; | ||||
| description "IPv6 prefix address"; | ||||
| } | ||||
| leaf prefix-len { | ||||
| type uint8; | ||||
| description "IPv4 prefix length (in bits)"; | ||||
| } | ||||
| leaf metric { | ||||
| type wide-metric; | ||||
| description "IS-IS wide metric value"; | ||||
| } | ||||
| leaf-list tag { | ||||
| type uint32; | ||||
| description | ||||
| "List of 32-bit tags associated with the IPv4 prefix."; | ||||
| } | ||||
| leaf-list tag64 { | ||||
| type uint64; | ||||
| description | ||||
| "List of 32-bit tags associated with the IPv4 prefix."; | ||||
| } | ||||
| uses prefix-attributes-extension; | ||||
| } | ||||
| grouping neighbor-extended { | grouping neighbor-link-attributes { | |||
| description | description | |||
| "Grouping for attributes of an IS-IS extended neighbor."; | "Grouping for link attributes as defined | |||
| leaf neighbor-id { | in RFC5029"; | |||
| type system-id; | leaf link-attributes-flags { | |||
| description "System-id of the extended neighbor."; | type uint16; | |||
| } | description | |||
| leaf metric { | "Flags for the link attributes"; | |||
| type wide-metric; | } | |||
| description "IS-IS wide metric for extended neighbor"; | } | |||
| } | grouping neighbor-gmpls-extensions { | |||
| } | description | |||
| "Grouping for GMPLS attributes of a neighbor as | ||||
| defined | ||||
| in RFC5307"; | ||||
| leaf link-local-id { | ||||
| type uint32; | ||||
| description | ||||
| "Local identifier of the link."; | ||||
| } | ||||
| leaf remote-local-id { | ||||
| type uint32; | ||||
| description | ||||
| "Remote identifier of the link."; | ||||
| } | ||||
| leaf protection-capability { | ||||
| type uint8; | ||||
| description | ||||
| "Describes the protection capabilities | ||||
| of the link. This is the value of the | ||||
| first octet of the sub-TLV type 20 | ||||
| value."; | ||||
| } | ||||
| container interface-switching-capability { | ||||
| description | ||||
| "Interface switching capabilities of | ||||
| the link."; | ||||
| leaf switching-capability { | ||||
| type uint8; | ||||
| description | ||||
| "Switching capability of the | ||||
| link."; | ||||
| } | ||||
| leaf encoding { | ||||
| type uint8; | ||||
| description | ||||
| "Type of encoding of the LSP | ||||
| being used."; | ||||
| } | ||||
| container max-lsp-bandwidths { | ||||
| description "Per priority max LSP | ||||
| bandwidths."; | ||||
| list max-lsp-bandwidth { | ||||
| leaf priority { | ||||
| type uint8 { | ||||
| range "0 .. 7"; | ||||
| } | ||||
| description "Priority | ||||
| from 0 to 7."; | ||||
| } | ||||
| leaf bandwidth { | ||||
| type | ||||
| rt-types:bandwidth-ieee-float32; | ||||
| description "max LSP | ||||
| bandwidth."; | ||||
| } | ||||
| description | ||||
| "List of max LSP | ||||
| bandwidths for different | ||||
| priorities."; | ||||
| } | ||||
| } | ||||
| container tdm-specific { | ||||
| when "switching-capability = 100"; | ||||
| description | ||||
| "Switching Capability-specific | ||||
| information applicable | ||||
| when switching type is TDM."; | ||||
| grouping neighbor { | leaf minimum-lsp-bandwidth { | |||
| description "IS-IS standard neighbor grouping."; | type | |||
| leaf neighbor-id { | rt-types:bandwidth-ieee-float32; | |||
| type system-id; | description "minimum LSP | |||
| description "IS-IS neighbor system-id"; | bandwidth."; | |||
| } | } | |||
| leaf i-e { | leaf indication { | |||
| type boolean; | type uint8; | |||
| description | description | |||
| "Internal or External (I/E) Metric bit value"; | "The indication whether | |||
| } | the interface supports Standard or Arbitrary | |||
| leaf default-metric { | SONET/SDH."; | |||
| type std-metric; | } | |||
| description "IS-IS default metric value"; | } | |||
| } | container psc-specific { | |||
| container delay-metric { | when "switching-capability >= 1 and | |||
| leaf metric { | switching-capability <= 4"; | |||
| type std-metric; | description | |||
| description "IS-IS delay metric value"; | "Switching Capability-specific | |||
| } | information applicable | |||
| leaf supported { | when switching type is | |||
| type boolean; | PSC1,PSC2,PSC3 or PSC4."; | |||
| default "false"; | ||||
| description "IS-IS delay metric supported"; | ||||
| } | ||||
| description "IS-IS delay metric container"; | ||||
| } | ||||
| container expense-metric { | ||||
| leaf metric { | ||||
| type std-metric; | ||||
| description "IS-IS delay expense metric value"; | ||||
| } | ||||
| leaf supported { | ||||
| type boolean; | ||||
| default "false"; | ||||
| description "IS-IS delay expense metric supported"; | ||||
| } | ||||
| description "IS-IS delay expense metric container"; | ||||
| } | ||||
| container error-metric { | ||||
| leaf metric { | ||||
| type std-metric; | ||||
| description "IS-IS error metric value"; | ||||
| } | ||||
| leaf supported { | ||||
| type boolean; | ||||
| default "false"; | ||||
| description "IS-IS error metric supported"; | ||||
| } | ||||
| description "IS-IS error metric container"; | ||||
| } | ||||
| } | ||||
| grouping lsp-entry { | leaf minimum-lsp-bandwidth { | |||
| description "IS-IS LSP database entry groupting"; | type | |||
| rt-types:bandwidth-ieee-float32; | ||||
| description "minimum LSP | ||||
| bandwidth."; | ||||
| } | ||||
| leaf mtu { | ||||
| type uint16; | ||||
| units bytes; | ||||
| description | ||||
| "Interface MTU"; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| leaf decoded-completed { | grouping neighbor-extended-te-extensions { | |||
| type boolean; | description | |||
| description "IS-IS LSP body fully decoded."; | "Grouping for TE attributes of a neighbor as | |||
| } | defined | |||
| leaf raw-data { | in RFC7810"; | |||
| 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."; | ||||
| } | ||||
| bit attached-expense { | ||||
| description | ||||
| "If set, the originator is attached to | ||||
| another area using the referred metric."; | ||||
| } | ||||
| bit attached-delay { | ||||
| description | ||||
| "If set, the originator is attached to | ||||
| another area using the referred metric."; | ||||
| } | ||||
| bit attached-default { | ||||
| description | ||||
| "If set, the originator is attached to | ||||
| another area using the referred metric."; | ||||
| } | ||||
| bit overload { | ||||
| description | ||||
| "If set, the originator is overloaded, | ||||
| and must be avoided in path calculation."; | ||||
| } | ||||
| } | ||||
| description "LSP attributes"; | ||||
| } | ||||
| leaf-list ipv4-addresses { | container unidirectional-link-delay { | |||
| type inet:ipv4-address; | description | |||
| description | "Container for the average delay | |||
| "List of IPv4 addresses of the IS-IS node - IS-IS | from the local neighbor to the remote | |||
| reference is TLV 132."; | one."; | |||
| } | leaf flags { | |||
| type bits { | ||||
| bit A { | ||||
| position 7; | ||||
| description | ||||
| "The A bit | ||||
| represents the Anomalous (A) bit. | ||||
| The A bit is | ||||
| set when the measured value of | ||||
| this parameter | ||||
| exceeds its configured | ||||
| maximum | ||||
| threshold. | ||||
| The A bit is | ||||
| cleared when the measured value | ||||
| falls below its | ||||
| configured reuse threshold. | ||||
| If the A bit is | ||||
| clear, | ||||
| the value | ||||
| represents steady-state link performance."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "Flags."; | ||||
| } | ||||
| leaf value { | ||||
| type uint32; | ||||
| units usec; | ||||
| description | ||||
| "Delay value expressed in | ||||
| microseconds."; | ||||
| } | ||||
| } | ||||
| container min-max-unidirectional-link-delay { | ||||
| description | ||||
| "Container for the min and max delay | ||||
| from the local neighbor to the remote | ||||
| one."; | ||||
| leaf flags { | ||||
| type bits { | ||||
| bit A { | ||||
| position 7; | ||||
| description | ||||
| "The A bit | ||||
| represents the Anomalous (A) bit. | ||||
| The A bit is | ||||
| set when the measured value of | ||||
| this parameter | ||||
| exceeds its configured | ||||
| maximum | ||||
| threshold. | ||||
| The A bit is | ||||
| cleared when the measured value | ||||
| falls below its | ||||
| configured reuse threshold. | ||||
| If the A bit is | ||||
| clear, | ||||
| the value | ||||
| represents steady-state link performance."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "Flags."; | ||||
| } | ||||
| leaf min-value { | ||||
| type uint32; | ||||
| units usec; | ||||
| description | ||||
| "Minimum delay value expressed | ||||
| in microseconds."; | ||||
| } | ||||
| leaf max-value { | ||||
| type uint32; | ||||
| units usec; | ||||
| description | ||||
| "Maximum delay value expressed | ||||
| in microseconds."; | ||||
| } | ||||
| } | ||||
| container unidirectional-link-delay-variation { | ||||
| description | ||||
| "Container for the average delay | ||||
| variation | ||||
| from the local neighbor to the remote | ||||
| one."; | ||||
| leaf value { | ||||
| type uint32; | ||||
| units usec; | ||||
| description | ||||
| "Delay variation value | ||||
| expressed in microseconds."; | ||||
| } | ||||
| } | ||||
| container unidirectional-link-loss{ | ||||
| description | ||||
| "Container for the packet loss | ||||
| from the local neighbor to the remote | ||||
| one."; | ||||
| leaf flags { | ||||
| type bits { | ||||
| bit A { | ||||
| position 7; | ||||
| description | ||||
| "The A bit | ||||
| represents the Anomalous (A) bit. | ||||
| The A bit is | ||||
| set when the measured value of | ||||
| this parameter | ||||
| exceeds its configured | ||||
| maximum | ||||
| threshold. | ||||
| The A bit is | ||||
| cleared when the measured value | ||||
| falls below its | ||||
| configured reuse threshold. | ||||
| If the A bit is | ||||
| clear, | ||||
| the value | ||||
| represents steady-state link performance."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "Flags."; | ||||
| leaf-list ipv6-addresses { | } | |||
| type inet:ipv6-address; | leaf value { | |||
| description | type uint32; | |||
| "List of IPv6 addresses of the IS-IS node - IS-IS | units percent; | |||
| reference is TLV 232."; | description | |||
| } | "Link packet loss expressed as | |||
| leaf ipv4-te-routerid { | a percentage | |||
| type inet:ipv4-address; | of the total traffic sent over | |||
| description | a configurable interval."; | |||
| "IPv4 Traffic Engineering router ID of the IS-IS node - | } | |||
| IS-IS reference is TLV 134."; | } | |||
| } | container unidirectional-link-residual-bandwidth { | |||
| description | ||||
| "Container for the residual bandwidth | ||||
| from the local neighbor to the remote | ||||
| one."; | ||||
| leaf value { | ||||
| type rt-types:bandwidth-ieee-float32; | ||||
| units Bps; | ||||
| description | ||||
| "Residual bandwidth."; | ||||
| } | ||||
| } | ||||
| container unidirectional-link-available-bandwidth { | ||||
| description | ||||
| "Container for the available bandwidth | ||||
| from the local neighbor to the remote | ||||
| one."; | ||||
| leaf value { | ||||
| type rt-types:bandwidth-ieee-float32; | ||||
| units Bps; | ||||
| description | ||||
| "Available bandwidth."; | ||||
| } | ||||
| } | ||||
| container unidirectional-link-utilized-bandwidth { | ||||
| description | ||||
| "Container for the utilized bandwidth | ||||
| from the local neighbor to the remote | ||||
| one."; | ||||
| leaf value { | ||||
| type rt-types:bandwidth-ieee-float32; | ||||
| units Bps; | ||||
| description | ||||
| "Utilized bandwidth."; | ||||
| } | ||||
| } | ||||
| } | ||||
| leaf ipv6-te-routerid { | grouping neighbor-te-extensions { | |||
| type inet:ipv6-address; | description | |||
| description | "Grouping for TE attributes of a neighbor as | |||
| "IPv6 Traffic Engineering router ID of the IS-IS node - | defined | |||
| IS-IS reference is TLV 140."; | in RFC5305"; | |||
| } | ||||
| leaf-list protocol-supported { | leaf admin-group { | |||
| type uint8; | type uint32; | |||
| description | description | |||
| "List of supported protocols of the IS-IS node - | "Administrative group/Resource | |||
| IS-IS reference is TLV 129."; | Class/Color."; | |||
| } | } | |||
| container local-if-ipv4-addrs { | ||||
| description "All local interface IPv4 | ||||
| addresses."; | ||||
| leaf-list local-if-ipv4-addr { | ||||
| type inet:ipv4-address; | ||||
| description | ||||
| "List of local interface IPv4 | ||||
| addresses."; | ||||
| } | ||||
| } | ||||
| container remote-if-ipv4-addrs { | ||||
| description "All remote interface IPv4 | ||||
| addresses."; | ||||
| leaf-list remote-if-ipv4-addr { | ||||
| type inet:ipv4-address; | ||||
| description | ||||
| "List of remote interface IPv4 | ||||
| addresses."; | ||||
| } | ||||
| } | ||||
| leaf te-metric { | ||||
| type uint32; | ||||
| description "TE metric."; | ||||
| } | ||||
| leaf max-bandwidth { | ||||
| type rt-types:bandwidth-ieee-float32; | ||||
| description "Maximum bandwidth."; | ||||
| } | ||||
| leaf max-reservable-bandwidth { | ||||
| type rt-types:bandwidth-ieee-float32; | ||||
| description "Maximum reservable bandwidth."; | ||||
| } | ||||
| container unreserved-bandwidths { | ||||
| description "All unreserved bandwidths."; | ||||
| list unreserved-bandwidth { | ||||
| leaf priority { | ||||
| type uint8 { | ||||
| range "0 .. 7"; | ||||
| } | ||||
| description "Priority from 0 to | ||||
| 7."; | ||||
| } | ||||
| leaf unreserved-bandwidth { | ||||
| type | ||||
| rt-types:bandwidth-ieee-float32; | ||||
| description "Unreserved | ||||
| bandwidth."; | ||||
| } | ||||
| description | ||||
| "List of unreserved bandwidths | ||||
| for different | ||||
| priorities."; | ||||
| } | ||||
| } | ||||
| } | ||||
| leaf dynamic-hostname { | grouping neighbor-extended { | |||
| type string; | description | |||
| description | "Grouping for attributes of an IS-IS extended neighbor."; | |||
| "Host Name of the IS-IS node - IS-IS reference | leaf neighbor-id { | |||
| is TLV 137."; | type extended-system-id; | |||
| } | description "System-id of the extended neighbor."; | |||
| } | ||||
| container instances { | ||||
| description "List of all adjacencies between the local | ||||
| system and the neighbor system-id."; | ||||
| list instance { | ||||
| key id; | ||||
| container authentication { | leaf id { | |||
| leaf authentication-type { | type uint32; | |||
| type string; | description "Unique identifier of an instance of a | |||
| description | particular neighbor."; | |||
| "Authentication type to be used with IS-IS node."; | } | |||
| } | leaf metric { | |||
| leaf authentication-key { | type wide-metric; | |||
| type string; | description "IS-IS wide metric for extended neighbor"; | |||
| description | } | |||
| "Authentication keyto be used. For security reasons, | uses neighbor-gmpls-extensions; | |||
| the authentication key MUST NOT be presented in | uses neighbor-te-extensions; | |||
| plaintext format. It is recommended to use an MD5 | uses neighbor-extended-te-extensions; | |||
| hash to present the authentication-key."; | uses neighbor-link-attributes; | |||
| } | uses unknown-tlvs; | |||
| description | description "Instance of a particular adjacency."; | |||
| "IS-IS node authentication information container - | } | |||
| IS-IS reference is TLV 10."; | } | |||
| } | } | |||
| container mt-entries { | grouping neighbor { | |||
| list topology { | description "IS-IS standard neighbor grouping."; | |||
| description | leaf neighbor-id { | |||
| "List of topologies supported"; | type extended-system-id; | |||
| description "IS-IS neighbor system-id"; | ||||
| } | ||||
| container instances { | ||||
| description "List of all adjacencies between the local | ||||
| system and the neighbor system-id."; | ||||
| list instance { | ||||
| key id; | ||||
| leaf id { | ||||
| type uint32; | ||||
| description "Unique identifier of an instance of a | ||||
| particular neighbor."; | ||||
| } | ||||
| leaf i-e { | ||||
| type boolean; | ||||
| description | ||||
| "Internal or External (I/E) Metric bit value"; | ||||
| } | ||||
| leaf default-metric { | ||||
| type std-metric; | ||||
| description "IS-IS default metric value"; | ||||
| } | ||||
| container delay-metric { | ||||
| leaf metric { | ||||
| type std-metric; | ||||
| description "IS-IS delay metric value"; | ||||
| } | ||||
| leaf supported { | ||||
| type boolean; | ||||
| default "false"; | ||||
| description "IS-IS delay metric supported"; | ||||
| } | ||||
| description "IS-IS delay metric container"; | ||||
| } | ||||
| container expense-metric { | ||||
| leaf metric { | ||||
| type std-metric; | ||||
| description "IS-IS delay expense metric value"; | ||||
| } | ||||
| leaf supported { | ||||
| type boolean; | ||||
| default "false"; | ||||
| description "IS-IS delay expense metric supported"; | ||||
| } | ||||
| description "IS-IS delay expense metric container"; | ||||
| } | ||||
| container error-metric { | ||||
| leaf metric { | ||||
| type std-metric; | ||||
| description "IS-IS error metric value"; | ||||
| } | ||||
| leaf supported { | ||||
| type boolean; | ||||
| default "false"; | ||||
| description "IS-IS error metric supported"; | ||||
| } | ||||
| description "IS-IS error metric container"; | ||||
| } | ||||
| description "Instance of a particular adjacency."; | ||||
| } | ||||
| } | ||||
| } | ||||
| leaf MT-ID { | /* Top level TLVs */ | |||
| type uint16 { | ||||
| range "0 .. 4095"; | ||||
| } | ||||
| description | ||||
| "Multi-Topolgoy identifier of topology."; | ||||
| } | ||||
| leaf attributes { | grouping tlv132-ipv4-addresses { | |||
| type bits { | leaf-list ipv4-addresses { | |||
| bit overload { | type inet:ipv4-address; | |||
| description | description | |||
| "If set, the originator is overloaded, | "List of IPv4 addresses of the IS-IS node - IS-IS | |||
| and must be avoided in path calculation."; | reference is TLV 132."; | |||
| } | } | |||
| bit attached { | description "Grouping for TLV132."; | |||
| description | } | |||
| "If set, the originator is attached to | grouping tlv232-ipv6-addresses { | |||
| another area using the referred metric."; | leaf-list ipv6-addresses { | |||
| } | type inet:ipv6-address; | |||
| } | description | |||
| description | "List of IPv6 addresses of the IS-IS node - IS-IS | |||
| "Attributes of the LSP for the associated | reference is TLV 232."; | |||
| topology."; | } | |||
| } | description "Grouping for TLV232."; | |||
| } | } | |||
| description | grouping tlv134-ipv4-te-rid { | |||
| "IS-IS node topology information container - | leaf ipv4-te-routerid { | |||
| IS-IS reference is TLV 229."; | type inet:ipv4-address; | |||
| } | description | |||
| "IPv4 Traffic Engineering router ID of the IS-IS node - | ||||
| IS-IS reference is TLV 134."; | ||||
| } | ||||
| description "Grouping for TLV134."; | ||||
| } | ||||
| grouping tlv140-ipv6-te-rid { | ||||
| leaf ipv6-te-routerid { | ||||
| type inet:ipv6-address; | ||||
| description | ||||
| "IPv6 Traffic Engineering router ID of the IS-IS node - | ||||
| IS-IS reference is TLV 140."; | ||||
| } | ||||
| description "Grouping for TLV140."; | ||||
| } | ||||
| grouping tlv129-protocols { | ||||
| leaf-list protocol-supported { | ||||
| type uint8; | ||||
| description | ||||
| "List of supported protocols of the IS-IS node - | ||||
| IS-IS reference is TLV 129."; | ||||
| } | ||||
| description "Grouping for TLV129."; | ||||
| } | ||||
| grouping tlv137-hostname { | ||||
| leaf dynamic-hostname { | ||||
| type string; | ||||
| description | ||||
| "Host Name of the IS-IS node - IS-IS reference | ||||
| is TLV 137."; | ||||
| } | ||||
| description "Grouping for TLV137."; | ||||
| } | ||||
| grouping tlv10-authentication { | ||||
| container authentication { | ||||
| leaf authentication-type { | ||||
| type string; | ||||
| description | ||||
| "Authentication type to be used with IS-IS node."; | ||||
| } | ||||
| leaf authentication-key { | ||||
| type string; | ||||
| description | ||||
| "Authentication keyto be used. For security reasons, | ||||
| the authentication key MUST NOT be presented in | ||||
| plaintext format. It is recommended to use an MD5 | ||||
| hash to present the authentication-key."; | ||||
| } | ||||
| description | ||||
| "IS-IS node authentication information container - | ||||
| IS-IS reference is TLV 10."; | ||||
| } | ||||
| description "Grouping for TLV10."; | ||||
| } | ||||
| grouping tlv229-mt { | ||||
| container mt-entries { | ||||
| list topology { | ||||
| description | ||||
| "List of topologies supported"; | ||||
| list router-capabilities { | leaf mt-id { | |||
| leaf flags { | type uint16 { | |||
| type bits { | range "0 .. 4095"; | |||
| bit flooding { | } | |||
| position 0; | description | |||
| description | "Multi-Topology identifier of topology."; | |||
| "If the S bit is set, the IS-IS Router CAPABILITY | ||||
| TLV MUST be flooded across the entire routing | ||||
| 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."; | ||||
| } | ||||
| } | ||||
| description "Router Capability Flags"; | ||||
| } | ||||
| container node-tags { | ||||
| 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 { | } | |||
| type binary; | ||||
| description | ||||
| "Binary encoding of the IS-IS node capabilities"; | ||||
| } | ||||
| description | ||||
| "IS-IS node capabilities container. This container may | ||||
| be extended with detailed information - IS-IS | ||||
| reference is TLV 242."; | ||||
| } | ||||
| container is-neighbor { | leaf attributes { | |||
| list neighbor { | type bits { | |||
| uses neighbor; | bit overload { | |||
| description "List of neighbors."; | description | |||
| } | "If set, the originator is overloaded, | |||
| description | and must be avoided in path calculation."; | |||
| "Standard IS neighbors container - IS-IS reference is | } | |||
| TLV 2."; | bit attached { | |||
| } | description | |||
| "If set, the originator is attached to | ||||
| 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."; | ||||
| } | ||||
| description "Grouping for TLV229."; | ||||
| } | ||||
| container extended-is-neighbor { | grouping tlv242-router-capabilities { | |||
| list neighbor { | container router-capabilities { | |||
| uses neighbor-extended; | list router-capability { | |||
| description | leaf flags { | |||
| "List of extended IS neighbors"; | type bits { | |||
| } | bit flooding { | |||
| description | position 0; | |||
| "Standard IS extended neighbors container - IS-IS | description | |||
| reference is TLV 22"; | "If the S bit is set, the IS-IS Router CAPABILITY | |||
| } | TLV MUST be flooded across the entire routing | |||
| 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."; | ||||
| } | ||||
| } | ||||
| description "Router Capability Flags"; | ||||
| } | ||||
| container node-tags { | ||||
| if-feature node-tag; | ||||
| list node-tag { | ||||
| leaf tag { | ||||
| type uint32; | ||||
| description "Node tag value."; | ||||
| } | ||||
| description "List of tags."; | ||||
| } | ||||
| description "Container for node admin tags"; | ||||
| } | ||||
| container ipv4-internal-reachability { | uses unknown-tlvs; | |||
| list prefixes { | ||||
| uses prefix-ipv4-std; | ||||
| description "List of prefixes."; | ||||
| } | ||||
| description | ||||
| "IPv4 internal reachability information container - IS-IS | ||||
| reference is TLV 128."; | ||||
| } | ||||
| container ipv4-external-reachability { | leaf binary { | |||
| list prefixes { | type binary; | |||
| uses prefix-ipv4-std; | description | |||
| description "List of prefixes."; | "Binary encoding of the IS-IS node capabilities"; | |||
| } | } | |||
| description | description | |||
| "IPv4 external reachability information container - | "IS-IS node capabilities. This list element may | |||
| IS-IS reference is TLV 130."; | be extended with detailed information - IS-IS | |||
| } | reference is TLV 242."; | |||
| } | ||||
| description "List of router capability TLVs."; | ||||
| } | ||||
| description "Grouping for TLV242."; | ||||
| } | ||||
| container extended-ipv4-reachability { | grouping tlv138-srlg { | |||
| list prefixes { | description | |||
| uses prefix-ipv4-extended; | "Grouping for TLV138."; | |||
| description "List of prefixes."; | container links-srlgs { | |||
| } | list links { | |||
| description | leaf neighbor-id { | |||
| "IPv4 extended reachability information container - | type extended-system-id; | |||
| IS-IS reference is TLV 135."; | description "System-id of the extended neighbor."; | |||
| } | } | |||
| leaf flags { | ||||
| type uint8; | ||||
| description | ||||
| "Flags associated with the link."; | ||||
| container mt-is-neighbor { | } | |||
| list neighbor { | leaf link-local-id { | |||
| leaf mt-id { | type union { | |||
| type uint16 { | type inet:ip-address; | |||
| range "0 .. 4095"; | type uint32; | |||
| } | } | |||
| description "Multi-topology (MT) identifier"; | description | |||
| } | "Local identifier of the link. | |||
| uses neighbor-extended; | It could be an IPv4 address or a local identifier."; | |||
| description "List of neighbors."; | } | |||
| leaf link-remote-id { | ||||
| type union { | ||||
| type inet:ip-address; | ||||
| type uint32; | ||||
| } | ||||
| description | ||||
| "Remote identifier of the link. | ||||
| It could be an IPv4 address or a remotely learned | ||||
| identifier."; | ||||
| } | ||||
| container srlgs { | ||||
| description "List of SRLGs."; | ||||
| leaf-list srlg { | ||||
| type uint32; | ||||
| description | ||||
| "SRLG value of the link."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "SRLG attribute of a link."; | ||||
| } | ||||
| description | ||||
| "List of links with SRLGs"; | ||||
| } | ||||
| } | ||||
| } | /* Grouping for LSDB description */ | |||
| description | ||||
| "IS-IS multi-topology neighbor container - IS-IS | ||||
| reference is TLV 223."; | ||||
| } | ||||
| container mt-extended-ipv4-reachability { | grouping lsp-entry { | |||
| list prefixes { | description "IS-IS LSP database entry groupting"; | |||
| leaf mt-id { | ||||
| type uint16 { | ||||
| range "0 .. 4095"; | ||||
| } | ||||
| 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 { | leaf decoded-completed { | |||
| list prefixes { | type boolean; | |||
| leaf MT-ID { | description "IS-IS LSP body fully decoded."; | |||
| type uint16 { | } | |||
| range "0 .. 4095"; | leaf raw-data { | |||
| } | type yang:hex-string; | |||
| description "Multi-topology (MT) identifier"; | description | |||
| } | "The hexadecial representation of the complete LSP in | |||
| uses prefix-ipv6-extended; | network-byte order (NBO) as received or originated."; | |||
| description "List of IPv6 extended prefixes."; | } | |||
| } | leaf lsp-id { | |||
| description | type lsp-id; | |||
| "IPv6 multi-topolgy (MT) extended reachability | description "LSP ID of the LSP"; | |||
| information container - IS-IS reference is TLV 237."; | } | |||
| } | 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."; | ||||
| } | ||||
| bit attached-expense { | ||||
| description | ||||
| "If set, the originator is attached to | ||||
| another area using the referred metric."; | ||||
| } | ||||
| bit attached-delay { | ||||
| description | ||||
| "If set, the originator is attached to | ||||
| another area using the referred metric."; | ||||
| } | ||||
| bit attached-default { | ||||
| description | ||||
| "If set, the originator is attached to | ||||
| another area using the referred metric."; | ||||
| } | ||||
| bit overload { | ||||
| description | ||||
| "If set, the originator is overloaded, | ||||
| and must be avoided in path calculation."; | ||||
| } | ||||
| } | ||||
| description "LSP attributes"; | ||||
| } | ||||
| container ipv6-reachability { | uses tlv132-ipv4-addresses; | |||
| list prefixes { | uses tlv232-ipv6-addresses; | |||
| uses prefix-ipv6-extended; | uses tlv134-ipv4-te-rid; | |||
| description "List of IPv6 prefixes."; | uses tlv140-ipv6-te-rid; | |||
| } | uses tlv129-protocols; | |||
| description | uses tlv137-hostname; | |||
| "IPv6 reachability information container - IS-IS | uses tlv10-authentication; | |||
| reference is TLV 236."; | uses tlv229-mt; | |||
| } | uses tlv242-router-capabilities; | |||
| } | uses tlv138-srlg; | |||
| grouping lsdb { | uses unknown-tlvs; | |||
| description "Link State Database (LSDB) grouping"; | ||||
| container database { | ||||
| config false; | ||||
| list level-db { | ||||
| key level; | ||||
| leaf level { | container is-neighbor { | |||
| type level-number; | list neighbor { | |||
| description "LSDB level number (1 or 2)"; | key neighbor-id; | |||
| } | ||||
| list lsp { | ||||
| key lsp-id; | ||||
| uses lsp-entry; | ||||
| description "List of LSPs in LSDB"; | ||||
| } | ||||
| description "LSP list for LSDB level container"; | ||||
| } | ||||
| description "IS-IS Link State database container"; | ||||
| } | ||||
| } | ||||
| /* Augmentations */ | uses neighbor; | |||
| description "List of neighbors."; | ||||
| } | ||||
| description | ||||
| "Standard IS neighbors container - IS-IS reference is | ||||
| TLV 2."; | ||||
| } | ||||
| augment "/rt:routing/" | container extended-is-neighbor { | |||
| +"rt:ribs/rt:rib/rt:routes/rt:route" { | list neighbor { | |||
| when "rt:source-protocol = 'isis:isis'" { | key neighbor-id; | |||
| description "IS-IS-specific route attributes."; | ||||
| } | ||||
| uses route-content; | ||||
| description | ||||
| "This augments route object in RIB with IS-IS-specific | ||||
| attributes."; | ||||
| } | ||||
| augment "/if:interfaces/if:interface" { | uses neighbor-extended; | |||
| leaf clns-mtu { | description | |||
| type uint16; | "List of extended IS neighbors"; | |||
| description "CLNS MTU of the interface"; | } | |||
| } | description | |||
| description "ISO interface config."; | "Standard IS extended neighbors container - IS-IS | |||
| } | reference is TLV 22"; | |||
| } | ||||
| augment "/rt:routing/rt:control-plane-protocols/" | container ipv4-internal-reachability { | |||
| +"rt:control-plane-protocol" { | list prefixes { | |||
| when "rt:type = 'isis:isis'" { | uses prefix-ipv4-std; | |||
| description | description "List of prefixes."; | |||
| "This augment is only valid when routing protocol | } | |||
| instance type is 'isis'"; | description | |||
| } | "IPv4 internal reachability information container - IS-IS | |||
| description | reference is TLV 128."; | |||
| "This augments a routing protocol instance with IS-IS | } | |||
| specific parameters."; | ||||
| container isis { | ||||
| must "count(area-address) > 0" { | ||||
| error-message | ||||
| "At least one area-address must be configured."; | ||||
| description | ||||
| "Enforce configuration of at least one area."; | ||||
| } | ||||
| uses isis-global-cfg; | container ipv4-external-reachability { | |||
| container fast-reroute { | list prefixes { | |||
| if-feature fast-reroute; | uses prefix-ipv4-std; | |||
| uses fast-reroute-global-cfg; | description "List of prefixes."; | |||
| uses fast-reroute-global-state; | } | |||
| description | description | |||
| "IP Fast ReRoute (IPFRR) global container"; | "IPv4 external reachability information container - | |||
| } | IS-IS reference is TLV 130."; | |||
| container spf-control { | } | |||
| leaf paths { | ||||
| if-feature max-ecmp; | ||||
| type uint16 { | ||||
| range "1..32"; | ||||
| } | ||||
| description | ||||
| "Maximum number of Equal-Cost Multi-Path (ECMP) paths."; | ||||
| } | ||||
| container ietf-spf-delay { | ||||
| if-feature ietf-spf-delay; | ||||
| uses ietf-spf-delay-cfg; | ||||
| uses ietf-spf-delay-state; | ||||
| description "IETF SPF delay algorithm container"; | ||||
| } | ||||
| description | ||||
| "SPF computation-related information container"; | ||||
| } | ||||
| container topologies { | ||||
| if-feature multi-topology; | ||||
| list topology { | ||||
| key "name"; | ||||
| leaf enable { | ||||
| type boolean; | ||||
| description "Topology enable configuration"; | ||||
| } | ||||
| leaf name { | ||||
| type leafref { | ||||
| path "../../../../../../rt:ribs/rt:rib/rt:name"; | ||||
| } | ||||
| description | ||||
| "Routing Information Base (RIB) corresponding | ||||
| to topology."; | ||||
| } | ||||
| uses isis-global-topologies-cfg; | container extended-ipv4-reachability { | |||
| list prefixes { | ||||
| uses prefix-ipv4-extended; | ||||
| uses unknown-tlvs; | ||||
| description "List of prefixes."; | ||||
| } | ||||
| description | ||||
| "IPv4 extended reachability information container - | ||||
| IS-IS reference is TLV 135."; | ||||
| } | ||||
| description "List of topologies"; | container mt-is-neighbor { | |||
| } | list neighbor { | |||
| description "Multi-topology container"; | leaf mt-id { | |||
| } | type uint16 { | |||
| container interfaces { | range "0 .. 4095"; | |||
| list interface { | } | |||
| key "name"; | description "Multi-topology (MT) identifier"; | |||
| leaf name { | } | |||
| type if:interface-ref; | uses neighbor-extended; | |||
| description "List of neighbors."; | ||||
| } | ||||
| description | ||||
| "IS-IS multi-topology neighbor container - IS-IS | ||||
| reference is TLV 223."; | ||||
| } | ||||
| description | container mt-extended-ipv4-reachability { | |||
| "Reference to the interface within | list prefixes { | |||
| the routing-instance."; | leaf mt-id { | |||
| } | type uint16 { | |||
| uses isis-if-cfg; | range "0 .. 4095"; | |||
| container fast-reroute { | } | |||
| if-feature fast-reroute; | description "Multi-topology (MT) identifier"; | |||
| uses fast-reroute-if-cfg; | } | |||
| description | uses prefix-ipv4-extended; | |||
| "IP Fast ReRoute (IPFRR) interface container"; | uses unknown-tlvs; | |||
| } | description "List of extended prefixes."; | |||
| container topologies { | } | |||
| if-feature multi-topology; | description | |||
| list topology { | "IPv4 multi-topolgy (MT) extended reachability | |||
| key name; | information container - IS-IS reference is TLV 235."; | |||
| } | ||||
| leaf name { | container mt-ipv6-reachability { | |||
| type leafref { | list prefixes { | |||
| path "../../../../../../../../"+ | leaf MT-ID { | |||
| "rt:ribs/rt:rib/rt:name"; | type uint16 { | |||
| } | range "0 .. 4095"; | |||
| } | ||||
| description "Multi-topology (MT) identifier"; | ||||
| } | ||||
| uses prefix-ipv6-extended; | ||||
| uses unknown-tlvs; | ||||
| description "List of IPv6 extended prefixes."; | ||||
| } | ||||
| description | ||||
| "IPv6 multi-topolgy (MT) extended reachability | ||||
| information container - IS-IS reference is TLV 237."; | ||||
| } | ||||
| description | container ipv6-reachability { | |||
| "Routing Information Base (RIB) corresponding | list prefixes { | |||
| to topology."; | uses prefix-ipv6-extended; | |||
| } | uses unknown-tlvs; | |||
| uses isis-if-topologies-cfg; | description "List of IPv6 prefixes."; | |||
| description "List of interface topologies"; | } | |||
| } | description | |||
| description "Multi-topology container"; | "IPv6 reachability information container - IS-IS | |||
| } | reference is TLV 236."; | |||
| uses adjacency-state; | } | |||
| uses event-counters; | } | |||
| uses packet-counters; | ||||
| description "List of IS-IS interfaces."; | ||||
| } | ||||
| description | ||||
| "IS-IS interface specific configuration container"; | ||||
| } | ||||
| uses spf-log; | ||||
| uses lsp-log; | ||||
| uses hostname-db; | ||||
| uses lsdb; | ||||
| uses local-rib; | ||||
| uses system-counters; | ||||
| description | grouping lsdb { | |||
| "IS-IS configuration/state top-level container"; | description "Link State Database (LSDB) grouping"; | |||
| } | container database { | |||
| } | config false; | |||
| list level-db { | ||||
| key level; | ||||
| leaf level { | ||||
| type level-number; | ||||
| description "LSDB level number (1 or 2)"; | ||||
| } | ||||
| list lsp { | ||||
| key lsp-id; | ||||
| uses lsp-entry; | ||||
| description "List of LSPs in LSDB"; | ||||
| } | ||||
| description "LSP list for LSDB level container"; | ||||
| } | ||||
| description "IS-IS Link State database container"; | ||||
| } | ||||
| } | ||||
| /* RPC methods */ | /* Augmentations */ | |||
| rpc clear-adjacency { | augment "/rt:routing/" | |||
| description | +"rt:ribs/rt:rib/rt:routes/rt:route" { | |||
| "This RPC request clears a particular set of IS-IS | when "rt:source-protocol = 'isis:isis'" { | |||
| adjacencies. If the operation fails due to an internal | description "IS-IS-specific route attributes."; | |||
| reason, then the error-tag and error-app-tag should be | } | |||
| set indicating the reason for the failure."; | uses route-content; | |||
| input { | description | |||
| "This augments route object in RIB with IS-IS-specific | ||||
| attributes."; | ||||
| } | ||||
| leaf routing-protocol-instance-name { | augment "/if:interfaces/if:interface" { | |||
| type instance-state-ref; | leaf clns-mtu { | |||
| mandatory "true"; | type uint16; | |||
| description | description "CLNS MTU of the interface"; | |||
| "Name of the IS-IS protocol instance whose IS-IS | } | |||
| information is being queried. | description "ISO specific interface parameters."; | |||
| } | ||||
| If the corresponding IS-IS instance doesn't exist, | augment "/rt:routing/rt:control-plane-protocols/" | |||
| then the operation will fail with an error-tag of | +"rt:control-plane-protocol" { | |||
| 'data-missing' and an error-app-tag of | when "rt:type = 'isis:isis'" { | |||
| 'routing-protocol-instance-not-found'."; | description | |||
| } | "This augment is only valid when routing protocol | |||
| leaf level { | instance type is 'isis'"; | |||
| type level; | } | |||
| description | description | |||
| "IS-IS level of the adjacency to be cleared. If the | "This augments a routing protocol instance with IS-IS | |||
| IS-IS level is level-1-2, both level 1 and level 2 | specific parameters."; | |||
| adjacencies would be cleared. | container isis { | |||
| must "count(area-address) > 0" { | ||||
| error-message | ||||
| "At least one area-address must be configured."; | ||||
| description | ||||
| "Enforce configuration of at least one area."; | ||||
| } | ||||
| If the value provided is different from the one | uses instance-config; | |||
| authorized in the enum type, then the operation | uses instance-state; | |||
| SHALL fail with an error-tag of 'data-missing' and | ||||
| an error-app-tag of 'bad-isis-level'."; | ||||
| } | ||||
| leaf interface { | ||||
| type string; | ||||
| description | ||||
| "IS-IS interface name. | ||||
| If the corresponding IS-IS interface doesn't exist, | container topologies { | |||
| then the operation SHALL fail with an error-tag of | if-feature multi-topology; | |||
| 'data-missing' and an error-app-tag of | list topology { | |||
| 'isis-interface-not-found'."; | key "name"; | |||
| } | leaf enable { | |||
| } | type boolean; | |||
| } | description "Topology enable configuration"; | |||
| } | ||||
| leaf name { | ||||
| type leafref { | ||||
| path "../../../../../../rt:ribs/rt:rib/rt:name"; | ||||
| } | ||||
| description | ||||
| "Routing Information Base (RIB) corresponding | ||||
| to topology."; | ||||
| } | ||||
| rpc clear-database { | uses multi-topology-config; | |||
| description | ||||
| "This RPC request clears a particular IS-IS database. If | ||||
| the operation fails for an IS-IS internal reason, then | ||||
| 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, | description "List of topologies"; | |||
| then the operation will fail with an error-tag of | } | |||
| 'data-missing' and an error-app-tag of | description "Multi-topology container"; | |||
| 'routing-protocol-instance-not-found'."; | } | |||
| } | container interfaces { | |||
| leaf level { | list interface { | |||
| type level; | key "name"; | |||
| description | leaf name { | |||
| "IS-IS level of the adjacency to be cleared. If the | type if:interface-ref; | |||
| IS-IS level is level-1-2, both level 1 and level 2 | ||||
| databases would be cleared. | ||||
| If the value provided is different from the one | description | |||
| authorized in the enum type, then the operation | "Reference to the interface within | |||
| SHALL fail with an error-tag of 'data-missing' and | the routing-instance."; | |||
| an error-app-tag of 'bad-isis-level'."; | } | |||
| } | uses interface-config; | |||
| } | container topologies { | |||
| } | if-feature multi-topology; | |||
| list topology { | ||||
| key name; | ||||
| /* Notifications */ | leaf name { | |||
| type leafref { | ||||
| path "../../../../../../../../"+ | ||||
| "rt:ribs/rt:rib/rt:name"; | ||||
| } | ||||
| notification database-overload { | description | |||
| uses notification-instance-hdr; | "Routing Information Base (RIB) corresponding | |||
| to topology."; | ||||
| } | ||||
| uses multi-topology-interface-config; | ||||
| description "List of interface topologies"; | ||||
| } | ||||
| description "Multi-topology container"; | ||||
| } | ||||
| description "List of IS-IS interfaces."; | ||||
| } | ||||
| description | ||||
| "IS-IS interface specific configuration container"; | ||||
| } | ||||
| leaf overload { | description | |||
| type enumeration { | "IS-IS configuration/state top-level container"; | |||
| enum off { | } | |||
| description | } | |||
| "Indicates IS-IS instance has left overload state"; | ||||
| } | ||||
| enum on { | ||||
| description | ||||
| "Indicates IS-IS instance has entered overload state"; | ||||
| } | ||||
| } | /* RPC methods */ | |||
| description "New overload state of the IS-IS instance"; | ||||
| } | ||||
| description | ||||
| "This notification is sent when an IS-IS instance | ||||
| overload state changes."; | ||||
| } | ||||
| notification lsp-too-large { | rpc clear-adjacency { | |||
| uses notification-instance-hdr; | description | |||
| uses notification-interface-hdr; | "This RPC request clears a particular set of IS-IS | |||
| adjacencies. If the operation fails due to an internal | ||||
| reason, then the error-tag and error-app-tag should be | ||||
| set indicating the reason for the failure."; | ||||
| input { | ||||
| leaf pdu-size { | leaf routing-protocol-instance-name { | |||
| type uint32; | type leafref { | |||
| description "Size of the LSP PDU"; | path "/rt:routing/rt:control-plane-protocols/" | |||
| } | + "rt:control-plane-protocol/rt:name"; | |||
| leaf lsp-id { | } | |||
| type lsp-id; | mandatory "true"; | |||
| description "LSP ID"; | description | |||
| } | "Name of the IS-IS protocol instance whose IS-IS | |||
| description | information is being queried. | |||
| "This notification is sent when we attempt to propagate | ||||
| an LSP that is larger than the dataLinkBlockSize for the | ||||
| circuit. The notification generation must be throttled | ||||
| with at least 5 seconds betweeen successive | ||||
| notifications."; | ||||
| } | ||||
| notification if-state-change { | If the corresponding IS-IS instance doesn't exist, | |||
| uses notification-instance-hdr; | then the operation will fail with an error-tag of | |||
| uses notification-interface-hdr; | '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 | ||||
| adjacencies would be cleared. | ||||
| leaf state { | If the value provided is different from the one | |||
| type if-state-type; | authorized in the enum type, then the operation | |||
| description "Interface state."; | SHALL fail with an error-tag of 'data-missing' and | |||
| } | an error-app-tag of 'bad-isis-level'."; | |||
| description | } | |||
| "This notification is sent when an interface | leaf interface { | |||
| state change is detected."; | type if:interface-ref; | |||
| } | description | |||
| "IS-IS interface name. | ||||
| notification corrupted-lsp-detected { | If the corresponding IS-IS interface doesn't exist, | |||
| uses notification-instance-hdr; | then the operation SHALL fail with an error-tag of | |||
| leaf lsp-id { | 'data-missing' and an error-app-tag of | |||
| type lsp-id; | 'isis-interface-not-found'."; | |||
| description "LSP ID"; | } | |||
| } | } | |||
| description | } | |||
| "This notification is sent when we find that | ||||
| an LSP that was stored in memory has become | ||||
| corrupted."; | ||||
| } | ||||
| notification attempt-to-exceed-max-sequence { | rpc clear-database { | |||
| uses notification-instance-hdr; | description | |||
| leaf lsp-id { | "This RPC request clears a particular IS-IS database. If | |||
| type lsp-id; | the operation fails for an IS-IS internal reason, then | |||
| description "LSP ID"; | the error-tag and error-app-tag should be set | |||
| } | indicating the reason for the failure."; | |||
| description | input { | |||
| "This notification is sent when the system | leaf routing-protocol-instance-name { | |||
| wraps the 32-bit sequence counter of an LSP."; | type leafref { | |||
| } | path "/rt:routing/rt:control-plane-protocols/" | |||
| + "rt:control-plane-protocol/rt:name"; | ||||
| } | ||||
| mandatory "true"; | ||||
| description | ||||
| "Name of the IS-IS protocol instance whose IS-IS | ||||
| database(s) is/are being cleared. | ||||
| notification id-len-mismatch { | If the corresponding IS-IS instance doesn't exist, | |||
| uses notification-instance-hdr; | then the operation will fail with an error-tag of | |||
| uses notification-interface-hdr; | '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. | ||||
| leaf pdu-field-len { | If the value provided is different from the one | |||
| type uint8; | authorized in the enum type, then the operation | |||
| description "Size of the ID length in the received PDU"; | SHALL fail with an error-tag of 'data-missing' and | |||
| } | an error-app-tag of 'bad-isis-level'."; | |||
| 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 System ID length. | ||||
| The notification generation must be throttled | ||||
| with at least 5 seconds betweeen successive | ||||
| notifications."; | ||||
| } | ||||
| notification max-area-addresses-mismatch { | /* Notifications */ | |||
| uses notification-instance-hdr; | ||||
| uses notification-interface-hdr; | ||||
| leaf max-area-addresses { | notification database-overload { | |||
| type uint8; | uses notification-instance-hdr; | |||
| description "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 5 seconds betweeen successive | ||||
| notifications."; | ||||
| } | ||||
| notification own-lsp-purge { | leaf overload { | |||
| uses notification-instance-hdr; | type enumeration { | |||
| uses notification-interface-hdr; | enum off { | |||
| leaf lsp-id { | description | |||
| type lsp-id; | "Indicates IS-IS instance has left overload state"; | |||
| description "LSP ID"; | } | |||
| } | enum on { | |||
| description | description | |||
| "This notification is sent when the system receives | "Indicates IS-IS instance has entered overload state"; | |||
| a PDU with its own system ID and zero age."; | } | |||
| } | } | |||
| description "New overload state of the IS-IS instance"; | ||||
| } | ||||
| description | ||||
| "This notification is sent when an IS-IS instance | ||||
| overload state changes."; | ||||
| } | ||||
| notification sequence-number-skipped { | notification lsp-too-large { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf lsp-id { | ||||
| type lsp-id; | ||||
| description "LSP ID"; | ||||
| } | ||||
| description | ||||
| "This notification is sent when the system receives a | ||||
| PDU with its own system ID and different contents. The | ||||
| system has to reoriginate the LSP with a higher sequence | ||||
| number."; | ||||
| } | ||||
| notification authentication-type-failure { | leaf pdu-size { | |||
| uses notification-instance-hdr; | type uint32; | |||
| uses notification-interface-hdr; | description "Size of the LSP PDU"; | |||
| leaf raw-pdu { | } | |||
| type binary; | leaf lsp-id { | |||
| description "Received raw PDU."; | type lsp-id; | |||
| } | description "LSP ID"; | |||
| description | } | |||
| "This notification is sent when the system receives a | description | |||
| PDU with the wrong authentication type field. | "This notification is sent when we attempt to propagate | |||
| The notification generation must be throttled | an LSP that is larger than the dataLinkBlockSize for the | |||
| with at least 5 seconds betweeen successive | circuit. The notification generation must be throttled | |||
| notifications."; | with at least 5 seconds betweeen successive | |||
| } | notifications."; | |||
| } | ||||
| notification authentication-failure { | notification if-state-change { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-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 information. | ||||
| The notification generation must be throttled with | ||||
| with at least 5 seconds betweeen successive | ||||
| notifications."; | ||||
| } | ||||
| notification version-skew { | leaf state { | |||
| uses notification-instance-hdr; | type if-state-type; | |||
| uses notification-interface-hdr; | description "Interface state."; | |||
| leaf protocol-version { | } | |||
| type uint8; | description | |||
| description "Protocol version received in the PDU."; | "This notification is sent when an interface | |||
| } | state change is detected."; | |||
| 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 { | notification corrupted-lsp-detected { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | leaf lsp-id { | |||
| leaf raw-pdu { | type lsp-id; | |||
| type binary; | description "LSP ID"; | |||
| description "Received raw PDU."; | } | |||
| } | description | |||
| description | "This notification is sent when we find that | |||
| "This notification is sent when the system receives a | an LSP that was stored in memory has become | |||
| Hello PDU from an IS that does not share any area | corrupted."; | |||
| address. The notification generation must be throttled | } | |||
| with at least 5 seconds betweeen successive | ||||
| notifications."; | ||||
| } | ||||
| notification rejected-adjacency { | notification attempt-to-exceed-max-sequence { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | leaf lsp-id { | |||
| leaf raw-pdu { | type lsp-id; | |||
| type binary; | description "LSP ID"; | |||
| description | } | |||
| "Received raw PDU."; | description | |||
| } | "This notification is sent when the system | |||
| leaf reason { | wraps the 32-bit sequence counter of an LSP."; | |||
| type string; | } | |||
| description | ||||
| "The system may provide a reason to reject the | ||||
| adjacency. If the reason is not available, | ||||
| an empty string will be returned."; | ||||
| } | ||||
| 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 5 seconds betweeen successive | ||||
| notifications."; | ||||
| } | ||||
| notification protocols-supported-mismatch { | notification id-len-mismatch { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf raw-pdu { | ||||
| type binary; | ||||
| description "Received raw PDU."; | ||||
| } | ||||
| leaf-list protocols { | ||||
| type uint8; | ||||
| description | ||||
| "List of protocols supported by the remote system."; | ||||
| } | ||||
| description | ||||
| "This notification is sent when the system receives a | ||||
| non-pseudonode LSP that has no matching protocols | ||||
| supported. The notification generation must be throttled | ||||
| with at least 5 seconds betweeen successive | ||||
| notifications."; | ||||
| } | ||||
| notification lsp-error-detected { | leaf pdu-field-len { | |||
| uses notification-instance-hdr; | type uint8; | |||
| uses notification-interface-hdr; | description "Size of the ID length in the received PDU"; | |||
| leaf lsp-id { | } | |||
| type lsp-id; | leaf raw-pdu { | |||
| description "LSP ID."; | type binary; | |||
| } | description "Received raw PDU."; | |||
| leaf raw-pdu { | } | |||
| type binary; | description | |||
| description "Received raw PDU."; | "This notification is sent when we receive a PDU | |||
| } | with a different value for the System ID length. | |||
| leaf error-offset { | The notification generation must be throttled | |||
| type uint32; | with at least 5 seconds betweeen successive | |||
| description | notifications."; | |||
| "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 errant | ||||
| 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 an | ||||
| ' LSP with a parse error. The notification generation must | ||||
| be throttled with at least 5 seconds betweeen successive | ||||
| notifications."; | ||||
| } | ||||
| notification adjacency-state-change { | notification max-area-addresses-mismatch { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf neighbor { | ||||
| type string; | ||||
| description | ||||
| "Name of the neighbor. If the name of the neighbor is | ||||
| not available, it is not returned."; | ||||
| } | ||||
| leaf neighbor-system-id { | ||||
| type system-id; | ||||
| description "Neighbor system-id"; | ||||
| } | ||||
| leaf state { | ||||
| type adj-state-type; | ||||
| description "New state of the IS-IS adjacency."; | leaf max-area-addresses { | |||
| } | type uint8; | |||
| leaf reason { | description "Received number of supported areas"; | |||
| type string; | } | |||
| description | leaf raw-pdu { | |||
| "If the adjacency is going to DOWN, this leaf provides | type binary; | |||
| a reason for the adjacency going down. The reason is | description "Received raw PDU."; | |||
| provided as a text. If the adjacency is going to UP, no | } | |||
| reason is provided."; | description | |||
| } | "This notification is sent when we receive a PDU | |||
| description | with a different value for the Maximum Area Addresses. | |||
| "This notification is sent when an IS-IS adjacency | The notification generation must be throttled | |||
| moves to Up state or to Down state."; | with at least 5 seconds betweeen successive | |||
| } | notifications."; | |||
| } | ||||
| notification lsp-received { | 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 "LSP ID"; | description "LSP ID"; | |||
| } | } | |||
| leaf sequence { | description | |||
| type uint32; | "This notification is sent when the system receives | |||
| description "Sequence number of the received LSP."; | a PDU with its own system ID and zero age."; | |||
| } | } | |||
| leaf received-timestamp { | ||||
| type yang:timestamp; | ||||
| description "Timestamp when the LSP was received."; | notification sequence-number-skipped { | |||
| } | uses notification-instance-hdr; | |||
| leaf neighbor-system-id { | uses notification-interface-hdr; | |||
| type system-id; | leaf lsp-id { | |||
| description "Neighbor system-id of LSP sender"; | type lsp-id; | |||
| } | description "LSP ID"; | |||
| description | } | |||
| "This notification is sent when an LSP is received. | description | |||
| The notification generation must be throttled with at | "This notification is sent when the system receives a | |||
| least 5 seconds betweeen successive notifications."; | PDU with its own system ID and different contents. The | |||
| } | system has to reoriginate the LSP with a higher sequence | |||
| number."; | ||||
| } | ||||
| notification lsp-generation { | notification authentication-type-failure { | |||
| uses notification-instance-hdr; | 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."; | ||||
| } | ||||
| leaf lsp-id { | notification authentication-failure { | |||
| type lsp-id; | uses notification-instance-hdr; | |||
| description "LSP ID"; | uses notification-interface-hdr; | |||
| } | leaf raw-pdu { | |||
| leaf sequence { | type binary; | |||
| type uint32; | description "Received raw PDU."; | |||
| description "Sequence number of the received LSP."; | } | |||
| } | description | |||
| leaf send-timestamp { | "This notification is sent when the system receives | |||
| type yang:timestamp; | a PDU with the wrong authentication information. | |||
| The notification generation must be throttled with | ||||
| with at least 5 seconds betweeen successive | ||||
| notifications."; | ||||
| } | ||||
| description "Timestamp when our LSP was regenerated."; | notification version-skew { | |||
| } | uses notification-instance-hdr; | |||
| description | uses notification-interface-hdr; | |||
| "This notification is sent when an LSP is regenerated. | leaf protocol-version { | |||
| The notification generation must be throttled with at | type uint8; | |||
| least 5 seconds betweeen successive notifications."; | description "Protocol version received in the PDU."; | |||
| } | } | |||
| } | 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."; | ||||
| } | ||||
| <CODE ENDS> | 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."; | ||||
| } | ||||
| 7. Security Considerations | notification rejected-adjacency { | |||
| uses notification-instance-hdr; | ||||
| uses notification-interface-hdr; | ||||
| leaf raw-pdu { | ||||
| type binary; | ||||
| description | ||||
| "Received raw PDU."; | ||||
| Configuration and state data defined in this document are designed to | } | |||
| be accessed via the NETCONF protocol [RFC6241]. | leaf reason { | |||
| type string; | ||||
| description | ||||
| "The system may provide a reason to reject the | ||||
| adjacency. If the reason is not available, | ||||
| an empty string will be returned."; | ||||
| } | ||||
| 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 5 seconds betweeen successive | ||||
| notifications."; | ||||
| } | ||||
| As IS-IS is an IGP protocol (critical piece of the network), ensuring | notification protocols-supported-mismatch { | |||
| stability and security of the protocol is mandatory for the network | uses notification-instance-hdr; | |||
| service. | uses notification-interface-hdr; | |||
| leaf raw-pdu { | ||||
| type binary; | ||||
| description "Received raw PDU."; | ||||
| } | ||||
| leaf-list protocols { | ||||
| type uint8; | ||||
| description | ||||
| "List of protocols supported by the remote system."; | ||||
| } | ||||
| description | ||||
| "This notification is sent when the system receives a | ||||
| non-pseudonode LSP that has no matching protocols | ||||
| supported. The notification generation must be throttled | ||||
| with at least 5 seconds betweeen successive | ||||
| notifications."; | ||||
| } | ||||
| Authors recommends to implement NETCONF access control model | notification lsp-error-detected { | |||
| ([RFC6536]) to restrict access to all or part of the configuration to | uses notification-instance-hdr; | |||
| specific users. Access control to RPCs is also critical as RPC | uses notification-interface-hdr; | |||
| allows to clear protocol datastructures that would definitively | leaf lsp-id { | |||
| impact the network service. This kind of RPC needs only to be used | type lsp-id; | |||
| in specific cases by well-known experienced users. | description "LSP ID."; | |||
| } | ||||
| leaf raw-pdu { | ||||
| 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 errant | ||||
| 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 an | ||||
| LSP with a parse error. The notification generation must | ||||
| be throttled with at least 5 seconds betweeen successive | ||||
| notifications."; | ||||
| } | ||||
| Authors consider that all the configuration is considered as | notification adjacency-state-change { | |||
| sensitive/vulnerable as well as RPCs. But security teams can decide | uses notification-instance-hdr; | |||
| to open some part of the configuration to less experienced users | uses notification-interface-hdr; | |||
| depending on the internal organization, for example: | leaf neighbor { | |||
| type string; | ||||
| description | ||||
| "Name of the neighbor. If the name of the neighbor is | ||||
| not available, it is not returned."; | ||||
| } | ||||
| leaf neighbor-system-id { | ||||
| type system-id; | ||||
| description "Neighbor system-id"; | ||||
| } | ||||
| leaf state { | ||||
| type adj-state-type; | ||||
| o User FullWrite: would access to the whole data model. This kind | description "New state of the IS-IS adjacency."; | |||
| of profile may be restricted to few experienced people. | } | |||
| leaf reason { | ||||
| type string; | ||||
| description | ||||
| "If the adjacency is going to DOWN, this leaf provides | ||||
| a reason for the adjacency going down. The reason is | ||||
| provided as a text. If the adjacency is going to UP, no | ||||
| reason is provided."; | ||||
| } | ||||
| description | ||||
| "This notification is sent when an IS-IS adjacency | ||||
| moves to Up state or to Down state."; | ||||
| } | ||||
| o User PartialWrite: would only access to configuration part within | notification lsp-received { | |||
| /isis/interfaces/interface. So this kind of profile is restricted | uses notification-instance-hdr; | |||
| to creation/modification/deletion of interfaces. This profile | uses notification-interface-hdr; | |||
| does not have access to RPC. | ||||
| o User Read: would only access to the operational states. | leaf lsp-id { | |||
| type lsp-id; | ||||
| description "LSP ID"; | ||||
| } | ||||
| leaf sequence { | ||||
| type uint32; | ||||
| description "Sequence number of the received LSP."; | ||||
| } | ||||
| leaf received-timestamp { | ||||
| type yang:timestamp; | ||||
| Unauthorized access to configuration or RPC may cause high damages to | description "Timestamp when the LSP was received."; | |||
| the network service. | } | |||
| leaf neighbor-system-id { | ||||
| type system-id; | ||||
| description "Neighbor system-id of LSP sender"; | ||||
| } | ||||
| description | ||||
| "This notification is sent when an LSP is received. | ||||
| The notification generation must be throttled with at | ||||
| least 5 seconds betweeen successive notifications."; | ||||
| } | ||||
| The "isis/database" may contain authentication information. As | notification lsp-generation { | |||
| presented in the description of the "/isis/database/level- | uses notification-instance-hdr; | |||
| 1/lsp/authentication/authentication-key", the authentication MUST | ||||
| never be displayed in a plaintext format for security reason. | ||||
| Authors recommend the usage of MD5 to display or return the | ||||
| authentication-key. | ||||
| Some authentication-key may also be required in the "isis" writable | leaf lsp-id { | |||
| container. When configuring IS-IS using the NETCONF protocol, | type lsp-id; | |||
| authors recommends the usage of secure transport of NETCONF using SSH | description "LSP ID"; | |||
| ([RFC6242]). | } | |||
| leaf sequence { | ||||
| type uint32; | ||||
| description "Sequence number of the received LSP."; | ||||
| } | ||||
| leaf send-timestamp { | ||||
| type yang:timestamp; | ||||
| 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 | ||||
| The YANG module specified in this document defines a schema for data | ||||
| that is designed to be accessed via network management protocols such | ||||
| as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer | ||||
| is the secure transport layer, and the mandatory-to-implement secure | ||||
| transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer | ||||
| is HTTPS, and the mandatory-to-implement secure transport is TLS | ||||
| [RFC8446] | ||||
| The Network Configuration Access Control Model (NACM) [RFC8341] | ||||
| provides the means to restrict access for particular NETCONF or | ||||
| RESTCONF users to a preconfigured subset of all available NETCONF or | ||||
| RESTCONF protocol operations and content. | ||||
| There are a number of data nodes defined in this YANG module that are | ||||
| writable/creatable/deletable (i.e., config true, which is the | ||||
| default). These data nodes may be considered sensitive or vulnerable | ||||
| in some network environments. Write operations (e.g., edit-config) | ||||
| to these data nodes without proper protection can have a negative | ||||
| effect on network operations. For IS-IS, the ability to modify IS-IS | ||||
| configuration will allow the entire IS-IS domain to be compromised | ||||
| including creating adjacencies with unauthorized routers to misroute | ||||
| traffic, isolate routers, or mount a massive Denial-of-Service (DoS) | ||||
| attack. A user should consider all the configuration nodes are | ||||
| sensible. | ||||
| Some of the readable data nodes in this YANG module may be considered | ||||
| sensitive or vulnerable in some network environments. It is thus | ||||
| important to control read access (e.g., via get, get-config, or | ||||
| notification) to these data nodes. The exposure of the Link State | ||||
| Database (LSDB) will expose the detailed topology of the network | ||||
| including authentication parameters. Implementations MUST NOT | ||||
| provide a configured authentication key in a clear text format in | ||||
| response to any request (e.g., via get, get-config). | ||||
| For IS-IS authentication, configuration is supported vua the | ||||
| specification of key-chain [RFC8177] or the direction specification | ||||
| of key and authentication algorithm. Hence, authentification | ||||
| configuration using the "auth-table-trailer" case in the | ||||
| "authentication" container inherits the security considerations of | ||||
| [RFC8177]. This includes the considerations with respect to the | ||||
| local storage and handling of authentication keys. | ||||
| Some of the RPC operations in this YANG module may be considered | ||||
| sensitive or vulnerable in some network environments. It is thus | ||||
| important to control access to these operations. The OSPF YANG | ||||
| module support the "clear-adjacency" and "clear-database" RPCs. If | ||||
| access too either of these is compromised, they can result in | ||||
| temporary network outages be employed to mount DoS attacks. | ||||
| 8. Contributors | 8. Contributors | |||
| Authors would like to thank Kiran Agrahara Sreenivasa, Dean | Authors would like to thank Kiran Agrahara Sreenivasa, Dean | |||
| Bogdanovic, Yingzhen Qu, Yi Yang for their major contributions to the | Bogdanovic, Yingzhen Qu, Yi Yang for their major contributions to the | |||
| draft. | draft. | |||
| 9. Acknowledgements | 9. Acknowledgements | |||
| TBD. | TBD. | |||
| skipping to change at page 96, line 34 ¶ | skipping to change at page 101, line 45 ¶ | |||
| 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 -22 to version -24 | 11.1. From version -24 to version -25 | |||
| o Fix revision date of the module | o RPC clear-adjacency uses now an interface reference instead of a | |||
| string. | ||||
| 11.2. From version -21 to version -22 | o Use expanded "address-family" rather than "af" in the model. | |||
| o Fix pattern for area-address. | ||||
| o Removed unnecessary identities. | ||||
| o Added an instances container and list in the modeling of neighbors | ||||
| in the LSDB. This is to manage the case where there are parallel | ||||
| links between two neighbors. | ||||
| o Notification instance header: removed routing-instance leaf | ||||
| (alignment with OSPF). | ||||
| o Notification instance header: changed routing-protocol-name to a | ||||
| reference. | ||||
| o Notification interface header: changed interface to a reference. | ||||
| o RPCs: changed instance-state-ref typedef to a leafref. Removed | ||||
| associated typedef. | ||||
| o Revised some groupings and their names (alignment with OSPF). | ||||
| o Some description alignment with OSPF. | ||||
| o auto-cost container alignment with OSPF. | ||||
| o MT-ID leaf in database description renamed (lower-case) mt-id. | ||||
| o In lsp-log grouping, leaf change is renamed reason to align with | ||||
| OSPF. | ||||
| o Added some link attributes (GMPLS, TE, extended TE, SRLGs) in the | ||||
| LSDB. | ||||
| o Added extended-system-id typedef which contains the systemid plus | ||||
| the pseudonode number. | ||||
| o Add support of POI Purge Originator Identification. | ||||
| 11.2. From version -22 to version -24 | ||||
| o Fix revision date of the module. | ||||
| 11.3. From version -21 to version -22 | ||||
| o TE router-id modeling alignment with OSPF. | o TE router-id modeling alignment with OSPF. | |||
| o Add max-ecmp + feature in spf-control container (alignment with | o Add max-ecmp + feature in spf-control container (alignment with | |||
| OSPF). | OSPF). | |||
| 11.3. From version -20 to version -21 | 11.4. From version -20 to version -21 | |||
| o Model revision date fix | o Model revision date fix | |||
| 11.4. From version -19 to version -20 | 11.5. 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 | |||
| o Remove segment-routing feature | o Remove segment-routing feature | |||
| o Modified BFD activation modeling | o Modified BFD activation modeling | |||
| 11.5. From version -18 to version -19 | 11.6. From version -18 to version -19 | |||
| o Align with draft-ietf-netmod-rfc8022bis. | o Align with draft-ietf-netmod-rfc8022bis. | |||
| o Modify address family types as per draft-ietf-rtgwg-routing-types- | o Modify address family types as per draft-ietf-rtgwg-routing-types- | |||
| 17. | 17. | |||
| 11.6. From version -17 to version -18 | 11.7. From version -17 to version -18 | |||
| o NMDA compliancy. | o NMDA compliancy. | |||
| o Set some default values. | o Set some default values. | |||
| o Align with iana-rt-types module. | o Align with iana-rt-types module. | |||
| 11.7. From version -16 to version -17 | 11.8. From version -16 to version -17 | |||
| o Cosmetic fixes. | o Cosmetic fixes. | |||
| o Use of rt-types model. | o Use of rt-types model. | |||
| 11.8. From version -15 to version -16 | 11.9. From version -15 to version -16 | |||
| o Alignment with last IETF key chain model. | o Alignment with last IETF key chain model. | |||
| o lsp-log "change" leaf moved as an identity. | o lsp-log "change" leaf moved as an identity. | |||
| o Incremental SPF removed from spf-log types. | o Incremental SPF removed from spf-log types. | |||
| 11.9. From version -14 to version -15 | 11.10. From version -14 to version -15 | |||
| o Alignment with OSPF model done: | o Alignment with OSPF model done: | |||
| * Added spf-control container with IETF SPF delay algorithm as a | * Added spf-control container with IETF SPF delay algorithm as a | |||
| feature. | feature. | |||
| * Added graceful-restart options. | * Added graceful-restart options. | |||
| * Added nsr as a feature. | * Added nsr as a feature. | |||
| skipping to change at page 98, line 25 ¶ | skipping to change at page 104, line 32 ¶ | |||
| * Added auto-cost container. | * Added auto-cost container. | |||
| * Moved reference-bandwidth under auto-cost container. | * Moved reference-bandwidth under auto-cost container. | |||
| * Added IS-IS local RIB as operational state. | * Added IS-IS local RIB as operational state. | |||
| * Added decode-completed and raw-data leaves in the LSDB model. | * Added decode-completed and raw-data leaves in the LSDB model. | |||
| * Modified the notification header. | * Modified the notification header. | |||
| 11.10. From version -13 to version -14 | 11.11. From version -13 to version -14 | |||
| o Segment Routing extensions are now in a separate document. | o Segment Routing extensions are now in a separate document. | |||
| 11.11. From version -12 to version -13 | 11.12. From version -12 to version -13 | |||
| o Move feature nlpid-control to container rather than list. | o Move feature nlpid-control to container rather than list. | |||
| o Rename multi-topology to topologies to align with OSPF. | o Rename multi-topology to topologies to align with OSPF. | |||
| o Rename bfd/enabled to bfd/enable for consistency reason. | o Rename bfd/enabled to bfd/enable for consistency reason. | |||
| o Add support for NSR with a feature. | o Add support for NSR with a feature. | |||
| 11.12. From version -09 to version -12 | 11.13. From version -09 to version -12 | |||
| o Rename node-tag container to node-tags. | o Rename node-tag container to node-tags. | |||
| 11.13. From version -08 to version -09 | 11.14. From version -08 to version -09 | |||
| o Added container before af list. | o Added container before af list. | |||
| o Added container before topology list. | o Added container before topology list. | |||
| o Aligned LFA if per level cfg. | o Aligned LFA if per level cfg. | |||
| o Align to draft-ietf-netmod-routing-cfg-23. | o Align to draft-ietf-netmod-routing-cfg-23. | |||
| 11.14. From version -07 to version -08 | 11.15. From version -07 to version -08 | |||
| o Remove selector from system-id type. | o Remove selector from system-id type. | |||
| o Add some default values. | o Add some default values. | |||
| o Moved lists to containers+groupings for per level configuration. | o Moved lists to containers+groupings for per level configuration. | |||
| o remove routing-instance as per core routing model v21. | o remove routing-instance as per core routing model v21. | |||
| o added BFD leaf (no more BFD protocol model). | o added BFD leaf (no more BFD protocol model). | |||
| o changed keychain module reference. | o changed keychain module reference. | |||
| 11.15. From version -05 to version -07 | 11.16. From version -05 to version -07 | |||
| o Move Overload config from list to container. | o Move Overload config from list to container. | |||
| o Move Overload-max-metric config from list to container. | o Move Overload-max-metric config from list to container. | |||
| o Move preference config from list to container. | o Move preference config from list to container. | |||
| o Add Node flag in config. | o Add Node flag in config. | |||
| o Removed BFD config => moved to isis-bfd module. | o Removed BFD config => moved to isis-bfd module. | |||
| o Remove call to routing policy model. | o Remove call to routing policy model. | |||
| 11.16. From version -03 to version -05 | 11.17. From version -03 to version -05 | |||
| o Correct invalid references to previous versions of core routing | o Correct invalid references to previous versions of core routing | |||
| model. | model. | |||
| o Remove BFD config and replace by groupings from ietf-bfd. | o Remove BFD config and replace by groupings from ietf-bfd. | |||
| o Adding routing-policy support through routing-policy model. | o Adding routing-policy support through routing-policy model. | |||
| 11.17. From version -02 to version -03 | 11.18. From version -02 to version -03 | |||
| o Reviewed config and op state groupings. | o Reviewed config and op state groupings. | |||
| o Add default value to lfa candidate-disabled. | o Add default value to lfa candidate-disabled. | |||
| o Add enable leaf to isis container to reflect admin state. | o Add enable leaf to isis container to reflect admin state. | |||
| o Move to VRF centric only. | o Move to VRF centric only. | |||
| o Segment routing is part os a separate module. | o Segment routing is part os a separate module. | |||
| 11.18. From version -01 to version -02 | 11.19. From version -01 to version -02 | |||
| o Adding IPFRR. | o Adding IPFRR. | |||
| o Adding igp-ldp-sync. | o Adding igp-ldp-sync. | |||
| o Adding segment-routing. | o Adding segment-routing. | |||
| o Adding instance reference to operational states. | o Adding instance reference to operational states. | |||
| o Move AF type from string to identity. | o Move AF type from string to identity. | |||
| skipping to change at page 100, line 31 ¶ | skipping to change at page 106, line 43 ¶ | |||
| o Added modification information in lsp-log. | o Added modification information in lsp-log. | |||
| o Removing igp-ldp-sync timer in IS-IS. | o Removing igp-ldp-sync timer in IS-IS. | |||
| o Defining hierarchy for operational states. | o Defining hierarchy for operational states. | |||
| o Adding clns-mtu. | o Adding clns-mtu. | |||
| o Adding key-chain. | o Adding key-chain. | |||
| 11.19. From version -00 to version -01 | 11.20. From version -00 to version -01 | |||
| o Interface metric move from af container to interface container. | o Interface metric move from af container to interface container. | |||
| o Hello-padding on interface moved to hello-padding-disable with | o Hello-padding on interface moved to hello-padding-disable with | |||
| empty type. | empty type. | |||
| o three-way-handshake removed. | o three-way-handshake removed. | |||
| o route preference changed to a choice. | o route preference changed to a choice. | |||
| skipping to change at page 101, line 13 ¶ | skipping to change at page 107, line 24 ¶ | |||
| o Change hello-padding to container. | o Change hello-padding to container. | |||
| o Change bfd to container. | o Change bfd to container. | |||
| o Make BFD a feature. | o Make BFD a feature. | |||
| o Create mpls-te container and put router-id inside. | o Create mpls-te container and put router-id inside. | |||
| o Remove GR helper disable and timers. | o Remove GR helper disable and timers. | |||
| 12. Normative References | 12. References | |||
| [I-D.ietf-netmod-routing-cfg] | 12.1. Normative References | |||
| Lhotka, L. and A. Lindem, "A YANG Data Model for Routing | ||||
| Management", draft-ietf-netmod-routing-cfg-25 (work in | ||||
| progress), November 2016. | ||||
| [I-D.ietf-rtgwg-yang-key-chain] | [I-D.ietf-bfd-yang] | |||
| Lindem, A., Qu, Y., Yeung, D., Chen, I., and Z. Zhang, | Rahman, R., Zheng, L., Jethanandani, M., Networks, J., and | |||
| "Routing Key Chain YANG Data Model", draft-ietf-rtgwg- | G. Mirsky, "YANG Data Model for Bidirectional Forwarding | |||
| yang-key-chain-24 (work in progress), April 2017. | Detection (BFD)", draft-ietf-bfd-yang-17 (work in | |||
| progress), August 2018. | ||||
| [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, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
| DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, | |||
| <https://www.rfc-editor.org/info/rfc3688>. | <https://www.rfc-editor.org/info/rfc3688>. | |||
| skipping to change at page 102, line 14 ¶ | skipping to change at page 108, line 23 ¶ | |||
| [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 | [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", | |||
| Protocol (NETCONF) Access Control Model", RFC 6536, | RFC 6991, DOI 10.17487/RFC6991, July 2013, | |||
| DOI 10.17487/RFC6536, March 2012, | <https://www.rfc-editor.org/info/rfc6991>. | |||
| <https://www.rfc-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>. | |||
| [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | ||||
| RFC 7950, DOI 10.17487/RFC7950, August 2016, | ||||
| <https://www.rfc-editor.org/info/rfc7950>. | ||||
| [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | ||||
| Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | ||||
| <https://www.rfc-editor.org/info/rfc8040>. | ||||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | ||||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | ||||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | ||||
| [RFC8177] Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J. | ||||
| Zhang, "YANG Data Model for Key Chains", RFC 8177, | ||||
| DOI 10.17487/RFC8177, June 2017, | ||||
| <https://www.rfc-editor.org/info/rfc8177>. | ||||
| [RFC8294] Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger, | ||||
| "Common YANG Data Types for the Routing Area", RFC 8294, | ||||
| DOI 10.17487/RFC8294, December 2017, | ||||
| <https://www.rfc-editor.org/info/rfc8294>. | ||||
| [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration | ||||
| Access Control Model", STD 91, RFC 8341, | ||||
| DOI 10.17487/RFC8341, March 2018, | ||||
| <https://www.rfc-editor.org/info/rfc8341>. | ||||
| [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | ||||
| and R. Wilton, "Network Management Datastore Architecture | ||||
| (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, | ||||
| <https://www.rfc-editor.org/info/rfc8342>. | ||||
| [RFC8343] Bjorklund, M., "A YANG Data Model for Interface | ||||
| Management", RFC 8343, DOI 10.17487/RFC8343, March 2018, | ||||
| <https://www.rfc-editor.org/info/rfc8343>. | ||||
| [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for | ||||
| Routing Management (NMDA Version)", RFC 8349, | ||||
| DOI 10.17487/RFC8349, March 2018, | ||||
| <https://www.rfc-editor.org/info/rfc8349>. | ||||
| [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | ||||
| Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | ||||
| <https://www.rfc-editor.org/info/rfc8446>. | ||||
| 12.2. Informative References | ||||
| [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", | ||||
| BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | ||||
| <https://www.rfc-editor.org/info/rfc8340>. | ||||
| 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 | |||
| on a device. The example is written in XML. | on a device. The example is written in XML. | |||
| <?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/> | <control-plane-protocols> | |||
| <interfaces> | <control-plane-protocol> | |||
| <interface> | <name>ISIS-example</name> | |||
| <name>Loopback0</name> | <description/> | |||
| </interface> | <type> | |||
| <interface> | <type xmlns:isis="urn:ietf:params:xml:ns:yang:ietf-isis"> | |||
| <name>Eth1</name> | isis:isis | |||
| </interface> | </type> | |||
| </interfaces> | </type> | |||
| <control-plane-protocols> | <isis xmlns="urn:ietf:params:xml:ns:yang:ietf-isis"> | |||
| <control-plane-protocol> | <enable>true</enable> | |||
| <name>ISIS</name> | <level-type>level-2</level-type> | |||
| <description/> | <system-id>87FC.FCDF.4432</system-id> | |||
| <type>isis:isis</type> | <area-address>49.0001</area-address> | |||
| <isis xmlns="urn:ietf:params:xml:ns:yang:ietf-isis"> | <mpls> | |||
| <enable>true</enable> | <te-rid> | |||
| <level-type>level-2</level-type> | <ipv4-router-id>192.0.2.1</ipv4-router-id> | |||
| <system-id>87FC.FCDF.4432</system-id> | </te-rid> | |||
| <area-address>49.0001</area-address> | </mpls> | |||
| <mpls-te> | <lsp-lifetime>65535</lsp-lifetime> | |||
| <ipv4-router-id>1.1.1.1</ipv4-router-id> | <lsp-refresh>65000</lsp-refresh> | |||
| </mpls-te> | <metric-type> | |||
| <lsp-lifetime>65535</lsp-lifetime> | <value>wide-only</value> | |||
| <lsp-refresh>65000</lsp-refresh> | </metric-type> | |||
| <metric-type> | <default-metric> | |||
| <value>wide</value> | <value>111111</value> | |||
| </metric-type> | </default-metric> | |||
| <default-metric> | <address-families> | |||
| <value>111111</value> | <address-family-list> | |||
| </default-metric> | <address-family>ipv4</address-family> | |||
| <afs> | <enable>true</enable> | |||
| <af> | </address-family-list> | |||
| <af>ipv4-unicast</af> | <address-family-list> | |||
| <enabled>true</enabled> | <address-family>ipv6</address-family> | |||
| </af> | <enable>true</enable> | |||
| </afs> | </address-family-list> | |||
| <interfaces> | </address-families> | |||
| <interface> | <interfaces> | |||
| <name>Loopback0</name> | <interface> | |||
| <tag>200</tag> | <name>Loopback0</name> | |||
| <metric> | <tag>200</tag> | |||
| <value>0</value> | <metric> | |||
| </metric> | <value>0</value> | |||
| <passive>true</passive> | </metric> | |||
| </interface> | <passive>true</passive> | |||
| <interface> | </interface> | |||
| <name>Eth1</name> | <interface> | |||
| <level-type>level-2</level-type> | <name>Eth1</name> | |||
| <interface-type>point-to-point</interface-type> | <level-type>level-2</level-type> | |||
| <metric> | <interface-type>point-to-point</interface-type> | |||
| <value>167890</value> | <metric> | |||
| </metric> | <value>167890</value> | |||
| </interface> | </metric> | |||
| </interfaces> | </interface> | |||
| </isis> | </interfaces> | |||
| </control-plane-protocol> | </isis> | |||
| </control-plane-protocols> | </control-plane-protocol> | |||
| </routing> | ||||
| <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"> | ||||
| <interface> | ||||
| <name>Loopback0</name> | ||||
| <description/> | ||||
| <type/> | ||||
| <link-up-down-trap-enable/> | ||||
| <ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> | ||||
| <mtu/> | ||||
| <address> | ||||
| <ip>1.1.1.1</ip> | ||||
| <prefix-length>32</prefix-length> | ||||
| </address> | ||||
| </ipv4> | ||||
| </interface> | ||||
| <interface> | ||||
| <name>Eth1</name> | ||||
| <description/> | ||||
| <type/> | ||||
| <link-up-down-trap-enable/> | ||||
| <ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> | ||||
| <mtu/> | ||||
| <address> | ||||
| <ip>10.0.0.1</ip> | ||||
| <prefix-length>30</prefix-length> | ||||
| </address> | ||||
| </ipv4> | ||||
| </interface> | </control-plane-protocols> | |||
| </interfaces> | </routing> | |||
| </data> | <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"> | |||
| <interface> | ||||
| <name>Loopback0</name> | ||||
| <description/> | ||||
| <type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type"> | ||||
| ianaift:softwareLoopback | ||||
| </type> | ||||
| <link-up-down-trap-enable>enabled</link-up-down-trap-enable> | ||||
| <ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> | ||||
| <address> | ||||
| <ip>192.0.2.1</ip> | ||||
| <prefix-length>32</prefix-length> | ||||
| </address> | ||||
| </ipv4> | ||||
| <ipv6 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> | ||||
| <address> | ||||
| <ip>2001:DB8::1</ip> | ||||
| <prefix-length>128</prefix-length> | ||||
| </address> | ||||
| </ipv6> | ||||
| </interface> | ||||
| <interface> | ||||
| <name>Eth1</name> | ||||
| <description/> | ||||
| <type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type"> | ||||
| ianaift:ethernetCsmacd | ||||
| </type> | ||||
| <link-up-down-trap-enable>enabled</link-up-down-trap-enable> | ||||
| <ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> | ||||
| <address> | ||||
| <ip>198.51.100.1</ip> | ||||
| <prefix-length>30</prefix-length> | ||||
| </address> | ||||
| </ipv4> | ||||
| <ipv6 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> | ||||
| <address> | ||||
| <ip>2001:DB8:0:0:FF::1</ip> | ||||
| <prefix-length>64</prefix-length> | ||||
| </address> | ||||
| </ipv6> | ||||
| </interface> | ||||
| </interfaces> | ||||
| </data> | ||||
| Authors' Addresses | Authors' Addresses | |||
| Stephane Litkowski | Stephane Litkowski | |||
| Orange | Orange | |||
| Email: stephane.litkowski@orange.com | Email: stephane.litkowski@orange.com | |||
| Derek Yeung | Derek Yeung | |||
| Arrcus, Inc | Arrcus, Inc | |||
| End of changes. 353 change blocks. | ||||
| 3969 lines changed or deleted | 4462 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/ | ||||