draft-ietf-isis-yang-isis-cfg-40.txt | draft-ietf-isis-yang-isis-cfg-41.txt | |||
---|---|---|---|---|
IS-IS Working Group S. Litkowski | IS-IS Working Group S. Litkowski | |||
Internet-Draft Cisco Systems | Internet-Draft Cisco Systems | |||
Intended status: Standards Track D. Yeung | Intended status: Standards Track D. Yeung | |||
Expires: March 31, 2020 Arrcus, Inc | Expires: April 10, 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 | |||
September 28, 2019 | October 08, 2019 | |||
YANG Data Model for IS-IS Protocol | YANG Data Model for IS-IS Protocol | |||
draft-ietf-isis-yang-isis-cfg-40 | draft-ietf-isis-yang-isis-cfg-41 | |||
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 the IS-IS protocol on network elements. | and manage the 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 46 ¶ | skipping to change at page 1, line 46 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at 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 March 31, 2020. | This Internet-Draft will expire on April 10, 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 | |||
(https://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 | |||
skipping to change at page 2, line 25 ¶ | skipping to change at page 2, line 25 ¶ | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 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. Multi-topology Parameters . . . . . . . . . . . . . . . . 10 | |||
2.3. Per-Level Parameters . . . . . . . . . . . . . . . . . . 10 | 2.3. Per-Level Parameters . . . . . . . . . . . . . . . . . . 10 | |||
2.4. Per-Interface Parameters . . . . . . . . . . . . . . . . 11 | 2.4. Per-Interface Parameters . . . . . . . . . . . . . . . . 12 | |||
2.5. Authentication Parameters . . . . . . . . . . . . . . . . 18 | 2.5. Authentication Parameters . . . . . . . . . . . . . . . . 19 | |||
2.6. IGP/LDP synchronization . . . . . . . . . . . . . . . . . 19 | 2.6. IGP/LDP synchronization . . . . . . . . . . . . . . . . . 19 | |||
2.7. ISO parameters . . . . . . . . . . . . . . . . . . . . . 19 | 2.7. ISO parameters . . . . . . . . . . . . . . . . . . . . . 20 | |||
2.8. IP FRR . . . . . . . . . . . . . . . . . . . . . . . . . 19 | 2.8. IP FRR . . . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
2.9. Operational States . . . . . . . . . . . . . . . . . . . 20 | 2.9. Operational States . . . . . . . . . . . . . . . . . . . 20 | |||
3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 20 | 3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 20 | 4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
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 . . . . . . . . . . . . . . . . . . . . . . 23 | |||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 105 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 108 | |||
8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 107 | 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 110 | |||
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 107 | 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 110 | |||
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 107 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 110 | |||
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 108 | 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 110 | |||
11.1. Normative References . . . . . . . . . . . . . . . . . . 108 | 11.1. Normative References . . . . . . . . . . . . . . . . . . 110 | |||
11.2. Informative References . . . . . . . . . . . . . . . . . 112 | 11.2. Informative References . . . . . . . . . . . . . . . . . 115 | |||
Appendix A. Example of IS-IS configuration in XML . . . . . . . 112 | Appendix A. Example of IS-IS configuration in XML . . . . . . . 115 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 114 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 117 | |||
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, the retrieval of IS-IS operational state. | instance, as well as, the retrieval of IS-IS 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 the NMDA (Network Management Datastore | The module is designed as per the 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 | |||
the ietf-routing module [RFC8349] with specific IS-IS parameters. | the ietf-routing module [RFC8349] with specific IS-IS parameters. | |||
The figure below describes the overall structure of the ietf-isis | The figure below describes the overall structure of the ietf-isis | |||
YANG module: | YANG 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 {osi-interface}? | +--rw clns-mtu? uint16 {osi-interface}? | |||
augment | augment /rt:routing/rt:control-plane-protocols/rt: | |||
| /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol: | control-plane-protocol: | |||
+--rw isis | +--rw isis | |||
+--rw enable? boolean {admin-control}? | +--rw enable? boolean {admin-control}? | |||
+--rw level-type? level | +--rw level-type? level | |||
+--rw system-id? system-id | +--rw system-id? system-id | |||
+--rw maximum-area-addresses? uint8 {maximum-area-addresses}? | +--rw maximum-area-addresses? uint8 {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 value? enumeration | ||||
| +--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 metric-type | |||
| +--ro hostname* [system-id] | | +--rw value? enumeration | |||
| ... | | +--rw level-1 | |||
+--ro database | | | ... | |||
| +--ro levels* [level] | | +--rw level-2 | |||
| ... | | ... | |||
+--ro local-rib | +--rw default-metric | |||
| +--ro route* [prefix] | | +--rw value? wide-metric | |||
| ... | | +--rw level-1 | |||
+--ro system-counters | | | ... | |||
| +--ro level* [level] | | +--rw level-2 | |||
| ... | | ... | |||
+--ro protected-routes | +--rw auto-cost {auto-cost}? | |||
| +--ro address-family-stats* [address-family prefix alternate] | | +--rw enable? boolean | |||
| ... | | +--rw reference-bandwidth? uint32 | |||
+--ro unprotected-routes | +--rw authentication | |||
| +--ro address-family-stats* [address-family prefix] | | +--rw (authentication-type)? | |||
| ... | | | ... | |||
+--ro protection-statistics* [frr-protection-method] | | +--rw level-1 | |||
| +--ro frr-protection-method identityref | | | ... | |||
| +--ro address-family-stats* [address-family] | | +--rw level-2 | |||
| ... | | ... | |||
+--rw discontinuity-time? yang:date-and-time | +--rw address-families {nlpid-control}? | |||
+--rw topologies {multi-topology}? | | +--rw address-family-list* [address-family] | |||
| +--rw topology* [name] | | ... | |||
| ... | +--rw mpls | |||
+--rw interfaces | | +--rw te-rid {te-rid}? | |||
+--rw interface* [name] | | | ... | |||
... | | +--rw ldp | |||
| ... | ||||
+--rw spf-control | ||||
| +--rw paths? uint16 {max-ecmp}? | ||||
| +--rw ietf-spf-delay {ietf-spf-delay}? | ||||
| ... | ||||
+--rw fast-reroute {fast-reroute}? | ||||
| +--rw lfa {lfa}? | ||||
+--rw preference | ||||
| +--rw (granularity)? | ||||
| ... | ||||
+--rw overload | ||||
| +--rw status? boolean | ||||
+--rw overload-max-metric {overload-max-metric}? | ||||
| +--rw timeout? rt-types:timer-value-seconds16 | ||||
+--ro spf-log | ||||
| +--ro event* [id] | ||||
| ... | ||||
+--ro lsp-log | ||||
| +--ro event* [id] | ||||
| ... | ||||
+--ro hostnames | ||||
| +--ro hostname* [system-id] | ||||
| ... | ||||
+--ro database | ||||
| +--ro levels* [level] | ||||
| ... | ||||
+--ro local-rib | ||||
| +--ro route* [prefix] | ||||
| ... | ||||
+--ro system-counters | ||||
| +--ro level* [level] | ||||
| ... | ||||
+--ro protected-routes | ||||
| +--ro address-family-stats* [address-family prefix alternate] | ||||
| ... | ||||
+--ro unprotected-routes | ||||
| +--ro prefixes* [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] | ||||
... | ||||
rpcs: | rpcs: | |||
+---x clear-adjacency | +---x clear-adjacency | |||
| +---w input | | +---w input | |||
| +---w routing-protocol-instance-name | | +---w routing-protocol-instance-name -> /rt:routing/ | |||
| ->/rt:routing/control-plane-protocols/control-plane-protocol/name | | | control-plane-protocols/ | |||
| +---w level? level | | | control-plane-protocol/name | |||
| +---w interface? if:interface-ref | | +---w level? level | |||
+---x clear-database | | +---w interface? if:interface-ref | |||
+---w input | +---x clear-database | |||
+---w routing-protocol-instance-name | +---w input | |||
-> /rt:routing/control-plane-protocols/control-plane-protocol/name | +---w routing-protocol-instance-name -> /rt:routing/ | |||
+---w level? level | | control-plane-protocols/ | |||
| control-plane-protocol/name | ||||
+---w level? level | ||||
notifications: | notifications: | |||
+---n database-overload | +---n database-overload | |||
| +--ro routing-protocol-name? | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| -> /rt:routing/control-plane-protocols/control-plane-protocol/name | | | control-plane-protocols/ | |||
| +--ro isis-level? level | | | control-plane-protocol/name | |||
| +--ro overload? enumeration | | +--ro isis-level? level | |||
+---n lsp-too-large | | +--ro overload? enumeration | |||
| +--ro routing-protocol-name? | +---n lsp-too-large | |||
| -> /rt:routing/control-plane-protocols/control-plane-protocol/name | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| +--ro isis-level? level | | control-plane-protocols/ | |||
| +--ro interface-name? if:interface-ref | | | 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 pdu-size? uint32 | | +--ro interface-level? level | |||
| +--ro lsp-id? lsp-id | | +--ro extended-circuit-id? extended-circuit-id | |||
+---n if-state-change | | +--ro pdu-size? uint32 | |||
| +--ro routing-protocol-name? | | +--ro lsp-id? lsp-id | |||
| -> /rt:routing/control-plane-protocols/control-plane-protocol/name | +---n if-state-change | |||
| +--ro isis-level? level | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| +--ro interface-name? if:interface-ref | | | control-plane-protocols/ | |||
| +--ro interface-level? level | | | control-plane-protocol/name | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro isis-level? level | |||
| +--ro state? if-state-type | | +--ro interface-name? if:interface-ref | |||
+---n corrupted-lsp-detected | | +--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 state? if-state-type | |||
| +--ro isis-level? level | +---n corrupted-lsp-detected | |||
| +--ro lsp-id? lsp-id | | +--ro routing-protocol-name? -> /rt:routing/ | |||
+---n attempt-to-exceed-max-sequence | | | control-plane-protocols/ | |||
| +--ro routing-protocol-name? | | | 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 id-len-mismatch | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| +--ro routing-protocol-name? | | | control-plane-protocols/ | |||
| -> /rt:routing/control-plane-protocols/control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro lsp-id? lsp-id | |||
| +--ro interface-level? level | +---n id-len-mismatch | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| +--ro pdu-field-len? uint8 | | | control-plane-protocols/ | |||
| +--ro raw-pdu? binary | | | control-plane-protocol/name | |||
+---n max-area-addresses-mismatch | | +--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 pdu-field-len? uint8 | |||
| +--ro interface-level? level | | +--ro raw-pdu? binary | |||
| +--ro extended-circuit-id? extended-circuit-id | +---n max-area-addresses-mismatch | |||
| +--ro max-area-addresses? uint8 | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| +--ro raw-pdu? binary | | | control-plane-protocols/ | |||
+---n own-lsp-purge | | | 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 max-area-addresses? uint8 | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro raw-pdu? binary | |||
| +--ro lsp-id? lsp-id | +---n own-lsp-purge | |||
+---n sequence-number-skipped | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| +--ro routing-protocol-name? | | | control-plane-protocols/ | |||
| -> /rt:routing/control-plane-protocols/control-plane-protocol/name | | | 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 sequence-number-skipped | |||
| +--ro routing-protocol-name? | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| -> /rt:routing/control-plane-protocols/control-plane-protocol/name | | | control-plane-protocols/ | |||
| +--ro isis-level? level | | | 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 lsp-id? lsp-id | |||
| +--ro routing-protocol-name? | +---n authentication-type-failure | |||
| -> /rt:routing/control-plane-protocols/control-plane-protocol/name | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| +--ro isis-level? level | | | control-plane-protocols/ | |||
| +--ro interface-name? if:interface-ref | | | 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 raw-pdu? binary | | +--ro interface-level? level | |||
+---n version-skew | | +--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 authentication-failure | |||
| +--ro isis-level? level | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| +--ro interface-name? if:interface-ref | | | control-plane-protocols/ | |||
| +--ro interface-level? level | | | 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 raw-pdu? binary | |||
| -> /rt:routing/control-plane-protocols/control-plane-protocol/name | +---n version-skew | |||
| +--ro isis-level? level | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| +--ro interface-name? if:interface-ref | | | control-plane-protocols/ | |||
| +--ro interface-level? level | | | 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 protocol-version? uint8 | |||
| +--ro isis-level? level | | +--ro raw-pdu? binary | |||
| +--ro interface-name? if:interface-ref | +---n area-mismatch | |||
| +--ro interface-level? level | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| +--ro extended-circuit-id? extended-circuit-id | | | control-plane-protocols/ | |||
| +--ro raw-pdu? binary | | | control-plane-protocol/name | |||
| +--ro reason? string | | +--ro isis-level? level | |||
+---n protocols-supported-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? -> /rt:routing/ | |||
| +--ro extended-circuit-id? extended-circuit-id | | | control-plane-protocols/ | |||
| +--ro raw-pdu? binary | | | control-plane-protocol/name | |||
| +--ro protocols* uint8 | | +--ro isis-level? level | |||
+---n lsp-error-detected | | +--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 reason? string | |||
| +--ro interface-level? level | +---n protocols-supported-mismatch | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| +--ro lsp-id? lsp-id | | | control-plane-protocols/ | |||
| +--ro raw-pdu? binary | | | control-plane-protocol/name | |||
| +--ro error-offset? uint32 | | +--ro isis-level? level | |||
| +--ro tlv-type? uint8 | | +--ro interface-name? if:interface-ref | |||
+---n adjacency-state-change | | +--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 protocols* uint8 | |||
| +--ro interface-name? if:interface-ref | +---n lsp-error-detected | |||
| +--ro interface-level? level | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| +--ro extended-circuit-id? extended-circuit-id | | | control-plane-protocols/ | |||
| +--ro neighbor? string | | | control-plane-protocol/name | |||
| +--ro neighbor-system-id? system-id | | +--ro isis-level? level | |||
| +--ro state? adj-state-type | | +--ro interface-name? if:interface-ref | |||
| +--ro reason? string | | +--ro interface-level? level | |||
+---n lsp-received | | +--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 raw-pdu? binary | |||
| +--ro isis-level? level | | +--ro error-offset? uint32 | |||
| +--ro interface-name? if:interface-ref | | +--ro tlv-type? uint8 | |||
| +--ro interface-level? level | +---n adjacency-state-change | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| +--ro lsp-id? lsp-id | | | control-plane-protocols/ | |||
| +--ro sequence? uint32 | | | control-plane-protocol/name | |||
| +--ro received-timestamp? yang:timestamp | | +--ro isis-level? level | |||
| +--ro neighbor-system-id? system-id | | +--ro interface-name? if:interface-ref | |||
+---n lsp-generation | | +--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 neighbor? string | |||
+--ro isis-level? level | | +--ro neighbor-system-id? system-id | |||
+--ro lsp-id? lsp-id | | +--ro state? adj-state-type | |||
+--ro sequence? uint32 | | +--ro reason? string | |||
+--ro send-timestamp? yang:timestamp | +---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 into: | The IS-IS configuration is divided into: | |||
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 additional parameters. | Additional modules may be created to support additional parameters. | |||
These additional modules MUST augment the ietf-isis module. | These additional modules MUST augment the ietf-isis module. | |||
The model includes optional features, for which the corresponding | The model includes optional features, for which the corresponding | |||
configuration data nodes are also optional. As an example, the | configuration data nodes are also optional. As an example, the | |||
ability to control the administrative state of a particular IS-IS | ability to control the administrative state of a particular IS-IS | |||
instance is optional. By advertising the feature "admin-control", a | instance is optional. By advertising the feature "admin-control", a | |||
device communicates to the client that it supports the ability to | device communicates to the client that it supports the ability to | |||
shut down a particular IS-IS instance. | shutdown a particular IS-IS instance. | |||
The global configuration contains usual IS-IS parameters, such as, | The global configuration contains usual IS-IS parameters, such as, | |||
lsp-mtu, lsp-lifetime, lsp-refresh, default-metric, etc. | lsp-mtu, lsp-lifetime, lsp-refresh, default-metric, etc. | |||
2.2. Multi-topology Parameters | 2.2. Multi-topology Parameters | |||
The model supports multi-topology (MT) IS-IS as defined in [RFC5120]. | The model supports multi-topology (MT) IS-IS as defined in [RFC5120]. | |||
The "topologies" container is used to enable support of the MT | The "topologies" container is used to enable support of the MT | |||
extensions. | extensions. | |||
The "name" used in the topology list should refer to an existing | The "name" used in the topology list should refer to an existing | |||
Routing Information Base (RIB) defined for the device [RFC8349]. | Routing Information Based (RIB) defined for the device [RFC8349]. | |||
Some specific parameters can be defined on a per-topology basis, both | Some specific parameters can be defined on a per-topology basis, both | |||
at the global level and at the interface level: for example, an | at the global level and at the interface level: for example, an | |||
interface metric can be defined per-topology. | interface metric can be defined per topology. | |||
Multiple address families (such as, IPv4 or IPv6) can also be enabled | Multiple address families (such as, IPv4 or IPv6) can also be enabled | |||
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 the "nlpid-control" feature to be | families container (requiring the "nlpid-control" feature to be | |||
supported). | supported). | |||
2.3. Per-Level Parameters | 2.3. Per-Level Parameters | |||
Some parameters allow a per-level configuration. For such | Some parameters allow a per-level configuration. For such | |||
parameters, the parameter is modeled as a container with three | parameters, the parameter is modeled as a container with three | |||
skipping to change at page 10, line 34 ¶ | skipping to change at page 11, line 10 ¶ | |||
| +--rw level-2 | | +--rw level-2 | |||
| +--rw value? uint8 | | +--rw value? uint8 | |||
Example: | Example: | |||
<priority> | <priority> | |||
<value>250</value> | <value>250</value> | |||
<level-1> | <level-1> | |||
<value>100</value> | <value>100</value> | |||
</level-1> | </level-1> | |||
<level-2> | ||||
<value>200</value> | ||||
</level-2> | ||||
</priority> | </priority> | |||
An implementation MUST prefer a level-specific parameter over a top- | An implementation MUST prefer a level-specific parameter over a top- | |||
level parameter. For example, if the priority is 100 for the level- | level parameter. For example, if the priority is 100 for the level-1 | |||
1, 200 for the level-2 and 250 for the top-level configuration, the | and 250 for the top-level configuration, the implementation must use | |||
implementation must use 100 for the level-1 priority and 200 for the | 100 for the level-1 priority and 250 for the level-2 priority. | |||
level-2 priority. | ||||
Some parameters, such as, "overload bit" and "route preference", are | Some parameters, such as, "overload bit" and "route preference", are | |||
not modeled to support a per-level configuration. If an | not modeled to support a per-level configuration. If an | |||
implementation supports per-level configuration for such parameter, | implementation supports per-level configuration for such parameter, | |||
this implementation MUST augment the current model by adding both | this implementation MUST augment the current model by adding both | |||
level-1 and level-2 containers and MUST reuse existing configuration | level-1 and level-2 containers and MUST reuse existing configuration | |||
groupings. | groupings. | |||
Example of augmentation: | Example of augmentation: | |||
skipping to change at page 12, line 8 ¶ | skipping to change at page 12, line 25 ¶ | |||
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 the previous section. An | different per-level value as described in the previous section. An | |||
interface-specific parameter MUST be preferred over an IS-IS global | interface-specific parameter MUST be preferred over an IS-IS global | |||
parameter. | parameter. | |||
Some parameters, such as, hello-padding are defined as containers to | Some parameters, such as, hello-padding are defined as containers to | |||
allow easy extension by vendor-specific modules. | allow 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 enable? boolean {admin-control}? | +--rw enable? boolean {admin-control}? | |||
+--rw level-type? level | +--rw level-type? level | |||
+--rw lsp-pacing-interval? | +--rw lsp-pacing-interval? rt-types: | |||
| rt-types:timer-value-milliseconds | | timer-value-milliseconds | |||
+--rw lsp-retransmit-interval? | +--rw lsp-retransmit-interval? rt-types: | |||
| rt-types:timer-value-seconds16 | | timer-value-seconds16 | |||
+--rw passive? boolean | +--rw passive? boolean | |||
+--rw csnp-interval? | +--rw csnp-interval? rt-types: | |||
| rt-types:timer-value-seconds16 | | timer-value-seconds16 | |||
+--rw hello-padding | +--rw hello-padding | |||
| +--rw enable? boolean | | +--rw enable? boolean | |||
+--rw mesh-group-enable? mesh-group-state | +--rw mesh-group-enable? mesh-group-state | |||
+--rw mesh-group? uint8 | +--rw mesh-group? uint8 | |||
+--rw interface-type? interface-type | +--rw interface-type? interface-type | |||
+--rw tag* uint32 {prefix-tag}? | +--rw tag* uint32 {prefix-tag}? | |||
+--rw tag64* uint64 {prefix-tag64}? | +--rw tag64* uint64 {prefix-tag64}? | |||
+--rw node-flag? boolean {node-flag}? | +--rw node-flag? boolean {node-flag}? | |||
+--rw hello-authentication | +--rw hello-authentication | |||
| +--rw (authentication-type)? | | +--rw (authentication-type)? | |||
| | +--:(key-chain) {key-chain}? | | | +--:(key-chain) {key-chain}? | |||
| | | +--rw key-chain? key-chain:key-chain-ref | | | | +--rw key-chain? key-chain:key-chain-ref | |||
| | +--:(password) | | | +--:(password) | |||
| | +--rw key? string | | | +--rw key? string | |||
| | +--rw crypto-algorithm? identityref | | | +--rw crypto-algorithm? identityref | |||
| +--rw level-1 | | +--rw level-1 | |||
| | +--rw (authentication-type)? | | | +--rw (authentication-type)? | |||
| | +--:(key-chain) {key-chain}? | | | +--:(key-chain) {key-chain}? | |||
| | | +--rw key-chain? key-chain:key-chain-ref | | | | +--rw key-chain? key-chain:key-chain-ref | |||
| | +--:(password) | | | +--:(password) | |||
| | +--rw key? string | | | +--rw key? string | |||
| | +--rw crypto-algorithm? identityref | | | +--rw crypto-algorithm? identityref | |||
| +--rw level-2 | | +--rw level-2 | |||
| +--rw (authentication-type)? | | +--rw (authentication-type)? | |||
| +--:(key-chain) {key-chain}? | | +--:(key-chain) {key-chain}? | |||
| | +--rw key-chain? key-chain:key-chain-ref | | | +--rw key-chain? key-chain:key-chain-ref | |||
| +--:(password) | | +--:(password) | |||
| +--rw key? string | | +--rw key? string | |||
| +--rw crypto-algorithm? identityref | | +--rw crypto-algorithm? identityref | |||
+--rw hello-interval | +--rw hello-interval | |||
| +--rw value? rt-types:timer-value-seconds16 | | +--rw value? rt-types:timer-value-seconds16 | |||
| +--rw level-1 | | +--rw level-1 | |||
| | +--rw value? rt-types:timer-value-seconds16 | | | +--rw value? rt-types:timer-value-seconds16 | |||
| +--rw level-2 | | +--rw level-2 | |||
| +--rw value? rt-types:timer-value-seconds16 | | +--rw value? rt-types:timer-value-seconds16 | |||
+--rw hello-multiplier | +--rw hello-multiplier | |||
| +--rw value? uint16 | | +--rw value? uint16 | |||
| +--rw level-1 | | +--rw level-1 | |||
| | +--rw value? uint16 | | | +--rw value? uint16 | |||
| +--rw level-2 | | +--rw level-2 | |||
| +--rw value? uint16 | | +--rw value? uint16 | |||
+--rw priority | +--rw priority | |||
| +--rw value? uint8 | | +--rw value? uint8 | |||
| +--rw level-1 | | +--rw level-1 | |||
| | +--rw value? uint8 | | | +--rw value? uint8 | |||
| +--rw level-2 | | +--rw level-2 | |||
| +--rw value? uint8 | | +--rw value? uint8 | |||
+--rw metric | +--rw metric | |||
| +--rw value? wide-metric | | +--rw value? wide-metric | |||
| +--rw level-1 | | +--rw level-1 | |||
| | +--rw value? wide-metric | | | +--rw value? wide-metric | |||
| +--rw level-2 | | +--rw level-2 | |||
| +--rw value? wide-metric | | +--rw value? wide-metric | |||
+--rw bfd {bfd}? | +--rw bfd {bfd}? | |||
| +--rw enable? boolean | | +--rw enable? boolean | |||
| +--rw local-multiplier? multiplier | | +--rw local-multiplier? multiplier | |||
| +--rw (interval-config-type)? | | +--rw (interval-config-type)? | |||
| +--:(tx-rx-intervals) | | +--:(tx-rx-intervals) | |||
| | +--rw desired-min-tx-interval? uint32 | | | +--rw desired-min-tx-interval? uint32 | |||
| | +--rw required-min-rx-interval? uint32 | | | +--rw required-min-rx-interval? uint32 | |||
| +--:(single-interval) {single-minimum-interval}? | | +--:(single-interval) {single-minimum-interval}? | |||
| +--rw min-interval? uint32 | | +--rw min-interval? uint32 | |||
+--rw address-families {nlpid-control}? | +--rw address-families {nlpid-control}? | |||
| +--rw address-family-list* [address-family] | | +--rw address-family-list* [address-family] | |||
| +--rw address-family iana-rt-types:address-family | | +--rw address-family iana-rt-types:address-family | |||
+--rw mpls | +--rw mpls | |||
| +--rw ldp | | +--rw ldp | |||
| +--rw igp-sync? boolean {ldp-igp-sync}? | | +--rw igp-sync? boolean {ldp-igp-sync}? | |||
+--rw fast-reroute {fast-reroute}? | +--rw fast-reroute {fast-reroute}? | |||
| +--rw lfa {lfa}? | | +--rw lfa {lfa}? | |||
| +--rw candidate-enable? boolean | | +--rw candidate-enable? boolean | |||
| +--rw enable? boolean | | +--rw enable? boolean | |||
| +--rw remote-lfa {remote-lfa}? | | +--rw remote-lfa {remote-lfa}? | |||
| | +--rw enable? boolean | | | +--rw enable? boolean | |||
| +--rw level-1 | | +--rw level-1 | |||
| | +--rw candidate-enable? boolean | | | +--rw candidate-enable? boolean | |||
| | +--rw enable? boolean | | | +--rw enable? boolean | |||
| | +--rw remote-lfa {remote-lfa}? | | | +--rw remote-lfa {remote-lfa}? | |||
| | +--rw enable? boolean | | | +--rw enable? boolean | |||
| +--rw level-2 | | +--rw level-2 | |||
| +--rw candidate-enable? boolean | | +--rw candidate-enable? boolean | |||
| +--rw enable? boolean | | +--rw enable? boolean | |||
| +--rw remote-lfa {remote-lfa}? | | +--rw remote-lfa {remote-lfa}? | |||
| +--rw enable? boolean | | +--rw enable? boolean | |||
+--ro adjacencies | +--ro adjacencies | |||
| +--ro adjacency* [] | | +--ro adjacency* [] | |||
| +--ro neighbor-sys-type? level | | +--ro neighbor-sys-type? level | |||
| +--ro neighbor-sysid? system-id | | +--ro neighbor-sysid? system-id | |||
| +--ro neighbor-extended-circuit-id? | | +--ro neighbor-extended-circuit-id? extended-circuit-id | |||
| | extended-circuit-id | | +--ro neighbor-snpa? snpa | |||
| +--ro neighbor-snpa? snpa | | +--ro usage? level | |||
| +--ro usage? level | | +--ro hold-timer? rt-types: | |||
| +--ro hold-timer? | | | timer-value-seconds16 | |||
| rt-types:timer-value-seconds16 | | +--ro neighbor-priority? uint8 | |||
| +--ro neighbor-priority? uint8 | | +--ro lastuptime? yang:timestamp | |||
| +--ro lastuptime? yang:timestamp | | +--ro state? adj-state-type | |||
| +--ro state? adj-state-type | +--ro event-counters | |||
+--ro event-counters | | +--ro adjacency-changes? uint32 | |||
| +--ro adjacency-changes? uint32 | | +--ro adjacency-number? uint32 | |||
| +--ro adjacency-number? uint32 | | +--ro init-fails? uint32 | |||
| +--ro init-fails? uint32 | | +--ro adjacency-rejects? uint32 | |||
| +--ro adjacency-rejects? uint32 | | +--ro id-len-mismatch? uint32 | |||
| +--ro id-len-mismatch? uint32 | | +--ro max-area-addresses-mismatch? uint32 | |||
| +--ro max-area-addresses-mismatch? uint32 | | +--ro authentication-type-fails? uint32 | |||
| +--ro authentication-type-fails? uint32 | | +--ro authentication-fails? uint32 | |||
| +--ro authentication-fails? uint32 | | +--ro lan-dis-changes? uint32 | |||
| +--ro lan-dis-changes? uint32 | +--ro packet-counters | |||
+--ro packet-counters | | +--ro level* [level] | |||
| +--ro level* [level] | | +--ro level level-number | |||
| +--ro level level-number | | +--ro iih | |||
| +--ro iih | | | +--ro in? uint32 | |||
| | +--ro in? uint32 | | | +--ro out? uint32 | |||
| | +--ro out? uint32 | | +--ro ish | |||
| +--ro ish | | | +--ro in? uint32 | |||
| | +--ro in? uint32 | | | +--ro out? uint32 | |||
| | +--ro out? uint32 | | +--ro esh | |||
| +--ro esh | | | +--ro in? uint32 | |||
| | +--ro in? uint32 | | | +--ro out? uint32 | |||
| | +--ro out? uint32 | | +--ro lsp | |||
| +--ro lsp | | | +--ro in? uint32 | |||
| | +--ro in? uint32 | | | +--ro out? uint32 | |||
| | +--ro out? uint32 | | +--ro psnp | |||
| +--ro psnp | | | +--ro in? uint32 | |||
| | +--ro in? uint32 | | | +--ro out? uint32 | |||
| | +--ro out? uint32 | | +--ro csnp | |||
| +--ro csnp | | | +--ro in? uint32 | |||
| | +--ro in? uint32 | | | +--ro out? uint32 | |||
| | +--ro out? uint32 | | +--ro unknown | |||
| +--ro unknown | | +--ro in? uint32 | |||
| +--ro in? uint32 | +--rw discontinuity-time? yang:date-and-time | |||
+--rw discontinuity-time? yang:date-and-time | +--rw topologies {multi-topology}? | |||
+--rw topologies {multi-topology}? | +--rw topology* [name] | |||
+--rw topology* [name] | +--rw name -> | |||
+--rw name | | ../../../../../../../../rt:ribs/rib/name | |||
| -> ../../../../../../../../rt:ribs/rib/name | +--rw metric | |||
+--rw metric | +--rw value? wide-metric | |||
+--rw value? wide-metric | +--rw level-1 | |||
+--rw level-1 | | +--rw value? wide-metric | |||
| +--rw value? wide-metric | +--rw level-2 | |||
+--rw level-2 | +--rw value? wide-metric | |||
+--rw value? wide-metric | ||||
rpcs: | rpcs: | |||
+---x clear-adjacency | +---x clear-adjacency | |||
| +---w input | | +---w input | |||
| +---w routing-protocol-instance-name | | +---w routing-protocol-instance-name -> /rt:routing/ | |||
| -> /rt:routing/control-plane-protocols/control-plane-protocol/name | | | control-plane-protocols/ | |||
| +---w level? level | | | control-plane-protocol/name | |||
| +---w interface? if:interface-ref | | +---w level? level | |||
+---x clear-database | | +---w interface? if:interface-ref | |||
+---w input | +---x clear-database | |||
+---w routing-protocol-instance-name | +---w input | |||
-> /rt:routing/control-plane-protocols/control-plane-protocol/name | +---w routing-protocol-instance-name -> /rt:routing/ | |||
+---w level? level | | control-plane-protocols/ | |||
| control-plane-protocol/name | ||||
+---w level? level | ||||
notifications: | notifications: | |||
+---n database-overload | +---n database-overload | |||
| +--ro routing-protocol-name? | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| -> /rt:routing/control-plane-protocols/control-plane-protocol/name | | | control-plane-protocols/ | |||
| +--ro isis-level? level | | | control-plane-protocol/name | |||
| +--ro overload? enumeration | | +--ro isis-level? level | |||
+---n lsp-too-large | | +--ro overload? enumeration | |||
| +--ro routing-protocol-name? | +---n lsp-too-large | |||
| -> /rt:routing/control-plane-protocols/control-plane-protocol/name | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| +--ro isis-level? level | | | control-plane-protocols/ | |||
| +--ro interface-name? if:interface-ref | | | 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 pdu-size? uint32 | | +--ro interface-level? level | |||
| +--ro lsp-id? lsp-id | | +--ro extended-circuit-id? extended-circuit-id | |||
+---n if-state-change | | +--ro pdu-size? uint32 | |||
| +--ro routing-protocol-name? | | +--ro lsp-id? lsp-id | |||
| -> /rt:routing/control-plane-protocols/control-plane-protocol/name | +---n if-state-change | |||
| +--ro isis-level? level | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| +--ro interface-name? if:interface-ref | | | control-plane-protocols/ | |||
| +--ro interface-level? level | | | control-plane-protocol/name | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro isis-level? level | |||
| +--ro state? if-state-type | | +--ro interface-name? if:interface-ref | |||
+---n corrupted-lsp-detected | | +--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 state? if-state-type | |||
| +--ro isis-level? level | +---n corrupted-lsp-detected | |||
| +--ro lsp-id? lsp-id | | +--ro routing-protocol-name? -> /rt:routing/ | |||
+---n attempt-to-exceed-max-sequence | | | control-plane-protocols/ | |||
| +--ro routing-protocol-name? | | | 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 id-len-mismatch | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| +--ro routing-protocol-name? | | | control-plane-protocols/ | |||
| -> /rt:routing/control-plane-protocols/control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro lsp-id? lsp-id | |||
| +--ro interface-level? level | +---n id-len-mismatch | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| +--ro pdu-field-len? uint8 | | | control-plane-protocols/ | |||
| +--ro raw-pdu? binary | | | control-plane-protocol/name | |||
+---n max-area-addresses-mismatch | | +--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 pdu-field-len? uint8 | |||
| +--ro interface-level? level | | +--ro raw-pdu? binary | |||
| +--ro extended-circuit-id? extended-circuit-id | +---n max-area-addresses-mismatch | |||
| +--ro max-area-addresses? uint8 | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| +--ro raw-pdu? binary | | | control-plane-protocols/ | |||
+---n own-lsp-purge | | | 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 max-area-addresses? uint8 | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro raw-pdu? binary | |||
| +--ro lsp-id? lsp-id | +---n own-lsp-purge | |||
+---n sequence-number-skipped | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| +--ro routing-protocol-name? | | | control-plane-protocols/ | |||
| -> /rt:routing/control-plane-protocols/control-plane-protocol/name | | | 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 sequence-number-skipped | |||
| +--ro routing-protocol-name? | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| -> /rt:routing/control-plane-protocols/control-plane-protocol/name | | | control-plane-protocols/ | |||
| +--ro isis-level? level | | | 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 lsp-id? lsp-id | |||
| +--ro routing-protocol-name? | +---n authentication-type-failure | |||
| -> /rt:routing/control-plane-protocols/control-plane-protocol/name | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| +--ro isis-level? level | | | control-plane-protocols/ | |||
| +--ro interface-name? if:interface-ref | | | 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 raw-pdu? binary | | +--ro interface-level? level | |||
+---n version-skew | | +--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 authentication-failure | |||
| +--ro isis-level? level | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| +--ro interface-name? if:interface-ref | | | control-plane-protocols/ | |||
| +--ro interface-level? level | | | 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 raw-pdu? binary | |||
| -> /rt:routing/control-plane-protocols/control-plane-protocol/name | +---n version-skew | |||
| +--ro isis-level? level | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| +--ro interface-name? if:interface-ref | | | control-plane-protocols/ | |||
| +--ro interface-level? level | | | 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 protocol-version? uint8 | |||
| +--ro isis-level? level | | +--ro raw-pdu? binary | |||
| +--ro interface-name? if:interface-ref | +---n area-mismatch | |||
| +--ro interface-level? level | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| +--ro extended-circuit-id? extended-circuit-id | | | control-plane-protocols/ | |||
| +--ro raw-pdu? binary | | | control-plane-protocol/name | |||
| +--ro reason? string | | +--ro isis-level? level | |||
+---n protocols-supported-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? -> /rt:routing/ | |||
| +--ro extended-circuit-id? extended-circuit-id | | | control-plane-protocols/ | |||
| +--ro raw-pdu? binary | | | control-plane-protocol/name | |||
| +--ro protocols* uint8 | | +--ro isis-level? level | |||
+---n lsp-error-detected | | +--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 reason? string | |||
| +--ro interface-level? level | +---n protocols-supported-mismatch | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| +--ro lsp-id? lsp-id | | | control-plane-protocols/ | |||
| +--ro raw-pdu? binary | | | control-plane-protocol/name | |||
| +--ro error-offset? uint32 | | +--ro isis-level? level | |||
| +--ro tlv-type? uint8 | | +--ro interface-name? if:interface-ref | |||
+---n adjacency-state-change | | +--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 protocols* uint8 | |||
| +--ro interface-name? if:interface-ref | +---n lsp-error-detected | |||
| +--ro interface-level? level | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| +--ro extended-circuit-id? extended-circuit-id | | | control-plane-protocols/ | |||
| +--ro neighbor? string | | | control-plane-protocol/name | |||
| +--ro neighbor-system-id? system-id | | +--ro isis-level? level | |||
| +--ro state? adj-state-type | | +--ro interface-name? if:interface-ref | |||
| +--ro reason? string | | +--ro interface-level? level | |||
+---n lsp-received | | +--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 raw-pdu? binary | |||
| +--ro isis-level? level | | +--ro error-offset? uint32 | |||
| +--ro interface-name? if:interface-ref | | +--ro tlv-type? uint8 | |||
| +--ro interface-level? level | +---n adjacency-state-change | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| +--ro lsp-id? lsp-id | | | control-plane-protocols/ | |||
| +--ro sequence? uint32 | | | control-plane-protocol/name | |||
| +--ro received-timestamp? yang:timestamp | | +--ro isis-level? level | |||
| +--ro neighbor-system-id? system-id | | +--ro interface-name? if:interface-ref | |||
+---n lsp-generation | | +--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 neighbor? string | |||
+--ro isis-level? level | | +--ro neighbor-system-id? system-id | |||
+--ro lsp-id? lsp-id | | +--ro state? adj-state-type | |||
+--ro sequence? uint32 | | +--ro reason? string | |||
+--ro send-timestamp? yang:timestamp | +---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.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 global authentication | interface configuration of authentication. If global authentication | |||
is configured, an implementation SHOULD authenticate PSNPs (Partial | is configured, an implementation SHOULD authenticate PSNPs (Partial | |||
Sequence Number Packets), CSNPs (Complete Sequence Number Packets) | Sequence Number Packets), CSNPs (Complete Sequence Number Packets) | |||
and LSPs (Link State Packets) with the authentication parameters | and LSPs (Link State Packets) with the authentication parameters | |||
supplied. The authentication of HELLO PDUs (Protocol Data Units) can | supplied. The authentication of HELLO PDUs (Protocol Data Units) can | |||
be activated on a per-interface basis. | be activated on a per-interface basis. | |||
2.6. IGP/LDP synchronization | 2.6. IGP/LDP synchronization | |||
[RFC5443] defines a mechanism where IGP (Interior Gateway Protocol) | [RFC5443] defines a mechanism where IGP (Interior Gateway Protocol) | |||
needs to be synchronized with LDP (Label Distribution Protocol). An | needs to be synchronized with LDP (Label Distribution Protocol). An | |||
"ldp-igp-sync" feature has been defined in the model to support this | "ldp-igp-sync" feature has been defined in the model to support this | |||
functionality. The "mpls/ldp/igp-sync" leaf under "interface" allows | functionality. The "mpls/ldp/igp-sync" leaf under "interface" allows | |||
activation of the mechanism on a per-interface basis. The "mpls/ldp/ | activation of the functionality on a per-interface basis. The | |||
igp-sync" container in the global configuration is intentionally | "mpls/ldp/igp-sync" container in the global configuration is | |||
empty and is not required for feature activation. The goal of this | intentionally empty and is not required for feature activation. The | |||
empty container is to facilitate augmentation with additional | goal of this empty container is to facilitate augmentation with | |||
parameters, e.g., timers. | additional parameters, e.g., timers. | |||
2.7. ISO parameters | 2.7. ISO parameters | |||
As the IS-IS protocol is based on the ISO protocol suite, some ISO | As the IS-IS protocol is based on the ISO protocol suite, some ISO | |||
parameters may be required. | parameters may be required. | |||
This module augments interface configuration model to support | This module augments interface configuration model to support | |||
selected ISO configuration parameters. | selected ISO configuration parameters. | |||
The clns-mtu can be configured for an interface. | The clns-mtu can be configured for an 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 Fast Re-Route (FRR) techniques. The | remote LFA [RFC7490] as IP Fast Re-Route (FRR) techniques. The | |||
"fast-reroute" container may be augmented by other models to support | "fast-reroute" container may be augmented by other models to support | |||
other IP FRR flavors (MRT, TI-LFA, etc.). | other IP FRR flavors (MRT as defined in [RFC7812], TI-LFA as defined | |||
in [I-D.ietf-rtgwg-segment-routing-ti-lfa], etc.). | ||||
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 the interface-level only. The global "lfa" container | remote LFA at the interface-level only. The global "lfa" container | |||
is present but kept empty to allow augmentation with vendor-specific | is present but kept empty to allow augmentation with vendor-specific | |||
properties, e.g., policies. | properties, e.g., policies. | |||
Remote LFA is considered as an extension of LFA. Remote LFA cannot | Remote LFA is considered as an extension of LFA. Remote LFA cannot | |||
be enabled if LFA is not enabled. | be enabled if LFA is not enabled. | |||
The "candidate-enable" data leaf designates that an interface can be | The "candidate-enable" data leaf designates that an interface can be | |||
skipping to change at page 20, line 46 ¶ | skipping to change at page 21, line 32 ¶ | |||
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 all neighbors. | and restart database synchronization with all 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 defines the following notifications : | The "ietf-isis" module defines the following notifications: | |||
database-overload: This notification is sent when the IS-IS Node | database-overload: This notification is sent when the IS-IS Node | |||
overload condition changes. | overload condition changes. | |||
lsp-too-large: This notification is sent when the system tries to | lsp-too-large: This notification is sent when the system tries to | |||
propagate a PDU that is too large. | propagate a PDU that is too large. | |||
if-state-change: This notification is sent when the state of an | if-state-change: This notification is sent when an interface's | |||
interface's state changes. | state changes. | |||
corrupted-lsp-detected: This notification is sent when the IS-IS | corrupted-lsp-detected: This notification is sent when the IS-IS | |||
node discovers that an LSP that was previously stored in the Link | node discovers that an LSP that was previously stored in the Link | |||
State Database, i.e., local memory, has become corrupted. | State Database, i.e., local 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 | |||
with a different value for the System ID length. | with a different value for the System ID length. | |||
skipping to change at page 22, line 20 ¶ | skipping to change at page 22, line 51 ¶ | |||
lsp-received: This notification is sent when an LSP is received. | lsp-received: This notification is sent when an LSP is received. | |||
lsp-generation: This notification is sent when an LSP is | lsp-generation: This notification is sent when an LSP is | |||
regenerated. | regenerated. | |||
5. Interaction with Other YANG Modules | 5. Interaction with Other YANG Modules | |||
The "isis" container augments the "/rt:routing/rt:control-plane- | The "isis" container augments the "/rt:routing/rt:control-plane- | |||
protocols/control-plane-protocol" container of the ietf-routing | protocols/control-plane-protocol" container of the ietf-routing | |||
[RFC8349] module by with IS-IS-specific parameters. | [RFC8349] module with IS-IS-specific parameters. | |||
The "isis" module augments "/if:interfaces/if:interface" defined by | The "isis" module augments "/if:interfaces/if:interface" defined by | |||
[RFC8343] with ISO specific parameters. | [RFC8343] with ISO specific parameters. | |||
The "isis" operational state container augments the "/rt:routing- | The "isis" operational state container augments the "/rt:routing- | |||
state/rt:control-plane-protocols/control-plane-protocol" container of | state/rt:control-plane-protocols/control-plane-protocol" container of | |||
the ietf-routing module with IS-IS-specific operational states. | the ietf-routing module with IS-IS-specific operational states. | |||
Some IS-IS-specific route attributes are added to route objects in | Some IS-IS-specific route attributes are added to route objects in | |||
the ietf-routing module by augmenting "/rt:routing- | the ietf-routing module by augmenting "/rt:routing- | |||
skipping to change at page 22, line 50 ¶ | skipping to change at page 23, line 33 ¶ | |||
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], [RFC4090],[RFC5029], [RFC5130], [RFC5302], | [ISO-10589], [RFC1195], [RFC4090],[RFC5029], [RFC5130], [RFC5302], | |||
[RFC5305], [RFC5306], [RFC5307], [RFC5308], [RFC5880], [RFC5881], | [RFC5305], [RFC5306], [RFC5307], [RFC5308], [RFC5880], [RFC5881], | |||
[RFC6119], [RFC6232], [RFC7794], [RFC7981], [RFC8570], [RFC7917], | [RFC6119], [RFC6232], [RFC7794], [RFC7981], [RFC8570], [RFC7917], | |||
[RFC8405]. | [RFC8405]. | |||
<CODE BEGINS> file "ietf-isis@2019-09-26.yang" | <CODE BEGINS> file "ietf-isis@2019-10-08.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)"; | |||
skipping to change at page 25, line 14 ¶ | skipping to change at page 25, line 46 ¶ | |||
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | |||
NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', | NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', | |||
'MAY', and 'OPTIONAL' in this document are to be interpreted as | 'MAY', and 'OPTIONAL' in this document are to be interpreted as | |||
described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, | described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, | |||
they appear in all capitals, as shown here. | they appear in all capitals, as shown here. | |||
This version of this YANG module is part of RFC XXXX; | This version of this YANG module is part of RFC XXXX; | |||
see the RFC itself for full legal notices."; | see the RFC itself for full legal notices."; | |||
revision 2019-09-26 { | revision 2019-10-08 { | |||
description | description | |||
"Initial revision."; | "Initial revision."; | |||
reference "RFC XXXX"; | reference "RFC XXXX"; | |||
} | } | |||
/* Identities */ | /* Identities */ | |||
identity isis { | identity isis { | |||
base rt:routing-protocol; | base rt:routing-protocol; | |||
description "Identity for the IS-IS routing protocol."; | description "Identity for the IS-IS routing protocol."; | |||
} | } | |||
identity lsp-log-reason { | identity lsp-log-reason { | |||
description "Base identity for an LSP change log reason."; | description "Base identity for an LSP change log reason."; | |||
} | } | |||
identity refresh { | identity refresh { | |||
skipping to change at page 26, line 38 ¶ | skipping to change at page 27, line 21 ¶ | |||
} | } | |||
identity frr-protection-available-downstream-type { | identity frr-protection-available-downstream-type { | |||
base frr-protection-available-type; | base frr-protection-available-type; | |||
description "The alternate is downstream of node in the path."; | description "The alternate is downstream of node in the path."; | |||
} | } | |||
identity frr-protection-available-other-type { | identity frr-protection-available-other-type { | |||
base frr-protection-available-type; | base frr-protection-available-type; | |||
description "The level of protection is unknown."; | description "The level of protection is unknown."; | |||
} | } | |||
identity frr-alternate-type { | ||||
description "Base identity for IP Fast Reroute alternate type."; | ||||
} | ||||
identity frr-alternate-type-equal-cost { | ||||
base frr-alternate-type; | ||||
description "ECMP alternate."; | ||||
} | ||||
identity frr-alternate-type-lfa { | ||||
base frr-alternate-type; | ||||
description "LFA alternate."; | ||||
} | ||||
identity frr-alternate-type-remote-lfa { | ||||
base frr-alternate-type; | ||||
description "Remote LFA alternate."; | ||||
} | ||||
identity frr-alternate-type-tunnel { | ||||
base frr-alternate-type; | ||||
description "Tunnel based alternate (such as, | ||||
RSVP-TE or GRE)."; | ||||
} | ||||
identity frr-alternate-mrt { | ||||
base frr-alternate-type; | ||||
description "MRT alternate."; | ||||
} | ||||
identity frr-alternate-tilfa { | ||||
base frr-alternate-type; | ||||
description "TILFA alternate."; | ||||
} | ||||
identity frr-alternate-other { | ||||
base frr-alternate-type; | ||||
description "Other alternate."; | ||||
} | ||||
identity unidirectional-link-delay-subtlv-flag { | identity unidirectional-link-delay-subtlv-flag { | |||
description "Base identity for unidirectional-link-delay | description "Base identity for unidirectional-link-delay | |||
subTLV flags. Flags are defined in RFC8570."; | subTLV flags. Flags are defined in RFC8570."; | |||
} | } | |||
identity unidirectional-link-delay-subtlv-a-flag { | identity unidirectional-link-delay-subtlv-a-flag { | |||
base unidirectional-link-delay-subtlv-flag; | base unidirectional-link-delay-subtlv-flag; | |||
description | description | |||
"The A bit represents the Anomalous (A) bit. | "The A bit represents the Anomalous (A) bit. | |||
The A bit is set when the measured value of | The A bit is set when the measured value of | |||
this parameter exceeds its configured | this parameter exceeds its configured | |||
skipping to change at page 28, line 36 ¶ | skipping to change at page 30, line 4 ¶ | |||
"Quote from RFC7981: 'When the IS-IS Router CAPABILITY TLV | "Quote from RFC7981: 'When the IS-IS Router CAPABILITY TLV | |||
is leaked from level-2 to level-1, the D bit MUST be set. | is leaked from level-2 to level-1, the D bit MUST be set. | |||
Otherwise, this bit MUST be clear. IS-IS Router | Otherwise, this bit MUST be clear. IS-IS Router | |||
capability TLVs with the D bit set MUST NOT be | capability TLVs with the D bit set MUST NOT be | |||
leaked from level-1 to level-2 in to prevent | leaked from level-1 to level-2 in to prevent | |||
TLV looping'."; | TLV looping'."; | |||
} | } | |||
identity lsp-flag { | identity lsp-flag { | |||
description "Base identity for LSP attributes. | description "Base identity for LSP attributes. | |||
Attributes are defined in ISO 10589"; | Attributes are defined in ISO 10589"; | |||
} | } | |||
identity lsp-partitioned-flag { | identity lsp-partitioned-flag { | |||
base lsp-flag; | base lsp-flag; | |||
description "Originator partition repair supported"; | description "Originator partition repair supported"; | |||
} | } | |||
identity lsp-attached-error-metric-flag { | identity lsp-attached-error-metric-flag { | |||
base lsp-flag; | base lsp-flag; | |||
description "Set when originator is attached to | description "Set when originator is attached to | |||
another area using the referred metric."; | another area using the error metric."; | |||
} | } | |||
identity lsp-attached-delay-metric-flag { | identity lsp-attached-delay-metric-flag { | |||
base lsp-flag; | base lsp-flag; | |||
description "Set when originator is attached to | description "Set when originator is attached to | |||
another area using the referred metric."; | another area using the delay metric."; | |||
} | } | |||
identity lsp-attached-expense-metric-flag { | identity lsp-attached-expense-metric-flag { | |||
base lsp-flag; | base lsp-flag; | |||
description "Set when originator is attached to | description "Set when originator is attached to | |||
another area using the referred metric."; | another area using the expense metric."; | |||
} | } | |||
identity lsp-attached-default-metric-flag { | identity lsp-attached-default-metric-flag { | |||
base lsp-flag; | base lsp-flag; | |||
description "Set when originator is attached to | description "Set when originator is attached to | |||
another area using the referred metric."; | another area using the default metric."; | |||
} | } | |||
identity lsp-overload-flag { | identity lsp-overload-flag { | |||
base lsp-flag; | base lsp-flag; | |||
description | description | |||
"If set, the originator is overloaded, | "If set, the originator is overloaded, | |||
and must be avoided in path calculation."; | and must be avoided in path calculation."; | |||
} | } | |||
identity lsp-l1system-flag { | identity lsp-l1system-flag { | |||
base lsp-flag; | base lsp-flag; | |||
description | description | |||
skipping to change at page 30, line 28 ¶ | skipping to change at page 31, line 43 ¶ | |||
Extended IP and IPv6 Reachability"; | Extended IP and IPv6 Reachability"; | |||
} | } | |||
feature node-tag { | feature node-tag { | |||
description | description | |||
"Support for node admin tag for IS-IS routing instances."; | "Support for node admin tag for IS-IS routing instances."; | |||
reference "RFC7917 - Advertising Node Administrative Tags | reference "RFC7917 - Advertising Node Administrative Tags | |||
in IS-IS"; | in IS-IS"; | |||
} | } | |||
feature ldp-igp-sync { | feature ldp-igp-sync { | |||
description | description | |||
"LDP IGP synchronization."; | "Support for 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. The IS-IS NSR feature | "Support for Non-Stop-Routing (NSR). The IS-IS NSR feature | |||
allows a router with redundant control-plane capability | allows a router with redundant control-plane capability | |||
(e.g., dual Route-Processor (RP) cards) to maintain its | (e.g., dual Route-Processor (RP) cards) to maintain its | |||
state and adjacencies during planned and unplanned | state and adjacencies during planned and unplanned | |||
IS-IS instance restarts. It differs from graceful-restart | IS-IS instance restarts. It differs from graceful-restart | |||
or Non-Stop Forwarding (NSF) in that no protocol signaling | or Non-Stop Forwarding (NSF) in that no protocol signaling | |||
or assistance from adjacent IS-IS neighbors is required to | or assistance from adjacent IS-IS neighbors is required to | |||
recover control-plane state."; | recover control-plane state."; | |||
} | } | |||
feature lfa { | feature lfa { | |||
description | description | |||
skipping to change at page 31, line 31 ¶ | skipping to change at page 32, line 47 ¶ | |||
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"; | |||
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 auto-cost { | feature auto-cost { | |||
description | description | |||
"Calculate IS-IS interface metric according to | "Support for IS-IS interface metric computation | |||
reference bandwidth."; | according to a reference bandwidth."; | |||
} | } | |||
feature te-rid { | feature te-rid { | |||
description | description | |||
"Traffic-Engineering Router-ID."; | "Traffic-Engineering Router-ID."; | |||
reference "RFC5305 - IS-IS Extensions for Traffic Engineering | reference "RFC5305 - IS-IS Extensions for Traffic Engineering | |||
RFC6119 - IPv6 Traffic Engineering in IS-IS"; | RFC6119 - IPv6 Traffic Engineering in IS-IS"; | |||
} | } | |||
feature max-ecmp { | feature max-ecmp { | |||
description | description | |||
"Setting maximum number of ECMP paths."; | "Setting maximum number of ECMP paths."; | |||
} | } | |||
feature multi-topology { | feature multi-topology { | |||
description | description | |||
"Support for Multiple-Topology Routing (MTR)."; | "Support for Multiple-Topology Routing (MTR)."; | |||
reference "RFC5120 - M-IS-IS: Multi Topology Routing in IS-IS"; | reference "RFC5120 - M-IS-IS: Multi Topology Routing in IS-IS"; | |||
} | } | |||
feature nlpid-control { | feature nlpid-control { | |||
description | description | |||
"This feature controls the advertisement | "Support for the advertisement | |||
of support NLPID within IS-IS configuration."; | of a Network Layer Protocol Identifier within IS-IS | |||
configuration."; | ||||
} | } | |||
feature graceful-restart { | feature graceful-restart { | |||
description | description | |||
"IS-IS Graceful restart support."; | "IS-IS Graceful restart support."; | |||
reference "RFC5306 - Restart Signaling in IS-IS"; | reference "RFC5306 - Restart Signaling in IS-IS"; | |||
} | } | |||
feature lsp-refresh { | feature lsp-refresh { | |||
description | description | |||
"Configuration of LSP refresh interval."; | "Configuration of LSP refresh interval."; | |||
} | } | |||
feature maximum-area-addresses { | feature maximum-area-addresses { | |||
description | description | |||
"Support of maximum-area-addresses config."; | "Support for maximum-area-addresses configuration."; | |||
} | } | |||
feature admin-control { | feature admin-control { | |||
description | description | |||
"Administrative control of the protocol state."; | "Administrative control of the protocol state."; | |||
} | } | |||
/* Type definitions */ | /* Type definitions */ | |||
typedef circuit-id { | typedef circuit-id { | |||
skipping to change at page 39, line 15 ¶ | skipping to change at page 40, line 31 ¶ | |||
type inet:ip-prefix; | type inet:ip-prefix; | |||
description | description | |||
"Protected prefix."; | "Protected prefix."; | |||
} | } | |||
leaf alternate { | leaf alternate { | |||
type inet:ip-address; | type inet:ip-address; | |||
description | description | |||
"Alternate next hop for the prefix."; | "Alternate next hop for the prefix."; | |||
} | } | |||
leaf alternate-type { | leaf alternate-type { | |||
type enumeration { | type identityref { | |||
enum equal-cost { | base frr-alternate-type; | |||
description | } | |||
"ECMP alternate."; | ||||
} | ||||
enum lfa { | ||||
description | ||||
"LFA alternate."; | ||||
} | ||||
enum remote-lfa { | ||||
description | ||||
"Remote LFA alternate."; | ||||
} | ||||
enum tunnel { | ||||
description | ||||
"Tunnel based alternate (such as, | ||||
RSVP-TE or GRE)."; | ||||
} | ||||
enum ti-lfa { | ||||
description | ||||
"TI-LFA alternate."; | ||||
} | ||||
enum mrt { | ||||
description | ||||
"MRT alternate."; | ||||
} | ||||
enum other { | ||||
description | ||||
"Unknown alternate type."; | ||||
} | ||||
} | ||||
description | description | |||
"Type of alternate."; | "Type of alternate."; | |||
} | } | |||
leaf best { | leaf best { | |||
type boolean; | type boolean; | |||
description | description | |||
"Is set when the alternate is the preferred one, | "Is set when the alternate is the preferred one, | |||
is clear otherwise."; | is clear otherwise."; | |||
} | } | |||
leaf non-best-reason { | leaf non-best-reason { | |||
skipping to change at page 41, line 4 ¶ | skipping to change at page 41, line 41 ¶ | |||
description | description | |||
"Metric from PLR to the alternate node"; | "Metric from PLR to the alternate node"; | |||
} | } | |||
leaf alternate-metric3 { | leaf alternate-metric3 { | |||
type uint32; | type uint32; | |||
description | description | |||
"Metric from alternate node to the destination"; | "Metric from alternate node to the destination"; | |||
} | } | |||
description | description | |||
"Per-AF protected prefix statistics."; | "Per-AF protected prefix statistics."; | |||
} | } | |||
description | description | |||
"List of prefixes that are protected."; | "List of prefixes that are protected."; | |||
} | } | |||
container unprotected-routes { | container unprotected-routes { | |||
config false; | config false; | |||
list address-family-stats { | list prefixes { | |||
key "address-family prefix"; | key "address-family prefix"; | |||
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 prefix { | leaf prefix { | |||
type inet:ip-prefix; | type inet:ip-prefix; | |||
description "Unprotected prefix."; | description "Unprotected prefix."; | |||
} | } | |||
description | description | |||
"Per-AF unprotected prefix statistics."; | "Per-AF unprotected prefix statistics."; | |||
} | } | |||
description | description | |||
skipping to change at page 41, line 49 ¶ | skipping to change at page 42, line 35 ¶ | |||
} | } | |||
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 { | |||
type uint32; | type yang:gauge32; | |||
description "Total prefixes."; | description "Total prefixes."; | |||
} | } | |||
leaf unprotected-routes { | leaf unprotected-routes { | |||
type uint32; | type yang:gauge32; | |||
description | description | |||
"Total prefixes that are not protected."; | "Total prefixes that are not protected."; | |||
} | } | |||
leaf protected-routes { | leaf protected-routes { | |||
type uint32; | type yang:gauge32; | |||
description | description | |||
"Total prefixes that are protected."; | "Total prefixes that are protected."; | |||
} | } | |||
leaf link-protected-routes { | leaf link-protected-routes { | |||
type uint32; | type yang:gauge32; | |||
description | description | |||
"Total prefixes that are link protected."; | "Total prefixes that are link protected."; | |||
} | } | |||
leaf node-protected-routes { | leaf node-protected-routes { | |||
type uint32; | type yang:gauge32; | |||
description | description | |||
"Total prefixes that are node protected."; | "Total prefixes that are node protected."; | |||
} | } | |||
description | description | |||
"Per-AF protected prefix statistics."; | "Per-AF protected prefix statistics."; | |||
} | } | |||
description "Global protection statistics."; | description "Global protection statistics."; | |||
} | } | |||
} | } | |||
skipping to change at page 43, line 40 ¶ | skipping to change at page 44, line 28 ¶ | |||
grouping route-content { | grouping route-content { | |||
description | description | |||
"IS-IS protocol-specific route properties grouping."; | "IS-IS protocol-specific route properties grouping."; | |||
leaf metric { | leaf metric { | |||
type uint32; | type uint32; | |||
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. | |||
describes both 32-bit and 64-bit tags."; | This list provides a consolidated view of both | |||
32-bit and 64-bit tags (RFC5130) available for the prefix."; | ||||
} | } | |||
leaf route-type { | leaf route-type { | |||
type enumeration { | type enumeration { | |||
enum l2-intra-area { | enum l2-intra-area { | |||
description "Level 2 internal route. As per RFC5302, | description "Level 2 internal route. As per RFC5302, | |||
the prefix is directly connected to the | the prefix is directly connected to the | |||
advertising router. It cannot be | advertising router. It cannot be | |||
distinguished from an L1->L2 inter-area | distinguished from an L1->L2 inter-area | |||
route."; | route."; | |||
} | } | |||
skipping to change at page 49, line 37 ¶ | skipping to change at page 50, line 27 ¶ | |||
"Advertise new metric style only (RFC5305)"; | "Advertise new metric style only (RFC5305)"; | |||
} | } | |||
enum old-only { | enum old-only { | |||
description | description | |||
"Advertise old metric style only (RFC1195)"; | "Advertise old metric style only (RFC1195)"; | |||
} | } | |||
enum both { | enum both { | |||
description "Advertise both metric styles"; | description "Advertise both metric styles"; | |||
} | } | |||
} | } | |||
description | ||||
"Type of metric to be generated: | ||||
- wide-only means only new metric style | ||||
is generated, | ||||
- old-only means that only old-style metric | ||||
is generated, | ||||
- both means that both are advertised. | ||||
This leaf is only affecting IPv4 metrics."; | ||||
} | ||||
description | ||||
"Grouping for global metric style config."; | ||||
} | ||||
grouping metric-type-global-cfg-with-default { | ||||
leaf value { | ||||
type enumeration { | ||||
enum wide-only { | ||||
description | ||||
"Advertise new metric style only (RFC5305)"; | ||||
} | ||||
enum old-only { | ||||
description | ||||
"Advertise old metric style only (RFC1195)"; | ||||
} | ||||
enum both { | ||||
description "Advertise both metric styles"; | ||||
} | ||||
} | ||||
default wide-only; | default wide-only; | |||
description | description | |||
"Type of metric to be generated: | "Type of metric to be generated: | |||
- wide-only means only new metric style | - wide-only means only new metric style | |||
is generated, | is generated, | |||
- old-only means that only old-style metric | - old-only means that only old-style metric | |||
is generated, | is generated, | |||
- both means that both are advertised. | - both means that both are advertised. | |||
This leaf is only affecting IPv4 metrics."; | This leaf is only affecting IPv4 metrics."; | |||
} | } | |||
description | description | |||
"Grouping for global metric style config."; | "Grouping for global metric style config."; | |||
} | } | |||
grouping default-metric-global-cfg { | grouping default-metric-global-cfg { | |||
leaf value { | leaf value { | |||
type wide-metric; | type wide-metric; | |||
description "Value of the metric"; | ||||
} | ||||
description | ||||
"Global default metric config grouping."; | ||||
} | ||||
grouping default-metric-global-cfg-with-default { | ||||
leaf value { | ||||
type wide-metric; | ||||
default "10"; | default "10"; | |||
description "Value of the metric"; | description "Value of the metric"; | |||
} | } | |||
description | description | |||
"Global default metric config grouping."; | "Global default metric config grouping."; | |||
} | } | |||
grouping overload-global-cfg { | grouping overload-global-cfg { | |||
leaf status { | leaf status { | |||
type boolean; | type boolean; | |||
skipping to change at page 51, line 48 ¶ | skipping to change at page 53, line 25 ¶ | |||
} | } | |||
description "Choice of authentication."; | description "Choice of authentication."; | |||
} | } | |||
description "Grouping for hello authentication."; | description "Grouping for hello authentication."; | |||
} | } | |||
grouping hello-interval-cfg { | grouping hello-interval-cfg { | |||
leaf value { | leaf value { | |||
type rt-types:timer-value-seconds16; | type rt-types:timer-value-seconds16; | |||
units "seconds"; | units "seconds"; | |||
default 10; | ||||
description | description | |||
"Interval (in seconds) between successive hello | "Interval (in seconds) between successive hello | |||
messages."; | messages."; | |||
} | ||||
description "Interval between hello messages."; | ||||
} | ||||
grouping hello-interval-cfg-with-default { | ||||
leaf value { | ||||
type rt-types:timer-value-seconds16; | ||||
units "seconds"; | ||||
default 10; | ||||
description | ||||
"Interval (in seconds) between successive hello | ||||
messages."; | ||||
} | } | |||
description "Interval between hello messages."; | description "Interval between hello messages."; | |||
} | } | |||
grouping hello-multiplier-cfg { | grouping hello-multiplier-cfg { | |||
leaf value { | leaf value { | |||
type uint16; | type uint16; | |||
description | ||||
"Number of missed hello messages prior to | ||||
declaring the adjacency down."; | ||||
} | ||||
description | ||||
"Number of missed hello messages prior to | ||||
adjacency down grouping."; | ||||
} | ||||
grouping hello-multiplier-cfg-with-default { | ||||
leaf value { | ||||
type uint16; | ||||
default 3; | default 3; | |||
description | description | |||
"Number of missed hello messages prior to | "Number of missed hello messages prior to | |||
declaring the adjacency down."; | declaring the adjacency down."; | |||
} | } | |||
description | description | |||
"Number of missed hello messages prior to | "Number of missed hello messages prior to | |||
adjacency down grouping."; | adjacency down grouping."; | |||
} | } | |||
grouping priority-cfg { | grouping priority-cfg { | |||
leaf value { | leaf value { | |||
type uint8 { | type uint8 { | |||
range "0 .. 127"; | range "0 .. 127"; | |||
} | } | |||
description | ||||
"Priority of interface for DIS election."; | ||||
} | ||||
description "Interface DIS election priority grouping"; | ||||
} | ||||
grouping priority-cfg-with-default { | ||||
leaf value { | ||||
type uint8 { | ||||
range "0 .. 127"; | ||||
} | ||||
default 64; | default 64; | |||
description | description | |||
"Priority of interface for DIS election."; | "Priority of interface for DIS election."; | |||
} | } | |||
description "Interface DIS election priority grouping"; | description "Interface DIS election priority grouping"; | |||
} | } | |||
grouping metric-cfg { | grouping metric-cfg { | |||
leaf value { | leaf value { | |||
type wide-metric; | type wide-metric; | |||
description "Metric value."; | ||||
} | ||||
description "Interface metric grouping"; | ||||
} | ||||
grouping metric-cfg-with-default { | ||||
leaf value { | ||||
type wide-metric; | ||||
default "10"; | default "10"; | |||
description "Metric value."; | description "Metric value."; | |||
} | } | |||
description "Interface metric grouping"; | description "Interface metric grouping"; | |||
} | } | |||
grouping metric-parameters { | grouping metric-parameters { | |||
container metric-type { | container metric-type { | |||
uses metric-type-global-cfg; | uses metric-type-global-cfg-with-default; | |||
container level-1 { | container level-1 { | |||
uses metric-type-global-cfg; | uses metric-type-global-cfg; | |||
description "level-1 specific configuration"; | description "level-1 specific configuration"; | |||
} | } | |||
container level-2 { | container level-2 { | |||
uses metric-type-global-cfg; | uses metric-type-global-cfg; | |||
description "level-2 specific configuration"; | description "level-2 specific configuration"; | |||
} | } | |||
description "Metric style global configuration"; | description "Metric style global configuration"; | |||
} | } | |||
container default-metric { | container default-metric { | |||
uses default-metric-global-cfg; | uses default-metric-global-cfg-with-default; | |||
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"; | |||
} | } | |||
container level-2 { | container level-2 { | |||
uses default-metric-global-cfg; | uses default-metric-global-cfg; | |||
description "level-2 specific configuration"; | description "level-2 specific configuration"; | |||
} | } | |||
description "Default metric global configuration"; | description "Default metric global configuration"; | |||
} | } | |||
skipping to change at page 56, line 35 ¶ | skipping to change at page 59, line 4 ¶ | |||
units "seconds"; | units "seconds"; | |||
description | description | |||
"Lifetime of the router's LSPs in seconds."; | "Lifetime of the router's LSPs in seconds."; | |||
} | } | |||
leaf lsp-refresh { | leaf lsp-refresh { | |||
if-feature lsp-refresh; | if-feature lsp-refresh; | |||
type rt-types:timer-value-seconds16; | type rt-types:timer-value-seconds16; | |||
units "seconds"; | units "seconds"; | |||
description | description | |||
"Refresh interval of the router's LSPs in seconds."; | "Refresh interval of the router's LSPs in seconds."; | |||
} | } | |||
leaf poi-tlv { | leaf poi-tlv { | |||
if-feature poi-tlv; | if-feature poi-tlv; | |||
type boolean; | type boolean; | |||
default false; | default false; | |||
description | description | |||
"Enable advertisement of IS-IS purge TLV."; | "Enable advertisement of IS-IS Purge Originator | |||
Identification TLV."; | ||||
} | } | |||
description "Grouping for LSP global parameters."; | description "Grouping for LSP global parameters."; | |||
} | } | |||
grouping spf-parameters { | grouping spf-parameters { | |||
container spf-control { | container spf-control { | |||
leaf paths { | leaf paths { | |||
if-feature max-ecmp; | if-feature max-ecmp; | |||
type uint16 { | type uint16 { | |||
range "1..32"; | range "1..65535"; | |||
} | } | |||
description | description | |||
"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 | |||
skipping to change at page 61, line 28 ¶ | skipping to change at page 63, line 45 ¶ | |||
description "level-1 specific configuration"; | description "level-1 specific configuration"; | |||
} | } | |||
container level-2 { | container level-2 { | |||
uses hello-authentication-cfg; | uses hello-authentication-cfg; | |||
description "level-2 specific configuration"; | description "level-2 specific configuration"; | |||
} | } | |||
description | description | |||
"Authentication type to be used in hello messages."; | "Authentication type to be used in hello messages."; | |||
} | } | |||
container hello-interval { | container hello-interval { | |||
uses hello-interval-cfg; | uses hello-interval-cfg-with-default; | |||
container level-1 { | container level-1 { | |||
uses hello-interval-cfg; | uses hello-interval-cfg; | |||
description "level-1 specific configuration"; | description "level-1 specific configuration"; | |||
} | } | |||
container level-2 { | container level-2 { | |||
uses hello-interval-cfg; | uses hello-interval-cfg; | |||
description "level-2 specific configuration"; | description "level-2 specific configuration"; | |||
} | } | |||
description "Interval between hello messages."; | description "Interval between hello messages."; | |||
} | } | |||
container hello-multiplier { | container hello-multiplier { | |||
uses hello-multiplier-cfg; | uses hello-multiplier-cfg-with-default; | |||
container level-1 { | container level-1 { | |||
uses hello-multiplier-cfg; | uses hello-multiplier-cfg; | |||
description "level-1 specific configuration"; | description "level-1 specific configuration"; | |||
} | } | |||
container level-2 { | container level-2 { | |||
uses hello-multiplier-cfg; | uses hello-multiplier-cfg; | |||
description "level-2 specific configuration"; | description "level-2 specific configuration"; | |||
} | } | |||
description "Hello multiplier configuration."; | description "Hello multiplier configuration."; | |||
} | } | |||
container priority { | container priority { | |||
must '../interface-type = "broadcast"' { | must '../interface-type = "broadcast"' { | |||
error-message | error-message | |||
"Priority only applies to broadcast interfaces."; | "Priority only applies to broadcast interfaces."; | |||
description "Check for broadcast interface."; | description "Check for broadcast interface."; | |||
} | } | |||
uses priority-cfg; | uses priority-cfg-with-default; | |||
container level-1 { | container level-1 { | |||
uses priority-cfg; | uses priority-cfg; | |||
description "level-1 specific configuration"; | description "level-1 specific configuration"; | |||
} | } | |||
container level-2 { | container level-2 { | |||
uses priority-cfg; | uses priority-cfg; | |||
description "level-2 specific configuration"; | description "level-2 specific configuration"; | |||
} | } | |||
description "Priority for DIS election."; | description "Priority for DIS election."; | |||
} | } | |||
container metric { | container metric { | |||
uses metric-cfg; | uses metric-cfg-with-default; | |||
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 configuration."; | description "Metric configuration."; | |||
} | } | |||
skipping to change at page 70, line 4 ¶ | skipping to change at page 72, line 20 ¶ | |||
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."; | |||
} | } | |||
/* Groupings for various log buffers */ | /* Groupings for various log buffers */ | |||
grouping spf-log { | grouping spf-log { | |||
container spf-log { | container spf-log { | |||
config false; | config false; | |||
list event { | list event { | |||
key id; | key id; | |||
leaf id { | leaf id { | |||
type uint32; | type yang:counter32; | |||
description | description | |||
"Event identifier - purely internal value."; | "Event identifier - purely internal value. | |||
It is expected the most recent events to have the bigger | ||||
id number."; | ||||
} | } | |||
leaf spf-type { | leaf spf-type { | |||
type enumeration { | type enumeration { | |||
enum full { | enum full { | |||
description "Full SPF computation."; | description "Full SPF computation."; | |||
} | } | |||
enum route-only { | enum route-only { | |||
description | description | |||
"Route reachability only SPF computation"; | "Route reachability only SPF computation"; | |||
} | } | |||
skipping to change at page 71, line 33 ¶ | skipping to change at page 74, line 4 ¶ | |||
"This container lists the SPF computation events."; | "This container lists the SPF computation events."; | |||
} | } | |||
description "Grouping for spf-log events."; | description "Grouping for spf-log events."; | |||
} | } | |||
grouping lsp-log { | grouping lsp-log { | |||
container lsp-log { | container lsp-log { | |||
config false; | config false; | |||
list event { | list event { | |||
key id; | key id; | |||
leaf id { | leaf id { | |||
type uint32; | type yang:counter32; | |||
description | description | |||
"Event identifier - purely internal value."; | "Event identifier - purely internal value. | |||
It is expected the most recent events to have the bigger | ||||
id number."; | ||||
} | } | |||
leaf level { | leaf level { | |||
type level-number; | type level-number; | |||
description | description | |||
"IS-IS level number for LSP"; | "IS-IS level number for LSP"; | |||
} | } | |||
container lsp { | container lsp { | |||
leaf lsp { | leaf lsp { | |||
type lsp-id; | type lsp-id; | |||
description | description | |||
skipping to change at page 74, line 45 ¶ | skipping to change at page 77, line 17 ¶ | |||
leaf ip-prefix { | leaf ip-prefix { | |||
type inet:ipv4-address; | type inet:ipv4-address; | |||
description "IPv4 prefix address"; | description "IPv4 prefix address"; | |||
} | } | |||
leaf prefix-len { | leaf prefix-len { | |||
type uint8; | type uint8; | |||
description "IPv4 prefix length (in bits)"; | description "IPv4 prefix length (in bits)"; | |||
} | } | |||
leaf i-e { | leaf i-e { | |||
type boolean; | type boolean; | |||
description "Internal or External (I/E) Metric bit value."; | description "Internal or External (I/E) Metric bit value. | |||
Set to false to indicate an internal metric."; | ||||
} | } | |||
container default-metric { | container default-metric { | |||
leaf metric { | leaf metric { | |||
type std-metric; | type std-metric; | |||
description "Default IS-IS metric for IPv4 prefix"; | description "Default IS-IS metric for IPv4 prefix"; | |||
} | } | |||
description "IS-IS default metric container."; | description "IS-IS default metric container."; | |||
} | } | |||
container delay-metric { | container delay-metric { | |||
leaf metric { | leaf metric { | |||
type std-metric; | type std-metric; | |||
description "IS-IS delay metric for IPv4 prefix"; | description "IS-IS delay metric for IPv4 prefix"; | |||
} | } | |||
leaf supported { | leaf supported { | |||
type boolean; | type boolean; | |||
default "false"; | default "false"; | |||
description | description | |||
skipping to change at page 75, line 28 ¶ | skipping to change at page 77, line 49 ¶ | |||
} | } | |||
container expense-metric { | container expense-metric { | |||
leaf metric { | leaf metric { | |||
type std-metric; | type std-metric; | |||
description "IS-IS expense metric for IPv4 prefix"; | description "IS-IS expense metric for IPv4 prefix"; | |||
} | } | |||
leaf supported { | leaf supported { | |||
type boolean; | type boolean; | |||
default "false"; | default "false"; | |||
description | description | |||
"Indicates whether IS-IS delay metric is supported."; | "Indicates whether IS-IS expense metric is supported."; | |||
} | } | |||
description "IS-IS expense metric container."; | description "IS-IS expense metric container."; | |||
} | } | |||
container error-metric { | container error-metric { | |||
leaf metric { | leaf metric { | |||
type std-metric; | type std-metric; | |||
description | description | |||
"This leaf describes the IS-IS error metric value"; | "This leaf describes the IS-IS error metric value"; | |||
} | } | |||
leaf supported { | leaf supported { | |||
type boolean; | type boolean; | |||
default "false"; | default "false"; | |||
skipping to change at page 75, line 41 ¶ | skipping to change at page 78, line 15 ¶ | |||
} | } | |||
container error-metric { | container error-metric { | |||
leaf metric { | leaf metric { | |||
type std-metric; | type std-metric; | |||
description | description | |||
"This leaf describes the IS-IS error metric value"; | "This leaf describes the IS-IS error metric value"; | |||
} | } | |||
leaf supported { | leaf supported { | |||
type boolean; | type boolean; | |||
default "false"; | default "false"; | |||
description "IS-IS error metric for IPv4 prefix"; | description | |||
"Indicates whether IS-IS error metric is supported."; | ||||
} | } | |||
description "IS-IS error metric container."; | description "IS-IS error metric container."; | |||
} | } | |||
} | } | |||
grouping prefix-ipv4-extended { | grouping prefix-ipv4-extended { | |||
description | description | |||
"Grouping for attributes of an IPv4 extended prefix | "Grouping for attributes of an IPv4 extended prefix | |||
as defined in RFC5305."; | as defined in RFC5305."; | |||
leaf up-down { | leaf up-down { | |||
type boolean; | type boolean; | |||
description "Value of up/down bit."; | description "Value of up/down bit. | |||
Set to true when the prefix has been advertised down | ||||
the hierarchy."; | ||||
} | } | |||
leaf ip-prefix { | leaf ip-prefix { | |||
type inet:ipv4-address; | type inet:ipv4-address; | |||
description "IPv4 prefix address"; | description "IPv4 prefix address"; | |||
} | } | |||
leaf prefix-len { | leaf prefix-len { | |||
type uint8; | type uint8; | |||
description "IPv4 prefix length (in bits)"; | description "IPv4 prefix length (in bits)"; | |||
} | } | |||
leaf metric { | leaf metric { | |||
skipping to change at page 76, line 26 ¶ | skipping to change at page 78, line 52 ¶ | |||
description "IS-IS wide metric value"; | description "IS-IS wide metric value"; | |||
} | } | |||
leaf-list tag { | leaf-list tag { | |||
type uint32; | type uint32; | |||
description | description | |||
"List of 32-bit tags associated with the IPv4 prefix."; | "List of 32-bit tags associated with the IPv4 prefix."; | |||
} | } | |||
leaf-list tag64 { | leaf-list tag64 { | |||
type uint64; | type uint64; | |||
description | description | |||
"List of 32-bit tags associated with the IPv4 prefix."; | "List of 64-bit tags associated with the IPv4 prefix."; | |||
} | } | |||
uses prefix-attributes-extension; | uses prefix-attributes-extension; | |||
} | } | |||
grouping prefix-ipv6-extended { | grouping prefix-ipv6-extended { | |||
description "Grouping for attributes of an IPv6 prefix | description "Grouping for attributes of an IPv6 prefix | |||
as defined in RFC5308."; | as defined in RFC5308."; | |||
leaf up-down { | leaf up-down { | |||
type boolean; | type boolean; | |||
description "Value of up/down bit."; | description "Value of up/down bit. | |||
Set to true when the prefix has been advertised down | ||||
the hierarchy."; | ||||
} | } | |||
leaf ip-prefix { | leaf ip-prefix { | |||
type inet:ipv6-address; | type inet:ipv6-address; | |||
description "IPv6 prefix address"; | description "IPv6 prefix address"; | |||
} | } | |||
leaf prefix-len { | leaf prefix-len { | |||
type uint8; | type uint8; | |||
description "IPv4 prefix length (in bits)"; | description "IPv6 prefix length (in bits)"; | |||
} | } | |||
leaf metric { | leaf metric { | |||
type wide-metric; | type wide-metric; | |||
description "IS-IS wide metric value"; | description "IS-IS wide metric value"; | |||
} | } | |||
leaf-list tag { | leaf-list tag { | |||
type uint32; | type uint32; | |||
description | description | |||
"List of 32-bit tags associated with the IPv4 prefix."; | "List of 32-bit tags associated with the IPv4 prefix."; | |||
} | } | |||
leaf-list tag64 { | leaf-list tag64 { | |||
type uint64; | type uint64; | |||
description | description | |||
"List of 32-bit tags associated with the IPv4 prefix."; | "List of 64-bit tags associated with the IPv4 prefix."; | |||
} | } | |||
uses prefix-attributes-extension; | uses prefix-attributes-extension; | |||
} | } | |||
/* TLVs and sub-TLVs for neighbors */ | /* TLVs and sub-TLVs for neighbors */ | |||
grouping neighbor-link-attributes { | grouping neighbor-link-attributes { | |||
description | description | |||
"Grouping for link attributes as defined | "Grouping for link attributes as defined | |||
in RFC5029"; | in RFC5029"; | |||
skipping to change at page 84, line 41 ¶ | skipping to change at page 87, line 19 ¶ | |||
leaf supported { | leaf supported { | |||
type boolean; | type boolean; | |||
default "false"; | default "false"; | |||
description "IS-IS delay metric supported"; | description "IS-IS delay metric supported"; | |||
} | } | |||
description "IS-IS delay metric container"; | description "IS-IS delay metric container"; | |||
} | } | |||
container expense-metric { | container expense-metric { | |||
leaf metric { | leaf metric { | |||
type std-metric; | type std-metric; | |||
description "IS-IS delay expense metric value"; | description "IS-IS expense metric value"; | |||
} | } | |||
leaf supported { | leaf supported { | |||
type boolean; | type boolean; | |||
default "false"; | default "false"; | |||
description "IS-IS delay expense metric supported"; | description "IS-IS expense metric supported"; | |||
} | } | |||
description "IS-IS delay expense metric container"; | description "IS-IS expense metric container"; | |||
} | } | |||
container error-metric { | container error-metric { | |||
leaf metric { | leaf metric { | |||
type std-metric; | type std-metric; | |||
description "IS-IS error metric value"; | description "IS-IS error metric value"; | |||
} | } | |||
leaf supported { | leaf supported { | |||
type boolean; | type boolean; | |||
default "false"; | default "false"; | |||
description "IS-IS error metric supported"; | description "IS-IS error metric supported"; | |||
skipping to change at page 102, line 24 ¶ | skipping to change at page 104, line 48 ¶ | |||
notification rejected-adjacency { | notification rejected-adjacency { | |||
uses notification-instance-hdr; | uses notification-instance-hdr; | |||
uses notification-interface-hdr; | uses notification-interface-hdr; | |||
leaf raw-pdu { | leaf raw-pdu { | |||
type binary; | type binary; | |||
description | description | |||
"Received raw PDU."; | "Received raw PDU."; | |||
} | } | |||
leaf reason { | leaf reason { | |||
type string { | type string { | |||
length "1..255"; | length "0..255"; | |||
} | } | |||
description | description | |||
"The system may provide a reason to reject the | "The system may provide a reason to reject the | |||
adjacency. If the reason is not available, | adjacency. If the reason is not available, | |||
an empty string will be returned. | the reason string will not be returned. | |||
The expected format is a single line text."; | The expected format is a single line text."; | |||
} | } | |||
description | description | |||
"This notification is sent when the system receives a | "This notification is sent when the system receives a | |||
Hello PDU from an IS but does not establish an adjacency | Hello PDU from an IS but does not establish an adjacency | |||
for some reason. The notification generation must be | for some reason. The notification generation must be | |||
throttled with at least 5 seconds between successive | throttled with at least 5 seconds between successive | |||
notifications."; | notifications."; | |||
} | } | |||
skipping to change at page 106, line 30 ¶ | skipping to change at page 109, line 5 ¶ | |||
/isis/interfaces/interface[name] | /isis/interfaces/interface[name] | |||
For IS-IS, the ability to modify IS-IS configuration will allow the | For IS-IS, the ability to modify IS-IS configuration will allow the | |||
entire IS-IS domain to be compromised including forming adjacencies | entire IS-IS domain to be compromised including forming adjacencies | |||
with unauthorized routers to misroute traffic or mount a massive | with unauthorized routers to misroute traffic or mount a massive | |||
Denial-of-Service (DoS) attack. For example, adding IS-IS on any | Denial-of-Service (DoS) attack. For example, adding IS-IS on any | |||
unprotected interface could allow an IS-IS adjacency to be formed | unprotected interface could allow an IS-IS adjacency to be formed | |||
with an unauthorized and malicious neighbor. Once an adjacency is | with an unauthorized and malicious neighbor. Once an adjacency is | |||
formed, traffic could be hijacked. As a simpler example, a Denial- | 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 | 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 | interface to be asymmetric such that a hard routing loop ensues. In | |||
general, unauthorized modification of most IS-IS features will pose | general, unauthorized modification of most IS-IS features will pose | |||
their own set of security risks and the "Security Considerations" in | their own set of security risks and the "Security Considerations" in | |||
the respective reference RFCs should be consulted. | the respective reference RFCs should be consulted. | |||
Some of the readable data nodes in the ietf-isis.yang module may be | Some of the readable data nodes in the ietf-isis.yang module may be | |||
considered sensitive or vulnerable in some network environments. It | considered sensitive or vulnerable in some network environments. It | |||
is thus important to control read access (e.g., via get, get-config, | 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 | or notification) to these data nodes. The exposure of the Link State | |||
Database (LSDB) will expose the detailed topology of the network. | Database (LSDB) will expose the detailed topology of the network. | |||
The Link State Database (LSDB) is represented by the following schema | Similarly, the IS-IS local RIB exposes the reachable prefixes in the | |||
node: | IS-IS routing domain. The Link State Database (LSDB) and local RIB | |||
are represented by the following schema nodes: | ||||
/isis/database | /isis/database | |||
Exposure of the Link State Database includes information beyond the | /isis/local-rib | |||
scope of the IS-IS router and this may be undesirable since exposure | ||||
may facilitate other attacks. Additionally, the complete IP network | Exposure of the Link State Database and local RIB include information | |||
topology and, if deployed, the traffic engineering topology of the | beyond the scope of the IS-IS router and this may be undesirable | |||
IS-IS domain can be reconstructed. Network operators may consider | since exposure may facilitate other attacks. Additionally, the | |||
their topologies to be sensitive confidential data. | complete IP network topology and, if deployed, the traffic | |||
engineering topology of the IS-IS domain can be reconstructed from | ||||
the Link State Database. Though not as straightforward, the IS-IS | ||||
local RIB can also be discover topological information. 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 direct specification of | |||
of key and authentication algorithm. Hence, authentication | key and authentication algorithm. Hence, authentication | |||
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 IS-IS 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 to 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 | The actual authentication key data (whether locally specified or part | |||
of a key-chain) is sensitive and needs to be kept secret from | of a key-chain) is sensitive and needs to be kept secret from | |||
unauthorized parties; compromise of the key data would allow an | unauthorized parties; compromise of the key data would allow an | |||
attacker to forge IS-IS traffic that would be accepted as authentic, | attacker to forge IS-IS traffic that would be accepted as authentic, | |||
potentially compromising the entirety IS-IS domain. | potentially compromising the entirety IS-IS domain. | |||
The model describes several notifications, implementations must rate- | ||||
limit the generation of these notifications to avoid creating | ||||
significant notification load. Otherwise, this notification load may | ||||
have some side effects on the system stability and may be exploited | ||||
as an attack vector. | ||||
8. Contributors | 8. Contributors | |||
The authors would like to thank Kiran Agrahara Sreenivasa, Dean | The 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. Acknowledgements | 9. Acknowledgements | |||
The authors would like to thank Tom Petch, Alvaro Retena, Stewart | The authors would like to thank Tom Petch, Alvaro Retana, Stewart | |||
Bryant, and Barry Leiba for their review and comments. | Bryant, Barry Leiba, Benjamin Kaduk and Adam Roach, and Roman Danyliw | |||
for their review and comments. | ||||
10. IANA Considerations | 10. IANA Considerations | |||
The IANA is requested to assign two new URIs from the IETF XML | The IANA is requested to assign two new URIs from the IETF XML | |||
registry [RFC3688]. Authors are suggesting the following URI: | registry [RFC3688]. Authors are suggesting the following URI: | |||
URI: urn:ietf:params:xml:ns:yang:ietf-isis | URI: urn:ietf:params:xml:ns:yang:ietf-isis | |||
Registrant Contact: 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 | |||
skipping to change at page 109, line 19 ¶ | skipping to change at page 112, line 5 ¶ | |||
[RFC5286] Atlas, A., Ed. and A. Zinin, Ed., "Basic Specification for | [RFC5286] Atlas, A., Ed. and A. Zinin, Ed., "Basic Specification for | |||
IP Fast Reroute: Loop-Free Alternates", RFC 5286, | IP Fast Reroute: Loop-Free Alternates", RFC 5286, | |||
DOI 10.17487/RFC5286, September 2008, | DOI 10.17487/RFC5286, September 2008, | |||
<https://www.rfc-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>. | |||
[RFC5302] Li, T., Smit, H., and T. Przygienda, "Domain-wide Prefix | [RFC5302] Li, T., Smit, H., and T. Przygienda, "Domain-Wide Prefix | |||
Distribution with Two-Level IS-IS", RFC 5302, | Distribution with Two-Level IS-IS", RFC 5302, | |||
DOI 10.17487/RFC5302, October 2008, | DOI 10.17487/RFC5302, October 2008, | |||
<https://www.rfc-editor.org/info/rfc5302>. | <https://www.rfc-editor.org/info/rfc5302>. | |||
[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, | |||
skipping to change at page 112, line 16 ¶ | skipping to change at page 115, line 7 ¶ | |||
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>. | |||
[RFC8570] Ginsberg, L., Ed., Previdi, S., Ed., Giacalone, S., Ward, | [RFC8570] Ginsberg, L., Ed., Previdi, S., Ed., Giacalone, S., Ward, | |||
D., Drake, J., and Q. Wu, "IS-IS Traffic Engineering (TE) | D., Drake, J., and Q. Wu, "IS-IS Traffic Engineering (TE) | |||
Metric Extensions", RFC 8570, DOI 10.17487/RFC8570, March | Metric Extensions", RFC 8570, DOI 10.17487/RFC8570, March | |||
2019, <https://www.rfc-editor.org/info/rfc8570>. | 2019, <https://www.rfc-editor.org/info/rfc8570>. | |||
11.2. Informative References | 11.2. Informative References | |||
[I-D.ietf-rtgwg-segment-routing-ti-lfa] | ||||
Litkowski, S., Bashandy, A., Filsfils, C., Decraene, B., | ||||
Francois, P., daniel.voyer@bell.ca, d., Clad, F., and P. | ||||
Camarillo, "Topology Independent Fast Reroute using | ||||
Segment Routing", draft-ietf-rtgwg-segment-routing-ti- | ||||
lfa-01 (work in progress), March 2019. | ||||
[RFC7812] Atlas, A., Bowers, C., and G. Enyedi, "An Architecture for | ||||
IP/LDP Fast Reroute Using Maximally Redundant Trees (MRT- | ||||
FRR)", RFC 7812, DOI 10.17487/RFC7812, June 2016, | ||||
<https://www.rfc-editor.org/info/rfc7812>. | ||||
[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>192.0.2.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 xmlns:isis="urn:ietf:params:xml:ns:yang:ietf-isis"> | <type 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"> | |||
End of changes. 99 change blocks. | ||||
740 lines changed or deleted | 897 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |