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"; |