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