| < draft-ietf-isis-yang-isis-cfg-35.txt | draft-ietf-isis-yang-isis-cfg-36.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 8, 2019 Arrcus, Inc | Expires: March 8, 2020 Arrcus, Inc | |||
| A. Lindem | A. Lindem | |||
| Cisco Systems | Cisco Systems | |||
| J. Zhang | J. Zhang | |||
| Juniper Networks | Juniper Networks | |||
| L. Lhotka | L. Lhotka | |||
| CZ.NIC | CZ.NIC | |||
| March 7, 2019 | September 5, 2019 | |||
| YANG Data Model for IS-IS Protocol | YANG Data Model for IS-IS Protocol | |||
| draft-ietf-isis-yang-isis-cfg-35 | draft-ietf-isis-yang-isis-cfg-36 | |||
| Abstract | Abstract | |||
| This document defines a YANG data model that can be used to configure | This document defines a YANG data model that can be used to configure | |||
| and manage IS-IS protocol on network elements. | and manage IS-IS protocol on network elements. | |||
| Requirements Language | Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| skipping to change at page 1, line 39 ¶ | skipping to change at page 1, line 39 ¶ | |||
| capitals, as shown here. | capitals, as shown here. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on September 8, 2019. | This Internet-Draft will expire on March 8, 2020. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2019 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 3 | 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 3 | |||
| 2.1. IS-IS Configuration . . . . . . . . . . . . . . . . . . . 9 | 2.1. IS-IS Configuration . . . . . . . . . . . . . . . . . . . 9 | |||
| 2.2. Multi-topology Parameters . . . . . . . . . . . . . . . 9 | 2.2. Multitopology Parameters . . . . . . . . . . . . . . . . 9 | |||
| 2.3. Per-Level Parameters . . . . . . . . . . . . . . . . . . 10 | 2.3. Per-Level Parameters . . . . . . . . . . . . . . . . . . 10 | |||
| 2.4. Per-Interface Parameters . . . . . . . . . . . . . . . . 11 | 2.4. Per-Interface Parameters . . . . . . . . . . . . . . . . 11 | |||
| 2.5. Authentication Parameters . . . . . . . . . . . . . . . 19 | 2.5. Authentication Parameters . . . . . . . . . . . . . . . . 18 | |||
| 2.6. IGP/LDP synchronization . . . . . . . . . . . . . . . . 19 | 2.6. IGP/LDP synchronization . . . . . . . . . . . . . . . . . 19 | |||
| 2.7. ISO parameters . . . . . . . . . . . . . . . . . . . . . 19 | 2.7. ISO parameters . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 2.8. IP FRR . . . . . . . . . . . . . . . . . . . . . . . . . 19 | 2.8. IP FRR . . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 2.9. Operational States . . . . . . . . . . . . . . . . . . . 20 | 2.9. Operational States . . . . . . . . . . . . . . . . . . . 19 | |||
| 3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 20 | 3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
| 4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 20 | 4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
| 5. Interaction with Other YANG Modules . . . . . . . . . . . . 22 | 5. Interaction with Other YANG Modules . . . . . . . . . . . . . 22 | |||
| 6. IS-IS YANG Module . . . . . . . . . . . . . . . . . . . . . . 22 | 6. IS-IS YANG Module . . . . . . . . . . . . . . . . . . . . . . 22 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 103 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 105 | |||
| 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 104 | 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 107 | |||
| 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 104 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 107 | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 104 | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 107 | |||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . 104 | 10.1. Normative References . . . . . . . . . . . . . . . . . . 107 | |||
| 10.2. Informative References . . . . . . . . . . . . . . . . . 108 | 10.2. Informative References . . . . . . . . . . . . . . . . . 112 | |||
| Appendix A. Example of IS-IS configuration in XML . . . . . . . 108 | Appendix A. Example of IS-IS configuration in XML . . . . . . . 112 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 111 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 114 | |||
| 1. Introduction | 1. Introduction | |||
| This document defines a YANG ([RFC7950]) data model for IS-IS routing | This document defines a YANG [RFC7950] data model for IS-IS routing | |||
| protocol. | protocol. | |||
| The data model covers configuration of an IS-IS routing protocol | The data model covers configuration of an IS-IS routing protocol | |||
| instance as well as operational states. | instance as well as operational states. | |||
| A simplified tree representation of the data model is presented in | A simplified tree representation of the data model is presented in | |||
| Section 2. Tree diagrams used in this document follow the notation | Section 2. Tree diagrams used in this document follow the notation | |||
| defined in [RFC8340]. | defined in [RFC8340]. | |||
| The module is designed as per NMDA (Network Management Datastore | The module is designed as per NMDA (Network Management Datastore | |||
| Architecture) [RFC8342]. | Architecture) [RFC8342]. | |||
| 2. Design of the Data Model | 2. Design of the Data Model | |||
| The IS-IS YANG module augments the "control-plane-protocol" list in | The IS-IS YANG module augments the "control-plane-protocol" list in | |||
| ietf-routing module (defined in [RFC8349]) with specific IS-IS | ietf-routing module [RFC8349] with specific IS-IS parameters. | |||
| parameters. | ||||
| The figure below describes the overall structure of the isis YANG | The figure below describes the overall structure of the isis YANG | |||
| module: | module: | |||
| module: ietf-isis | module: ietf-isis | |||
| augment /rt:routing/rt:ribs/rt:rib/rt:routes/rt:route: | augment /rt:routing/rt:ribs/rt:rib/rt:routes/rt:route: | |||
| +--ro metric? uint32 | +--ro metric? uint32 | |||
| +--ro tag* uint64 | +--ro tag* uint64 | |||
| +--ro route-type? enumeration | +--ro route-type? enumeration | |||
| augment /if:interfaces/if:interface: | augment /if:interfaces/if:interface: | |||
| +--rw clns-mtu? uint16 | +--rw clns-mtu? uint16 {osi-interface}? | |||
| augment | augment | |||
| /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol: | | /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol: | |||
| +--rw isis | +--rw isis | |||
| +--rw enable? boolean {admin-control}? | +--rw enable? boolean {admin-control}? | |||
| +--rw level-type? level | +--rw level-type? level | |||
| +--rw system-id? system-id | +--rw system-id? system-id | |||
| +--rw maximum-area-addresses? uint8 | +--rw maximum-area-addresses? uint8 {maximum-area-addresses}? | |||
| | {maximum-area-addresses}? | +--rw area-address* area-address | |||
| +--rw area-address* area-address | +--rw lsp-mtu? uint16 | |||
| +--rw lsp-mtu? uint16 | +--rw lsp-lifetime? uint16 | |||
| +--rw lsp-lifetime? uint16 | +--rw lsp-refresh? | |||
| +--rw lsp-refresh? rt-types:timer-value-seconds16 | | rt-types:timer-value-seconds16 {lsp-refresh}? | |||
| | {lsp-refresh}? | +--rw poi-tlv? boolean {poi-tlv}? | |||
| +--rw poi-tlv? boolean {poi-tlv}? | +--rw graceful-restart {graceful-restart}? | |||
| +--rw graceful-restart {graceful-restart}? | | +--rw enable? boolean | |||
| | +--rw enable? boolean | | +--rw restart-interval? rt-types:timer-value-seconds16 | |||
| | +--rw restart-interval? rt-types:timer-value-seconds16 | | +--rw helper-enable? boolean | |||
| | +--rw helper-enable? boolean | +--rw nsr {nsr}? | |||
| +--rw nsr {nsr}? | | +--rw enable? boolean | |||
| | +--rw enable? boolean | +--rw node-tags {node-tag}? | |||
| +--rw node-tags {node-tag}? | | +--rw node-tag* [tag] | |||
| | +--rw node-tag* [tag] | | ... | |||
| | ... | +--rw metric-type | |||
| +--rw metric-type | | +--rw value? enumeration | |||
| | +--rw value? enumeration | | +--rw level-1 | |||
| | +--rw level-1 | | | ... | |||
| | | ... | ||||
| | +--rw level-2 | ||||
| | ... | ||||
| +--rw default-metric | ||||
| | +--rw value? wide-metric | ||||
| | +--rw level-1 | ||||
| | | ... | ||||
| | +--rw level-2 | ||||
| | ... | ||||
| +--rw auto-cost {auto-cost}? | ||||
| | +--rw enable? boolean | ||||
| | +--rw reference-bandwidth? uint32 | ||||
| +--rw authentication | ||||
| | +--rw (authentication-type)? | ||||
| | | ... | ||||
| | +--rw level-1 | ||||
| | | ... | ||||
| | +--rw level-2 | ||||
| | ... | ||||
| +--rw address-families {nlpid-control}? | ||||
| | +--rw address-family-list* [address-family] | ||||
| | ... | ||||
| +--rw mpls | ||||
| | +--rw te-rid {te-rid}? | ||||
| | | ... | ||||
| | +--rw ldp | ||||
| | ... | ||||
| +--rw spf-control | ||||
| | +--rw paths? uint16 {max-ecmp}? | ||||
| | +--rw ietf-spf-delay {ietf-spf-delay}? | ||||
| | ... | ||||
| +--rw fast-reroute {fast-reroute}? | ||||
| | +--rw lfa {lfa}? | ||||
| +--rw preference | ||||
| | +--rw (granularity)? | ||||
| | ... | ||||
| +--rw overload | ||||
| | +--rw status? boolean | ||||
| +--rw overload-max-metric {overload-max-metric}? | ||||
| | +--rw timeout? rt-types:timer-value-seconds16 | ||||
| +--ro spf-log | ||||
| | +--ro event* [id] | ||||
| | ... | ||||
| +--ro lsp-log | ||||
| | +--ro event* [id] | ||||
| | ... | ||||
| +--ro hostnames | | +--rw level-2 | |||
| | +--ro hostname* [system-id] | | ... | |||
| | ... | +--rw default-metric | |||
| +--ro database | | +--rw value? wide-metric | |||
| | +--ro levels* [level] | | +--rw level-1 | |||
| | ... | | | ... | |||
| +--ro local-rib | | +--rw level-2 | |||
| | +--ro route* [prefix] | | ... | |||
| | ... | +--rw auto-cost {auto-cost}? | |||
| +--ro system-counters | | +--rw enable? boolean | |||
| | +--ro level* [level] | | +--rw reference-bandwidth? uint32 | |||
| | ... | +--rw authentication | |||
| +--ro protected-routes | | +--rw (authentication-type)? | |||
| | +--ro address-family-stats* | | | ... | |||
| | [address-family prefix alternate] | | +--rw level-1 | |||
| | ... | | | ... | |||
| +--ro unprotected-routes | | +--rw level-2 | |||
| | +--ro address-family-stats* [address-family prefix] | | ... | |||
| | ... | +--rw address-families {nlpid-control}? | |||
| +--ro protection-statistics* [frr-protection-method] | | +--rw address-family-list* [address-family] | |||
| | +--ro frr-protection-method string | | ... | |||
| | +--ro address-family-stats* [address-family] | +--rw mpls | |||
| | ... | | +--rw te-rid {te-rid}? | |||
| +--rw topologies {multi-topology}? | | | ... | |||
| | +--rw topology* [name] | | +--rw ldp | |||
| | ... | | ... | |||
| +--rw interfaces | +--rw spf-control | |||
| +--rw interface* [name] | | +--rw paths? uint16 {max-ecmp}? | |||
| ... | | +--rw ietf-spf-delay {ietf-spf-delay}? | |||
| | ... | ||||
| +--rw fast-reroute {fast-reroute}? | ||||
| | +--rw lfa {lfa}? | ||||
| +--rw preference | ||||
| | +--rw (granularity)? | ||||
| | ... | ||||
| +--rw overload | ||||
| | +--rw status? boolean | ||||
| +--rw overload-max-metric {overload-max-metric}? | ||||
| | +--rw timeout? rt-types:timer-value-seconds16 | ||||
| +--ro spf-log | ||||
| | +--ro event* [id] | ||||
| | ... | ||||
| +--ro lsp-log | ||||
| | +--ro event* [id] | ||||
| | ... | ||||
| +--ro hostnames | ||||
| | +--ro hostname* [system-id] | ||||
| | ... | ||||
| rpcs: | +--ro database | |||
| +---x clear-adjacency | | +--ro levels* [level] | |||
| | +---w input | | ... | |||
| | +---w routing-protocol-instance-name -> | +--ro local-rib | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | +--ro route* [prefix] | |||
| | +---w level? level | | ... | |||
| | +---w interface? if:interface-ref | +--ro system-counters | |||
| +---x clear-database | | +--ro level* [level] | |||
| +---w input | | ... | |||
| +---w routing-protocol-instance-name -> | +--ro protected-routes | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | +--ro address-family-stats* [address-family prefix alternate] | |||
| +---w level? level | | ... | |||
| +--ro unprotected-routes | ||||
| | +--ro address-family-stats* [address-family prefix] | ||||
| | ... | ||||
| +--ro protection-statistics* [frr-protection-method] | ||||
| | +--ro frr-protection-method identityref | ||||
| | +--ro address-family-stats* [address-family] | ||||
| | ... | ||||
| +--rw discontinuity-time? yang:date-and-time | ||||
| +--rw topologies {multi-topology}? | ||||
| | +--rw topology* [name] | ||||
| | ... | ||||
| +--rw interfaces | ||||
| +--rw interface* [name] | ||||
| ... | ||||
| notifications: | rpcs: | |||
| +---n database-overload | +---x clear-adjacency | |||
| | +--ro routing-protocol-name? -> | | +---w input | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | +---w routing-protocol-instance-name | |||
| | +--ro isis-level? level | | ->/rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro overload? enumeration | | +---w level? level | |||
| +---n lsp-too-large | | +---w interface? if:interface-ref | |||
| | +--ro routing-protocol-name? -> | +---x clear-database | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | +---w input | |||
| | +--ro isis-level? level | +---w routing-protocol-instance-name | |||
| | +--ro interface-name? if:interface-ref | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro interface-level? level | +---w level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro pdu-size? uint32 | ||||
| | +--ro lsp-id? lsp-id | ||||
| +---n if-state-change | ||||
| | +--ro routing-protocol-name? -> | ||||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro state? if-state-type | ||||
| +---n corrupted-lsp-detected | ||||
| | +--ro routing-protocol-name? -> | ||||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro lsp-id? lsp-id | ||||
| +---n attempt-to-exceed-max-sequence | ||||
| | +--ro routing-protocol-name? -> | ||||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro lsp-id? lsp-id | ||||
| +---n id-len-mismatch | ||||
| | +--ro routing-protocol-name? -> | ||||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro pdu-field-len? uint8 | ||||
| | +--ro raw-pdu? binary | ||||
| +---n max-area-addresses-mismatch | ||||
| | +--ro routing-protocol-name? -> | ||||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro max-area-addresses? uint8 | ||||
| | +--ro raw-pdu? binary | ||||
| +---n own-lsp-purge | ||||
| | +--ro routing-protocol-name? -> | ||||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | notifications: | |||
| | +--ro isis-level? level | +---n database-overload | |||
| | +--ro interface-name? if:interface-ref | | +--ro routing-protocol-name? | |||
| | +--ro interface-level? level | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro isis-level? level | |||
| | +--ro lsp-id? lsp-id | | +--ro overload? enumeration | |||
| +---n sequence-number-skipped | +---n lsp-too-large | |||
| | +--ro routing-protocol-name? -> | | +--ro routing-protocol-name? | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro lsp-id? lsp-id | | +--ro pdu-size? uint32 | |||
| +---n authentication-type-failure | | +--ro lsp-id? lsp-id | |||
| | +--ro routing-protocol-name? -> | +---n if-state-change | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | +--ro routing-protocol-name? | |||
| | +--ro isis-level? level | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro interface-name? if:interface-ref | | +--ro isis-level? level | |||
| | +--ro interface-level? level | | +--ro interface-name? if:interface-ref | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-level? level | |||
| | +--ro raw-pdu? binary | | +--ro extended-circuit-id? extended-circuit-id | |||
| +---n authentication-failure | | +--ro state? if-state-type | |||
| | +--ro routing-protocol-name? -> | +---n corrupted-lsp-detected | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | +--ro routing-protocol-name? | |||
| | +--ro isis-level? level | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro interface-name? if:interface-ref | | +--ro isis-level? level | |||
| | +--ro interface-level? level | | +--ro lsp-id? lsp-id | |||
| | +--ro extended-circuit-id? extended-circuit-id | +---n attempt-to-exceed-max-sequence | |||
| | +--ro raw-pdu? binary | | +--ro routing-protocol-name? | |||
| +---n version-skew | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro routing-protocol-name? -> | | +--ro isis-level? level | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | +--ro lsp-id? lsp-id | |||
| | +--ro isis-level? level | +---n id-len-mismatch | |||
| | +--ro interface-name? if:interface-ref | | +--ro routing-protocol-name? | |||
| | +--ro interface-level? level | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro isis-level? level | |||
| | +--ro protocol-version? uint8 | | +--ro interface-name? if:interface-ref | |||
| | +--ro raw-pdu? binary | | +--ro interface-level? level | |||
| +---n area-mismatch | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro routing-protocol-name? -> | | +--ro pdu-field-len? uint8 | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | +--ro raw-pdu? binary | |||
| | +--ro isis-level? level | +---n max-area-addresses-mismatch | |||
| | +--ro interface-name? if:interface-ref | | +--ro routing-protocol-name? | |||
| | +--ro interface-level? level | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro isis-level? level | |||
| | +--ro raw-pdu? binary | | +--ro interface-name? if:interface-ref | |||
| +---n rejected-adjacency | | +--ro interface-level? level | |||
| | +--ro routing-protocol-name? -> | | +--ro extended-circuit-id? extended-circuit-id | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | +--ro max-area-addresses? uint8 | |||
| | +--ro isis-level? level | | +--ro raw-pdu? binary | |||
| | +--ro interface-name? if:interface-ref | +---n own-lsp-purge | |||
| | +--ro interface-level? level | | +--ro routing-protocol-name? | |||
| | +--ro extended-circuit-id? extended-circuit-id | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro raw-pdu? binary | | +--ro isis-level? level | |||
| | +--ro reason? string | | +--ro interface-name? if:interface-ref | |||
| +---n protocols-supported-mismatch | | +--ro interface-level? level | |||
| | +--ro routing-protocol-name? -> | | +--ro extended-circuit-id? extended-circuit-id | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | +--ro lsp-id? lsp-id | |||
| | +--ro isis-level? level | +---n sequence-number-skipped | |||
| | +--ro interface-name? if:interface-ref | | +--ro routing-protocol-name? | |||
| | +--ro interface-level? level | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro isis-level? level | |||
| | +--ro raw-pdu? binary | | +--ro interface-name? if:interface-ref | |||
| | +--ro protocols* uint8 | | +--ro interface-level? level | |||
| +---n lsp-error-detected | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro routing-protocol-name? -> | | +--ro lsp-id? lsp-id | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | +---n authentication-type-failure | |||
| | +--ro isis-level? level | | +--ro routing-protocol-name? | |||
| | +--ro interface-name? if:interface-ref | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro interface-level? level | | +--ro isis-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-name? if:interface-ref | |||
| | +--ro lsp-id? lsp-id | | +--ro interface-level? level | |||
| | +--ro raw-pdu? binary | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro error-offset? uint32 | | +--ro raw-pdu? binary | |||
| | +--ro tlv-type? uint8 | +---n authentication-failure | |||
| +---n adjacency-state-change | | +--ro routing-protocol-name? | |||
| | +--ro routing-protocol-name? -> | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | +--ro isis-level? level | |||
| | +--ro isis-level? level | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-name? if:interface-ref | | +--ro interface-level? level | |||
| | +--ro interface-level? level | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro raw-pdu? binary | |||
| | +--ro neighbor? string | +---n version-skew | |||
| | +--ro neighbor-system-id? system-id | | +--ro routing-protocol-name? | |||
| | +--ro state? adj-state-type | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro reason? string | | +--ro isis-level? level | |||
| +---n lsp-received | | +--ro interface-name? if:interface-ref | |||
| | +--ro routing-protocol-name? -> | | +--ro interface-level? level | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro isis-level? level | | +--ro protocol-version? uint8 | |||
| | +--ro interface-name? if:interface-ref | | +--ro raw-pdu? binary | |||
| | +--ro interface-level? level | +---n area-mismatch | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro routing-protocol-name? | |||
| | +--ro lsp-id? lsp-id | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro sequence? uint32 | | +--ro isis-level? level | |||
| | +--ro received-timestamp? yang:timestamp | | +--ro interface-name? if:interface-ref | |||
| | +--ro neighbor-system-id? system-id | | +--ro interface-level? level | |||
| +---n lsp-generation | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro routing-protocol-name? -> | | +--ro raw-pdu? binary | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | +---n rejected-adjacency | |||
| +--ro isis-level? level | | +--ro routing-protocol-name? | |||
| +--ro lsp-id? lsp-id | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| +--ro sequence? uint32 | | +--ro isis-level? level | |||
| +--ro send-timestamp? yang:timestamp | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro raw-pdu? binary | ||||
| | +--ro reason? string | ||||
| +---n protocols-supported-mismatch | ||||
| | +--ro routing-protocol-name? | ||||
| | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro raw-pdu? binary | ||||
| | +--ro protocols* uint8 | ||||
| +---n lsp-error-detected | ||||
| | +--ro routing-protocol-name? | ||||
| | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro lsp-id? lsp-id | ||||
| | +--ro raw-pdu? binary | ||||
| | +--ro error-offset? uint32 | ||||
| | +--ro tlv-type? uint8 | ||||
| +---n adjacency-state-change | ||||
| | +--ro routing-protocol-name? | ||||
| | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro neighbor? string | ||||
| | +--ro neighbor-system-id? system-id | ||||
| | +--ro state? adj-state-type | ||||
| | +--ro reason? string | ||||
| +---n lsp-received | ||||
| | +--ro routing-protocol-name? | ||||
| | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro lsp-id? lsp-id | ||||
| | +--ro sequence? uint32 | ||||
| | +--ro received-timestamp? yang:timestamp | ||||
| | +--ro neighbor-system-id? system-id | ||||
| +---n lsp-generation | ||||
| +--ro routing-protocol-name? | ||||
| -> /rt:routing/control-plane-protocols/control-plane-protocol/name | ||||
| +--ro isis-level? level | ||||
| +--ro lsp-id? lsp-id | ||||
| +--ro sequence? uint32 | ||||
| +--ro send-timestamp? yang:timestamp | ||||
| 2.1. IS-IS Configuration | 2.1. IS-IS Configuration | |||
| The IS-IS configuration is divided in: | The IS-IS configuration is divided in: | |||
| o Global parameters. | o Global parameters. | |||
| o Per interface configuration (see Section 2.4). | o Per interface configuration (see Section 2.4). | |||
| Additional modules may be created to support any additional | Additional modules may be created to support any additional | |||
| parameters. These additional modules MUST augment the ietf-isis | parameters. These additional modules MUST augment the ietf-isis | |||
| module. | module. | |||
| The model implements features, thus some of the configuration | The model implements features, thus some of the configuration | |||
| statement becomes optional. As an example, the ability to control | statement becomes optional. As an example, the ability to control | |||
| the administrative state of a particular IS-IS instance is optional. | the administrative state of a particular IS-IS instance is optional. | |||
| By advertising the feature "admin-control", a device communicates to | By advertising the feature "admin-control", a device communicates to | |||
| the client that it supports the ability to shut down a particular IS- | the client that it supports the ability to shutdown a particular IS- | |||
| IS instance. | IS instance. | |||
| The global configuration contains usual IS-IS parameters such as lsp- | The global configuration contains usual IS-IS parameters such as lsp- | |||
| mtu, lsp-lifetime, lsp-refresh, default-metric... | mtu, lsp-lifetime, lsp-refresh, default-metric... | |||
| 2.2. Multi-topology Parameters | 2.2. Multitopology Parameters | |||
| The model supports multi-topology (MT) IS-IS as defined in [RFC5120]. | The model supports multitopology (MT) IS-IS as defined in [RFC5120]. | |||
| The "topologies" container is used to enable support of MT | The "topologies" container is used to enable support of MT | |||
| extensions. | extensions. | |||
| The "name" used in the topology list should refer to an existing RIB | The "name" used in the topology list should refer to an existing RIB | |||
| of the device. | of the device. | |||
| Some specific parameters could be defined on a per topology basis | Some specific parameters can be defined on a per topology basis both | |||
| both at global level and at interface level: for example, an | at global level and at interface level: for example, an interface | |||
| interface metric can be defined per topology. | metric can be defined per topology. | |||
| Multiple address families (like IPv4 or IPv6) can also be activated | Multiple address families (like IPv4 or IPv6) can also be activated | |||
| within the default topology. This can be achieved using the address- | within the default topology. This can be achieved using the address- | |||
| families container (requiring "nlpid-control" feature to be | families container (requiring "nlpid-control" feature to be | |||
| advertised). | advertised). | |||
| 2.3. Per-Level Parameters | 2.3. Per-Level Parameters | |||
| Some parameters allow a per level configuration. In this case, the | Some parameters allow a per level configuration. In this case, the | |||
| parameter is modeled as a container with three configuration | parameter is modeled as a container with three configuration | |||
| skipping to change at page 10, line 39 ¶ | skipping to change at page 10, line 37 ¶ | |||
| <priority> | <priority> | |||
| <value>250</value> | <value>250</value> | |||
| <level-1> | <level-1> | |||
| <value>100</value> | <value>100</value> | |||
| </level-1> | </level-1> | |||
| <level-2> | <level-2> | |||
| <value>200</value> | <value>200</value> | |||
| </level-2> | </level-2> | |||
| </priority> | </priority> | |||
| An implementation SHOULD prefer a level specific parameter over a | An implementation MUST prefer a level specific parameter over a | |||
| level-all parameter. As example, if the priority is 100 for the | level-all parameter. As example, if the priority is 100 for the | |||
| level-1, 200 for the level-2 and 250 for the top-level configuration, | level-1, 200 for the level-2 and 250 for the top-level configuration, | |||
| the implementation should use 100 for the level-1 and 200 for the | the implementation should use 100 for the level-1 and 200 for the | |||
| level-2. | level-2. | |||
| Some parameters like "overload bit" and "route preference" are not | Some parameters like "overload bit" and "route preference" are not | |||
| modeled to support a per level configuration. If an implementation | modeled to support a per level configuration. If an implementation | |||
| supports per level configuration for such parameter, this | supports per level configuration for such parameter, this | |||
| implementation SHOULD augment the current model by adding both | implementation MUST augment the current model by adding both level-1 | |||
| level-1 and level-2 containers and SHOULD reuse existing | and level-2 containers and MUST reuse existing configuration | |||
| configuration groupings. | groupings. | |||
| Example of augmentation: | Example of augmentation: | |||
| augment "/rt:routing/" + | augment "/rt:routing/" + | |||
| "rt:control-plane-protocols/rt:control-plane-protocol"+ | "rt:control-plane-protocols/rt:control-plane-protocol"+ | |||
| "/isis:isis/isis:overload" { | "/isis:isis/isis:overload" { | |||
| when "rt:type = 'isis:isis'" { | when "rt:type = 'isis:isis'" { | |||
| description | description | |||
| "This augment IS-IS routing protocol when used"; | "This augment IS-IS routing protocol when used"; | |||
| } | } | |||
| skipping to change at page 11, line 32 ¶ | skipping to change at page 11, line 30 ¶ | |||
| } | } | |||
| container level-2 { | container level-2 { | |||
| uses isis:overload-global-cfg; | uses isis:overload-global-cfg; | |||
| description | description | |||
| "Level 2 configuration."; | "Level 2 configuration."; | |||
| } | } | |||
| } | } | |||
| If an implementation does not support per level configuration for a | If an implementation does not support per level configuration for a | |||
| parameter modeled with per level configuration, the implementation | parameter modeled with per level configuration, the implementation | |||
| SHOULD advertise a deviation to announce the non-support of the | should advertise a deviation to announce the non-support of the | |||
| level-1 and level-2 containers. | level-1 and level-2 containers. | |||
| Finally, if an implementation supports per level configuration but | Finally, if an implementation supports per level configuration but | |||
| does not support the level-1-2 configuration, it SHOULD also | does not support the level-1-2 configuration, it SHOULD also | |||
| advertise a deviation. | advertise a deviation. | |||
| 2.4. Per-Interface Parameters | 2.4. Per-Interface Parameters | |||
| The per-interface section of the IS-IS instance describes the | The per-interface section of the IS-IS instance describes the | |||
| interface specific parameters. | interface specific parameters. | |||
| The interface is modeled as a reference to an existing interface | The interface is modeled as a reference to an existing interface | |||
| defined in the "ietf-interfaces" YANG model ([RFC8343]. | defined in the "ietf-interfaces" YANG model ([RFC8343]. | |||
| Each interface has some interface-specific parameters that may have a | Each interface has some interface-specific parameters that may have a | |||
| different per level value as described in previous section. An | different per level value as described in previous section. An | |||
| interface-specific parameter always overrides an IS-IS global | interface-specific parameter MUST be preferred over an IS-IS global | |||
| parameter. | parameter. | |||
| Some parameters like hello-padding are defined as containers to allow | Some parameters like hello-padding are defined as containers to allow | |||
| easy extension by vendor specific modules. | easy extension by vendor specific modules. | |||
| +--rw interfaces | +--rw interfaces | |||
| +--rw interface* [name] | +--rw interface* [name] | |||
| +--rw name if:interface-ref | +--rw name if:interface-ref | |||
| +--rw level-type? level | +--rw enable? boolean {admin-control}? | |||
| +--rw lsp-pacing-interval? | +--rw level-type? level | |||
| | rt-types:timer-value-milliseconds | +--rw lsp-pacing-interval? | |||
| +--rw lsp-retransmit-interval? | | rt-types:timer-value-milliseconds | |||
| | rt-types:timer-value-seconds16 | +--rw lsp-retransmit-interval? | |||
| +--rw passive? boolean | | rt-types:timer-value-seconds16 | |||
| +--rw csnp-interval? | +--rw passive? boolean | |||
| | rt-types:timer-value-seconds16 | +--rw csnp-interval? | |||
| +--rw hello-padding | | rt-types:timer-value-seconds16 | |||
| | +--rw enable? boolean | +--rw hello-padding | |||
| +--rw mesh-group-enable? mesh-group-state | | +--rw enable? boolean | |||
| +--rw mesh-group? uint8 | +--rw mesh-group-enable? mesh-group-state | |||
| +--rw interface-type? interface-type | +--rw mesh-group? uint8 | |||
| +--rw enable? boolean {admin-control}? | +--rw interface-type? interface-type | |||
| +--rw tag* uint32 {prefix-tag}? | +--rw tag* uint32 {prefix-tag}? | |||
| +--rw tag64* uint64 {prefix-tag64}? | +--rw tag64* uint64 {prefix-tag64}? | |||
| +--rw node-flag? boolean {node-flag}? | +--rw node-flag? boolean {node-flag}? | |||
| +--rw hello-authentication | +--rw hello-authentication | |||
| | +--rw (authentication-type)? | | +--rw (authentication-type)? | |||
| | | +--:(key-chain) {key-chain}? | | | +--:(key-chain) {key-chain}? | |||
| | | | +--rw key-chain? | | | | +--rw key-chain? key-chain:key-chain-ref | |||
| | | | key-chain:key-chain-ref | | | +--:(password) | |||
| | | +--:(password) | | | +--rw key? string | |||
| | | +--rw key? string | | | +--rw crypto-algorithm? identityref | |||
| | | +--rw crypto-algorithm? identityref | | +--rw level-1 | |||
| | +--rw level-1 | | | +--rw (authentication-type)? | |||
| | | +--rw (authentication-type)? | | | +--:(key-chain) {key-chain}? | |||
| | | +--:(key-chain) {key-chain}? | | | | +--rw key-chain? key-chain:key-chain-ref | |||
| | | | +--rw key-chain? | | | +--:(password) | |||
| | | | key-chain:key-chain-ref | | | +--rw key? string | |||
| | | +--:(password) | | | +--rw crypto-algorithm? identityref | |||
| | | +--rw key? string | | +--rw level-2 | |||
| | | +--rw crypto-algorithm? identityref | | +--rw (authentication-type)? | |||
| | +--rw level-2 | | +--:(key-chain) {key-chain}? | |||
| | +--rw (authentication-type)? | | | +--rw key-chain? key-chain:key-chain-ref | |||
| | +--:(key-chain) {key-chain}? | | +--:(password) | |||
| | | +--rw key-chain? | | +--rw key? string | |||
| | | key-chain:key-chain-ref | | +--rw crypto-algorithm? identityref | |||
| | +--:(password) | +--rw hello-interval | |||
| | +--rw key? string | | +--rw value? rt-types:timer-value-seconds16 | |||
| | +--rw crypto-algorithm? identityref | | +--rw level-1 | |||
| +--rw hello-interval | | | +--rw value? rt-types:timer-value-seconds16 | |||
| | +--rw value? rt-types:timer-value-seconds16 | | +--rw level-2 | |||
| | +--rw level-1 | | +--rw value? rt-types:timer-value-seconds16 | |||
| | | +--rw value? rt-types:timer-value-seconds16 | +--rw hello-multiplier | |||
| | +--rw level-2 | | +--rw value? uint16 | |||
| | +--rw value? rt-types:timer-value-seconds16 | | +--rw level-1 | |||
| +--rw hello-multiplier | | | +--rw value? uint16 | |||
| | +--rw value? uint16 | | +--rw level-2 | |||
| | +--rw level-1 | | +--rw value? uint16 | |||
| | | +--rw value? uint16 | +--rw priority | |||
| | +--rw level-2 | | +--rw value? uint8 | |||
| | +--rw value? uint16 | | +--rw level-1 | |||
| +--rw priority | | | +--rw value? uint8 | |||
| | +--rw value? uint8 | | +--rw level-2 | |||
| | +--rw level-1 | | +--rw value? uint8 | |||
| | | +--rw value? uint8 | +--rw metric | |||
| | +--rw level-2 | | +--rw value? wide-metric | |||
| | +--rw value? uint8 | | +--rw level-1 | |||
| +--rw metric | | | +--rw value? wide-metric | |||
| | +--rw value? wide-metric | | +--rw level-2 | |||
| | +--rw level-1 | | +--rw value? wide-metric | |||
| | | +--rw value? wide-metric | +--rw bfd {bfd}? | |||
| | +--rw level-2 | | +--rw enable? boolean | |||
| | +--rw value? wide-metric | | +--rw local-multiplier? multiplier | |||
| +--rw bfd {bfd}? | | +--rw (interval-config-type)? | |||
| | +--rw enable? boolean | | +--:(tx-rx-intervals) | |||
| | +--rw local-multiplier? multiplier | | | +--rw desired-min-tx-interval? uint32 | |||
| | +--rw (interval-config-type)? | | | +--rw required-min-rx-interval? uint32 | |||
| | +--:(tx-rx-intervals) | | +--:(single-interval) {single-minimum-interval}? | |||
| | | +--rw desired-min-tx-interval? uint32 | | +--rw min-interval? uint32 | |||
| | | +--rw required-min-rx-interval? uint32 | +--rw address-families {nlpid-control}? | |||
| | +--:(single-interval) {single-minimum-interval}? | | +--rw address-family-list* [address-family] | |||
| | +--rw min-interval? uint32 | | +--rw address-family iana-rt-types:address-family | |||
| +--rw address-families {nlpid-control}? | +--rw mpls | |||
| | +--rw address-family-list* [address-family] | | +--rw ldp | |||
| | +--rw address-family iana-rt-types:address-family | | +--rw igp-sync? boolean {ldp-igp-sync}? | |||
| +--rw mpls | +--rw fast-reroute {fast-reroute}? | |||
| | +--rw ldp | | +--rw lfa {lfa}? | |||
| | +--rw igp-sync? boolean {ldp-igp-sync}? | | +--rw candidate-enable? boolean | |||
| +--rw fast-reroute {fast-reroute}? | | +--rw enable? boolean | |||
| | +--rw lfa {lfa}? | | +--rw remote-lfa {remote-lfa}? | |||
| | +--rw candidate-enable? boolean | | | +--rw enable? boolean | |||
| | +--rw enable? boolean | | +--rw level-1 | |||
| | +--rw remote-lfa {remote-lfa}? | | | +--rw candidate-enable? boolean | |||
| | | +--rw enable? boolean | | | +--rw enable? boolean | |||
| | +--rw level-1 | | | +--rw remote-lfa {remote-lfa}? | |||
| | | +--rw candidate-enable? boolean | | | +--rw enable? boolean | |||
| | | +--rw enable? boolean | | +--rw level-2 | |||
| | | +--rw remote-lfa {remote-lfa}? | | +--rw candidate-enable? boolean | |||
| | | +--rw enable? boolean | | +--rw enable? boolean | |||
| | +--rw level-2 | | +--rw remote-lfa {remote-lfa}? | |||
| | +--rw candidate-enable? boolean | | +--rw enable? boolean | |||
| | +--rw enable? boolean | +--ro adjacencies | |||
| | +--rw remote-lfa {remote-lfa}? | | +--ro adjacency* [] | |||
| | +--rw enable? boolean | | +--ro neighbor-sys-type? level | |||
| +--ro adjacencies | | +--ro neighbor-sysid? system-id | |||
| | +--ro adjacency* [] | | +--ro neighbor-extended-circuit-id? | |||
| | +--ro neighbor-sys-type? level | | | extended-circuit-id | |||
| | +--ro neighbor-sysid? system-id | | +--ro neighbor-snpa? snpa | |||
| | +--ro neighbor-extended-circuit-id? | | +--ro usage? level | |||
| | | extended-circuit-id | | +--ro hold-timer? | |||
| | +--ro neighbor-snpa? snpa | | rt-types:timer-value-seconds16 | |||
| | +--ro usage? level | | +--ro neighbor-priority? uint8 | |||
| | +--ro hold-timer? | | +--ro lastuptime? yang:timestamp | |||
| | | rt-types:timer-value-seconds16 | | +--ro state? adj-state-type | |||
| | +--ro neighbor-priority? uint8 | +--ro event-counters | |||
| | +--ro lastuptime? yang:timestamp | | +--ro adjacency-changes? uint32 | |||
| | +--ro state? adj-state-type | | +--ro adjacency-number? uint32 | |||
| +--ro event-counters | | +--ro init-fails? uint32 | |||
| | +--ro adjacency-changes? uint32 | | +--ro adjacency-rejects? uint32 | |||
| | +--ro adjacency-number? uint32 | | +--ro id-len-mismatch? uint32 | |||
| | +--ro init-fails? uint32 | | +--ro max-area-addresses-mismatch? uint32 | |||
| | +--ro adjacency-rejects? uint32 | | +--ro authentication-type-fails? uint32 | |||
| | +--ro id-len-mismatch? uint32 | | +--ro authentication-fails? uint32 | |||
| | +--ro max-area-addresses-mismatch? uint32 | | +--ro lan-dis-changes? uint32 | |||
| | +--ro authentication-type-fails? uint32 | +--ro packet-counters | |||
| | +--ro authentication-fails? uint32 | | +--ro level* [level] | |||
| | +--ro lan-dis-changes? uint32 | | +--ro level level-number | |||
| +--ro packet-counters | | +--ro iih | |||
| | +--ro level* [level] | | | +--ro in? uint32 | |||
| | +--ro level level-number | | | +--ro out? uint32 | |||
| | +--ro iih | | +--ro ish | |||
| | | +--ro in? uint32 | | | +--ro in? uint32 | |||
| | | +--ro out? uint32 | | | +--ro out? uint32 | |||
| | +--ro ish | | +--ro esh | |||
| | | +--ro in? uint32 | | | +--ro in? uint32 | |||
| | | +--ro out? uint32 | | | +--ro out? uint32 | |||
| | +--ro esh | | +--ro lsp | |||
| | | +--ro in? uint32 | | | +--ro in? uint32 | |||
| | | +--ro out? uint32 | | | +--ro out? uint32 | |||
| | +--ro lsp | | +--ro psnp | |||
| | | +--ro in? uint32 | | | +--ro in? uint32 | |||
| | | +--ro out? uint32 | | | +--ro out? uint32 | |||
| | +--ro psnp | | +--ro csnp | |||
| | | +--ro in? uint32 | | | +--ro in? uint32 | |||
| | | +--ro out? uint32 | | | +--ro out? uint32 | |||
| | +--ro csnp | | +--ro unknown | |||
| | | +--ro in? uint32 | | +--ro in? uint32 | |||
| | | +--ro out? uint32 | +--rw discontinuity-time? yang:date-and-time | |||
| | +--ro unknown | +--rw topologies {multi-topology}? | |||
| | +--ro in? uint32 | +--rw topology* [name] | |||
| | +--ro out? uint32 | +--rw name | |||
| +--rw topologies {multi-topology}? | | -> ../../../../../../../../rt:ribs/rib/name | |||
| +--rw topology* [name] | +--rw metric | |||
| +--rw name -> | +--rw value? wide-metric | |||
| ../../../../../../../../rt:ribs/rib/name | +--rw level-1 | |||
| +--rw metric | | +--rw value? wide-metric | |||
| +--rw value? wide-metric | +--rw level-2 | |||
| +--rw level-1 | +--rw value? wide-metric | |||
| | +--rw value? wide-metric | ||||
| +--rw level-2 | ||||
| +--rw value? wide-metric | ||||
| rpcs: | rpcs: | |||
| +---x clear-adjacency | +---x clear-adjacency | |||
| | +---w input | | +---w input | |||
| | +---w routing-protocol-instance-name -> | | +---w routing-protocol-instance-name | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +---w level? level | | +---w level? level | |||
| | +---w interface? if:interface-ref | | +---w interface? if:interface-ref | |||
| +---x clear-database | +---x clear-database | |||
| +---w input | +---w input | |||
| +---w routing-protocol-instance-name -> | +---w routing-protocol-instance-name | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| +---w level? level | +---w level? level | |||
| notifications: | notifications: | |||
| +---n database-overload | +---n database-overload | |||
| | +--ro routing-protocol-name? -> | | +--ro routing-protocol-name? | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro overload? enumeration | | +--ro overload? enumeration | |||
| +---n lsp-too-large | +---n lsp-too-large | |||
| | +--ro routing-protocol-name? -> | | +--ro routing-protocol-name? | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro pdu-size? uint32 | | +--ro pdu-size? uint32 | |||
| | +--ro lsp-id? lsp-id | | +--ro lsp-id? lsp-id | |||
| +---n if-state-change | +---n if-state-change | |||
| | +--ro routing-protocol-name? -> | | +--ro routing-protocol-name? | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro state? if-state-type | | +--ro state? if-state-type | |||
| +---n corrupted-lsp-detected | +---n corrupted-lsp-detected | |||
| | +--ro routing-protocol-name? -> | | +--ro routing-protocol-name? | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro lsp-id? lsp-id | | +--ro lsp-id? lsp-id | |||
| +---n attempt-to-exceed-max-sequence | +---n attempt-to-exceed-max-sequence | |||
| | +--ro routing-protocol-name? -> | | +--ro routing-protocol-name? | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro lsp-id? lsp-id | | +--ro lsp-id? lsp-id | |||
| +---n id-len-mismatch | +---n id-len-mismatch | |||
| | +--ro routing-protocol-name? -> | | +--ro routing-protocol-name? | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro pdu-field-len? uint8 | | +--ro pdu-field-len? uint8 | |||
| | +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| +---n max-area-addresses-mismatch | +---n max-area-addresses-mismatch | |||
| | +--ro routing-protocol-name? -> | | +--ro routing-protocol-name? | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro max-area-addresses? uint8 | | +--ro max-area-addresses? uint8 | |||
| | +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| +---n own-lsp-purge | +---n own-lsp-purge | |||
| | +--ro routing-protocol-name? -> | | +--ro routing-protocol-name? | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro lsp-id? lsp-id | | +--ro lsp-id? lsp-id | |||
| +---n sequence-number-skipped | +---n sequence-number-skipped | |||
| | +--ro routing-protocol-name? -> | | +--ro routing-protocol-name? | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro lsp-id? lsp-id | | +--ro lsp-id? lsp-id | |||
| +---n authentication-type-failure | +---n authentication-type-failure | |||
| | +--ro routing-protocol-name? -> | | +--ro routing-protocol-name? | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| +---n authentication-failure | +---n authentication-failure | |||
| | +--ro routing-protocol-name? -> | | +--ro routing-protocol-name? | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| +---n version-skew | +---n version-skew | |||
| | +--ro routing-protocol-name? -> | | +--ro routing-protocol-name? | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro protocol-version? uint8 | | +--ro protocol-version? uint8 | |||
| | +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| +---n area-mismatch | +---n area-mismatch | |||
| | +--ro routing-protocol-name? -> | | +--ro routing-protocol-name? | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| +---n rejected-adjacency | +---n rejected-adjacency | |||
| | +--ro routing-protocol-name? -> | | +--ro routing-protocol-name? | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| | +--ro reason? string | | +--ro reason? string | |||
| +---n protocols-supported-mismatch | +---n protocols-supported-mismatch | |||
| | +--ro routing-protocol-name? -> | | +--ro routing-protocol-name? | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| | +--ro protocols* uint8 | | +--ro protocols* uint8 | |||
| +---n lsp-error-detected | +---n lsp-error-detected | |||
| | +--ro routing-protocol-name? -> | | +--ro routing-protocol-name? | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro lsp-id? lsp-id | | +--ro lsp-id? lsp-id | |||
| | +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| | +--ro error-offset? uint32 | | +--ro error-offset? uint32 | |||
| | +--ro tlv-type? uint8 | | +--ro tlv-type? uint8 | |||
| +---n adjacency-state-change | +---n adjacency-state-change | |||
| | +--ro routing-protocol-name? -> | | +--ro routing-protocol-name? | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro neighbor? string | | +--ro neighbor? string | |||
| | +--ro neighbor-system-id? system-id | | +--ro neighbor-system-id? system-id | |||
| | +--ro state? adj-state-type | | +--ro state? adj-state-type | |||
| | +--ro reason? string | | +--ro reason? string | |||
| +---n lsp-received | +---n lsp-received | |||
| | +--ro routing-protocol-name? -> | | +--ro routing-protocol-name? | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| | +--ro isis-level? level | | +--ro isis-level? level | |||
| | +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| | +--ro interface-level? level | | +--ro interface-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro lsp-id? lsp-id | | +--ro lsp-id? lsp-id | |||
| | +--ro sequence? uint32 | | +--ro sequence? uint32 | |||
| | +--ro received-timestamp? yang:timestamp | | +--ro received-timestamp? yang:timestamp | |||
| | +--ro neighbor-system-id? system-id | | +--ro neighbor-system-id? system-id | |||
| +---n lsp-generation | +---n lsp-generation | |||
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? | |||
| /rt:routing/control-plane-protocols/control-plane-protocol/name | -> /rt:routing/control-plane-protocols/control-plane-protocol/name | |||
| +--ro isis-level? level | +--ro isis-level? level | |||
| +--ro lsp-id? lsp-id | +--ro lsp-id? lsp-id | |||
| +--ro sequence? uint32 | +--ro sequence? uint32 | |||
| +--ro send-timestamp? yang:timestamp | +--ro send-timestamp? yang:timestamp | |||
| 2.5. Authentication Parameters | 2.5. Authentication Parameters | |||
| The module enables authentication configuration through the IETF key- | The module enables authentication configuration through the IETF key- | |||
| chain module ([RFC8177]). The IS-IS module imports the "ietf-key- | chain module [RFC8177]. The IS-IS module imports the "ietf-key- | |||
| chain" module and reuses some groupings to allow global and per | chain" module and reuses some groupings to allow global and per | |||
| interface configuration of authentication. If a global | interface configuration of authentication. If a global | |||
| authentication is configured, an implementation SHOULD authenticate | authentication is configured, an implementation SHOULD authenticate | |||
| PSNPs (Partial Sequence Number Packets), CSNPs (Complete Sequence | PSNPs (Partial Sequence Number Packets), CSNPs (Complete Sequence | |||
| Number Packets) and LSPs (Link State Packets) with the authentication | Number Packets) and LSPs (Link State Packets) with the authentication | |||
| parameters supplied. The authentication of HELLO PDUs (Protocol Data | parameters supplied. The authentication of HELLO PDUs (Protocol Data | |||
| Units) can be activated on a per interface basis. | Units) can be activated on a per interface basis. | |||
| 2.6. IGP/LDP synchronization | 2.6. IGP/LDP synchronization | |||
| skipping to change at page 19, line 41 ¶ | skipping to change at page 19, line 31 ¶ | |||
| As IS-IS protocol is based on ISO protocol suite, some ISO parameters | As IS-IS protocol is based on ISO protocol suite, some ISO parameters | |||
| may be required. | may be required. | |||
| This module augments interface configuration model to support ISO | This module augments interface configuration model to support ISO | |||
| configuration parameters. | configuration parameters. | |||
| The clns-mtu can be defined under the interface. | The clns-mtu can be defined under the interface. | |||
| 2.8. IP FRR | 2.8. IP FRR | |||
| This YANG module supports LFA (Loop Free Alternates) ([RFC5286]) and | This YANG module supports LFA (Loop Free Alternates) [RFC5286] and | |||
| remote LFA ([RFC7490]) as IP FRR techniques. The "fast-reroute" | remote LFA [RFC7490] as IP FRR techniques. The "fast-reroute" | |||
| container may be augmented by other models to support other IPFRR | container may be augmented by other models to support other IPFRR | |||
| flavors (MRT, TILFA ...). | flavors (MRT, TILFA ...). | |||
| The current version of the model supports activation of LFA and | The current version of the model supports activation of LFA and | |||
| remote LFA at interface only. The global "lfa" container is present | remote LFA at interface only. The global "lfa" container is present | |||
| but kept empty to allow augmentation with vendor specific properties | but kept empty to allow augmentation with vendor specific properties | |||
| like policies. | like policies. | |||
| Remote LFA is considered as a child of LFA. Remote LFA cannot be | Remote LFA is considered as a child of LFA. Remote LFA cannot be | |||
| enabled if LFA is not enabled. | enabled if LFA is not enabled. | |||
| The "candidate-disabled" allows to mark an interface to not be used | The "candidate-enable" allows to mark an interface to be used as a | |||
| as a backup. | backup. | |||
| 2.9. Operational States | 2.9. Operational States | |||
| Operational states are provided in the module in various places: | Operational states are provided in the module in various places: | |||
| o system-counters: provides statistical informations about the | o system-counters: provides statistical informations about the | |||
| global system. | global system. | |||
| o interface : provides configuration state informations for each | o interface : provides configuration state informations for each | |||
| interface. | interface. | |||
| skipping to change at page 20, line 34 ¶ | skipping to change at page 20, line 27 ¶ | |||
| o lsp-log: provides informations about LSP events on the node | o lsp-log: provides informations about LSP events on the node | |||
| (reception of an LSP or modification of local LSP). This SHOULD | (reception of an LSP or modification of local LSP). This SHOULD | |||
| be implemented as a wrapping buffer and an implementation MAY | be implemented as a wrapping buffer and an implementation MAY | |||
| decide to log refresh LSPs or not. | decide to log refresh LSPs or not. | |||
| o local-rib: provides the IS-IS internal routing table view. | o local-rib: provides the IS-IS internal routing table view. | |||
| o database: provides details on the current LSDB. | o database: provides details on the current LSDB. | |||
| o hostnames: provides informations about system-id to hostname | o hostnames: provides informations about system-id to hostname | |||
| mappings (as defined in [RFC5301]). | mappings [RFC5301]. | |||
| o fast-reroute: provides informations about IP FRR. | o fast-reroute: provides informations about IP FRR. | |||
| 3. RPC Operations | 3. RPC Operations | |||
| The "ietf-isis" module defines two RPC operations: | The "ietf-isis" module defines two RPC operations: | |||
| o clear-database: reset the content of a particular IS-IS database | o clear-database: reset the content of a particular IS-IS database | |||
| and restart database synchronization with the neighbors. | and restart database synchronization with the neighbors. | |||
| o clear-adjacency: restart a particular set of IS-IS adjacencies. | o clear-adjacency: restart a particular set of IS-IS adjacencies. | |||
| 4. Notifications | 4. Notifications | |||
| The "ietf-isis" module introduces some notifications : | The "ietf-isis" module introduces some notifications : | |||
| database-overload: raised when overload condition is changed. | database-overload: raised when overload condition is changed. | |||
| lsp-too-large: raised when the system tries to propagate a too | lsp-too-large: raised when the system tries to propagate a PDU | |||
| large PDU. | that is too large. | |||
| if-state-change: raised when the state of an interface changes. | if-state-change: raised when the state of an interface changes. | |||
| corrupted-lsp-detected: raised when the system finds that an LSP | corrupted-lsp-detected: raised when the system finds that an LSP | |||
| that was stored in memory has become corrupted. | that was stored in memory has become corrupted. | |||
| attempt-to-exceed-max-sequence: This notification is sent when the | attempt-to-exceed-max-sequence: This notification is sent when the | |||
| system wraps the 32-bit sequence counter of an LSP. | system wraps the 32-bit sequence counter of an LSP. | |||
| id-len-mismatch: This notification is sent when we receive a PDU | id-len-mismatch: This notification is sent when we receive a PDU | |||
| skipping to change at page 22, line 43 ¶ | skipping to change at page 22, line 38 ¶ | |||
| The module reuses types from [RFC6991] and [RFC8294]. | The module reuses types from [RFC6991] and [RFC8294]. | |||
| To support BFD for fast detection, the module relies on | To support BFD for fast detection, the module relies on | |||
| [I-D.ietf-bfd-yang]. | [I-D.ietf-bfd-yang]. | |||
| 6. IS-IS YANG Module | 6. IS-IS YANG Module | |||
| The following RFCs, drafts and external standards are not referenced | The following RFCs, drafts and external standards are not referenced | |||
| in the document text but are referenced in the ietf-isis.yang module: | in the document text but are referenced in the ietf-isis.yang module: | |||
| [ISO-10589], [RFC1195], [RFC5029], [RFC5130], [RFC5305], [RFC5306], | [ISO-10589], [RFC1195], [RFC2966], [RFC4090],[RFC5029], [RFC5130], | |||
| [RFC5308], [RFC5880], [RFC5881], [RFC6119], [RFC6232], [RFC7794], | [RFC5305], [RFC5306], [RFC5307], [RFC5308], [RFC5880], [RFC5881], | |||
| [RFC7810], [RFC7917], [RFC8405]. | [RFC6119], [RFC6232], [RFC7794], [RFC7981], [RFC8570], [RFC7917], | |||
| [RFC8405]. | ||||
| <CODE BEGINS> file "ietf-isis@2019-03-07.yang" | <CODE BEGINS> file "ietf-isis@2019-09-05.yang" | |||
| module ietf-isis { | module ietf-isis { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-isis"; | namespace "urn:ietf:params:xml:ns:yang:ietf-isis"; | |||
| prefix isis; | prefix isis; | |||
| import ietf-routing { | import ietf-routing { | |||
| prefix "rt"; | prefix "rt"; | |||
| reference "RFC 8349 - A YANG Data Model for Routing | reference "RFC 8349 - A YANG Data Model for Routing | |||
| Management (NMDA Version)"; | Management (NMDA Version)"; | |||
| } | } | |||
| import ietf-inet-types { | import ietf-inet-types { | |||
| prefix inet; | prefix inet; | |||
| skipping to change at page 24, line 4 ¶ | skipping to change at page 23, line 48 ¶ | |||
| Routing Area"; | Routing Area"; | |||
| } | } | |||
| import ietf-bfd-types { | import ietf-bfd-types { | |||
| prefix "bfd-types"; | prefix "bfd-types"; | |||
| reference "RFC YYYY - YANG Data Model for Bidirectional | reference "RFC YYYY - YANG Data Model for Bidirectional | |||
| Forwarding Detection (BFD). | Forwarding Detection (BFD). | |||
| -- Note to RFC Editor Please replace YYYY with published RFC | -- Note to RFC Editor Please replace YYYY with published RFC | |||
| number for draft-ietf-bfd-yang."; | number for draft-ietf-bfd-yang."; | |||
| } | } | |||
| organization | organization | |||
| "IETF LSR Working Group"; | "IETF LSR Working Group"; | |||
| contact | contact | |||
| "WG List: <mailto:lsr@ietf.org> | "WG List: <mailto:lsr@ietf.org> | |||
| Editor: Stephane Litkowski | Editor: Stephane Litkowski | |||
| <mailto:stephane.litkowski@orange.com> | <mailto:stephane.litkowski@orange.com> | |||
| Derek Yeung | Derek Yeung | |||
| <mailto:derek@arrcus.com> | <mailto:derek@arrcus.com> | |||
| Acee Lindem | Acee Lindem | |||
| <mailto:acee@cisco.com> | <mailto:acee@cisco.com> | |||
| Jeffrey Zhang | Jeffrey Zhang | |||
| <mailto:zzhang@juniper.net> | <mailto:zzhang@juniper.net> | |||
| Ladislav Lhotka | Ladislav Lhotka | |||
| <mailto:llhotka@nic.cz> | <mailto:llhotka@nic.cz> | |||
| Yi Yang | ||||
| <mailto:yiya@cisco.com> | ||||
| Dean Bogdanovic | ||||
| <mailto:deanb@juniper.net> | ||||
| Kiran Agrahara Sreenivasa | ||||
| <mailto:kkoushik@brocade.com> | ||||
| Yingzhen Qu | ||||
| <mailto:yiqu@cisco.com> | ||||
| Jeff Tantsura | ||||
| <mailto:jefftant.ietf@gmail.com> | ||||
| "; | "; | |||
| description | description | |||
| "This YANG module defines the generic configuration and | "This YANG module defines the generic configuration and | |||
| operational state for the IS-IS protocol. | operational state for the IS-IS protocol common to all | |||
| It is intended that the module | vendor implementations. It is intended that the module | |||
| will be extended by vendors to define vendor-specific | will be extended by vendors to define vendor-specific | |||
| IS-IS configuration parameters and policies, | IS-IS configuration parameters and policies, | |||
| for example, route maps or route policies. | for example, route maps or route policies. | |||
| This YANG module conforms to the Network Management | This YANG model conforms to the Network Management | |||
| Datastore Architecture (NDMA) as described in RFC 8242. | Datastore Architecture (NMDA) as described in RFC 8242. | |||
| Copyright (c) 2018 IETF Trust and the persons identified as | Copyright (c) 2018 IETF Trust and the persons identified as | |||
| authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject to | |||
| to the license terms contained in, the Simplified BSD License | the license terms contained in, the Simplified BSD License set | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| Relating to IETF Documents | Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info). | (https://trustee.ietf.org/license-info). | |||
| This version of this YANG module is part of RFC XXXX; | This version of this YANG module is part of RFC XXXX | |||
| see the RFC itself for full legal notices. | (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself | |||
| for full legal notices. | ||||
| The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', | The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | |||
| 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', | NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', | |||
| 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document | 'MAY', and 'OPTIONAL' in this document are to be interpreted as | |||
| are to be interpreted as described in BCP 14 [RFC2119] | described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, | |||
| [RFC8174] when, and only when, they appear in all capitals, | they appear in all capitals, as shown here. | |||
| as shown here. | ||||
| "; | ||||
| revision 2019-03-07 { | This version of this YANG module is part of RFC XXXX; | |||
| see the RFC itself for full legal notices."; | ||||
| revision 2019-09-05 { | ||||
| description | description | |||
| "Initial revision."; | "Initial revision."; | |||
| reference "RFC XXXX"; | reference "RFC XXXX"; | |||
| } | } | |||
| /* Identities */ | /* Identities */ | |||
| identity isis { | identity isis { | |||
| base rt:routing-protocol; | base rt:routing-protocol; | |||
| description "Identity for the IS-IS routing protocol."; | description "Identity for the IS-IS routing protocol."; | |||
| skipping to change at page 26, line 4 ¶ | skipping to change at page 25, line 39 ¶ | |||
| "Identity used when the LSP log reason is | "Identity used when the LSP log reason is | |||
| a refresh LSP received."; | a refresh LSP received."; | |||
| } | } | |||
| identity content-change { | identity content-change { | |||
| base lsp-log-reason; | base lsp-log-reason; | |||
| description | description | |||
| "Identity used when the LSP log reason is | "Identity used when the LSP log reason is | |||
| a change in the content of the LSP."; | a change in the content of the LSP."; | |||
| } | } | |||
| identity frr-protection-method { | ||||
| description | ||||
| "Base identity for a Fast Reroute protection method."; | ||||
| } | ||||
| identity frr-protection-method-lfa { | ||||
| base frr-protection-method; | ||||
| description "Loop Free Alternate as defined in RFC5286."; | ||||
| } | ||||
| identity frr-protection-method-rlfa { | ||||
| base frr-protection-method; | ||||
| description "Remote Loop Free Alternate as defined in RFC7490."; | ||||
| } | ||||
| identity frr-protection-method-rsvpte { | ||||
| base frr-protection-method; | ||||
| description "RSVP-TE as defined in RFC4090."; | ||||
| } | ||||
| identity frr-protection-available-type { | ||||
| description "Base identity for Fast Reroute protection types | ||||
| provided by an alternate path."; | ||||
| } | ||||
| identity frr-protection-available-node-type { | ||||
| base frr-protection-available-type; | ||||
| description "Node protection is provided by the alternate."; | ||||
| } | ||||
| identity frr-protection-available-link-type { | ||||
| base frr-protection-available-type; | ||||
| description "Link protection is provided by the alternate."; | ||||
| } | ||||
| identity frr-protection-available-srlg-type { | ||||
| base frr-protection-available-type; | ||||
| description "SRLG protection is provided by the alternate."; | ||||
| } | ||||
| identity frr-protection-available-downstream-type { | ||||
| base frr-protection-available-type; | ||||
| description "The alternate is downstream on the path."; | ||||
| } | ||||
| identity frr-protection-available-other-type { | ||||
| base frr-protection-available-type; | ||||
| description "The level of protection is unknown."; | ||||
| } | ||||
| identity unidirectional-link-delay-subtlv-flag { | ||||
| description "Base identity for unidirectional-link-delay | ||||
| subTLV flags. Flags are defined in RFC8570."; | ||||
| } | ||||
| identity unidirectional-link-delay-subtlv-a-flag { | ||||
| base unidirectional-link-delay-subtlv-flag; | ||||
| description | ||||
| "The A bit represents the Anomalous (A) bit. | ||||
| The A bit is set when the measured value of | ||||
| this parameter exceeds its configured | ||||
| maximum threshold. | ||||
| The A bit is cleared when the measured value | ||||
| falls below its configured reuse threshold. | ||||
| If the A bit is clear, | ||||
| the value represents steady-state link performance."; | ||||
| } | ||||
| identity min-max-unidirectional-link-delay-subtlv-flag { | ||||
| description | ||||
| "Base identity for min-max-unidirectional-link-delay | ||||
| subTLV flags. Flags are defined in RFC8570."; | ||||
| } | ||||
| identity min-max-unidirectional-link-delay-subtlv-a-flag { | ||||
| base min-max-unidirectional-link-delay-subtlv-flag; | ||||
| description | ||||
| "The A bit represents the Anomalous (A) bit. | ||||
| The A bit is set when the measured value of | ||||
| this parameter exceeds its configured | ||||
| maximum threshold. | ||||
| The A bit is cleared when the measured value | ||||
| falls below its configured reuse threshold. | ||||
| If the A bit is clear, | ||||
| the value represents steady-state link performance."; | ||||
| } | ||||
| identity unidirectional-link-loss-subtlv-flag { | ||||
| description "Base identity for unidirectional-link-loss | ||||
| subTLV flags. Flags are defined in RFC8570."; | ||||
| } | ||||
| identity unidirectional-link-loss-subtlv-a-flag { | ||||
| base unidirectional-link-loss-subtlv-flag; | ||||
| description | ||||
| "The A bit represents the Anomalous (A) bit. | ||||
| The A bit is set when the measured value of | ||||
| this parameter exceeds its configured | ||||
| maximum threshold. | ||||
| The A bit is cleared when the measured value | ||||
| falls below its configured reuse threshold. | ||||
| If the A bit is clear, | ||||
| the value represents steady-state link performance."; | ||||
| } | ||||
| identity tlv229-flag { | ||||
| description "Base identity for TLV229 flags. Flags are defined | ||||
| in RFC5120."; | ||||
| } | ||||
| identity tlv229-overload-flag { | ||||
| base tlv229-flag; | ||||
| description | ||||
| "If set, the originator is overloaded, | ||||
| and must be avoided in path calculation."; | ||||
| } | ||||
| identity tlv229-attached-flag { | ||||
| base tlv229-flag; | ||||
| description | ||||
| "If set, the originator is attached to | ||||
| another area using the referred metric."; | ||||
| } | ||||
| identity router-capability-flag { | ||||
| description "Base identity for router capability flags. | ||||
| Flags are defined in RFC7981."; | ||||
| } | ||||
| identity router-capability-flooding-flag { | ||||
| base router-capability-flag; | ||||
| description | ||||
| "Quote from RFC7981: 'If the S bit is set, | ||||
| the IS-IS Router CAPABILITY | ||||
| TLV MUST be flooded across the entire routing | ||||
| domain. If the S bit is clear, the TLV MUST NOT | ||||
| be leaked between levels. This bit MUST NOT | ||||
| be altered during the TLV leaking'."; | ||||
| } | ||||
| identity router-capability-down-flag { | ||||
| base router-capability-flag; | ||||
| description | ||||
| "Quote from RFC7981: 'When the IS-IS Router CAPABILITY TLV | ||||
| is leaked from level-2 to level-1, the D bit MUST be set. | ||||
| Otherwise, this bit MUST be clear. IS-IS Router | ||||
| capability TLVs with the D bit set MUST NOT be | ||||
| leaked from level-1 to level-2 in to prevent | ||||
| TLV looping'."; | ||||
| } | ||||
| identity lsp-flag { | ||||
| description "Base identity for LSP attributes. | ||||
| Attributes are defined in ISO 10589"; | ||||
| } | ||||
| identity lsp-partitioned-flag { | ||||
| base lsp-flag; | ||||
| description "Originator partition repair supported"; | ||||
| } | ||||
| identity lsp-attached-error-metric-flag { | ||||
| base lsp-flag; | ||||
| description "Set when originator is attached to | ||||
| another area using the referred metric."; | ||||
| } | ||||
| identity lsp-attached-delay-metric-flag { | ||||
| base lsp-flag; | ||||
| description "Set when originator is attached to | ||||
| another area using the referred metric."; | ||||
| } | ||||
| identity lsp-attached-expense-metric-flag { | ||||
| base lsp-flag; | ||||
| description "Set when originator is attached to | ||||
| another area using the referred metric."; | ||||
| } | ||||
| identity lsp-attached-default-metric-flag { | ||||
| base lsp-flag; | ||||
| description "Set when originator is attached to | ||||
| another area using the referred metric."; | ||||
| } | ||||
| identity lsp-overload-flag { | ||||
| base lsp-flag; | ||||
| description | ||||
| "If set, the originator is overloaded, | ||||
| and must be avoided in path calculation."; | ||||
| } | ||||
| identity lsp-l1system-flag { | ||||
| base lsp-flag; | ||||
| description | ||||
| "Set when the Intermediate System has an L1 type."; | ||||
| } | ||||
| identity lsp-l2system-flag { | ||||
| base lsp-flag; | ||||
| description | ||||
| "Set when the Intermediate System has an L2 type."; | ||||
| } | ||||
| /* Feature definitions */ | /* Feature definitions */ | |||
| feature osi-interface { | ||||
| description "Support of OSI specific parameters on an | ||||
| interface."; | ||||
| } | ||||
| feature poi-tlv { | feature poi-tlv { | |||
| description "Support of Purge Originator Identification."; | description "Support of Purge Originator Identification."; | |||
| reference "RFC 6232 - Purge Originator Identification TLV | reference "RFC 6232 - Purge Originator Identification TLV | |||
| for IS-IS"; | for IS-IS"; | |||
| } | } | |||
| feature ietf-spf-delay { | feature ietf-spf-delay { | |||
| description | description | |||
| "Support for IETF SPF delay algorithm."; | "Support for IETF SPF delay algorithm."; | |||
| reference "RFC 8405 - SPF Back-off algorithm for link | reference "RFC 8405 - SPF Back-off algorithm for link | |||
| state IGPs"; | state IGPs"; | |||
| skipping to change at page 27, line 4 ¶ | skipping to change at page 30, line 34 ¶ | |||
| description | description | |||
| "LDP IGP synchronization."; | "LDP IGP synchronization."; | |||
| reference "RFC5443 - LDP IGP Synchronization."; | reference "RFC5443 - LDP IGP Synchronization."; | |||
| } | } | |||
| feature fast-reroute { | feature fast-reroute { | |||
| description | description | |||
| "Support for IP Fast Reroute (IP-FRR)."; | "Support for IP Fast Reroute (IP-FRR)."; | |||
| } | } | |||
| feature nsr { | feature nsr { | |||
| description | description | |||
| "Non-Stop-Routing (NSR) support."; | "Non-Stop-Routing (NSR) support. The IS-IS NSR feature | |||
| allows a router with redundant control-plane capability | ||||
| (e.g., dual Route-Processor (RP) cards) to maintain its | ||||
| state and adjacencies during planned and unplanned | ||||
| IS-IS instance restarts. It differs from graceful-restart | ||||
| or Non-Stop Forwarding (NSF) in that no protocol signaling | ||||
| or assistance from adjacent IS-IS neighbors is required to | ||||
| recover control-plane state."; | ||||
| } | } | |||
| feature lfa { | feature lfa { | |||
| description | description | |||
| "Support for Loop-Free Alternates (LFAs)."; | "Support for Loop-Free Alternates (LFAs)."; | |||
| reference "RFC5286 - Basic Specification of IP Fast-Reroute: | reference "RFC5286 - Basic Specification of IP Fast-Reroute: | |||
| Loop-free Alternates"; | Loop-free Alternates"; | |||
| } | } | |||
| feature remote-lfa { | feature remote-lfa { | |||
| description | description | |||
| "Support for Remote Loop-Free Alternates (R-LFAs)."; | "Support for Remote Loop-Free Alternates (R-LFAs)."; | |||
| skipping to change at page 27, line 16 ¶ | skipping to change at page 31, line 4 ¶ | |||
| feature lfa { | feature lfa { | |||
| description | description | |||
| "Support for Loop-Free Alternates (LFAs)."; | "Support for Loop-Free Alternates (LFAs)."; | |||
| reference "RFC5286 - Basic Specification of IP Fast-Reroute: | reference "RFC5286 - Basic Specification of IP Fast-Reroute: | |||
| Loop-free Alternates"; | Loop-free Alternates"; | |||
| } | } | |||
| feature remote-lfa { | feature remote-lfa { | |||
| description | description | |||
| "Support for Remote Loop-Free Alternates (R-LFAs)."; | "Support for Remote Loop-Free Alternates (R-LFAs)."; | |||
| reference "RFC7490 - Remote Loop-Free Alternate Fast Reroute"; | reference "RFC7490 - Remote Loop-Free Alternate Fast Reroute"; | |||
| } | } | |||
| feature overload-max-metric { | feature overload-max-metric { | |||
| description | description | |||
| "Support of overload by setting | "Support of overload by setting all links to max metric. | |||
| all links to max metric."; | In IS-IS, the overload bit is usually used to signal that | |||
| a node cannot be used as a transit. The overload-max-metric | ||||
| feature brings a similar behavior leveraging on setting all | ||||
| the link metrics to MAX_METRIC."; | ||||
| } | } | |||
| feature prefix-tag { | feature prefix-tag { | |||
| description | description | |||
| "Support for 32-bit prefix tags"; | "Support for 32-bit prefix tags"; | |||
| reference "RFC5130 - A Policy Control Mechanism in | reference "RFC5130 - A Policy Control Mechanism in | |||
| IS-IS Using Administrative Tags"; | IS-IS Using Administrative Tags"; | |||
| } | } | |||
| feature prefix-tag64 { | feature prefix-tag64 { | |||
| description | description | |||
| "Support for 64-bit prefix tags"; | "Support for 64-bit prefix tags"; | |||
| skipping to change at page 33, line 44 ¶ | skipping to change at page 37, line 34 ¶ | |||
| "This container may be augmented with | "This container may be augmented with | |||
| global parameters for Loop-Free Alternatives (LFA). | global parameters for Loop-Free Alternatives (LFA). | |||
| Container creation has no effect on LFA activation."; | Container creation has no effect on LFA activation."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping interface-lfa-config { | grouping interface-lfa-config { | |||
| leaf candidate-enable { | leaf candidate-enable { | |||
| type boolean; | type boolean; | |||
| default true; | default "true"; | |||
| description | description | |||
| "Enable the interface to be used as backup."; | "Enable the interface to be used as backup."; | |||
| } | } | |||
| leaf enable { | leaf enable { | |||
| type boolean; | type boolean; | |||
| default false; | default false; | |||
| description | description | |||
| "Activates LFA - Per-prefix LFA computation | "Activates LFA - Per-prefix LFA computation | |||
| is assumed."; | is assumed."; | |||
| } | } | |||
| skipping to change at page 36, line 22 ¶ | skipping to change at page 40, line 13 ¶ | |||
| leaf non-best-reason { | leaf non-best-reason { | |||
| type string { | type string { | |||
| length "1..255"; | length "1..255"; | |||
| } | } | |||
| description | description | |||
| "Information field to describe why the alternate | "Information field to describe why the alternate | |||
| is not best. The length should be limited to 255 | is not best. The length should be limited to 255 | |||
| unicode characters. The expected format is a single | unicode characters. The expected format is a single | |||
| line text."; | line text."; | |||
| } | } | |||
| leaf protection-available { | container protection-available { | |||
| type bits { | leaf-list protection-types { | |||
| bit node-protect { | type identityref { | |||
| position 0; | base frr-protection-available-type; | |||
| description | ||||
| "Node protection available."; | ||||
| } | ||||
| bit link-protect { | ||||
| position 1; | ||||
| description | ||||
| "Link protection available."; | ||||
| } | ||||
| bit srlg-protect { | ||||
| position 2; | ||||
| description | ||||
| "SRLG protection available."; | ||||
| } | ||||
| bit downstream-protect { | ||||
| position 3; | ||||
| description | ||||
| "Downstream protection available."; | ||||
| } | ||||
| bit other { | ||||
| position 4; | ||||
| description | ||||
| "Other protection available."; | ||||
| } | } | |||
| description "This list contains a set of protection | ||||
| types defined as identities. | ||||
| An identity must be added for each type of | ||||
| protection provided by the alternate. | ||||
| As an example, if an alternate provides | ||||
| SRLG, node and link protection, three | ||||
| identities must be added in this list: | ||||
| one for SRLG protection, one for node | ||||
| protection, one for link protection."; | ||||
| } | } | |||
| description "Protection provided by the alternate."; | description "Protection types provided by the alternate."; | |||
| } | } | |||
| leaf alternate-metric1 { | leaf alternate-metric1 { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Metric from Point of Local Repair (PLR) to | "Metric from Point of Local Repair (PLR) to | |||
| destination through the alternate path."; | destination through the alternate path."; | |||
| } | } | |||
| leaf alternate-metric2 { | leaf alternate-metric2 { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| skipping to change at page 38, line 4 ¶ | skipping to change at page 41, line 29 ¶ | |||
| "Per AF unprotected prefix statistics."; | "Per AF unprotected prefix statistics."; | |||
| } | } | |||
| description | description | |||
| "List of prefixes that are not protected."; | "List of prefixes that are not protected."; | |||
| } | } | |||
| list protection-statistics { | list protection-statistics { | |||
| key frr-protection-method; | key frr-protection-method; | |||
| config false; | config false; | |||
| leaf frr-protection-method { | leaf frr-protection-method { | |||
| type string; | type identityref { | |||
| description "Protection method used. | base frr-protection-method; | |||
| The expected format is a single word. | } | |||
| As example: LFA,rLFA, MRT, RSVP-TE..."; | description "Protection method used."; | |||
| } | } | |||
| list address-family-stats { | list address-family-stats { | |||
| key address-family; | key address-family; | |||
| leaf address-family { | leaf address-family { | |||
| type iana-rt-types:address-family; | type iana-rt-types:address-family; | |||
| description "Address-family"; | description "Address-family"; | |||
| } | } | |||
| leaf total-routes { | leaf total-routes { | |||
| skipping to change at page 40, line 15 ¶ | skipping to change at page 43, line 40 ¶ | |||
| description "IS-IS metric of a route."; | description "IS-IS metric of a route."; | |||
| } | } | |||
| leaf-list tag { | leaf-list tag { | |||
| type uint64; | type uint64; | |||
| description | description | |||
| "List of tags associated with the route. The leaf | "List of tags associated with the route. The leaf | |||
| describes both 32-bit and 64-bit tags."; | describes both 32-bit and 64-bit tags."; | |||
| } | } | |||
| leaf route-type { | leaf route-type { | |||
| type enumeration { | type enumeration { | |||
| enum l2-up-internal { | enum l2-intra-area { | |||
| description "Level 2 internal route | description "Level 2 internal route. As per RFC2966, | |||
| and not leaked to a lower level"; | the prefix is directly connected to the | |||
| } | advertising router. It cannot be | |||
| enum l1-up-internal { | distinguished from an L1->L2 inter-area | |||
| description "Level 1 internal route | route."; | |||
| and not leaked to a lower level"; | ||||
| } | ||||
| enum l2-up-external { | ||||
| description "Level 2 external route | ||||
| and not leaked to a lower level"; | ||||
| } | } | |||
| enum l1-up-external { | enum l1-intra-area { | |||
| description "Level 1 external route | description "Level 1 internal route. As per RFC2966, | |||
| and not leaked to a lower level"; | the prefix is directly connected to the | |||
| advertising router."; | ||||
| } | } | |||
| enum l2-down-internal { | enum l2-external { | |||
| description "Level 2 internal route | description "Level 2 external route. As per RFC2966, | |||
| and leaked to a lower level"; | such a route is learned from other IGPs. | |||
| It cannot be distinguished from an L1->L2 | ||||
| inter-area external route."; | ||||
| } | } | |||
| enum l1-down-internal { | enum l1-external { | |||
| description "Level 1 internal route | description "Level 1 external route. As per RFC2966, | |||
| and leaked to a lower level"; | such a route is learned from other IGPs."; | |||
| } | } | |||
| enum l2-down-external { | enum l1-inter-area { | |||
| description "Level 2 external route | description "These prefixes are learned via L2 routing."; | |||
| and leaked to a lower level"; | ||||
| } | } | |||
| enum l1-down-external { | enum l1-inter-area-external { | |||
| description "Level 1 external route | description "These prefixes are learned via L2 routing | |||
| and leaked to a lower level"; | towards an l2-external route."; | |||
| } | } | |||
| } | } | |||
| description "IS-IS route type."; | description "IS-IS route type."; | |||
| } | } | |||
| } | } | |||
| /* Grouping definitions for configuration and ops state */ | /* Grouping definitions for configuration and ops state */ | |||
| grouping adjacency-state { | grouping adjacency-state { | |||
| container adjacencies { | container adjacencies { | |||
| config false; | config false; | |||
| list adjacency { | list adjacency { | |||
| leaf neighbor-sys-type { | leaf neighbor-sys-type { | |||
| type level; | type level; | |||
| description | description | |||
| "Level capability of neighboring system"; | "Level capability of neighboring system"; | |||
| skipping to change at page 41, line 36 ¶ | skipping to change at page 45, line 12 ¶ | |||
| type snpa; | type snpa; | |||
| description | description | |||
| "SNPA of the neighbor"; | "SNPA of the neighbor"; | |||
| } | } | |||
| leaf usage { | leaf usage { | |||
| type level; | type level; | |||
| description | description | |||
| "Define the level(s) activated on the adjacency. | "Define the level(s) activated on the adjacency. | |||
| On a p2p link this might be level 1 and 2, | On a p2p link this might be level 1 and 2, | |||
| but on a LAN, the usage will be level 1 | but on a LAN, the usage will be level 1 | |||
| between peers at level 1 or level 2 between | between neighbors at level 1 or level 2 between | |||
| peers at level 2."; | neighbors at level 2."; | |||
| } | } | |||
| leaf hold-timer { | leaf hold-timer { | |||
| type rt-types:timer-value-seconds16; | type rt-types:timer-value-seconds16; | |||
| units seconds; | units seconds; | |||
| description | description | |||
| "The holding time in seconds for this | "The holding time in seconds for this | |||
| adjacency. This value is based on | adjacency. This value is based on | |||
| received hello PDUs and the elapsed | received hello PDUs and the elapsed | |||
| time since receipt."; | time since receipt."; | |||
| } | } | |||
| skipping to change at page 42, line 41 ¶ | skipping to change at page 46, line 15 ¶ | |||
| the local node."; | the local node."; | |||
| } | } | |||
| description | description | |||
| "Adjacency state"; | "Adjacency state"; | |||
| } | } | |||
| grouping admin-control { | grouping admin-control { | |||
| leaf enable { | leaf enable { | |||
| if-feature admin-control; | if-feature admin-control; | |||
| type boolean; | type boolean; | |||
| default true; | default "true"; | |||
| description | description | |||
| "Enable/Disable the protocol."; | "Enable/Disable the protocol."; | |||
| } | } | |||
| description | description | |||
| "Grouping for admin control."; | "Grouping for admin control."; | |||
| } | } | |||
| grouping ietf-spf-delay { | grouping ietf-spf-delay { | |||
| leaf initial-delay { | leaf initial-delay { | |||
| type rt-types:timer-value-milliseconds; | type rt-types:timer-value-milliseconds; | |||
| skipping to change at page 45, line 28 ¶ | skipping to change at page 48, line 49 ¶ | |||
| description | description | |||
| "Reference to a key-chain."; | "Reference to a key-chain."; | |||
| } | } | |||
| } | } | |||
| case password { | case password { | |||
| leaf key { | leaf key { | |||
| type string; | type string; | |||
| description | description | |||
| "This leaf specifies the authentication key. The | "This leaf specifies the authentication key. The | |||
| length of the key may be dependent on the | length of the key may be dependent on the | |||
| cryptographic algorithm. In cases where it is | cryptographic algorithm."; | |||
| not, a key length of at least 32 octets should be | ||||
| supported to allow for interoperability with | ||||
| strong keys."; | ||||
| } | } | |||
| leaf crypto-algorithm { | leaf crypto-algorithm { | |||
| type identityref { | type identityref { | |||
| base key-chain:crypto-algorithm; | base key-chain:crypto-algorithm; | |||
| } | } | |||
| description | description | |||
| "Cryptographic algorithm associated with key."; | "Cryptographic algorithm associated with key."; | |||
| } | } | |||
| } | } | |||
| description "Choice of authentication."; | description "Choice of authentication."; | |||
| skipping to change at page 48, line 5 ¶ | skipping to change at page 51, line 25 ¶ | |||
| leaf key-chain { | leaf key-chain { | |||
| type key-chain:key-chain-ref; | type key-chain:key-chain-ref; | |||
| description "Reference to a key-chain."; | description "Reference to a key-chain."; | |||
| } | } | |||
| } | } | |||
| case password { | case password { | |||
| leaf key { | leaf key { | |||
| type string; | type string; | |||
| description "Authentication key specification - The | description "Authentication key specification - The | |||
| length of the key may be dependent on the | length of the key may be dependent on the | |||
| cryptographic algorithm. In cases where | cryptographic algorithm."; | |||
| it is not, a key length of at least 32 octets | ||||
| should be supported to allow for | ||||
| interoperability with strong keys."; | ||||
| } | } | |||
| leaf crypto-algorithm { | leaf crypto-algorithm { | |||
| type identityref { | type identityref { | |||
| base key-chain:crypto-algorithm; | base key-chain:crypto-algorithm; | |||
| } | } | |||
| description | description | |||
| "Cryptographic algorithm associated with key."; | "Cryptographic algorithm associated with key."; | |||
| } | } | |||
| } | } | |||
| description "Choice of authentication."; | description "Choice of authentication."; | |||
| skipping to change at page 50, line 47 ¶ | skipping to change at page 54, line 15 ¶ | |||
| } | } | |||
| leaf restart-interval { | leaf restart-interval { | |||
| type rt-types:timer-value-seconds16; | type rt-types:timer-value-seconds16; | |||
| units "seconds"; | units "seconds"; | |||
| description | description | |||
| "Interval (in seconds) to attempt graceful restart prior | "Interval (in seconds) to attempt graceful restart prior | |||
| to failure."; | to failure."; | |||
| } | } | |||
| leaf helper-enable { | leaf helper-enable { | |||
| type boolean; | type boolean; | |||
| default true; | default "true"; | |||
| description | description | |||
| "Enable local IS-IS router as graceful restart helper."; | "Enable local IS-IS router as graceful restart helper."; | |||
| } | } | |||
| description "Graceful-Restart Configuration."; | description "Graceful-Restart Configuration."; | |||
| } | } | |||
| container nsr { | container nsr { | |||
| if-feature nsr; | if-feature nsr; | |||
| description "Non-Stop Routing (NSR) configuration."; | description "Non-Stop Routing (NSR) configuration."; | |||
| leaf enable { | leaf enable { | |||
| type boolean; | type boolean; | |||
| default false; | default false; | |||
| description "Enable/Disable Non-Stop Routing (NSR)."; | description "Enable/Disable Non-Stop Routing (NSR)."; | |||
| } | } | |||
| } | } | |||
| skipping to change at page 53, line 42 ¶ | skipping to change at page 57, line 10 ¶ | |||
| "Maximum number of Equal-Cost Multi-Path (ECMP) paths."; | "Maximum number of Equal-Cost Multi-Path (ECMP) paths."; | |||
| } | } | |||
| container ietf-spf-delay { | container ietf-spf-delay { | |||
| if-feature ietf-spf-delay; | if-feature ietf-spf-delay; | |||
| uses ietf-spf-delay; | uses ietf-spf-delay; | |||
| description "IETF SPF delay algorithm configuration."; | description "IETF SPF delay algorithm configuration."; | |||
| } | } | |||
| description | description | |||
| "SPF calculation control."; | "SPF calculation control."; | |||
| } | } | |||
| description "Grouping for SPF global parameters."; | description "Grouping for SPF global parameters."; | |||
| } | } | |||
| grouping instance-config { | grouping instance-config { | |||
| description "IS-IS global configuration grouping"; | description "IS-IS global configuration grouping"; | |||
| uses admin-control; | uses admin-control; | |||
| leaf level-type { | leaf level-type { | |||
| type level; | type level; | |||
| default "level-all"; | default "level-all"; | |||
| description | description | |||
| skipping to change at page 55, line 11 ¶ | skipping to change at page 58, line 26 ¶ | |||
| container overload-max-metric { | container overload-max-metric { | |||
| if-feature overload-max-metric; | if-feature overload-max-metric; | |||
| uses overload-max-metric-global-cfg; | uses overload-max-metric-global-cfg; | |||
| description | description | |||
| "Router protocol instance overload maximum | "Router protocol instance overload maximum | |||
| metric advertisement configuration."; | metric advertisement configuration."; | |||
| } | } | |||
| } | } | |||
| grouping instance-state { | grouping instance-state { | |||
| description | ||||
| "IS-IS instance operational state."; | ||||
| uses spf-log; | ||||
| uses lsp-log; | ||||
| uses hostname-db; | ||||
| uses lsdb; | ||||
| uses local-rib; | ||||
| uses system-counters; | ||||
| uses instance-fast-reroute-state; | ||||
| leaf discontinuity-time { | ||||
| type yang:date-and-time; | ||||
| description | description | |||
| "IS-IS instance operational state."; | "The time on the most recent occasion at which any one | |||
| uses spf-log; | or more of this IS-IS instance's counters suffered a | |||
| uses lsp-log; | discontinuity. If no such discontinuities have occurred | |||
| uses hostname-db; | since the IS-IS instance was last re-initialized, then | |||
| uses lsdb; | this node contains the time the IS-IS instance was | |||
| uses local-rib; | re-initialized which normally occurs when it was | |||
| uses system-counters; | created."; | |||
| uses instance-fast-reroute-state; | } | |||
| } | } | |||
| grouping multi-topology-config { | grouping multi-topology-config { | |||
| description "Per-topology configuration"; | description "Per-topology configuration"; | |||
| container default-metric { | container default-metric { | |||
| uses default-metric-global-cfg; | uses default-metric-global-cfg; | |||
| container level-1 { | container level-1 { | |||
| uses default-metric-global-cfg; | uses default-metric-global-cfg; | |||
| description "level-1 specific configuration"; | description "level-1 specific configuration"; | |||
| } | } | |||
| skipping to change at page 55, line 41 ¶ | skipping to change at page 59, line 19 ¶ | |||
| uses default-metric-global-cfg; | uses default-metric-global-cfg; | |||
| description "level-2 specific configuration"; | description "level-2 specific configuration"; | |||
| } | } | |||
| description "Default metric per-topology configuration"; | description "Default metric per-topology configuration"; | |||
| } | } | |||
| uses node-tag-config; | uses node-tag-config; | |||
| } | } | |||
| grouping interface-config { | grouping interface-config { | |||
| description "Interface configuration grouping"; | description "Interface configuration grouping"; | |||
| uses admin-control; | ||||
| leaf level-type { | leaf level-type { | |||
| type level; | type level; | |||
| default "level-all"; | default "level-all"; | |||
| description "IS-IS level of the interface."; | description "IS-IS level of the interface."; | |||
| } | } | |||
| leaf lsp-pacing-interval { | leaf lsp-pacing-interval { | |||
| type rt-types:timer-value-milliseconds; | type rt-types:timer-value-milliseconds; | |||
| units "milliseconds"; | units "milliseconds"; | |||
| default 33; | default 33; | |||
| description | description | |||
| skipping to change at page 57, line 8 ¶ | skipping to change at page 60, line 37 ¶ | |||
| description "IS-IS interface mesh-group ID."; | description "IS-IS interface mesh-group ID."; | |||
| } | } | |||
| leaf interface-type { | leaf interface-type { | |||
| type interface-type; | type interface-type; | |||
| default "broadcast"; | default "broadcast"; | |||
| description | description | |||
| "Type of adjacency to be established on the interface. This | "Type of adjacency to be established on the interface. This | |||
| dictates the type of hello messages that are used."; | dictates the type of hello messages that are used."; | |||
| } | } | |||
| uses admin-control; | ||||
| leaf-list tag { | leaf-list tag { | |||
| if-feature prefix-tag; | if-feature prefix-tag; | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "List of tags associated with the interface."; | "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 | description | |||
| skipping to change at page 60, line 4 ¶ | skipping to change at page 63, line 31 ¶ | |||
| container level-1 { | container level-1 { | |||
| uses metric-cfg; | uses metric-cfg; | |||
| description "level-1 specific configuration"; | description "level-1 specific configuration"; | |||
| } | } | |||
| container level-2 { | container level-2 { | |||
| uses metric-cfg; | uses metric-cfg; | |||
| description "level-2 specific configuration"; | description "level-2 specific configuration"; | |||
| } | } | |||
| description "Metric IS-IS interface configuration."; | description "Metric IS-IS interface configuration."; | |||
| } | } | |||
| } | } | |||
| grouping interface-state { | grouping interface-state { | |||
| description | description | |||
| "IS-IS interface operational state."; | "IS-IS interface operational state."; | |||
| uses adjacency-state; | uses adjacency-state; | |||
| uses event-counters; | uses event-counters; | |||
| uses packet-counters; | uses packet-counters; | |||
| leaf discontinuity-time { | ||||
| type yang:date-and-time; | ||||
| description | ||||
| "The time on the most recent occasion at which any one | ||||
| or more of this IS-IS interfaces's counters suffered a | ||||
| discontinuity. If no such discontinuities have occurred | ||||
| since the IS-IS interface was last re-initialized, then | ||||
| this node contains the time the IS-IS interface was | ||||
| re-initialized which normally occurs when it was | ||||
| created."; | ||||
| } | ||||
| } | } | |||
| /* Grouping for the hostname database */ | /* Grouping for the hostname database */ | |||
| grouping hostname-db { | grouping hostname-db { | |||
| container hostnames { | container hostnames { | |||
| config false; | config false; | |||
| list hostname { | list hostname { | |||
| key system-id; | key system-id; | |||
| leaf system-id { | leaf system-id { | |||
| type system-id; | type system-id; | |||
| description | description | |||
| "system-id associated with the hostname."; | "system-id associated with the hostname."; | |||
| } | } | |||
| skipping to change at page 62, line 36 ¶ | skipping to change at page 66, line 25 ¶ | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Number of times we ran SPF at this level."; | "Number of times we ran SPF at this level."; | |||
| } | } | |||
| description | description | |||
| "List of supported levels."; | "List of supported levels."; | |||
| } | } | |||
| description | description | |||
| "List counters for the IS-IS protocol instance"; | "List counters for the IS-IS protocol instance"; | |||
| } | } | |||
| description "System counters grouping."; | description | |||
| "Grouping for IS-IS system counters"; | ||||
| } | } | |||
| grouping event-counters { | grouping event-counters { | |||
| container event-counters { | container event-counters { | |||
| config false; | config false; | |||
| leaf adjacency-changes { | leaf adjacency-changes { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "The number of times an adjacency state change has | "The number of times an adjacency state change has | |||
| occurred on this interface."; | occurred on this interface."; | |||
| skipping to change at page 65, line 44 ¶ | skipping to change at page 69, line 33 ¶ | |||
| type uint32; | type uint32; | |||
| description "Sent CSNP PDUs."; | description "Sent CSNP PDUs."; | |||
| } | } | |||
| description "Number of CSNP PDUs received/sent."; | description "Number of CSNP PDUs received/sent."; | |||
| } | } | |||
| container unknown { | container unknown { | |||
| leaf in { | leaf in { | |||
| type uint32; | type uint32; | |||
| description "Received unknown PDUs."; | description "Received unknown PDUs."; | |||
| } | } | |||
| leaf out { | ||||
| type uint32; | ||||
| description "Sent unknown PDUs."; | ||||
| } | ||||
| description "Number of unknown PDUs received/sent."; | description "Number of unknown PDUs received/sent."; | |||
| } | } | |||
| description | description | |||
| "List of packet counter for supported levels."; | "List of packet counter for supported levels."; | |||
| } | } | |||
| description "Packet counters per IS-IS level."; | description "Packet counters per IS-IS level."; | |||
| } | } | |||
| description | description | |||
| "Grouping for per IS-IS Level packet counters."; | "Grouping for per IS-IS Level packet counters."; | |||
| } | } | |||
| skipping to change at page 75, line 32 ¶ | skipping to change at page 79, line 17 ¶ | |||
| description | description | |||
| "Interface MTU"; | "Interface MTU"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping neighbor-extended-te-extensions { | grouping neighbor-extended-te-extensions { | |||
| description | description | |||
| "Grouping for TE attributes of a neighbor as defined | "Grouping for TE attributes of a neighbor as defined | |||
| in RFC7810"; | in RFC8570"; | |||
| container unidirectional-link-delay { | container unidirectional-link-delay { | |||
| description | description | |||
| "Container for the average delay | "Container for the average delay | |||
| from the local neighbor to the remote one."; | from the local neighbor to the remote one."; | |||
| leaf flags { | container flags { | |||
| type bits { | leaf-list unidirectional-link-delay-subtlv-flags { | |||
| bit A { | type identityref { | |||
| position 7; | base unidirectional-link-delay-subtlv-flag; | |||
| description | } | |||
| "The A bit represents the Anomalous (A) bit. | description | |||
| The A bit is set when the measured value of | "This list contains identities for the bits | |||
| this parameter exceeds its configured | which are set."; | |||
| maximum threshold. | ||||
| The A bit is cleared when the measured value | ||||
| falls below its configured reuse threshold. | ||||
| If the A bit is clear, | ||||
| the value represents steady-state link performance."; | ||||
| } | ||||
| } | } | |||
| description | description | |||
| "Flags."; | "unidirectional-link-delay subTLV flags."; | |||
| } | } | |||
| leaf value { | leaf value { | |||
| type uint32; | type uint32; | |||
| units usec; | units usec; | |||
| description | description | |||
| "Delay value expressed in microseconds."; | "Delay value expressed in microseconds."; | |||
| } | } | |||
| } | } | |||
| container min-max-unidirectional-link-delay { | container min-max-unidirectional-link-delay { | |||
| description | description | |||
| "Container for the min and max delay | "Container for the min and max delay | |||
| from the local neighbor to the remote one."; | from the local neighbor to the remote one."; | |||
| leaf flags { | container flags { | |||
| type bits { | leaf-list min-max-unidirectional-link-delay-subtlv-flags { | |||
| bit A { | type identityref { | |||
| position 7; | base min-max-unidirectional-link-delay-subtlv-flag; | |||
| } | ||||
| description | description | |||
| "The A bit represents the Anomalous (A) bit. | "This list contains identities for the bits which are | |||
| The A bit is set when the measured value of | set."; | |||
| this parameter exceeds its configured | ||||
| maximum threshold. | ||||
| The A bit is cleared when the measured value | ||||
| falls below its configured reuse threshold. | ||||
| If the A bit is clear, | ||||
| the value represents steady-state link performance."; | ||||
| } | ||||
| } | } | |||
| description | description | |||
| "Flags."; | "min-max-unidirectional-link-delay subTLV flags."; | |||
| } | } | |||
| leaf min-value { | leaf min-value { | |||
| type uint32; | type uint32; | |||
| units usec; | units usec; | |||
| description | description | |||
| "Minimum delay value expressed in microseconds."; | "Minimum delay value expressed in microseconds."; | |||
| } | } | |||
| leaf max-value { | leaf max-value { | |||
| type uint32; | type uint32; | |||
| units usec; | units usec; | |||
| skipping to change at page 77, line 13 ¶ | skipping to change at page 80, line 34 ¶ | |||
| description | description | |||
| "Container for the average delay variation | "Container for the average delay variation | |||
| from the local neighbor to the remote one."; | from the local neighbor to the remote one."; | |||
| leaf value { | leaf value { | |||
| type uint32; | type uint32; | |||
| units usec; | units usec; | |||
| description | description | |||
| "Delay variation value expressed in microseconds."; | "Delay variation value expressed in microseconds."; | |||
| } | } | |||
| } | } | |||
| container unidirectional-link-loss{ | container unidirectional-link-loss { | |||
| description | description | |||
| "Container for the packet loss | "Container for the packet loss | |||
| from the local neighbor to the remote one."; | from the local neighbor to the remote one."; | |||
| leaf flags { | container flags { | |||
| type bits { | leaf-list unidirectional-link-loss-subtlv-flags { | |||
| bit A { | type identityref { | |||
| position 7; | base unidirectional-link-loss-subtlv-flag; | |||
| } | ||||
| description | description | |||
| "The A bit represents the Anomalous (A) bit. | "This list contains identities for the bits which are | |||
| The A bit is set when the measured value of | set."; | |||
| this parameter exceeds its configured | ||||
| maximum threshold. | ||||
| The A bit is cleared when the measured value | ||||
| falls below its configured reuse threshold. | ||||
| If the A bit is clear, | ||||
| the value represents steady-state link performance."; | ||||
| } | ||||
| } | } | |||
| description | description | |||
| "Flags."; | "unidirectional-link-loss subTLV flags."; | |||
| } | } | |||
| leaf value { | leaf value { | |||
| type uint32; | type uint32; | |||
| units percent; | units percent; | |||
| description | description | |||
| "Link packet loss expressed as a percentage | "Link packet loss expressed as a percentage | |||
| of the total traffic sent over a configurable interval."; | of the total traffic sent over a configurable interval."; | |||
| } | } | |||
| } | } | |||
| container unidirectional-link-residual-bandwidth { | container unidirectional-link-residual-bandwidth { | |||
| skipping to change at page 83, line 42 ¶ | skipping to change at page 87, line 9 ¶ | |||
| description | description | |||
| "List of topologies supported"; | "List of topologies supported"; | |||
| leaf mt-id { | leaf mt-id { | |||
| type uint16 { | type uint16 { | |||
| range "0 .. 4095"; | range "0 .. 4095"; | |||
| } | } | |||
| description | description | |||
| "Multi-Topology identifier of topology."; | "Multi-Topology identifier of topology."; | |||
| } | } | |||
| container attributes { | ||||
| leaf attributes { | leaf-list flags { | |||
| type bits { | type identityref { | |||
| bit overload { | base tlv229-flag; | |||
| description | } | |||
| "If set, the originator is overloaded, | description | |||
| and must be avoided in path calculation."; | "This list contains identities for the bits which are | |||
| } | set."; | |||
| bit attached { | ||||
| description | ||||
| "If set, the originator is attached to | ||||
| another area using the referred metric."; | ||||
| } | } | |||
| } | description | |||
| description | "TLV 229 flags."; | |||
| "Attributes of the LSP for the associated | ||||
| topology."; | ||||
| } | } | |||
| } | } | |||
| description | description | |||
| "IS-IS node topology information container - | "IS-IS node topology information container - | |||
| IS-IS reference is TLV 229."; | IS-IS reference is TLV 229."; | |||
| } | } | |||
| description "Grouping for TLV229."; | description "Grouping for TLV229."; | |||
| } | } | |||
| grouping tlv242-router-capabilities { | grouping tlv242-router-capabilities { | |||
| container router-capabilities { | container router-capabilities { | |||
| list router-capability { | list router-capability { | |||
| leaf flags { | container flags { | |||
| type bits { | leaf-list router-capability-flags { | |||
| bit flooding { | type identityref { | |||
| position 0; | base router-capability-flag; | |||
| description | } | |||
| "If the S bit is set, the IS-IS Router CAPABILITY | ||||
| TLV MUST be flooded across the entire routing | ||||
| domain. If the S bit is clear, the TLV MUST NOT | ||||
| be leaked between levels. This bit MUST NOT | ||||
| be altered during the TLV leaking."; | ||||
| } | ||||
| bit down { | ||||
| position 1; | ||||
| description | description | |||
| "When the IS-IS Router CAPABILITY TLV is leaked | "This list contains identities for the bits which are | |||
| from level-2 to level-1, the D bit MUST be set. | set."; | |||
| Otherwise, this bit MUST be clear. IS-IS Router | ||||
| capability TLVs with the D bit set MUST NOT be | ||||
| leaked from level-1 to level-2 in to prevent | ||||
| TLV looping."; | ||||
| } | ||||
| } | } | |||
| description "Router Capability Flags"; | description | |||
| "Router capability flags."; | ||||
| } | } | |||
| container node-tags { | container node-tags { | |||
| if-feature node-tag; | if-feature node-tag; | |||
| list node-tag { | list node-tag { | |||
| leaf tag { | leaf tag { | |||
| type uint32; | type uint32; | |||
| description "Node tag value."; | description "Node tag value."; | |||
| } | } | |||
| description "List of tags."; | description "List of tags."; | |||
| } | } | |||
| description "Container for node admin tags"; | description "Container for node admin tags"; | |||
| } | } | |||
| uses unknown-tlvs; | uses unknown-tlvs; | |||
| leaf binary { | ||||
| type binary; | ||||
| description | ||||
| "Binary encoding of the IS-IS node capabilities"; | ||||
| } | ||||
| description | description | |||
| "IS-IS node capabilities. This list element may | "IS-IS node capabilities. This list element may | |||
| be extended with detailed information - IS-IS | be extended with detailed information - IS-IS | |||
| reference is TLV 242."; | reference is TLV 242."; | |||
| } | } | |||
| description "List of router capability TLVs."; | description "List of router capability TLVs."; | |||
| } | } | |||
| description "Grouping for TLV242."; | description "Grouping for TLV242."; | |||
| } | } | |||
| skipping to change at page 87, line 15 ¶ | skipping to change at page 90, line 7 ¶ | |||
| type uint16; | type uint16; | |||
| units "seconds"; | units "seconds"; | |||
| description | description | |||
| "Remaining lifetime (in seconds) until LSP expiration."; | "Remaining lifetime (in seconds) until LSP expiration."; | |||
| } | } | |||
| leaf sequence { | leaf sequence { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "This leaf describes the sequence number of the LSP."; | "This leaf describes the sequence number of the LSP."; | |||
| } | } | |||
| leaf attributes { | container attributes { | |||
| type bits { | leaf-list lsp-flags { | |||
| bit partitioned { | type identityref { | |||
| description "Originator partition repair supported"; | base lsp-flag; | |||
| } | } | |||
| bit attached-error { | description | |||
| description | "This list contains identities for the bits which are | |||
| "If set, the originator is attached to | set."; | |||
| another area using the referred metric."; | ||||
| } | ||||
| bit attached-expense { | ||||
| description | ||||
| "If set, the originator is attached to | ||||
| another area using the referred metric."; | ||||
| } | ||||
| bit attached-delay { | ||||
| description | ||||
| "If set, the originator is attached to | ||||
| another area using the referred metric."; | ||||
| } | ||||
| bit attached-default { | ||||
| description | ||||
| "If set, the originator is attached to | ||||
| another area using the referred metric."; | ||||
| } | ||||
| bit overload { | ||||
| description | ||||
| "If set, the originator is overloaded, | ||||
| and must be avoided in path calculation."; | ||||
| } | } | |||
| } | description "LSP attributes."; | |||
| description "LSP attributes"; | ||||
| } | } | |||
| uses tlv132-ipv4-addresses; | uses tlv132-ipv4-addresses; | |||
| uses tlv232-ipv6-addresses; | uses tlv232-ipv6-addresses; | |||
| uses tlv134-ipv4-te-rid; | uses tlv134-ipv4-te-rid; | |||
| uses tlv140-ipv6-te-rid; | uses tlv140-ipv6-te-rid; | |||
| uses tlv129-protocols; | uses tlv129-protocols; | |||
| uses tlv137-hostname; | uses tlv137-hostname; | |||
| uses tlv10-authentication; | uses tlv10-authentication; | |||
| uses tlv229-mt; | uses tlv229-mt; | |||
| skipping to change at page 91, line 4 ¶ | skipping to change at page 93, line 21 ¶ | |||
| leaf level { | leaf level { | |||
| type level-number; | type level-number; | |||
| description "LSDB level number (1 or 2)"; | description "LSDB level number (1 or 2)"; | |||
| } | } | |||
| list lsp { | list lsp { | |||
| key lsp-id; | key lsp-id; | |||
| uses lsp-entry; | uses lsp-entry; | |||
| description "List of LSPs in LSDB"; | description "List of LSPs in LSDB"; | |||
| } | } | |||
| description "List of LSPs for the LSDB level container"; | description "List of LSPs for the LSDB level container"; | |||
| } | } | |||
| description "IS-IS Link State database container"; | description "IS-IS Link State database container"; | |||
| } | } | |||
| } | } | |||
| /* Augmentations */ | /* Augmentations */ | |||
| augment "/rt:routing/" | augment "/rt:routing/" | |||
| +"rt:ribs/rt:rib/rt:routes/rt:route" { | +"rt:ribs/rt:rib/rt:routes/rt:route" { | |||
| when "rt:source-protocol = 'isis:isis'" { | when "rt:source-protocol = 'isis:isis'" { | |||
| description "IS-IS-specific route attributes."; | description "IS-IS-specific route attributes."; | |||
| } | } | |||
| uses route-content; | uses route-content; | |||
| description | description | |||
| "This augments route object in RIB with IS-IS-specific | "This augments route object in RIB with IS-IS-specific | |||
| attributes."; | attributes."; | |||
| } | } | |||
| augment "/if:interfaces/if:interface" { | augment "/if:interfaces/if:interface" { | |||
| leaf clns-mtu { | leaf clns-mtu { | |||
| if-feature osi-interface; | ||||
| type uint16; | type uint16; | |||
| description "CLNS MTU of the interface"; | description "CLNS MTU of the interface"; | |||
| } | } | |||
| description "ISO specific interface parameters."; | description "ISO specific interface parameters."; | |||
| } | } | |||
| augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
| +"rt:control-plane-protocol" { | +"rt:control-plane-protocol" { | |||
| when "rt:type = 'isis:isis'" { | when "rt:type = 'isis:isis'" { | |||
| description | description | |||
| "This augment is only valid when routing protocol | "This augment is only valid when routing protocol | |||
| instance type is 'isis'"; | instance type is 'isis'"; | |||
| } | } | |||
| description | description | |||
| "This augments a routing protocol instance with IS-IS | "This augments a routing protocol instance with IS-IS | |||
| specific parameters."; | specific parameters."; | |||
| skipping to change at page 96, line 4 ¶ | skipping to change at page 98, line 24 ¶ | |||
| 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 "Size of the LSP PDU"; | description "Size of the LSP PDU"; | |||
| } | } | |||
| leaf lsp-id { | leaf lsp-id { | |||
| type lsp-id; | type lsp-id; | |||
| description "LSP ID"; | description "LSP ID"; | |||
| } | } | |||
| description | description | |||
| "This notification is sent when we attempt to propagate | "This notification is sent when we attempt to propagate | |||
| an LSP that is larger than the dataLinkBlockSize for the | an LSP that is larger than the dataLinkBlockSize (ISO10589) | |||
| circuit. The notification generation must be throttled | for the circuit. The notification generation must be | |||
| with at least 5 seconds between successive | throttled with at least 5 seconds between successive | |||
| notifications."; | notifications."; | |||
| } | } | |||
| notification if-state-change { | notification if-state-change { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf state { | leaf state { | |||
| type if-state-type; | type if-state-type; | |||
| description "Interface state."; | description "Interface state."; | |||
| skipping to change at page 103, line 4 ¶ | skipping to change at page 105, line 22 ¶ | |||
| description "LSP ID"; | description "LSP ID"; | |||
| } | } | |||
| leaf sequence { | leaf sequence { | |||
| type uint32; | type uint32; | |||
| description "Sequence number of the received LSP."; | description "Sequence number of the received LSP."; | |||
| } | } | |||
| leaf send-timestamp { | leaf send-timestamp { | |||
| type yang:timestamp; | type yang:timestamp; | |||
| description "Timestamp when our LSP was regenerated."; | description "Timestamp when our LSP was regenerated."; | |||
| } | } | |||
| description | description | |||
| "This notification is sent when an LSP is regenerated. | "This notification is sent when an LSP is regenerated. | |||
| The notification generation must be throttled with at | The notification generation must be throttled with at | |||
| least 5 seconds between successive notifications."; | least 5 seconds between successive notifications."; | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 7. Security Considerations | 7. Security Considerations | |||
| The YANG module specified in this document defines a schema for data | The YANG modules specified in this document define a schema for data | |||
| that is designed to be accessed via network management protocols such | that is designed to be accessed via network management protocols such | |||
| as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer | as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer | |||
| is the secure transport layer, and the mandatory-to-implement secure | is the secure transport layer, and the mandatory-to-implement secure | |||
| transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer | transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer | |||
| is HTTPS, and the mandatory-to-implement secure transport is TLS | is HTTPS, and the mandatory-to-implement secure transport is TLS | |||
| [RFC8446] | [RFC8446]. | |||
| The Network Configuration Access Control Model (NACM) [RFC8341] | The NETCONF Access Control Model (NACM) [RFC8341] provides the means | |||
| provides the means to restrict access for particular NETCONF or | to restrict access for particular NETCONF or RESTCONF users to a pre- | |||
| RESTCONF users to a preconfigured subset of all available NETCONF or | configured subset of all available NETCONF or RESTCONF protocol | |||
| RESTCONF protocol operations and content. | operations and content. | |||
| There are a number of data nodes defined in this YANG module that are | There are a number of data nodes defined in ietf-isis.yang module | |||
| writable/creatable/deletable (i.e., config true, which is the | that are writable/creatable/deletable (i.e., config true, which is | |||
| default). These data nodes may be considered sensitive or vulnerable | the default). These data nodes may be considered sensitive or | |||
| in some network environments. Write operations (e.g., edit-config) | vulnerable in some network environments. Write operations (e.g., | |||
| to these data nodes without proper protection can have a negative | edit-config) to these data nodes without proper protection can have a | |||
| effect on network operations. For IS-IS, the ability to modify IS-IS | negative effect on network operations. Writable data node represent | |||
| configuration will allow the entire IS-IS domain to be compromised | configuration of each instance and interface. These correspond to | |||
| including creating adjacencies with unauthorized routers to misroute | the following schema nodes: | |||
| traffic, isolate routers, or mount a massive Denial-of-Service (DoS) | ||||
| attack. A user should consider all the configuration nodes are | ||||
| sensible. | ||||
| Some of the readable data nodes in this YANG module may be considered | /isis | |||
| sensitive or vulnerable in some network environments. It is thus | ||||
| important to control read access (e.g., via get, get-config, or | /isis/interfaces/interface[name] | |||
| notification) to these data nodes. The exposure of the Link State | ||||
| Database (LSDB) will expose the detailed topology of the network | For IS-IS, the ability to modify IS-IS configuration will allow the | |||
| including authentication parameters. Implementations MUST NOT | entire IS-IS domain to be compromised including forming adjacencies | |||
| provide a configured authentication key in a clear text format in | with unauthorized routers to misroute traffic or mount a massive | |||
| response to any request (e.g., via get, get-config). | Denial-of-Service (DoS) attack. For example, adding IS-IS on any | |||
| unprotected interface could allow an IS-IS adjacency to be formed | ||||
| with an unauthorized and malicious neighbor. Once an adjacency is | ||||
| formed, traffic could be hijacked. As a simpler example, a Denial- | ||||
| of-Service attack could be mounted by changing the cost of an IS-IS | ||||
| interface to be asymmetric such that a hard routing loop ensues. In | ||||
| general, unauthorized modification of most IS-IS features will pose | ||||
| there own set of security risks and the "Security Considerations" in | ||||
| the respective reference RFCs should be consulted. | ||||
| Some of the readable data nodes in the ietf-isi.yang module may be | ||||
| considered sensitive or vulnerable in some network environments. It | ||||
| is thus important to control read access (e.g., via get, get-config, | ||||
| or notification) to these data nodes. The exposure of the Link State | ||||
| Database (LSDB) will expose the detailed topology of the network. | ||||
| The Link State Database (LSDB) is represented by the following schema | ||||
| node: | ||||
| /isis/database | ||||
| Exposure of the Link State Database includes information beyond the | ||||
| scope of the IS-IS router and this may be undesirable since exposure | ||||
| may facilitate other attacks. Additionally, the complete IP network | ||||
| topology and, if deployed, the traffic engineering topology of the | ||||
| IS-IS domain can be reconstucted. Network operators may consider | ||||
| their topologies to be sensitive confidential data. | ||||
| For IS-IS authentication, configuration is supported via the | For IS-IS authentication, configuration is supported via the | |||
| specification of key-chain [RFC8177] or the direction specification | specification of key-chain [RFC8177] or the direction specification | |||
| of key and authentication algorithm. Hence, authentication | of key and authentication algorithm. Hence, authentification | |||
| configuration using the "auth-table-trailer" case in the | configuration using the "auth-table-trailer" case in the | |||
| "authentication" container inherits the security considerations of | "authentication" container inherits the security considerations of | |||
| [RFC8177]. This includes the considerations with respect to the | [RFC8177]. This includes the considerations with respect to the | |||
| local storage and handling of authentication keys. | local storage and handling of authentication keys. | |||
| Some of the RPC operations in this YANG module may be considered | Some of the RPC operations in this YANG module may be considered | |||
| sensitive or vulnerable in some network environments. It is thus | sensitive or vulnerable in some network environments. It is thus | |||
| important to control access to these operations. The OSPF YANG | important to control access to these operations. The IS-IS YANG | |||
| module support the "clear-adjacency" and "clear-database" RPCs. If | module support the "clear-adjacency" and "clear-database" RPCs. If | |||
| access to either of these is compromised, they can result in | access too either of these is compromised, they can result in | |||
| temporary network outages be employed to mount DoS attacks. | temporary network outages be employed to mount DoS attacks. | |||
| The actual authentication key data (whether locally specified or part | ||||
| of a key-chain) is sensitive and needs to be kept secret from | ||||
| unauthorized parties; compromise of the key data would allow an | ||||
| attacker to forge IS-IS traffic that would be accepted as authentic, | ||||
| potentially compromising the entirety IS-IS domain. | ||||
| 8. Contributors | 8. Contributors | |||
| Authors would like to thank Kiran Agrahara Sreenivasa, Dean | Authors would like to thank Kiran Agrahara Sreenivasa, Dean | |||
| Bogdanovic, Yingzhen Qu, Yi Yang, Jeff Tanstura for their major | Bogdanovic, Yingzhen Qu, Yi Yang, Jeff Tanstura for their major | |||
| contributions to the draft. | contributions to the draft. | |||
| 9. IANA Considerations | 9. IANA Considerations | |||
| The IANA is requested to assign two new URIs from the IETF XML | The IANA is requested to assign two new URIs from the IETF XML | |||
| registry ([RFC3688]). Authors are suggesting the following URI: | registry [RFC3688]. Authors are suggesting the following URI: | |||
| URI: urn:ietf:params:xml:ns:yang:ietf-isis | URI: urn:ietf:params:xml:ns:yang:ietf-isis | |||
| Registrant Contact: The IESG | Registrant Contact: The IESG | |||
| XML: N/A, the requested URI is an XML namespace | XML: N/A, the requested URI is an XML namespace | |||
| This document also requests one new YANG module name in the YANG | This document also requests one new YANG module name in the YANG | |||
| Module Names registry ([RFC6020]) with the following suggestion: | Module Names registry [RFC6020] with the following suggestion: | |||
| name: ietf-isis | name: ietf-isis | |||
| namespace: urn:ietf:params:xml:ns:yang:ietf-isis | namespace: urn:ietf:params:xml:ns:yang:ietf-isis | |||
| prefix: isis | prefix: isis | |||
| reference: RFC XXXX | reference: RFC XXXX | |||
| 10. References | 10. References | |||
| 10.1. Normative References | 10.1. Normative References | |||
| [I-D.ietf-bfd-yang] | [I-D.ietf-bfd-yang] | |||
| Rahman, R., Zheng, L., Jethanandani, M., Networks, J., and | Rahman, R., Zheng, L., Jethanandani, M., Networks, J., and | |||
| G. Mirsky, "YANG Data Model for Bidirectional Forwarding | G. Mirsky, "YANG Data Model for Bidirectional Forwarding | |||
| Detection (BFD)", draft-ietf-bfd-yang-17 (work in | Detection (BFD)", draft-ietf-bfd-yang-17 (work in | |||
| progress), August 2018. | progress), August 2018. | |||
| [ISO-10589] | [ISO-10589] | |||
| ISO, , "Intermediate System to Intermediate System intra- | "Intermediate System to Intermediate System intra- domain | |||
| domain routing information exchange protocol for use in | routeing information exchange protocol for use in | |||
| conjunction with the protocol for providing the | conjunction with the protocol for providing the | |||
| connectionless-mode network service (ISO 8473)", | connectionless-mode network service (ISO 8473)", | |||
| International Standard 10589: 2002, Second Edition, 2002. | International Standard 10589: 2002, Second Edition, 2002. | |||
| [RFC1195] Callon, R., "Use of OSI IS-IS for routing in TCP/IP and | [RFC1195] Callon, R., "Use of OSI IS-IS for routing in TCP/IP and | |||
| dual environments", RFC 1195, DOI 10.17487/RFC1195, | dual environments", RFC 1195, DOI 10.17487/RFC1195, | |||
| December 1990, <https://www.rfc-editor.org/info/rfc1195>. | December 1990, <https://www.rfc-editor.org/info/rfc1195>. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, <https://www.rfc- | DOI 10.17487/RFC2119, March 1997, | |||
| editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC2966] Li, T., Przygienda, T., and H. Smit, "Domain-wide Prefix | ||||
| Distribution with Two-Level IS-IS", RFC 2966, | ||||
| DOI 10.17487/RFC2966, October 2000, | ||||
| <https://www.rfc-editor.org/info/rfc2966>. | ||||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
| DOI 10.17487/RFC3688, January 2004, <https://www.rfc- | DOI 10.17487/RFC3688, January 2004, | |||
| editor.org/info/rfc3688>. | <https://www.rfc-editor.org/info/rfc3688>. | |||
| [RFC4090] Pan, P., Ed., Swallow, G., Ed., and A. Atlas, Ed., "Fast | ||||
| Reroute Extensions to RSVP-TE for LSP Tunnels", RFC 4090, | ||||
| DOI 10.17487/RFC4090, May 2005, | ||||
| <https://www.rfc-editor.org/info/rfc4090>. | ||||
| [RFC5029] Vasseur, JP. and S. Previdi, "Definition of an IS-IS Link | [RFC5029] Vasseur, JP. and S. Previdi, "Definition of an IS-IS Link | |||
| Attribute Sub-TLV", RFC 5029, DOI 10.17487/RFC5029, | Attribute Sub-TLV", RFC 5029, DOI 10.17487/RFC5029, | |||
| September 2007, <https://www.rfc-editor.org/info/rfc5029>. | September 2007, <https://www.rfc-editor.org/info/rfc5029>. | |||
| [RFC5120] Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi | [RFC5120] Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi | |||
| Topology (MT) Routing in Intermediate System to | Topology (MT) Routing in Intermediate System to | |||
| Intermediate Systems (IS-ISs)", RFC 5120, | Intermediate Systems (IS-ISs)", RFC 5120, | |||
| DOI 10.17487/RFC5120, February 2008, <https://www.rfc- | DOI 10.17487/RFC5120, February 2008, | |||
| editor.org/info/rfc5120>. | <https://www.rfc-editor.org/info/rfc5120>. | |||
| [RFC5130] Previdi, S., Shand, M., Ed., and C. Martin, "A Policy | [RFC5130] Previdi, S., Shand, M., Ed., and C. Martin, "A Policy | |||
| Control Mechanism in IS-IS Using Administrative Tags", | Control Mechanism in IS-IS Using Administrative Tags", | |||
| RFC 5130, DOI 10.17487/RFC5130, February 2008, | RFC 5130, DOI 10.17487/RFC5130, February 2008, | |||
| <https://www.rfc-editor.org/info/rfc5130>. | <https://www.rfc-editor.org/info/rfc5130>. | |||
| [RFC5286] Atlas, A., Ed. and A. Zinin, Ed., "Basic Specification for | [RFC5286] Atlas, A., Ed. and A. Zinin, Ed., "Basic Specification for | |||
| IP Fast Reroute: Loop-Free Alternates", RFC 5286, | IP Fast Reroute: Loop-Free Alternates", RFC 5286, | |||
| DOI 10.17487/RFC5286, September 2008, <https://www.rfc- | DOI 10.17487/RFC5286, September 2008, | |||
| editor.org/info/rfc5286>. | <https://www.rfc-editor.org/info/rfc5286>. | |||
| [RFC5301] McPherson, D. and N. Shen, "Dynamic Hostname Exchange | [RFC5301] McPherson, D. and N. Shen, "Dynamic Hostname Exchange | |||
| Mechanism for IS-IS", RFC 5301, DOI 10.17487/RFC5301, | Mechanism for IS-IS", RFC 5301, DOI 10.17487/RFC5301, | |||
| October 2008, <https://www.rfc-editor.org/info/rfc5301>. | October 2008, <https://www.rfc-editor.org/info/rfc5301>. | |||
| [RFC5305] Li, T. and H. Smit, "IS-IS Extensions for Traffic | [RFC5305] Li, T. and H. Smit, "IS-IS Extensions for Traffic | |||
| Engineering", RFC 5305, DOI 10.17487/RFC5305, October | Engineering", RFC 5305, DOI 10.17487/RFC5305, October | |||
| 2008, <https://www.rfc-editor.org/info/rfc5305>. | 2008, <https://www.rfc-editor.org/info/rfc5305>. | |||
| [RFC5306] Shand, M. and L. Ginsberg, "Restart Signaling for IS-IS", | [RFC5306] Shand, M. and L. Ginsberg, "Restart Signaling for IS-IS", | |||
| RFC 5306, DOI 10.17487/RFC5306, October 2008, | RFC 5306, DOI 10.17487/RFC5306, October 2008, | |||
| <https://www.rfc-editor.org/info/rfc5306>. | <https://www.rfc-editor.org/info/rfc5306>. | |||
| [RFC5307] Kompella, K., Ed. and Y. Rekhter, Ed., "IS-IS Extensions | ||||
| in Support of Generalized Multi-Protocol Label Switching | ||||
| (GMPLS)", RFC 5307, DOI 10.17487/RFC5307, October 2008, | ||||
| <https://www.rfc-editor.org/info/rfc5307>. | ||||
| [RFC5308] Hopps, C., "Routing IPv6 with IS-IS", RFC 5308, | [RFC5308] Hopps, C., "Routing IPv6 with IS-IS", RFC 5308, | |||
| DOI 10.17487/RFC5308, October 2008, <https://www.rfc- | DOI 10.17487/RFC5308, October 2008, | |||
| editor.org/info/rfc5308>. | <https://www.rfc-editor.org/info/rfc5308>. | |||
| [RFC5443] Jork, M., Atlas, A., and L. Fang, "LDP IGP | ||||
| Synchronization", RFC 5443, DOI 10.17487/RFC5443, March | ||||
| 2009, <https://www.rfc-editor.org/info/rfc5443>. | ||||
| [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | |||
| (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, | (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, | |||
| <https://www.rfc-editor.org/info/rfc5880>. | <https://www.rfc-editor.org/info/rfc5880>. | |||
| [RFC5881] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | [RFC5881] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | |||
| (BFD) for IPv4 and IPv6 (Single Hop)", RFC 5881, | (BFD) for IPv4 and IPv6 (Single Hop)", RFC 5881, | |||
| DOI 10.17487/RFC5881, June 2010, <https://www.rfc- | DOI 10.17487/RFC5881, June 2010, | |||
| editor.org/info/rfc5881>. | <https://www.rfc-editor.org/info/rfc5881>. | |||
| [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | |||
| the Network Configuration Protocol (NETCONF)", RFC 6020, | the Network Configuration Protocol (NETCONF)", RFC 6020, | |||
| DOI 10.17487/RFC6020, October 2010, <https://www.rfc- | DOI 10.17487/RFC6020, October 2010, | |||
| editor.org/info/rfc6020>. | <https://www.rfc-editor.org/info/rfc6020>. | |||
| [RFC6119] Harrison, J., Berger, J., and M. Bartlett, "IPv6 Traffic | [RFC6119] Harrison, J., Berger, J., and M. Bartlett, "IPv6 Traffic | |||
| Engineering in IS-IS", RFC 6119, DOI 10.17487/RFC6119, | Engineering in IS-IS", RFC 6119, DOI 10.17487/RFC6119, | |||
| February 2011, <https://www.rfc-editor.org/info/rfc6119>. | February 2011, <https://www.rfc-editor.org/info/rfc6119>. | |||
| [RFC6232] Wei, F., Qin, Y., Li, Z., Li, T., and J. Dong, "Purge | [RFC6232] Wei, F., Qin, Y., Li, Z., Li, T., and J. Dong, "Purge | |||
| Originator Identification TLV for IS-IS", RFC 6232, | Originator Identification TLV for IS-IS", RFC 6232, | |||
| DOI 10.17487/RFC6232, May 2011, <https://www.rfc- | DOI 10.17487/RFC6232, May 2011, | |||
| editor.org/info/rfc6232>. | <https://www.rfc-editor.org/info/rfc6232>. | |||
| [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | |||
| and A. Bierman, Ed., "Network Configuration Protocol | and A. Bierman, Ed., "Network Configuration Protocol | |||
| (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | |||
| <https://www.rfc-editor.org/info/rfc6241>. | <https://www.rfc-editor.org/info/rfc6241>. | |||
| [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure | [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure | |||
| Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, | Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, | |||
| <https://www.rfc-editor.org/info/rfc6242>. | <https://www.rfc-editor.org/info/rfc6242>. | |||
| skipping to change at page 107, line 10 ¶ | skipping to change at page 110, line 33 ¶ | |||
| [RFC7490] Bryant, S., Filsfils, C., Previdi, S., Shand, M., and N. | [RFC7490] Bryant, S., Filsfils, C., Previdi, S., Shand, M., and N. | |||
| So, "Remote Loop-Free Alternate (LFA) Fast Reroute (FRR)", | So, "Remote Loop-Free Alternate (LFA) Fast Reroute (FRR)", | |||
| RFC 7490, DOI 10.17487/RFC7490, April 2015, | RFC 7490, DOI 10.17487/RFC7490, April 2015, | |||
| <https://www.rfc-editor.org/info/rfc7490>. | <https://www.rfc-editor.org/info/rfc7490>. | |||
| [RFC7794] Ginsberg, L., Ed., Decraene, B., Previdi, S., Xu, X., and | [RFC7794] Ginsberg, L., Ed., Decraene, B., Previdi, S., Xu, X., and | |||
| U. Chunduri, "IS-IS Prefix Attributes for Extended IPv4 | U. Chunduri, "IS-IS Prefix Attributes for Extended IPv4 | |||
| and IPv6 Reachability", RFC 7794, DOI 10.17487/RFC7794, | and IPv6 Reachability", RFC 7794, DOI 10.17487/RFC7794, | |||
| March 2016, <https://www.rfc-editor.org/info/rfc7794>. | March 2016, <https://www.rfc-editor.org/info/rfc7794>. | |||
| [RFC7810] Previdi, S., Ed., Giacalone, S., Ward, D., Drake, J., and | ||||
| Q. Wu, "IS-IS Traffic Engineering (TE) Metric Extensions", | ||||
| RFC 7810, DOI 10.17487/RFC7810, May 2016, | ||||
| <https://www.rfc-editor.org/info/rfc7810>. | ||||
| [RFC7917] Sarkar, P., Ed., Gredler, H., Hegde, S., Litkowski, S., | [RFC7917] Sarkar, P., Ed., Gredler, H., Hegde, S., Litkowski, S., | |||
| and B. Decraene, "Advertising Node Administrative Tags in | and B. Decraene, "Advertising Node Administrative Tags in | |||
| IS-IS", RFC 7917, DOI 10.17487/RFC7917, July 2016, | IS-IS", RFC 7917, DOI 10.17487/RFC7917, July 2016, | |||
| <https://www.rfc-editor.org/info/rfc7917>. | <https://www.rfc-editor.org/info/rfc7917>. | |||
| [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | |||
| RFC 7950, DOI 10.17487/RFC7950, August 2016, | RFC 7950, DOI 10.17487/RFC7950, August 2016, | |||
| <https://www.rfc-editor.org/info/rfc7950>. | <https://www.rfc-editor.org/info/rfc7950>. | |||
| [RFC7981] Ginsberg, L., Previdi, S., and M. Chen, "IS-IS Extensions | ||||
| for Advertising Router Information", RFC 7981, | ||||
| DOI 10.17487/RFC7981, October 2016, | ||||
| <https://www.rfc-editor.org/info/rfc7981>. | ||||
| [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | |||
| Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | |||
| <https://www.rfc-editor.org/info/rfc8040>. | <https://www.rfc-editor.org/info/rfc8040>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [RFC8177] Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J. | [RFC8177] Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J. | |||
| Zhang, "YANG Data Model for Key Chains", RFC 8177, | Zhang, "YANG Data Model for Key Chains", RFC 8177, | |||
| DOI 10.17487/RFC8177, June 2017, <https://www.rfc- | DOI 10.17487/RFC8177, June 2017, | |||
| editor.org/info/rfc8177>. | <https://www.rfc-editor.org/info/rfc8177>. | |||
| [RFC8294] Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger, | [RFC8294] Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger, | |||
| "Common YANG Data Types for the Routing Area", RFC 8294, | "Common YANG Data Types for the Routing Area", RFC 8294, | |||
| DOI 10.17487/RFC8294, December 2017, <https://www.rfc- | DOI 10.17487/RFC8294, December 2017, | |||
| editor.org/info/rfc8294>. | <https://www.rfc-editor.org/info/rfc8294>. | |||
| [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration | [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration | |||
| Access Control Model", STD 91, RFC 8341, | Access Control Model", STD 91, RFC 8341, | |||
| DOI 10.17487/RFC8341, March 2018, <https://www.rfc- | DOI 10.17487/RFC8341, March 2018, | |||
| editor.org/info/rfc8341>. | <https://www.rfc-editor.org/info/rfc8341>. | |||
| [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | |||
| and R. Wilton, "Network Management Datastore Architecture | and R. Wilton, "Network Management Datastore Architecture | |||
| (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, | (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, | |||
| <https://www.rfc-editor.org/info/rfc8342>. | <https://www.rfc-editor.org/info/rfc8342>. | |||
| [RFC8343] Bjorklund, M., "A YANG Data Model for Interface | [RFC8343] Bjorklund, M., "A YANG Data Model for Interface | |||
| Management", RFC 8343, DOI 10.17487/RFC8343, March 2018, | Management", RFC 8343, DOI 10.17487/RFC8343, March 2018, | |||
| <https://www.rfc-editor.org/info/rfc8343>. | <https://www.rfc-editor.org/info/rfc8343>. | |||
| [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for | [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for | |||
| Routing Management (NMDA Version)", RFC 8349, | Routing Management (NMDA Version)", RFC 8349, | |||
| DOI 10.17487/RFC8349, March 2018, <https://www.rfc- | DOI 10.17487/RFC8349, March 2018, | |||
| editor.org/info/rfc8349>. | <https://www.rfc-editor.org/info/rfc8349>. | |||
| [RFC8405] Decraene, B., Litkowski, S., Gredler, H., Lindem, A., | [RFC8405] Decraene, B., Litkowski, S., Gredler, H., Lindem, A., | |||
| Francois, P., and C. Bowers, "Shortest Path First (SPF) | Francois, P., and C. Bowers, "Shortest Path First (SPF) | |||
| Back-Off Delay Algorithm for Link-State IGPs", RFC 8405, | Back-Off Delay Algorithm for Link-State IGPs", RFC 8405, | |||
| DOI 10.17487/RFC8405, June 2018, <https://www.rfc- | DOI 10.17487/RFC8405, June 2018, | |||
| editor.org/info/rfc8405>. | <https://www.rfc-editor.org/info/rfc8405>. | |||
| [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | |||
| Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | |||
| <https://www.rfc-editor.org/info/rfc8446>. | <https://www.rfc-editor.org/info/rfc8446>. | |||
| 10.2. Informative References | [RFC8570] Ginsberg, L., Ed., Previdi, S., Ed., Giacalone, S., Ward, | |||
| D., Drake, J., and Q. Wu, "IS-IS Traffic Engineering (TE) | ||||
| Metric Extensions", RFC 8570, DOI 10.17487/RFC8570, March | ||||
| 2019, <https://www.rfc-editor.org/info/rfc8570>. | ||||
| [RFC5443] Jork, M., Atlas, A., and L. Fang, "LDP IGP | 10.2. Informative References | |||
| Synchronization", RFC 5443, DOI 10.17487/RFC5443, March | ||||
| 2009, <https://www.rfc-editor.org/info/rfc5443>. | ||||
| [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", | [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", | |||
| BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | |||
| <https://www.rfc-editor.org/info/rfc8340>. | <https://www.rfc-editor.org/info/rfc8340>. | |||
| Appendix A. Example of IS-IS configuration in XML | Appendix A. Example of IS-IS configuration in XML | |||
| This section gives an example of configuration of an IS-IS instance | This section gives an example of configuration of an IS-IS instance | |||
| on a device. The example is written in XML. | on a device. The example is written in XML. | |||
| <?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | |||
| <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> | <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> | |||
| <routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> | <routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> | |||
| <name>SLI</name> | <name>SLI</name> | |||
| <router-id>1.1.1.1</router-id> | <router-id>1.1.1.1</router-id> | |||
| <control-plane-protocols> | <control-plane-protocols> | |||
| <control-plane-protocol> | <control-plane-protocol> | |||
| <name>ISIS-example</name> | <name>ISIS-example</name> | |||
| <description/> | <description/> | |||
| <type> | <type> | |||
| <type | <type xmlns:isis="urn:ietf:params:xml:ns:yang:ietf-isis"> | |||
| xmlns:isis="urn:ietf:params:xml:ns:yang:ietf-isis"> | ||||
| isis:isis | isis:isis | |||
| </type> | </type> | |||
| </type> | </type> | |||
| <isis xmlns="urn:ietf:params:xml:ns:yang:ietf-isis"> | <isis xmlns="urn:ietf:params:xml:ns:yang:ietf-isis"> | |||
| <enable>true</enable> | <enable>true</enable> | |||
| <level-type>level-2</level-type> | <level-type>level-2</level-type> | |||
| <system-id>87FC.FCDF.4432</system-id> | <system-id>87FC.FCDF.4432</system-id> | |||
| <area-address>49.0001</area-address> | <area-address>49.0001</area-address> | |||
| <mpls> | <mpls> | |||
| <te-rid> | <te-rid> | |||
| <ipv4-router-id>192.0.2.1</ipv4-router-id> | <ipv4-router-id>192.0.2.1</ipv4-router-id> | |||
| </te-rid> | </te-rid> | |||
| skipping to change at page 109, line 46 ¶ | skipping to change at page 113, line 21 ¶ | |||
| <name>Loopback0</name> | <name>Loopback0</name> | |||
| <tag>200</tag> | <tag>200</tag> | |||
| <metric> | <metric> | |||
| <value>0</value> | <value>0</value> | |||
| </metric> | </metric> | |||
| <passive>true</passive> | <passive>true</passive> | |||
| </interface> | </interface> | |||
| <interface> | <interface> | |||
| <name>Eth1</name> | <name>Eth1</name> | |||
| <level-type>level-2</level-type> | <level-type>level-2</level-type> | |||
| <interface-type>point-to-point</interface-type> | ||||
| <interface-type>point-to-point</interface-type> | ||||
| <metric> | <metric> | |||
| <value>167890</value> | <value>167890</value> | |||
| </metric> | </metric> | |||
| </interface> | </interface> | |||
| </interfaces> | </interfaces> | |||
| </isis> | </isis> | |||
| </control-plane-protocol> | </control-plane-protocol> | |||
| </control-plane-protocols> | </control-plane-protocols> | |||
| </routing> | </routing> | |||
| <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"> | <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"> | |||
| <interface> | <interface> | |||
| <name>Loopback0</name> | <name>Loopback0</name> | |||
| <description/> | <description/> | |||
| <type | <type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type"> | |||
| xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type"> | ||||
| ianaift:softwareLoopback | ianaift:softwareLoopback | |||
| </type> | </type> | |||
| <link-up-down-trap-enable>enabled</link-up-down-trap-enable> | ||||
| <link-up-down-trap-enable>enabled</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"> | |||
| <address> | <address> | |||
| <ip>192.0.2.1</ip> | <ip>192.0.2.1</ip> | |||
| <prefix-length>32</prefix-length> | <prefix-length>32</prefix-length> | |||
| </address> | </address> | |||
| </ipv4> | </ipv4> | |||
| <ipv6 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> | <ipv6 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> | |||
| <address> | <address> | |||
| <ip>2001:DB8::1</ip> | <ip>2001:DB8::1</ip> | |||
| <prefix-length>128</prefix-length> | <prefix-length>128</prefix-length> | |||
| </address> | </address> | |||
| </ipv6> | </ipv6> | |||
| </interface> | </interface> | |||
| <interface> | <interface> | |||
| <name>Eth1</name> | <name>Eth1</name> | |||
| <description/> | <description/> | |||
| <type | <type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type"> | |||
| xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type"> | ||||
| ianaift:ethernetCsmacd | ianaift:ethernetCsmacd | |||
| </type> | </type> | |||
| <link-up-down-trap-enable>enabled</link-up-down-trap-enable> | ||||
| <link-up-down-trap-enable>enabled</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"> | |||
| <address> | <address> | |||
| <ip>198.51.100.1</ip> | <ip>198.51.100.1</ip> | |||
| <prefix-length>30</prefix-length> | <prefix-length>30</prefix-length> | |||
| </address> | </address> | |||
| </ipv4> | </ipv4> | |||
| <ipv6 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> | <ipv6 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> | |||
| <address> | <address> | |||
| <ip>2001:DB8:0:0:FF::1</ip> | <ip>2001:DB8:0:0:FF::1</ip> | |||
| <prefix-length>64</prefix-length> | <prefix-length>64</prefix-length> | |||
| End of changes. 143 change blocks. | ||||
| 985 lines changed or deleted | 1143 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/ | ||||