| < draft-ietf-isis-yang-isis-cfg-08.txt | draft-ietf-isis-yang-isis-cfg-09.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: September 22, 2016 A. Lindem | Expires: March 24, 2017 A. Lindem | |||
| Cisco Systems | Cisco Systems | |||
| J. Zhang | J. Zhang | |||
| Juniper Networks | Juniper Networks | |||
| L. Lhotka | L. Lhotka | |||
| CZ.NIC | CZ.NIC | |||
| March 21, 2016 | September 20, 2016 | |||
| YANG Data Model for IS-IS protocol | YANG Data Model for IS-IS protocol | |||
| draft-ietf-isis-yang-isis-cfg-08 | draft-ietf-isis-yang-isis-cfg-09 | |||
| 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. It also defined an | and manage IS-IS protocol on network elements. It also defined an | |||
| extension module for segment routing configuration and operation. | extension module for segment routing configuration and operation. | |||
| Requirements Language | Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| 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 September 22, 2016. | This Internet-Draft will expire on March 24, 2017. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2016 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 25 ¶ | skipping to change at page 2, line 25 ¶ | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.1. Tree diagram . . . . . . . . . . . . . . . . . . . . . . 3 | 1.1. Tree diagram . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 3 | 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 3 | |||
| 2.1. IS-IS Configuration . . . . . . . . . . . . . . . . . . . 10 | 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. ISO parameters . . . . . . . . . . . . . . . . . . . . . 12 | 2.5. ISO parameters . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 2.6. IP FRR . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 2.6. IP FRR . . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 2.7. Operational State . . . . . . . . . . . . . . . . . . . . 13 | 2.7. Operational State . . . . . . . . . . . . . . . . . . . . 13 | |||
| 3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 13 | 3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 14 | 4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 5. Segment Routing . . . . . . . . . . . . . . . . . . . . . . . 18 | 5. Segment Routing . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 5.1. Segment Routing activation . . . . . . . . . . . . . . . 21 | 5.1. Segment Routing activation . . . . . . . . . . . . . . . 20 | |||
| 5.2. Advertising mapping server policy . . . . . . . . . . . . 21 | 5.2. Advertising mapping server policy . . . . . . . . . . . . 20 | |||
| 5.3. IP Fast reroute . . . . . . . . . . . . . . . . . . . . . 21 | 5.3. IP Fast reroute . . . . . . . . . . . . . . . . . . . . . 20 | |||
| 6. Interaction with Other YANG Modules . . . . . . . . . . . . . 21 | 6. Interaction with Other YANG Modules . . . . . . . . . . . . . 21 | |||
| 7. IS-IS YANG Module . . . . . . . . . . . . . . . . . . . . . . 22 | 7. IS-IS YANG Module . . . . . . . . . . . . . . . . . . . . . . 21 | |||
| 8. IS-IS Segment Routing YANG Module . . . . . . . . . . . . . . 100 | 8. IS-IS Segment Routing YANG Module . . . . . . . . . . . . . . 100 | |||
| 9. Security Considerations . . . . . . . . . . . . . . . . . . . 114 | 9. Security Considerations . . . . . . . . . . . . . . . . . . . 114 | |||
| 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 115 | 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 115 | |||
| 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 115 | 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 115 | |||
| 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 115 | 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 115 | |||
| 13. Normative References . . . . . . . . . . . . . . . . . . . . 116 | 13. Normative References . . . . . . . . . . . . . . . . . . . . 116 | |||
| Appendix A. Example: NETCONF <get> Reply . . . . . . . . . . . . 117 | Appendix A. Example: NETCONF <get> Reply . . . . . . . . . . . . 117 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 120 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 120 | |||
| 1. Introduction | 1. Introduction | |||
| skipping to change at page 3, line 48 ¶ | skipping to change at page 3, line 48 ¶ | |||
| The IS-IS YANG module is divided in two main "isis" containers that | The IS-IS YANG module is divided in two main "isis" containers that | |||
| are augmenting the "routing-protocol" lists in ietf-routing module | are augmenting the "routing-protocol" lists in ietf-routing module | |||
| with specific IS-IS parameters. | with specific IS-IS parameters. | |||
| One container contains the writable parameters, while the other | One container contains the writable parameters, while the other | |||
| contains the operational states. | contains the operational states. | |||
| The figure below describe the overall structure of the isis YANG | The figure below describe the overall structure of the isis YANG | |||
| module: | module: | |||
| module: ietf-isis | module: ietf-isis | |||
| augment /rt:routing-state/rt:ribs/rt:rib/rt:routes/rt:route: | augment /rt:routing-state/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 /rt:fib-route/rt:output/rt:route: | augment /if:interfaces/if:interface: | |||
| +--ro metric? uint32 | +--rw clns-mtu? uint16 | |||
| +--ro tag* uint64 | augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol: | |||
| +--ro route-type? enumeration | +--rw isis | |||
| augment /if:interfaces/if:interface: | +--rw enable? boolean {admin-control}? | |||
| +--rw clns-mtu? uint16 | +--rw level-type? level | |||
| augment /rt:routing/rt:routing-protocols/rt:routing-protocol: | +--rw system-id? system-id | |||
| +--rw isis | +--rw maximum-area-addresses? uint8 {maximum-area-addresses}? | |||
| +--rw enable? boolean {admin-control}? | +--rw area-address* area-address | |||
| +--rw level-type? level | +--rw mpls | |||
| +--rw system-id? system-id | | +--rw ipv4-router-id? inet:ipv4-address {ipv4-router-id}? | |||
| +--rw maximum-area-addresses? uint8 {maximum-area-addresses}? | | +--rw ipv6-router-id? inet:ipv6-address {ipv6-router-id}? | |||
| +--rw area-address* area-address | | +--rw igp-ldp-sync {igp-ldp-sync}? | |||
| +--rw mpls | +--rw reference-bandwidth? uint32 {reference-bandwidth}? | |||
| | +--rw ipv4-router-id? inet:ipv4-address {ipv4-router-id}? | +--rw lsp-mtu? uint16 | |||
| | +--rw ipv6-router-id? inet:ipv6-address {ipv6-router-id}? | +--rw lsp-lifetime? uint16 | |||
| | +--rw igp-ldp-sync {igp-ldp-sync}? | +--rw lsp-refresh? uint16 {lsp-refresh}? | |||
| +--rw reference-bandwidth? uint32 {reference-bandwidth}? | +--rw graceful-restart {graceful-restart}? | |||
| +--rw lsp-mtu? uint16 | | +--rw enable? boolean | |||
| +--rw lsp-lifetime? uint16 | +--rw node-tag {node-tag}? | |||
| +--rw lsp-refresh? uint16 {lsp-refresh}? | | +--rw node-tag* [tag] | |||
| +--rw graceful-restart {graceful-restart}? | | ... | |||
| | +--rw enable? boolean | +--rw authentication | |||
| +--rw node-tag {node-tag}? | | +--rw (authentication-type)? | |||
| | +--rw node-tag* [tag] | | | ... | |||
| | ... | | +--rw level-1 | |||
| +--rw authentication | | | ... | |||
| | +--rw (authentication-type)? | | +--rw level-2 | |||
| | | ... | | ... | |||
| | +--rw level-1 | +--rw metric-type | |||
| | | ... | | +--rw value? enumeration | |||
| | +--rw level-2 | | +--rw level-1 | |||
| | ... | | | ... | |||
| +--rw metric-type | | +--rw level-2 | |||
| | +--rw value? enumeration | | ... | |||
| | +--rw level-1 | +--rw default-metric | |||
| | | ... | | +--rw value? wide-metric | |||
| | +--rw level-2 | | +--rw level-1 | |||
| | ... | | | ... | |||
| +--rw default-metric | | +--rw level-2 | |||
| | +--rw value? wide-metric | | ... | |||
| | +--rw level-1 | +--rw afs | |||
| | | ... | | +--rw af* [af] {nlpid-control}? | |||
| | +--rw level-2 | | ... | |||
| | ... | +--rw preference | |||
| +--rw af* [af] {nlpid-control}? | | +--rw (granularity)? | |||
| | +--rw af identityref | | ... | |||
| | +--rw enable? boolean | +--rw overload | |||
| +--rw preference | | +--rw status? boolean | |||
| | +--rw (granularity)? | +--rw overload-max-metric {overload-max-metric}? | |||
| | ... | | +--rw timeout? uint16 | |||
| +--rw overload | +--rw fast-reroute {fast-reroute}? | |||
| | +--rw status? boolean | | +--rw lfa {lfa}? | |||
| +--rw overload-max-metric {overload-max-metric}? | +--rw multi-topology {multi-topology}? | |||
| | +--rw timeout? uint16 | | +--rw topology* [name] | |||
| +--rw fast-reroute {fast-reroute}? | | ... | |||
| | +--rw lfa {lfa}? | +--rw interfaces | |||
| +--rw topologies* [name] {multi-topology}? | +--rw interface* [name] | |||
| | +--rw enable? boolean | ... | |||
| | +--rw name leafref | augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-protocol: | |||
| | +--rw default-metric | +--ro isis | |||
| | | ... | +--ro enable? boolean {admin-control}? | |||
| | +--rw node-tag {node-tag}? | +--ro level-type? level | |||
| | | ... | +--ro system-id? system-id | |||
| | +--rw fast-reroute {fast-reroute}? | +--ro maximum-area-addresses? uint8 {maximum-area-addresses}? | |||
| | ... | +--ro area-address* area-address | |||
| +--rw interfaces | +--ro mpls | |||
| +--rw interface* [name] | | +--ro ipv4-router-id? inet:ipv4-address {ipv4-router-id}? | |||
| ... | | +--ro ipv6-router-id? inet:ipv6-address {ipv6-router-id}? | |||
| augment /rt:routing-state/rt:routing-protocols/rt:routing-protocol: | | +--ro igp-ldp-sync {igp-ldp-sync}? | |||
| +--ro isis | +--ro reference-bandwidth? uint32 {reference-bandwidth}? | |||
| +--ro enable? boolean {admin-control}? | +--ro lsp-mtu? uint16 | |||
| +--ro level-type? level | +--ro lsp-lifetime? uint16 | |||
| +--ro system-id? system-id | +--ro lsp-refresh? uint16 {lsp-refresh}? | |||
| +--ro maximum-area-addresses? uint8 {maximum-area-addresses}? | +--ro graceful-restart {graceful-restart}? | |||
| +--ro area-address* area-address | | +--ro enable? boolean | |||
| +--ro mpls | +--ro node-tag {node-tag}? | |||
| | +--ro ipv4-router-id? inet:ipv4-address {ipv4-router-id}? | | +--ro node-tag* [tag] | |||
| | +--ro ipv6-router-id? inet:ipv6-address {ipv6-router-id}? | | ... | |||
| | +--ro igp-ldp-sync {igp-ldp-sync}? | +--ro authentication | |||
| +--ro reference-bandwidth? uint32 {reference-bandwidth}? | | +--ro (authentication-type)? | |||
| +--ro lsp-mtu? uint16 | | | ... | |||
| +--ro lsp-lifetime? uint16 | | +--ro level-1 | |||
| +--ro lsp-refresh? uint16 {lsp-refresh}? | | | ... | |||
| +--ro graceful-restart {graceful-restart}? | | +--ro level-2 | |||
| | +--ro enable? boolean | | ... | |||
| +--ro node-tag {node-tag}? | +--ro metric-type | |||
| | +--ro node-tag* [tag] | | +--ro value? enumeration | |||
| | ... | | +--ro level-1 | |||
| +--ro authentication | | | ... | |||
| | +--ro (authentication-type)? | | +--ro level-2 | |||
| | | ... | | ... | |||
| | +--ro level-1 | +--ro default-metric | |||
| | | ... | | +--ro value? wide-metric | |||
| | +--ro level-2 | | +--ro level-1 | |||
| | ... | | | ... | |||
| +--ro metric-type | | +--ro level-2 | |||
| | +--ro value? enumeration | | ... | |||
| | +--ro level-1 | +--ro afs | |||
| | | ... | | +--ro af* [af] {nlpid-control}? | |||
| | +--ro level-2 | | ... | |||
| | ... | +--ro preference | |||
| +--ro default-metric | | +--ro (granularity)? | |||
| | +--ro value? wide-metric | | ... | |||
| | +--ro level-1 | +--ro overload | |||
| | | ... | | +--ro status? boolean | |||
| | +--ro level-2 | +--ro overload-max-metric {overload-max-metric}? | |||
| | ... | | +--ro timeout? uint16 | |||
| +--ro af* [af] {nlpid-control}? | +--ro fast-reroute {fast-reroute}? | |||
| | +--ro af identityref | | +--ro lfa {lfa}? | |||
| | +--ro enable? boolean | | +--ro protected-routes | |||
| +--ro preference | | | ... | |||
| | +--ro (granularity)? | | +--ro nonprotected-routes | |||
| | ... | | | ... | |||
| +--ro overload | | +--ro protection-statistics* [frr-protection-method] | |||
| | +--ro status? boolean | | ... | |||
| +--ro overload-max-metric {overload-max-metric}? | +--ro topologies* [name] | |||
| | +--ro timeout? uint16 | | +--ro name leafref | |||
| +--ro fast-reroute {fast-reroute}? | | +--ro fast-route {fast-reroute}? | |||
| | +--ro lfa {lfa}? | | ... | |||
| | +--ro protected-routes | +--ro system-counters | |||
| | | ... | | +--ro level* [level] | |||
| | +--ro nonprotected-routes | | ... | |||
| | | ... | +--ro interfaces | |||
| | +--ro protection-statistics* [frr-protection-method] | | +--ro interface* [interface] | |||
| | ... | | ... | |||
| +--ro topologies* [name] | +--ro spf-log | |||
| | +--ro name leafref | | +--ro event* [id] | |||
| | +--ro fast-route {fast-reroute}? | | ... | |||
| | ... | +--ro lsp-log | |||
| +--ro system-counters | | +--ro event* [id] | |||
| | +--ro level* [level] | | ... | |||
| | ... | +--ro database | |||
| +--ro interfaces | | +--ro level-db* [level] | |||
| | +--ro interface* [interface] | | ... | |||
| | ... | +--ro hostnames | |||
| +--ro spf-log | +--ro hostname* [system-id] | |||
| | +--ro event* [id] | ... | |||
| | ... | rpcs: | |||
| +--ro lsp-log | +---x clear-adjacency | |||
| | +--ro event* [id] | | +--ro input | |||
| | ... | | +--ro routing-protocol-instance-name instance-state-ref | |||
| +--ro database | | +--ro level? level | |||
| | +--ro level-db* [level] | | +--ro interface? string | |||
| | ... | +---x clear-database | |||
| +--ro hostnames | +--ro input | |||
| +--ro hostname* [system-id] | +--ro routing-protocol-instance-name instance-state-ref | |||
| ... | +--ro level? level | |||
| rpcs: | notifications: | |||
| +---x clear-adjacency | +---n database-overload | |||
| | +--ro input | | +--ro instance-name? string | |||
| | +--ro routing-protocol-instance-name instance-state-ref | | +--ro instance-level? level | |||
| | +--ro level? level | | +--ro overload? enumeration | |||
| | +--ro interface? string | +---n lsp-too-large | |||
| +---x clear-database | | +--ro instance-name? string | |||
| +--ro input | | +--ro instance-level? level | |||
| +--ro routing-protocol-instance-name instance-state-ref | | +--ro interface-name? string | |||
| +--ro level? level | | +--ro interface-level? level | |||
| notifications: | | +--ro extended-circuit-id? extended-circuit-id | |||
| +---n database-overload | | +--ro pdu-size? uint32 | |||
| | +--ro instance-name? string | | +--ro lsp-id? lsp-id | |||
| | +--ro instance-level? level | +---n corrupted-lsp-detected | |||
| | +--ro overload? enumeration | | +--ro instance-name? string | |||
| +---n lsp-too-large | | +--ro instance-level? level | |||
| | +--ro instance-name? string | | +--ro lsp-id? lsp-id | |||
| | +--ro instance-level? level | +---n attempt-to-exceed-max-sequence | |||
| | +--ro interface-name? string | | +--ro instance-name? string | |||
| | +--ro interface-level? level | | +--ro instance-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro lsp-id? lsp-id | |||
| | +--ro pdu-size? uint32 | +---n id-len-mismatch | |||
| | +--ro lsp-id? lsp-id | | +--ro instance-name? string | |||
| +---n corrupted-lsp-detected | | +--ro instance-level? level | |||
| | +--ro instance-name? string | | +--ro interface-name? string | |||
| | +--ro instance-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 instance-name? string | | +--ro raw-pdu? binary | |||
| | +--ro instance-level? level | +---n max-area-addresses-mismatch | |||
| | +--ro lsp-id? lsp-id | | +--ro instance-name? string | |||
| +---n id-len-mismatch | | +--ro instance-level? level | |||
| | +--ro instance-name? string | | +--ro interface-name? string | |||
| | +--ro instance-level? level | | +--ro interface-level? level | |||
| | +--ro interface-name? string | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro interface-level? level | | +--ro max-area-addresses? uint8 | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro raw-pdu? binary | |||
| | +--ro pdu-field-len? uint8 | +---n own-lsp-purge | |||
| | +--ro raw-pdu? binary | | +--ro instance-name? string | |||
| +---n max-area-addresses-mismatch | | +--ro instance-level? level | |||
| | +--ro instance-name? string | | +--ro interface-name? string | |||
| | +--ro instance-level? level | | +--ro interface-level? level | |||
| | +--ro interface-name? string | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro interface-level? level | | +--ro lsp-id? lsp-id | |||
| | +--ro extended-circuit-id? extended-circuit-id | +---n sequence-number-skipped | |||
| | +--ro max-area-addresses? uint8 | | +--ro instance-name? string | |||
| | +--ro raw-pdu? binary | | +--ro instance-level? level | |||
| +---n own-lsp-purge | | +--ro interface-name? string | |||
| | +--ro instance-name? string | | +--ro interface-level? level | |||
| | +--ro instance-level? level | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro interface-name? string | | +--ro lsp-id? lsp-id | |||
| | +--ro interface-level? level | +---n authentication-type-failure | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro instance-name? string | |||
| | +--ro lsp-id? lsp-id | | +--ro instance-level? level | |||
| +---n sequence-number-skipped | | +--ro interface-name? string | |||
| | +--ro instance-name? string | | +--ro interface-level? level | |||
| | +--ro instance-level? level | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro interface-name? string | | +--ro raw-pdu? binary | |||
| | +--ro interface-level? level | +---n authentication-failure | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro instance-name? string | |||
| | +--ro lsp-id? lsp-id | | +--ro instance-level? level | |||
| +---n authentication-type-failure | | +--ro interface-name? string | |||
| | +--ro instance-name? string | | +--ro interface-level? level | |||
| | +--ro instance-level? level | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro interface-name? string | | +--ro raw-pdu? binary | |||
| | +--ro interface-level? level | +---n version-skew | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro instance-name? string | |||
| | +--ro raw-pdu? binary | | +--ro instance-level? level | |||
| +---n authentication-failure | | +--ro interface-name? string | |||
| | +--ro instance-name? string | | +--ro interface-level? level | |||
| | +--ro instance-level? level | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro interface-name? string | | +--ro protocol-version? uint8 | |||
| | +--ro interface-level? level | | +--ro raw-pdu? binary | |||
| | +--ro extended-circuit-id? extended-circuit-id | +---n area-mismatch | |||
| | +--ro raw-pdu? binary | | +--ro instance-name? string | |||
| +---n version-skew | | +--ro instance-level? level | |||
| | +--ro instance-name? string | | +--ro interface-name? string | |||
| | +--ro instance-level? level | | +--ro interface-level? level | |||
| | +--ro interface-name? string | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro interface-level? level | | +--ro raw-pdu? binary | |||
| | +--ro extended-circuit-id? extended-circuit-id | +---n rejected-adjacency | |||
| | +--ro protocol-version? uint8 | | +--ro instance-name? string | |||
| | +--ro raw-pdu? binary | | +--ro instance-level? level | |||
| +---n area-mismatch | | +--ro interface-name? string | |||
| | +--ro instance-name? string | | +--ro interface-level? level | |||
| | +--ro instance-level? level | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro interface-name? string | | +--ro raw-pdu? binary | |||
| | +--ro interface-level? level | | +--ro reason? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | +---n protocols-supported-mismatch | |||
| | +--ro raw-pdu? binary | | +--ro instance-name? string | |||
| +---n rejected-adjacency | | +--ro instance-level? level | |||
| | +--ro instance-name? string | | +--ro interface-name? string | |||
| | +--ro instance-level? level | | +--ro interface-level? level | |||
| | +--ro interface-name? string | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro interface-level? level | | +--ro raw-pdu? binary | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro protocols* uint8 | |||
| | +--ro raw-pdu? binary | +---n lsp-error-detected | |||
| | +--ro reason? string | | +--ro instance-name? string | |||
| +---n protocols-supported-mismatch | | +--ro instance-level? level | |||
| | +--ro instance-name? string | | +--ro interface-name? string | |||
| | +--ro instance-level? level | | +--ro interface-level? level | |||
| | +--ro interface-name? string | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro interface-level? level | | +--ro lsp-id? lsp-id | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro raw-pdu? binary | |||
| | +--ro raw-pdu? binary | | +--ro error-offset? uint32 | |||
| | +--ro protocols* uint8 | | +--ro tlv-type? uint8 | |||
| +---n lsp-error-detected | +---n adjacency-change | |||
| | +--ro instance-name? string | | +--ro instance-name? string | |||
| | +--ro instance-level? level | | +--ro instance-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 raw-pdu? binary | | +--ro neighbor-system-id? system-id | |||
| | +--ro error-offset? uint32 | | +--ro level? level | |||
| | +--ro tlv-type? uint8 | | +--ro state? enumeration | |||
| +---n adjacency-change | | +--ro reason? string | |||
| | +--ro instance-name? string | +---n lsp-received | |||
| | +--ro instance-level? level | | +--ro instance-name? string | |||
| | +--ro interface-name? string | | +--ro instance-level? level | |||
| | +--ro interface-level? level | | +--ro interface-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-level? level | |||
| | +--ro neighbor? string | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro neighbor-system-id? system-id | | +--ro lsp-id? lsp-id | |||
| | +--ro level? level | | +--ro sequence? uint32 | |||
| | +--ro state? enumeration | | +--ro received-timestamp? yang:timestamp | |||
| | +--ro reason? string | | +--ro neighbor-system-id? system-id | |||
| +---n lsp-received | +---n lsp-generation | |||
| | +--ro instance-name? string | +--ro instance-name? string | |||
| | +--ro instance-level? level | +--ro instance-level? level | |||
| | +--ro interface-name? string | +--ro lsp-id? lsp-id | |||
| | +--ro interface-level? level | +--ro sequence? uint32 | |||
| | +--ro extended-circuit-id? extended-circuit-id | +--ro send-timestamp? yang:timestamp | |||
| | +--ro lsp-id? lsp-id | ||||
| | +--ro sequence? uint32 | ||||
| | +--ro received-timestamp? yang:timestamp | ||||
| | +--ro neighbor-system-id? system-id | ||||
| +---n lsp-generation | ||||
| +--ro instance-name? string | ||||
| +--ro instance-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). | |||
| It would to up to extension modules to augment this model to support | It would to up to extension modules to augment this model to support | |||
| skipping to change at page 11, line 7 ¶ | skipping to change at page 10, line 44 ¶ | |||
| | +--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 | An implementation SHOULD prefer a level specific parameter over | |||
| level-all parameter. As example, if priority is 100 for level-1, 200 | level-all parameter. As example, if priority is 100 for level-1, 200 | |||
| for level-2 and 250 for top level configuration, the implementation | for level-2 and 250 for top level configuration, the implementation | |||
| should use 100 for level-1 and 200 for level-2. | should use 100 for level-1 and 200 for level-2. | |||
| Some parameters like overload bit and route preference are not | Some parameters like overload bit and route preference are not | |||
| modelled for per level configuration. If an implementation supports | modelled for per level configuration. If an implementation supports | |||
| per level configuration for such parameter, the implementation SHOULD | per level configuration for such parameter, the implementation SHOULD | |||
| augment the current model by adding level-1 and level-2 containers | augment the current model by adding level-1 and level-2 containers | |||
| and reusing existing configuration groupings. | and reusing existing configuration groupings. | |||
| Example of augmentation : | Example of augmentation : | |||
| augment "/rt:routing/" + | augment "/rt:routing/" + | |||
| "rt:routing-protocols/rt:routing-protocol"+ | "rt:routing-protocols/rt:routing-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."; | |||
| } | } | |||
| } | } | |||
| Moreover, if an implementation does not support per level | Moreover, if an implementation does not support per level | |||
| configuration for a parameter, like priority, which has per level | configuration for a parameter, like priority, which has per level | |||
| configuration, the implementation SHOULD advertise a deviation to | configuration, the implementation SHOULD advertise a deviation to | |||
| announce the non support of the level-1 and level-2 containers. | announce the non support of the 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 18, line 32 ¶ | skipping to change at page 18, line 22 ¶ | |||
| configuration and operational states. | configuration and operational states. | |||
| The IS-IS SR YANG module requires the base segment routing module | The IS-IS SR YANG module requires the base segment routing module | |||
| ([I-D.ietf-spring-sr-yang]) to be supported as there is a strong | ([I-D.ietf-spring-sr-yang]) to be supported as there is a strong | |||
| relationship between those modules. | relationship between those modules. | |||
| The figure below describe the overall structure of the isis-sr YANG | The figure below describe the overall structure of the isis-sr YANG | |||
| module: | module: | |||
| module: ietf-isis-sr | module: ietf-isis-sr | |||
| augment /rt:routing/rt:routing-protocols/rt:routing-protocol/isis:isis: | augment /rt:routing/rt:control-plane-protocols/ | |||
| rt:control-plane-protocol/isis:isis: | ||||
| +--rw segment-routing | +--rw segment-routing | |||
| | +--rw enabled? boolean | | +--rw enabled? boolean | |||
| | +--rw bindings | | +--rw bindings | |||
| | +--rw advertise | | +--rw advertise | |||
| | | +--rw policies* string | | | +--rw policies* string | |||
| | +--rw receive? boolean | | +--rw receive? boolean | |||
| +--rw protocol-srgb {sr:protocol-srgb}? | +--rw protocol-srgb {sr:protocol-srgb}? | |||
| +--rw srgb* [lower-bound upper-bound] | +--rw srgb* [lower-bound upper-bound] | |||
| +--rw lower-bound uint32 | +--rw lower-bound uint32 | |||
| +--rw upper-bound uint32 | +--rw upper-bound uint32 | |||
| augment /rt:routing/rt:routing-protocols/rt:routing-protocol | augment /rt:routing/rt:control-plane-protocols/ | |||
| /isis:isis/isis:interfaces/isis:interface: | rt:control-plane-protocol/isis:isis/ | |||
| isis:interfaces/isis:interface: | ||||
| +--rw segment-routing | +--rw segment-routing | |||
| +--rw adjacency-sid | +--rw adjacency-sid | |||
| +--rw advertise-adj-group-sid* [group-id] | +--rw advertise-adj-group-sid* [group-id] | |||
| | +--rw group-id uint32 | | +--rw group-id uint32 | |||
| +--rw advertise-protection? enumeration | +--rw advertise-protection? enumeration | |||
| augment /rt:routing/rt:routing-protocols/rt:routing-protocol | augment /rt:routing/rt:control-plane-protocols/ | |||
| /isis:isis/isis:interfaces/isis:interface/isis:fast-reroute: | rt:control-plane-protocol/isis:isis/ | |||
| isis:interfaces/isis:interface/isis:fast-reroute: | ||||
| +--rw ti-lfa {ti-lfa}? | +--rw ti-lfa {ti-lfa}? | |||
| +--rw enable? boolean | +--rw enable? boolean | |||
| augment /rt:routing/rt:routing-protocols/rt:routing-protocol | augment /rt:routing/rt:control-plane-protocols/ | |||
| /isis:isis/isis:interfaces/isis:interface/isis:fast-reroute | rt:control-plane-protocol/isis:isis/ | |||
| /isis:lfa/isis:remote-lfa: | isis:interfaces/isis:interface/isis:fast-reroute/isis:lfa/isis:remote-lfa: | |||
| +--rw use-segment-routing-path? boolean {remote-lfa-sr}? | +--rw use-segment-routing-path? boolean {remote-lfa-sr}? | |||
| augment /rt:routing-state/rt:routing-protocols/rt:routing-protocol | augment /rt:routing-state/rt:control-plane-protocols/ | |||
| /isis:isis: | rt:control-plane-protocol/isis:isis: | |||
| +--ro segment-routing | +--ro segment-routing | |||
| | +--ro enabled? boolean | | +--ro enabled? boolean | |||
| | +--ro bindings | | +--ro bindings | |||
| | +--ro advertise | | +--ro advertise | |||
| | | +--ro policies* string | | | +--ro policies* string | |||
| | +--ro receive? boolean | | +--ro receive? boolean | |||
| +--ro protocol-srgb {sr:protocol-srgb}? | +--ro protocol-srgb {sr:protocol-srgb}? | |||
| +--ro srgb* [lower-bound upper-bound] | +--ro srgb* [lower-bound upper-bound] | |||
| +--ro lower-bound uint32 | +--ro lower-bound uint32 | |||
| +--ro upper-bound uint32 | +--ro upper-bound uint32 | |||
| augment /rt:routing-state/rt:routing-protocols/rt:routing-protocol | augment /rt:routing-state/rt:control-plane-protocols/ | |||
| /isis:isis/isis:interfaces/isis:interface: | rt:control-plane-protocol/isis:isis/ | |||
| isis:interfaces/isis:interface: | ||||
| +--ro segment-routing | +--ro segment-routing | |||
| +--ro adjacency-sid | +--ro adjacency-sid | |||
| +--ro advertise-adj-group-sid* [group-id] | +--ro advertise-adj-group-sid* [group-id] | |||
| | +--ro group-id uint32 | | +--ro group-id uint32 | |||
| +--ro advertise-protection? enumeration | +--ro advertise-protection? enumeration | |||
| augment /rt:routing-state/rt:routing-protocols/rt:routing-protocol | augment /rt:routing-state/rt:control-plane-protocols/ | |||
| /isis:isis/isis:interfaces/isis:interface/isis:adjacencies | rt:control-plane-protocol/isis:isis/ | |||
| /isis:adjacency: | isis:interfaces/isis:interface/isis:adjacencies/isis:adjacency: | |||
| +--ro adjacency-sid* [value] | +--ro adjacency-sid* [value] | |||
| +--ro af? identityref | +--ro af? identityref | |||
| +--ro value uint32 | +--ro value uint32 | |||
| +--ro weight? uint8 | +--ro weight? uint8 | |||
| +--ro protection-requested? boolean | +--ro protection-requested? boolean | |||
| augment /rt:routing-state/rt:routing-protocols/rt:routing-protocol | augment /rt:routing-state/rt:control-plane-protocols/ | |||
| /isis:isis/isis:database/isis:level-db/isis:lsp | rt:control-plane-protocol/isis:isis/ | |||
| /isis:extended-is-neighbor/isis:neighbor: | isis:database/isis:level-db/isis:lsp/isis:extended-is-neighbor/ | |||
| isis:neighbor: | ||||
| +--ro sid-list* [value] | +--ro sid-list* [value] | |||
| +--ro flags? bits | +--ro flags? bits | |||
| +--ro weight? uint8 | +--ro weight? uint8 | |||
| +--ro neighbor-id? isis:system-id | +--ro neighbor-id? isis:system-id | |||
| +--ro value uint32 | +--ro value uint32 | |||
| augment /rt:routing-state/rt:routing-protocols/rt:routing-protocol | augment /rt:routing-state/rt:control-plane-protocols/ | |||
| /isis:isis/isis:database/isis:level-db/isis:lsp | rt:control-plane-protocol/isis:isis/ | |||
| /isis:mt-is-neighbor/isis:neighbor: | isis:database/isis:level-db/isis:lsp/isis:mt-is-neighbor/ | |||
| isis:neighbor: | ||||
| +--ro sid-list* [value] | +--ro sid-list* [value] | |||
| +--ro flags? bits | +--ro flags? bits | |||
| +--ro weight? uint8 | +--ro weight? uint8 | |||
| +--ro neighbor-id? isis:system-id | +--ro neighbor-id? isis:system-id | |||
| +--ro value uint32 | +--ro value uint32 | |||
| augment /rt:routing-state/rt:routing-protocols/rt:routing-protocol | augment /rt:routing-state/rt:control-plane-protocols/ | |||
| /isis:isis/isis:database/isis:level-db/isis:lsp | rt:control-plane-protocol/isis:isis/isis:database/ | |||
| /isis:extended-ipv4-reachability/isis:prefixes: | isis:level-db/isis:lsp/isis:extended-ipv4-reachability/ | |||
| isis:prefixes: | ||||
| +--ro sid-list* [value] | +--ro sid-list* [value] | |||
| +--ro flags? bits | +--ro flags? bits | |||
| +--ro algorithm? uint8 | +--ro algorithm? uint8 | |||
| +--ro value uint32 | +--ro value uint32 | |||
| augment /rt:routing-state/rt:routing-protocols/rt:routing-protocol | augment /rt:routing-state/rt:control-plane-protocols/ | |||
| /isis:isis/isis:database/isis:level-db/isis:lsp | rt:control-plane-protocol/isis:isis/ | |||
| /isis:mt-extended-ipv4-reachability/isis:prefixes: | isis:database/isis:level-db/isis:lsp/ | |||
| isis:mt-extended-ipv4-reachability/isis:prefixes: | ||||
| +--ro sid-list* [value] | +--ro sid-list* [value] | |||
| +--ro flags? bits | +--ro flags? bits | |||
| +--ro algorithm? uint8 | +--ro algorithm? uint8 | |||
| +--ro value uint32 | +--ro value uint32 | |||
| augment /rt:routing-state/rt:routing-protocols/rt:routing-protocol | augment /rt:routing-state/rt:control-plane-protocols/ | |||
| /isis:isis/isis:database/isis:level-db/isis:lsp | rt:control-plane-protocol/isis:isis/ | |||
| /isis:ipv6-reachability/isis:prefixes: | isis:database/isis:level-db/isis:lsp/ | |||
| isis:ipv6-reachability/isis:prefixes: | ||||
| +--ro sid-list* [value] | +--ro sid-list* [value] | |||
| +--ro flags? bits | +--ro flags? bits | |||
| +--ro algorithm? uint8 | +--ro algorithm? uint8 | |||
| +--ro value uint32 | +--ro value uint32 | |||
| augment /rt:routing-state/rt:routing-protocols/rt:routing-protocol | augment /rt:routing-state/rt:control-plane-protocols/ | |||
| /isis:isis/isis:database/isis:level-db/isis:lsp | rt:control-plane-protocol/isis:isis/ | |||
| /isis:mt-ipv6-reachability/isis:prefixes: | isis:database/isis:level-db/isis:lsp/isis:mt-ipv6-reachability/ | |||
| isis:prefixes: | ||||
| +--ro sid-list* [value] | +--ro sid-list* [value] | |||
| +--ro flags? bits | +--ro flags? bits | |||
| +--ro algorithm? uint8 | +--ro algorithm? uint8 | |||
| +--ro value uint32 | +--ro value uint32 | |||
| augment /rt:routing-state/rt:routing-protocols/rt:routing-protocol | augment /rt:routing-state/rt:control-plane-protocols/ | |||
| /isis:isis/isis:database/isis:level-db/isis:lsp: | rt:control-plane-protocol/isis:isis/ | |||
| isis:database/isis:level-db/isis:lsp: | ||||
| +--ro segment-routing-bindings* [fec range] | +--ro segment-routing-bindings* [fec range] | |||
| +--ro fec string | +--ro fec string | |||
| +--ro range uint16 | +--ro range uint16 | |||
| +--ro flags? bits | +--ro flags? bits | |||
| +--ro weight? uint8 | +--ro weight? uint8 | |||
| +--ro binding* | +--ro binding | |||
| +--ro prefix-sid | +--ro prefix-sid | |||
| | +--ro sid-list* [value] | | +--ro sid-list* [value] | |||
| | +--ro flags? bits | | +--ro flags? bits | |||
| | +--ro algorithm? uint8 | | +--ro algorithm? uint8 | |||
| | +--ro value uint32 | | +--ro value uint32 | |||
| +--ro ero-metric? uint32 | +--ro ero-metric? uint32 | |||
| +--ro ero | +--ro ero | |||
| | +--ro address-family? identityref | | +--ro address-family? identityref | |||
| | +--ro loose? boolean | | +--ro loose? boolean | |||
| | +--ro address? string | | +--ro address? string | |||
| skipping to change at page 21, line 40 ¶ | skipping to change at page 21, line 10 ¶ | |||
| 5.3. IP Fast reroute | 5.3. IP Fast reroute | |||
| IS-IS SR model augments the fast-reroute container under interface. | IS-IS SR model augments the fast-reroute container under interface. | |||
| It brings the ability to activate TI-LFA (topology independent LFA) | It brings the ability to activate TI-LFA (topology independent LFA) | |||
| and also enhances remote LFA to use segment-routing tunneling instead | and also enhances remote LFA to use segment-routing tunneling instead | |||
| of LDP. | of LDP. | |||
| 6. Interaction with Other YANG Modules | 6. Interaction with Other YANG Modules | |||
| The "isis" configuration container augments the "/rt:routing/ | The "isis" configuration container augments the "/rt:routing/ | |||
| rt:routing-protocols/routing-protocol" container of the ietf-routing | rt:control-plane-protocols/control-plane-protocol" container of the | |||
| [I-D.ietf-netmod-routing-cfg] module by defining IS-IS specific | ietf-routing [I-D.ietf-netmod-routing-cfg] module by defining IS-IS | |||
| parameters. | specific parameters. | |||
| The "isis" module augments "/if:interfaces/if:interface" with ISO | The "isis" module augments "/if:interfaces/if:interface" with ISO | |||
| specific parameters. | specific parameters. | |||
| The "isis" operational state container augments the "/rt:routing- | The "isis" operational state container augments the "/rt:routing- | |||
| state/rt:routing-protocols/routing-protocol" container of the ietf- | state/rt:control-plane-protocols/control-plane-protocol" container of | |||
| routing module by defining IS-IS specific operational states. | the ietf-routing module by defining IS-IS specific operational | |||
| states. | ||||
| Some IS-IS specific routes attributes are added to route objects of | Some IS-IS specific routes attributes are added to route objects of | |||
| the ietf-routing module by augmenting "/rt:routing- | the ietf-routing module by augmenting "/rt:routing- | |||
| state/rt:ribs/rt:rib/rt:routes/rt:route" and "/rt:fib- | state/rt:ribs/rt:rib/rt:routes/rt:route". | |||
| route/rt:output/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] and ietf-segment routing | keychain [I-D.ietf-rtgwg-yang-key-chain] and ietf-segment routing | |||
| [I-D.ietf-spring-sr-yang]. | [I-D.ietf-spring-sr-yang]. | |||
| 7. IS-IS YANG Module | 7. IS-IS YANG Module | |||
| <CODE BEGINS> file "ietf-isis@2016-03-21.yang" | <CODE BEGINS> file "ietf-isis@2016-09-20.yang" | |||
| module ietf-isis { | module ietf-isis { | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-isis"; | namespace "urn:ietf:params:xml:ns:yang:ietf-isis"; | |||
| prefix isis; | prefix isis; | |||
| import ietf-routing { | import ietf-routing { | |||
| prefix "rt"; | prefix "rt"; | |||
| } | } | |||
| import ietf-inet-types { | import ietf-inet-types { | |||
| prefix inet; | prefix inet; | |||
| } | } | |||
| import ietf-yang-types { | import ietf-yang-types { | |||
| prefix yang; | prefix yang; | |||
| } | } | |||
| import ietf-interfaces { | import ietf-interfaces { | |||
| prefix "if"; | prefix "if"; | |||
| } | } | |||
| import ietf-routing-key-chain { | import ietf-key-chain { | |||
| prefix "key-chain"; | prefix "key-chain"; | |||
| } | } | |||
| organization | organization | |||
| "IETF ISIS Working Group"; | "IETF ISIS 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:myeung@cisco.com> | <mailto:myeung@cisco.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:jeff.tantsura@ericsson.com> | <mailto:jeff.tantsura@ericsson.com> | |||
| "; | "; | |||
| description | description | |||
| "The YANG module defines a generic configuration model for | "The YANG module defines a generic configuration model for | |||
| ISIS common across all of the vendor implementations."; | ISIS common across all of the vendor implementations."; | |||
| revision 2016-03-21 { | revision 2016-09-20 { | |||
| description | description | |||
| " | " | |||
| - remove routing-instance as per core routing model v21 | Align to draft-ietf-netmod-routing-cfg-23. | |||
| - added BFD leaf (no more BFD protocol model) | "; | |||
| - changed keychain module reference | reference "draft-ietf-isis-yang-isis-cfg-09"; | |||
| "; | } | |||
| reference "draft-ietf-isis-yang-isis-cfg-09"; | revision 2016-05-30 { | |||
| } | description | |||
| " | ||||
| Added container before af list | ||||
| Added container before topology list | ||||
| Aligned LFA if per level cfg | ||||
| "; | ||||
| reference ""; | ||||
| } | ||||
| revision 2016-03-21 { | ||||
| description | ||||
| " | ||||
| - remove routing-instance as per core routing model v21 | ||||
| - added BFD leaf (no more BFD protocol model) | ||||
| - changed keychain module reference | ||||
| "; | ||||
| reference "draft-ietf-isis-yang-isis-cfg-08"; | ||||
| } | ||||
| revision 2015-12-17 { | revision 2015-12-17 { | |||
| description | description | |||
| "Moved lists to containers+groupings for per level | "Moved lists to containers+groupings for per level | |||
| configuration."; | configuration."; | |||
| reference "draft-ietf-isis-yang-isis-cfg-08"; | reference ""; | |||
| } | } | |||
| revision 2015-11-25 { | revision 2015-11-25 { | |||
| description | description | |||
| " | " | |||
| * Remove selector from system-id type | * Remove selector from system-id type | |||
| * Added some defaults | * Added some defaults | |||
| "; | "; | |||
| reference ""; | reference ""; | |||
| } | } | |||
| revision 2015-11-18 { | revision 2015-11-18 { | |||
| description | description | |||
| " | " | |||
| * Move Overload config from list to container | * Move Overload config from list to container | |||
| * Move Overload-max-metric config from list to container | * Move Overload-max-metric config from list to container | |||
| * Move preference config from list to container | * Move preference config from list to container | |||
| * Add Node flag in config | * Add Node flag in config | |||
| * Removed BFD config => moved to isis-bfd module | * Removed BFD config => moved to isis-bfd module | |||
| * Remove call to routing policy model | * Remove call to routing policy model | |||
| (waiting stabilization to add it) | (waiting stabilization to add it) | |||
| "; | "; | |||
| reference "draft-ietf-isis-yang-isis-cfg-07"; | reference "draft-ietf-isis-yang-isis-cfg-07"; | |||
| } | } | |||
| revision 2015-09-10 { | revision 2015-09-10 { | |||
| description | description | |||
| " * Correct invalid references to previous | " * Correct invalid references to previous | |||
| versions core routing model. | versions core routing model. | |||
| * Moved BFD config to usage of ietf-bfd yang grouping | * Moved BFD config to usage of ietf-bfd yang grouping | |||
| * Adding routing-policy support through routing-policy model | * Adding routing-policy support through routing-policy model | |||
| "; | "; | |||
| reference "draft-ietf-isis-yang-isis-05"; | reference "draft-ietf-isis-yang-isis-05"; | |||
| } | } | |||
| revision 2015-06-22 { | revision 2015-06-22 { | |||
| description | description | |||
| " * Segment routing is part os a separate module."; | " * Segment routing is part os a separate module."; | |||
| reference "draft-ietf-isis-yang-isis-03"; | reference "draft-ietf-isis-yang-isis-03"; | |||
| } | } | |||
| revision 2015-03-03 { | revision 2015-03-03 { | |||
| description | description | |||
| " * Reviewed config and op state groupings. | " * Reviewed config and op state groupings. | |||
| * Add default value to lfa candidate-disabled | * Add default value to lfa candidate-disabled | |||
| * Add enable leaf to isis container to reflect admin state | * Add enable leaf to isis container to reflect admin state | |||
| * Move to VRF centric only | * Move to VRF centric only | |||
| "; | "; | |||
| reference ""; | reference ""; | |||
| } | } | |||
| revision 2015-03-03 { | revision 2015-03-03 { | |||
| description | description | |||
| " | " | |||
| * Defining hierarchy for operational states | * Defining hierarchy for operational states | |||
| * Adding CLNS MTU | * Adding CLNS MTU | |||
| * Adding Keychain | * Adding Keychain | |||
| "; | "; | |||
| reference "draft-ietf-isis-yang-isis-02"; | reference "draft-ietf-isis-yang-isis-02"; | |||
| } | } | |||
| revision 2015-02-20 { | revision 2015-02-20 { | |||
| description | description | |||
| " | " | |||
| * Removing igp-ldp-sync timer in IS-IS | * Removing igp-ldp-sync timer in IS-IS | |||
| "; | "; | |||
| reference ""; | reference ""; | |||
| } | } | |||
| revision 2014-12-15 { | revision 2014-12-15 { | |||
| description | description | |||
| " | " | |||
| * Adding IPFRR | * Adding IPFRR | |||
| * Adding igp-ldp sync | * Adding igp-ldp sync | |||
| * Adding segment routing | * Adding segment routing | |||
| * Adding instance reference to operational states. | * Adding instance reference to operational states. | |||
| * Move AF type from string to identity | * Move AF type from string to identity | |||
| * Updated router-capability in LSDB description. | * Updated router-capability in LSDB description. | |||
| * packet counters moved to interface-packet-counters. | * packet counters moved to interface-packet-counters. | |||
| * Added modification information in lsp-log | ||||
| "; | * Added modification information in lsp-log | |||
| reference ""; | "; | |||
| } | reference ""; | |||
| revision 2014-10-24 { | } | |||
| description | revision 2014-10-24 { | |||
| " | description | |||
| * Change hello-padding to container | " | |||
| * Change bfd to container | * Change hello-padding to container | |||
| * Make BFD a feature | * Change bfd to container | |||
| * Creates mpls-te container and put router-id | * Make BFD a feature | |||
| inside | * Creates mpls-te container and put router-id | |||
| * Remove GR helper disable and timers | inside | |||
| "; | * Remove GR helper disable and timers | |||
| reference "draft-ietf-isis-yang-isis-cfg-01"; | "; | |||
| } | reference "draft-ietf-isis-yang-isis-cfg-01"; | |||
| revision 2014-10-21 { | } | |||
| description | revision 2014-10-21 { | |||
| " | description | |||
| * Interface metric move from af container to interface | " | |||
| container | * Interface metric move from af container to interface | |||
| * Hello-padding on interface moved to hello-padding-disable | container | |||
| with empty type | * Hello-padding on interface moved to hello-padding-disable | |||
| * three-way-handshake removed | with empty type | |||
| * route preference changed to a choice | * three-way-handshake removed | |||
| * csnp-authentication/psnp-authentication merged | * route preference changed to a choice | |||
| to authentication container | * csnp-authentication/psnp-authentication merged | |||
| * lsp-gen-interval-exp-delay removed | to authentication container | |||
| * Added overload-max-metric feature | * lsp-gen-interval-exp-delay removed | |||
| * overload-max-metric is in a separate container | * Added overload-max-metric feature | |||
| "; | * overload-max-metric is in a separate container | |||
| reference ""; | "; | |||
| } | reference ""; | |||
| revision 2014-10-07 { | } | |||
| description | ||||
| " | revision 2014-10-07 { | |||
| * Removed spf parameters (should be part of | description | |||
| vendor specific extensions. | " | |||
| * Removed hello parameters at global level. | * Removed spf parameters (should be part of | |||
| * Interface configuration uses a string rather | vendor specific extensions. | |||
| than a reference. This permits to map to some | * Removed hello parameters at global level. | |||
| vendor specific configuration. | * Interface configuration uses a string rather | |||
| "; | than a reference. This permits to map to some | |||
| reference "draft-ietf-isis-yang-isis-00"; | vendor specific configuration. | |||
| } | "; | |||
| revision 2014-09-26 { | reference "draft-ietf-isis-yang-isis-00"; | |||
| description | } | |||
| " | revision 2014-09-26 { | |||
| * Add BFD support | description | |||
| * remove max-elements to max-area-addresses | " | |||
| "; | * Add BFD support | |||
| reference ""; | * remove max-elements to max-area-addresses | |||
| } | "; | |||
| revision 2014-09-11 { | reference ""; | |||
| description | } | |||
| revision 2014-09-11 { | ||||
| description | ||||
| " | ||||
| * Add level parameter to ispf and spf delay | ||||
| * Add LSP generation as a feature | ||||
| * Make lsp-refresh a feature | ||||
| * Change parameter container to list | ||||
| "; | ||||
| reference ""; | ||||
| } | ||||
| revision 2014-09-05 { | ||||
| description | ||||
| " Rewrite of the global hierarchy."; | ||||
| reference ""; | ||||
| } | ||||
| revision 2014-08-06 { | ||||
| description | ||||
| " | " | |||
| * Add level parameter to ispf and spf delay | * isis-state renamed to isis. | |||
| * Add LSP generation as a feature | * Add GR support | |||
| * Make lsp-refresh a feature | * Add meshgroup support | |||
| * Change parameter container to list | * Add CLNS support | |||
| * Add 64bits tags | ||||
| * Add notifications to be aligned with MIB4444 | ||||
| * Add packet-counters, interface-counters, system-counters | ||||
| states | ||||
| * Add 3-way handshake support | ||||
| * Rename isis-adjacency-updown to adjacency-change | ||||
| * Add notification for LSP reception | ||||
| * Use feature for reference BW | ||||
| * Add lsp-retransmit-interval on interfaces | ||||
| * Rename lsp-interval to lsp-pacing-interval | ||||
| * Add ispf support as feature | ||||
| * Add spf delay support as feature (2step & exp backoff) | ||||
| * Add maximum-area-addresses | ||||
| * Add default-metric | ||||
| "; | "; | |||
| reference ""; | reference "RFC XXXX: YANG Data Model for ISIS Protocol"; | |||
| } | } | |||
| revision 2014-09-05 { | revision 2014-06-25 { | |||
| description | description " | |||
| " Rewrite of the global hierarchy."; | * isis-cfg renamed to isis. | |||
| reference ""; | ||||
| } | ||||
| revision 2014-08-06 { | ||||
| description | ||||
| " | ||||
| * isis-state renamed to isis. | ||||
| * Add GR support | ||||
| * Add meshgroup support | ||||
| * Add CLNS support | ||||
| * Add 64bits tags | ||||
| * Add notifications to be aligned with MIB4444 | ||||
| * Add packet-counters, interface-counters, system-counters | ||||
| states | ||||
| * Add 3-way handshake support | ||||
| * Rename isis-adjacency-updown to adjacency-change | ||||
| * Add notification for LSP reception | ||||
| * Use feature for reference BW | ||||
| * Add lsp-retransmit-interval on interfaces | ||||
| * Rename lsp-interval to lsp-pacing-interval | ||||
| * Add ispf support as feature | ||||
| * Add spf delay support as feature (2step & exp backoff) | ||||
| * Add maximum-area-addresses | ||||
| * Add default-metric | ||||
| "; | ||||
| reference "RFC XXXX: YANG Data Model for ISIS Protocol"; | ||||
| } | ||||
| revision 2014-06-25 { | ||||
| description " | ||||
| * isis-cfg renamed to isis. | ||||
| * Add precisions on authentication-keys in description | ||||
| "; | ||||
| reference "draft-litkowski-isis-yang-isis-01"; | ||||
| } | ||||
| revision 2014-06-20 { | * Add precisions on authentication-keys in description | |||
| description " | "; | |||
| * isis-op renamed to isis-state. | reference "draft-litkowski-isis-yang-isis-01"; | |||
| * Multiple instances under ISIS are removed. | } | |||
| * interface-cfg grouping removed and content | ||||
| is directly included in container isis. | ||||
| * TLVxx renamed with human-readable name in isis-database. | ||||
| TLV reference are putted in description. | ||||
| * Reference to core routing module were fixed. | ||||
| * Namespace fixed. | ||||
| * Add simple-iso-address type. | ||||
| * area-id and system-id in ISIS container are merged to | ||||
| nsap-address. | ||||
| * Add isis-system-id type. | ||||
| * Add isis-lsp-id type. | ||||
| * Add remaining-lifetime leaf in isis-database. | ||||
| * Add TLV2 (is-neighbor) in isis-database. | ||||
| * Renamed some container name for consistency | ||||
| reason ('isis-' prefixed). | ||||
| * Add new identities isis-cfg and isis-state. | ||||
| * Add descriptions. | ||||
| * Add notification isis-adjacency-updown. | ||||
| * Add RPC clear-isis-adjacency and clear-isis-database. | ||||
| "; | ||||
| reference "draft-litkowski-isis-yang-isis-00"; | ||||
| } | ||||
| revision 2014-06-11 { | revision 2014-06-20 { | |||
| description "Initial revision."; | description " | |||
| reference "draft-litkowski-netmod-isis-cfg-00"; | * isis-op renamed to isis-state. | |||
| } | * Multiple instances under ISIS are removed. | |||
| identity isis { | * interface-cfg grouping removed and content | |||
| base rt:routing-protocol; | is directly included in container isis. | |||
| description "Identity for the ISIS routing protocol."; | * TLVxx renamed with human-readable name in isis-database. | |||
| } | TLV reference are putted in description. | |||
| * Reference to core routing module were fixed. | ||||
| * Namespace fixed. | ||||
| * Add simple-iso-address type. | ||||
| * area-id and system-id in ISIS container are merged to | ||||
| nsap-address. | ||||
| * Add isis-system-id type. | ||||
| * Add isis-lsp-id type. | ||||
| * Add remaining-lifetime leaf in isis-database. | ||||
| * Add TLV2 (is-neighbor) in isis-database. | ||||
| * Renamed some container name for consistency | ||||
| reason ('isis-' prefixed). | ||||
| * Add new identities isis-cfg and isis-state. | ||||
| * Add descriptions. | ||||
| * Add notification isis-adjacency-updown. | ||||
| * Add RPC clear-isis-adjacency and clear-isis-database. | ||||
| "; | ||||
| reference "draft-litkowski-isis-yang-isis-00"; | ||||
| } | ||||
| identity isis-adjacency-change { | revision 2014-06-11 { | |||
| description "Identity for the ISIS routing protocol | description "Initial revision."; | |||
| adjacency state."; | reference "draft-litkowski-netmod-isis-cfg-00"; | |||
| } | } | |||
| identity isis { | ||||
| base rt:routing-protocol; | ||||
| description "Identity for the ISIS routing protocol."; | ||||
| } | ||||
| identity clear-isis-database { | identity isis-adjacency-change { | |||
| description "Identity for the ISIS routing protocol | description "Identity for the ISIS routing protocol | |||
| database reset action."; | adjacency state."; | |||
| } | } | |||
| identity clear-isis-adjacency { | identity clear-isis-database { | |||
| description "Identity for the ISIS routing protocol | description "Identity for the ISIS routing protocol | |||
| adjacency reset action."; | database reset action."; | |||
| } | } | |||
| /* Feature definitions */ | identity clear-isis-adjacency { | |||
| description "Identity for the ISIS routing protocol | ||||
| adjacency reset action."; | ||||
| } | ||||
| feature bfd { | /* Feature definitions */ | |||
| description | ||||
| "Support of BFD for IS-IS links."; | ||||
| } | ||||
| feature key-chain { | ||||
| description | ||||
| "Support of keychain for authentication."; | ||||
| } | ||||
| feature segment-routing { | ||||
| description | ||||
| "Support of segment-routing."; | ||||
| } | ||||
| feature node-flag { | ||||
| description | ||||
| "Support of node-flag advertisement | ||||
| as prefix attribute"; | ||||
| } | ||||
| feature node-tag { | ||||
| description | ||||
| "Support of node tag."; | ||||
| } | ||||
| feature igp-ldp-sync { | ||||
| description | ||||
| "Support of RFC5443."; | ||||
| } | ||||
| feature fast-reroute { | ||||
| description | ||||
| "Support of IPFRR."; | ||||
| } | ||||
| feature lfa { | ||||
| description | ||||
| "Support of Loop Free Alternates."; | ||||
| } | ||||
| feature remote-lfa { | ||||
| description | ||||
| "Support of remote Loop Free Alternates."; | ||||
| } | ||||
| feature overload-max-metric { | feature bfd { | |||
| description | description | |||
| "Support of overload by setting | "Support of BFD for IS-IS links."; | |||
| all links to max metric."; | } | |||
| } | feature key-chain { | |||
| feature prefix-tag { | ||||
| description | ||||
| "Add 32bit tag to prefixes"; | ||||
| } | ||||
| feature prefix-tag64 { | ||||
| description | ||||
| "Add 64bit tag to prefixes"; | ||||
| } | ||||
| feature reference-bandwidth { | ||||
| description | ||||
| "Use a reference bandwidth to compute metric."; | ||||
| } | ||||
| feature ipv4-router-id { | ||||
| description | description | |||
| "Support of IPv4 router ID configuration under ISIS."; | "Support of keychain for authentication."; | |||
| } | } | |||
| feature segment-routing { | ||||
| description | ||||
| "Support of segment-routing."; | ||||
| } | ||||
| feature node-flag { | ||||
| description | ||||
| "Support of node-flag advertisement | ||||
| as prefix attribute"; | ||||
| } | ||||
| feature node-tag { | ||||
| description | ||||
| "Support of node tag."; | ||||
| } | ||||
| feature igp-ldp-sync { | ||||
| description | ||||
| "Support of RFC5443."; | ||||
| } | ||||
| feature fast-reroute { | ||||
| description | ||||
| "Support of IPFRR."; | ||||
| } | ||||
| feature lfa { | ||||
| description | ||||
| "Support of Loop Free Alternates."; | ||||
| } | ||||
| feature remote-lfa { | ||||
| description | ||||
| "Support of remote Loop Free Alternates."; | ||||
| } | ||||
| feature overload-max-metric { | ||||
| description | ||||
| "Support of overload by setting | ||||
| all links to max metric."; | ||||
| } | ||||
| feature prefix-tag { | ||||
| description | ||||
| "Add 32bit tag to prefixes"; | ||||
| } | ||||
| feature prefix-tag64 { | ||||
| description | ||||
| "Add 64bit tag to prefixes"; | ||||
| } | ||||
| feature reference-bandwidth { | ||||
| description | ||||
| "Use a reference bandwidth to compute metric."; | ||||
| } | ||||
| feature ipv4-router-id { | ||||
| description | ||||
| "Support of IPv4 router ID configuration under ISIS."; | ||||
| } | ||||
| feature ipv6-router-id { | feature ipv6-router-id { | |||
| description | description | |||
| "Support of IPv6 router ID configuration under ISIS."; | "Support of IPv6 router ID configuration under ISIS."; | |||
| } | } | |||
| feature multi-topology { | feature multi-topology { | |||
| description | description | |||
| "Multitopology routing support."; | "Multitopology routing support."; | |||
| } | } | |||
| feature nlpid-control { | feature nlpid-control { | |||
| description | description | |||
| "This feature controls the advertisement | "This feature controls the advertisement | |||
| of support NLPID within ISIS configuration."; | of support NLPID within ISIS configuration."; | |||
| } | } | |||
| feature graceful-restart { | feature graceful-restart { | |||
| description | description | |||
| "Graceful restart support as per RFC5306."; | "Graceful restart support as per RFC5306."; | |||
| } | } | |||
| feature lsp-refresh { | feature lsp-refresh { | |||
| description | description | |||
| "Configuration of LSP refresh interval."; | "Configuration of LSP refresh interval."; | |||
| } | } | |||
| feature maximum-area-addresses { | feature maximum-area-addresses { | |||
| description | description | |||
| "Support of maximum-area-addresses config."; | "Support of maximum-area-addresses config."; | |||
| } | } | |||
| feature admin-control { | feature admin-control { | |||
| description | description | |||
| "Control administrative state of ISIS."; | "Control administrative state of ISIS."; | |||
| } | } | |||
| /* 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:routing-protocols/rt:routing-protocol/rt:name"; | +"rt:control-plane-protocols/rt:control-plane-protocol/rt:name"; | |||
| } | ||||
| description | ||||
| "This type is used for leaves that reference state data of | ||||
| an ISIS protocol instance."; | ||||
| } | } | |||
| description | ||||
| "This type is used for leaves that reference state data of | ||||
| an ISIS protocol instance."; | ||||
| } | ||||
| typedef admin-state { | typedef admin-state { | |||
| 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 | ||||
| "Administrative state of a component."; | ||||
| } | } | |||
| description | typedef oper-state { | |||
| "Administrative state of a component."; | type enumeration { | |||
| } | enum "up" { | |||
| typedef oper-state { | description | |||
| type enumeration { | "Up state"; | |||
| enum "up" { | } | |||
| description | enum "down" { | |||
| "Up state"; | description | |||
| } | "Down state"; | |||
| enum "down" { | } | |||
| description | ||||
| "Down state"; | ||||
| } | } | |||
| description | ||||
| "Operational state of a component."; | ||||
| } | ||||
| typedef circuit-id { | ||||
| type uint8; | ||||
| description | ||||
| "This type defines the circuit ID | ||||
| associated with an interface."; | ||||
| } | } | |||
| description | ||||
| "Operational state of a component."; | ||||
| } | ||||
| typedef circuit-id { | ||||
| type uint8; | ||||
| description | ||||
| "This type defines the circuit ID | ||||
| associated with an interface."; | ||||
| } | ||||
| typedef extended-circuit-id { | typedef extended-circuit-id { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "This type defines the extended circuit ID | "This type defines the extended circuit ID | |||
| associated with an interface."; | associated with an interface."; | |||
| } | } | |||
| typedef interface-type { | typedef interface-type { | |||
| type enumeration { | type enumeration { | |||
| enum broadcast { | enum broadcast { | |||
| description "Broadcast interface type. | description "Broadcast interface type. | |||
| Would result in DIS election."; | Would result in DIS election."; | |||
| } | } | |||
| enum point-to-point { | enum point-to-point { | |||
| description | description | |||
| "Point to point interface type."; | "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."; | ||||
| } | } | |||
| 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 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."; | ||||
| 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"; | |||
| default "level-all"; | description | |||
| description | "This type defines ISIS level of an object."; | |||
| "This type defines ISIS level of an object."; | ||||
| } | ||||
| typedef level-number { | ||||
| type uint8 { | ||||
| range "1 .. 2"; | ||||
| } | } | |||
| description | ||||
| "This type defines a current ISIS level."; | ||||
| } | ||||
| typedef lsp-id { | typedef level-number { | |||
| type string { | type uint8 { | |||
| pattern | range "1 .. 2"; | |||
| '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]' | } | |||
| +'{4}\.[0-9][0-9]-[0-9][0-9]'; | description | |||
| "This type defines a current ISIS level."; | ||||
| } | } | |||
| description | ||||
| "This type defines ISIS LSP ID using pattern, | ||||
| system id looks like : 0143.0438.AeF0.02-01"; | ||||
| } | ||||
| typedef area-address { | typedef lsp-id { | |||
| type string { | type string { | |||
| pattern '[0-9A-Fa-f]{2}\.([0-9A-Fa-f]{4}\.){0,3}'; | pattern | |||
| '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]' | ||||
| +'{4}\.[0-9][0-9]-[0-9][0-9]'; | ||||
| } | ||||
| description | ||||
| "This type defines ISIS LSP ID using pattern, | ||||
| system id looks like : 0143.0438.AeF0.02-01"; | ||||
| } | } | |||
| description | ||||
| "This type defines the area address."; | ||||
| } | ||||
| typedef snpa { | typedef area-address { | |||
| type string { | type string { | |||
| length "0 .. 20"; | pattern '[0-9A-Fa-f]{2}\.([0-9A-Fa-f]{4}\.){0,3}'; | |||
| } | ||||
| description | ||||
| "This type defines the area address."; | ||||
| } | } | |||
| description | ||||
| "This type defines Subnetwork Point of Attachement format."; | ||||
| } | typedef snpa { | |||
| type string { | ||||
| length "0 .. 20"; | ||||
| } | ||||
| description | ||||
| "This type defines Subnetwork Point of Attachement format."; | ||||
| typedef system-id { | ||||
| type string { | ||||
| pattern | ||||
| '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}'; | ||||
| } | } | |||
| description | ||||
| "This type defines ISIS system id using pattern, | ||||
| system id looks like : 0143.0438.AeF0"; | ||||
| } | ||||
| typedef wide-metric { | typedef system-id { | |||
| type uint32 { | type string { | |||
| range "0 .. 16777215"; | pattern | |||
| '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}'; | ||||
| } | ||||
| description | ||||
| "This type defines ISIS system id using pattern, | ||||
| system id looks like : 0143.0438.AeF0"; | ||||
| } | } | |||
| description | ||||
| "This type defines wide style format | ||||
| of ISIS metric."; | ||||
| } | ||||
| typedef std-metric { | typedef wide-metric { | |||
| type uint8 { | type uint32 { | |||
| range "0 .. 63"; | range "0 .. 16777215"; | |||
| } | ||||
| description | ||||
| "This type defines wide style format | ||||
| of ISIS metric."; | ||||
| } | } | |||
| description | ||||
| "This type defines old style format | ||||
| of ISIS metric."; | ||||
| } | ||||
| typedef mesh-group-state { | typedef std-metric { | |||
| type enumeration { | type uint8 { | |||
| enum "meshInactive" { | range "0 .. 63"; | |||
| description | ||||
| "Interface is not part of a mesh group."; | ||||
| } | ||||
| enum "meshSet" { | ||||
| description | ||||
| "Interface is part of a mesh group."; | ||||
| } | ||||
| enum "meshBlocked" { | ||||
| description | ||||
| "LSPs must not be flooded over that interface."; | ||||
| } | } | |||
| description | ||||
| "This type defines old style format | ||||
| of ISIS metric."; | ||||
| } | } | |||
| description | ||||
| "This type describes meshgroup state of an interface"; | ||||
| } | ||||
| /* Grouping definitions */ | ||||
| grouping admin-control { | typedef mesh-group-state { | |||
| type enumeration { | ||||
| leaf enable { | enum "meshInactive" { | |||
| if-feature admin-control; | description | |||
| type boolean; | "Interface is not part of a mesh group."; | |||
| default true; | ||||
| description | ||||
| "Control the administrative | ||||
| state."; | ||||
| } | } | |||
| enum "meshSet" { | ||||
| description | ||||
| "Interface is part of a mesh group."; | ||||
| } | ||||
| enum "meshBlocked" { | ||||
| description | ||||
| "LSPs must not be flooded over that interface."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "This type describes meshgroup state of an interface"; | ||||
| } | ||||
| description | /* Grouping definitions */ | |||
| "Grouping for admin control."; | ||||
| } | ||||
| grouping adjacency-state { | ||||
| container adjacencies { | ||||
| list adjacency { | ||||
| leaf neighbor-systype { | ||||
| type level; | ||||
| description | ||||
| "Type of neighboring system"; | ||||
| } | grouping admin-control { | |||
| leaf neighbor-sysid { | ||||
| type system-id; | ||||
| description | ||||
| "The system-id of the neighbor"; | ||||
| } | leaf enable { | |||
| leaf neighbor-extended-circuit-id { | if-feature admin-control; | |||
| type extended-circuit-id; | type boolean; | |||
| description | default true; | |||
| "Circuit ID of the neighbor"; | description | |||
| } | "Control the administrative | |||
| leaf neighbor-snpa { | state."; | |||
| type snpa; | } | |||
| description | ||||
| "SNPA of the neighbor"; | ||||
| } | ||||
| leaf usage { | ||||
| type level; | ||||
| description | ||||
| "How is the adjacency used ? | ||||
| On a p2p link this might be level 1 and 2, | ||||
| but on a LAN, the usage will be level 1 | ||||
| between peers at L1 or level 2 between | ||||
| peers at L2."; | ||||
| } | ||||
| leaf hold-timer { | ||||
| type uint16; | ||||
| description | ||||
| "The holding time in seconds for this | ||||
| adjacency. This value is based on | ||||
| received hello PDUs and the elapsed | ||||
| time since receipt."; | ||||
| } | ||||
| leaf neighbor-priority { | ||||
| type uint8 { | ||||
| range "0 .. 127"; | ||||
| } | ||||
| description | ||||
| "Priority of the neighboring IS for becoming | ||||
| the DIS."; | ||||
| } | ||||
| leaf lastuptime { | ||||
| type yang:timestamp; | ||||
| description | ||||
| "When the adjacency most recently entered | ||||
| state 'up', measured in hundredths of a | ||||
| second since the last reinitialization of | ||||
| the network management subsystem. | ||||
| The value is 0 if the adjacency has never | ||||
| been in state 'up'."; | ||||
| } | description | |||
| leaf state { | "Grouping for admin control."; | |||
| type enumeration { | } | |||
| enum "Up" { | ||||
| description | ||||
| "This state describes that | ||||
| adjacency is established."; | ||||
| } | ||||
| enum "Down" { | ||||
| description | ||||
| "This state describes that | ||||
| adjacency is NOT established."; | ||||
| } | ||||
| enum "Init" { | ||||
| description | ||||
| "This state describes that | ||||
| adjacency is establishing."; | ||||
| } | ||||
| enum "Failed" { | ||||
| description | ||||
| "This state describes that | ||||
| adjacency is failed."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "This leaf describes the state of the | ||||
| interface."; | ||||
| } | ||||
| description | grouping adjacency-state { | |||
| "List of operational adjacencies."; | container adjacencies { | |||
| } | list adjacency { | |||
| description | leaf neighbor-systype { | |||
| "This container lists the adjacencies of | type level; | |||
| the local node."; | description | |||
| } | "Type of neighboring system"; | |||
| description | ||||
| "Adjacency state"; | ||||
| } | ||||
| grouping fast-reroute-global-state { | } | |||
| container protected-routes { | leaf neighbor-sysid { | |||
| list af-stats { | type system-id; | |||
| key "af prefix alternate"; | description | |||
| "The system-id of the neighbor"; | ||||
| leaf af { | } | |||
| type identityref { | leaf neighbor-extended-circuit-id { | |||
| base rt:address-family; | type extended-circuit-id; | |||
| } | ||||
| description | ||||
| "Address-family"; | ||||
| } | ||||
| leaf prefix { | ||||
| type string; | ||||
| description | ||||
| "Protected prefix."; | ||||
| } | ||||
| leaf alternate { | ||||
| type string; | ||||
| description | ||||
| "Alternate nexthop for the prefix."; | ||||
| } | ||||
| leaf alternate-type { | ||||
| type enumeration { | ||||
| enum equalcost { | ||||
| description | description | |||
| "ECMP alternate."; | "Circuit ID of the neighbor"; | |||
| } | } | |||
| enum lfa { | leaf neighbor-snpa { | |||
| type snpa; | ||||
| description | description | |||
| "LFA alternate."; | "SNPA of the neighbor"; | |||
| } | } | |||
| enum remote-lfa { | leaf usage { | |||
| type level; | ||||
| description | description | |||
| "Remote LFA alternate."; | "How is the adjacency used ? | |||
| On a p2p link this might be level 1 and 2, | ||||
| but on a LAN, the usage will be level 1 | ||||
| between peers at L1 or level 2 between | ||||
| peers at L2."; | ||||
| } | } | |||
| enum tunnel { | leaf hold-timer { | |||
| type uint16; | ||||
| description | description | |||
| "Tunnel based alternate | "The holding time in seconds for this | |||
| (like RSVP-TE or GRE)."; | adjacency. This value is based on | |||
| received hello PDUs and the elapsed | ||||
| time since receipt."; | ||||
| } | } | |||
| enum ti-lfa { | leaf neighbor-priority { | |||
| type uint8 { | ||||
| range "0 .. 127"; | ||||
| } | ||||
| description | description | |||
| "TI LFA alternate."; | "Priority of the neighboring IS for becoming | |||
| the DIS."; | ||||
| } | } | |||
| enum mrt { | leaf lastuptime { | |||
| type yang:timestamp; | ||||
| description | description | |||
| "MRT alternate."; | "When the adjacency most recently entered | |||
| state 'up', measured in hundredths of a | ||||
| second since the last reinitialization of | ||||
| the network management subsystem. | ||||
| The value is 0 if the adjacency has never | ||||
| been in state 'up'."; | ||||
| } | } | |||
| enum other { | leaf state { | |||
| type enumeration { | ||||
| enum "Up" { | ||||
| description | ||||
| "This state describes that | ||||
| adjacency is established."; | ||||
| } | ||||
| enum "Down" { | ||||
| description | ||||
| "This state describes that | ||||
| adjacency is NOT established."; | ||||
| } | ||||
| enum "Init" { | ||||
| description | ||||
| "This state describes that | ||||
| adjacency is establishing."; | ||||
| } | ||||
| enum "Failed" { | ||||
| description | ||||
| "This state describes that | ||||
| adjacency is failed."; | ||||
| } | ||||
| } | ||||
| description | description | |||
| "Unknown alternate type."; | "This leaf describes the state of the | |||
| interface."; | ||||
| } | } | |||
| description | ||||
| "List of operational adjacencies."; | ||||
| } | } | |||
| description | description | |||
| "Type of alternate."; | "This container lists the adjacencies of | |||
| } | the local node."; | |||
| leaf best { | ||||
| type boolean; | ||||
| description | ||||
| "describes if the alternate is the best one."; | ||||
| } | ||||
| leaf non-best-reason { | ||||
| type string; | ||||
| description | ||||
| "Information field to describe why the alternate | ||||
| is not best."; | ||||
| } | } | |||
| leaf protection-available { | description | |||
| type bits { | "Adjacency state"; | |||
| bit nodeprotect { | } | |||
| position 0; | ||||
| description | grouping fast-reroute-global-state { | |||
| "Node protection available."; | container protected-routes { | |||
| } | list af-stats { | |||
| bit linkprotect { | key "af prefix alternate"; | |||
| position 1; | ||||
| description | leaf af { | |||
| "Link protection available."; | type identityref { | |||
| } | base rt:address-family; | |||
| bit srlgprotect { | ||||
| position 2; | ||||
| description | ||||
| "SRLG protection available."; | ||||
| } | } | |||
| bit downstreamprotect { | description | |||
| position 3; | "Address-family"; | |||
| description | } | |||
| "Downstream protection available."; | leaf prefix { | |||
| type string; | ||||
| description | ||||
| "Protected prefix."; | ||||
| } | ||||
| leaf alternate { | ||||
| type string; | ||||
| description | ||||
| "Alternate nexthop for the prefix."; | ||||
| } | ||||
| leaf alternate-type { | ||||
| type enumeration { | ||||
| enum equalcost { | ||||
| description | ||||
| "ECMP alternate."; | ||||
| } | ||||
| enum lfa { | ||||
| description | ||||
| "LFA alternate."; | ||||
| } | ||||
| enum remote-lfa { | ||||
| description | ||||
| "Remote LFA alternate."; | ||||
| } | ||||
| enum tunnel { | ||||
| description | ||||
| "Tunnel based alternate | ||||
| (like RSVP-TE or GRE)."; | ||||
| } | ||||
| enum ti-lfa { | ||||
| description | ||||
| "TI LFA alternate."; | ||||
| } | ||||
| enum mrt { | ||||
| description | ||||
| "MRT alternate."; | ||||
| } | ||||
| enum other { | ||||
| description | ||||
| "Unknown alternate type."; | ||||
| } | ||||
| } | } | |||
| bit other { | description | |||
| position 4; | "Type of alternate."; | |||
| description | } | |||
| "Other protection available."; | leaf best { | |||
| type boolean; | ||||
| description | ||||
| "describes if the alternate is the best one."; | ||||
| } | ||||
| leaf non-best-reason { | ||||
| type string; | ||||
| description | ||||
| "Information field to describe why the alternate | ||||
| is not best."; | ||||
| } | ||||
| leaf protection-available { | ||||
| type bits { | ||||
| bit nodeprotect { | ||||
| position 0; | ||||
| description | ||||
| "Node protection available."; | ||||
| } | ||||
| bit linkprotect { | ||||
| position 1; | ||||
| description | ||||
| "Link protection available."; | ||||
| } | ||||
| bit srlgprotect { | ||||
| position 2; | ||||
| description | ||||
| "SRLG protection available."; | ||||
| } | ||||
| bit downstreamprotect { | ||||
| position 3; | ||||
| description | ||||
| "Downstream protection available."; | ||||
| } | ||||
| bit other { | ||||
| position 4; | ||||
| description | ||||
| "Other protection available."; | ||||
| } | ||||
| } | } | |||
| description | ||||
| "Describes protection provided by the alternate."; | ||||
| } | } | |||
| leaf alternate-metric1 { | ||||
| type uint32; | ||||
| description | ||||
| "Metric from PLR to destination | ||||
| through the alternate path."; | ||||
| } | ||||
| leaf alternate-metric2 { | ||||
| type uint32; | ||||
| description | ||||
| "Metric from PLR to the alternate node"; | ||||
| } | ||||
| leaf alternate-metric3 { | ||||
| type uint32; | ||||
| description | ||||
| "Metric from alternate node to the destination"; | ||||
| } | ||||
| description | description | |||
| "Describes protection provided by the alternate."; | "Per AF statistics."; | |||
| } | ||||
| leaf alternate-metric1 { | ||||
| type uint32; | ||||
| description | ||||
| "Metric from PLR to destination | ||||
| through the alternate path."; | ||||
| } | ||||
| leaf alternate-metric2 { | ||||
| type uint32; | ||||
| description | ||||
| "Metric from PLR to the alternate node"; | ||||
| } | ||||
| leaf alternate-metric3 { | ||||
| type uint32; | ||||
| description | ||||
| "Metric from alternate node to the destination"; | ||||
| } | } | |||
| description | description | |||
| "Per AF statistics."; | "List of prefixes that are protected."; | |||
| } | } | |||
| description | container nonprotected-routes { | |||
| "List of prefixes that are protected."; | list af-stats { | |||
| } | key "af prefix"; | |||
| container nonprotected-routes { | ||||
| list af-stats { | ||||
| key "af prefix"; | ||||
| leaf af { | leaf af { | |||
| type identityref { | type identityref { | |||
| base rt:address-family; | base rt:address-family; | |||
| } | ||||
| description | ||||
| "Address-family"; | ||||
| } | ||||
| leaf prefix { | ||||
| type string; | ||||
| description | ||||
| "Protected prefix."; | ||||
| } | } | |||
| description | description | |||
| "Address-family"; | "Per AF statistics."; | |||
| } | ||||
| leaf prefix { | ||||
| type string; | ||||
| description | ||||
| "Protected prefix."; | ||||
| } | } | |||
| description | description | |||
| "Per AF statistics."; | "List of prefixes that are not protected."; | |||
| } | } | |||
| description | ||||
| "List of prefixes that are not protected."; | ||||
| } | ||||
| list protection-statistics { | ||||
| key frr-protection-method; | ||||
| leaf frr-protection-method { | list protection-statistics { | |||
| type string; | key frr-protection-method; | |||
| description | ||||
| "Protection method used."; | ||||
| } | ||||
| list af-stats { | ||||
| key af; | ||||
| leaf af { | leaf frr-protection-method { | |||
| type identityref { | type string; | |||
| base rt:address-family; | ||||
| } | ||||
| description | ||||
| "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 | description | |||
| "Total of prefixes who are | "Protection method used."; | |||
| link protected."; | ||||
| } | } | |||
| leaf nodeprotected-routes { | list af-stats { | |||
| type uint32; | key af; | |||
| leaf af { | ||||
| type identityref { | ||||
| base rt:address-family; | ||||
| } | ||||
| description | ||||
| "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 | description | |||
| "Total of prefixes who are | "Per AF statistics."; | |||
| node protected."; | ||||
| } | } | |||
| description | description | |||
| "Per AF statistics."; | "Global protection statistics."; | |||
| } | } | |||
| description | description | |||
| "Global protection statistics."; | "IPFRR states."; | |||
| } | ||||
| description | ||||
| "IPFRR states."; | ||||
| } | ||||
| grouping notification-instance-hdr { | ||||
| description | ||||
| "This group describes common instance specific | ||||
| data for notifications."; | ||||
| leaf instance-name { | ||||
| type string; | ||||
| description | ||||
| "Describes the name of the ISIS instance."; | ||||
| } | ||||
| leaf instance-level { | ||||
| type level; | ||||
| description | ||||
| "Describes the ISIS level of the instance."; | ||||
| } | } | |||
| } | ||||
| grouping notification-interface-hdr { | grouping notification-instance-hdr { | |||
| description | ||||
| "This group describes common interface specific | ||||
| data for notifications."; | ||||
| leaf interface-name { | ||||
| type string; | ||||
| description | ||||
| "Describes the name of the ISIS interface."; | ||||
| } | ||||
| leaf interface-level { | ||||
| type level; | ||||
| description | description | |||
| "Describes the ISIS level of the interface."; | "This group describes common instance specific | |||
| data for notifications."; | ||||
| leaf instance-name { | ||||
| type string; | ||||
| description | ||||
| "Describes the name of the ISIS instance."; | ||||
| } | ||||
| leaf instance-level { | ||||
| type level; | ||||
| description | ||||
| "Describes the ISIS level of the instance."; | ||||
| } | ||||
| } | } | |||
| leaf extended-circuit-id { | grouping notification-interface-hdr { | |||
| type extended-circuit-id; | ||||
| description | description | |||
| "Describes the extended circuit-id of the interface."; | "This group describes common interface specific | |||
| data for notifications."; | ||||
| leaf interface-name { | ||||
| type string; | ||||
| description | ||||
| "Describes the name of the ISIS interface."; | ||||
| } | ||||
| leaf interface-level { | ||||
| type level; | ||||
| description | ||||
| "Describes the ISIS level of the interface."; | ||||
| } | ||||
| leaf extended-circuit-id { | ||||
| type extended-circuit-id; | ||||
| description | ||||
| "Describes the extended circuit-id of the interface."; | ||||
| } | ||||
| } | } | |||
| } | ||||
| grouping route-content { | grouping route-content { | |||
| description | ||||
| "This group add isis-specific route properties."; | ||||
| leaf metric { | ||||
| type uint32; | ||||
| description | ||||
| "This leaf describes ISIS metric of a route."; | ||||
| } | ||||
| leaf-list tag { | ||||
| type uint64; | ||||
| description | description | |||
| "This leaf describes list of tags associated | "This group add isis-specific route properties."; | |||
| with the route. The leaf describes both | leaf metric { | |||
| 32bits and 64bits tags."; | type uint32; | |||
| } | description | |||
| leaf route-type { | "This leaf describes ISIS metric of a route."; | |||
| type enumeration { | } | |||
| enum l2-up-internal { | leaf-list tag { | |||
| description "Level 2 internal route | type uint64; | |||
| and not leaked to a lower level"; | description | |||
| } | "This leaf describes list of tags associated | |||
| enum l1-up-internal { | with the route. The leaf describes both | |||
| description "Level 1 internal route | 32bits and 64bits tags."; | |||
| and not leaked to a lower level"; | } | |||
| } | leaf route-type { | |||
| enum l2-up-external { | type enumeration { | |||
| description "Level 2 external route | enum l2-up-internal { | |||
| and not leaked to a lower level"; | description "Level 2 internal route | |||
| } | and not leaked to a lower level"; | |||
| enum l1-up-external { | } | |||
| description "Level 1 external route | enum l1-up-internal { | |||
| and not leaked to a lower level"; | description "Level 1 internal route | |||
| } | and not leaked to a lower level"; | |||
| enum l2-down-internal { | } | |||
| description "Level 2 internal route | enum l2-up-external { | |||
| and leaked to a lower level"; | description "Level 2 external route | |||
| } | and not leaked to a lower level"; | |||
| enum l1-down-internal { | } | |||
| description "Level 1 internal route | enum l1-up-external { | |||
| and leaked to a lower level"; | description "Level 1 external route | |||
| } | and not leaked to a lower level"; | |||
| enum l2-down-external { | } | |||
| description "Level 2 external route | enum l2-down-internal { | |||
| and leaked to a lower level"; | description "Level 2 internal route | |||
| } | and leaked to a lower level"; | |||
| enum l1-down-external { | } | |||
| description "Level 1 external route | enum l1-down-internal { | |||
| and leaked to a lower level"; | 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 ISIS route."; | ||||
| } | } | |||
| } | ||||
| grouping fast-reroute-global-cfg { | ||||
| description | description | |||
| "This leaf describes the type of ISIS route."; | "This group defines global | |||
| configuration of IPFRR."; | ||||
| container lfa { | ||||
| if-feature lfa; | ||||
| description | ||||
| "This container may be | ||||
| augmented with global parameters | ||||
| for LFA. | ||||
| Creating the container has no effect on | ||||
| LFA activation."; | ||||
| } | ||||
| } | } | |||
| } | ||||
| grouping fast-reroute-global-cfg { | grouping fast-reroute-if-cfg { | |||
| description | description | |||
| "This group defines global | "This group defines interface | |||
| configuration of IPFRR."; | configuration of IPFRR."; | |||
| container lfa { | container lfa { | |||
| if-feature lfa; | if-feature lfa; | |||
| uses lfa-if-cfg; | ||||
| container level-1 { | ||||
| uses lfa-if-cfg; | ||||
| description | ||||
| "LFA level 21 config"; | ||||
| } | ||||
| container level-2 { | ||||
| uses lfa-if-cfg; | ||||
| description | ||||
| "LFA level 2 config"; | ||||
| } | ||||
| description | description | |||
| "This container may be | "LFA config"; | |||
| augmented with global parameters | ||||
| for LFA. | ||||
| Creating the container has no effect on | ||||
| LFA activation."; | ||||
| } | } | |||
| } | } | |||
| grouping fast-reroute-if-cfg { | ||||
| description | ||||
| "This group defines interface | ||||
| configuration of IPFRR."; | ||||
| list lfa { | ||||
| if-feature lfa; | ||||
| key level; | grouping prefix-reachability-attributes { | |||
| description | ||||
| "This group defines extended reachability attributes of an | ||||
| IPv4 or IPv6 prefix."; | ||||
| leaf candidate-disabled { | leaf external-prefix-flag { | |||
| type boolean; | type boolean; | |||
| default false; | ||||
| description | description | |||
| "Prevent the interface to be used as backup."; | "External prefix flag."; | |||
| } | } | |||
| leaf enable { | leaf readvertisement-flag { | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "Activates LFA. | "Readvertisement flag."; | |||
| This model assumes activation | } | |||
| of per-prefix LFA."; | leaf node-flag { | |||
| } | type boolean; | |||
| description | ||||
| "Node flag."; | ||||
| } | ||||
| } | ||||
| container remote-lfa { | grouping prefix-ipv4-source-router-id { | |||
| if-feature remote-lfa; | description | |||
| leaf enable { | "This group defines the IPv4 source router ID of | |||
| type boolean; | a prefix advertisement."; | |||
| description | ||||
| "Activates rLFA."; | leaf ipv4-source-router-id { | |||
| } | type inet:ipv4-address; | |||
| description | description | |||
| "remote LFA configuration."; | "IPv4 Source router ID address."; | |||
| } | } | |||
| leaf level { | ||||
| type level; | } | |||
| grouping prefix-ipv6-source-router-id { | ||||
| description | ||||
| "This group defines the IPv6 source router ID of | ||||
| a prefix advertisement."; | ||||
| leaf ipv6-source-router-id { | ||||
| type inet:ipv6-address; | ||||
| description | description | |||
| "Level applicability."; | "IPv6 Source router ID address."; | |||
| } | ||||
| description | ||||
| "LFA configuration."; | ||||
| } | } | |||
| } | } | |||
| grouping prefix-reachability-attributes { | grouping prefix-attributes-extension { | |||
| description | description | |||
| "This group defines extended reachability attributes of an | "Prefix extended attributes."; | |||
| IPv4 or IPv6 prefix."; | ||||
| leaf external-prefix-flag { | uses prefix-reachability-attributes; | |||
| type boolean; | uses prefix-ipv4-source-router-id; | |||
| description | uses prefix-ipv6-source-router-id; | |||
| "External prefix flag."; | } | |||
| } | ||||
| leaf readvertisement-flag { | grouping prefix-ipv4-std { | |||
| type boolean; | description | |||
| description | "This group defines attributes of an | |||
| "Readvertisement flag."; | IPv4 standard prefix."; | |||
| leaf up-down { | ||||
| type boolean; | ||||
| description | ||||
| "This leaf expresses the value of up/down bit."; | ||||
| } | ||||
| leaf i-e { | ||||
| type boolean; | ||||
| 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 ISIS default metric value"; | ||||
| } | ||||
| container delay-metric { | ||||
| leaf metric { | ||||
| type std-metric; | ||||
| description | ||||
| "This leaf describes the ISIS delay metric value"; | ||||
| } | } | |||
| leaf node-flag { | leaf supported { | |||
| type boolean; | type boolean; | |||
| description | default "false"; | |||
| "Node flag."; | description | |||
| "This leaf describes if the metric is supported."; | ||||
| } | } | |||
| } | ||||
| grouping prefix-ipv4-source-router-id { | ||||
| description | description | |||
| "This group defines the IPv4 source router ID of | "This container defines the ISIS delay metric."; | |||
| a prefix advertisement."; | } | |||
| container expense-metric { | ||||
| leaf ipv4-source-router-id { | leaf metric { | |||
| type inet:ipv4-address; | type std-metric; | |||
| description | description | |||
| "IPv4 Source router ID address."; | "This leaf describes the ISIS expense metric value"; | |||
| } | ||||
| leaf supported { | ||||
| type boolean; | ||||
| default "false"; | ||||
| description | ||||
| "This leaf describes if the metric is supported."; | ||||
| } | } | |||
| } | ||||
| grouping prefix-ipv6-source-router-id { | ||||
| description | description | |||
| "This group defines the IPv6 source router ID of | "This container defines the ISIS expense metric."; | |||
| a prefix advertisement."; | } | |||
| container error-metric { | ||||
| leaf ipv6-source-router-id { | leaf metric { | |||
| type inet:ipv6-address; | type std-metric; | |||
| description | description | |||
| "IPv6 Source router ID address."; | "This leaf describes the ISIS error metric value"; | |||
| } | ||||
| leaf supported { | ||||
| type boolean; | ||||
| default "false"; | ||||
| description | ||||
| "This leaf describes if the metric is supported."; | ||||
| } | } | |||
| } | ||||
| grouping prefix-attributes-extension { | ||||
| description | description | |||
| "Prefix extended attributes."; | "This container defines the ISIS error metric."; | |||
| } | ||||
| uses prefix-reachability-attributes; | ||||
| uses prefix-ipv4-source-router-id; | ||||
| uses prefix-ipv6-source-router-id; | ||||
| } | ||||
| grouping prefix-ipv4-std { | ||||
| description | ||||
| "This group defines attributes of an | ||||
| IPv4 standard prefix."; | ||||
| leaf up-down { | ||||
| type boolean; | ||||
| description | ||||
| "This leaf expresses the value of up/down bit."; | ||||
| } | ||||
| leaf i-e { | ||||
| type boolean; | ||||
| 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; | grouping prefix-ipv4-extended { | |||
| description | description | |||
| "This leaf describes the ISIS default metric value"; | "This group defines attributes of an | |||
| } | IPv4 extended prefix."; | |||
| container delay-metric { | leaf up-down { | |||
| leaf metric { | ||||
| type std-metric; | ||||
| description | ||||
| "This leaf describes the ISIS delay metric value"; | ||||
| } | ||||
| leaf supported { | ||||
| type boolean; | type boolean; | |||
| default "false"; | ||||
| description | description | |||
| "This leaf describes if the metric is supported."; | "This leaf expresses the value of up/down bit."; | |||
| } | } | |||
| leaf ip-prefix { | ||||
| description | type inet:ipv4-address; | |||
| "This container defines the ISIS delay metric."; | ||||
| } | ||||
| container expense-metric { | ||||
| leaf metric { | ||||
| type std-metric; | ||||
| description | description | |||
| "This leaf describes the ISIS expense metric value"; | "This leaf describes the IPv4 prefix"; | |||
| } | } | |||
| leaf supported { | leaf prefix-len { | |||
| type boolean; | type uint8; | |||
| default "false"; | ||||
| description | description | |||
| "This leaf describes if the metric is supported."; | "This leaf describes the IPv4 prefix len in bits"; | |||
| } | } | |||
| description | ||||
| "This container defines the ISIS expense metric."; | ||||
| } | ||||
| container error-metric { | ||||
| leaf metric { | leaf metric { | |||
| type std-metric; | type wide-metric; | |||
| description | description | |||
| "This leaf describes the ISIS error metric value"; | "This leaf describes the ISIS metric value"; | |||
| } | } | |||
| leaf supported { | leaf-list tag { | |||
| type boolean; | type uint32; | |||
| default "false"; | ||||
| description | description | |||
| "This leaf describes if the metric is supported."; | "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."; | ||||
| } | } | |||
| description | ||||
| "This container defines the ISIS error metric."; | ||||
| } | ||||
| } | ||||
| grouping prefix-ipv4-extended { | uses prefix-attributes-extension; | |||
| description | ||||
| "This group defines attributes of an | ||||
| 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 { | ||||
| type wide-metric; | ||||
| description | ||||
| "This leaf describes the ISIS metric value"; | ||||
| } | ||||
| 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-ipv6-extended { | ||||
| description | ||||
| "This group defines attributes of an | ||||
| IPv6 prefix."; | ||||
| leaf up-down { | ||||
| type boolean; | ||||
| description | ||||
| "This leaf expresses the value of up/down bit."; | ||||
| } | ||||
| leaf ip-prefix { | ||||
| type inet:ipv6-address; | ||||
| description | ||||
| "This leaf describes the IPv6 prefix"; | ||||
| } | ||||
| leaf prefix-len { | ||||
| type uint8; | ||||
| description | description | |||
| "This leaf describes the IPv4 prefix len in bits"; | "This group defines attributes of an | |||
| } | IPv6 prefix."; | |||
| leaf up-down { | ||||
| type boolean; | ||||
| description | ||||
| "This leaf expresses the value of up/down bit."; | ||||
| } | ||||
| leaf ip-prefix { | ||||
| type inet:ipv6-address; | ||||
| description | ||||
| "This leaf describes the IPv6 prefix"; | ||||
| } | ||||
| leaf prefix-len { | ||||
| type uint8; | ||||
| description | ||||
| "This leaf describes the IPv4 prefix len in bits"; | ||||
| } | ||||
| leaf metric { | leaf metric { | |||
| type wide-metric; | type wide-metric; | |||
| description | description | |||
| "This leaf describes the ISIS metric value"; | "This leaf describes the ISIS metric value"; | |||
| } | } | |||
| leaf-list tag { | leaf-list tag { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "This leaf describes a list of tags associated with | "This leaf describes a list of tags associated with | |||
| the prefix."; | the prefix."; | |||
| } | } | |||
| leaf-list tag64 { | leaf-list tag64 { | |||
| type uint64; | type uint64; | |||
| description | description | |||
| "This leaf describes a list of 64-bit tags associated with | "This leaf describes a list of 64-bit tags associated with | |||
| the prefix."; | the prefix."; | |||
| } | } | |||
| uses prefix-attributes-extension; | uses prefix-attributes-extension; | |||
| } | ||||
| grouping neighbor-extended { | ||||
| description | ||||
| "This group defines attributes of an | ||||
| ISIS extended neighbor."; | ||||
| leaf neighbor-id { | ||||
| type system-id; | ||||
| description | ||||
| "This leaf describes the system-id of the neighbor."; | ||||
| } | ||||
| leaf metric { | ||||
| type wide-metric; | ||||
| description | ||||
| "This leaf describes the ISIS metric value"; | ||||
| } | } | |||
| } | grouping neighbor-extended { | |||
| grouping neighbor { | ||||
| description | ||||
| "This group defines attributes of an | ||||
| ISIS standard neighbor."; | ||||
| leaf neighbor-id { | ||||
| type system-id; | ||||
| description | ||||
| "This leaf describes the system-id of the neighbor."; | ||||
| } | ||||
| leaf i-e { | ||||
| type boolean; | ||||
| description | ||||
| "This leaf expresses the value of I/E bit."; | ||||
| } | ||||
| leaf default-metric { | ||||
| type std-metric; | ||||
| description | description | |||
| "This leaf describes the ISIS default metric value"; | "This group defines attributes of an | |||
| } | ISIS extended neighbor."; | |||
| container delay-metric { | leaf neighbor-id { | |||
| leaf metric { | type system-id; | |||
| type std-metric; | ||||
| description | description | |||
| "This leaf describes the ISIS delay metric value"; | "This leaf describes the system-id of the neighbor."; | |||
| } | } | |||
| leaf supported { | leaf metric { | |||
| type boolean; | type wide-metric; | |||
| default "false"; | ||||
| description | description | |||
| "This leaf describes if the metric is supported."; | "This leaf describes the ISIS metric value"; | |||
| } | } | |||
| description | ||||
| "This container defines the ISIS delay metric."; | ||||
| } | } | |||
| container expense-metric { | ||||
| leaf metric { | grouping neighbor { | |||
| type std-metric; | description | |||
| "This group defines attributes of an | ||||
| ISIS standard neighbor."; | ||||
| leaf neighbor-id { | ||||
| type system-id; | ||||
| description | description | |||
| "This leaf describes the ISIS delay expense value"; | "This leaf describes the system-id of the neighbor."; | |||
| } | } | |||
| leaf supported { | leaf i-e { | |||
| type boolean; | type boolean; | |||
| default "false"; | ||||
| description | description | |||
| "This leaf describes if the metric is supported."; | "This leaf expresses the value of I/E bit."; | |||
| } | } | |||
| description | leaf default-metric { | |||
| "This container defines the ISIS expense metric."; | ||||
| } | ||||
| container error-metric { | ||||
| leaf metric { | ||||
| type std-metric; | type std-metric; | |||
| description | description | |||
| "This leaf describes the ISIS error metric value"; | "This leaf describes the ISIS default metric value"; | |||
| } | ||||
| leaf supported { | ||||
| type boolean; | ||||
| default "false"; | ||||
| description | ||||
| "This leaf describes if the metric is supported."; | ||||
| } | } | |||
| description | container delay-metric { | |||
| "This container defines the ISIS error metric."; | leaf metric { | |||
| } | type std-metric; | |||
| } | ||||
| grouping database { | ||||
| description | ||||
| "This group defines attributes of an | ||||
| ISIS database (Link State DB)."; | ||||
| leaf lsp-id { | ||||
| type lsp-id; | ||||
| description | ||||
| "This leaf describes the LSP ID of the LSP."; | ||||
| } | ||||
| leaf checksum { | ||||
| type uint16; | ||||
| description | ||||
| "This leaf describes the checksum of the LSP."; | ||||
| } | ||||
| leaf remaining-lifetime { | ||||
| type uint16; | ||||
| units "seconds"; | ||||
| description | ||||
| "This leaf describes the remaining lifetime | ||||
| in seconds before the LSP expiration."; | ||||
| } | ||||
| leaf sequence { | ||||
| type uint32; | ||||
| description | ||||
| "This leaf describes the sequence number of the LSP."; | ||||
| } | ||||
| leaf attributes { | ||||
| type bits { | ||||
| bit PARTITIONNED { | ||||
| description | description | |||
| "If set, the originator supports partition | "This leaf describes the ISIS delay metric value"; | |||
| repair."; | ||||
| } | } | |||
| bit ATTACHED-ERROR { | leaf supported { | |||
| type boolean; | ||||
| default "false"; | ||||
| description | description | |||
| "If set, the originator is attached to | "This leaf describes if the metric is supported."; | |||
| another area using the referred metric."; | ||||
| } | } | |||
| bit ATTACHED-EXPENSE { | description | |||
| "This container defines the ISIS delay metric."; | ||||
| } | ||||
| container expense-metric { | ||||
| leaf metric { | ||||
| type std-metric; | ||||
| description | description | |||
| "If set, the originator is attached to | "This leaf describes the ISIS delay expense value"; | |||
| another area using the referred metric."; | ||||
| } | } | |||
| bit ATTACHED-DELAY { | leaf supported { | |||
| type boolean; | ||||
| default "false"; | ||||
| description | description | |||
| "If set, the originator is attached to | "This leaf describes if the metric is supported."; | |||
| another area using the referred metric."; | ||||
| } | } | |||
| bit ATTACHED-DEFAULT { | description | |||
| "This container defines the ISIS expense metric."; | ||||
| } | ||||
| container error-metric { | ||||
| leaf metric { | ||||
| type std-metric; | ||||
| description | description | |||
| "If set, the originator is attached to | "This leaf describes the ISIS error metric value"; | |||
| another area using the referred metric."; | ||||
| } | } | |||
| bit OVERLOAD { | leaf supported { | |||
| type boolean; | ||||
| default "false"; | ||||
| description | description | |||
| "If set, the originator is overloaded, | "This leaf describes if the metric is supported."; | |||
| and must be avoided in path calculation."; | ||||
| } | } | |||
| description | ||||
| "This container defines the ISIS error metric."; | ||||
| } | } | |||
| description | ||||
| "This leaf describes attributes of the LSP."; | ||||
| } | } | |||
| container is-neighbor { | grouping database { | |||
| list neighbor { | description | |||
| uses neighbor; | "This group defines attributes of an | |||
| ISIS database (Link State DB)."; | ||||
| leaf lsp-id { | ||||
| type lsp-id; | ||||
| description | description | |||
| "List of neighbors."; | "This leaf describes the LSP ID of the LSP."; | |||
| } | } | |||
| description | leaf checksum { | |||
| "This leaf describes list of ISIS neighbors. | type uint16; | |||
| ISIS reference is TLV 2."; | ||||
| } | ||||
| container authentication { | ||||
| leaf authentication-type { | ||||
| type string; | ||||
| description | description | |||
| "This leaf describes the authentication type | "This leaf describes the checksum of the LSP."; | |||
| to be used."; | ||||
| } | } | |||
| leaf authentication-key { | leaf remaining-lifetime { | |||
| type string; | type uint16; | |||
| units "seconds"; | ||||
| description | description | |||
| "This leaf describes the authentication key | "This leaf describes the remaining lifetime | |||
| to be used. For security reason, the | in seconds before the LSP expiration."; | |||
| 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 | leaf sequence { | |||
| information of the node. ISIS reference is TLV 10."; | type uint32; | |||
| } | description | |||
| "This leaf describes the sequence number of the LSP."; | ||||
| } | ||||
| leaf attributes { | ||||
| type bits { | ||||
| bit PARTITIONNED { | ||||
| description | ||||
| "If set, the originator supports partition | ||||
| repair."; | ||||
| } | ||||
| bit ATTACHED-ERROR { | ||||
| description | ||||
| "If set, the originator is attached to | ||||
| another area using the referred metric."; | ||||
| } | ||||
| bit ATTACHED-EXPENSE { | ||||
| description | ||||
| "If set, the originator is attached to | ||||
| another area using the referred metric."; | ||||
| } | ||||
| bit ATTACHED-DELAY { | ||||
| description | ||||
| "If set, the originator is attached to | ||||
| another area using the referred metric."; | ||||
| } | ||||
| bit ATTACHED-DEFAULT { | ||||
| description | ||||
| "If set, the originator is attached to | ||||
| another area using the referred metric."; | ||||
| } | ||||
| bit OVERLOAD { | ||||
| description | ||||
| "If set, the originator is overloaded, | ||||
| and must be avoided in path calculation."; | ||||
| container extended-is-neighbor { | } | |||
| list neighbor { | } | |||
| uses neighbor-extended; | ||||
| description | description | |||
| "List of neighbors."; | "This leaf describes attributes of the LSP."; | |||
| } | } | |||
| description | ||||
| "This container describes list of ISIS extended | ||||
| neighbors. | ||||
| ISIS reference is TLV 22."; | ||||
| } | ||||
| container ipv4-internal-reachability { | container is-neighbor { | |||
| list prefixes { | list neighbor { | |||
| uses prefix-ipv4-std; | uses neighbor; | |||
| description | ||||
| "List of neighbors."; | ||||
| } | ||||
| description | description | |||
| "List of prefixes."; | "This leaf describes list of ISIS neighbors. | |||
| ISIS reference is TLV 2."; | ||||
| } | } | |||
| description | ||||
| "This container describes list of IPv4 internal | ||||
| reachability information. | ||||
| ISIS reference is TLV 128."; | ||||
| } | ||||
| leaf-list protocol-supported { | container authentication { | |||
| type uint8; | leaf authentication-type { | |||
| description | type string; | |||
| "This leaf describes the list of | description | |||
| supported protocols. | "This leaf describes the authentication type | |||
| ISIS reference is TLV 129."; | 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. ISIS reference is TLV 10."; | ||||
| } | ||||
| container ipv4-external-reachability { | container extended-is-neighbor { | |||
| list prefixes { | list neighbor { | |||
| uses prefix-ipv4-std; | uses neighbor-extended; | |||
| description | ||||
| "List of neighbors."; | ||||
| } | ||||
| description | description | |||
| "List of prefixes."; | "This container describes list of ISIS extended | |||
| } | neighbors. | |||
| description | ISIS reference is TLV 22."; | |||
| "This container describes list of IPv4 external | ||||
| reachability information. | ||||
| ISIS reference is TLV 130."; | ||||
| } | ||||
| leaf-list ipv4-addresses { | } | |||
| type inet:ipv4-address; | ||||
| description | ||||
| "This leaf describes the IPv4 addresses of the node. | ||||
| ISIS reference is TLV 132."; | ||||
| } | ||||
| leaf ipv4-te-routerid { | container ipv4-internal-reachability { | |||
| list prefixes { | ||||
| uses prefix-ipv4-std; | ||||
| description | ||||
| "List of prefixes."; | ||||
| } | ||||
| description | ||||
| "This container describes list of IPv4 internal | ||||
| reachability information. | ||||
| ISIS reference is TLV 128."; | ||||
| } | ||||
| type inet:ipv4-address; | leaf-list protocol-supported { | |||
| description | type uint8; | |||
| "This leaf describes the IPv4 Traffic Engineering | description | |||
| router ID of the node. | "This leaf describes the list of | |||
| ISIS reference is TLV 134."; | supported protocols. | |||
| } | ISIS reference is TLV 129."; | |||
| } | ||||
| container extended-ipv4-reachability { | container ipv4-external-reachability { | |||
| list prefixes { | ||||
| uses prefix-ipv4-std; | ||||
| description | ||||
| "List of prefixes."; | ||||
| } | ||||
| description | ||||
| "This container describes list of IPv4 external | ||||
| reachability information. | ||||
| ISIS reference is TLV 130."; | ||||
| } | ||||
| list prefixes { | leaf-list ipv4-addresses { | |||
| uses prefix-ipv4-extended; | type inet:ipv4-address; | |||
| description | description | |||
| "List of prefixes."; | "This leaf describes the IPv4 addresses of the node. | |||
| ISIS reference is TLV 132."; | ||||
| } | } | |||
| description | ||||
| "This container describes list of IPv4 extended | ||||
| reachability information. | ||||
| ISIS reference is TLV 135."; | ||||
| } | ||||
| leaf dynamic-hostname { | leaf ipv4-te-routerid { | |||
| type string; | ||||
| description | type inet:ipv4-address; | |||
| "This leaf describes the name of the node. | description | |||
| ISIS reference is TLV 137."; | "This leaf describes the IPv4 Traffic Engineering | |||
| } | router ID of the node. | |||
| ISIS reference is TLV 134."; | ||||
| leaf ipv6-te-routerid { | } | |||
| type inet:ipv6-address; | ||||
| description | ||||
| "This leaf describes the IPv6 Traffic Engineering | ||||
| router ID of the node. | ||||
| ISIS reference is TLV 140."; | ||||
| } | ||||
| container mt-is-neighbor { | container extended-ipv4-reachability { | |||
| list neighbor { | ||||
| leaf MT-ID { | list prefixes { | |||
| type uint16 { | uses prefix-ipv4-extended; | |||
| range "0 .. 4095"; | ||||
| } | ||||
| description | description | |||
| "This leaf defines the identifier | "List of prefixes."; | |||
| of a topology."; | ||||
| } | } | |||
| uses neighbor-extended; | ||||
| description | description | |||
| "List of neighbors."; | "This container describes list of IPv4 extended | |||
| reachability information. | ||||
| ISIS reference is TLV 135."; | ||||
| } | } | |||
| description | ||||
| "This container describes list of ISIS multi-topology | ||||
| neighbors. | ||||
| ISIS reference is TLV 223."; | ||||
| } | ||||
| container mt-entries { | leaf dynamic-hostname { | |||
| list topology { | type string; | |||
| leaf MT-ID { | description | |||
| type uint16 { | "This leaf describes the name of the node. | |||
| range "0 .. 4095"; | ISIS reference is TLV 137."; | |||
| } | ||||
| leaf ipv6-te-routerid { | ||||
| type inet:ipv6-address; | ||||
| description | ||||
| "This leaf describes the IPv6 Traffic Engineering | ||||
| router ID of the node. | ||||
| ISIS reference is TLV 140."; | ||||
| } | ||||
| container mt-is-neighbor { | ||||
| list neighbor { | ||||
| leaf MT-ID { | ||||
| type uint16 { | ||||
| range "0 .. 4095"; | ||||
| } | ||||
| description | ||||
| "This leaf defines the identifier | ||||
| of a topology."; | ||||
| } | } | |||
| uses neighbor-extended; | ||||
| description | description | |||
| "This leaf defines the identifier | "List of neighbors."; | |||
| of a topology."; | ||||
| } | } | |||
| description | ||||
| "This container describes list of ISIS multi-topology | ||||
| neighbors. | ||||
| ISIS reference is TLV 223."; | ||||
| } | ||||
| leaf attributes { | container mt-entries { | |||
| type bits { | list topology { | |||
| bit OVERLOAD { | ||||
| description | leaf MT-ID { | |||
| "If set, the originator is overloaded, | type uint16 { | |||
| and must be avoided in path | range "0 .. 4095"; | |||
| calculation."; | ||||
| } | } | |||
| bit ATTACHED { | description | |||
| description | "This leaf defines the identifier | |||
| "If set, the originator is attached to | of a topology."; | |||
| another area using the referred metric."; | } | |||
| leaf attributes { | ||||
| type bits { | ||||
| bit OVERLOAD { | ||||
| description | ||||
| "If set, the originator is overloaded, | ||||
| and must be avoided in path | ||||
| calculation."; | ||||
| } | ||||
| bit ATTACHED { | ||||
| description | ||||
| "If set, the originator is attached to | ||||
| another area using the referred metric."; | ||||
| } | ||||
| } | } | |||
| description | ||||
| "This leaf describes attributes of the LSP | ||||
| for the associated topology."; | ||||
| } | } | |||
| description | description | |||
| "This leaf describes attributes of the LSP | "List of topologies supported."; | |||
| for the associated topology."; | ||||
| } | } | |||
| description | description | |||
| "List of topologies supported."; | "This container describes the topology supported. | |||
| ISIS reference is TLV 229."; | ||||
| } | } | |||
| description | ||||
| "This container describes the topology supported. | ||||
| ISIS reference is TLV 229."; | ||||
| } | ||||
| leaf-list ipv6-addresses { | leaf-list ipv6-addresses { | |||
| type inet:ipv6-address; | type inet:ipv6-address; | |||
| description | description | |||
| "This leaf describes the IPv6 interface | "This leaf describes the IPv6 interface | |||
| addresses of the node. | addresses of the node. | |||
| ISIS reference is TLV 232."; | ISIS reference is TLV 232."; | |||
| } | ||||
| container mt-extended-ipv4-reachability { | } | |||
| list prefixes { | ||||
| leaf MT-ID { | ||||
| type uint16 { | ||||
| range "0 .. 4095"; | ||||
| container mt-extended-ipv4-reachability { | ||||
| list prefixes { | ||||
| leaf MT-ID { | ||||
| type uint16 { | ||||
| range "0 .. 4095"; | ||||
| } | ||||
| description | ||||
| "This leaf defines the identifier | ||||
| of a topology."; | ||||
| } | } | |||
| uses prefix-ipv4-extended; | ||||
| description | description | |||
| "This leaf defines the identifier | "List of prefixes."; | |||
| of a topology."; | ||||
| } | } | |||
| uses prefix-ipv4-extended; | ||||
| description | description | |||
| "List of prefixes."; | "This container describes list of IPv4 | |||
| reachability information in multi-topology | ||||
| environment. | ||||
| ISIS reference is TLV 235."; | ||||
| } | } | |||
| description | ||||
| "This container describes list of IPv4 | ||||
| reachability information in multi-topology | ||||
| environment. | ||||
| ISIS 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 | ||||
| "This leaf defines the identifier | ||||
| of a topology."; | ||||
| } | } | |||
| uses prefix-ipv6-extended; | ||||
| description | description | |||
| "This leaf defines the identifier | "List of prefixes."; | |||
| of a topology."; | ||||
| } | } | |||
| uses prefix-ipv6-extended; | ||||
| description | description | |||
| "List of prefixes."; | "This container describes list of IPv6 | |||
| reachability information in multi-topology | ||||
| environment. | ||||
| ISIS reference is TLV 237."; | ||||
| } | } | |||
| description | container ipv6-reachability { | |||
| "This container describes list of IPv6 | list prefixes { | |||
| reachability information in multi-topology | uses prefix-ipv6-extended; | |||
| environment. | description | |||
| ISIS reference is TLV 237."; | "List of prefixes."; | |||
| } | } | |||
| container ipv6-reachability { | ||||
| list prefixes { | ||||
| uses prefix-ipv6-extended; | ||||
| description | description | |||
| "List of prefixes."; | "This container describes list of IPv6 | |||
| reachability information. | ||||
| ISIS reference is TLV 236."; | ||||
| } | } | |||
| description | ||||
| "This container describes list of IPv6 | ||||
| reachability information. | ||||
| ISIS reference is TLV 236."; | ||||
| } | list router-capabilities { | |||
| leaf flags { | ||||
| list router-capabilities { | type bits { | |||
| leaf flags { | bit flooding { | |||
| type bits { | position 0; | |||
| bit flooding { | description | |||
| position 0; | "If the S bit is set(1), | |||
| description | the IS-IS Router CAPABILITY TLV | |||
| "If the S bit is set(1), | MUST be flooded across the entire routing domain. | |||
| the IS-IS Router CAPABILITY TLV | If the S bit is | |||
| MUST be flooded across the entire routing domain. | not set(0), the TLV MUST NOT be leaked between levels. | |||
| If the S bit is | This bit MUST NOT be altered during the TLV leaking."; | |||
| 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. | ||||
| "; | ||||
| } | ||||
| } | } | |||
| bit down { | description | |||
| position 1; | "Flags associated with router capability."; | |||
| } | ||||
| container node-tags { | ||||
| if-feature node-tag; | ||||
| list node-tag { | ||||
| leaf tag { | ||||
| type uint32; | ||||
| description | ||||
| "Node tag value."; | ||||
| } | ||||
| description | description | |||
| "When the IS-IS Router CAPABILITY TLV is | "List of tags."; | |||
| 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. | ||||
| "; | ||||
| } | } | |||
| description | ||||
| "Container for node tags."; | ||||
| } | ||||
| leaf binary { | ||||
| type binary; | ||||
| description | ||||
| "This leaf describes the capability of the node. | ||||
| Format is binary according to the protocol encoding."; | ||||
| } | } | |||
| description | description | |||
| "Flags associated with router capability."; | "This container describes the capabilities of the node. | |||
| This container may be extended with detailed | ||||
| information. | ||||
| ISIS reference is TLV 242."; | ||||
| } | } | |||
| } | ||||
| grouping isis-node-tag-cfg { | ||||
| description | ||||
| "ISIS node tag config."; | ||||
| container node-tag { | container node-tag { | |||
| if-feature node-tag; | if-feature node-tag; | |||
| list node-tag { | list node-tag { | |||
| leaf tag { | key tag; | |||
| type uint32; | leaf tag { | |||
| type uint32; | ||||
| description | ||||
| "Node tag value."; | ||||
| } | ||||
| description | description | |||
| "Node tag value."; | "List of tags."; | |||
| } | } | |||
| description | description | |||
| "List of tags."; | "Container for node tags."; | |||
| } | } | |||
| description | ||||
| "Container for node tags."; | ||||
| } | ||||
| leaf binary { | ||||
| type binary; | ||||
| description | ||||
| "This leaf describes the capability of the node. | ||||
| Format is binary according to the protocol encoding."; | ||||
| } | ||||
| description | ||||
| "This container describes the capabilities of the node. | ||||
| This container may be extended with detailed | ||||
| information. | ||||
| ISIS reference is TLV 242."; | ||||
| } | } | |||
| } | ||||
| grouping isis-node-tag-cfg { | grouping authentication-global-cfg { | |||
| description | choice authentication-type { | |||
| "ISIS node tag config."; | case key-chain { | |||
| container node-tag { | if-feature key-chain; | |||
| if-feature node-tag; | leaf key-chain { | |||
| list node-tag { | type key-chain:key-chain-ref; | |||
| key tag; | ||||
| leaf tag { | ||||
| type uint32; | ||||
| description | ||||
| "Node tag value."; | ||||
| } | ||||
| description | description | |||
| "List of tags."; | "Reference to a key-chain."; | |||
| } | } | |||
| 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 { | |||
| case password { | leaf key { | |||
| leaf key { | type string; | |||
| type string; | description | |||
| description | "This leaf describes the | |||
| "This leaf describes the | authentication key."; | |||
| authentication key."; | } | |||
| uses key-chain:crypto-algorithm-types; | ||||
| } | } | |||
| uses key-chain:crypto-algorithm-types; | description | |||
| "Choice of authentication."; | ||||
| } | } | |||
| description | description | |||
| "Choice of authentication."; | "Grouping for global auth config."; | |||
| } | } | |||
| description | ||||
| "Grouping for global auth config."; | ||||
| } | ||||
| grouping metric-type-global-cfg { | grouping metric-type-global-cfg { | |||
| leaf value { | leaf value { | |||
| type enumeration { | type enumeration { | |||
| enum wide-only { | enum wide-only { | |||
| description | description | |||
| "Advertise new metric style only | "Advertise new metric style only | |||
| (RFC5305)"; | (RFC5305)"; | |||
| } | } | |||
| enum old-only { | enum old-only { | |||
| description | description | |||
| "Advertise old metric style only | "Advertise old metric style only | |||
| (RFC1195)"; | (RFC1195)"; | |||
| } | } | |||
| enum both { | enum both { | |||
| description "Advertise both metric | description "Advertise both metric | |||
| styles"; | styles"; | |||
| } | ||||
| } | } | |||
| 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 | |||
| "This leaf describes the type of metric | "Grouping for global metric style config."; | |||
| 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 | ||||
| "Grouping for global metric style config."; | ||||
| } | ||||
| grouping default-metric-global-cfg { | grouping default-metric-global-cfg { | |||
| leaf value { | leaf value { | |||
| type wide-metric; | type wide-metric; | |||
| default "10"; | default "10"; | |||
| description | ||||
| "Value of the metric"; | ||||
| } | ||||
| description | ||||
| "Grouping for global default metric config."; | ||||
| } | ||||
| grouping overload-global-cfg { | ||||
| leaf status { | ||||
| type boolean; | ||||
| description | ||||
| "This leaf defines the overload status."; | ||||
| } | ||||
| description | description | |||
| "Value of the metric"; | "Grouping for overload bit config."; | |||
| } | } | |||
| grouping overload-max-metric-global-cfg { | ||||
| leaf timeout { | ||||
| type uint16; | ||||
| units "seconds"; | ||||
| description | ||||
| "This leaf defines the timeout in seconds | ||||
| of the overload condition."; | ||||
| } | ||||
| description | description | |||
| "Grouping for global default metric config."; | "Grouping for overload-max-metric config."; | |||
| } | } | |||
| grouping overload-global-cfg { | grouping route-preference-global-cfg { | |||
| leaf status { | choice granularity { | |||
| type boolean; | case detail { | |||
| description | leaf internal { | |||
| "This leaf defines the overload status."; | type uint8; | |||
| } | ||||
| description | description | |||
| "Grouping for overload bit config."; | "This leaf defines the protocol | |||
| } | preference for internal routes."; | |||
| grouping overload-max-metric-global-cfg { | } | |||
| leaf timeout { | leaf external { | |||
| type uint16; | type uint8; | |||
| units "seconds"; | description | |||
| description | "This leaf defines the protocol | |||
| "This leaf defines the timeout in seconds | preference for external routes."; | |||
| of the overload condition."; | } | |||
| } | ||||
| description | ||||
| "Grouping for overload-max-metric config."; | ||||
| } | ||||
| grouping route-preference-global-cfg { | ||||
| choice granularity { | ||||
| case detail { | ||||
| leaf internal { | ||||
| type uint8; | ||||
| description | ||||
| "This leaf defines the protocol | ||||
| preference for internal routes."; | ||||
| } | ||||
| leaf external { | ||||
| type uint8; | ||||
| description | ||||
| "This leaf defines the protocol | ||||
| preference for external routes."; | ||||
| } | } | |||
| } | case coarse { | |||
| case coarse { | leaf default { | |||
| leaf default { | type uint8; | |||
| type uint8; | description | |||
| description | "This leaf defines the protocol | |||
| "This leaf defines the protocol | preference for all ISIS routes."; | |||
| preference for all ISIS routes."; | } | |||
| } | } | |||
| description | ||||
| "Choice for implementation of route preference."; | ||||
| } | } | |||
| description | description | |||
| "Choice for implementation of route preference."; | "This grouping defines how route preference is configured."; | |||
| } | } | |||
| description | ||||
| "This grouping defines how route preference is configured."; | ||||
| } | ||||
| grouping hello-authentication-cfg { | grouping hello-authentication-cfg { | |||
| choice authentication-type { | choice authentication-type { | |||
| case key-chain { | case key-chain { | |||
| if-feature key-chain; | if-feature key-chain; | |||
| leaf key-chain { | leaf key-chain { | |||
| type key-chain:key-chain-ref; | type key-chain:key-chain-ref; | |||
| description | description | |||
| "Reference to a key-chain."; | "Reference to a key-chain."; | |||
| } | } | |||
| } | ||||
| case password { | ||||
| leaf key { | ||||
| type string; | ||||
| description | ||||
| "This leaf describes the | ||||
| authentication key."; | ||||
| } | ||||
| uses key-chain:crypto-algorithm-types; | ||||
| } | ||||
| description | ||||
| "Choice of authentication."; | ||||
| } | } | |||
| description | case password { | |||
| "Grouping for hello authentication."; | leaf key { | |||
| } | type string; | |||
| description | ||||
| grouping hello-interval-cfg { | "This leaf describes the | |||
| leaf value { | authentication key."; | |||
| type uint16 { | } | |||
| range "1..65535"; | uses key-chain:crypto-algorithm-types; | |||
| } | ||||
| units "seconds"; | ||||
| default 10; | ||||
| description | ||||
| "This leaf defines the interval of | ||||
| hello messages."; | ||||
| } | } | |||
| description | description | |||
| "Interval between | "Choice of authentication."; | |||
| hello messages."; | ||||
| } | } | |||
| description | ||||
| grouping hello-multiplier-cfg { | "Grouping for hello authentication."; | |||
| leaf value { | } | |||
| type uint16; | grouping hello-interval-cfg { | |||
| description | leaf value { | |||
| "This leaf defines the number of | type uint16 { | |||
| hello failed to be received before | range "1..65535"; | |||
| declaring the adjacency down."; | } | |||
| } | units "seconds"; | |||
| default 10; | ||||
| description | description | |||
| "This grouping defines the number of | "This leaf defines the interval of | |||
| hello failed to be received before | hello messages."; | |||
| declaring the adjacency down."; | ||||
| } | } | |||
| grouping priority-cfg { | description | |||
| "Interval between | ||||
| leaf value { | hello messages."; | |||
| type uint8 { | } | |||
| range "0 .. 127"; | ||||
| } | ||||
| default 64; | ||||
| description | ||||
| "This leaf describes the priority of | ||||
| the interface | ||||
| for DIS election."; | ||||
| } | ||||
| grouping hello-multiplier-cfg { | ||||
| leaf value { | ||||
| type uint16; | ||||
| description | description | |||
| "This grouping leaf describes the | "This leaf defines the number of | |||
| priority of | hello failed to be received before | |||
| the interface | declaring the adjacency down."; | |||
| for DIS election."; | ||||
| } | } | |||
| description | ||||
| "This grouping defines the number of | ||||
| hello failed to be received before | ||||
| declaring the adjacency down."; | ||||
| } | ||||
| grouping metric-cfg { | grouping priority-cfg { | |||
| leaf value { | ||||
| type wide-metric; | leaf value { | |||
| description | type uint8 { | |||
| "Metric value."; | range "0 .. 127"; | |||
| } | } | |||
| default 64; | ||||
| description | description | |||
| "Grouping for interface metric"; | "This leaf describes the priority of | |||
| the interface | ||||
| for DIS election."; | ||||
| } | } | |||
| grouping isis-global-cfg { | ||||
| description | description | |||
| "Defines the ISIS global configuration."; | "This grouping leaf describes the | |||
| priority of | ||||
| uses admin-control; | the interface | |||
| for DIS election."; | ||||
| } | ||||
| leaf level-type { | grouping metric-cfg { | |||
| type level; | leaf value { | |||
| default "level-all"; | type wide-metric; | |||
| description | description | |||
| "This leaf describes the type of ISIS node. | "Metric value."; | |||
| A node can be level-1-only, level-2-only | ||||
| or level-1-2. | ||||
| "; | ||||
| } | } | |||
| description | ||||
| "Grouping for interface metric"; | ||||
| } | ||||
| grouping lfa-if-cfg { | ||||
| leaf candidate-disabled { | ||||
| type boolean; | ||||
| default false; | ||||
| description | ||||
| "Prevent the interface to be used as backup."; | ||||
| } | ||||
| leaf enable { | ||||
| type boolean; | ||||
| description | ||||
| "Activates LFA. | ||||
| This model assumes activation | ||||
| of per-prefix LFA."; | ||||
| } | ||||
| leaf system-id { | container remote-lfa { | |||
| type system-id; | if-feature remote-lfa; | |||
| leaf enable { | ||||
| type boolean; | ||||
| description | ||||
| "Activates rLFA."; | ||||
| } | ||||
| description | ||||
| "remote LFA configuration."; | ||||
| } | ||||
| description | description | |||
| "This leaf defines the system-id of the node."; | "Grouping for LFA | |||
| } | interface configuration"; | |||
| } | ||||
| grouping isis-global-cfg { | ||||
| description | ||||
| "Defines the ISIS global configuration."; | ||||
| leaf maximum-area-addresses { | uses admin-control; | |||
| if-feature maximum-area-addresses; | leaf level-type { | |||
| type uint8; | type level; | |||
| default 3; | default "level-all"; | |||
| description | description | |||
| "Defines the maximum areas supported."; | "This leaf describes the type of ISIS node. | |||
| } | A node can be level-1-only, level-2-only | |||
| or level-1-2. | ||||
| "; | ||||
| } | ||||
| leaf-list area-address { | leaf system-id { | |||
| type area-address; | type system-id; | |||
| description | description | |||
| "List of areas supported by the | "This leaf defines the system-id of the node."; | |||
| protocol instance."; | } | |||
| } | ||||
| container mpls { | leaf maximum-area-addresses { | |||
| leaf ipv4-router-id { | if-feature maximum-area-addresses; | |||
| if-feature ipv4-router-id; | type uint8; | |||
| type inet:ipv4-address; | default 3; | |||
| description | description | |||
| "Router ID value that would be used in | "Defines the maximum areas supported."; | |||
| TLV 134."; | ||||
| } | } | |||
| leaf ipv6-router-id { | ||||
| if-feature ipv6-router-id; | leaf-list area-address { | |||
| type inet:ipv6-address; | type area-address; | |||
| description | description | |||
| "Router ID value that would be used in | "List of areas supported by the | |||
| TLV 140."; | protocol instance."; | |||
| } | } | |||
| container igp-ldp-sync { | ||||
| if-feature igp-ldp-sync; | container mpls { | |||
| leaf ipv4-router-id { | ||||
| if-feature ipv4-router-id; | ||||
| type inet:ipv4-address; | ||||
| description | ||||
| "Router ID value that would be used in | ||||
| TLV 134."; | ||||
| } | ||||
| leaf ipv6-router-id { | ||||
| if-feature ipv6-router-id; | ||||
| type inet:ipv6-address; | ||||
| description | ||||
| "Router ID value that would be used in | ||||
| TLV 140."; | ||||
| } | ||||
| container igp-ldp-sync { | ||||
| if-feature igp-ldp-sync; | ||||
| description | ||||
| "This container may be augmented | ||||
| with global parameters for igp-ldp-sync."; | ||||
| } | ||||
| description | description | |||
| "This container may be augmented | "This container handles mpls config."; | |||
| with global parameters for igp-ldp-sync."; | } | |||
| leaf reference-bandwidth { | ||||
| if-feature reference-bandwidth; | ||||
| type uint32; | ||||
| units "bps"; | ||||
| description | ||||
| "This leaf defines the bandwidth for calculating | ||||
| metric."; | ||||
| } | } | |||
| description | ||||
| "This container handles mpls config."; | ||||
| } | ||||
| leaf reference-bandwidth { | ||||
| if-feature reference-bandwidth; | ||||
| type uint32; | ||||
| units "bps"; | ||||
| description | ||||
| "This leaf defines the bandwidth for calculating | ||||
| metric."; | ||||
| } | ||||
| leaf lsp-mtu { | leaf lsp-mtu { | |||
| type uint16; | type uint16; | |||
| units "bytes"; | units "bytes"; | |||
| default 1492; | default 1492; | |||
| description | description | |||
| "This leaf describes the maximum size of a | "This leaf describes the maximum size of a | |||
| LSP PDU in bytes."; | LSP PDU in bytes."; | |||
| } | } | |||
| leaf lsp-lifetime { | leaf lsp-lifetime { | |||
| type uint16 { | type uint16 { | |||
| range "1..65535"; | range "1..65535"; | |||
| } | } | |||
| units "seconds"; | units "seconds"; | |||
| description | description | |||
| "This leaf describes the lifetime of the router | "This leaf describes the lifetime of the router | |||
| LSP in seconds."; | LSP in seconds."; | |||
| } | } | |||
| leaf lsp-refresh { | leaf lsp-refresh { | |||
| if-feature lsp-refresh; | if-feature lsp-refresh; | |||
| type uint16 { | type uint16 { | |||
| range "1..65535"; | range "1..65535"; | |||
| } | } | |||
| units "seconds"; | units "seconds"; | |||
| description | description | |||
| "This leaf describes the refresh interval of the | "This leaf describes the refresh interval of the | |||
| router LSP in seconds."; | router LSP in seconds."; | |||
| } | } | |||
| container graceful-restart { | container graceful-restart { | |||
| if-feature graceful-restart; | if-feature graceful-restart; | |||
| leaf enable { | leaf enable { | |||
| type boolean; | type boolean; | |||
| description | ||||
| "Control enabling the feature."; | ||||
| } | ||||
| description | description | |||
| "Control enabling the feature."; | "This container activates graceful restart."; | |||
| } | } | |||
| description | ||||
| "This container activates graceful restart."; | ||||
| } | ||||
| uses isis-node-tag-cfg; | uses isis-node-tag-cfg; | |||
| container authentication { | container authentication { | |||
| uses authentication-global-cfg; | uses authentication-global-cfg; | |||
| container level-1 { | container level-1 { | |||
| uses authentication-global-cfg; | uses authentication-global-cfg; | |||
| description "level-1 specific cfg"; | description "level-1 specific cfg"; | |||
| } | } | |||
| container level-2 { | container level-2 { | |||
| uses authentication-global-cfg; | uses authentication-global-cfg; | |||
| description "level-2 specific cfg"; | description "level-2 specific cfg"; | |||
| } | } | |||
| description "authentication global cfg. | description "authentication global cfg. | |||
| It covers both LSPs and SNPs."; | It covers both LSPs and SNPs."; | |||
| } | } | |||
| container metric-type { | container metric-type { | |||
| uses metric-type-global-cfg; | uses metric-type-global-cfg; | |||
| container level-1 { | container level-1 { | |||
| uses metric-type-global-cfg; | uses metric-type-global-cfg; | |||
| description "level-1 specific cfg"; | description "level-1 specific cfg"; | |||
| } | } | |||
| container level-2 { | container level-2 { | |||
| uses metric-type-global-cfg; | uses metric-type-global-cfg; | |||
| description "level-2 specific cfg"; | description "level-2 specific cfg"; | |||
| } | } | |||
| description "Metric style global cfg."; | description "Metric style global cfg."; | |||
| } | } | |||
| 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 cfg"; | 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 cfg"; | description "level-2 specific cfg"; | |||
| } | } | |||
| description "Default metric global cfg."; | description "Default metric global cfg."; | |||
| } | ||||
| container afs { | ||||
| list af { | ||||
| if-feature nlpid-control; | ||||
| key af; | ||||
| leaf af { | ||||
| type identityref { | ||||
| base rt:address-family; | ||||
| } | ||||
| description | ||||
| "Address-family"; | ||||
| } | } | |||
| list af { | leaf enable { | |||
| if-feature nlpid-control; | type boolean; | |||
| key af; | description | |||
| leaf af { | "Describes the activation state of the | |||
| type identityref { | AF."; | |||
| base rt:address-family; | } | |||
| } | description | |||
| description | "This list permits activation | |||
| "Address-family"; | of new address families."; | |||
| } | ||||
| description | ||||
| "Container for address-families"; | ||||
| } | } | |||
| leaf enable { | container preference { | |||
| type boolean; | uses route-preference-global-cfg; | |||
| description | description | |||
| "Describes the activation state of the | "This container defines the protocol preference."; | |||
| AF."; | ||||
| } | } | |||
| description | ||||
| "This list permits activation | ||||
| of new address families."; | ||||
| } | container overload { | |||
| container preference { | uses overload-global-cfg; | |||
| uses route-preference-global-cfg; | description | |||
| description | "This container describes if the router is | |||
| "This container defines the protocol preference."; | set to overload state."; | |||
| } | } | |||
| container overload { | ||||
| uses overload-global-cfg; | container overload-max-metric { | |||
| description | if-feature overload-max-metric; | |||
| "This container describes if the router is | uses overload-max-metric-global-cfg; | |||
| set to overload state."; | ||||
| } | ||||
| container overload-max-metric { | description | |||
| if-feature overload-max-metric; | "This container describes if the router is | |||
| uses overload-max-metric-global-cfg; | set to overload state using max-metric | |||
| advertisement."; | ||||
| } | ||||
| description | } | |||
| "This container describes if the router is | ||||
| set to overload state using max-metric | ||||
| advertisement."; | ||||
| } | ||||
| } | grouping isis-global-topologies-cfg { | |||
| description | ||||
| "Per topology config."; | ||||
| grouping isis-global-topologies-cfg { | container default-metric { | |||
| description | uses default-metric-global-cfg; | |||
| "Per topology config."; | ||||
| container default-metric { | container level-1 { | |||
| uses default-metric-global-cfg; | uses default-metric-global-cfg; | |||
| description "level-1 specific cfg"; | ||||
| } | ||||
| container level-2 { | ||||
| uses default-metric-global-cfg; | ||||
| description "level-2 specific cfg"; | ||||
| } | ||||
| description "Default metric per | ||||
| topology cfg."; | ||||
| } | ||||
| container level-1 { | uses isis-node-tag-cfg; | |||
| uses default-metric-global-cfg; | } | |||
| description "level-1 specific cfg"; | ||||
| } | ||||
| container level-2 { | ||||
| uses default-metric-global-cfg; | ||||
| description "level-2 specific cfg"; | ||||
| } | ||||
| description "Default metric per | ||||
| topology cfg."; | ||||
| } | ||||
| uses isis-node-tag-cfg; | grouping isis-if-cfg { | |||
| } | description | |||
| "Grouping for interface cfg."; | ||||
| grouping isis-if-cfg { | leaf level-type { | |||
| type level; | ||||
| default "level-all"; | ||||
| description | description | |||
| "Grouping for interface cfg."; | "This leaf defines the associated ISIS | |||
| level of the interface."; | ||||
| } | ||||
| leaf lsp-pacing-interval { | ||||
| type uint16; | ||||
| units "milliseconds"; | ||||
| default 33; | ||||
| description | ||||
| "This leaf defines the interval between | ||||
| LSP transmissions in milli-seconds"; | ||||
| } | ||||
| leaf lsp-retransmit-interval { | ||||
| type uint16; | ||||
| 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 (ISIS not running, | ||||
| but network is advertised)."; | ||||
| } | ||||
| leaf csnp-interval { | ||||
| type uint16 { | ||||
| range "1..65535"; | ||||
| } | ||||
| units "seconds"; | ||||
| default 10; | ||||
| description | ||||
| "This leaf defines the interval of CSNP | ||||
| messages."; | ||||
| } | ||||
| leaf level-type { | container hello-padding { | |||
| type level; | leaf enable { | |||
| default "level-all"; | ||||
| description | ||||
| "This leaf defines the associated ISIS | ||||
| level of the interface."; | ||||
| } | ||||
| leaf lsp-pacing-interval { | ||||
| type uint16; | ||||
| units "milliseconds"; | ||||
| default 33; | ||||
| description | ||||
| "This leaf defines the interval between | ||||
| LSP transmissions in milli-seconds"; | ||||
| } | ||||
| leaf lsp-retransmit-interval { | ||||
| type uint16; | ||||
| units "seconds"; | ||||
| description | ||||
| "This leaf defines the interval between | ||||
| retransmission of LSP"; | ||||
| } | ||||
| leaf passive { | ||||
| type boolean; | type boolean; | |||
| default "false"; | default "true"; | |||
| description | ||||
| "This leaf defines if interface is in | ||||
| passive mode (ISIS not running, | ||||
| but network is advertised)."; | ||||
| } | ||||
| leaf csnp-interval { | ||||
| type uint16 { | ||||
| range "1..65535"; | ||||
| } | ||||
| 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 ISIS hello padding | ||||
| configuration."; | ||||
| } | ||||
| leaf mesh-group-enable { | ||||
| type mesh-group-state; | ||||
| description | description | |||
| "Describes the mesh group state of | "Status of Hello-padding activation. | |||
| the interface."; | By default, the implementation shall | |||
| pad HELLOs."; | ||||
| } | } | |||
| leaf mesh-group { | description | |||
| when "../mesh-group-enable = meshSet" { | "This container handles ISIS hello padding | |||
| description | configuration."; | |||
| "Only valid when mesh-group-enable | } | |||
| equals meshSet"; | leaf mesh-group-enable { | |||
| } | type mesh-group-state; | |||
| type uint8; | description | |||
| description | "Describes the mesh group state of | |||
| "Describes the mesh group ID of | the interface."; | |||
| the interface."; | } | |||
| } | ||||
| leaf interface-type { | leaf mesh-group { | |||
| type interface-type; | when "../mesh-group-enable = 'meshSet'" { | |||
| description | description | |||
| "This leaf defines the type of adjacency | "Only valid when mesh-group-enable | |||
| to be established on the interface. | equals meshSet"; | |||
| This is affecting the type of hello | ||||
| message that would be used."; | ||||
| } | } | |||
| type uint8; | ||||
| description | ||||
| "Describes the mesh group ID of | ||||
| the interface."; | ||||
| } | ||||
| uses admin-control; | leaf interface-type { | |||
| type interface-type; | ||||
| 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."; | ||||
| } | ||||
| leaf-list tag { | uses admin-control; | |||
| if-feature prefix-tag; | ||||
| type uint32; | leaf-list tag { | |||
| description | if-feature prefix-tag; | |||
| "This leaf defines list of tags associated | ||||
| with the interface."; | ||||
| } | type uint32; | |||
| description | ||||
| "This leaf defines list of tags associated | ||||
| with the interface."; | ||||
| } | ||||
| leaf-list tag64 { | leaf-list tag64 { | |||
| if-feature prefix-tag64; | if-feature prefix-tag64; | |||
| type uint64; | type uint64; | |||
| description | ||||
| "This leaf defines list of 64bits tags | ||||
| associated with the interface."; | ||||
| } | ||||
| leaf node-flag { | ||||
| if-feature node-flag; | ||||
| type boolean; | ||||
| default false; | ||||
| description | description | |||
| "This leaf defines list of 64bits tags | "Set prefix as a node | |||
| associated with the interface."; | representative prefix."; | |||
| } | ||||
| 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 hello-authentication { | container level-1 { | |||
| uses hello-authentication-cfg; | 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 level-1 { | container hello-interval { | |||
| uses hello-authentication-cfg; | uses hello-interval-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 { | container level-1 { | |||
| uses hello-interval-cfg; | 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 level-1 { | container hello-multiplier { | |||
| uses hello-interval-cfg; | uses hello-multiplier-cfg; | |||
| description "level-1 specific cfg"; | ||||
| } | ||||
| container level-2 { | ||||
| uses hello-interval-cfg; | ||||
| description "level-2 specific cfg"; | ||||
| } | container level-1 { | |||
| description "Interval between | uses hello-multiplier-cfg; | |||
| hello messages."; | description "level-1 specific cfg"; | |||
| } | ||||
| container hello-multiplier { | } | |||
| uses hello-multiplier-cfg; | container level-2 { | |||
| uses hello-multiplier-cfg; | ||||
| description "level-2 specific cfg"; | ||||
| } | ||||
| description "Hello multiplier | ||||
| configuration."; | ||||
| } | ||||
| container level-1 { | container priority { | |||
| uses hello-multiplier-cfg; | must '../interface-type = "broadcast"' { | |||
| description "level-1 specific cfg"; | error-message | |||
| } | "Priority only applies to broadcast | |||
| container level-2 { | interfaces."; | |||
| uses hello-multiplier-cfg; | description | |||
| description "level-2 specific cfg"; | "Check for broadcast interface."; | |||
| } | ||||
| description "Hello multiplier | ||||
| configuration."; | ||||
| } | } | |||
| uses priority-cfg; | ||||
| container priority { | container level-1 { | |||
| must '../interface-type = "broadcast"' { | uses priority-cfg; | |||
| error-message | description "level-1 specific cfg"; | |||
| "Priority only applies to broadcast | ||||
| interfaces."; | ||||
| description | ||||
| "Check for broadcast interface."; | ||||
| } | } | |||
| uses priority-cfg; | container level-2 { | |||
| uses priority-cfg; | ||||
| description "level-2 specific cfg"; | ||||
| } | ||||
| description "Priority for DIS election."; | ||||
| } | ||||
| container level-1 { | container metric { | |||
| uses priority-cfg; | uses metric-cfg; | |||
| description "level-1 specific cfg"; | ||||
| } | ||||
| container level-2 { | ||||
| uses priority-cfg; | ||||
| description "level-2 specific cfg"; | ||||
| } | ||||
| description "Priority for DIS election."; | ||||
| } | ||||
| container metric { | container level-1 { | |||
| uses metric-cfg; | uses metric-cfg; | |||
| description "level-1 specific cfg"; | ||||
| } | ||||
| container level-2 { | ||||
| uses metric-cfg; | ||||
| description "level-2 specific cfg"; | ||||
| } | ||||
| description "Metric configuration."; | ||||
| } | ||||
| container level-1 { | container bfd { | |||
| uses metric-cfg; | if-feature bfd; | |||
| description "level-1 specific cfg"; | leaf enabled { | |||
| } | type boolean; | |||
| container level-2 { | default false; | |||
| uses metric-cfg; | description " | |||
| description "level-2 specific cfg"; | Enables BFD on the interface | |||
| } | "; | |||
| description "Metric configuration."; | } | |||
| } | description | |||
| "BFD configuration."; | ||||
| } | ||||
| container bfd { | container afs { | |||
| if-feature bfd; | list af { | |||
| leaf enabled { | key af; | |||
| type boolean; | ||||
| default false; | ||||
| description " | ||||
| Enables BFD on the interface | ||||
| "; | ||||
| } | ||||
| description | ||||
| "BFD configuration."; | ||||
| } | ||||
| list af { | leaf af { | |||
| key af; | type identityref { | |||
| base rt:address-family; | ||||
| } | ||||
| description | ||||
| "Address-family"; | ||||
| } | ||||
| leaf af { | description | |||
| type identityref { | "List of AFs."; | |||
| base rt:address-family; | ||||
| } | ||||
| description | ||||
| "Address-family"; | ||||
| } | } | |||
| description | ||||
| "Container for address-families"; | ||||
| } | ||||
| container mpls { | ||||
| container igp-ldp-sync { | ||||
| if-feature igp-ldp-sync; | ||||
| leaf enable { | ||||
| type boolean; | ||||
| description | ||||
| "Enable/disable IGP LDP sync."; | ||||
| } | ||||
| description | description | |||
| "List of AFs."; | "IGP-LDP sync configuration."; | |||
| } | } | |||
| description | ||||
| "Container for MPLS specific configuration | ||||
| for ISIS."; | ||||
| } | ||||
| container mpls { | } | |||
| container igp-ldp-sync { | grouping isis-if-topologies-cfg { | |||
| if-feature igp-ldp-sync; | description | |||
| leaf enable { | "ISIS interface topology cfg."; | |||
| type boolean; | container metric { | |||
| description | uses metric-cfg; | |||
| "Enable/disable IGP LDP sync."; | ||||
| } | ||||
| description | ||||
| "IGP-LDP sync configuration."; | ||||
| container level-1 { | ||||
| uses metric-cfg; | ||||
| description "level-1 specific cfg"; | ||||
| } | } | |||
| description | container level-2 { | |||
| "Container for MPLS specific configuration | uses metric-cfg; | |||
| for ISIS."; | description "level-2 specific cfg"; | |||
| } | } | |||
| description "Metric configuration."; | ||||
| } | ||||
| } | ||||
| } | /* */ | |||
| grouping isis-if-topologies-cfg { | augment "/rt:routing-state/" | |||
| +"rt:ribs/rt:rib/rt:routes/rt:route" { | ||||
| when "rt:source-protocol = 'isis:isis'" { | ||||
| description "ISIS-specific route attributes."; | ||||
| } | ||||
| uses route-content; | ||||
| description | ||||
| "This augments route object in RIB with ISIS-specific | ||||
| attributes."; | ||||
| } | ||||
| augment "/if:interfaces/if:interface" | ||||
| { | ||||
| leaf clns-mtu { | ||||
| type uint16; | ||||
| description | description | |||
| "ISIS interface topology cfg."; | "Defines CLNS MTU of the interface."; | |||
| container metric { | } | |||
| uses metric-cfg; | description "ISO interface config."; | |||
| } | ||||
| container level-1 { | augment "/rt:routing/rt:control-plane-protocols/" | |||
| uses metric-cfg; | +"rt:control-plane-protocol" { | |||
| description "level-1 specific cfg"; | when "rt:type = 'isis:isis'" { | |||
| } | description | |||
| container level-2 { | "This augment is only valid when routing protocol | |||
| uses metric-cfg; | instance type is isis."; | |||
| description "level-2 specific cfg"; | } | |||
| } | description | |||
| description "Metric configuration."; | "This augments a routing protocol instance with ISIS | |||
| } | specific parameters."; | |||
| } | container isis { | |||
| /* */ | must "count(area-address) > 0" { | |||
| error-message "At least one area-address | ||||
| must be configured."; | ||||
| description | ||||
| "Enforce configuration of at least one area."; | ||||
| } | ||||
| augment "/rt:routing-state/" | uses isis-global-cfg; | |||
| +"rt:ribs/rt:rib/rt:routes/rt:route" { | ||||
| when "rt:source-protocol = 'isis:isis'" { | ||||
| description "ISIS-specific route attributes."; | ||||
| } | ||||
| uses route-content; | ||||
| description | ||||
| "This augments route object in RIB with ISIS-specific | ||||
| attributes."; | ||||
| } | ||||
| augment "/rt:fib-route/rt:output/rt:route" | container fast-reroute { | |||
| { | if-feature fast-reroute; | |||
| uses route-content; | uses fast-reroute-global-cfg; | |||
| description "ISIS-specific route attributes."; | description | |||
| } | "IPFRR."; | |||
| } | ||||
| container multi-topology { | ||||
| if-feature multi-topology; | ||||
| list topology { | ||||
| augment "/if:interfaces/if:interface" | key "name"; | |||
| { | ||||
| leaf clns-mtu { | ||||
| type uint16; | ||||
| description | ||||
| "Defines CLNS MTU of the interface."; | ||||
| } | ||||
| description "ISO interface config."; | ||||
| } | ||||
| augment "/rt:routing/rt:routing-protocols/" | leaf enable { | |||
| +"rt:routing-protocol" { | type boolean; | |||
| when "rt:type = 'isis:isis'" { | description | |||
| description | "Control enabling of topologies"; | |||
| "This augment is only valid when routing protocol | } | |||
| instance type is isis."; | ||||
| } | ||||
| description | ||||
| "This augments a routing protocol instance with ISIS | ||||
| specific parameters."; | ||||
| container isis { | ||||
| must "count(area-address) > 0" { | leaf name { | |||
| error-message "At least one area-address | type leafref { | |||
| must be configured."; | path "../../../../../../rt:ribs/rt:rib/rt:name"; | |||
| description | } | |||
| "Enforce configuration of at least one area."; | ||||
| } | ||||
| uses isis-global-cfg; | description "RIB"; | |||
| } | ||||
| uses isis-global-topologies-cfg; | ||||
| container fast-reroute { | container fast-reroute { | |||
| if-feature fast-reroute; | if-feature fast-reroute; | |||
| uses fast-reroute-global-cfg; | uses fast-reroute-global-cfg; | |||
| description | description | |||
| "IPFRR."; | "IPFRR."; | |||
| } | } | |||
| list topologies { | ||||
| if-feature multi-topology; | ||||
| key "name"; | description | |||
| "List of topologies"; | ||||
| leaf enable { | } | |||
| type boolean; | description | |||
| description | "Container for multi-topology"; | |||
| "Control enabling of topologies"; | ||||
| } | ||||
| leaf name { | ||||
| type leafref { | ||||
| path "../../../../../rt:ribs/rt:rib/rt:name"; | ||||
| } | ||||
| description "RIB"; | ||||
| } | } | |||
| uses isis-global-topologies-cfg; | container interfaces { | |||
| container fast-reroute { | list interface { | |||
| if-feature fast-reroute; | key "name"; | |||
| uses fast-reroute-global-cfg; | leaf name { | |||
| description | type if:interface-ref; | |||
| "IPFRR."; | ||||
| } | ||||
| description | ||||
| "List of topologies"; | ||||
| } | ||||
| container interfaces { | description | |||
| list interface { | "Reference to the interface within | |||
| key "name"; | the routing-instance."; | |||
| leaf name { | } | |||
| type if:interface-ref; | ||||
| uses isis-if-cfg; | ||||
| container fast-reroute { | ||||
| if-feature fast-reroute; | ||||
| uses fast-reroute-if-cfg; | ||||
| description | description | |||
| "Reference to the interface within | "IPFRR."; | |||
| the routing-instance."; | ||||
| } | } | |||
| container multi-topology { | ||||
| if-feature multi-topology; | ||||
| list topology { | ||||
| key name; | ||||
| uses isis-if-cfg; | leaf name { | |||
| container fast-reroute { | type leafref { | |||
| if-feature fast-reroute; | path "../../../../../../../../"+ | |||
| uses fast-reroute-if-cfg; | "rt:ribs/rt:rib/rt:name"; | |||
| description | } | |||
| "IPFRR."; | ||||
| } | ||||
| list topologies { | ||||
| key name; | ||||
| leaf name { | description | |||
| type leafref { | "Name of RIB."; | |||
| path "../../../../../../../"+ | } | |||
| "rt:ribs/rt:rib/rt:name"; | container fast-reroute { | |||
| } | if-feature fast-reroute; | |||
| uses fast-reroute-if-cfg; | ||||
| description | ||||
| "IPFRR."; | ||||
| } | ||||
| uses isis-if-topologies-cfg; | ||||
| description | ||||
| "List of topologies."; | ||||
| } | ||||
| description | ||||
| "Container for multi-topology"; | ||||
| } | ||||
| description | description | |||
| "Name of RIB."; | "List of ISIS interfaces."; | |||
| } | } | |||
| container fast-reroute { | description | |||
| if-feature fast-reroute; | "This container defines ISIS interface specific | |||
| uses fast-reroute-if-cfg; | configuration objects."; | |||
| description | ||||
| "IPFRR."; | ||||
| } | ||||
| uses isis-if-topologies-cfg; | ||||
| description | ||||
| "List of topologies."; | ||||
| } | ||||
| description | ||||
| "List of ISIS interfaces."; | ||||
| } | } | |||
| description | ||||
| "This container defines ISIS interface specific | ||||
| configuration objects."; | ||||
| } | ||||
| description | description | |||
| "This container defines ISIS specific configuration | "This container defines ISIS specific configuration | |||
| objects."; | objects."; | |||
| } | ||||
| } | } | |||
| } | ||||
| augment "/rt:routing-state/" | augment "/rt:routing-state/" | |||
| +"rt:routing-protocols/rt:routing-protocol" { | +"rt:control-plane-protocols/rt:control-plane-protocol" { | |||
| when "rt:type = 'isis:isis'" { | when "rt:type = 'isis:isis'" { | |||
| description | ||||
| "This augment is only valid when routing protocol | ||||
| instance type is isis."; | ||||
| } | ||||
| description | description | |||
| "This augment is only valid when routing protocol | "This augments routing protocol instance states with ISIS | |||
| instance type is isis."; | specific parameters."; | |||
| } | ||||
| description | ||||
| "This augments routing protocol instance states with ISIS | ||||
| specific parameters."; | ||||
| container isis { | ||||
| config false; | ||||
| uses isis-global-cfg; | ||||
| container fast-reroute { | ||||
| if-feature fast-reroute; | ||||
| uses fast-reroute-global-cfg; | ||||
| uses fast-reroute-global-state; | ||||
| description | ||||
| "IPFRR states."; | ||||
| } | ||||
| list topologies { | ||||
| key name; | ||||
| leaf name { | ||||
| type leafref { | ||||
| path "../../../../../" | ||||
| +"rt:ribs/rt:rib/rt:name"; | ||||
| } | ||||
| container isis { | ||||
| config false; | ||||
| uses isis-global-cfg; | ||||
| container fast-reroute { | ||||
| if-feature fast-reroute; | ||||
| uses fast-reroute-global-cfg; | ||||
| uses fast-reroute-global-state; | ||||
| description | description | |||
| "Name of RIB."; | "IPFRR states."; | |||
| } | } | |||
| container fast-route { | ||||
| if-feature fast-reroute; | ||||
| uses fast-reroute-global-cfg; | ||||
| uses fast-reroute-global-state; | ||||
| description | ||||
| "IPFRR states."; | ||||
| } | ||||
| description | ||||
| "List of topologies."; | ||||
| } | ||||
| container system-counters { | list topologies { | |||
| list level { | key name; | |||
| key level; | leaf name { | |||
| type leafref { | ||||
| path "../../../../../" | ||||
| +"rt:ribs/rt:rib/rt:name"; | ||||
| } | ||||
| leaf level { | ||||
| type level-number; | ||||
| description | ||||
| "This leaf describes the ISIS 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 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 | description | |||
| "Number of times the system has attempted | "Name of RIB."; | |||
| 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 { | container fast-route { | |||
| type uint32; | if-feature fast-reroute; | |||
| uses fast-reroute-global-cfg; | ||||
| uses fast-reroute-global-state; | ||||
| description | description | |||
| "Number of times we ran SPF at this level."; | "IPFRR states."; | |||
| } | } | |||
| description | description | |||
| "List of supported levels."; | "List of topologies."; | |||
| } | } | |||
| description | ||||
| "The container defines a list of counters | ||||
| for the IS."; | ||||
| } | ||||
| container interfaces { | ||||
| list interface { | ||||
| key interface; | ||||
| leaf interface { | container system-counters { | |||
| type string; | list level { | |||
| description | key level; | |||
| "This leaf describes the name | ||||
| of the interface."; | ||||
| } | ||||
| uses isis-if-cfg; | ||||
| container fast-reroute { | ||||
| if-feature fast-reroute; | ||||
| uses fast-reroute-if-cfg; | ||||
| description | ||||
| "IPFRR."; | ||||
| } | ||||
| uses adjacency-state; | ||||
| list topologies { | ||||
| key name; | ||||
| leaf name { | ||||
| type leafref { | ||||
| path "../../../../../" | ||||
| +"../../rt:ribs/rt:rib/rt:name"; | ||||
| } | ||||
| description | ||||
| "Name of RIB."; | ||||
| } | ||||
| uses isis-if-topologies-cfg; | ||||
| container fast-reroute { | ||||
| if-feature fast-reroute; | ||||
| uses fast-reroute-if-cfg; | ||||
| description | ||||
| "IPFRR."; | ||||
| } | ||||
| uses adjacency-state; | ||||
| description | ||||
| "List of topologies."; | ||||
| } | ||||
| container event-counters { | leaf level { | |||
| leaf adjacency-changes { | type level-number; | |||
| description | ||||
| "This leaf describes the ISIS level."; | ||||
| } | ||||
| leaf corrupted-lsps { | ||||
| type uint32; | type uint32; | |||
| description | description | |||
| "The number of times an adjacency state | "Number of corrupted in-memory LSPs detected. | |||
| change has occured on this interface."; | 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 adjacency-number { | leaf authentication-type-fails { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "The number of adjacencies on this | "Number of authentication type mismatches."; | |||
| interface."; | ||||
| } | } | |||
| leaf init-fails { | leaf authentication-fails { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "The number of times initialization of | "Number of authentication key failures."; | |||
| 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 { | leaf database-overload { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "The number of times an adjacency has been | "Number of times the database has become | |||
| rejected on this interface."; | overloaded."; | |||
| } | } | |||
| leaf id-len-mismatch { | leaf own-lsp-purge { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "The number of times an IS-IS PDU with an ID | "Number of times a zero-aged copy of the | |||
| field length different from that for this | system's own LSP is received from some | |||
| system has been received on this interface."; | other node."; | |||
| } | } | |||
| leaf max-area-addresses-mismatch { | leaf manual-address-drop-from-area { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "The number of times an IS-IS PDU with | "Number of times a manual address | |||
| according max area address field | has been dropped from the area."; | |||
| differs from that for | ||||
| this system has been received on this | ||||
| interface."; | ||||
| } | } | |||
| leaf authentication-type-fails { | leaf max-sequence { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Number of authentication type mismatches."; | "Number of times the system has attempted | |||
| to exceed the maximum sequence number."; | ||||
| } | } | |||
| leaf authentication-fails { | leaf sequence-number-skipped { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Number of authentication key failures."; | "Number of times a sequence number skip has | |||
| occured."; | ||||
| } | } | |||
| leaf lan-dis-changes { | leaf id-len-mismatch { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "The number of times the DIS has changed | "Number of times a PDU is received with | |||
| on this interface at this level. | a different value for ID field length | |||
| If the interface type is point to point, | from that of the receiving system."; | |||
| the count is zero."; | } | |||
| 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 | description | |||
| "Provides protocol event counters."; | "List of supported levels."; | |||
| } | } | |||
| container packet-counters { | description | |||
| list level { | "The container defines a list of counters | |||
| key level; | for the IS."; | |||
| } | ||||
| container interfaces { | ||||
| list interface { | ||||
| key interface; | ||||
| leaf interface { | ||||
| type string; | ||||
| description | ||||
| "This leaf describes the name | ||||
| of the interface."; | ||||
| } | ||||
| uses isis-if-cfg; | ||||
| container fast-reroute { | ||||
| if-feature fast-reroute; | ||||
| uses fast-reroute-if-cfg; | ||||
| description | ||||
| "IPFRR."; | ||||
| } | ||||
| uses adjacency-state; | ||||
| list topologies { | ||||
| key name; | ||||
| leaf name { | ||||
| type leafref { | ||||
| path "../../../../../" | ||||
| +"../../rt:ribs/rt:rib/rt:name"; | ||||
| } | ||||
| leaf level { | ||||
| type level-number; | ||||
| description | description | |||
| "This leaf describes the ISIS level."; | "Name of RIB."; | |||
| } | } | |||
| uses isis-if-topologies-cfg; | ||||
| container fast-reroute { | ||||
| if-feature fast-reroute; | ||||
| uses fast-reroute-if-cfg; | ||||
| description | ||||
| "IPFRR."; | ||||
| } | ||||
| uses adjacency-state; | ||||
| container iih { | description | |||
| leaf in { | "List of topologies."; | |||
| type uint32; | } | |||
| description | ||||
| "Received PDUs."; | container event-counters { | |||
| } | leaf adjacency-changes { | |||
| leaf out { | type uint32; | |||
| type uint32; | ||||
| description | ||||
| "Sent PDUs."; | ||||
| } | ||||
| description | description | |||
| "The number of IIH PDUs received/sent."; | "The number of times an adjacency state | |||
| change has occured on this interface."; | ||||
| } | } | |||
| container ish { | leaf adjacency-number { | |||
| leaf in { | type uint32; | |||
| type uint32; | ||||
| description | ||||
| "Received PDUs."; | ||||
| } | ||||
| leaf out { | ||||
| type uint32; | ||||
| description | ||||
| "Sent PDUs."; | ||||
| } | ||||
| description | description | |||
| "The number of ISH PDUs received/sent."; | "The number of adjacencies on this | |||
| interface."; | ||||
| } | } | |||
| container esh { | leaf init-fails { | |||
| leaf in { | type uint32; | |||
| type uint32; | ||||
| description | ||||
| "Received PDUs."; | ||||
| } | ||||
| leaf out { | ||||
| type uint32; | ||||
| description | ||||
| "Sent PDUs."; | ||||
| } | ||||
| description | description | |||
| "The number of ESH PDUs received/sent."; | "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."; | ||||
| } | } | |||
| container lsp { | leaf adjacency-rejects { | |||
| leaf in { | type uint32; | |||
| 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."; | ||||
| } | ||||
| container packet-counters { | ||||
| list level { | ||||
| key level; | ||||
| leaf level { | ||||
| type level-number; | ||||
| description | description | |||
| "Received PDUs."; | "This leaf describes the ISIS level."; | |||
| } | } | |||
| leaf out { | ||||
| type uint32; | ||||
| description | ||||
| "Sent PDUs."; | ||||
| container iih { | ||||
| leaf in { | ||||
| type uint32; | ||||
| description | ||||
| "Received PDUs."; | ||||
| } | ||||
| leaf out { | ||||
| type uint32; | ||||
| description | ||||
| "Sent PDUs."; | ||||
| } | ||||
| description | ||||
| "The number of IIH PDUs received/sent."; | ||||
| } | } | |||
| description | container ish { | |||
| "The number of LSP PDUs received/sent."; | leaf in { | |||
| } | type uint32; | |||
| container psnp { | description | |||
| leaf in { | "Received PDUs."; | |||
| type uint32; | } | |||
| leaf out { | ||||
| type uint32; | ||||
| description | ||||
| "Sent PDUs."; | ||||
| } | ||||
| description | description | |||
| "Received PDUs."; | "The number of ISH PDUs received/sent."; | |||
| } | } | |||
| leaf out { | container esh { | |||
| type uint32; | leaf in { | |||
| type uint32; | ||||
| description | ||||
| "Received PDUs."; | ||||
| } | ||||
| leaf out { | ||||
| type uint32; | ||||
| description | ||||
| "Sent PDUs."; | ||||
| } | ||||
| description | description | |||
| "Sent PDUs."; | "The number of ESH PDUs received/sent."; | |||
| } | } | |||
| description | container lsp { | |||
| "The number of PSNP PDUs received/sent."; | leaf in { | |||
| } | type uint32; | |||
| container csnp { | description | |||
| leaf in { | "Received PDUs."; | |||
| type uint32; | } | |||
| leaf out { | ||||
| type uint32; | ||||
| description | ||||
| "Sent PDUs."; | ||||
| } | ||||
| description | description | |||
| "Received PDUs."; | "The number of LSP PDUs received/sent."; | |||
| } | } | |||
| leaf out { | container psnp { | |||
| type uint32; | leaf in { | |||
| type uint32; | ||||
| description | ||||
| "Received PDUs."; | ||||
| } | ||||
| leaf out { | ||||
| type uint32; | ||||
| description | ||||
| "Sent PDUs."; | ||||
| } | ||||
| description | description | |||
| "Sent PDUs."; | "The number of PSNP PDUs received/sent."; | |||
| } | } | |||
| description | container csnp { | |||
| "The number of CSNP PDUs received/sent."; | leaf in { | |||
| } | type uint32; | |||
| container unknown { | description | |||
| leaf in { | "Received PDUs."; | |||
| type uint32; | } | |||
| leaf out { | ||||
| type uint32; | ||||
| description | ||||
| "Sent PDUs."; | ||||
| } | ||||
| description | description | |||
| "Received PDUs."; | "The number of CSNP PDUs received/sent."; | |||
| } | } | |||
| leaf out { | container unknown { | |||
| type uint32; | leaf in { | |||
| type uint32; | ||||
| description | ||||
| "Received PDUs."; | ||||
| } | ||||
| leaf out { | ||||
| type uint32; | ||||
| description | ||||
| "Sent PDUs."; | ||||
| } | ||||
| description | description | |||
| "Sent PDUs."; | "The number of unknown PDUs received/sent."; | |||
| } | } | |||
| description | description | |||
| "The number of unknown PDUs received/sent."; | "List of supported levels."; | |||
| } | } | |||
| description | description | |||
| "List of supported levels."; | "Provides packet counters per level."; | |||
| } | } | |||
| description | description | |||
| "Provides packet counters per level."; | "List of interfaces."; | |||
| } | } | |||
| description | description | |||
| "List of interfaces."; | "The container defines operational parameters | |||
| of interfaces."; | ||||
| } | } | |||
| description | ||||
| "The container defines operational parameters | ||||
| of interfaces."; | ||||
| } | ||||
| container spf-log { | container spf-log { | |||
| list event { | list event { | |||
| key id; | key id; | |||
| leaf id { | leaf id { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "This leaf defines the event identifier. | "This leaf defines the event identifier. | |||
| This is a purely internal value."; | This is a purely internal value."; | |||
| } | } | |||
| leaf spf-type { | leaf spf-type { | |||
| type enumeration { | type enumeration { | |||
| enum full { | enum full { | |||
| description | description | |||
| "Computation done is a Full SPF."; | "Computation done is a Full SPF."; | |||
| } | } | |||
| enum incremental { | enum incremental { | |||
| description | description | |||
| "Computation done is an | "Computation done is an | |||
| incremental SPF."; | incremental SPF."; | |||
| } | } | |||
| enum route-only { | enum route-only { | |||
| description | description | |||
| "Computation done is a | "Computation done is a | |||
| reachability computation | reachability computation | |||
| only."; | only."; | |||
| } | ||||
| } | } | |||
| description | ||||
| "This leaf describes the type of computation | ||||
| used."; | ||||
| } | } | |||
| description | leaf level { | |||
| "This leaf describes the type of computation | type level-number; | |||
| used."; | ||||
| } | ||||
| leaf level { | ||||
| type level-number; | ||||
| description | ||||
| "This leaf describes the level affected by the | ||||
| the computation."; | ||||
| } | ||||
| leaf spf-delay { | ||||
| type uint32; | ||||
| units "milliseconds"; | ||||
| description | ||||
| "This leaf describes the SPF delay that | ||||
| was used for this event."; | ||||
| } | ||||
| 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 | description | |||
| "This leaf describes the LSPID | "This leaf describes the level affected by the | |||
| of the LSP."; | the computation."; | |||
| } | } | |||
| leaf sequence { | leaf spf-delay { | |||
| type uint32; | type uint32; | |||
| units "milliseconds"; | ||||
| description | description | |||
| "This leaf describes the sequence | "This leaf describes the SPF delay that | |||
| number of the LSP."; | was used for this event."; | |||
| } | ||||
| 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 | description | |||
| "This leaf describes list of LSPs | "List of computation events."; | |||
| that triggered the computation."; | ||||
| } | } | |||
| description | description | |||
| "List of computation events."; | "This container lists the SPF computation events."; | |||
| } | ||||
| description | ||||
| "This container lists the SPF computation events."; | ||||
| } | ||||
| container lsp-log { | ||||
| list event { | ||||
| key id; | ||||
| leaf id { | } | |||
| type uint32; | container lsp-log { | |||
| description | list event { | |||
| "This leaf defines the event identifier. | key id; | |||
| This is a purely internal value."; | ||||
| } | ||||
| leaf level { | ||||
| type level-number; | ||||
| description | ||||
| "This leaf describes the level affected by the | ||||
| the computation."; | ||||
| } | ||||
| container lsp { | ||||
| leaf lsp { | ||||
| type lsp-id; | leaf id { | |||
| type uint32; | ||||
| description | description | |||
| "This leaf describes the LSPID | "This leaf defines the event identifier. | |||
| of the LSP."; | This is a purely internal value."; | |||
| } | } | |||
| leaf sequence { | leaf level { | |||
| type uint32; | type level-number; | |||
| description | description | |||
| "This leaf describes the sequence | "This leaf describes the level affected by the | |||
| number of the LSP."; | the computation."; | |||
| } | } | |||
| description | container lsp { | |||
| "This container describes the received LSP | leaf lsp { | |||
| , in case of local LSP update the local | ||||
| LSP ID is referenced."; | ||||
| } | ||||
| leaf received-timestamp { | ||||
| type yang:timestamp; | ||||
| description | type lsp-id; | |||
| "This leaf describes the timestamp | ||||
| when the LSP was received. In case of | ||||
| local LSP update, the timestamp refers | ||||
| to the local LSP update time."; | ||||
| } | ||||
| leaf change { | ||||
| type bits { | ||||
| bit refresh { | ||||
| position 0; | ||||
| description | ||||
| "Refresh LSP, nothing has changed."; | ||||
| } | ||||
| bit link-down { | ||||
| position 1; | ||||
| description | ||||
| "One or more links are down."; | ||||
| } | ||||
| bit link-up { | ||||
| position 2; | ||||
| description | ||||
| "One or more links are up."; | ||||
| } | ||||
| bit link-metric-change { | ||||
| position 3; | ||||
| description | ||||
| "One or more links experienced | ||||
| a metric change."; | ||||
| } | ||||
| bit link-other-change { | ||||
| position 4; | ||||
| description | ||||
| "One or more links experienced | ||||
| a change that does not affect state | ||||
| or metric."; | ||||
| } | ||||
| bit prefix-down { | ||||
| position 5; | ||||
| description | ||||
| "One or more links are down."; | ||||
| } | ||||
| bit prefix-up { | ||||
| position 6; | ||||
| description | ||||
| "One or more prefixes are up."; | ||||
| } | ||||
| bit prefix-metric-change { | ||||
| position 7; | ||||
| description | description | |||
| "One or more prefixes experienced | "This leaf describes the LSPID | |||
| a metric change."; | of the LSP."; | |||
| } | } | |||
| bit prefix-other-change { | leaf sequence { | |||
| position 8; | type uint32; | |||
| description | description | |||
| "One or more prefixes experienced | "This leaf describes the sequence | |||
| a change that does not affect state | number of the LSP."; | |||
| or metric."; | ||||
| } | } | |||
| bit other-change { | description | |||
| position 9; | "This container describes the received LSP | |||
| description | , in case of local LSP update the local | |||
| "One or more component changed that | LSP ID is referenced."; | |||
| is not a prefix or link."; | } | |||
| leaf received-timestamp { | ||||
| type yang:timestamp; | ||||
| description | ||||
| "This leaf describes the timestamp | ||||
| when the LSP was received. In case of | ||||
| local LSP update, the timestamp refers | ||||
| to the local LSP update time."; | ||||
| } | ||||
| leaf change { | ||||
| type bits { | ||||
| bit refresh { | ||||
| position 0; | ||||
| description | ||||
| "Refresh LSP, nothing has changed."; | ||||
| } | ||||
| bit link-down { | ||||
| position 1; | ||||
| description | ||||
| "One or more links are down."; | ||||
| } | ||||
| bit link-up { | ||||
| position 2; | ||||
| description | ||||
| "One or more links are up."; | ||||
| } | ||||
| bit link-metric-change { | ||||
| position 3; | ||||
| description | ||||
| "One or more links experienced | ||||
| a metric change."; | ||||
| } | ||||
| bit link-other-change { | ||||
| position 4; | ||||
| description | ||||
| "One or more links experienced | ||||
| a change that does not affect state | ||||
| or metric."; | ||||
| } | ||||
| bit prefix-down { | ||||
| position 5; | ||||
| description | ||||
| "One or more links are down."; | ||||
| } | ||||
| bit prefix-up { | ||||
| position 6; | ||||
| description | ||||
| "One or more prefixes are up."; | ||||
| } | ||||
| bit prefix-metric-change { | ||||
| position 7; | ||||
| description | ||||
| "One or more prefixes experienced | ||||
| a metric change."; | ||||
| } | ||||
| bit prefix-other-change { | ||||
| position 8; | ||||
| description | ||||
| "One or more prefixes experienced | ||||
| a change that does not affect state | ||||
| or metric."; | ||||
| } | ||||
| bit other-change { | ||||
| position 9; | ||||
| description | ||||
| "One or more component changed that | ||||
| is not a prefix or link."; | ||||
| } | ||||
| } | } | |||
| description | ||||
| "This leaf describes the type of change | ||||
| in the LSP."; | ||||
| } | } | |||
| description | description | |||
| "This leaf describes the type of change | "List of LSP events."; | |||
| in the LSP."; | ||||
| } | } | |||
| description | description | |||
| "List of LSP events."; | "This container lists the LSP reception events. | |||
| Local LSP modification are also contained in the | ||||
| list."; | ||||
| } | } | |||
| container database { | ||||
| list level-db { | ||||
| key level; | ||||
| description | leaf level { | |||
| "This container lists the LSP reception events. | type level-number; | |||
| Local LSP modification are also contained in the | description | |||
| list."; | "Current level number"; | |||
| } | } | |||
| container database { | list lsp { | |||
| list level-db { | key lsp-id; | |||
| key level; | ||||
| leaf level { | uses database; | |||
| type level-number; | description | |||
| description | "List of LSPs in LSDB."; | |||
| "Current level number"; | } | |||
| } | ||||
| list lsp { | ||||
| key lsp-id; | ||||
| uses database; | ||||
| description | description | |||
| "List of LSPs in LSDB."; | "This container describes the list of LSPs | |||
| in the level x database."; | ||||
| } | } | |||
| description | description | |||
| "This container describes the list of LSPs | "This container describes ISIS Link State | |||
| in the level x database."; | databases."; | |||
| } | } | |||
| description | container hostnames { | |||
| "This container describes ISIS Link State | ||||
| databases."; | ||||
| } | ||||
| container hostnames { | ||||
| list hostname { | list hostname { | |||
| key system-id; | key system-id; | |||
| leaf system-id { | leaf system-id { | |||
| type system-id; | type system-id; | |||
| description | description | |||
| "This leaf describes the system-id | "This leaf describes the system-id | |||
| associated with the hostname."; | associated with the hostname."; | |||
| } | } | |||
| leaf hostname { | leaf hostname { | |||
| type string; | type string; | |||
| description | ||||
| "This leaf describes the hostname | ||||
| associated with the system ID."; | ||||
| } | ||||
| description | description | |||
| "This leaf describes the hostname | "List of system-id/hostname associations"; | |||
| associated with the system ID."; | ||||
| } | } | |||
| description | description | |||
| "List of system-id/hostname associations"; | "This container describes the list | |||
| of binding between system-id and | ||||
| hostnames."; | ||||
| } | } | |||
| description | description | |||
| "This container describes the list | "This container defines various ISIS states objects."; | |||
| of binding between system-id and | } | |||
| hostnames."; | ||||
| } | ||||
| description | ||||
| "This container defines various ISIS states objects."; | ||||
| } | } | |||
| } | ||||
| /* RPC methods */ | /* RPC methods */ | |||
| rpc clear-adjacency { | rpc clear-adjacency { | |||
| description | description | |||
| "This RPC request clears a particular | "This RPC request clears a particular | |||
| set of ISIS adjacencies. If the operation | set of ISIS adjacencies. If the operation | |||
| fails for ISIS internal reason, then | fails for ISIS internal reason, then | |||
| error-tag and error-app-tag should be set | error-tag and error-app-tag should be set | |||
| to a meaningful value."; | to a meaningful value."; | |||
| input { | input { | |||
| leaf routing-protocol-instance-name { | leaf routing-protocol-instance-name { | |||
| type instance-state-ref; | type instance-state-ref; | |||
| mandatory "true"; | mandatory "true"; | |||
| description | description | |||
| "Name of the ISIS protocol instance whose ISIS | "Name of the ISIS protocol instance whose ISIS | |||
| information is being queried. | information is being queried. | |||
| If the ISIS instance with name equal to the | If the ISIS instance with name equal to the | |||
| value of this parameter doesn't exist, then this | value of this parameter doesn't exist, then this | |||
| operation SHALL fail with error-tag 'data-missing' | operation SHALL fail with error-tag 'data-missing' | |||
| and error-app-tag | and error-app-tag | |||
| 'routing-protocol-instance-not-found'."; | 'routing-protocol-instance-not-found'."; | |||
| } | } | |||
| leaf level { | leaf level { | |||
| type level; | type level; | |||
| description | description | |||
| "ISIS level of the adjacency to be cleared. | "ISIS level of the adjacency to be cleared. | |||
| If ISIS level is level-1-2, both level 1 and level 2 | If ISIS level is level-1-2, both level 1 and level 2 | |||
| adjacencies would be cleared. | adjacencies would be cleared. | |||
| If the value provided is different from the one | If the value provided is different from the one | |||
| authorized in the enum type, then this | authorized in the enum type, then this | |||
| operation SHALL fail with error-tag 'data-missing' | operation SHALL fail with error-tag 'data-missing' | |||
| and error-app-tag | and error-app-tag | |||
| 'bad-isis-level'. | 'bad-isis-level'. | |||
| "; | "; | |||
| } | } | |||
| leaf interface { | leaf interface { | |||
| type string; | type string; | |||
| description | description | |||
| "Name of the ISIS interface. | "Name of the ISIS interface. | |||
| If the ISIS interface with name equal to the | If the ISIS interface with name equal to the | |||
| value of this parameter doesn't exist, then this | value of this parameter doesn't exist, then this | |||
| operation SHALL fail with error-tag 'data-missing' | operation SHALL fail with error-tag 'data-missing' | |||
| and error-app-tag | and error-app-tag | |||
| 'isis-interface-not-found'."; | 'isis-interface-not-found'."; | |||
| } | ||||
| } | } | |||
| } | } | |||
| } | ||||
| rpc clear-database { | rpc clear-database { | |||
| description | description | |||
| "This RPC request clears a particular | "This RPC request clears a particular | |||
| ISIS database. If the operation | ISIS database. If the operation | |||
| fails for ISIS internal reason, then | fails for ISIS internal reason, then | |||
| error-tag and error-app-tag should be set | error-tag and error-app-tag should be set | |||
| to a meaningful value."; | to a meaningful value."; | |||
| input { | input { | |||
| leaf routing-protocol-instance-name { | leaf routing-protocol-instance-name { | |||
| type instance-state-ref; | type instance-state-ref; | |||
| mandatory "true"; | mandatory "true"; | |||
| description | description | |||
| "Name of the ISIS protocol instance whose ISIS | "Name of the ISIS protocol instance whose ISIS | |||
| information is being queried. | information is being queried. | |||
| If the ISIS instance with name equal to the | If the ISIS instance with name equal to the | |||
| value of this parameter doesn't exist, then this | value of this parameter doesn't exist, then this | |||
| operation SHALL fail with error-tag 'data-missing' | operation SHALL fail with error-tag 'data-missing' | |||
| and error-app-tag | and error-app-tag | |||
| 'routing-protocol-instance-not-found'."; | 'routing-protocol-instance-not-found'."; | |||
| } | } | |||
| leaf level { | leaf level { | |||
| type level; | type level; | |||
| description | description | |||
| "ISIS level of the adjacency to be cleared. | "ISIS level of the adjacency to be cleared. | |||
| If ISIS level is level-1-2, both level 1 and level 2 | If ISIS level is level-1-2, both level 1 and level 2 | |||
| adjacencies would be cleared. | adjacencies would be cleared. | |||
| If the value provided is different from the one | If the value provided is different from the one | |||
| authorized in the enum type, then this | authorized in the enum type, then this | |||
| operation SHALL fail with error-tag 'data-missing' | operation SHALL fail with error-tag 'data-missing' | |||
| and error-app-tag | and error-app-tag | |||
| 'bad-isis-level'. | 'bad-isis-level'. | |||
| "; | "; | |||
| } | ||||
| } | } | |||
| } | } | |||
| } | /* Notifications */ | |||
| /* Notifications */ | notification database-overload { | |||
| uses notification-instance-hdr; | ||||
| notification database-overload { | leaf overload { | |||
| uses notification-instance-hdr; | type enumeration { | |||
| enum "off" { | ||||
| description | ||||
| "The system has left overload condition."; | ||||
| } | ||||
| enum "on" { | ||||
| description | ||||
| "The system is in overload condition."; | ||||
| } | ||||
| leaf overload { | ||||
| type enumeration { | ||||
| enum "off" { | ||||
| description | ||||
| "The system has left overload condition."; | ||||
| } | ||||
| enum "on" { | ||||
| description | ||||
| "The system is in overload condition."; | ||||
| } | } | |||
| description | ||||
| "Describes the new overload state of the instance."; | ||||
| } | } | |||
| description | description | |||
| "Describes the new overload state of the instance."; | "This notification is sent when an ISIS instance | |||
| overload condition changes."; | ||||
| } | } | |||
| description | ||||
| "This notification is sent when an ISIS instance | ||||
| 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 PDU"; | "Size of the PDU"; | |||
| } | } | |||
| leaf lsp-id { | leaf lsp-id { | |||
| type lsp-id; | type lsp-id; | |||
| description | ||||
| "LSP ID."; | ||||
| } | ||||
| description | description | |||
| "LSP ID."; | "This notification is sent when we attempt | |||
| to propagate an LSP that is larger than the | ||||
| dataLinkBlockSize for the circuit. | ||||
| The notification generation must be throttled | ||||
| with at least a 5 second gap. | ||||
| "; | ||||
| } | } | |||
| description | ||||
| "This notification is sent when we attempt | ||||
| to propagate an LSP that is larger than the | ||||
| dataLinkBlockSize for the circuit. | ||||
| The notification generation must be throttled | ||||
| with at least a 5 second gap. | ||||
| "; | ||||
| } | ||||
| 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 | ||||
| "LSP ID."; | ||||
| } | ||||
| description | description | |||
| "LSP ID."; | "This notification is sent when we find | |||
| that an LSP that was stored in memory has | ||||
| become corrupted. | ||||
| "; | ||||
| } | } | |||
| description | ||||
| "This notification is sent when we find | ||||
| that an LSP that was stored in memory has | ||||
| become corrupted. | ||||
| "; | ||||
| } | ||||
| notification attempt-to-exceed-max-sequence { | 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 | ||||
| "LSP ID."; | ||||
| } | ||||
| description | description | |||
| "LSP ID."; | "This notification is sent when the system | |||
| wraps the 32-bit sequence counter of an LSP. | ||||
| "; | ||||
| } | } | |||
| description | ||||
| "This notification is sent when the system | ||||
| 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 | description | |||
| "Received raw PDU."; | "This notification is sent when we receive a PDU | |||
| with a different value for the System ID length. | ||||
| The notification generation must be throttled | ||||
| with at least a 5 second gap. | ||||
| "; | ||||
| } | } | |||
| description | ||||
| "This notification is sent when we receive a PDU | ||||
| with a different value for the System ID length. | ||||
| The notification generation must be throttled | ||||
| with at least a 5 second gap. | ||||
| "; | ||||
| } | ||||
| notification max-area-addresses-mismatch { | notification max-area-addresses-mismatch { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf max-area-addresses { | leaf max-area-addresses { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "Received number of supported areas"; | "Received number of supported areas"; | |||
| } | } | |||
| leaf raw-pdu { | leaf raw-pdu { | |||
| type binary; | type binary; | |||
| description | ||||
| "Received raw PDU."; | ||||
| } | ||||
| description | description | |||
| "Received raw PDU."; | "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. | ||||
| "; | ||||
| } | } | |||
| 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 { | notification own-lsp-purge { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf lsp-id { | leaf lsp-id { | |||
| type lsp-id; | type lsp-id; | |||
| description | ||||
| "LSP ID."; | ||||
| } | ||||
| description | description | |||
| "LSP ID."; | "This notification is sent when the system | |||
| receives a PDU with its own system ID and zero age. | ||||
| "; | ||||
| } | } | |||
| description | ||||
| "This notification is sent when the system | ||||
| receives a PDU with its own system ID and zero age. | ||||
| "; | ||||
| } | ||||
| notification sequence-number-skipped { | notification sequence-number-skipped { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf lsp-id { | leaf lsp-id { | |||
| type lsp-id; | type lsp-id; | |||
| description | ||||
| "LSP ID."; | ||||
| } | ||||
| description | description | |||
| "LSP ID."; | "This notification is sent when the system | |||
| receives a PDU with its own system ID and | ||||
| different contents. The system has to reissue | ||||
| the LSP with a higher sequence number. | ||||
| "; | ||||
| } | } | |||
| description | ||||
| "This notification is sent when the system | ||||
| 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 authentication-type-failure { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf raw-pdu { | leaf raw-pdu { | |||
| type binary; | type binary; | |||
| description | ||||
| "Received raw PDU."; | ||||
| } | ||||
| description | description | |||
| "Received raw PDU."; | "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 a 5 second gap. | ||||
| "; | ||||
| } | } | |||
| 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 a 5 second gap. | ||||
| "; | ||||
| } | ||||
| 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 | ||||
| "Received raw PDU."; | ||||
| } | ||||
| description | description | |||
| "Received raw PDU."; | "This notification is sent when the system | |||
| receives a PDU with the wrong authentication | ||||
| information. | ||||
| The notification generation must be throttled with | ||||
| at least a 5 second gap. | ||||
| "; | ||||
| } | } | |||
| description | ||||
| "This notification is sent when the system | ||||
| receives a PDU with the wrong authentication | ||||
| information. | ||||
| The notification generation must be throttled with | ||||
| at least a 5 second gap. | ||||
| "; | ||||
| } | ||||
| notification version-skew { | notification version-skew { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf protocol-version { | leaf protocol-version { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "Protocol version received in the PDU."; | "Protocol version received in the PDU."; | |||
| } | } | |||
| leaf raw-pdu { | leaf raw-pdu { | |||
| type binary; | type binary; | |||
| description | ||||
| "Received raw PDU."; | ||||
| } | ||||
| description | description | |||
| "Received raw PDU."; | "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 | ||||
| a 5 second gap. | ||||
| "; | ||||
| } | } | |||
| 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 | ||||
| a 5 second gap. | ||||
| "; | ||||
| } | ||||
| notification area-mismatch { | notification area-mismatch { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf raw-pdu { | leaf raw-pdu { | |||
| type binary; | type binary; | |||
| description | ||||
| "Received raw PDU."; | ||||
| } | ||||
| description | description | |||
| "Received raw PDU."; | "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 | ||||
| a 5 second gap. | ||||
| "; | ||||
| } | } | |||
| 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 | ||||
| a 5 second gap. | ||||
| "; | ||||
| } | ||||
| notification rejected-adjacency { | notification rejected-adjacency { | |||
| 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 reason { | leaf reason { | |||
| type string; | 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 | description | |||
| "The system may provide a reason to reject the | "This notification is sent when the system | |||
| adjacency. If the reason is not available, | receives a Hello PDU from an IS but does not | |||
| the system use an empty string."; | establish an adjacency for some reason. | |||
| The notification generation must be throttled with at least | ||||
| a 5 second gap. | ||||
| "; | ||||
| } | } | |||
| 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 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 { | leaf-list protocols { | |||
| type uint8; | type uint8; | |||
| description | ||||
| "The list of protocols supported by the | ||||
| remote system."; | ||||
| } | ||||
| description | description | |||
| "The list of protocols supported by the | "This notification is sent when the system | |||
| remote system."; | receives a non pseudonode LSP that has no matching | |||
| protocol supported. | ||||
| The notification generation must be throttled with at least | ||||
| a 5 second gap. | ||||
| "; | ||||
| } | } | |||
| description | ||||
| "This notification is sent when the system | ||||
| receives a non pseudonode LSP that has no matching | ||||
| protocol supported. | ||||
| The notification generation must be throttled with at least | ||||
| a 5 second gap. | ||||
| "; | ||||
| } | ||||
| notification lsp-error-detected { | notification lsp-error-detected { | |||
| 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 raw-pdu { | leaf raw-pdu { | |||
| type binary; | type binary; | |||
| description | description | |||
| "Received raw PDU."; | "Received raw PDU."; | |||
| } | } | |||
| leaf error-offset { | leaf error-offset { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "If the problem is a malformed TLV, | "If the problem is a malformed TLV, | |||
| the error-offset points to the start of the TLV. | the error-offset points to the start of the TLV. | |||
| If the problem is with the LSP header, | If the problem is with the LSP header, | |||
| the error-offset points to the suspicious byte"; | the error-offset points to the suspicious byte"; | |||
| } | } | |||
| leaf tlv-type { | leaf tlv-type { | |||
| type uint8; | 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 | description | |||
| "if the problem is a malformed TLV, the tlv-type is set | "This notification is sent when the system | |||
| to the type value of the suspicious TLV. | receives a LSP with a parse error. | |||
| Otherwise this leaf is not present."; | The notification generation must be throttled with at least | |||
| } | a 5 second gap. | |||
| 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-change { | ||||
| uses notification-instance-hdr; | ||||
| uses notification-interface-hdr; | ||||
| leaf neighbor { | ||||
| type string; | ||||
| description | ||||
| "Describes the name of the neighbor. If the | ||||
| name of the neighbor is not available, the | ||||
| field would be empty."; | ||||
| } | } | |||
| leaf neighbor-system-id { | ||||
| type system-id; | notification adjacency-change { | |||
| description | uses notification-instance-hdr; | |||
| "Describes the system-id of the neighbor."; | uses notification-interface-hdr; | |||
| } | leaf neighbor { | |||
| leaf level { | type string; | |||
| type level; | description | |||
| description | "Describes the name of the neighbor. If the | |||
| "Describes the ISIS level of the adjacency."; | name of the neighbor is not available, the | |||
| } | field would be empty."; | |||
| leaf state { | } | |||
| type enumeration { | leaf neighbor-system-id { | |||
| enum "Up" { | type system-id; | |||
| description | description | |||
| "This state describes that | "Describes the system-id of the neighbor."; | |||
| adjacency is established."; | } | |||
| } | leaf level { | |||
| enum "Down" { | type level; | |||
| description | description | |||
| "This state describes that | "Describes the ISIS level of the adjacency."; | |||
| adjacency is no more established."; | } | |||
| leaf state { | ||||
| type enumeration { | ||||
| enum "Up" { | ||||
| description | ||||
| "This state describes that | ||||
| adjacency is established."; | ||||
| } | ||||
| enum "Down" { | ||||
| description | ||||
| "This state describes that | ||||
| adjacency is no more established."; | ||||
| } | ||||
| } | } | |||
| description | ||||
| "This leaf describes the new state of the | ||||
| ISIS adjacency."; | ||||
| } | ||||
| leaf reason { | ||||
| type string; | ||||
| description | ||||
| "If the adjacency is going to DOWN, | ||||
| this leaf provides a reason for the adjacency | ||||
| going down. The reason is provided as a text. | ||||
| If the adjacency is going to UP, no reason is | ||||
| provided."; | ||||
| } | } | |||
| description | description | |||
| "This leaf describes the new state of the | "This notification is sent when an ISIS adjacency | |||
| ISIS adjacency."; | moves to Up state or to Down state."; | |||
| } | ||||
| leaf reason { | ||||
| type string; | ||||
| description | ||||
| "If the adjacency is going to DOWN, | ||||
| this leaf provides a reason for the adjacency | ||||
| going down. The reason is provided as a text. | ||||
| If the adjacency is going to UP, no reason is | ||||
| provided."; | ||||
| } | } | |||
| description | ||||
| "This notification is sent when an ISIS 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 | description | |||
| "Sequence number of the received LSP."; | "Sequence number of the received LSP."; | |||
| } | } | |||
| leaf received-timestamp { | leaf received-timestamp { | |||
| type yang:timestamp; | type yang:timestamp; | |||
| description | ||||
| "This leaf describes the timestamp | ||||
| when the LSP was received. "; | ||||
| } | ||||
| leaf neighbor-system-id { | ||||
| type system-id; | ||||
| description | ||||
| "Describes the system-id of the neighbor | ||||
| that sent the LSP."; | ||||
| } | ||||
| description | description | |||
| "This leaf describes the timestamp | "This notification is sent when a LSP | |||
| when the LSP was received. "; | is received. | |||
| } | The notification generation must be throttled with at least | |||
| leaf neighbor-system-id { | a 5 second gap. "; | |||
| type system-id; | ||||
| description | ||||
| "Describes the system-id of the neighbor | ||||
| that sent the LSP."; | ||||
| } | } | |||
| 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 { | leaf lsp-id { | |||
| type lsp-id; | type lsp-id; | |||
| description | description | |||
| "LSP ID."; | "LSP ID."; | |||
| } | } | |||
| leaf sequence { | leaf sequence { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Sequence number of the received LSP."; | "Sequence number of the received LSP."; | |||
| } | } | |||
| leaf send-timestamp { | leaf send-timestamp { | |||
| type yang:timestamp; | type yang:timestamp; | |||
| description | ||||
| "This leaf describes the timestamp | ||||
| when our LSP was regenerated. "; | ||||
| } | ||||
| description | description | |||
| "This leaf describes the timestamp | "This notification is sent when a LSP | |||
| when our LSP was regenerated. "; | is regenerated. | |||
| The notification generation must be throttled with at least | ||||
| a 5 second gap. "; | ||||
| } | } | |||
| description | ||||
| "This notification is sent when a LSP | ||||
| is regenerated. | ||||
| The notification generation must be throttled with at least | ||||
| a 5 second gap. "; | ||||
| } | ||||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 8. IS-IS Segment Routing YANG Module | 8. IS-IS Segment Routing YANG Module | |||
| <CODE BEGINS> file "ietf-isis-sr@2016-03-21.yang" | <CODE BEGINS> file "ietf-isis-sr@2016-09-20.yang" | |||
| module ietf-isis-sr { | module ietf-isis-sr { | |||
| namespace "urn:ietf:params:xml:ns:" | namespace "urn:ietf:params:xml:ns:" | |||
| + "yang:ietf-isis-sr"; | + "yang:ietf-isis-sr"; | |||
| prefix isis-sr; | prefix isis-sr; | |||
| import ietf-routing { | import ietf-routing { | |||
| prefix "rt"; | prefix "rt"; | |||
| } | } | |||
| import ietf-segment-routing { | import ietf-segment-routing { | |||
| prefix "sr"; | prefix "sr"; | |||
| } | } | |||
| import ietf-isis { | import ietf-isis { | |||
| prefix "isis"; | prefix "isis"; | |||
| } | } | |||
| organization | organization | |||
| "IETF ISIS Working Group"; | "IETF ISIS Working Group"; | |||
| contact | contact | |||
| "WG List: <mailto:spring@ietf.org> | "WG List: <mailto:spring@ietf.org> | |||
| Editor: Stephane Litkowski | Editor: Stephane Litkowski | |||
| <mailto:stephane.litkowski@orange.com> | <mailto:stephane.litkowski@orange.com> | |||
| Acee Lindem | Acee Lindem | |||
| <mailto:acee@cisco.com> | <mailto:acee@cisco.com> | |||
| Yingzhen Qu | Yingzhen Qu | |||
| <mailto:yiqu@cisco.com> | <mailto:yiqu@cisco.com> | |||
| Pushpasis Sarkar | Pushpasis Sarkar | |||
| <mailto:psarkar@juniper.net> | <mailto:psarkar@juniper.net> | |||
| Ing-Wher Chen | Ing-Wher Chen | |||
| <mailto:ing-wher.chen@ericsson.com> | <mailto:ing-wher.chen@ericsson.com> | |||
| Jeff Tantsura | Jeff Tantsura | |||
| <mailto:jeff.tantsura@ericsson.com> | <mailto:jeff.tantsura@ericsson.com> | |||
| "; | "; | |||
| description | description | |||
| "The YANG module defines a generic configuration model for | "The YANG module defines a generic configuration model for | |||
| Segment routing ISIS extensions common across all of the vendor | Segment routing ISIS extensions common across all of the vendor | |||
| implementations."; | implementations."; | |||
| revision 2016-09-20 { | ||||
| description | ||||
| " | ||||
| Align to draft-ietf-netmod-routing-cfg-23. | ||||
| "; | ||||
| reference "draft-ietf-isis-yang-isis-cfg-09"; | ||||
| } | ||||
| revision 2016-03-21 { | revision 2016-03-21 { | |||
| description " | description " | |||
| * Removed routing-instance in path as per | * Removed routing-instance in path as per | |||
| core routing model v21 | core routing model v21 | |||
| "; | "; | |||
| reference ""; | reference ""; | |||
| } | } | |||
| revision 2015-09-18 { | revision 2015-09-18 { | |||
| description "no modif"; | description "no modif"; | |||
| reference ""; | reference ""; | |||
| } | } | |||
| revision 2015-07-02 { | revision 2015-07-02 { | |||
| description | description | |||
| " | " | |||
| * Add TILFA and rLFA SR | * Add TILFA and rLFA SR | |||
| * Add container to SRGB | * Add container to SRGB | |||
| "; | "; | |||
| reference ""; | reference ""; | |||
| } | } | |||
| revision 2015-05-27 { | revision 2015-05-27 { | |||
| description " | description " | |||
| * Initialization | * Initialization | |||
| "; | "; | |||
| reference ""; | reference ""; | |||
| } | } | |||
| /* Identities */ | /* Identities */ | |||
| /* Features */ | /* Features */ | |||
| feature remote-lfa-sr { | feature remote-lfa-sr { | |||
| description | description | |||
| "Enhance rLFA to use SR path."; | "Enhance rLFA to use SR path."; | |||
| } | } | |||
| feature ti-lfa { | feature ti-lfa { | |||
| description | description | |||
| "Enhance IPFRR with ti-lfa | "Enhance IPFRR with ti-lfa | |||
| support"; | support"; | |||
| } | } | |||
| /* Groupings */ | /* Groupings */ | |||
| grouping adjacency-state { | grouping adjacency-state { | |||
| description | description | |||
| "This group will extend adjacency state."; | "This group will extend adjacency state."; | |||
| list adjacency-sid { | list adjacency-sid { | |||
| key value; | key value; | |||
| leaf af { | leaf af { | |||
| type identityref { | type identityref { | |||
| base rt:address-family; | base rt:address-family; | |||
| } | ||||
| description | ||||
| "Address-family associated with the | ||||
| segment ID"; | ||||
| } | ||||
| leaf value { | ||||
| type uint32; | ||||
| description | ||||
| "Value of the Adj-SID."; | ||||
| } | ||||
| leaf weight { | ||||
| type uint8; | ||||
| description | ||||
| "Weight associated with | ||||
| the adjacency SID."; | ||||
| } | ||||
| leaf protection-requested { | ||||
| type boolean; | ||||
| description | ||||
| "Describe if the adjacency SID | ||||
| must be protected."; | ||||
| } | ||||
| description | ||||
| "List of adjacency Segment IDs."; | ||||
| } | } | |||
| description | ||||
| "Address-family associated with the | ||||
| segment ID"; | ||||
| } | ||||
| leaf value { | ||||
| type uint32; | ||||
| description | ||||
| "Value of the Adj-SID."; | ||||
| } | ||||
| leaf weight { | ||||
| type uint8; | ||||
| description | ||||
| "Weight associated with | ||||
| the adjacency SID."; | ||||
| } | ||||
| leaf protection-requested { | ||||
| type boolean; | ||||
| description | ||||
| "Describe if the adjacency SID | ||||
| must be protected."; | ||||
| } | ||||
| description | ||||
| "List of adjacency Segment IDs."; | ||||
| } | ||||
| } | } | |||
| grouping prefix-segment-id { | grouping prefix-segment-id { | |||
| description | description | |||
| "This group defines segment routing extensions | "This group defines segment routing extensions | |||
| for prefixes."; | for prefixes."; | |||
| list sid-list { | list sid-list { | |||
| key value; | key value; | |||
| leaf flags { | leaf flags { | |||
| type bits { | type bits { | |||
| bit readvertisment { | bit readvertisment { | |||
| position 7; | position 7; | |||
| description | description | |||
| "If set, then the prefix to | "If set, then the prefix to | |||
| which this Prefix-SID is attached, | which this Prefix-SID is attached, | |||
| has been propagated by the | has been propagated by the | |||
| router either from another level | router either from another level | |||
| skipping to change at page 104, line 34 ¶ | skipping to change at page 104, line 42 ¶ | |||
| leaf algorithm { | leaf algorithm { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "Algorithm to be used for path computation."; | "Algorithm to be used for path computation."; | |||
| } | } | |||
| leaf value { | leaf value { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Value of the prefix-SID."; | "Value of the prefix-SID."; | |||
| } | } | |||
| description | description | |||
| "List of segments."; | "List of segments."; | |||
| } | } | |||
| } | } | |||
| grouping adjacency-segment-id { | grouping adjacency-segment-id { | |||
| description | description | |||
| "This group defines segment routing extensions | "This group defines segment routing extensions | |||
| for adjacencies."; | for adjacencies."; | |||
| list sid-list { | list sid-list { | |||
| key value; | key value; | |||
| leaf flags { | leaf flags { | |||
| type bits { | type bits { | |||
| bit address-family { | bit address-family { | |||
| position 7; | position 7; | |||
| description | description | |||
| "If unset, then the Adj-SID refers | "If unset, then the Adj-SID refers | |||
| to an adjacency with outgoing IPv4 encapsulation. | to an adjacency with outgoing IPv4 encapsulation. | |||
| If set then the Adj-SID refers to an adjacency | If set then the Adj-SID refers to an adjacency | |||
| with outgoing IPv6 encapsulation."; | with outgoing IPv6 encapsulation."; | |||
| skipping to change at page 106, line 15 ¶ | skipping to change at page 106, line 22 ¶ | |||
| description | description | |||
| "Describes the system ID of the neighbor | "Describes the system ID of the neighbor | |||
| associated with the SID value. This is only | associated with the SID value. This is only | |||
| used on LAN adjacencies."; | used on LAN adjacencies."; | |||
| } | } | |||
| leaf value { | leaf value { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Value of the Adj-SID."; | "Value of the Adj-SID."; | |||
| } | } | |||
| description | description | |||
| "List of segments."; | "List of segments."; | |||
| } | } | |||
| } | } | |||
| grouping segment-routing-binding-tlv { | grouping segment-routing-binding-tlv { | |||
| list segment-routing-bindings { | list segment-routing-bindings { | |||
| key "fec range"; | key "fec range"; | |||
| leaf fec { | leaf fec { | |||
| type string; | type string; | |||
| skipping to change at page 107, line 45 ¶ | skipping to change at page 108, line 4 ¶ | |||
| SIDs advertised in the SID/Label Binding | SIDs advertised in the SID/Label Binding | |||
| TLV are directly | TLV are directly | |||
| connected to their originators. | connected to their originators. | |||
| "; | "; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "Flags of the binding."; | "Flags of the binding."; | |||
| } | } | |||
| leaf weight { | leaf weight { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "Weight of the path for loadbalancing purpose."; | "Weight of the path for loadbalancing purpose."; | |||
| } | } | |||
| list binding { | ||||
| container binding { | ||||
| container prefix-sid { | container prefix-sid { | |||
| uses prefix-segment-id; | uses prefix-segment-id; | |||
| description | description | |||
| "Binding prefix SID to the range."; | "Binding prefix SID to the range."; | |||
| } | } | |||
| leaf ero-metric { | leaf ero-metric { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Cost of ERO path."; | "Cost of ERO path."; | |||
| } | } | |||
| skipping to change at page 110, line 4 ¶ | skipping to change at page 110, line 10 ¶ | |||
| description | description | |||
| "Binding a backup path over unnumbered interface."; | "Binding a backup path over unnumbered interface."; | |||
| } | } | |||
| description | description | |||
| "Bindings associated with the range."; | "Bindings associated with the range."; | |||
| } | } | |||
| description | description | |||
| "This container describes list of SID/Label | "This container describes list of SID/Label | |||
| bindings. | bindings. | |||
| ISIS reference is TLV 149."; | ISIS reference is TLV 149."; | |||
| } | } | |||
| description | description | |||
| "Defines binding TLV for database."; | "Defines binding TLV for database."; | |||
| } | } | |||
| /* Cfg */ | /* Cfg */ | |||
| augment "/rt:routing/" + | augment "/rt:routing/" + | |||
| "rt:routing-protocols/rt:routing-protocol"+ | "rt:control-plane-protocols/rt:control-plane-protocol"+ | |||
| "/isis:isis" { | "/isis:isis" { | |||
| when "rt:type = 'isis:isis'" { | when "rt:type = 'isis:isis'" { | |||
| description | description | |||
| "This augment ISIS routing protocol when used"; | "This augment ISIS routing protocol when used"; | |||
| } | } | |||
| description | description | |||
| "This augments ISIS protocol configuration | "This augments ISIS protocol configuration | |||
| with segment routing."; | with segment routing."; | |||
| uses sr:controlplane-cfg; | uses sr:controlplane-cfg; | |||
| container protocol-srgb { | container protocol-srgb { | |||
| if-feature sr:protocol-srgb; | if-feature sr:protocol-srgb; | |||
| uses sr:srgb-cfg; | uses sr:srgb-cfg; | |||
| description | description | |||
| "Per-protocol SRGB."; | "Per-protocol SRGB."; | |||
| } | } | |||
| } | } | |||
| augment "/rt:routing/" + | augment "/rt:routing/" + | |||
| "rt:routing-protocols/rt:routing-protocol"+ | "rt:control-plane-protocols/rt:control-plane-protocol"+ | |||
| "/isis:isis/isis:interfaces/isis:interface" { | "/isis:isis/isis:interfaces/isis:interface" { | |||
| when "rt:type = 'isis:isis'" { | when "rt:type = 'isis:isis'" { | |||
| description | description | |||
| "This augment ISIS routing protocol when used"; | "This augment ISIS routing protocol when used"; | |||
| } | } | |||
| description | description | |||
| "This augments ISIS protocol configuration | "This augments ISIS protocol configuration | |||
| with segment routing."; | with segment routing."; | |||
| uses sr:igp-interface-cfg; | uses sr:igp-interface-cfg; | |||
| skipping to change at page 110, line 46 ¶ | skipping to change at page 111, line 4 ¶ | |||
| "/isis:isis/isis:interfaces/isis:interface" { | "/isis:isis/isis:interfaces/isis:interface" { | |||
| when "rt:type = 'isis:isis'" { | when "rt:type = 'isis:isis'" { | |||
| description | description | |||
| "This augment ISIS routing protocol when used"; | "This augment ISIS routing protocol when used"; | |||
| } | } | |||
| description | description | |||
| "This augments ISIS protocol configuration | "This augments ISIS protocol configuration | |||
| with segment routing."; | with segment routing."; | |||
| uses sr:igp-interface-cfg; | uses sr:igp-interface-cfg; | |||
| } | } | |||
| augment "/rt:routing/" + | augment "/rt:routing/" + | |||
| "rt:routing-protocols/rt:routing-protocol"+ | "rt:control-plane-protocols/rt:control-plane-protocol"+ | |||
| "/isis:isis/isis:interfaces/isis:interface"+ | "/isis:isis/isis:interfaces/isis:interface"+ | |||
| "/isis:fast-reroute" { | "/isis:fast-reroute" { | |||
| when "rt:type = 'isis:isis'" { | when "rt:type = 'isis:isis'" { | |||
| description | description | |||
| "This augment ISIS routing protocol when used"; | "This augment ISIS routing protocol when used"; | |||
| } | } | |||
| description | description | |||
| "This augments ISIS IP FRR with TILFA."; | "This augments ISIS IP FRR with TILFA."; | |||
| container ti-lfa { | container ti-lfa { | |||
| if-feature ti-lfa; | if-feature ti-lfa; | |||
| leaf enable { | leaf enable { | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "Enables TI-LFA computation."; | "Enables TI-LFA computation."; | |||
| } | ||||
| description | ||||
| "TILFA configuration."; | ||||
| } | } | |||
| description | ||||
| "TILFA configuration."; | ||||
| } | ||||
| } | } | |||
| augment "/rt:routing/" + | augment "/rt:routing/" + | |||
| "rt:routing-protocols/rt:routing-protocol"+ | "rt:control-plane-protocols/rt:control-plane-protocol"+ | |||
| "/isis:isis/isis:interfaces/isis:interface"+ | "/isis:isis/isis:interfaces/isis:interface"+ | |||
| "/isis:fast-reroute/isis:lfa/isis:remote-lfa" { | "/isis:fast-reroute/isis:lfa/isis:remote-lfa" { | |||
| when "rt:type = 'isis:isis'" { | when "rt:type = 'isis:isis'" { | |||
| description | description | |||
| "This augment ISIS routing protocol when used"; | "This augment ISIS routing protocol when used"; | |||
| } | } | |||
| description | description | |||
| "This augments ISIS remoteLFA config with | "This augments ISIS remoteLFA config with | |||
| use of segment-routing path."; | use of segment-routing path."; | |||
| leaf use-segment-routing-path { | leaf use-segment-routing-path { | |||
| if-feature remote-lfa-sr; | if-feature remote-lfa-sr; | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "force remote LFA to use segment routing | "force remote LFA to use segment routing | |||
| path instead of LDP path."; | path instead of LDP path."; | |||
| } | } | |||
| } | } | |||
| /* Operational states */ | /* Operational states */ | |||
| augment "/rt:routing-state/" + | augment "/rt:routing-state/" + | |||
| "rt:routing-protocols/rt:routing-protocol"+ | "rt:control-plane-protocols/rt:control-plane-protocol"+ | |||
| "/isis:isis" { | "/isis:isis" { | |||
| when "rt:type = 'isis:isis'" { | when "rt:type = 'isis:isis'" { | |||
| description | description | |||
| "This augment ISIS routing protocol when used"; | "This augment ISIS routing protocol when used"; | |||
| } | } | |||
| description | description | |||
| "This augments ISIS protocol configuration | "This augments ISIS protocol configuration | |||
| with segment routing."; | with segment routing."; | |||
| uses sr:controlplane-cfg; | uses sr:controlplane-cfg; | |||
| container protocol-srgb { | container protocol-srgb { | |||
| if-feature sr:protocol-srgb; | if-feature sr:protocol-srgb; | |||
| uses sr:srgb-cfg; | uses sr:srgb-cfg; | |||
| description | description | |||
| "Per-protocol SRGB."; | "Per-protocol SRGB."; | |||
| } | } | |||
| } | } | |||
| augment "/rt:routing-state/" + | augment "/rt:routing-state/" + | |||
| "rt:routing-protocols/rt:routing-protocol"+ | "rt:control-plane-protocols/rt:control-plane-protocol"+ | |||
| "/isis:isis/isis:interfaces/isis:interface" { | "/isis:isis/isis:interfaces/isis:interface" { | |||
| when "rt:type = 'isis:isis'" { | when "rt:type = 'isis:isis'" { | |||
| description | description | |||
| "This augment ISIS routing protocol when used"; | "This augment ISIS routing protocol when used"; | |||
| } | } | |||
| description | description | |||
| "This augments ISIS protocol configuration | "This augments ISIS protocol configuration | |||
| with segment routing."; | with segment routing."; | |||
| uses sr:igp-interface-cfg; | uses sr:igp-interface-cfg; | |||
| } | } | |||
| augment "/rt:routing-state/" + | augment "/rt:routing-state/" + | |||
| "rt:routing-protocols/rt:routing-protocol"+ | "rt:control-plane-protocols/rt:control-plane-protocol"+ | |||
| "/isis:isis/isis:interfaces/isis:interface" + | "/isis:isis/isis:interfaces/isis:interface" + | |||
| "/isis:adjacencies/isis:adjacency" { | "/isis:adjacencies/isis:adjacency" { | |||
| when "rt:type = 'isis:isis'" { | when "rt:type = 'isis:isis'" { | |||
| description | description | |||
| "This augment ISIS routing protocol when used"; | "This augment ISIS routing protocol when used"; | |||
| } | } | |||
| description | description | |||
| "This augments ISIS protocol configuration | "This augments ISIS protocol configuration | |||
| with segment routing."; | with segment routing."; | |||
| uses adjacency-state; | uses adjacency-state; | |||
| } | } | |||
| skipping to change at page 113, line 4 ¶ | skipping to change at page 113, line 7 ¶ | |||
| when "rt:type = 'isis:isis'" { | when "rt:type = 'isis:isis'" { | |||
| description | description | |||
| "This augment ISIS routing protocol when used"; | "This augment ISIS routing protocol when used"; | |||
| } | } | |||
| description | description | |||
| "This augments ISIS protocol configuration | "This augments ISIS protocol configuration | |||
| with segment routing."; | with segment routing."; | |||
| uses adjacency-state; | uses adjacency-state; | |||
| } | } | |||
| augment "/rt:routing-state/" + | augment "/rt:routing-state/" + | |||
| "rt:routing-protocols/rt:routing-protocol"+ | "rt:control-plane-protocols/rt:control-plane-protocol"+ | |||
| "/isis:isis/isis:database/isis:level-db/isis:lsp"+ | "/isis:isis/isis:database/isis:level-db/isis:lsp"+ | |||
| "/isis:extended-is-neighbor/isis:neighbor" { | "/isis:extended-is-neighbor/isis:neighbor" { | |||
| description | description | |||
| "This augments ISIS protocol LSDB neighbor."; | "This augments ISIS protocol LSDB neighbor."; | |||
| uses adjacency-segment-id; | uses adjacency-segment-id; | |||
| } | } | |||
| augment "/rt:routing-state/" + | augment "/rt:routing-state/" + | |||
| "rt:routing-protocols/rt:routing-protocol"+ | "rt:control-plane-protocols/rt:control-plane-protocol"+ | |||
| "/isis:isis/isis:database/isis:level-db/isis:lsp"+ | "/isis:isis/isis:database/isis:level-db/isis:lsp"+ | |||
| "/isis:mt-is-neighbor/isis:neighbor" { | "/isis:mt-is-neighbor/isis:neighbor" { | |||
| description | description | |||
| "This augments ISIS protocol LSDB neighbor."; | "This augments ISIS protocol LSDB neighbor."; | |||
| uses adjacency-segment-id; | uses adjacency-segment-id; | |||
| } | } | |||
| augment "/rt:routing-state/" + | augment "/rt:routing-state/" + | |||
| "rt:routing-protocols/rt:routing-protocol"+ | "rt:control-plane-protocols/rt:control-plane-protocol"+ | |||
| "/isis:isis/isis:database/isis:level-db/isis:lsp"+ | "/isis:isis/isis:database/isis:level-db/isis:lsp"+ | |||
| "/isis:extended-ipv4-reachability/isis:prefixes" { | "/isis:extended-ipv4-reachability/isis:prefixes" { | |||
| description | description | |||
| "This augments ISIS protocol LSDB prefix."; | "This augments ISIS protocol LSDB prefix."; | |||
| uses prefix-segment-id; | uses prefix-segment-id; | |||
| } | } | |||
| augment "/rt:routing-state/" + | augment "/rt:routing-state/" + | |||
| "rt:routing-protocols/rt:routing-protocol"+ | "rt:control-plane-protocols/rt:control-plane-protocol"+ | |||
| "/isis:isis/isis:database/isis:level-db/isis:lsp"+ | "/isis:isis/isis:database/isis:level-db/isis:lsp"+ | |||
| "/isis:mt-extended-ipv4-reachability/isis:prefixes" { | "/isis:mt-extended-ipv4-reachability/isis:prefixes" { | |||
| description | description | |||
| "This augments ISIS protocol LSDB prefix."; | "This augments ISIS protocol LSDB prefix."; | |||
| uses prefix-segment-id; | uses prefix-segment-id; | |||
| } | } | |||
| augment "/rt:routing-state/" + | augment "/rt:routing-state/" + | |||
| "rt:routing-protocols/rt:routing-protocol"+ | "rt:control-plane-protocols/rt:control-plane-protocol"+ | |||
| "/isis:isis/isis:database/isis:level-db/isis:lsp"+ | "/isis:isis/isis:database/isis:level-db/isis:lsp"+ | |||
| "/isis:ipv6-reachability/isis:prefixes" { | "/isis:ipv6-reachability/isis:prefixes" { | |||
| description | description | |||
| "This augments ISIS protocol LSDB prefix."; | "This augments ISIS protocol LSDB prefix."; | |||
| uses prefix-segment-id; | uses prefix-segment-id; | |||
| } | } | |||
| augment "/rt:routing-state/" + | augment "/rt:routing-state/" + | |||
| "rt:routing-protocols/rt:routing-protocol"+ | "rt:control-plane-protocols/rt:control-plane-protocol"+ | |||
| "/isis:isis/isis:database/isis:level-db/isis:lsp"+ | "/isis:isis/isis:database/isis:level-db/isis:lsp"+ | |||
| "/isis:mt-ipv6-reachability/isis:prefixes" { | "/isis:mt-ipv6-reachability/isis:prefixes" { | |||
| description | description | |||
| "This augments ISIS protocol LSDB prefix."; | "This augments ISIS protocol LSDB prefix."; | |||
| uses prefix-segment-id; | uses prefix-segment-id; | |||
| } | } | |||
| augment "/rt:routing-state/" + | augment "/rt:routing-state/" + | |||
| "rt:routing-protocols/rt:routing-protocol"+ | "rt:control-plane-protocols/rt:control-plane-protocol"+ | |||
| "/isis:isis/isis:database/isis:level-db/isis:lsp" { | "/isis:isis/isis:database/isis:level-db/isis:lsp" { | |||
| description | description | |||
| "This augments ISIS protocol LSDB."; | "This augments ISIS protocol LSDB."; | |||
| uses segment-routing-binding-tlv; | uses segment-routing-binding-tlv; | |||
| } | } | |||
| /* Notifications */ | /* Notifications */ | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 9. Security Considerations | 9. Security Considerations | |||
| skipping to change at page 115, line 41 ¶ | skipping to change at page 115, line 44 ¶ | |||
| 11. Acknowledgements | 11. Acknowledgements | |||
| TBD. | TBD. | |||
| 12. IANA Considerations | 12. 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 URIs : | registry ([RFC3688]). Authors are suggesting the following URIs : | |||
| 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 | |||
| URI: urn:ietf:params:xml:ns:yang:ietf-isis-sr | URI: urn:ietf:params:xml:ns:yang:ietf-isis-sr | |||
| 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 two new YANG modules name in the YANG | This document also requests two new YANG modules 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 | |||
| name: ietf-isis-sr | name: ietf-isis-sr | |||
| namespace: urn:ietf:params:xml:ns:yang:ietf-isis-sr | namespace: urn:ietf:params:xml:ns:yang:ietf-isis-sr | |||
| prefix: isis-sr | prefix: isis-sr | |||
| reference: RFC XXXX | reference: RFC XXXX | |||
| 13. Normative References | 13. Normative References | |||
| [I-D.ietf-netmod-routing-cfg] | [I-D.ietf-netmod-routing-cfg] | |||
| 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-21 (work in | Management", draft-ietf-netmod-routing-cfg-23 (work in | |||
| progress), March 2016. | progress), August 2016. | |||
| [I-D.ietf-rtgwg-yang-key-chain] | [I-D.ietf-rtgwg-yang-key-chain] | |||
| Lindem, A., Qu, Y., Yeung, D., Chen, H., Zhang, J., and Y. | Lindem, A., Qu, Y., Yeung, D., Chen, I., Zhang, Z., and Y. | |||
| Yang, "Routing Key Chain YANG Data Model", draft-ietf- | Yang, "Routing Key Chain YANG Data Model", draft-ietf- | |||
| rtgwg-yang-key-chain-02 (work in progress), March 2016. | rtgwg-yang-key-chain-09 (work in progress), September | |||
| 2016. | ||||
| [I-D.ietf-spring-sr-yang] | [I-D.ietf-spring-sr-yang] | |||
| Litkowski, S., Qu, Y., Sarkar, P., and J. Tantsura, "YANG | Litkowski, S., Qu, Y., Sarkar, P., and J. Tantsura, "YANG | |||
| Data Model for Segment Routing", draft-ietf-spring-sr- | Data Model for Segment Routing", draft-ietf-spring-sr- | |||
| yang-02 (work in progress), March 2016. | yang-03 (work in progress), July 2016. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/ | |||
| DOI 10.17487/RFC2119, March 1997, | RFC2119, March 1997, | |||
| <http://www.rfc-editor.org/info/rfc2119>. | <http://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
| DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, | |||
| <http://www.rfc-editor.org/info/rfc3688>. | <http://www.rfc-editor.org/info/rfc3688>. | |||
| [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | |||
| (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, | (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, | |||
| <http://www.rfc-editor.org/info/rfc5880>. | <http://www.rfc-editor.org/info/rfc5880>. | |||
| skipping to change at page 117, line 15 ¶ | skipping to change at page 117, line 15 ¶ | |||
| [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, | |||
| <http://www.rfc-editor.org/info/rfc6241>. | <http://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, | |||
| <http://www.rfc-editor.org/info/rfc6242>. | <http://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, | Protocol (NETCONF) Access Control Model", RFC 6536, DOI | |||
| DOI 10.17487/RFC6536, March 2012, | 10.17487/RFC6536, March 2012, | |||
| <http://www.rfc-editor.org/info/rfc6536>. | <http://www.rfc-editor.org/info/rfc6536>. | |||
| Appendix A. Example: NETCONF <get> Reply | Appendix A. Example: NETCONF <get> Reply | |||
| This section gives an example of a reply to the NETCONF <get> request | This section gives an example of a reply to the NETCONF <get> request | |||
| for a device that implements the data model defined in this document. | for a device that implements the data model defined in this document. | |||
| The example is written in XML. | The example is written in XML. | |||
| <?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | |||
| <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> | <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> | |||
| <routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> | <routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> | |||
| <name>SLI</name> | <routing-instance> | |||
| <router-id>1.1.1.1</router-id> | <name>SLI</name> | |||
| <description/> | <router-id>1.1.1.1</router-id> | |||
| <default-ribs> | <description/> | |||
| <default-rib> | <default-ribs> | |||
| <address-family>ipv4-unicast</address-family> | <default-rib> | |||
| <rib-name>default</rib-name> | <address-family>ipv4-unicast</address-family> | |||
| </default-rib> | <rib-name>default</rib-name> | |||
| </default-ribs> | </default-rib> | |||
| <interfaces> | </default-ribs> | |||
| <interface> | <interfaces> | |||
| <name>Loopback0</name> | <interface> | |||
| </interface> | <name>Loopback0</name> | |||
| <interface> | </interface> | |||
| <name>Eth1</name> | <interface> | |||
| </interface> | <name>Eth1</name> | |||
| </interfaces> | </interface> | |||
| <routing-protocols> | </interfaces> | |||
| <routing-protocol> | <routing-protocols> | |||
| <name>ISIS</name> | <routing-protocol> | |||
| <description/> | <name>ISIS</name> | |||
| <type>isis:isis</type> | <description/> | |||
| <connected-ribs> | <type>isis:isis</type> | |||
| <connected-rib> | <connected-ribs> | |||
| <rib-name>default</rib-name> | <connected-rib> | |||
| <import-filter/> | <rib-name>default</rib-name> | |||
| <export-filter/> | <import-filter/> | |||
| </connected-rib> | <export-filter/> | |||
| </connected-ribs> | </connected-rib> | |||
| <isis xmlns="urn:ietf:params:xml:ns:yang:ietf-isis"> | </connected-ribs> | |||
| <instance> | <isis xmlns="urn:ietf:params:xml:ns:yang:ietf-isis"> | |||
| <routing-instance>SLI</routing-instance> | <instance> | |||
| <level-type>level-2</level-type> | <routing-instance>SLI</routing-instance> | |||
| <system-id>87FC.FCDF.4432</system-id> | <level-type>level-2</level-type> | |||
| <area-address>49.0001</area-address> | <system-id>87FC.FCDF.4432</system-id> | |||
| <mpls-te> | <area-address>49.0001</area-address> | |||
| <ipv4-router-id>1.1.1.1</ipv4-router-id> | <mpls-te> | |||
| </mpls-te> | <ipv4-router-id>1.1.1.1</ipv4-router-id> | |||
| <lsp-lifetime>65535</lsp-lifetime> | </mpls-te> | |||
| <lsp-refresh>65000</lsp-refresh> | <lsp-lifetime>65535</lsp-lifetime> | |||
| <authentication> | <lsp-refresh>65000</lsp-refresh> | |||
| <key>ThisIsThePassword</key> | <authentication> | |||
| <type>plain-text</type> | <key>ThisIsThePassword</key> | |||
| <level>level-2</level> | <type>plain-text</type> | |||
| </authentication> | <level>level-2</level> | |||
| <metric-type> | </authentication> | |||
| <value>wide</value> | <metric-type> | |||
| </metric-type> | <value>wide</value> | |||
| <default-metric> | </metric-type> | |||
| <value>111111</value> | <default-metric> | |||
| </default-metric> | <value>111111</value> | |||
| <af> | </default-metric> | |||
| <af>ipv4-unicast</af> | <af> | |||
| <enabled>true</enabled> | <af>ipv4-unicast</af> | |||
| </af> | <enabled>true</enabled> | |||
| <interfaces> | </af> | |||
| <interface> | <interfaces> | |||
| <name>Loopback0</name> | <interface> | |||
| <tag>200</tag> | <name>Loopback0</name> | |||
| <metric> | <tag>200</tag> | |||
| <value>0</value> | <metric> | |||
| </metric> | <value>0</value> | |||
| <passive>true</passive> | </metric> | |||
| </interface> | <passive>true</passive> | |||
| <interface> | </interface> | |||
| <name>Eth1</name> | <interface> | |||
| <level-type>level-2</level-type> | <name>Eth1</name> | |||
| <interface-type>point-to-point</interface-type> | <level-type>level-2</level-type> | |||
| <metric> | <interface-type>point-to-point</interface-type> | |||
| <value>167890</value> | <metric> | |||
| </metric> | <value>167890</value> | |||
| </metric> | ||||
| </interface> | ||||
| </interfaces> | </interface> | |||
| </instance> | </interfaces> | |||
| </isis> | </instance> | |||
| </routing-protocol> | </isis> | |||
| </routing-protocols> | </routing-protocol> | |||
| <ribs> | </routing-protocols> | |||
| <rib> | </routing-instance> | |||
| <name>default</name> | <ribs> | |||
| <address-family>ipv4-unicast</address-family> | <rib> | |||
| <description/> | <name>default</name> | |||
| <recipient-ribs> | <address-family>ipv4-unicast</address-family> | |||
| <recipient-rib> | <description/> | |||
| <rib-name/> | <recipient-ribs> | |||
| <filter/> | <recipient-rib> | |||
| </recipient-rib> | <rib-name/> | |||
| </recipient-ribs> | <filter/> | |||
| </rib> | </recipient-rib> | |||
| </ribs> | </recipient-ribs> | |||
| <route-filters> | </rib> | |||
| <route-filter> | </ribs> | |||
| <name/> | <route-filters> | |||
| <description/> | <route-filter> | |||
| <type/> | <name/> | |||
| </route-filter> | <description/> | |||
| </route-filters> | <type/> | |||
| </routing> | </route-filter> | |||
| <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"> | </route-filters> | |||
| <interface> | </routing> | |||
| <name>Loopback0</name> | <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"> | |||
| <description/> | <interface> | |||
| <type/> | <name>Loopback0</name> | |||
| <link-up-down-trap-enable/> | <description/> | |||
| <ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> | <type/> | |||
| <mtu/> | <link-up-down-trap-enable/> | |||
| <address> | <ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> | |||
| <ip>1.1.1.1</ip> | <mtu/> | |||
| <prefix-length>32</prefix-length> | <address> | |||
| </address> | <ip>1.1.1.1</ip> | |||
| </ipv4> | <prefix-length>32</prefix-length> | |||
| </address> | ||||
| </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> | |||
| </ipv4> | </ipv4> | |||
| </interface> | </interface> | |||
| </interfaces> | </interfaces> | |||
| </data> | </data> | |||
| Authors' Addresses | Authors' Addresses | |||
| Stephane Litkowski | Stephane Litkowski | |||
| Orange | Orange | |||
| Email: stephane.litkowski@orange.com | Email: stephane.litkowski@orange.com | |||
| Derek Yeung | Derek Yeung | |||
| Cisco Systems | Cisco Systems | |||
| End of changes. 685 change blocks. | ||||
| 3725 lines changed or deleted | 3775 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||