| < draft-ietf-isis-yang-isis-cfg-31.txt | draft-ietf-isis-yang-isis-cfg-32.txt > | |||
|---|---|---|---|---|
| skipping to change at page 1, line 16 ¶ | skipping to change at page 1, line 16 ¶ | |||
| Expires: July 25, 2019 Arrcus, Inc | Expires: July 25, 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 | |||
| January 21, 2019 | January 21, 2019 | |||
| YANG Data Model for IS-IS Protocol | YANG Data Model for IS-IS Protocol | |||
| draft-ietf-isis-yang-isis-cfg-31 | draft-ietf-isis-yang-isis-cfg-32 | |||
| 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", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| skipping to change at page 1, line 39 ¶ | skipping to change at page 1, line 39 ¶ | |||
| capitals, as shown here. | 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 http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on July 25, 2019. | This Internet-Draft will expire on July 25, 2019. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2019 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 | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| 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 | |||
| skipping to change at page 2, line 49 ¶ | skipping to change at page 2, line 49 ¶ | |||
| 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 105 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 105 | |||
| 10. Change log for ietf-isis YANG module . . . . . . . . . . . . 105 | 10. Change log for ietf-isis YANG module . . . . . . . . . . . . 105 | |||
| 10.1. From version -29 to version -30 . . . . . . . . . . . . 105 | 10.1. From version -29 to version -30 . . . . . . . . . . . . 105 | |||
| 10.2. From version -28 to version -29 . . . . . . . . . . . . 106 | 10.2. From version -28 to version -29 . . . . . . . . . . . . 106 | |||
| 10.3. From version -27 to version -28 . . . . . . . . . . . . 106 | 10.3. From version -27 to version -28 . . . . . . . . . . . . 106 | |||
| 10.4. From version -26 to version -27 . . . . . . . . . . . . 106 | 10.4. From version -26 to version -27 . . . . . . . . . . . . 106 | |||
| 10.5. From version -25 to version -26 . . . . . . . . . . . . 106 | 10.5. From version -25 to version -26 . . . . . . . . . . . . 106 | |||
| 10.6. From version -24 to version -25 . . . . . . . . . . . . 106 | 10.6. From version -24 to version -25 . . . . . . . . . . . . 106 | |||
| 10.7. From version -22 to version -24 . . . . . . . . . . . . 107 | 10.7. From version -22 to version -24 . . . . . . . . . . . . 107 | |||
| 10.8. From version -21 to version -22 . . . . . . . . . . . . 107 | 10.8. From version -21 to version -22 . . . . . . . . . . . . 107 | |||
| 10.9. From version -20 to version -21 . . . . . . . . . . . . 107 | 10.9. From version -20 to version -21 . . . . . . . . . . . . 108 | |||
| 10.10. From version -19 to version -20 . . . . . . . . . . . . 108 | 10.10. From version -19 to version -20 . . . . . . . . . . . . 108 | |||
| 10.11. From version -18 to version -19 . . . . . . . . . . . . 108 | 10.11. From version -18 to version -19 . . . . . . . . . . . . 108 | |||
| 10.12. From version -17 to version -18 . . . . . . . . . . . . 108 | 10.12. From version -17 to version -18 . . . . . . . . . . . . 108 | |||
| 10.13. From version -16 to version -17 . . . . . . . . . . . . 108 | 10.13. From version -16 to version -17 . . . . . . . . . . . . 108 | |||
| 10.14. From version -15 to version -16 . . . . . . . . . . . . 108 | 10.14. From version -15 to version -16 . . . . . . . . . . . . 108 | |||
| 10.15. From version -14 to version -15 . . . . . . . . . . . . 108 | 10.15. From version -14 to version -15 . . . . . . . . . . . . 109 | |||
| 10.16. From version -13 to version -14 . . . . . . . . . . . . 109 | 10.16. From version -13 to version -14 . . . . . . . . . . . . 109 | |||
| 10.17. From version -12 to version -13 . . . . . . . . . . . . 109 | 10.17. From version -12 to version -13 . . . . . . . . . . . . 109 | |||
| 10.18. From version -09 to version -12 . . . . . . . . . . . . 109 | 10.18. From version -09 to version -12 . . . . . . . . . . . . 109 | |||
| 10.19. From version -08 to version -09 . . . . . . . . . . . . 109 | 10.19. From version -08 to version -09 . . . . . . . . . . . . 110 | |||
| 10.20. From version -07 to version -08 . . . . . . . . . . . . 110 | 10.20. From version -07 to version -08 . . . . . . . . . . . . 110 | |||
| 10.21. From version -05 to version -07 . . . . . . . . . . . . 110 | 10.21. From version -05 to version -07 . . . . . . . . . . . . 110 | |||
| 10.22. From version -03 to version -05 . . . . . . . . . . . . 110 | 10.22. From version -03 to version -05 . . . . . . . . . . . . 110 | |||
| 10.23. From version -02 to version -03 . . . . . . . . . . . . 110 | 10.23. From version -02 to version -03 . . . . . . . . . . . . 111 | |||
| 10.24. From version -01 to version -02 . . . . . . . . . . . . 111 | 10.24. From version -01 to version -02 . . . . . . . . . . . . 111 | |||
| 10.25. From version -00 to version -01 . . . . . . . . . . . . 111 | 10.25. From version -00 to version -01 . . . . . . . . . . . . 111 | |||
| 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 112 | 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 112 | |||
| 11.1. Normative References . . . . . . . . . . . . . . . . . . 112 | 11.1. Normative References . . . . . . . . . . . . . . . . . . 112 | |||
| 11.2. Informative References . . . . . . . . . . . . . . . . . 115 | 11.2. Informative References . . . . . . . . . . . . . . . . . 116 | |||
| Appendix A. Example of IS-IS configuration in XML . . . . . . . 116 | Appendix A. Example of IS-IS configuration in XML . . . . . . . 116 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 118 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 118 | |||
| 1. Introduction | 1. Introduction | |||
| This document defines a YANG ([RFC7950]) data model for IS-IS routing | This document defines a YANG ([RFC7950]) data model for IS-IS routing | |||
| protocol. | 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. | |||
| skipping to change at page 3, line 47 ¶ | skipping to change at page 3, line 47 ¶ | |||
| 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 (defined in [RFC8349]) with specific IS-IS | ietf-routing module (defined in [RFC8349]) with specific IS-IS | |||
| parameters. | parameters. | |||
| 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 | augment | |||
| /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol: | /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol: | |||
| +--rw isis | +--rw isis | |||
| +--rw enable? boolean {admin-control}? | +--rw enable? boolean {admin-control}? | |||
| +--rw level-type? level | +--rw level-type? level | |||
| +--rw system-id? system-id | +--rw system-id? system-id | |||
| +--rw maximum-area-addresses? uint8 {maximum-area-addresses}? | +--rw maximum-area-addresses? uint8 | |||
| +--rw area-address* area-address | | {maximum-area-addresses}? | |||
| +--rw lsp-mtu? uint16 | +--rw area-address* area-address | |||
| +--rw lsp-lifetime? uint16 | +--rw lsp-mtu? uint16 | |||
| +--rw lsp-refresh? rt-types:timer-value-seconds16 | +--rw lsp-lifetime? uint16 | |||
| {lsp-refresh}? | +--rw lsp-refresh? rt-types:timer-value-seconds16 | |||
| +--rw poi-tlv? boolean {poi-tlv}? | | {lsp-refresh}? | |||
| +--rw graceful-restart {graceful-restart}? | +--rw poi-tlv? boolean {poi-tlv}? | |||
| | +--rw enable? boolean | +--rw graceful-restart {graceful-restart}? | |||
| | +--rw restart-interval? rt-types:timer-value-seconds16 | | +--rw enable? boolean | |||
| | +--rw helper-enable? boolean | | +--rw restart-interval? rt-types:timer-value-seconds16 | |||
| +--rw nsr {nsr}? | | +--rw helper-enable? boolean | |||
| | +--rw enable? boolean | +--rw nsr {nsr}? | |||
| +--rw node-tags {node-tag}? | | +--rw enable? boolean | |||
| | +--rw node-tag* [tag] | +--rw node-tags {node-tag}? | |||
| | ... | | +--rw node-tag* [tag] | |||
| +--rw metric-type | | ... | |||
| | +--rw value? enumeration | +--rw metric-type | |||
| | +--rw level-1 | | +--rw value? enumeration | |||
| | | ... | | +--rw level-1 | |||
| | +--rw level-2 | | | ... | |||
| | ... | | +--rw level-2 | |||
| +--rw default-metric | | ... | |||
| | +--rw value? wide-metric | +--rw default-metric | |||
| | +--rw level-1 | | +--rw value? wide-metric | |||
| | | ... | | +--rw level-1 | |||
| | +--rw level-2 | | | ... | |||
| | ... | | +--rw level-2 | |||
| +--rw auto-cost {auto-cost}? | | ... | |||
| | +--rw enable? boolean | +--rw auto-cost {auto-cost}? | |||
| | +--rw reference-bandwidth? uint32 | | +--rw enable? boolean | |||
| +--rw authentication | | +--rw reference-bandwidth? uint32 | |||
| | +--rw (authentication-type)? | +--rw authentication | |||
| | | ... | | +--rw (authentication-type)? | |||
| | +--rw level-1 | | | ... | |||
| | | ... | | +--rw level-1 | |||
| | +--rw level-2 | | | ... | |||
| | ... | | +--rw level-2 | |||
| +--rw address-families {nlpid-control}? | | ... | |||
| | +--rw address-family-list* [address-family] | ||||
| | ... | ||||
| +--rw mpls | ||||
| | +--rw te-rid {te-rid}? | ||||
| | | ... | ||||
| | +--rw ldp | ||||
| | ... | ||||
| +--rw spf-control | ||||
| | +--rw paths? uint16 {max-ecmp}? | ||||
| | +--rw ietf-spf-delay {ietf-spf-delay}? | ||||
| | ... | ||||
| +--rw fast-reroute {fast-reroute}? | ||||
| | +--rw lfa {lfa}? | ||||
| +--rw preference | ||||
| | +--rw (granularity)? | ||||
| | ... | ||||
| +--rw overload | ||||
| | +--rw status? boolean | ||||
| +--rw overload-max-metric {overload-max-metric}? | ||||
| | +--rw timeout? rt-types:timer-value-seconds16 | ||||
| +--ro spf-log | ||||
| | +--ro event* [id] | ||||
| | ... | ||||
| +--ro lsp-log | ||||
| | +--ro event* [id] | ||||
| | ... | ||||
| +--ro hostnames | ||||
| | +--ro hostname* [system-id] | ||||
| | ... | ||||
| +--ro database | ||||
| | +--ro levels* [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 address-families {nlpid-control}? | |||
| | +--rw topology* [name] | | +--rw address-family-list* [address-family] | |||
| | ... | | ... | |||
| +--rw interfaces | +--rw mpls | |||
| +--rw interface* [name] | | +--rw te-rid {te-rid}? | |||
| ... | | | ... | |||
| | +--rw ldp | ||||
| | ... | ||||
| +--rw spf-control | ||||
| | +--rw paths? uint16 {max-ecmp}? | ||||
| | +--rw ietf-spf-delay {ietf-spf-delay}? | ||||
| | ... | ||||
| +--rw fast-reroute {fast-reroute}? | ||||
| | +--rw lfa {lfa}? | ||||
| +--rw preference | ||||
| | +--rw (granularity)? | ||||
| | ... | ||||
| +--rw overload | ||||
| | +--rw status? boolean | ||||
| +--rw overload-max-metric {overload-max-metric}? | ||||
| | +--rw timeout? rt-types:timer-value-seconds16 | ||||
| +--ro spf-log | ||||
| | +--ro event* [id] | ||||
| | ... | ||||
| +--ro lsp-log | ||||
| | +--ro event* [id] | ||||
| | ... | ||||
| +--ro hostnames | ||||
| | +--ro hostname* [system-id] | ||||
| | ... | ||||
| +--ro database | ||||
| | +--ro levels* [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 -> | | +---w routing-protocol-instance-name -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +---w level? level | | +---w level? level | |||
| | +---w interface? if:interface-ref | | +---w interface? if:interface-ref | |||
| +---x clear-database | +---x clear-database | |||
| +---w input | +---w input | |||
| +---w routing-protocol-instance-name -> | +---w routing-protocol-instance-name -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--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-protocol-name? -> | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /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 is divided in: | The IS-IS configuration 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 to support any additional | Additional modules may be created to support any additional | |||
| skipping to change at page 13, line 5 ¶ | skipping to change at page 13, line 5 ¶ | |||
| defined in the "ietf-interfaces" YANG model ([RFC8343]. | 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? | |||
| | | +--:(password) | | | | key-chain:key-chain-ref | |||
| | | +--rw key? string | | | +--:(password) | |||
| | | +--rw crypto-algorithm? identityref | | | +--rw key? string | |||
| | +--rw level-1 | | | +--rw crypto-algorithm? identityref | |||
| | | +--rw (authentication-type)? | | +--rw level-1 | |||
| | | +--:(key-chain) {key-chain}? | | | +--rw (authentication-type)? | |||
| | | | +--rw key-chain? | | | +--:(key-chain) {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}? | |||
| 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 hello-interval | | +--rw crypto-algorithm? identityref | |||
| | +--rw value? rt-types:timer-value-seconds16 | +--rw hello-interval | |||
| | +--rw level-1 | | +--rw value? rt-types:timer-value-seconds16 | |||
| | | +--rw value? rt-types:timer-value-seconds16 | | +--rw level-1 | |||
| | +--rw level-2 | | | +--rw value? rt-types:timer-value-seconds16 | |||
| | +--rw value? rt-types:timer-value-seconds16 | | +--rw level-2 | |||
| +--rw hello-multiplier | | +--rw value? rt-types:timer-value-seconds16 | |||
| | +--rw value? uint16 | +--rw hello-multiplier | |||
| | +--rw level-1 | | +--rw value? uint16 | |||
| | | +--rw value? uint16 | | +--rw level-1 | |||
| | +--rw level-2 | | | +--rw value? uint16 | |||
| | +--rw value? uint16 | | +--rw level-2 | |||
| +--rw priority | | +--rw value? uint16 | |||
| | +--rw value? uint8 | +--rw priority | |||
| | +--rw level-1 | | +--rw value? uint8 | |||
| | | +--rw value? uint8 | | +--rw level-1 | |||
| | +--rw level-2 | | | +--rw value? uint8 | |||
| | +--rw value? uint8 | | +--rw level-2 | |||
| +--rw metric | | +--rw value? uint8 | |||
| | +--rw value? wide-metric | +--rw metric | |||
| | +--rw level-1 | | +--rw value? wide-metric | |||
| | | +--rw value? wide-metric | | +--rw level-1 | |||
| | +--rw level-2 | | | +--rw value? wide-metric | |||
| | +--rw value? wide-metric | | +--rw level-2 | |||
| +--rw bfd {bfd}? | | +--rw value? wide-metric | |||
| | +--rw enable? boolean | +--rw bfd {bfd}? | |||
| | +--rw local-multiplier? multiplier | | +--rw enable? boolean | |||
| | +--rw (interval-config-type)? | | +--rw local-multiplier? multiplier | |||
| | +--:(tx-rx-intervals) | | +--rw (interval-config-type)? | |||
| | | +--rw desired-min-tx-interval? uint32 | | +--:(tx-rx-intervals) | |||
| | | +--rw required-min-rx-interval? uint32 | | | +--rw desired-min-tx-interval? uint32 | |||
| | +--:(single-interval) {single-minimum-interval}? | | | +--rw required-min-rx-interval? uint32 | |||
| | +--rw min-interval? uint32 | | +--:(single-interval) {single-minimum-interval}? | |||
| +--rw address-families {nlpid-control}? | | +--rw min-interval? uint32 | |||
| | +--rw address-family-list* [address-family] | +--rw address-families {nlpid-control}? | |||
| | +--rw address-family iana-rt-types:address-family | | +--rw address-family-list* [address-family] | |||
| +--rw mpls | | +--rw address-family iana-rt-types:address-family | |||
| | +--rw ldp | +--rw mpls | |||
| | +--rw igp-sync? boolean {ldp-igp-sync}? | | +--rw ldp | |||
| +--rw fast-reroute {fast-reroute}? | | +--rw igp-sync? boolean {ldp-igp-sync}? | |||
| | +--rw lfa {lfa}? | +--rw fast-reroute {fast-reroute}? | |||
| | +--rw candidate-enable? boolean | | +--rw lfa {lfa}? | |||
| | +--rw enable? boolean | | +--rw candidate-enable? boolean | |||
| | +--rw remote-lfa {remote-lfa}? | | +--rw enable? boolean | |||
| | | +--rw enable? boolean | | +--rw remote-lfa {remote-lfa}? | |||
| | +--rw level-1 | | | +--rw enable? boolean | |||
| | | +--rw candidate-enable? boolean | | +--rw level-1 | |||
| | | +--rw enable? boolean | | | +--rw candidate-enable? boolean | |||
| | | +--rw remote-lfa {remote-lfa}? | | | +--rw enable? boolean | |||
| | | +--rw enable? boolean | | | +--rw remote-lfa {remote-lfa}? | |||
| | +--rw level-2 | | | +--rw enable? boolean | |||
| | +--rw candidate-enable? boolean | | +--rw level-2 | |||
| | +--rw enable? boolean | | +--rw candidate-enable? boolean | |||
| | +--rw remote-lfa {remote-lfa}? | | +--rw enable? boolean | |||
| | +--rw enable? boolean | | +--rw remote-lfa {remote-lfa}? | |||
| +--ro adjacencies | | +--rw enable? boolean | |||
| | +--ro adjacency* [] | +--ro adjacencies | |||
| | +--ro neighbor-sys-type? level | | +--ro adjacency* [] | |||
| | +--ro neighbor-sysid? system-id | | +--ro neighbor-sys-type? level | |||
| | +--ro neighbor-extended-circuit-id? | | +--ro neighbor-sysid? system-id | |||
| extended-circuit-id | | +--ro neighbor-extended-circuit-id? | |||
| | +--ro neighbor-snpa? snpa | | | extended-circuit-id | |||
| | +--ro usage? level | | +--ro neighbor-snpa? snpa | |||
| | +--ro hold-timer? | | +--ro usage? level | |||
| rt-types:timer-value-seconds16 | | +--ro hold-timer? | |||
| | +--ro neighbor-priority? uint8 | | | rt-types:timer-value-seconds16 | |||
| | +--ro lastuptime? yang:timestamp | | +--ro neighbor-priority? uint8 | |||
| | +--ro state? adj-state-type | | +--ro lastuptime? yang:timestamp | |||
| +--ro event-counters | | +--ro state? adj-state-type | |||
| | +--ro adjacency-changes? uint32 | +--ro event-counters | |||
| | +--ro adjacency-number? uint32 | | +--ro adjacency-changes? uint32 | |||
| | +--ro init-fails? uint32 | | +--ro adjacency-number? uint32 | |||
| | +--ro adjacency-rejects? uint32 | | +--ro init-fails? uint32 | |||
| | +--ro id-len-mismatch? uint32 | | +--ro adjacency-rejects? uint32 | |||
| | +--ro max-area-addresses-mismatch? uint32 | | +--ro id-len-mismatch? uint32 | |||
| | +--ro authentication-type-fails? uint32 | | +--ro max-area-addresses-mismatch? uint32 | |||
| | +--ro authentication-fails? uint32 | | +--ro authentication-type-fails? uint32 | |||
| | +--ro lan-dis-changes? uint32 | | +--ro authentication-fails? uint32 | |||
| +--ro packet-counters | | +--ro lan-dis-changes? uint32 | |||
| | +--ro level* [level] | +--ro packet-counters | |||
| | +--ro level level-number | | +--ro level* [level] | |||
| | +--ro iih | | +--ro level level-number | |||
| | | +--ro in? uint32 | | +--ro iih | |||
| | | +--ro out? uint32 | | | +--ro in? uint32 | |||
| | +--ro ish | | | +--ro out? uint32 | |||
| | | +--ro in? uint32 | | +--ro ish | |||
| | | +--ro out? uint32 | | | +--ro in? uint32 | |||
| | +--ro esh | | | +--ro out? uint32 | |||
| | | +--ro in? uint32 | | +--ro esh | |||
| | | +--ro out? uint32 | | | +--ro in? uint32 | |||
| | +--ro lsp | | | +--ro out? uint32 | |||
| | | +--ro in? uint32 | | +--ro lsp | |||
| | | +--ro out? uint32 | | | +--ro in? uint32 | |||
| | +--ro psnp | | | +--ro out? uint32 | |||
| | | +--ro in? uint32 | | +--ro psnp | |||
| | | +--ro out? uint32 | | | +--ro in? uint32 | |||
| | +--ro csnp | | | +--ro out? uint32 | |||
| | | +--ro in? uint32 | | +--ro csnp | |||
| | | +--ro out? uint32 | | | +--ro in? uint32 | |||
| | +--ro unknown | | | +--ro out? uint32 | |||
| | +--ro in? uint32 | | +--ro unknown | |||
| | +--ro out? uint32 | | +--ro in? uint32 | |||
| +--rw topologies {multi-topology}? | | +--ro out? uint32 | |||
| +--rw topology* [name] | +--rw topologies {multi-topology}? | |||
| +--rw name -> | +--rw topology* [name] | |||
| ../../../../../../../../rt:ribs/rib/name | +--rw name -> | |||
| +--rw metric | ../../../../../../../../rt:ribs/rib/name | |||
| +--rw value? wide-metric | +--rw metric | |||
| +--rw level-1 | +--rw value? wide-metric | |||
| | +--rw value? wide-metric | +--rw level-1 | |||
| +--rw level-2 | | +--rw value? wide-metric | |||
| +--rw value? wide-metric | +--rw level-2 | |||
| +--rw value? wide-metric | ||||
| rpcs: | rpcs: | |||
| +---x clear-adjacency | +---x clear-adjacency | |||
| | +---w input | | +---w input | |||
| | +---w routing-protocol-instance-name -> | | +---w routing-protocol-instance-name -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +---w level? level | | +---w level? level | |||
| | +---w interface? if:interface-ref | | +---w interface? if:interface-ref | |||
| +---x clear-database | +---x clear-database | |||
| +---w input | +---w input | |||
| +---w routing-protocol-instance-name -> | +---w routing-protocol-instance-name -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--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-protocol-name? -> | | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--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-protocol-name? -> | +--ro routing-protocol-name? -> | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | /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 ([RFC8177]). The IS-IS module imports the "ietf-key- | chain module ([RFC8177]). The IS-IS module imports the "ietf-key- | |||
| chain" module and reuses some groupings to allow global and per | chain" module and reuses some groupings to allow global and per | |||
| interface configuration of authentication. If a global | interface configuration of authentication. If a global | |||
| authentication is configured, an implementation SHOULD authenticate | authentication is configured, an implementation SHOULD authenticate | |||
| PSNPs (Partial Sequence Number Packets), CSNPs (Complete Sequence | PSNPs (Partial Sequence Number Packets), CSNPs (Complete Sequence | |||
| Number Packets) and LSPs (Link State Packets) with the authentication | Number Packets) and LSPs (Link State Packets) with the authentication | |||
| skipping to change at page 23, line 44 ¶ | skipping to change at page 23, line 44 ¶ | |||
| [I-D.ietf-bfd-yang]. | [I-D.ietf-bfd-yang]. | |||
| 6. IS-IS YANG Module | 6. IS-IS YANG Module | |||
| The following RFCs, drafts and external standards are not referenced | The following RFCs, drafts and external standards are not referenced | |||
| in the document text but are referenced in the ietf-isis.yang module: | in the document text but are referenced in the ietf-isis.yang module: | |||
| [ISO-10589], [RFC1195], [RFC5029], [RFC5130], [RFC5305], [RFC5306], | [ISO-10589], [RFC1195], [RFC5029], [RFC5130], [RFC5305], [RFC5306], | |||
| [RFC5308], [RFC5880], [RFC5881], [RFC6119], [RFC6232], [RFC7794], | [RFC5308], [RFC5880], [RFC5881], [RFC6119], [RFC6232], [RFC7794], | |||
| [RFC7810], [RFC7917], [RFC8405]. | [RFC7810], [RFC7917], [RFC8405]. | |||
| <CODE BEGINS> file "ietf-isis@2019-01-21.yang" | <CODE BEGINS> file "ietf-isis@2019-01-21.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 6991 - 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 6991 - 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 8294 - 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 8294 - 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 YYYY - YANG Data Model for Bidirectional | reference "RFC YYYY - YANG Data Model for Bidirectional | |||
| Forwarding Detection (BFD). | Forwarding Detection (BFD). | |||
| draft-ietf-bfd-yang."; | -- Note to RFC Editor Please replace YYYY with published RFC number | |||
| for draft-ietf-bfd-yang."; | ||||
| } | } | |||
| organization | organization | |||
| "IETF LSR Working Group"; | "IETF LSR Working Group"; | |||
| contact | contact | |||
| "WG List: <mailto:lsr@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 | |||
| "This YANG module defines the generic configuration and | "This YANG module defines the generic configuration and | |||
| operational state for the IS-IS protocol. | operational state for the IS-IS protocol. | |||
| It is intended that the module | It is intended that the module | |||
| will be extended by vendors to define vendor-specific | will be extended by vendors to define vendor-specific | |||
| IS-IS configuration parameters and policies, | IS-IS configuration parameters and policies, | |||
| for example route maps or route policies. | for example route maps or route policies. | |||
| This YANG module conforms to the Network Management | This YANG module conforms to the Network Management | |||
| Datastore Architecture (NDMA) as described in RFC 8242. | Datastore Architecture (NDMA) as described in RFC 8242. | |||
| Copyright (c) 2018 IETF Trust and the persons identified as | Copyright (c) 2018 IETF Trust and the persons identified as | |||
| authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
| to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| Relating to IETF Documents | Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
| This version of this YANG module is part of RFC XXXX; | This version of this YANG module is part of RFC XXXX; | |||
| see the RFC itself for full legal notices. | see the RFC itself for full legal notices. | |||
| The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', | The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', | |||
| 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', | 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', | |||
| 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document | 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document | |||
| are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] | are to be interpreted as described in BCP 14 [RFC2119] | |||
| when, and only when, they appear in all capitals, as shown here. | [RFC8174] when, and only when, they appear in all capitals, as | |||
| "; | shown here. | |||
| "; | ||||
| revision 2019-01-21 { | revision 2019-01-21 { | |||
| description | description | |||
| "Initial revision."; | "Initial revision."; | |||
| reference "RFC XXXX"; | reference "RFC XXXX"; | |||
| } | } | |||
| /* Identities */ | /* Identities */ | |||
| identity isis { | identity isis { | |||
| base rt:routing-protocol; | base rt:routing-protocol; | |||
| description "Identity for the IS-IS routing protocol."; | description "Identity for the IS-IS routing protocol."; | |||
| } | } | |||
| identity lsp-log-reason { | identity lsp-log-reason { | |||
| description "Base identity for an LSP change log reason."; | description "Base identity for an LSP change log reason."; | |||
| } | } | |||
| identity refresh { | identity refresh { | |||
| base lsp-log-reason; | base lsp-log-reason; | |||
| description | description | |||
| "Identity used when the LSP log reason is | "Identity used when the LSP log reason is | |||
| a refresh LSP received."; | a refresh LSP received."; | |||
| } | } | |||
| identity content-change { | identity content-change { | |||
| base lsp-log-reason; | base lsp-log-reason; | |||
| description | description | |||
| "Identity used when the LSP log reason is | "Identity used when the LSP log reason is | |||
| a change in the content of the LSP."; | a change in the content of the LSP."; | |||
| } | } | |||
| /* Feature definitions */ | /* Feature definitions */ | |||
| feature poi-tlv { | ||||
| description "Support of Purge Originator Identification."; | ||||
| reference "RFC 6232 - Purge Originator Identification TLV | ||||
| for IS-IS"; | ||||
| } | ||||
| feature ietf-spf-delay { | ||||
| description | ||||
| "Support for IETF SPF delay algorithm."; | ||||
| reference "RFC 8405 - SPF Back-off algorithm for link | ||||
| state IGPs"; | ||||
| } | ||||
| feature bfd { | ||||
| description | ||||
| "Support for BFD detection of IS-IS neighbor reachability."; | ||||
| reference "RFC 5880 - Bidirectional Forwarding Detection (BFD) | ||||
| RFC 5881 - Bidirectional Forwarding Detection | ||||
| (BFD) for IPv4 and IPv6 (Single Hop)"; | ||||
| } | ||||
| feature key-chain { | ||||
| description | ||||
| "Support of keychain for authentication."; | ||||
| reference "RFC8177 - YANG Data Model for Key Chains"; | ||||
| } | ||||
| feature node-flag { | ||||
| description | ||||
| "Support for node-flag for IS-IS prefixes."; | ||||
| reference "RFC7794 - IS-IS Prefix Attributes for | ||||
| Extended IP and IPv6 Reachability"; | ||||
| } | ||||
| feature node-tag { | ||||
| description | ||||
| "Support for node admin tag for IS-IS routing instances."; | ||||
| reference "RFC7917 - Advertising Node Administrative Tags | ||||
| in IS-IS"; | ||||
| } | ||||
| feature ldp-igp-sync { | ||||
| description | ||||
| "LDP IGP synchronization."; | ||||
| 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 poi-tlv { | feature overload-max-metric { | |||
| description "Support of Purge Originator Identification."; | description | |||
| reference "RFC 6232 - Purge Originator Identification TLV | "Support of overload by setting | |||
| for IS-IS"; | all links to max metric."; | |||
| } | } | |||
| feature ietf-spf-delay { | feature prefix-tag { | |||
| description | description | |||
| "Support for IETF SPF delay algorithm."; | "Support for 32-bit prefix tags"; | |||
| reference "RFC 8405 - SPF Back-off algorithm for link | reference "RFC5130 - A Policy Control Mechanism in | |||
| state IGPs"; | IS-IS Using Administrative Tags"; | |||
| } | } | |||
| feature bfd { | feature prefix-tag64 { | |||
| description | description | |||
| "Support for BFD detection of IS-IS neighbor reachability."; | "Support for 64-bit prefix tags"; | |||
| reference "RFC 5880 - Bidirectional Forwarding Detection (BFD) | reference "RFC5130 - A Policy Control Mechanism in | |||
| RFC 5881 - Bidirectional Forwarding Detection | IS-IS Using Administrative Tags"; | |||
| (BFD) for IPv4 and IPv6 (Single Hop)"; | } | |||
| } | feature auto-cost { | |||
| feature key-chain { | description | |||
| description | "Calculate IS-IS interface metric according to | |||
| "Support of keychain for authentication."; | reference bandwidth."; | |||
| reference "RFC8177 - YANG Data Model for Key Chains"; | } | |||
| } | ||||
| feature node-flag { | ||||
| description | ||||
| "Support for node-flag for IS-IS prefixes."; | ||||
| reference "RFC7794 - IS-IS Prefix Attributes for | ||||
| Extended IP and IPv6 Reachability"; | ||||
| } | ||||
| feature node-tag { | ||||
| description | ||||
| "Support for node admin tag for IS-IS routing instances."; | ||||
| reference "RFC7917 - Advertising Node Administrative Tags | ||||
| in IS-IS"; | ||||
| } | ||||
| feature ldp-igp-sync { | ||||
| description | ||||
| "LDP IGP synchronization."; | ||||
| 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 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 "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 te-rid { | reference "RFC5120 - M-IS-IS: Multi Topology Routing in IS-IS"; | |||
| description | } | |||
| "Traffic-Engineering Router-ID."; | feature nlpid-control { | |||
| reference "RFC5305 - IS-IS Extensions for Traffic Engineering | description | |||
| RFC6119 - IPv6 Traffic Engineering in IS-IS"; | "This feature controls the advertisement | |||
| } | of support NLPID within IS-IS configuration."; | |||
| feature max-ecmp { | } | |||
| description | feature graceful-restart { | |||
| "Setting maximum number of ECMP paths."; | description | |||
| } | "IS-IS Graceful restart support."; | |||
| feature multi-topology { | reference "RFC5306 - Restart Signaling in IS-IS"; | |||
| description | } | |||
| "Support for Multiple-Topology Routing (MTR)."; | ||||
| reference "RFC5120 - M-IS-IS: Multi Topology Routing in IS-IS"; | ||||
| } | feature lsp-refresh { | |||
| feature nlpid-control { | description | |||
| description | "Configuration of LSP refresh interval."; | |||
| "This feature controls the advertisement | } | |||
| of support NLPID within IS-IS configuration."; | ||||
| } | ||||
| feature graceful-restart { | ||||
| description | ||||
| "IS-IS Graceful restart support."; | ||||
| reference "RFC5306 - Restart Signaling in IS-IS"; | ||||
| } | ||||
| feature lsp-refresh { | feature maximum-area-addresses { | |||
| description | description | |||
| "Configuration of LSP refresh interval."; | "Support of maximum-area-addresses config."; | |||
| } | } | |||
| feature maximum-area-addresses { | feature admin-control { | |||
| description | description | |||
| "Support of maximum-area-addresses config."; | "Administrative control of the protocol state."; | |||
| } | } | |||
| feature admin-control { | /* Type definitions */ | |||
| description | ||||
| "Administrative control of the protocol state."; | ||||
| } | ||||
| /* Type definitions */ | typedef circuit-id { | |||
| type uint8; | ||||
| description | ||||
| "This type defines the circuit ID | ||||
| associated with an interface."; | ||||
| } | ||||
| typedef circuit-id { | typedef extended-circuit-id { | |||
| type uint8; | type uint32; | |||
| description | description | |||
| "This type defines the circuit ID | "This type defines the extended circuit ID | |||
| associated with an interface."; | associated with an interface."; | |||
| } | } | |||
| typedef extended-circuit-id { | typedef interface-type { | |||
| type uint32; | type enumeration { | |||
| description | enum broadcast { | |||
| "This type defines the extended circuit ID | description | |||
| associated with an interface."; | "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 interface-type { | } | |||
| type enumeration { | ||||
| enum broadcast { | ||||
| description | ||||
| "Broadcast interface type."; | ||||
| } | typedef level { | |||
| enum point-to-point { | type enumeration { | |||
| description | enum "level-1" { | |||
| "Point-to-point interface type."; | description | |||
| } | "This enum indicates L1-only capability."; | |||
| } | } | |||
| description | enum "level-2" { | |||
| "This type defines the type of adjacency | description | |||
| to be established on the interface. | "This enum indicates L2-only capability."; | |||
| The interface-type determines the type | } | |||
| of hello message that is used."; | 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 level { | typedef adj-state-type { | |||
| type enumeration { | type enumeration { | |||
| enum "level-1" { | enum "up" { | |||
| description | description | |||
| "This enum indicates L1-only capability."; | "State indicates the adjacency is established."; | |||
| } | } | |||
| enum "level-2" { | enum "down" { | |||
| description | description | |||
| "This enum indicates L2-only capability."; | "State indicates the adjacency is NOT established."; | |||
| } | } | |||
| enum "level-all" { | enum "init" { | |||
| description | description | |||
| "This enum indicates capability for both levels."; | "State indicates the adjacency is establishing."; | |||
| } | } | |||
| } | enum "failed" { | |||
| default "level-all"; | description | |||
| description | "State indicates the adjacency is failed."; | |||
| "This type defines IS-IS level of an object."; | } | |||
| } | ||||
| description | ||||
| "This type defines states of an adjacency"; | ||||
| } | ||||
| } | typedef if-state-type { | |||
| type enumeration { | ||||
| enum "up" { | ||||
| description "Up state."; | ||||
| typedef adj-state-type { | } | |||
| type enumeration { | enum "down" { | |||
| enum "up" { | description "Down state"; | |||
| description | } | |||
| "State indicates the adjacency is established."; | } | |||
| } | description | |||
| enum "down" { | "This type defines the state of an interface"; | |||
| description | } | |||
| "State indicates the adjacency is NOT established."; | ||||
| } | ||||
| enum "init" { | ||||
| description | ||||
| "State indicates the adjacency is establishing."; | ||||
| } | typedef level-number { | |||
| enum "failed" { | type uint8 { | |||
| description | range "1 .. 2"; | |||
| "State indicates the adjacency is failed."; | } | |||
| } | description | |||
| } | "This type defines the current IS-IS level."; | |||
| 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,6}'; | |||
| } | } | |||
| } | 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. | |||
| The SNPA should be encoded according to the rules | ||||
| specified for the particular type of subnetwork | ||||
| being used. As an example, for an ethernet subnetwork, | ||||
| the SNPA is encoded as a MAC address like | ||||
| '00aa.bbcc.ddee'."; | ||||
| } | ||||
| typedef lsp-id { | typedef system-id { | |||
| type string { | type string { | |||
| pattern | pattern | |||
| '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]' | '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}'; | |||
| +'{4}\.[0-9][0-9]-[0-9][0-9]'; | } | |||
| } | description | |||
| description | "This type defines IS-IS system-id using pattern, | |||
| "This type defines the IS-IS LSP ID format using a | An example system-id is 0143.0438.AEF0"; | |||
| pattern. An example LSP ID is 0143.0438.AEF0.02-01"; | } | |||
| } | 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 area-address { | typedef wide-metric { | |||
| type string { | type uint32 { | |||
| pattern '[0-9A-Fa-f]{2}(\.[0-9A-Fa-f]{4}){0,6}'; | range "0 .. 16777215"; | |||
| } | } | |||
| description | description | |||
| "This type defines the area address format."; | "This type defines wide style format of IS-IS metric."; | |||
| } | } | |||
| typedef std-metric { | ||||
| type uint8 { | ||||
| range "0 .. 63"; | ||||
| } | ||||
| description | ||||
| "This type defines old style format of IS-IS metric."; | ||||
| } | ||||
| typedef snpa { | typedef mesh-group-state { | |||
| type string { | type enumeration { | |||
| length "0 .. 20"; | enum "mesh-inactive" { | |||
| } | description | |||
| description | "Interface is not part of a mesh group."; | |||
| "This type defines the Subnetwork Point | } | |||
| of Attachement (SNPA) format. | enum "mesh-set" { | |||
| The SNPA should be encoded according to the rules | description | |||
| specified for the particular type of subnetwork | "Interface is part of a mesh group."; | |||
| being used. As an example, for an ethernet subnetwork, | } | |||
| the SNPA is encoded as a MAC address like 00aa.bbcc.ddee"; | enum "mesh-blocked" { | |||
| } | description | |||
| "LSPs must not be flooded over this interface."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "This type describes mesh group state of an interface"; | ||||
| } | ||||
| typedef system-id { | /* Grouping for notifications */ | |||
| type string { | ||||
| pattern | ||||
| '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}'; | ||||
| } | ||||
| 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 wide-metric { | grouping notification-instance-hdr { | |||
| type uint32 { | description | |||
| range "0 .. 16777215"; | "Instance specific IS-IS notification data grouping"; | |||
| } | leaf routing-protocol-name { | |||
| description | type leafref { | |||
| "This type defines wide style format of IS-IS metric."; | path "/rt:routing/rt:control-plane-protocols/" | |||
| } | + "rt:control-plane-protocol/rt:name"; | |||
| } | ||||
| description "Name of the IS-IS instance."; | ||||
| } | ||||
| leaf isis-level { | ||||
| type level; | ||||
| description "IS-IS level of the instance."; | ||||
| } | ||||
| } | ||||
| typedef std-metric { | grouping notification-interface-hdr { | |||
| type uint8 { | description | |||
| range "0 .. 63"; | "Interface specific IS-IS notification data grouping"; | |||
| } | leaf interface-name { | |||
| description | type if:interface-ref; | |||
| "This type defines old style format of IS-IS metric."; | 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."; | ||||
| } | ||||
| } | ||||
| typedef mesh-group-state { | /* Groupings for IP Fast Reroute */ | |||
| type enumeration { | ||||
| enum "mesh-inactive" { | ||||
| description | ||||
| "Interface is not part of a mesh group."; | ||||
| } | ||||
| 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"; | ||||
| } | ||||
| /* Grouping for notifications */ | grouping instance-fast-reroute-config { | |||
| 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 notification-instance-hdr { | grouping interface-lfa-config { | |||
| description | leaf candidate-enable { | |||
| "Instance specific IS-IS notification data grouping"; | type boolean; | |||
| leaf routing-protocol-name { | default true; | |||
| type leafref { | description | |||
| path "/rt:routing/rt:control-plane-protocols/" | "Enable the interface to be used as backup."; | |||
| + "rt:control-plane-protocol/rt:name"; | } | |||
| } | leaf enable { | |||
| description "Name of the IS-IS instance."; | type boolean; | |||
| } | default false; | |||
| leaf isis-level { | description | |||
| type level; | "Activates LFA - Per-prefix LFA computation | |||
| description "IS-IS level of the instance."; | 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 | ||||
| "LFA level 2 config"; | ||||
| } | ||||
| description | ||||
| "LFA configuration."; | ||||
| } | ||||
| description | ||||
| "Interface IP Fast-reroute configuration."; | ||||
| } | ||||
| } | ||||
| grouping instance-fast-reroute-state { | ||||
| description "IPFRR state data grouping"; | ||||
| container protected-routes { | ||||
| config false; | ||||
| list address-family-stats { | ||||
| key "address-family prefix alternate"; | ||||
| grouping notification-interface-hdr { | leaf address-family { | |||
| description | type iana-rt-types:address-family; | |||
| "Interface specific IS-IS notification data grouping"; | description | |||
| leaf interface-name { | "Address-family"; | |||
| type if:interface-ref; | } | |||
| description "IS-IS interface name"; | leaf prefix { | |||
| type inet:ip-prefix; | ||||
| description | ||||
| "Protected prefix."; | ||||
| } | ||||
| leaf alternate { | ||||
| type inet:ip-address; | ||||
| 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 interface-level { | leaf best { | |||
| type level; | type boolean; | |||
| description "IS-IS level of the interface."; | description | |||
| } | "Is set when the alternate is the preferred one, | |||
| leaf extended-circuit-id { | is unset otherwise."; | |||
| type extended-circuit-id; | } | |||
| description "Eextended circuit-id of the interface."; | leaf non-best-reason { | |||
| } | type string { | |||
| } | length "1..255"; | |||
| } | ||||
| description | ||||
| "Information field to describe why the alternate | ||||
| is not best. The length should be limited to 255 | ||||
| unicode characters. The expected format is a single | ||||
| line text."; | ||||
| } | ||||
| 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."; | ||||
| } | ||||
| /* Groupings for IP Fast Reroute */ | container unprotected-routes { | |||
| config false; | ||||
| list address-family-stats { | ||||
| key "address-family prefix"; | ||||
| grouping instance-fast-reroute-config { | leaf address-family { | |||
| description | type iana-rt-types:address-family; | |||
| "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 { | description "Address-family"; | |||
| leaf candidate-enable { | } | |||
| type boolean; | leaf prefix { | |||
| default true; | type inet:ip-prefix; | |||
| description | description "Unprotected prefix."; | |||
| "Enable the interface to be used as backup."; | } | |||
| } | description | |||
| leaf enable { | "Per AF unprotected prefix statistics."; | |||
| 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 | |||
| "LFA level 2 config"; | "List of prefixes that are not protected."; | |||
| } | } | |||
| description | ||||
| "LFA configuration."; | ||||
| } | ||||
| description | ||||
| "Interface IP Fast-reroute configuration."; | ||||
| } | ||||
| } | ||||
| grouping instance-fast-reroute-state { | ||||
| description "IPFRR state data grouping"; | ||||
| container protected-routes { | ||||
| config false; | ||||
| list address-family-stats { | ||||
| key "address-family prefix alternate"; | ||||
| leaf address-family { | list protection-statistics { | |||
| type iana-rt-types:address-family; | key frr-protection-method; | |||
| description | config false; | |||
| "Address-family"; | leaf frr-protection-method { | |||
| type string; | ||||
| description "Protection method used. | ||||
| The expected format is a single word. | ||||
| As example: LFA,rLFA, MRT, RSVP-TE..."; | ||||
| } | ||||
| list address-family-stats { | ||||
| key address-family; | ||||
| } | leaf address-family { | |||
| leaf prefix { | type iana-rt-types:address-family; | |||
| type inet:ip-prefix; | ||||
| description | ||||
| "Protected prefix."; | ||||
| } | ||||
| leaf alternate { | ||||
| type inet:ip-address; | ||||
| 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 | ||||
| "Is set when the alternate is the preferred one, | ||||
| is unset otherwise."; | ||||
| } | ||||
| leaf non-best-reason { | ||||
| type string { | ||||
| length "1..255"; | ||||
| } | ||||
| description | ||||
| "Information field to describe why the alternate | ||||
| is not best. The length should be limited to 255 unicode | ||||
| characters. The expected format is a single line text."; | ||||
| } | ||||
| 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."; | ||||
| } | description "Address-family"; | |||
| leaf alternate-metric2 { | } | |||
| type uint32; | leaf total-routes { | |||
| description | type uint32; | |||
| "Metric from PLR to the alternate node"; | description "Total prefixes."; | |||
| } | } | |||
| leaf alternate-metric3 { | leaf unprotected-routes { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Metric from alternate node to the destination"; | "Total prefixes that are not protected."; | |||
| } | } | |||
| description | leaf protected-routes { | |||
| "Per-AF protected prefix statistics."; | type uint32; | |||
| } | description | |||
| description | "Total prefixes that are protected."; | |||
| "List of prefixes that are protected."; | } | |||
| } | leaf linkprotected-routes { | |||
| type uint32; | ||||
| description | ||||
| "Total prefixes that are link protected."; | ||||
| } | ||||
| leaf nodeprotected-routes { | ||||
| type uint32; | ||||
| description | ||||
| "Total prefixes that are node protected."; | ||||
| } | ||||
| description | ||||
| "Per AF protected prefix statistics."; | ||||
| } | ||||
| container unprotected-routes { | description "Global protection statistics."; | |||
| config false; | } | |||
| list address-family-stats { | } | |||
| key "address-family prefix"; | ||||
| leaf address-family { | /* Route table and local RIB groupings */ | |||
| type iana-rt-types:address-family; | ||||
| description "Address-family"; | grouping local-rib { | |||
| } | description "Local-rib - RIB for Routes computed by the local | |||
| leaf prefix { | IS-IS routing instance."; | |||
| type inet:ip-prefix; | container local-rib { | |||
| description "Unprotected prefix."; | config false; | |||
| } | description "Local-rib."; | |||
| description | list route { | |||
| "Per AF unprotected prefix statistics."; | key "prefix"; | |||
| } | description "Routes"; | |||
| description | leaf prefix { | |||
| "List of prefixes that are not protected."; | type inet:ip-prefix; | |||
| } | description "Destination prefix."; | |||
| } | ||||
| container next-hops { | ||||
| description "Next hops for the route."; | ||||
| list next-hop { | ||||
| key "next-hop"; | ||||
| description "List of next hops for the route"; | ||||
| leaf outgoing-interface { | ||||
| type if:interface-ref; | ||||
| description | ||||
| "Name of the outgoing interface."; | ||||
| } | ||||
| leaf next-hop { | ||||
| type inet:ip-address; | ||||
| description "Nexthop address."; | ||||
| } | ||||
| } | ||||
| } | ||||
| leaf metric { | ||||
| 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."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| list protection-statistics { | grouping route-content { | |||
| key frr-protection-method; | description | |||
| config false; | "IS-IS protocol-specific route properties grouping."; | |||
| leaf frr-protection-method { | leaf metric { | |||
| type string; | type uint32; | |||
| description "Protection method used. | description "IS-IS metric of a route."; | |||
| The expected format is a single word. | } | |||
| As example: LFA,rLFA, MRT, RSVP-TE..."; | leaf-list tag { | |||
| } | type uint64; | |||
| list address-family-stats { | description | |||
| key address-family; | "List of tags associated with the route. The leaf | |||
| describes both 32-bit and 64-bit tags."; | ||||
| } | ||||
| leaf route-type { | ||||
| type enumeration { | ||||
| enum l2-up-internal { | ||||
| description "Level 2 internal route | ||||
| and not leaked to a lower level"; | ||||
| } | ||||
| enum l1-up-internal { | ||||
| description "Level 1 internal route | ||||
| and not leaked to a lower level"; | ||||
| } | ||||
| enum l2-up-external { | ||||
| description "Level 2 external route | ||||
| and not leaked to a lower level"; | ||||
| } | ||||
| enum l1-up-external { | ||||
| description "Level 1 external route | ||||
| and not leaked to a lower level"; | ||||
| } | ||||
| enum l2-down-internal { | ||||
| description "Level 2 internal route | ||||
| and leaked to a lower level"; | ||||
| } | ||||
| enum l1-down-internal { | ||||
| description "Level 1 internal route | ||||
| and leaked to a lower level"; | ||||
| } | ||||
| enum l2-down-external { | ||||
| description "Level 2 external route | ||||
| and leaked to a lower level"; | ||||
| } | ||||
| enum l1-down-external { | ||||
| description "Level 1 external route | ||||
| and leaked to a lower level"; | ||||
| } | ||||
| } | ||||
| description "IS-IS route type."; | ||||
| } | ||||
| } | ||||
| /* Grouping definitions for configuration and ops state */ | ||||
| leaf address-family { | grouping adjacency-state { | |||
| type iana-rt-types:address-family; | 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 "Address-family"; | } | |||
| } | description | |||
| leaf total-routes { | "Priority of the neighboring IS for becoming | |||
| type uint32; | the DIS."; | |||
| description "Total prefixes."; | } | |||
| } | leaf lastuptime { | |||
| leaf unprotected-routes { | type yang:timestamp; | |||
| type uint32; | description | |||
| description | "When the adjacency most recently entered | |||
| "Total prefixes that are not protected."; | state 'up', measured in hundredths of a | |||
| } | second since the last reinitialization of | |||
| leaf protected-routes { | the network management subsystem. | |||
| type uint32; | The value is 0 if the adjacency has never | |||
| description | been in state 'up'."; | |||
| "Total prefixes that are protected."; | } | |||
| } | leaf state { | |||
| leaf linkprotected-routes { | type adj-state-type; | |||
| type uint32; | description | |||
| description | "This leaf describes the state of the interface."; | |||
| "Total prefixes that are link protected."; | } | |||
| } | ||||
| leaf nodeprotected-routes { | ||||
| type uint32; | ||||
| description | ||||
| "Total prefixes that are node protected."; | ||||
| } | ||||
| description | ||||
| "Per AF protected prefix statistics."; | ||||
| } | ||||
| description "Global protection statistics."; | description | |||
| } | "List of operational adjacencies."; | |||
| } | } | |||
| description | ||||
| "This container lists the adjacencies of | ||||
| the local node."; | ||||
| } | ||||
| description | ||||
| "Adjacency state"; | ||||
| } | ||||
| /* Route table and local RIB groupings */ | grouping admin-control { | |||
| leaf enable { | ||||
| if-feature admin-control; | ||||
| type boolean; | ||||
| default true; | ||||
| description | ||||
| "Enable/Disable the protocol."; | ||||
| } | ||||
| description | ||||
| "Grouping for admin control."; | ||||
| } | ||||
| grouping local-rib { | grouping ietf-spf-delay { | |||
| description "Local-rib - RIB for Routes computed by the local | leaf initial-delay { | |||
| IS-IS routing instance."; | type rt-types:timer-value-milliseconds; | |||
| container local-rib { | units msec; | |||
| config false; | description | |||
| description "Local-rib."; | "Delay used while in QUIET state (milliseconds)."; | |||
| list route { | } | |||
| key "prefix"; | leaf short-delay { | |||
| description "Routes"; | type rt-types:timer-value-milliseconds; | |||
| leaf prefix { | units msec; | |||
| type inet:ip-prefix; | description | |||
| description "Destination prefix."; | "Delay used while in SHORT_WAIT state (milliseconds)."; | |||
| } | } | |||
| container next-hops { | leaf long-delay { | |||
| description "Next hops for the route."; | type rt-types:timer-value-milliseconds; | |||
| list next-hop { | units msec; | |||
| key "next-hop"; | description | |||
| description "List of next hops for the route"; | "Delay used while in LONG_WAIT state (milliseconds)."; | |||
| leaf outgoing-interface { | } | |||
| type if:interface-ref; | ||||
| description | ||||
| "Name of the outgoing interface."; | ||||
| } | ||||
| leaf next-hop { | ||||
| type inet:ip-address; | ||||
| description "Nexthop address."; | ||||
| } | ||||
| } | ||||
| } | ||||
| leaf metric { | ||||
| 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 { | leaf hold-down { | |||
| description | type rt-types:timer-value-milliseconds; | |||
| "IS-IS protocol-specific route properties grouping."; | units msec; | |||
| leaf metric { | description | |||
| type uint32; | "Timer used to consider an IGP stability period | |||
| description "IS-IS metric of a route."; | (milliseconds)."; | |||
| } | } | |||
| leaf-list tag { | leaf time-to-learn { | |||
| type uint64; | type rt-types:timer-value-milliseconds; | |||
| description | units msec; | |||
| "List of tags associated with the route. The leaf | description | |||
| describes both 32-bit and 64-bit tags."; | "Duration used to learn all the IGP events | |||
| } | related to a single component failure (milliseconds)."; | |||
| leaf route-type { | } | |||
| type enumeration { | leaf current-state { | |||
| enum l2-up-internal { | type enumeration { | |||
| description "Level 2 internal route | enum "quiet" { | |||
| and not leaked to a lower level"; | description "QUIET state"; | |||
| } | } | |||
| enum l1-up-internal { | enum "short-wait" { | |||
| description "Level 1 internal route | description "SHORT_WAIT state"; | |||
| and not leaked to a lower level"; | } | |||
| } | enum "long-wait" { | |||
| enum l2-up-external { | description "LONG_WAIT state"; | |||
| description "Level 2 external route | } | |||
| and not leaked to a lower level"; | } | |||
| } | config false; | |||
| enum l1-up-external { | description | |||
| description "Level 1 external route | "Current SPF backoff algorithm state."; | |||
| and not leaked to a lower level"; | } | |||
| } | leaf remaining-time-to-learn { | |||
| enum l2-down-internal { | type rt-types:timer-value-milliseconds; | |||
| description "Level 2 internal route | units "msec"; | |||
| and leaked to a lower level"; | config false; | |||
| } | description | |||
| enum l1-down-internal { | "Remaining time until time-to-learn timer fires."; | |||
| description "Level 1 internal route | } | |||
| and leaked to a lower level"; | leaf remaining-hold-down { | |||
| } | type rt-types:timer-value-milliseconds; | |||
| enum l2-down-external { | units "msec"; | |||
| description "Level 2 external route | config false; | |||
| and leaked to a lower level"; | description | |||
| } | "Remaining time until hold-down timer fires."; | |||
| enum l1-down-external { | } | |||
| description "Level 1 external route | leaf last-event-received { | |||
| and leaked to a lower level"; | type yang:timestamp; | |||
| } | config false; | |||
| } | description | |||
| description "IS-IS route type."; | "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."; | ||||
| } | ||||
| /* Grouping definitions for configuration and ops state */ | grouping node-tag-config { | |||
| 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 adjacency-state { | grouping authentication-global-cfg { | |||
| container adjacencies { | choice authentication-type { | |||
| config false; | case key-chain { | |||
| list adjacency { | if-feature key-chain; | |||
| leaf neighbor-sys-type { | leaf key-chain { | |||
| type level; | type key-chain:key-chain-ref; | |||
| description | description | |||
| "Level capability of neighboring system"; | "Reference to a key-chain."; | |||
| } | } | |||
| leaf neighbor-sysid { | } | |||
| type system-id; | case password { | |||
| description | leaf key { | |||
| "The system-id of the neighbor"; | type string; | |||
| } | description | |||
| leaf neighbor-extended-circuit-id { | "This leaf specifies the authentication key. The | |||
| type extended-circuit-id; | length of the key may be dependent on the | |||
| description | cryptographic algorithm. In cases where it is | |||
| "Circuit ID of the neighbor"; | not, a key length of at least 32 octets should be | |||
| } | supported to allow for interoperability with | |||
| leaf neighbor-snpa { | strong keys."; | |||
| type snpa; | } | |||
| description | leaf crypto-algorithm { | |||
| "SNPA of the neighbor"; | type identityref { | |||
| } | base key-chain:crypto-algorithm; | |||
| leaf usage { | } | |||
| type level; | description | |||
| description | "Cryptographic algorithm associated with key."; | |||
| "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 | description "Choice of authentication."; | |||
| between peers at level 1 or level 2 between | } | |||
| peers at level 2."; | description "Grouping for global authentication config."; | |||
| } | } | |||
| 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."; | ||||
| } | grouping metric-type-global-cfg { | |||
| leaf lastuptime { | leaf value { | |||
| type yang:timestamp; | type enumeration { | |||
| description | enum wide-only { | |||
| "When the adjacency most recently entered | description | |||
| state 'up', measured in hundredths of a | "Advertise new metric style only (RFC5305)"; | |||
| 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 | } | |||
| "List of operational adjacencies."; | enum old-only { | |||
| } | description | |||
| description | "Advertise old metric style only (RFC1195)"; | |||
| "This container lists the adjacencies of | } | |||
| the local node."; | enum both { | |||
| } | description "Advertise both metric styles"; | |||
| description | } | |||
| "Adjacency state"; | } | |||
| } | default wide-only; | |||
| description | ||||
| "Type of metric to be generated: | ||||
| - wide-only means only new metric style | ||||
| is generated, | ||||
| - old-only means that only old style metric | ||||
| is generated, | ||||
| - both means that both are advertised. | ||||
| This leaf is only affecting IPv4 metrics."; | ||||
| } | ||||
| description | ||||
| "Grouping for global metric style config."; | ||||
| } | ||||
| grouping admin-control { | grouping default-metric-global-cfg { | |||
| leaf enable { | leaf value { | |||
| if-feature admin-control; | type wide-metric; | |||
| type boolean; | default "10"; | |||
| default true; | description "Value of the metric"; | |||
| description | } | |||
| "Enable/Disable the protocol."; | description | |||
| } | "Global default metric config grouping."; | |||
| description | } | |||
| "Grouping for admin control."; | ||||
| } | ||||
| grouping ietf-spf-delay { | grouping overload-global-cfg { | |||
| leaf initial-delay { | leaf status { | |||
| type rt-types:timer-value-milliseconds; | type boolean; | |||
| units msec; | default false; | |||
| description | description | |||
| "Delay used while in QUIET state (milliseconds)."; | "This leaf specifies the overload status."; | |||
| } | } | |||
| leaf short-delay { | description "Grouping for overload bit config."; | |||
| type rt-types:timer-value-milliseconds; | } | |||
| units msec; | ||||
| description | ||||
| "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 { | grouping overload-max-metric-global-cfg { | |||
| type rt-types:timer-value-milliseconds; | leaf timeout { | |||
| units msec; | type rt-types:timer-value-seconds16; | |||
| description | units "seconds"; | |||
| "Timer used to consider an IGP stability period | description | |||
| (milliseconds)."; | "Timeout (in seconds) of the overload condition."; | |||
| } | } | |||
| leaf time-to-learn { | description | |||
| type rt-types:timer-value-milliseconds; | "Overload maximum metric configuration grouping"; | |||
| units msec; | } | |||
| description | ||||
| "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."; | ||||
| } | grouping route-preference-global-cfg { | |||
| leaf remaining-hold-down { | choice granularity { | |||
| type rt-types:timer-value-milliseconds; | case detail { | |||
| units "msec"; | leaf internal { | |||
| config false; | type uint8; | |||
| description | description | |||
| "Remaining time until hold-down timer fires."; | "Protocol preference for internal routes."; | |||
| } | } | |||
| leaf last-event-received { | leaf external { | |||
| type yang:timestamp; | type uint8; | |||
| config false; | description | |||
| description | "Protocol preference for external routes."; | |||
| "Time of last IGP event received"; | } | |||
| } | } | |||
| leaf next-spf-time { | case coarse { | |||
| type yang:timestamp; | leaf default { | |||
| config false; | type uint8; | |||
| description | description | |||
| "Time when next SPF has been scheduled."; | "Protocol preference for all IS-IS routes."; | |||
| } | } | |||
| leaf last-spf-time { | } | |||
| type yang:timestamp; | description | |||
| config false; | "Choice for implementation of route preference."; | |||
| description | } | |||
| "Time of last SPF computation."; | description | |||
| } | "Global route preference grouping"; | |||
| description | } | |||
| "Grouping for IETF SPF delay configuration and state."; | ||||
| } | ||||
| grouping node-tag-config { | grouping hello-authentication-cfg { | |||
| description | choice authentication-type { | |||
| "IS-IS node tag config state."; | case key-chain { | |||
| container node-tags { | if-feature key-chain; | |||
| if-feature node-tag; | leaf key-chain { | |||
| list node-tag { | type key-chain:key-chain-ref; | |||
| key tag; | description "Reference to a key-chain."; | |||
| leaf tag { | } | |||
| type uint32; | } | |||
| description | case password { | |||
| "Node tag value."; | leaf key { | |||
| } | type string; | |||
| description | description "Authentication key specification - The | |||
| "List of tags."; | length of the key may be dependent on the | |||
| } | cryptographic algorithm. In cases where | |||
| description | it is not, a key length of at least 32 octets | |||
| "Container for node admin tags."; | should be supported to allow for | |||
| } | interoperability with strong keys."; | |||
| } | } | |||
| 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 authentication-global-cfg { | grouping hello-interval-cfg { | |||
| choice authentication-type { | leaf value { | |||
| case key-chain { | type rt-types:timer-value-seconds16; | |||
| if-feature key-chain; | units "seconds"; | |||
| leaf key-chain { | default 10; | |||
| type key-chain:key-chain-ref; | description | |||
| description | "Interval (in seconds) between successive hello | |||
| "Reference to a key-chain."; | messages."; | |||
| } | } | |||
| } | ||||
| case password { | ||||
| leaf key { | ||||
| type string; | ||||
| description | ||||
| "This leaf specifies the authentication key. The | ||||
| length of the key may be dependent on the | ||||
| cryptographic algorithm. In cases where it is | ||||
| not, a key length of at least 32 octets should be | ||||
| supported to allow for interoperability with | ||||
| strong keys."; | ||||
| } | ||||
| 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 { | description "Interval between hello messages."; | |||
| leaf value { | } | |||
| type enumeration { | ||||
| enum wide-only { | ||||
| description | ||||
| "Advertise new metric style only (RFC5305)"; | ||||
| } | ||||
| enum old-only { | ||||
| description | ||||
| "Advertise old metric style only (RFC1195)"; | ||||
| } | grouping hello-multiplier-cfg { | |||
| enum both { | leaf value { | |||
| description "Advertise both metric styles"; | type uint16; | |||
| } | default 3; | |||
| } | description | |||
| default wide-only; | "Number of missed hello messages prior to | |||
| description | declaring the adjacency down."; | |||
| "Type of metric to be generated: | } | |||
| - wide-only means only new metric style | description | |||
| is generated, | "Number of missed hello messages prior to | |||
| - old-only means that only old style metric | adjacency down grouping."; | |||
| is generated, | } | |||
| - both means that both are advertised. | ||||
| This leaf is only affecting IPv4 metrics."; | ||||
| } | ||||
| description | ||||
| "Grouping for global metric style config."; | ||||
| } | ||||
| grouping default-metric-global-cfg { | grouping priority-cfg { | |||
| leaf value { | leaf value { | |||
| type wide-metric; | type uint8 { | |||
| default "10"; | range "0 .. 127"; | |||
| description "Value of the metric"; | } | |||
| } | default 64; | |||
| description | description | |||
| "Global default metric config grouping."; | "Priority of interface for DIS election."; | |||
| } | } | |||
| grouping overload-global-cfg { | description "Interface DIS election priority grouping"; | |||
| 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 metric-cfg { | |||
| leaf timeout { | leaf value { | |||
| type rt-types:timer-value-seconds16; | type wide-metric; | |||
| units "seconds"; | default "10"; | |||
| description | description "Metric value."; | |||
| "Timeout (in seconds) of the overload condition."; | } | |||
| } | description "Interface metric grouping"; | |||
| description | } | |||
| "Overload maximum metric configuration grouping"; | ||||
| } | ||||
| grouping route-preference-global-cfg { | grouping metric-parameters { | |||
| choice granularity { | container metric-type { | |||
| case detail { | uses metric-type-global-cfg; | |||
| leaf internal { | container level-1 { | |||
| type uint8; | uses metric-type-global-cfg; | |||
| description | description "level-1 specific configuration"; | |||
| "Protocol preference for internal routes."; | } | |||
| } | container level-2 { | |||
| leaf external { | uses metric-type-global-cfg; | |||
| type uint8; | description "level-2 specific configuration"; | |||
| description | } | |||
| "Protocol preference for external routes."; | description "Metric style global configuration"; | |||
| } | } | |||
| } | ||||
| 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 { | container default-metric { | |||
| choice authentication-type { | uses default-metric-global-cfg; | |||
| case key-chain { | container level-1 { | |||
| if-feature key-chain; | uses default-metric-global-cfg; | |||
| leaf key-chain { | description "level-1 specific configuration"; | |||
| type key-chain:key-chain-ref; | } | |||
| description "Reference to a key-chain."; | container level-2 { | |||
| } | uses default-metric-global-cfg; | |||
| } | description "level-2 specific configuration"; | |||
| case password { | } | |||
| leaf key { | description "Default metric global configuration"; | |||
| type string; | } | |||
| description "Authentication key specification - The | container auto-cost { | |||
| length of the key may be dependent on the | if-feature auto-cost; | |||
| cryptographic algorithm. In cases where it is | description | |||
| not, a key length of at leawt 32 octets should be | "Interface Auto-cost configuration state."; | |||
| supported to allow for interoperability with | 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."; | ||||
| } | ||||
| } | ||||
| strong | description "Grouping for global metric parameters."; | |||
| keys."; | } | |||
| } | ||||
| 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 high-availability-parameters { | |||
| leaf value { | container graceful-restart { | |||
| type rt-types:timer-value-seconds16; | if-feature graceful-restart; | |||
| units "seconds"; | leaf enable { | |||
| default 10; | type boolean; | |||
| description | default false; | |||
| "Interval (in seconds) between successive hello | description "Enable graceful restart."; | |||
| messages."; | } | |||
| } | 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."; | ||||
| description "Interval between hello messages."; | } | |||
| } | 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 hello-multiplier-cfg { | grouping authentication-parameters { | |||
| leaf value { | container authentication { | |||
| type uint16; | uses authentication-global-cfg; | |||
| 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 { | container level-1 { | |||
| leaf value { | uses authentication-global-cfg; | |||
| type uint8 { | description "level-1 specific configuration"; | |||
| range "0 .. 127"; | } | |||
| } | container level-2 { | |||
| default 64; | uses authentication-global-cfg; | |||
| description | description "level-2 specific configuration"; | |||
| "Priority of interface for DIS election."; | } | |||
| } | description "Authentication global configuration for | |||
| both LSPs and SNPs."; | ||||
| } | ||||
| description "Grouping for authentication parameters"; | ||||
| } | ||||
| 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 "Interface DIS election priority grouping"; | } | |||
| } | description "Grouping for address family parameters."; | |||
| } | ||||
| grouping metric-cfg { | grouping mpls-parameters { | |||
| leaf value { | container mpls { | |||
| type wide-metric; | container te-rid { | |||
| default "10"; | if-feature te-rid; | |||
| description "Metric value."; | description | |||
| } | "Stable ISIS Router IP Address used for Traffic | |||
| description "Interface metric grouping"; | 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"; | ||||
| } | ||||
| description "Grouping for MPLS global parameters."; | ||||
| } | ||||
| grouping metric-parameters { | grouping lsp-parameters { | |||
| container metric-type { | leaf lsp-mtu { | |||
| uses metric-type-global-cfg; | type uint16; | |||
| container level-1 { | units "bytes"; | |||
| uses metric-type-global-cfg; | default 1492; | |||
| description "level-1 specific configuration"; | description | |||
| } | "Maximum size of an LSP PDU in bytes."; | |||
| container level-2 { | } | |||
| uses metric-type-global-cfg; | leaf lsp-lifetime { | |||
| description "level-2 specific configuration"; | type uint16 { | |||
| } | range "1..65535"; | |||
| description "Metric style global configuration"; | } | |||
| } | 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"; | ||||
| container default-metric { | uses admin-control; | |||
| 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."; | ||||
| } | ||||
| } | ||||
| description "Grouping for global metric parameters."; | leaf level-type { | |||
| } | type level; | |||
| default "level-all"; | ||||
| description | ||||
| "Level of an IS-IS node - can be level-1, | ||||
| level-2 or level-all."; | ||||
| } | ||||
| grouping high-availability-parameters { | leaf system-id { | |||
| container graceful-restart { | type system-id; | |||
| if-feature graceful-restart; | description "system-id of the node."; | |||
| 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 authentication-parameters { | leaf maximum-area-addresses { | |||
| container authentication { | if-feature maximum-area-addresses; | |||
| uses authentication-global-cfg; | type uint8; | |||
| default 3; | ||||
| description "Maximum areas supported."; | ||||
| } | ||||
| container level-1 { | leaf-list area-address { | |||
| uses authentication-global-cfg; | type area-address; | |||
| description "level-1 specific configuration"; | description | |||
| } | "List of areas supported by the protocol instance."; | |||
| container level-2 { | } | |||
| uses authentication-global-cfg; | ||||
| description "level-2 specific configuration"; | ||||
| } | ||||
| description "Authentication global configuration for | ||||
| both LSPs and SNPs."; | ||||
| } | ||||
| description "Grouping for authentication parameters"; | ||||
| } | ||||
| 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 mpls-parameters { | ||||
| 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."; | ||||
| } | ||||
| } | ||||
| 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."; | ||||
| } | ||||
| grouping lsp-parameters { | uses lsp-parameters; | |||
| leaf lsp-mtu { | uses high-availability-parameters; | |||
| type uint16; | uses node-tag-config; | |||
| units "bytes"; | uses metric-parameters; | |||
| default 1492; | uses authentication-parameters; | |||
| description | uses address-family-parameters; | |||
| "Maximum size of an LSP PDU in bytes."; | uses mpls-parameters; | |||
| } | uses spf-parameters; | |||
| leaf lsp-lifetime { | uses instance-fast-reroute-config; | |||
| 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"; | ||||
| uses admin-control; | container preference { | |||
| uses route-preference-global-cfg; | ||||
| description "Router preference configuration for IS-IS | ||||
| protocol instance route installation"; | ||||
| } | ||||
| leaf level-type { | container overload { | |||
| type level; | uses overload-global-cfg; | |||
| default "level-all"; | description "Router protocol instance overload state | |||
| description | configuration"; | |||
| "Level of an IS-IS node - can be level-1, | } | |||
| level-2 or level-all."; | ||||
| } | ||||
| leaf system-id { | ||||
| type system-id; | ||||
| description "system-id of the node."; | ||||
| } | ||||
| leaf maximum-area-addresses { | container overload-max-metric { | |||
| if-feature maximum-area-addresses; | if-feature overload-max-metric; | |||
| type uint8; | uses overload-max-metric-global-cfg; | |||
| default 3; | description | |||
| description "Maximum areas supported."; | "Router protocol instance overload maximum | |||
| } | metric advertisement configuration."; | |||
| } | ||||
| } | ||||
| leaf-list area-address { | grouping instance-state { | |||
| type area-address; | description | |||
| description | "IS-IS instance operational state."; | |||
| "List of areas supported by the protocol instance."; | uses spf-log; | |||
| } | uses lsp-log; | |||
| uses hostname-db; | ||||
| uses lsdb; | ||||
| uses local-rib; | ||||
| uses system-counters; | ||||
| uses instance-fast-reroute-state; | ||||
| } | ||||
| uses lsp-parameters; | grouping multi-topology-config { | |||
| uses high-availability-parameters; | description "Per-topology configuration"; | |||
| uses node-tag-config; | container default-metric { | |||
| uses metric-parameters; | uses default-metric-global-cfg; | |||
| uses authentication-parameters; | container level-1 { | |||
| uses address-family-parameters; | uses default-metric-global-cfg; | |||
| uses mpls-parameters; | description "level-1 specific configuration"; | |||
| uses spf-parameters; | } | |||
| uses instance-fast-reroute-config; | container level-2 { | |||
| uses default-metric-global-cfg; | ||||
| description "level-2 specific configuration"; | ||||
| } | ||||
| description "Default metric per-topology configuration"; | ||||
| } | ||||
| uses node-tag-config; | ||||
| } | ||||
| 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; | |||
| grouping instance-state { | type uint64; | |||
| description | description | |||
| "IS-IS instance operational state."; | "List of 64-bit tags associated with the interface."; | |||
| uses spf-log; | } | |||
| uses lsp-log; | leaf node-flag { | |||
| uses hostname-db; | if-feature node-flag; | |||
| uses lsdb; | type boolean; | |||
| uses local-rib; | default false; | |||
| uses system-counters; | description | |||
| uses instance-fast-reroute-state; | "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; | ||||
| reference "RFC YYYY - YANG Data Model for Bidirectional | ||||
| Forwarding Detection (BFD). | ||||
| grouping multi-topology-config { | -- Note to RFC Editor Please replace YYYY with published RFC number | |||
| description "Per-topology configuration"; | for draft-ietf-bfd-yang."; | |||
| 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 per-topology configuration"; | ||||
| } | ||||
| uses node-tag-config; | ||||
| } | ||||
| grouping interface-config { | } | |||
| description "Interface configuration grouping"; | container address-families { | |||
| leaf level-type { | if-feature nlpid-control; | |||
| type level; | list address-family-list { | |||
| default "level-all"; | key address-family; | |||
| description "IS-IS level of the interface."; | leaf address-family { | |||
| } | type iana-rt-types:address-family; | |||
| leaf lsp-pacing-interval { | description "Address-family"; | |||
| type rt-types:timer-value-milliseconds; | } | |||
| units "milliseconds"; | description "List of AFs."; | |||
| default 33; | } | |||
| description | description "Interface address-families"; | |||
| "Interval (in milli-seconds) between LSP | } | |||
| transmissions."; | container mpls { | |||
| } | container ldp { | |||
| leaf lsp-retransmit-interval { | leaf igp-sync { | |||
| type rt-types:timer-value-seconds16; | if-feature ldp-igp-sync; | |||
| units "seconds"; | type boolean; | |||
| description | default false; | |||
| "Interval (in seconds) between LSP | description "Enables IGP/LDP synchronization"; | |||
| retransmissions."; | } | |||
| } | description "LDP protocol related configuration."; | |||
| leaf passive { | } | |||
| type boolean; | description "MPLS configuration for IS-IS interfaces"; | |||
| default "false"; | } | |||
| description | uses interface-fast-reroute-config; | |||
| "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 multi-topology-interface-config { | |||
| leaf-list tag { | description "IS-IS interface topology configuration."; | |||
| if-feature prefix-tag; | container metric { | |||
| type uint32; | uses metric-cfg; | |||
| description | container level-1 { | |||
| "List of tags associated with the interface."; | uses metric-cfg; | |||
| } | description "level-1 specific configuration"; | |||
| leaf-list tag64 { | } | |||
| if-feature prefix-tag64; | container level-2 { | |||
| type uint64; | uses metric-cfg; | |||
| description | description "level-2 specific configuration"; | |||
| "List of 64-bit tags associated with the interface."; | } | |||
| } | description "Metric IS-IS interface configuration."; | |||
| 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; | ||||
| reference "RFC YYYY - YANG Data Model for Bidirectional | } | |||
| Forwarding Detection (BFD). | grouping interface-state { | |||
| description | ||||
| "IS-IS interface operational state."; | ||||
| uses adjacency-state; | ||||
| uses event-counters; | ||||
| uses packet-counters; | ||||
| } | ||||
| draft-ietf-bfd-yang."; | /* Grouping for the hostname database */ | |||
| } | ||||
| 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"; | ||||
| } | ||||
| 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"; | ||||
| } | ||||
| uses interface-fast-reroute-config; | ||||
| } | ||||
| grouping multi-topology-interface-config { | grouping hostname-db { | |||
| description "IS-IS interface topology configuration."; | container hostnames { | |||
| container metric { | config false; | |||
| uses metric-cfg; | list hostname { | |||
| container level-1 { | key system-id; | |||
| uses metric-cfg; | leaf system-id { | |||
| description "level-1 specific configuration"; | type system-id; | |||
| } | description | |||
| container level-2 { | "system-id associated with the hostname."; | |||
| uses metric-cfg; | } | |||
| description "level-2 specific configuration"; | leaf hostname { | |||
| } | type string { | |||
| description "Metric IS-IS interface configuration."; | length "1..255"; | |||
| } | } | |||
| } | description | |||
| grouping interface-state { | "Hostname associated with the system-id | |||
| description | as defined in RFC5301."; | |||
| "IS-IS interface operational state."; | } | |||
| uses adjacency-state; | description | |||
| uses event-counters; | "List of system-id/hostname associations."; | |||
| uses packet-counters; | } | |||
| } | description | |||
| "Hostname to system-id mapping database."; | ||||
| } | ||||
| description | ||||
| "Grouping for hostname to system-id mapping database."; | ||||
| } | ||||
| /* Grouping for the hostname database */ | /* Groupings for counters */ | |||
| grouping hostname-db { | grouping system-counters { | |||
| container hostnames { | container system-counters { | |||
| config false; | config false; | |||
| list hostname { | list level { | |||
| key system-id; | key level; | |||
| leaf system-id { | ||||
| type system-id; | ||||
| description | ||||
| "system-id associated with the hostname."; | ||||
| } | ||||
| leaf hostname { | ||||
| type string { | ||||
| length "1..255"; | ||||
| } | ||||
| description | ||||
| "Hostname associated with the system-id | ||||
| as defined in RFC5301."; | ||||
| } | ||||
| 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 counters */ | leaf level { | |||
| type level-number; | ||||
| description "IS-IS 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."; | ||||
| } | ||||
| grouping system-counters { | grouping event-counters { | |||
| container system-counters { | container event-counters { | |||
| config false; | config false; | |||
| list level { | leaf adjacency-changes { | |||
| key level; | type uint32; | |||
| description | ||||
| "The number of times an adjacency state change has | ||||
| occured on this interface."; | ||||
| } | ||||
| leaf adjacency-number { | ||||
| type uint32; | ||||
| description | ||||
| "The number of adjacencies on this interface."; | ||||
| leaf level { | } | |||
| type level-number; | leaf init-fails { | |||
| description "IS-IS level."; | type uint32; | |||
| } | description | |||
| leaf corrupted-lsps { | "The number of times initialization of this | |||
| type uint32; | interface has failed. This counts events such | |||
| description | as PPP NCP failures. Failures to form an | |||
| "Number of corrupted in-memory LSPs detected. | adjacency are counted by adjacency-rejects."; | |||
| LSPs received from the wire with a bad | } | |||
| checksum are silently dropped and not counted. | leaf adjacency-rejects { | |||
| LSPs received from the wire with parse errors | type uint32; | |||
| are counted by lsp-errors."; | description | |||
| } | "The number of times an adjacency has been | |||
| leaf authentication-type-fails { | rejected on this interface."; | |||
| type uint32; | } | |||
| description | leaf id-len-mismatch { | |||
| type uint32; | ||||
| description | ||||
| "The number of times an IS-IS PDU with an ID | ||||
| field length different from that for this | ||||
| system has been received on this interface."; | ||||
| } | ||||
| leaf max-area-addresses-mismatch { | ||||
| type uint32; | ||||
| description | ||||
| "The number of times an IS-IS PDU has been | ||||
| received on this interface with the | ||||
| max area address field differing from that of | ||||
| this system."; | ||||
| } | ||||
| leaf authentication-type-fails { | ||||
| type uint32; | ||||
| description | ||||
| "Number of authentication type mismatches."; | "Number of authentication type mismatches."; | |||
| } | } | |||
| leaf authentication-fails { | leaf authentication-fails { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Number of authentication key failures."; | "Number of authentication key failures."; | |||
| } | } | |||
| leaf database-overload { | leaf lan-dis-changes { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Number of times the database has become | "The number of times the DIS has changed on this | |||
| overloaded."; | interface at this level. If the interface type is | |||
| } | point-to-point,the count is zero."; | |||
| leaf own-lsp-purge { | } | |||
| type uint32; | description "IS-IS interface event counters."; | |||
| description | ||||
| "Number of times a zero-aged copy of the 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 { | ||||
| container event-counters { | ||||
| config false; | ||||
| leaf adjacency-changes { | ||||
| type uint32; | ||||
| description | ||||
| "The number of times an adjacency state change has | ||||
| occured on this interface."; | ||||
| } | ||||
| leaf adjacency-number { | ||||
| type uint32; | ||||
| description | ||||
| "The number of adjacencies on this interface."; | ||||
| } | ||||
| leaf init-fails { | ||||
| type uint32; | ||||
| description | ||||
| "The number of times initialization of this | ||||
| interface has failed. This counts events such | ||||
| as PPP NCP failures. Failures to form an | ||||
| adjacency are counted by adjacency-rejects."; | ||||
| } | ||||
| leaf adjacency-rejects { | ||||
| type uint32; | ||||
| description | ||||
| "The number of times an adjacency has been | ||||
| rejected on this interface."; | ||||
| } | ||||
| leaf id-len-mismatch { | ||||
| type uint32; | ||||
| description | ||||
| "The number of times an IS-IS PDU with an ID | ||||
| field length different from that for this | ||||
| system has been received on this interface."; | ||||
| } | ||||
| leaf max-area-addresses-mismatch { | ||||
| type uint32; | ||||
| description | ||||
| "The number of times an IS-IS PDU 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"; | ||||
| } | ||||
| grouping packet-counters { | } | |||
| container packet-counters { | description | |||
| config false; | "Grouping for IS-IS interface event counters"; | |||
| list level { | } | |||
| key level; | ||||
| leaf level { | grouping packet-counters { | |||
| type level-number; | container packet-counters { | |||
| description "IS-IS level."; | config false; | |||
| } | list level { | |||
| container iih { | key level; | |||
| leaf in { | ||||
| type uint32; | ||||
| description "Received IIH PDUs."; | ||||
| } | ||||
| leaf out { | ||||
| type uint32; | ||||
| description "Sent IIH PDUs."; | ||||
| } | ||||
| description "Number of IIH PDUs received/sent."; | ||||
| } | ||||
| container ish { | ||||
| leaf in { | ||||
| type uint32; | ||||
| description "Received ISH PDUs."; | ||||
| } | ||||
| leaf out { | ||||
| type uint32; | ||||
| description "Sent ISH PDUs."; | ||||
| } | ||||
| description | ||||
| "ISH PDUs received/sent."; | ||||
| } | ||||
| container esh { | ||||
| leaf in { | ||||
| type uint32; | ||||
| description "Received ESH PDUs."; | ||||
| } | ||||
| leaf out { | ||||
| type uint32; | ||||
| description "Sent ESH PDUs."; | ||||
| } | ||||
| description "Number of ESH PDUs received/sent."; | ||||
| } | ||||
| container lsp { | ||||
| leaf in { | ||||
| type uint32; | ||||
| description "Received LSP PDUs."; | ||||
| } | ||||
| leaf out { | ||||
| type uint32; | ||||
| description "Sent LSP PDUs."; | ||||
| } | ||||
| description "Number of LSP PDUs received/sent."; | ||||
| } | ||||
| container psnp { | ||||
| leaf in { | ||||
| type uint32; | ||||
| description "Received PSNP PDUs."; | ||||
| } | ||||
| leaf out { | ||||
| type uint32; | ||||
| description "Sent PSNP PDUs."; | ||||
| } | ||||
| description "Number of PSNP PDUs received/sent."; | ||||
| } | ||||
| container csnp { | ||||
| leaf in { | ||||
| type uint32; | ||||
| description "Received CSNP PDUs."; | ||||
| } | ||||
| leaf out { | ||||
| type uint32; | ||||
| description "Sent CSNP PDUs."; | ||||
| } | ||||
| description "Number of CSNP PDUs received/sent."; | ||||
| } | ||||
| container unknown { | ||||
| leaf in { | ||||
| type uint32; | ||||
| description "Received unknown PDUs."; | ||||
| } | ||||
| leaf out { | ||||
| type uint32; | ||||
| description "Sent unknown PDUs."; | ||||
| } | ||||
| description "Number of unknown PDUs received/sent."; | ||||
| } | ||||
| description | ||||
| "List of packet counter for supported llevels."; | ||||
| } | ||||
| description "Packet counters per IS-IS level."; | ||||
| } | ||||
| description | ||||
| "Grouping for per IS-IS Level packet counters."; | ||||
| } | ||||
| /* Groupings for various log buffers */ | ||||
| grouping spf-log { | ||||
| container spf-log { | ||||
| config false; | ||||
| list event { | ||||
| key id; | ||||
| leaf id { | leaf level { | |||
| type uint32; | type level-number; | |||
| description | description "IS-IS level."; | |||
| "Event identifier - purely internal value."; | } | |||
| } | container iih { | |||
| leaf spf-type { | leaf in { | |||
| type enumeration { | type uint32; | |||
| enum full { | description "Received IIH PDUs."; | |||
| description "Full SPF computation."; | } | |||
| } | leaf out { | |||
| enum route-only { | type uint32; | |||
| description | description "Sent IIH PDUs."; | |||
| "Route reachability only SPF computation"; | } | |||
| } | description "Number of IIH PDUs received/sent."; | |||
| } | } | |||
| description "Type of SPF computation performed."; | container ish { | |||
| } | leaf in { | |||
| leaf level { | type uint32; | |||
| type level-number; | description "Received ISH PDUs."; | |||
| description | } | |||
| "IS-IS level number for SPF computation"; | leaf out { | |||
| } | type uint32; | |||
| leaf schedule-timestamp { | description "Sent ISH PDUs."; | |||
| type yang:timestamp; | } | |||
| description | description | |||
| "Timestamp of when the SPF computation was | "ISH PDUs received/sent."; | |||
| scheduled."; | } | |||
| } | container esh { | |||
| leaf start-timestamp { | leaf in { | |||
| type yang:timestamp; | type uint32; | |||
| description | description "Received ESH PDUs."; | |||
| "Timestamp of when the SPF computation started."; | } | |||
| } | leaf out { | |||
| leaf end-timestamp { | type uint32; | |||
| type yang:timestamp; | description "Sent ESH PDUs."; | |||
| description | } | |||
| "Timestamp of when the SPF computation ended."; | description "Number of ESH PDUs received/sent."; | |||
| } | ||||
| list trigger-lsp { | ||||
| key "lsp"; | ||||
| leaf lsp { | ||||
| type lsp-id; | ||||
| description | ||||
| "LSP ID 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 | } | |||
| "This container lists the SPF computation events."; | container lsp { | |||
| } | leaf in { | |||
| description "Grouping for spf-log events."; | type uint32; | |||
| } | description "Received LSP PDUs."; | |||
| } | ||||
| leaf out { | ||||
| type uint32; | ||||
| description "Sent LSP PDUs."; | ||||
| } | ||||
| description "Number of LSP PDUs received/sent."; | ||||
| } | ||||
| container psnp { | ||||
| leaf in { | ||||
| type uint32; | ||||
| description "Received PSNP PDUs."; | ||||
| } | ||||
| leaf out { | ||||
| type uint32; | ||||
| description "Sent PSNP PDUs."; | ||||
| } | ||||
| description "Number of PSNP PDUs received/sent."; | ||||
| } | ||||
| container csnp { | ||||
| leaf in { | ||||
| type uint32; | ||||
| description "Received CSNP PDUs."; | ||||
| } | ||||
| leaf out { | ||||
| type uint32; | ||||
| description "Sent CSNP PDUs."; | ||||
| } | ||||
| description "Number of CSNP PDUs received/sent."; | ||||
| } | ||||
| container unknown { | ||||
| leaf in { | ||||
| type uint32; | ||||
| description "Received unknown PDUs."; | ||||
| } | ||||
| leaf out { | ||||
| type uint32; | ||||
| description "Sent unknown PDUs."; | ||||
| } | ||||
| description "Number of unknown PDUs received/sent."; | ||||
| } | ||||
| description | ||||
| "List of packet counter for supported llevels."; | ||||
| } | ||||
| description "Packet counters per IS-IS level."; | ||||
| } | ||||
| description | ||||
| "Grouping for per IS-IS Level packet counters."; | ||||
| } | ||||
| grouping lsp-log { | /* Groupings for various log buffers */ | |||
| container lsp-log { | grouping spf-log { | |||
| config false; | container spf-log { | |||
| list event { | config false; | |||
| key id; | list event { | |||
| key id; | ||||
| leaf id { | leaf id { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Event identifier - purely internal value."; | "Event identifier - purely internal value."; | |||
| } | } | |||
| leaf level { | leaf spf-type { | |||
| type level-number; | type enumeration { | |||
| description | enum full { | |||
| "IS-IS level number for LSP"; | description "Full SPF computation."; | |||
| } | } | |||
| container lsp { | enum route-only { | |||
| leaf lsp { | description | |||
| type lsp-id; | "Route reachability only SPF computation"; | |||
| description | } | |||
| "LSP ID of the LSP."; | } | |||
| } | description "Type of SPF computation performed."; | |||
| leaf sequence { | } | |||
| type uint32; | leaf level { | |||
| description | type level-number; | |||
| "Sequence number of the LSP."; | description | |||
| } | "IS-IS level number for SPF computation"; | |||
| description | } | |||
| "LSP identification container - either the received | leaf schedule-timestamp { | |||
| LSP or the locally generated LSP."; | 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 | ||||
| "LSP ID 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."; | ||||
| } | ||||
| leaf received-timestamp { | description | |||
| type yang:timestamp; | "This container lists the SPF computation events."; | |||
| description | } | |||
| "This is the timestamp when the LSA was received. | description "Grouping for spf-log events."; | |||
| In case of local LSA update, the timestamp refers | } | |||
| to the LSA origination time."; | ||||
| } | ||||
| leaf reason { | grouping lsp-log { | |||
| type identityref { | container lsp-log { | |||
| base lsp-log-reason; | config false; | |||
| } | list event { | |||
| description "Type of LSP change."; | key id; | |||
| } | ||||
| description | leaf id { | |||
| "List of LSP events - implemented as a | type uint32; | |||
| wrapping buffer."; | description | |||
| } | "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 | ||||
| "LSP ID 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."; | ||||
| } | ||||
| description | leaf received-timestamp { | |||
| "This container lists the LSP log. | type yang:timestamp; | |||
| Local LSP modifications are also included | description | |||
| in the list."; | "This is the timestamp when the LSA was received. | |||
| In case of local LSA update, the timestamp refers | ||||
| to the LSA origination time."; | ||||
| } | ||||
| } description "Grouping for LSP log."; | leaf reason { | |||
| } | type identityref { | |||
| base lsp-log-reason; | ||||
| } | ||||
| description "Type of LSP change."; | ||||
| } | ||||
| /* Groupings for the LSDB description */ | description | |||
| "List of LSP events - implemented as a | ||||
| wrapping buffer."; | ||||
| } | ||||
| /* Unknown TLV and subTLV description */ | description | |||
| grouping tlv { | "This container lists the LSP log. | |||
| description | Local LSP modifications are also included | |||
| "Type-Length-Value (TLV)"; | in the list."; | |||
| leaf type { | ||||
| type uint16; | ||||
| description "TLV type."; | ||||
| } | } description "Grouping for LSP log."; | |||
| leaf length { | } | |||
| type uint16; | ||||
| description "TLV length (octets)."; | ||||
| } | ||||
| leaf value { | ||||
| type yang:hex-string; | ||||
| description "TLV value."; | ||||
| } | ||||
| } | ||||
| grouping unknown-tlvs { | /* Groupings for the LSDB description */ | |||
| description | ||||
| "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; | ||||
| } | ||||
| } | ||||
| } | ||||
| /* TLVs and subTLVs for prefixes */ | /* Unknown TLV and subTLV description */ | |||
| grouping tlv { | ||||
| 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."; | ||||
| } | ||||
| } | ||||
| grouping prefix-reachability-attributes { | grouping unknown-tlvs { | |||
| description | description | |||
| "Grouping for extended reachability attributes of an | "Unknown TLVs grouping - Used for unknown TLVs or | |||
| IPv4 or IPv6 prefix."; | unknown sub-TLVs."; | |||
| container unknown-tlvs { | ||||
| description "All unknown TLVs."; | ||||
| list unknown-tlv { | ||||
| description "Unknown TLV."; | ||||
| uses tlv; | ||||
| } | ||||
| } | ||||
| } | ||||
| leaf external-prefix-flag { | /* TLVs and subTLVs for prefixes */ | |||
| type boolean; | ||||
| description "External prefix flag."; | ||||
| } | ||||
| leaf readvertisement-flag { | ||||
| type boolean; | ||||
| description "Readvertisement flag."; | ||||
| } | ||||
| leaf node-flag { | ||||
| type boolean; | ||||
| description "Node flag."; | ||||
| } | ||||
| } | ||||
| grouping prefix-ipv4-source-router-id { | grouping prefix-reachability-attributes { | |||
| description | description | |||
| "Grouping for the IPv4 source router ID of a prefix | "Grouping for extended reachability attributes of an | |||
| advertisement."; | IPv4 or IPv6 prefix."; | |||
| leaf ipv4-source-router-id { | leaf external-prefix-flag { | |||
| type inet:ipv4-address; | type boolean; | |||
| description "IPv4 Source router ID address."; | description "External prefix flag."; | |||
| } | } | |||
| } | leaf readvertisement-flag { | |||
| type boolean; | ||||
| description "Readvertisement flag."; | ||||
| } | ||||
| leaf node-flag { | ||||
| type boolean; | ||||
| description "Node flag."; | ||||
| grouping prefix-ipv6-source-router-id { | } | |||
| description | } | |||
| "Grouping for the IPv6 source router ID of a prefix | ||||
| advertisement."; | ||||
| leaf ipv6-source-router-id { | grouping prefix-ipv4-source-router-id { | |||
| type inet:ipv6-address; | description | |||
| description "IPv6 Source router ID address."; | "Grouping for the IPv4 source router ID of a prefix | |||
| } | advertisement."; | |||
| } | ||||
| grouping prefix-attributes-extension { | leaf ipv4-source-router-id { | |||
| description "Prefix extended attributes | type inet:ipv4-address; | |||
| as defined in RFC7794."; | description "IPv4 Source router ID address."; | |||
| } | ||||
| } | ||||
| uses prefix-reachability-attributes; | grouping prefix-ipv6-source-router-id { | |||
| uses prefix-ipv4-source-router-id; | description | |||
| uses prefix-ipv6-source-router-id; | "Grouping for the IPv6 source router ID of a prefix | |||
| } | advertisement."; | |||
| grouping prefix-ipv4-std { | leaf ipv6-source-router-id { | |||
| description | type inet:ipv6-address; | |||
| "Grouping for attributes of an IPv4 standard prefix | description "IPv6 Source router ID address."; | |||
| as defined in RFC1195."; | } | |||
| leaf ip-prefix { | } | |||
| type inet:ipv4-address; | ||||
| description "IPv4 prefix address"; | ||||
| } | ||||
| leaf prefix-len { | ||||
| type uint8; | ||||
| description "IPv4 prefix length (in bits)"; | ||||
| } | ||||
| leaf i-e { | ||||
| type boolean; | ||||
| description "Internal or External (I/E) Metric bit value."; | ||||
| } | ||||
| container default-metric { | ||||
| leaf metric { | ||||
| type std-metric; | ||||
| description "Default IS-IS metric for IPv4 prefix"; | ||||
| } | grouping prefix-attributes-extension { | |||
| description "IS-IS default metric container."; | description "Prefix extended attributes | |||
| } | as defined in RFC7794."; | |||
| 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 { | uses prefix-reachability-attributes; | |||
| description | uses prefix-ipv4-source-router-id; | |||
| "Grouping for attributes of an IPv4 extended prefix | uses prefix-ipv6-source-router-id; | |||
| as defined in RFC5305."; | } | |||
| leaf up-down { | grouping prefix-ipv4-std { | |||
| type boolean; | description | |||
| description "Value of up/down bit."; | "Grouping for attributes of an IPv4 standard prefix | |||
| } | as defined in RFC1195."; | |||
| leaf ip-prefix { | leaf ip-prefix { | |||
| type inet:ipv4-address; | type inet:ipv4-address; | |||
| description "IPv4 prefix address"; | description "IPv4 prefix address"; | |||
| } | } | |||
| leaf prefix-len { | leaf prefix-len { | |||
| type uint8; | type uint8; | |||
| description "IPv4 prefix length (in bits)"; | description "IPv4 prefix length (in bits)"; | |||
| } | } | |||
| leaf metric { | leaf i-e { | |||
| type wide-metric; | type boolean; | |||
| description "IS-IS wide metric value"; | description "Internal or External (I/E) Metric bit value."; | |||
| } | } | |||
| leaf-list tag { | container default-metric { | |||
| type uint32; | leaf metric { | |||
| description | type std-metric; | |||
| "List of 32-bit tags associated with the IPv4 prefix."; | description "Default IS-IS metric for IPv4 prefix"; | |||
| } | } | |||
| leaf-list tag64 { | description "IS-IS default metric container."; | |||
| type uint64; | } | |||
| description | container delay-metric { | |||
| "List of 32-bit tags associated with the IPv4 prefix."; | leaf metric { | |||
| } | type std-metric; | |||
| uses prefix-attributes-extension; | 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-ipv6-extended { | } | |||
| description "Grouping for attributes of an IPv6 prefix | ||||
| as defined in RFC5308."; | ||||
| 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; | ||||
| } | ||||
| /* TLVs and subTLVs for neighbors */ | grouping prefix-ipv4-extended { | |||
| description | ||||
| "Grouping for attributes of an IPv4 extended prefix | ||||
| as defined in RFC5305."; | ||||
| leaf up-down { | ||||
| type boolean; | ||||
| description "Value of up/down bit."; | ||||
| } | ||||
| leaf ip-prefix { | ||||
| type inet:ipv4-address; | ||||
| description "IPv4 prefix address"; | ||||
| } | ||||
| leaf prefix-len { | ||||
| type uint8; | ||||
| description "IPv4 prefix length (in bits)"; | ||||
| } | ||||
| 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-link-attributes { | grouping prefix-ipv6-extended { | |||
| description | description "Grouping for attributes of an IPv6 prefix | |||
| "Grouping for link attributes as defined | as defined in RFC5308."; | |||
| in RFC5029"; | leaf up-down { | |||
| leaf link-attributes-flags { | type boolean; | |||
| type uint16; | description "Value of up/down bit."; | |||
| description | } | |||
| "Flags for the link attributes"; | leaf ip-prefix { | |||
| } | type inet:ipv6-address; | |||
| } | description "IPv6 prefix address"; | |||
| grouping neighbor-gmpls-extensions { | } | |||
| description | leaf prefix-len { | |||
| "Grouping for GMPLS attributes of a neighbor as defined | type uint8; | |||
| in RFC5307"; | description "IPv4 prefix length (in bits)"; | |||
| leaf link-local-id { | } | |||
| type uint32; | leaf metric { | |||
| description | type wide-metric; | |||
| "Local identifier of the link."; | description "IS-IS wide metric value"; | |||
| } | } | |||
| leaf remote-local-id { | leaf-list tag { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Remote identifier of the link."; | "List of 32-bit tags associated with the IPv4 prefix."; | |||
| } | } | |||
| leaf protection-capability { | leaf-list tag64 { | |||
| type uint8; | type uint64; | |||
| description | description | |||
| "Describes the protection capabilities | "List of 32-bit tags associated with the IPv4 prefix."; | |||
| of the link. This is the value of the | } | |||
| first octet of the sub-TLV type 20 value."; | uses prefix-attributes-extension; | |||
| } | } | |||
| 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."; | ||||
| leaf minimum-lsp-bandwidth { | /* TLVs and subTLVs for neighbors */ | |||
| type rt-types:bandwidth-ieee-float32; | ||||
| description "minimum LSP bandwidth."; | ||||
| } | ||||
| leaf indication { | ||||
| type uint8; | ||||
| description | ||||
| "The indication whether the interface supports Standard | ||||
| or Arbitrary SONET/SDH."; | ||||
| } | ||||
| } | ||||
| container psc-specific { | ||||
| when "../switching-capability >= 1 and | ||||
| ../switching-capability <= 4"; | grouping neighbor-link-attributes { | |||
| description | description | |||
| "Switching Capability-specific information applicable | "Grouping for link attributes as defined | |||
| when switching type is PSC1,PSC2,PSC3 or PSC4."; | in RFC5029"; | |||
| leaf link-attributes-flags { | ||||
| type uint16; | ||||
| description | ||||
| "Flags for the link attributes"; | ||||
| } | ||||
| } | ||||
| 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."; | ||||
| leaf minimum-lsp-bandwidth { | leaf minimum-lsp-bandwidth { | |||
| type rt-types:bandwidth-ieee-float32; | type rt-types:bandwidth-ieee-float32; | |||
| description "minimum LSP bandwidth."; | description "minimum LSP bandwidth."; | |||
| } | } | |||
| leaf mtu { | leaf indication { | |||
| type uint16; | type uint8; | |||
| units bytes; | description | |||
| description | "The indication whether the interface supports Standard | |||
| "Interface MTU"; | or Arbitrary SONET/SDH."; | |||
| } | } | |||
| } | } | |||
| } | container psc-specific { | |||
| } | when "../switching-capability >= 1 and | |||
| ../switching-capability <= 4"; | ||||
| description | ||||
| "Switching Capability-specific information applicable | ||||
| when switching type is PSC1,PSC2,PSC3 or PSC4."; | ||||
| grouping neighbor-extended-te-extensions { | leaf minimum-lsp-bandwidth { | |||
| description | type rt-types:bandwidth-ieee-float32; | |||
| "Grouping for TE attributes of a neighbor as defined | description "minimum LSP bandwidth."; | |||
| in RFC7810"; | } | |||
| leaf mtu { | ||||
| type uint16; | ||||
| units bytes; | ||||
| description | ||||
| "Interface MTU"; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| container unidirectional-link-delay { | grouping neighbor-extended-te-extensions { | |||
| description | description | |||
| "Container for the average delay | "Grouping for TE attributes of a neighbor as defined | |||
| from the local neighbor to the remote one."; | in RFC7810"; | |||
| 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 value { | ||||
| type uint32; | ||||
| units percent; | ||||
| description | ||||
| "Link packet loss expressed as a percentage | ||||
| of the total traffic sent over a configurable interval."; | ||||
| } | ||||
| } | ||||
| 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 { | container unidirectional-link-delay { | |||
| type rt-types:bandwidth-ieee-float32; | description | |||
| units Bps; | "Container for the average delay | |||
| description | from the local neighbor to the remote one."; | |||
| "Available bandwidth."; | leaf flags { | |||
| } | type bits { | |||
| } | bit A { | |||
| container unidirectional-link-utilized-bandwidth { | position 7; | |||
| description | description | |||
| "Container for the utilized bandwidth | "The A bit represents the Anomalous (A) bit. | |||
| from the local neighbor to the remote one."; | The A bit is set when the measured value of | |||
| leaf value { | this parameter exceeds its configured | |||
| type rt-types:bandwidth-ieee-float32; | maximum threshold. | |||
| units Bps; | The A bit is cleared when the measured value | |||
| description | falls below its configured reuse threshold. | |||
| "Utilized bandwidth."; | If the A bit is clear, | |||
| } | the value represents steady-state link performance."; | |||
| } | } | |||
| } | ||||
| grouping neighbor-te-extensions { | } | |||
| description | description | |||
| "Grouping for TE attributes of a neighbor as defined | "Flags."; | |||
| in RFC5305"; | } | |||
| leaf admin-group { | leaf value { | |||
| type uint32; | type uint32; | |||
| description | units usec; | |||
| "Administrative group/Resource Class/Color."; | description | |||
| } | "Delay value expressed in microseconds."; | |||
| container local-if-ipv4-addrs { | } | |||
| description "All local interface IPv4 addresses."; | } | |||
| leaf-list local-if-ipv4-addr { | container min-max-unidirectional-link-delay { | |||
| type inet:ipv4-address; | description | |||
| description | "Container for the min and max delay | |||
| "List of local interface IPv4 addresses."; | from the local neighbor to the remote one."; | |||
| } | leaf flags { | |||
| } | type bits { | |||
| container remote-if-ipv4-addrs { | bit A { | |||
| description "All remote interface IPv4 addresses."; | position 7; | |||
| leaf-list remote-if-ipv4-addr { | description | |||
| type inet:ipv4-address; | "The A bit represents the Anomalous (A) bit. | |||
| description | The A bit is set when the measured value of | |||
| "List of remote interface IPv4 addresses."; | this parameter exceeds its configured | |||
| } | maximum threshold. | |||
| } | The A bit is cleared when the measured value | |||
| leaf te-metric { | falls below its configured reuse threshold. | |||
| type uint32; | If the A bit is clear, | |||
| description "TE metric."; | 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 value { | ||||
| type uint32; | ||||
| units percent; | ||||
| description | ||||
| "Link packet loss expressed as a percentage | ||||
| of the total traffic sent over a configurable interval."; | ||||
| } | ||||
| } | ||||
| 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."; | ||||
| } | } | |||
| leaf max-bandwidth { | } | |||
| type rt-types:bandwidth-ieee-float32; | container unidirectional-link-available-bandwidth { | |||
| description "Maximum bandwidth."; | description | |||
| } | "Container for the available bandwidth | |||
| leaf max-reservable-bandwidth { | from the local neighbor to the remote one."; | |||
| type rt-types:bandwidth-ieee-float32; | leaf value { | |||
| description "Maximum reservable bandwidth."; | type rt-types:bandwidth-ieee-float32; | |||
| } | units Bps; | |||
| container unreserved-bandwidths { | description | |||
| description "All unreserved bandwidths."; | "Available bandwidth."; | |||
| list unreserved-bandwidth { | } | |||
| leaf priority { | } | |||
| type uint8 { | container unidirectional-link-utilized-bandwidth { | |||
| range "0 .. 7"; | description | |||
| } | "Container for the utilized bandwidth | |||
| description "Priority from 0 to 7."; | from the local neighbor to the remote one."; | |||
| } | leaf value { | |||
| leaf unreserved-bandwidth { | type rt-types:bandwidth-ieee-float32; | |||
| type rt-types:bandwidth-ieee-float32; | units Bps; | |||
| description "Unreserved bandwidth."; | description | |||
| } | "Utilized bandwidth."; | |||
| description | } | |||
| "List of unreserved bandwidths for different | } | |||
| priorities."; | } | |||
| } | ||||
| } | ||||
| } | ||||
| grouping neighbor-extended { | grouping neighbor-te-extensions { | |||
| description | description | |||
| "Grouping for attributes of an IS-IS extended neighbor."; | "Grouping for TE attributes of a neighbor as defined | |||
| leaf neighbor-id { | in RFC5305"; | |||
| type extended-system-id; | leaf admin-group { | |||
| description "system-id of the extended neighbor."; | type uint32; | |||
| } | description | |||
| container instances { | "Administrative group/Resource Class/Color."; | |||
| description "List of all adjacencies between the local | } | |||
| system and the neighbor system-id."; | container local-if-ipv4-addrs { | |||
| list instance { | description "All local interface IPv4 addresses."; | |||
| key id; | 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 id { | grouping neighbor-extended { | |||
| type uint32; | description | |||
| description "Unique identifier of an instance of a | "Grouping for attributes of an IS-IS extended neighbor."; | |||
| particular neighbor."; | leaf neighbor-id { | |||
| } | type extended-system-id; | |||
| leaf metric { | description "system-id of the extended neighbor."; | |||
| type wide-metric; | } | |||
| description "IS-IS wide metric for extended neighbor"; | container instances { | |||
| } | description "List of all adjacencies between the local | |||
| uses neighbor-gmpls-extensions; | system and the neighbor system-id."; | |||
| uses neighbor-te-extensions; | list instance { | |||
| uses neighbor-extended-te-extensions; | key id; | |||
| uses neighbor-link-attributes; | leaf id { | |||
| uses unknown-tlvs; | type uint32; | |||
| description "Instance of a particular adjacency."; | description "Unique identifier of an instance of a | |||
| } | particular neighbor."; | |||
| } | } | |||
| } | leaf metric { | |||
| type wide-metric; | ||||
| description "IS-IS wide metric for extended neighbor"; | ||||
| } | ||||
| uses neighbor-gmpls-extensions; | ||||
| uses neighbor-te-extensions; | ||||
| uses neighbor-extended-te-extensions; | ||||
| uses neighbor-link-attributes; | ||||
| uses unknown-tlvs; | ||||
| description "Instance of a particular adjacency."; | ||||
| } | ||||
| } | ||||
| } | ||||
| grouping neighbor { | grouping neighbor { | |||
| description "IS-IS standard neighbor grouping."; | description "IS-IS standard neighbor grouping."; | |||
| leaf neighbor-id { | leaf neighbor-id { | |||
| type extended-system-id; | type extended-system-id; | |||
| description "IS-IS neighbor system-id"; | description "IS-IS neighbor system-id"; | |||
| } | } | |||
| container instances { | container instances { | |||
| description "List of all adjacencies between the local | description "List of all adjacencies between the local | |||
| system and the neighbor system-id."; | system and the neighbor system-id."; | |||
| list instance { | list instance { | |||
| key id; | key id; | |||
| leaf id { | leaf id { | |||
| type uint32; | type uint32; | |||
| description "Unique identifier of an instance of a | description "Unique identifier of an instance of a | |||
| particular neighbor."; | particular neighbor."; | |||
| } | } | |||
| leaf i-e { | leaf i-e { | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "Internal or External (I/E) Metric bit value"; | "Internal or External (I/E) Metric bit value"; | |||
| } | } | |||
| container default-metric { | container default-metric { | |||
| leaf metric { | leaf metric { | |||
| type std-metric; | type std-metric; | |||
| description "IS-IS default metric value"; | description "IS-IS default metric value"; | |||
| } | } | |||
| description "IS-IS default metric container"; | description "IS-IS default metric container"; | |||
| } | } | |||
| container delay-metric { | container delay-metric { | |||
| leaf metric { | leaf metric { | |||
| type std-metric; | type std-metric; | |||
| description "IS-IS delay metric value"; | description "IS-IS delay metric value"; | |||
| } | } | |||
| leaf supported { | leaf supported { | |||
| type boolean; | type boolean; | |||
| default "false"; | default "false"; | |||
| description "IS-IS delay metric supported"; | description "IS-IS delay metric supported"; | |||
| } | } | |||
| description "IS-IS delay metric container"; | description "IS-IS delay metric container"; | |||
| } | } | |||
| container expense-metric { | container expense-metric { | |||
| leaf metric { | leaf metric { | |||
| type std-metric; | type std-metric; | |||
| description "IS-IS delay expense metric value"; | description "IS-IS delay expense metric value"; | |||
| } | } | |||
| leaf supported { | leaf supported { | |||
| type boolean; | type boolean; | |||
| default "false"; | default "false"; | |||
| description "IS-IS delay expense metric supported"; | description "IS-IS delay expense metric supported"; | |||
| } | } | |||
| description "IS-IS delay expense metric container"; | description "IS-IS delay expense metric container"; | |||
| } | } | |||
| container error-metric { | container error-metric { | |||
| leaf metric { | leaf metric { | |||
| type std-metric; | type std-metric; | |||
| description "IS-IS error metric value"; | description "IS-IS error metric value"; | |||
| } | } | |||
| leaf supported { | leaf supported { | |||
| type boolean; | type boolean; | |||
| default "false"; | default "false"; | |||
| description "IS-IS error metric supported"; | description "IS-IS error metric supported"; | |||
| } | } | |||
| description "IS-IS error metric container"; | description "IS-IS error metric container"; | |||
| } | } | |||
| description "Instance of a particular adjacency | description "Instance of a particular adjacency | |||
| as defined in ISO10589."; | as defined in ISO10589."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| /* Top level TLVs */ | /* Top level TLVs */ | |||
| grouping tlv132-ipv4-addresses { | grouping tlv132-ipv4-addresses { | |||
| leaf-list ipv4-addresses { | leaf-list ipv4-addresses { | |||
| type inet:ipv4-address; | type inet:ipv4-address; | |||
| description | description | |||
| "List of IPv4 addresses of the IS-IS node - IS-IS | "List of IPv4 addresses of the IS-IS node - IS-IS | |||
| reference is TLV 132."; | reference is TLV 132."; | |||
| } | } | |||
| description "Grouping for TLV132."; | description "Grouping for TLV132."; | |||
| } | } | |||
| grouping tlv232-ipv6-addresses { | grouping tlv232-ipv6-addresses { | |||
| leaf-list ipv6-addresses { | leaf-list ipv6-addresses { | |||
| type inet:ipv6-address; | type inet:ipv6-address; | |||
| description | description | |||
| "List of IPv6 addresses of the IS-IS node - IS-IS | "List of IPv6 addresses of the IS-IS node - IS-IS | |||
| reference is TLV 232."; | reference is TLV 232."; | |||
| } | } | |||
| description "Grouping for TLV232."; | description "Grouping for TLV232."; | |||
| } | } | |||
| grouping tlv134-ipv4-te-rid { | grouping tlv134-ipv4-te-rid { | |||
| leaf ipv4-te-routerid { | leaf ipv4-te-routerid { | |||
| type inet:ipv4-address; | type inet:ipv4-address; | |||
| description | description | |||
| "IPv4 Traffic Engineering router ID of the IS-IS node - | "IPv4 Traffic Engineering router ID of the IS-IS node - | |||
| IS-IS reference is TLV 134."; | IS-IS reference is TLV 134."; | |||
| } | } | |||
| description "Grouping for TLV134."; | description "Grouping for TLV134."; | |||
| } | } | |||
| grouping tlv140-ipv6-te-rid { | grouping tlv140-ipv6-te-rid { | |||
| leaf ipv6-te-routerid { | leaf ipv6-te-routerid { | |||
| type inet:ipv6-address; | type inet:ipv6-address; | |||
| description | description | |||
| "IPv6 Traffic Engineering router ID of the IS-IS node - | "IPv6 Traffic Engineering router ID of the IS-IS node - | |||
| IS-IS reference is TLV 140."; | IS-IS reference is TLV 140."; | |||
| } | } | |||
| description "Grouping for TLV140."; | description "Grouping for TLV140."; | |||
| } | } | |||
| grouping tlv129-protocols { | grouping tlv129-protocols { | |||
| leaf-list protocol-supported { | leaf-list protocol-supported { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "List of supported protocols of the IS-IS node - | "List of supported protocols of the IS-IS node - | |||
| IS-IS reference is TLV 129."; | IS-IS reference is TLV 129."; | |||
| } | } | |||
| description "Grouping for TLV129."; | description "Grouping for TLV129."; | |||
| } | } | |||
| grouping tlv137-hostname { | grouping tlv137-hostname { | |||
| leaf dynamic-hostname { | leaf dynamic-hostname { | |||
| type string; | type string; | |||
| description | description | |||
| "Host Name of the IS-IS node - IS-IS reference | "Host Name of the IS-IS node - IS-IS reference | |||
| is TLV 137."; | is TLV 137."; | |||
| } | } | |||
| description "Grouping for TLV137."; | description "Grouping for TLV137."; | |||
| } | } | |||
| grouping tlv10-authentication { | grouping tlv10-authentication { | |||
| container authentication { | container authentication { | |||
| leaf authentication-type { | leaf authentication-type { | |||
| type identityref { | type identityref { | |||
| base key-chain:crypto-algorithm; | base key-chain:crypto-algorithm; | |||
| } | } | |||
| description | description | |||
| "Authentication type to be used with IS-IS node."; | "Authentication type to be used with IS-IS node."; | |||
| } | } | |||
| leaf authentication-key { | leaf authentication-key { | |||
| type string; | type string; | |||
| description | description | |||
| "Authentication key to be used. For security reasons, | "Authentication key to be used. For security reasons, | |||
| the authentication key MUST NOT be presented in | the authentication key MUST NOT be presented in | |||
| a clear text format in response to any request | a clear text format in response to any request | |||
| (e.g., via get, get-config)."; | (e.g., via get, get-config)."; | |||
| } | } | |||
| description | description | |||
| "IS-IS node authentication information container - | "IS-IS node authentication information container - | |||
| IS-IS reference is TLV 10."; | IS-IS reference is TLV 10."; | |||
| } | } | |||
| description "Grouping for TLV10."; | description "Grouping for TLV10."; | |||
| } | } | |||
| grouping tlv229-mt { | grouping tlv229-mt { | |||
| container mt-entries { | container mt-entries { | |||
| list topology { | list topology { | |||
| description | description | |||
| "List of topologies supported"; | "List of topologies supported"; | |||
| leaf mt-id { | leaf mt-id { | |||
| type uint16 { | type uint16 { | |||
| range "0 .. 4095"; | range "0 .. 4095"; | |||
| } | } | |||
| description | description | |||
| "Multi-Topology identifier of topology."; | "Multi-Topology identifier of topology."; | |||
| } | } | |||
| leaf attributes { | leaf attributes { | |||
| type bits { | type bits { | |||
| bit overload { | bit overload { | |||
| description | description | |||
| "If set, the originator is overloaded, | "If set, the originator is overloaded, | |||
| and must be avoided in path calculation."; | and must be avoided in path calculation."; | |||
| } | } | |||
| bit attached { | bit attached { | |||
| description | description | |||
| "If set, the originator is attached to | "If set, the originator is attached to | |||
| another area using the referred metric."; | another area using the referred metric."; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "Attributes of the LSP for the associated | "Attributes of the LSP for the associated | |||
| topology."; | topology."; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "IS-IS node topology information container - | "IS-IS node topology information container - | |||
| IS-IS reference is TLV 229."; | IS-IS reference is TLV 229."; | |||
| } | } | |||
| description "Grouping for TLV229."; | description "Grouping for TLV229."; | |||
| } | } | |||
| grouping tlv242-router-capabilities { | grouping tlv242-router-capabilities { | |||
| container router-capabilities { | container router-capabilities { | |||
| list router-capability { | list router-capability { | |||
| leaf flags { | leaf flags { | |||
| type bits { | type bits { | |||
| bit flooding { | bit flooding { | |||
| position 0; | position 0; | |||
| description | description | |||
| "If the S bit is set, the IS-IS Router CAPABILITY | "If the S bit is set, the IS-IS Router CAPABILITY | |||
| TLV MUST be flooded across the entire routing | TLV MUST be flooded across the entire routing | |||
| domain. If the S bit is clear, the TLV MUST NOT | domain. If the S bit is clear, the TLV MUST NOT | |||
| be leaked between levels. This bit MUST NOT | be leaked between levels. This bit MUST NOT | |||
| be altered during the TLV leaking."; | be altered during the TLV leaking."; | |||
| } | } | |||
| bit down { | bit down { | |||
| position 1; | position 1; | |||
| description | description | |||
| "When the IS-IS Router CAPABILITY TLV is leaked | "When the IS-IS Router CAPABILITY TLV is leaked | |||
| from level-2 to level-1, the D bit MUST be set. | from level-2 to level-1, the D bit MUST be set. | |||
| Otherwise, this bit MUST be clear. IS-IS Router | Otherwise, this bit MUST be clear. IS-IS Router | |||
| capability TLVs with the D bit set MUST NOT be | capability TLVs with the D bit set MUST NOT be | |||
| leaked from level-1 to level-2 in to prevent | leaked from level-1 to level-2 in to prevent | |||
| TLV looping."; | TLV looping."; | |||
| } | } | |||
| } | } | |||
| description "Router Capability Flags"; | description "Router Capability Flags"; | |||
| } | } | |||
| container node-tags { | container node-tags { | |||
| if-feature node-tag; | if-feature node-tag; | |||
| list node-tag { | list node-tag { | |||
| leaf tag { | leaf tag { | |||
| type uint32; | type uint32; | |||
| description "Node tag value."; | description "Node tag value."; | |||
| } | } | |||
| description "List of tags."; | description "List of tags."; | |||
| } | } | |||
| description "Container for node admin tags"; | description "Container for node admin tags"; | |||
| } | } | |||
| uses unknown-tlvs; | ||||
| leaf binary { | uses unknown-tlvs; | |||
| type binary; | ||||
| description | ||||
| "Binary encoding of the IS-IS node capabilities"; | ||||
| } | ||||
| description | ||||
| "IS-IS node capabilities. This list element may | ||||
| be extended with detailed information - IS-IS | ||||
| reference is TLV 242."; | ||||
| } | ||||
| description "List of router capability TLVs."; | ||||
| } | ||||
| description "Grouping for TLV242."; | ||||
| } | ||||
| grouping tlv138-srlg { | leaf binary { | |||
| description | type binary; | |||
| "Grouping for TLV138."; | description | |||
| container links-srlgs { | "Binary encoding of the IS-IS node capabilities"; | |||
| list links { | } | |||
| leaf neighbor-id { | description | |||
| type extended-system-id; | "IS-IS node capabilities. This list element may | |||
| description "system-id of the extended neighbor."; | be extended with detailed information - IS-IS | |||
| } | reference is TLV 242."; | |||
| leaf flags { | } | |||
| type uint8; | description "List of router capability TLVs."; | |||
| description | } | |||
| "Flags associated with the link."; | description "Grouping for TLV242."; | |||
| } | } | |||
| leaf link-local-id { | ||||
| type union { | ||||
| type inet:ip-address; | ||||
| type uint32; | ||||
| } | ||||
| description | ||||
| "Local identifier of the link. | ||||
| It could be an IPv4 address or a local identifier."; | ||||
| } | ||||
| 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 */ | grouping tlv138-srlg { | |||
| description | ||||
| "Grouping for TLV138."; | ||||
| container links-srlgs { | ||||
| list links { | ||||
| leaf neighbor-id { | ||||
| type extended-system-id; | ||||
| description "system-id of the extended neighbor."; | ||||
| } | ||||
| leaf flags { | ||||
| type uint8; | ||||
| description | ||||
| "Flags associated with the link."; | ||||
| } | ||||
| leaf link-local-id { | ||||
| type union { | ||||
| type inet:ip-address; | ||||
| type uint32; | ||||
| } | ||||
| description | ||||
| "Local identifier of the link. | ||||
| It could be an IPv4 address or a local identifier."; | ||||
| } | ||||
| 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 lsp-entry { | /* Grouping for LSDB description */ | |||
| description "IS-IS LSP database entry groupting"; | ||||
| leaf decoded-completed { | grouping lsp-entry { | |||
| type boolean; | description "IS-IS LSP database entry groupting"; | |||
| description "IS-IS LSP body fully decoded."; | ||||
| } | ||||
| leaf raw-data { | ||||
| 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"; | ||||
| } | ||||
| uses tlv132-ipv4-addresses; | leaf decoded-completed { | |||
| uses tlv232-ipv6-addresses; | type boolean; | |||
| uses tlv134-ipv4-te-rid; | description "IS-IS LSP body fully decoded."; | |||
| uses tlv140-ipv6-te-rid; | } | |||
| uses tlv129-protocols; | leaf raw-data { | |||
| uses tlv137-hostname; | type yang:hex-string; | |||
| uses tlv10-authentication; | description | |||
| uses tlv229-mt; | "The hexadecial representation of the complete LSP in | |||
| uses tlv242-router-capabilities; | network-byte order (NBO) as received or originated."; | |||
| uses tlv138-srlg; | } | |||
| uses unknown-tlvs; | 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"; | ||||
| } | ||||
| container is-neighbor { | uses tlv132-ipv4-addresses; | |||
| list neighbor { | uses tlv232-ipv6-addresses; | |||
| key neighbor-id; | uses tlv134-ipv4-te-rid; | |||
| uses tlv140-ipv6-te-rid; | ||||
| uses tlv129-protocols; | ||||
| uses tlv137-hostname; | ||||
| uses tlv10-authentication; | ||||
| uses tlv229-mt; | ||||
| uses tlv242-router-capabilities; | ||||
| uses tlv138-srlg; | ||||
| uses unknown-tlvs; | ||||
| uses neighbor; | container is-neighbor { | |||
| description "List of neighbors."; | list neighbor { | |||
| } | key neighbor-id; | |||
| description | ||||
| "Standard IS neighbors container - IS-IS reference is | ||||
| TLV 2."; | ||||
| } | ||||
| container extended-is-neighbor { | uses neighbor; | |||
| list neighbor { | description "List of neighbors."; | |||
| key neighbor-id; | } | |||
| description | ||||
| "Standard IS neighbors container - IS-IS reference is | ||||
| TLV 2."; | ||||
| } | ||||
| uses neighbor-extended; | container extended-is-neighbor { | |||
| description | list neighbor { | |||
| "List of extended IS neighbors"; | key neighbor-id; | |||
| } | ||||
| description | ||||
| "Standard IS extended neighbors container - IS-IS | ||||
| reference is TLV 22"; | ||||
| } | ||||
| container ipv4-internal-reachability { | uses neighbor-extended; | |||
| list prefixes { | description | |||
| uses prefix-ipv4-std; | "List of extended IS neighbors"; | |||
| description "List of prefixes."; | } | |||
| } | description | |||
| description | "Standard IS extended neighbors container - IS-IS | |||
| "IPv4 internal reachability information container - IS-IS | reference is TLV 22"; | |||
| reference is TLV 128."; | } | |||
| } | ||||
| container ipv4-external-reachability { | container ipv4-internal-reachability { | |||
| list prefixes { | list prefixes { | |||
| uses prefix-ipv4-std; | uses prefix-ipv4-std; | |||
| description "List of prefixes."; | description "List of prefixes."; | |||
| } | } | |||
| description | description | |||
| "IPv4 external reachability information container - | "IPv4 internal reachability information container - IS-IS | |||
| IS-IS reference is TLV 130."; | reference is TLV 128."; | |||
| } | } | |||
| container extended-ipv4-reachability { | container ipv4-external-reachability { | |||
| list prefixes { | list prefixes { | |||
| uses prefix-ipv4-extended; | uses prefix-ipv4-std; | |||
| uses unknown-tlvs; | description "List of prefixes."; | |||
| description "List of prefixes."; | ||||
| } | ||||
| description | ||||
| "IPv4 extended reachability information container - | ||||
| IS-IS reference is TLV 135."; | ||||
| } | ||||
| container mt-is-neighbor { | } | |||
| list neighbor { | description | |||
| leaf mt-id { | "IPv4 external reachability information container - | |||
| type uint16 { | IS-IS reference is TLV 130."; | |||
| range "0 .. 4095"; | } | |||
| } | ||||
| description "Multi-topology (MT) identifier"; | ||||
| } | ||||
| uses neighbor-extended; | ||||
| description "List of neighbors."; | ||||
| } | ||||
| description | ||||
| "IS-IS multi-topology neighbor container - IS-IS | ||||
| reference is TLV 223."; | ||||
| } | ||||
| container mt-extended-ipv4-reachability { | container extended-ipv4-reachability { | |||
| list prefixes { | list prefixes { | |||
| leaf mt-id { | uses prefix-ipv4-extended; | |||
| type uint16 { | uses unknown-tlvs; | |||
| range "0 .. 4095"; | description "List of prefixes."; | |||
| } | } | |||
| description "Multi-topology (MT) identifier"; | description | |||
| } | "IPv4 extended reachability information container - | |||
| uses prefix-ipv4-extended; | IS-IS reference is TLV 135."; | |||
| uses unknown-tlvs; | } | |||
| description "List of extended prefixes."; | ||||
| } | ||||
| description | ||||
| "IPv4 multi-topolgy (MT) extended reachability | ||||
| information container - IS-IS reference is TLV 235."; | ||||
| } | ||||
| container mt-ipv6-reachability { | container mt-is-neighbor { | |||
| list prefixes { | list neighbor { | |||
| leaf MT-ID { | leaf mt-id { | |||
| type uint16 { | type uint16 { | |||
| range "0 .. 4095"; | range "0 .. 4095"; | |||
| } | ||||
| description "Multi-topology (MT) identifier"; | ||||
| } | ||||
| uses neighbor-extended; | ||||
| description "List of neighbors."; | ||||
| } | ||||
| description | ||||
| "IS-IS multi-topology neighbor container - IS-IS | ||||
| reference is TLV 223."; | ||||
| } | ||||
| } | container mt-extended-ipv4-reachability { | |||
| description "Multi-topology (MT) identifier"; | list prefixes { | |||
| } | leaf mt-id { | |||
| uses prefix-ipv6-extended; | type uint16 { | |||
| uses unknown-tlvs; | range "0 .. 4095"; | |||
| description "List of IPv6 extended prefixes."; | } | |||
| } | description "Multi-topology (MT) identifier"; | |||
| description | } | |||
| "IPv6 multi-topolgy (MT) extended reachability | uses prefix-ipv4-extended; | |||
| information container - IS-IS reference is TLV 237."; | uses unknown-tlvs; | |||
| } | description "List of extended prefixes."; | |||
| } | ||||
| description | ||||
| "IPv4 multi-topolgy (MT) extended reachability | ||||
| information container - IS-IS reference is TLV 235."; | ||||
| container ipv6-reachability { | } | |||
| list prefixes { | ||||
| uses prefix-ipv6-extended; | ||||
| uses unknown-tlvs; | ||||
| description "List of IPv6 prefixes."; | ||||
| } | ||||
| description | ||||
| "IPv6 reachability information container - IS-IS | ||||
| reference is TLV 236."; | ||||
| } | ||||
| } | ||||
| grouping lsdb { | container mt-ipv6-reachability { | |||
| description "Link State Database (LSDB) grouping"; | list prefixes { | |||
| container database { | leaf MT-ID { | |||
| config false; | type uint16 { | |||
| list levels { | range "0 .. 4095"; | |||
| key level; | } | |||
| 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."; | ||||
| } | ||||
| leaf level { | container ipv6-reachability { | |||
| type level-number; | list prefixes { | |||
| description "LSDB level number (1 or 2)"; | uses prefix-ipv6-extended; | |||
| } | uses unknown-tlvs; | |||
| list lsp { | description "List of IPv6 prefixes."; | |||
| key lsp-id; | } | |||
| uses lsp-entry; | description | |||
| description "List of LSPs in LSDB"; | "IPv6 reachability information container - IS-IS | |||
| } | reference is TLV 236."; | |||
| description "List of LSPs for the LSDB level container"; | } | |||
| } | } | |||
| description "IS-IS Link State database container"; | ||||
| } | ||||
| } | ||||
| /* Augmentations */ | ||||
| augment "/rt:routing/" | grouping lsdb { | |||
| +"rt:ribs/rt:rib/rt:routes/rt:route" { | description "Link State Database (LSDB) grouping"; | |||
| when "rt:source-protocol = 'isis:isis'" { | container database { | |||
| description "IS-IS-specific route attributes."; | config false; | |||
| } | list levels { | |||
| uses route-content; | key level; | |||
| description | ||||
| "This augments route object in RIB with IS-IS-specific | ||||
| attributes."; | ||||
| } | ||||
| augment "/if:interfaces/if:interface" { | leaf level { | |||
| leaf clns-mtu { | type level-number; | |||
| type uint16; | description "LSDB level number (1 or 2)"; | |||
| description "CLNS MTU of the interface"; | } | |||
| } | list lsp { | |||
| description "ISO specific interface parameters."; | key lsp-id; | |||
| } | uses lsp-entry; | |||
| description "List of LSPs in LSDB"; | ||||
| } | ||||
| description "List of LSPs for the LSDB level container"; | ||||
| augment "/rt:routing/rt:control-plane-protocols/" | } | |||
| +"rt:control-plane-protocol" { | description "IS-IS Link State database container"; | |||
| when "rt:type = 'isis:isis'" { | } | |||
| description | } | |||
| "This augment is only valid when routing protocol | ||||
| instance type is 'isis'"; | ||||
| } | ||||
| description | ||||
| "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 instance-config; | /* Augmentations */ | |||
| uses instance-state; | ||||
| container topologies { | augment "/rt:routing/" | |||
| if-feature multi-topology; | +"rt:ribs/rt:rib/rt:routes/rt:route" { | |||
| list topology { | when "rt:source-protocol = 'isis:isis'" { | |||
| key "name"; | description "IS-IS-specific route attributes."; | |||
| leaf enable { | } | |||
| type boolean; | uses route-content; | |||
| description "Topology enable configuration"; | description | |||
| } | "This augments route object in RIB with IS-IS-specific | |||
| leaf name { | attributes."; | |||
| type leafref { | } | |||
| path "../../../../../../rt:ribs/rt:rib/rt:name"; | ||||
| } | ||||
| description | ||||
| "Routing Information Base (RIB) corresponding | ||||
| to topology."; | ||||
| } | ||||
| uses multi-topology-config; | augment "/if:interfaces/if:interface" { | |||
| leaf clns-mtu { | ||||
| type uint16; | ||||
| description "CLNS MTU of the interface"; | ||||
| } | ||||
| description "ISO specific interface parameters."; | ||||
| } | ||||
| description "List of topologies"; | augment "/rt:routing/rt:control-plane-protocols/" | |||
| } | +"rt:control-plane-protocol" { | |||
| description "Multi-topology container"; | when "rt:type = 'isis:isis'" { | |||
| } | description | |||
| container interfaces { | "This augment is only valid when routing protocol | |||
| list interface { | instance type is 'isis'"; | |||
| key "name"; | } | |||
| leaf name { | description | |||
| type if:interface-ref; | "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 instance-config; | ||||
| uses instance-state; | ||||
| description | container topologies { | |||
| "Reference to the interface within | if-feature multi-topology; | |||
| the routing-instance."; | list topology { | |||
| } | key "name"; | |||
| uses interface-config; | leaf enable { | |||
| uses interface-state; | type boolean; | |||
| container topologies { | description "Topology enable configuration"; | |||
| if-feature multi-topology; | } | |||
| list topology { | leaf name { | |||
| key name; | type leafref { | |||
| path "../../../../../../rt:ribs/rt:rib/rt:name"; | ||||
| } | ||||
| description | ||||
| "Routing Information Base (RIB) corresponding | ||||
| to topology."; | ||||
| } | ||||
| leaf name { | uses multi-topology-config; | |||
| type leafref { | ||||
| path "../../../../../../../../"+ | ||||
| "rt:ribs/rt:rib/rt:name"; | ||||
| } | ||||
| description | description "List of topologies"; | |||
| "Routing Information Base (RIB) corresponding | } | |||
| to topology."; | description "Multi-topology container"; | |||
| } | } | |||
| uses multi-topology-interface-config; | container interfaces { | |||
| description "List of interface topologies"; | list interface { | |||
| } | key "name"; | |||
| description "Multi-topology container"; | leaf name { | |||
| } | type if:interface-ref; | |||
| description "List of IS-IS interfaces."; | ||||
| } | ||||
| description | ||||
| "IS-IS interface specific configuration container"; | ||||
| } | ||||
| description | description | |||
| "IS-IS configuration/state top-level container"; | "Reference to the interface within | |||
| } | the routing-instance."; | |||
| } | } | |||
| uses interface-config; | ||||
| uses interface-state; | ||||
| container topologies { | ||||
| if-feature multi-topology; | ||||
| list topology { | ||||
| key name; | ||||
| /* RPC methods */ | leaf name { | |||
| type leafref { | ||||
| path "../../../../../../../../"+ | ||||
| "rt:ribs/rt:rib/rt:name"; | ||||
| } | ||||
| description | ||||
| "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"; | ||||
| } | ||||
| rpc clear-adjacency { | description | |||
| description | "IS-IS configuration/state top-level container"; | |||
| "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 routing-protocol-instance-name { | /* RPC methods */ | |||
| 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 | ||||
| adjacency is being cleared. | ||||
| If the corresponding IS-IS instance doesn't exist, | rpc clear-adjacency { | |||
| then the operation will fail with an error-tag of | description | |||
| 'data-missing' and an error-app-tag of | "This RPC request clears a particular set of IS-IS | |||
| 'routing-protocol-instance-not-found'."; | adjacencies. If the operation fails due to an internal | |||
| } | reason, then the error-tag and error-app-tag should be | |||
| leaf level { | set indicating the reason for the failure."; | |||
| type level; | input { | |||
| 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. | ||||
| If the value provided is different from the one | leaf routing-protocol-instance-name { | |||
| authorized in the enum type, then the operation | type leafref { | |||
| SHALL fail with an error-tag of 'data-missing' and | path "/rt:routing/rt:control-plane-protocols/" | |||
| an error-app-tag of 'bad-isis-level'."; | + "rt:control-plane-protocol/rt:name"; | |||
| } | } | |||
| leaf interface { | mandatory "true"; | |||
| type if:interface-ref; | description | |||
| description | "Name of the IS-IS protocol instance whose IS-IS | |||
| "IS-IS interface name. | adjacency is being cleared. | |||
| If the corresponding IS-IS interface doesn't exist, | If the corresponding IS-IS instance doesn't exist, | |||
| then the operation SHALL fail with an error-tag of | then the operation will fail with an error-tag of | |||
| 'data-missing' and an error-app-tag of | 'data-missing' and an error-app-tag of | |||
| 'isis-interface-not-found'."; | '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. | ||||
| rpc clear-database { | If the value provided is different from the one | |||
| description | authorized in the enum type, then the operation | |||
| "This RPC request clears a particular IS-IS database. If | SHALL fail with an error-tag of 'data-missing' and | |||
| the operation fails for an IS-IS internal reason, then | an error-app-tag of 'bad-isis-level'."; | |||
| the error-tag and error-app-tag should be set | } | |||
| indicating the reason for the failure."; | leaf interface { | |||
| input { | type if:interface-ref; | |||
| leaf routing-protocol-instance-name { | description | |||
| type leafref { | "IS-IS interface name. | |||
| 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. | ||||
| If the corresponding IS-IS instance doesn't exist, | If the corresponding IS-IS interface doesn't exist, | |||
| then the operation will fail with an error-tag of | then the operation SHALL fail with an error-tag of | |||
| 'data-missing' and an error-app-tag of | 'data-missing' and an error-app-tag of | |||
| 'routing-protocol-instance-not-found'."; | 'isis-interface-not-found'."; | |||
| } | } | |||
| leaf level { | } | |||
| type level; | } | |||
| description | ||||
| "IS-IS level of the adjacency to be cleared. If the | ||||
| IS-IS level is level-1-2, both level 1 and level 2 | ||||
| databases would be cleared. | ||||
| If the value provided is different from the one | rpc clear-database { | |||
| authorized in the enum type, then the operation | description | |||
| SHALL fail with an error-tag of 'data-missing' and | "This RPC request clears a particular IS-IS database. If | |||
| an error-app-tag of 'bad-isis-level'."; | 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 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. | ||||
| /* Notifications */ | If the corresponding IS-IS instance doesn't exist, | |||
| then the operation will fail with an error-tag of | ||||
| 'data-missing' and an error-app-tag of | ||||
| 'routing-protocol-instance-not-found'."; | ||||
| } | ||||
| leaf level { | ||||
| type level; | ||||
| description | ||||
| "IS-IS level of the adjacency to be cleared. If the | ||||
| IS-IS level is level-1-2, both level 1 and level 2 | ||||
| databases would be cleared. | ||||
| notification database-overload { | If the value provided is different from the one | |||
| uses notification-instance-hdr; | authorized in the enum type, then the operation | |||
| SHALL fail with an error-tag of 'data-missing' and | ||||
| an error-app-tag of 'bad-isis-level'."; | ||||
| } | ||||
| } | ||||
| } | ||||
| leaf overload { | /* Notifications */ | |||
| type enumeration { | ||||
| enum off { | ||||
| description | ||||
| "Indicates IS-IS instance has left overload state"; | ||||
| } | ||||
| enum on { | ||||
| description | ||||
| "Indicates IS-IS instance has entered overload state"; | ||||
| } | ||||
| } | notification database-overload { | |||
| description "New overload state of the IS-IS instance"; | uses notification-instance-hdr; | |||
| } | ||||
| description | ||||
| "This notification is sent when an IS-IS instance | ||||
| overload state changes."; | ||||
| } | ||||
| notification lsp-too-large { | leaf overload { | |||
| uses notification-instance-hdr; | type enumeration { | |||
| uses notification-interface-hdr; | enum off { | |||
| description | ||||
| "Indicates IS-IS instance has left overload state"; | ||||
| } | ||||
| enum on { | ||||
| description | ||||
| "Indicates IS-IS instance has entered overload state"; | ||||
| } | ||||
| leaf pdu-size { | } | |||
| type uint32; | description "New overload state of the IS-IS instance"; | |||
| description "Size of the LSP PDU"; | } | |||
| } | description | |||
| leaf lsp-id { | "This notification is sent when an IS-IS instance | |||
| type lsp-id; | overload state changes."; | |||
| description "LSP ID"; | } | |||
| } | ||||
| description | ||||
| "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 lsp-too-large { | |||
| uses notification-instance-hdr; | ||||
| uses notification-interface-hdr; | ||||
| notification if-state-change { | leaf pdu-size { | |||
| uses notification-instance-hdr; | type uint32; | |||
| uses notification-interface-hdr; | description "Size of the LSP PDU"; | |||
| } | ||||
| leaf lsp-id { | ||||
| type lsp-id; | ||||
| description "LSP ID"; | ||||
| leaf state { | } | |||
| type if-state-type; | description | |||
| description "Interface state."; | "This notification is sent when we attempt to propagate | |||
| } | an LSP that is larger than the dataLinkBlockSize for the | |||
| description | circuit. The notification generation must be throttled | |||
| "This notification is sent when an interface | with at least 5 seconds betweeen successive | |||
| state change is detected."; | notifications."; | |||
| } | } | |||
| notification corrupted-lsp-detected { | notification if-state-change { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| leaf lsp-id { | uses notification-interface-hdr; | |||
| type lsp-id; | ||||
| 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 { | leaf state { | |||
| uses notification-instance-hdr; | type if-state-type; | |||
| leaf lsp-id { | description "Interface state."; | |||
| type lsp-id; | } | |||
| description "LSP ID"; | description | |||
| } | "This notification is sent when an interface | |||
| description | state change is detected."; | |||
| "This notification is sent when the system | } | |||
| wraps the 32-bit sequence counter of an LSP."; | ||||
| } | ||||
| notification id-len-mismatch { | notification corrupted-lsp-detected { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | leaf lsp-id { | |||
| type lsp-id; | ||||
| description "LSP ID"; | ||||
| } | ||||
| description | ||||
| "This notification is sent when we find that | ||||
| an LSP that was stored in memory has become | ||||
| corrupted."; | ||||
| } | ||||
| leaf pdu-field-len { | notification attempt-to-exceed-max-sequence { | |||
| type uint8; | uses notification-instance-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."; | description | |||
| } | "This notification is sent when the system | |||
| description | wraps the 32-bit sequence counter of an LSP."; | |||
| "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 { | notification id-len-mismatch { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf pdu-field-len { | ||||
| type uint8; | ||||
| description "Size of the ID length in the received PDU"; | ||||
| } | ||||
| 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."; | ||||
| } | ||||
| leaf max-area-addresses { | notification max-area-addresses-mismatch { | |||
| type uint8; | uses notification-instance-hdr; | |||
| description "Received number of supported areas"; | uses notification-interface-hdr; | |||
| } | ||||
| 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 max-area-addresses { | |||
| uses notification-instance-hdr; | type uint8; | |||
| uses notification-interface-hdr; | description "Received number of supported areas"; | |||
| leaf lsp-id { | } | |||
| type lsp-id; | leaf raw-pdu { | |||
| description "LSP ID"; | type binary; | |||
| } | description "Received raw PDU."; | |||
| description | } | |||
| "This notification is sent when the system receives | description | |||
| a PDU with its own system-id and zero age."; | "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 sequence-number-skipped { | notification own-lsp-purge { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf lsp-id { | leaf lsp-id { | |||
| type lsp-id; | type lsp-id; | |||
| description "LSP ID"; | description "LSP ID"; | |||
| } | ||||
| description | ||||
| "This notification is sent when the system receives | ||||
| a PDU with its own system-id and zero age."; | ||||
| } | ||||
| notification sequence-number-skipped { | ||||
| uses notification-instance-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 { | |||
| description | uses notification-instance-hdr; | |||
| "This notification is sent when the system receives a | uses notification-interface-hdr; | |||
| PDU with its own system-id and different contents. The | leaf raw-pdu { | |||
| system has to reoriginate the LSP with a higher sequence | type binary; | |||
| number."; | description "Received raw PDU."; | |||
| } | } | |||
| description | ||||
| "This notification is sent when the system receives a | ||||
| PDU with the wrong authentication type field. | ||||
| The notification generation must be throttled | ||||
| with at least 5 seconds betweeen successive | ||||
| notifications."; | ||||
| } | ||||
| notification authentication-type-failure { | notification authentication-failure { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf raw-pdu { | leaf raw-pdu { | |||
| type binary; | type binary; | |||
| description "Received raw PDU."; | description "Received raw PDU."; | |||
| } | } | |||
| description | description | |||
| "This notification is sent when the system receives a | "This notification is sent when the system receives | |||
| PDU with the wrong authentication type field. | a PDU with the wrong authentication information. | |||
| The notification generation must be throttled | The notification generation must be throttled with | |||
| with at least 5 seconds betweeen successive | with at least 5 seconds betweeen successive | |||
| notifications."; | notifications."; | |||
| } | } | |||
| notification authentication-failure { | notification version-skew { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf raw-pdu { | leaf protocol-version { | |||
| type binary; | type uint8; | |||
| description "Received raw PDU."; | description "Protocol version received in the PDU."; | |||
| } | } | |||
| description | leaf raw-pdu { | |||
| "This notification is sent when the system receives | type binary; | |||
| a PDU with the wrong authentication information. | description "Received raw PDU."; | |||
| The notification generation must be throttled with | } | |||
| with at least 5 seconds betweeen successive | description | |||
| notifications."; | "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 version-skew { | notification area-mismatch { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf protocol-version { | leaf raw-pdu { | |||
| type uint8; | type binary; | |||
| description "Protocol version received in the PDU."; | description "Received raw PDU."; | |||
| } | } | |||
| leaf raw-pdu { | description | |||
| type binary; | "This notification is sent when the system receives a | |||
| description "Received raw PDU."; | Hello PDU from an IS that does not share any area | |||
| address. The notification generation must be throttled | ||||
| with at least 5 seconds betweeen successive | ||||
| notifications."; | ||||
| } | ||||
| } | notification rejected-adjacency { | |||
| description | uses notification-instance-hdr; | |||
| "This notification is sent when the system receives a | uses notification-interface-hdr; | |||
| PDU with a different protocol version number. | leaf raw-pdu { | |||
| The notification generation must be throttled | type binary; | |||
| with at least 5 seconds betweeen successive | description | |||
| notifications."; | "Received raw PDU."; | |||
| } | } | |||
| leaf reason { | ||||
| type string { | ||||
| length "1..255"; | ||||
| } | ||||
| description | ||||
| "The system may provide a reason to reject the | ||||
| adjacency. If the reason is not available, | ||||
| an empty string will be returned. | ||||
| The expected format is a single line text."; | ||||
| } | ||||
| 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 area-mismatch { | notification protocols-supported-mismatch { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf raw-pdu { | leaf raw-pdu { | |||
| type binary; | type binary; | |||
| description "Received raw PDU."; | description "Received raw PDU."; | |||
| } | } | |||
| description | leaf-list protocols { | |||
| "This notification is sent when the system receives a | type uint8; | |||
| Hello PDU from an IS that does not share any area | description | |||
| address. The notification generation must be throttled | "List of protocols supported by the remote system."; | |||
| with at least 5 seconds betweeen successive | } | |||
| notifications."; | 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 rejected-adjacency { | notification lsp-error-detected { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf raw-pdu { | leaf lsp-id { | |||
| type binary; | type lsp-id; | |||
| description | description "LSP ID."; | |||
| "Received raw PDU."; | } | |||
| } | leaf raw-pdu { | |||
| leaf reason { | type binary; | |||
| type string { | description "Received raw PDU."; | |||
| length "1..255"; | } | |||
| } | leaf error-offset { | |||
| description | type uint32; | |||
| "The system may provide a reason to reject the | description | |||
| adjacency. If the reason is not available, | "If the problem is a malformed TLV, the error-offset | |||
| an empty string will be returned. | points to the start of the TLV. If the problem is with | |||
| The expected format is a single line text."; | the LSP header, the error-offset points to the errant | |||
| } | byte"; | |||
| description | } | |||
| "This notification is sent when the system receives a | leaf tlv-type { | |||
| Hello PDU from an IS but does not establish an adjacency | type uint8; | |||
| for some reason. The notification generation must be | description | |||
| throttled with at least 5 seconds betweeen successive | "If the problem is a malformed TLV, the tlv-type is set | |||
| notifications."; | 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 { | |||
| uses notification-instance-hdr; | ||||
| uses notification-interface-hdr; | ||||
| leaf neighbor { | ||||
| type string { | ||||
| length "1..255"; | ||||
| } | ||||
| description | ||||
| "Name of the neighbor. | ||||
| It corresponds to the hostname associated | ||||
| with the system-id of the neighbor in the | ||||
| mapping database (RFC5301). | ||||
| 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; | ||||
| notification protocols-supported-mismatch { | description "New state of the IS-IS adjacency."; | |||
| uses notification-instance-hdr; | } | |||
| uses notification-interface-hdr; | leaf reason { | |||
| leaf raw-pdu { | type string { | |||
| type binary; | length "1..255"; | |||
| description "Received raw PDU."; | } | |||
| } | description | |||
| leaf-list protocols { | "If the adjacency is going to DOWN, this leaf provides | |||
| type uint8; | a reason for the adjacency going down. The reason is | |||
| description | provided as a text. If the adjacency is going to UP, no | |||
| "List of protocols supported by the remote system."; | reason is provided. The expected format is a single line | |||
| } | text."; | |||
| 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 { | } | |||
| uses notification-instance-hdr; | description | |||
| uses notification-interface-hdr; | "This notification is sent when an IS-IS adjacency | |||
| leaf lsp-id { | moves to Up state or to Down state."; | |||
| type lsp-id; | } | |||
| 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."; | ||||
| } | notification lsp-received { | |||
| description | uses notification-instance-hdr; | |||
| "This notification is sent when the system receives an | uses notification-interface-hdr; | |||
| LSP with a parse error. The notification generation must | ||||
| be throttled with at least 5 seconds betweeen successive | ||||
| notifications."; | ||||
| } | ||||
| notification adjacency-state-change { | leaf lsp-id { | |||
| uses notification-instance-hdr; | type lsp-id; | |||
| uses notification-interface-hdr; | description "LSP ID"; | |||
| leaf neighbor { | } | |||
| type string { | leaf sequence { | |||
| length "1..255"; | type uint32; | |||
| } | description "Sequence number of the received LSP."; | |||
| description | } | |||
| "Name of the neighbor. | leaf received-timestamp { | |||
| It corresponds to the hostname associated | type yang:timestamp; | |||
| with the system-id of the neighbor in the | ||||
| mapping database (RFC5301). | ||||
| 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."; | description "Timestamp when the LSP was received."; | |||
| } | } | |||
| leaf reason { | leaf neighbor-system-id { | |||
| type string { | type system-id; | |||
| length "1..255"; | 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."; | ||||
| } | } | |||
| 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. The expected format is a single line | ||||
| text."; | ||||
| } | ||||
| description | ||||
| "This notification is sent when an IS-IS adjacency | ||||
| moves to Up state or to Down state."; | ||||
| } | ||||
| notification lsp-received { | ||||
| uses notification-instance-hdr; | ||||
| uses notification-interface-hdr; | ||||
| 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; | ||||
| description "Timestamp when the LSP was received."; | ||||
| } | ||||
| 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."; | ||||
| } | ||||
| notification lsp-generation { | notification lsp-generation { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| leaf lsp-id { | leaf lsp-id { | |||
| type lsp-id; | type lsp-id; | |||
| description "LSP ID"; | description "LSP ID"; | |||
| } | } | |||
| leaf sequence { | leaf sequence { | |||
| type uint32; | type uint32; | |||
| description "Sequence number of the received LSP."; | description "Sequence number of the received LSP."; | |||
| } | } | |||
| leaf send-timestamp { | leaf send-timestamp { | |||
| type yang:timestamp; | type yang:timestamp; | |||
| description "Timestamp when our LSP was regenerated."; | 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."; | ||||
| } | ||||
| } | } | |||
| 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> | <CODE ENDS> | |||
| 7. Security Considerations | 7. Security Considerations | |||
| The YANG module specified in this document defines a schema for data | The YANG module specified in this document defines a schema for data | |||
| that is designed to be accessed via network management protocols such | that is designed to be accessed via network management protocols such | |||
| as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer | as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer | |||
| is the secure transport layer, and the mandatory-to-implement secure | is the secure transport layer, and the mandatory-to-implement secure | |||
| transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer | transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer | |||
| is HTTPS, and the mandatory-to-implement secure transport is TLS | is HTTPS, and the mandatory-to-implement secure transport is TLS | |||
| [RFC8446] | [RFC8446] | |||
| skipping to change at page 112, line 24 ¶ | skipping to change at page 112, line 35 ¶ | |||
| 11.1. Normative References | 11.1. Normative References | |||
| [I-D.ietf-bfd-yang] | [I-D.ietf-bfd-yang] | |||
| Rahman, R., Zheng, L., Jethanandani, M., Networks, J., and | Rahman, R., Zheng, L., Jethanandani, M., Networks, J., and | |||
| G. Mirsky, "YANG Data Model for Bidirectional Forwarding | G. Mirsky, "YANG Data Model for Bidirectional Forwarding | |||
| Detection (BFD)", draft-ietf-bfd-yang-17 (work in | Detection (BFD)", draft-ietf-bfd-yang-17 (work in | |||
| progress), August 2018. | progress), August 2018. | |||
| [ISO-10589] | [ISO-10589] | |||
| ISO, "Intermediate System to Intermediate System intra- | ISO, , "Intermediate System to Intermediate System intra- | |||
| domain routeing information exchange protocol for use in | domain routeing information exchange protocol for use in | |||
| conjunction with the protocol for providing the | conjunction with the protocol for providing the | |||
| connectionless-mode network service (ISO 8473)", | connectionless-mode network service (ISO 8473)", | |||
| International Standard 10589: 2002, Second Edition, 2002. | International Standard 10589: 2002, Second Edition, 2002. | |||
| [RFC1195] Callon, R., "Use of OSI IS-IS for routing in TCP/IP and | [RFC1195] Callon, R., "Use of OSI IS-IS for routing in TCP/IP and | |||
| dual environments", RFC 1195, DOI 10.17487/RFC1195, | dual environments", RFC 1195, DOI 10.17487/RFC1195, | |||
| December 1990, <https://www.rfc-editor.org/info/rfc1195>. | December 1990, <https://www.rfc-editor.org/info/rfc1195>. | |||
| [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- | |||
| <https://www.rfc-editor.org/info/rfc2119>. | editor.org/info/rfc2119>. | |||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
| DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, <https://www.rfc- | |||
| <https://www.rfc-editor.org/info/rfc3688>. | editor.org/info/rfc3688>. | |||
| [RFC5029] Vasseur, JP. and S. Previdi, "Definition of an IS-IS Link | [RFC5029] Vasseur, JP. and S. Previdi, "Definition of an IS-IS Link | |||
| Attribute Sub-TLV", RFC 5029, DOI 10.17487/RFC5029, | Attribute Sub-TLV", RFC 5029, DOI 10.17487/RFC5029, | |||
| September 2007, <https://www.rfc-editor.org/info/rfc5029>. | September 2007, <https://www.rfc-editor.org/info/rfc5029>. | |||
| [RFC5120] Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi | [RFC5120] Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi | |||
| Topology (MT) Routing in Intermediate System to | Topology (MT) Routing in Intermediate System to | |||
| Intermediate Systems (IS-ISs)", RFC 5120, | Intermediate Systems (IS-ISs)", RFC 5120, | |||
| DOI 10.17487/RFC5120, February 2008, | DOI 10.17487/RFC5120, February 2008, <https://www.rfc- | |||
| <https://www.rfc-editor.org/info/rfc5120>. | editor.org/info/rfc5120>. | |||
| [RFC5130] Previdi, S., Shand, M., Ed., and C. Martin, "A Policy | [RFC5130] Previdi, S., Shand, M., Ed., and C. Martin, "A Policy | |||
| Control Mechanism in IS-IS Using Administrative Tags", | Control Mechanism in IS-IS Using Administrative Tags", | |||
| RFC 5130, DOI 10.17487/RFC5130, February 2008, | RFC 5130, DOI 10.17487/RFC5130, February 2008, | |||
| <https://www.rfc-editor.org/info/rfc5130>. | <https://www.rfc-editor.org/info/rfc5130>. | |||
| [RFC5286] Atlas, A., Ed. and A. Zinin, Ed., "Basic Specification for | [RFC5286] Atlas, A., Ed. and A. Zinin, Ed., "Basic Specification for | |||
| IP Fast Reroute: Loop-Free Alternates", RFC 5286, | IP Fast Reroute: Loop-Free Alternates", RFC 5286, | |||
| DOI 10.17487/RFC5286, September 2008, | DOI 10.17487/RFC5286, September 2008, <https://www.rfc- | |||
| <https://www.rfc-editor.org/info/rfc5286>. | editor.org/info/rfc5286>. | |||
| [RFC5301] McPherson, D. and N. Shen, "Dynamic Hostname Exchange | [RFC5301] McPherson, D. and N. Shen, "Dynamic Hostname Exchange | |||
| Mechanism for IS-IS", RFC 5301, DOI 10.17487/RFC5301, | Mechanism for IS-IS", RFC 5301, DOI 10.17487/RFC5301, | |||
| October 2008, <https://www.rfc-editor.org/info/rfc5301>. | October 2008, <https://www.rfc-editor.org/info/rfc5301>. | |||
| [RFC5305] Li, T. and H. Smit, "IS-IS Extensions for Traffic | [RFC5305] Li, T. and H. Smit, "IS-IS Extensions for Traffic | |||
| Engineering", RFC 5305, DOI 10.17487/RFC5305, October | Engineering", RFC 5305, DOI 10.17487/RFC5305, October | |||
| 2008, <https://www.rfc-editor.org/info/rfc5305>. | 2008, <https://www.rfc-editor.org/info/rfc5305>. | |||
| [RFC5306] Shand, M. and L. Ginsberg, "Restart Signaling for IS-IS", | [RFC5306] Shand, M. and L. Ginsberg, "Restart Signaling for IS-IS", | |||
| RFC 5306, DOI 10.17487/RFC5306, October 2008, | RFC 5306, DOI 10.17487/RFC5306, October 2008, | |||
| <https://www.rfc-editor.org/info/rfc5306>. | <https://www.rfc-editor.org/info/rfc5306>. | |||
| [RFC5308] Hopps, C., "Routing IPv6 with IS-IS", RFC 5308, | [RFC5308] Hopps, C., "Routing IPv6 with IS-IS", RFC 5308, | |||
| DOI 10.17487/RFC5308, October 2008, | DOI 10.17487/RFC5308, October 2008, <https://www.rfc- | |||
| <https://www.rfc-editor.org/info/rfc5308>. | editor.org/info/rfc5308>. | |||
| [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | |||
| (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, | (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, | |||
| <https://www.rfc-editor.org/info/rfc5880>. | <https://www.rfc-editor.org/info/rfc5880>. | |||
| [RFC5881] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | [RFC5881] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | |||
| (BFD) for IPv4 and IPv6 (Single Hop)", RFC 5881, | (BFD) for IPv4 and IPv6 (Single Hop)", RFC 5881, | |||
| DOI 10.17487/RFC5881, June 2010, | DOI 10.17487/RFC5881, June 2010, <https://www.rfc- | |||
| <https://www.rfc-editor.org/info/rfc5881>. | editor.org/info/rfc5881>. | |||
| [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | |||
| the Network Configuration Protocol (NETCONF)", RFC 6020, | the Network Configuration Protocol (NETCONF)", RFC 6020, | |||
| DOI 10.17487/RFC6020, October 2010, | DOI 10.17487/RFC6020, October 2010, <https://www.rfc- | |||
| <https://www.rfc-editor.org/info/rfc6020>. | editor.org/info/rfc6020>. | |||
| [RFC6119] Harrison, J., Berger, J., and M. Bartlett, "IPv6 Traffic | [RFC6119] Harrison, J., Berger, J., and M. Bartlett, "IPv6 Traffic | |||
| Engineering in IS-IS", RFC 6119, DOI 10.17487/RFC6119, | Engineering in IS-IS", RFC 6119, DOI 10.17487/RFC6119, | |||
| February 2011, <https://www.rfc-editor.org/info/rfc6119>. | February 2011, <https://www.rfc-editor.org/info/rfc6119>. | |||
| [RFC6232] Wei, F., Qin, Y., Li, Z., Li, T., and J. Dong, "Purge | [RFC6232] Wei, F., Qin, Y., Li, Z., Li, T., and J. Dong, "Purge | |||
| Originator Identification TLV for IS-IS", RFC 6232, | Originator Identification TLV for IS-IS", RFC 6232, | |||
| DOI 10.17487/RFC6232, May 2011, | DOI 10.17487/RFC6232, May 2011, <https://www.rfc- | |||
| <https://www.rfc-editor.org/info/rfc6232>. | editor.org/info/rfc6232>. | |||
| [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>. | |||
| skipping to change at page 115, line 7 ¶ | skipping to change at page 115, line 19 ¶ | |||
| [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | |||
| Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | |||
| <https://www.rfc-editor.org/info/rfc8040>. | <https://www.rfc-editor.org/info/rfc8040>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [RFC8177] Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J. | [RFC8177] Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J. | |||
| Zhang, "YANG Data Model for Key Chains", RFC 8177, | Zhang, "YANG Data Model for Key Chains", RFC 8177, | |||
| DOI 10.17487/RFC8177, June 2017, | DOI 10.17487/RFC8177, June 2017, <https://www.rfc- | |||
| <https://www.rfc-editor.org/info/rfc8177>. | editor.org/info/rfc8177>. | |||
| [RFC8294] Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger, | [RFC8294] Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger, | |||
| "Common YANG Data Types for the Routing Area", RFC 8294, | "Common YANG Data Types for the Routing Area", RFC 8294, | |||
| DOI 10.17487/RFC8294, December 2017, | DOI 10.17487/RFC8294, December 2017, <https://www.rfc- | |||
| <https://www.rfc-editor.org/info/rfc8294>. | editor.org/info/rfc8294>. | |||
| [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration | [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration | |||
| Access Control Model", STD 91, RFC 8341, | Access Control Model", STD 91, RFC 8341, | |||
| DOI 10.17487/RFC8341, March 2018, | DOI 10.17487/RFC8341, March 2018, <https://www.rfc- | |||
| <https://www.rfc-editor.org/info/rfc8341>. | editor.org/info/rfc8341>. | |||
| [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | |||
| and R. Wilton, "Network Management Datastore Architecture | and R. Wilton, "Network Management Datastore Architecture | |||
| (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, | (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, | |||
| <https://www.rfc-editor.org/info/rfc8342>. | <https://www.rfc-editor.org/info/rfc8342>. | |||
| [RFC8343] Bjorklund, M., "A YANG Data Model for Interface | [RFC8343] Bjorklund, M., "A YANG Data Model for Interface | |||
| Management", RFC 8343, DOI 10.17487/RFC8343, March 2018, | Management", RFC 8343, DOI 10.17487/RFC8343, March 2018, | |||
| <https://www.rfc-editor.org/info/rfc8343>. | <https://www.rfc-editor.org/info/rfc8343>. | |||
| [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for | [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for | |||
| Routing Management (NMDA Version)", RFC 8349, | Routing Management (NMDA Version)", RFC 8349, | |||
| DOI 10.17487/RFC8349, March 2018, | DOI 10.17487/RFC8349, March 2018, <https://www.rfc- | |||
| <https://www.rfc-editor.org/info/rfc8349>. | editor.org/info/rfc8349>. | |||
| [RFC8405] Decraene, B., Litkowski, S., Gredler, H., Lindem, A., | [RFC8405] Decraene, B., Litkowski, S., Gredler, H., Lindem, A., | |||
| Francois, P., and C. Bowers, "Shortest Path First (SPF) | Francois, P., and C. Bowers, "Shortest Path First (SPF) | |||
| Back-Off Delay Algorithm for Link-State IGPs", RFC 8405, | Back-Off Delay Algorithm for Link-State IGPs", RFC 8405, | |||
| DOI 10.17487/RFC8405, June 2018, | DOI 10.17487/RFC8405, June 2018, <https://www.rfc- | |||
| <https://www.rfc-editor.org/info/rfc8405>. | editor.org/info/rfc8405>. | |||
| [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | |||
| Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | |||
| <https://www.rfc-editor.org/info/rfc8446>. | <https://www.rfc-editor.org/info/rfc8446>. | |||
| 11.2. Informative References | 11.2. Informative References | |||
| [RFC5443] Jork, M., Atlas, A., and L. Fang, "LDP IGP | [RFC5443] Jork, M., Atlas, A., and L. Fang, "LDP IGP | |||
| Synchronization", RFC 5443, DOI 10.17487/RFC5443, March | Synchronization", RFC 5443, DOI 10.17487/RFC5443, March | |||
| 2009, <https://www.rfc-editor.org/info/rfc5443>. | 2009, <https://www.rfc-editor.org/info/rfc5443>. | |||
| End of changes. 280 change blocks. | ||||
| 4244 lines changed or deleted | 4249 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/ | ||||