| < draft-ietf-isis-yang-isis-cfg-14.txt | draft-ietf-isis-yang-isis-cfg-15.txt > | |||
|---|---|---|---|---|
| IS-IS Working Group S. Litkowski | IS-IS Working Group S. Litkowski | |||
| Internet-Draft Orange | Internet-Draft Orange | |||
| Intended status: Standards Track D. Yeung | Intended status: Standards Track D. Yeung | |||
| Expires: May 7, 2017 Arrcus, Inc | Expires: August 5, 2017 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 | |||
| November 03, 2016 | February 01, 2017 | |||
| YANG Data Model for IS-IS protocol | YANG Data Model for IS-IS protocol | |||
| draft-ietf-isis-yang-isis-cfg-14 | draft-ietf-isis-yang-isis-cfg-15 | |||
| Abstract | Abstract | |||
| This document defines a YANG data model that can be used to configure | This document defines a YANG data model that can be used to configure | |||
| and manage IS-IS protocol on network elements. | and manage IS-IS protocol on network elements. | |||
| Requirements Language | Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| skipping to change at page 1, line 44 ¶ | skipping to change at page 1, line 44 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on May 7, 2017. | This Internet-Draft will expire on August 5, 2017. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2017 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.1. Tree diagram . . . . . . . . . . . . . . . . . . . . . . 3 | 1.1. Tree diagram . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 3 | 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 3 | |||
| 2.1. IS-IS Configuration . . . . . . . . . . . . . . . . . . . 10 | 2.1. IS-IS Configuration . . . . . . . . . . . . . . . . . . . 11 | |||
| 2.2. Multitopology Parameters . . . . . . . . . . . . . . . . 10 | 2.2. Multitopology Parameters . . . . . . . . . . . . . . . . 11 | |||
| 2.3. Per-Level Parameters . . . . . . . . . . . . . . . . . . 10 | 2.3. Per-Level Parameters . . . . . . . . . . . . . . . . . . 12 | |||
| 2.4. Per-Interface Parameters . . . . . . . . . . . . . . . . 12 | 2.4. Per-Interface Parameters . . . . . . . . . . . . . . . . 13 | |||
| 2.5. Authentication Parameters . . . . . . . . . . . . . . . . 16 | 2.5. Authentication Parameters . . . . . . . . . . . . . . . . 17 | |||
| 2.6. IGP/LDP synchronization . . . . . . . . . . . . . . . . . 16 | 2.6. IGP/LDP synchronization . . . . . . . . . . . . . . . . . 17 | |||
| 2.7. ISO parameters . . . . . . . . . . . . . . . . . . . . . 16 | 2.7. ISO parameters . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 2.8. IP FRR . . . . . . . . . . . . . . . . . . . . . . . . . 16 | 2.8. IP FRR . . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 2.9. Operational State . . . . . . . . . . . . . . . . . . . . 17 | 2.9. Operational States . . . . . . . . . . . . . . . . . . . 18 | |||
| 3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 17 | 3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 18 | 4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 5. Interaction with Other YANG Modules . . . . . . . . . . . . . 22 | 5. Interaction with Other YANG Modules . . . . . . . . . . . . . 23 | |||
| 6. IS-IS YANG Module . . . . . . . . . . . . . . . . . . . . . . 22 | 6. IS-IS YANG Module . . . . . . . . . . . . . . . . . . . . . . 24 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 97 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 102 | |||
| 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 98 | 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 103 | |||
| 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 98 | 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 103 | |||
| 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 98 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 103 | |||
| 11. Change log for ietf-isis YANG module . . . . . . . . . . . . 99 | 11. Change log for ietf-isis YANG module . . . . . . . . . . . . 104 | |||
| 11.1. From version -13 to version -14 . . . . . . . . . . . . 99 | 11.1. From version -14 to version -15 . . . . . . . . . . . . 104 | |||
| 11.2. From version -12 to version -13 . . . . . . . . . . . . 99 | 11.2. From version -13 to version -14 . . . . . . . . . . . . 104 | |||
| 11.3. From version -09 to version -12 . . . . . . . . . . . . 99 | 11.3. From version -12 to version -13 . . . . . . . . . . . . 104 | |||
| 11.4. From version -08 to version -09 . . . . . . . . . . . . 99 | 11.4. From version -09 to version -12 . . . . . . . . . . . . 105 | |||
| 11.5. From version -07 to version -08 . . . . . . . . . . . . 99 | 11.5. From version -08 to version -09 . . . . . . . . . . . . 105 | |||
| 11.6. From version -05 to version -07 . . . . . . . . . . . . 100 | 11.6. From version -07 to version -08 . . . . . . . . . . . . 105 | |||
| 11.7. From version -03 to version -05 . . . . . . . . . . . . 100 | 11.7. From version -05 to version -07 . . . . . . . . . . . . 105 | |||
| 11.8. From version -02 to version -03 . . . . . . . . . . . . 100 | 11.8. From version -03 to version -05 . . . . . . . . . . . . 106 | |||
| 11.9. From version -01 to version -02 . . . . . . . . . . . . 100 | 11.9. From version -02 to version -03 . . . . . . . . . . . . 106 | |||
| 11.10. From version -00 to version -01 . . . . . . . . . . . . 101 | 11.10. From version -01 to version -02 . . . . . . . . . . . . 106 | |||
| 11.11. From version -00 to version -01 . . . . . . . . . . . . 107 | ||||
| 12. Normative References . . . . . . . . . . . . . . . . . . . . 101 | 12. Normative References . . . . . . . . . . . . . . . . . . . . 107 | |||
| Appendix A. Example of IS-IS configuration in XML . . . . . . . 103 | Appendix A. Example of IS-IS configuration in XML . . . . . . . 108 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 105 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 111 | |||
| 1. Introduction | 1. Introduction | |||
| This document defines a YANG data model for IS-IS routing protocol. | This document defines a YANG data model for IS-IS routing protocol. | |||
| The data model covers configuration of an IS-IS routing protocol | The data model covers configuration of an IS-IS routing protocol | |||
| instance as well as operational states. | instance as well as operational states. | |||
| 1.1. Tree diagram | 1.1. Tree diagram | |||
| skipping to change at page 4, line 21 ¶ | skipping to change at page 4, line 23 ¶ | |||
| : | : | |||
| +--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 mpls | +--rw mpls | |||
| | +--rw ipv4-router-id? inet:ipv4-address {ipv4-router-id}? | | +--rw ipv4-router-id? inet:ipv4-address {ipv4-router-id}? | |||
| | +--rw ipv6-router-id? inet:ipv6-address {ipv6-router-id}? | | +--rw ipv6-router-id? inet:ipv6-address {ipv6-router-id}? | |||
| | +--rw igp-ldp-sync {igp-ldp-sync}? | | +--rw ldp | |||
| +--rw reference-bandwidth? uint32 {reference-bandwidth}? | | ... | |||
| +--rw auto-cost {auto-cost}? | ||||
| | +--rw reference-bandwidth? uint32 | ||||
| | +--rw enable? boolean | ||||
| +--rw lsp-mtu? uint16 | +--rw lsp-mtu? uint16 | |||
| +--rw lsp-lifetime? uint16 | +--rw lsp-lifetime? uint16 | |||
| +--rw lsp-refresh? uint16 {lsp-refresh}? | +--rw lsp-refresh? uint16 {lsp-refresh}? | |||
| +--rw spf-control | ||||
| | +--rw ietf-spf-delay {ietf-spf-delay}? | ||||
| | ... | ||||
| +--rw graceful-restart {graceful-restart}? | +--rw graceful-restart {graceful-restart}? | |||
| | +--rw enable? boolean | | +--rw enable? boolean | |||
| | +--rw restart-interval? uint16 | ||||
| | +--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 authentication | +--rw authentication | |||
| | +--rw (authentication-type)? | | +--rw (authentication-type)? | |||
| | | ... | | | ... | |||
| | +--rw level-1 | | +--rw level-1 | |||
| | | ... | | | ... | |||
| skipping to change at page 5, line 32 ¶ | skipping to change at page 5, line 42 ¶ | |||
| otocol: | otocol: | |||
| +--ro isis | +--ro isis | |||
| +--ro enable? boolean {admin-control}? | +--ro enable? boolean {admin-control}? | |||
| +--ro level-type? level | +--ro level-type? level | |||
| +--ro system-id? system-id | +--ro system-id? system-id | |||
| +--ro maximum-area-addresses? uint8 {maximum-area-addresses}? | +--ro maximum-area-addresses? uint8 {maximum-area-addresses}? | |||
| +--ro area-address* area-address | +--ro area-address* area-address | |||
| +--ro mpls | +--ro mpls | |||
| | +--ro ipv4-router-id? inet:ipv4-address {ipv4-router-id}? | | +--ro ipv4-router-id? inet:ipv4-address {ipv4-router-id}? | |||
| | +--ro ipv6-router-id? inet:ipv6-address {ipv6-router-id}? | | +--ro ipv6-router-id? inet:ipv6-address {ipv6-router-id}? | |||
| | +--ro igp-ldp-sync {igp-ldp-sync}? | | +--ro ldp | |||
| +--ro reference-bandwidth? uint32 {reference-bandwidth}? | | ... | |||
| +--ro auto-cost {auto-cost}? | ||||
| | +--ro reference-bandwidth? uint32 | ||||
| | +--ro enable? boolean | ||||
| +--ro lsp-mtu? uint16 | +--ro lsp-mtu? uint16 | |||
| +--ro lsp-lifetime? uint16 | +--ro lsp-lifetime? uint16 | |||
| +--ro lsp-refresh? uint16 {lsp-refresh}? | +--ro lsp-refresh? uint16 {lsp-refresh}? | |||
| +--ro spf-control | ||||
| | +--ro ietf-spf-delay {ietf-spf-delay}? | ||||
| | ... | ||||
| +--ro graceful-restart {graceful-restart}? | +--ro graceful-restart {graceful-restart}? | |||
| | +--ro enable? boolean | | +--ro enable? boolean | |||
| | +--ro restart-interval? uint16 | ||||
| | +--ro helper-enable? boolean | ||||
| +--ro nsr {nsr}? | +--ro nsr {nsr}? | |||
| | +--ro enable? boolean | | +--ro enable? boolean | |||
| +--ro node-tags {node-tag}? | +--ro node-tags {node-tag}? | |||
| | +--ro node-tag* [tag] | | +--ro node-tag* [tag] | |||
| | ... | | ... | |||
| +--ro authentication | +--ro authentication | |||
| | +--ro (authentication-type)? | | +--ro (authentication-type)? | |||
| | | ... | | | ... | |||
| | +--ro level-1 | | +--ro level-1 | |||
| | | ... | | | ... | |||
| skipping to change at page 6, line 32 ¶ | skipping to change at page 6, line 49 ¶ | |||
| +--ro overload-max-metric {overload-max-metric}? | +--ro overload-max-metric {overload-max-metric}? | |||
| | +--ro timeout? uint16 | | +--ro timeout? uint16 | |||
| +--ro fast-reroute {fast-reroute}? | +--ro fast-reroute {fast-reroute}? | |||
| | +--ro lfa {lfa}? | | +--ro lfa {lfa}? | |||
| | +--ro protected-routes | | +--ro protected-routes | |||
| | | ... | | | ... | |||
| | +--ro nonprotected-routes | | +--ro nonprotected-routes | |||
| | | ... | | | ... | |||
| | +--ro protection-statistics* [frr-protection-method] | | +--ro protection-statistics* [frr-protection-method] | |||
| | ... | | ... | |||
| +--ro ietf-spf-delay {ietf-spf-delay}? | ||||
| | +--ro initial-delay? uint16 | ||||
| | +--ro short-delay? uint16 | ||||
| | +--ro long-delay? uint16 | ||||
| | +--ro hold-down? uint16 | ||||
| | +--ro time-to-learn? uint16 | ||||
| | +--ro current-state? enumeration | ||||
| | +--ro remaining-time-to-learn? uint16 | ||||
| | +--ro remaining-hold-down? uint16 | ||||
| | +--ro last-event-received? yang:timestamp | ||||
| | +--ro next-spf-time? yang:timestamp | ||||
| | +--ro last-spf-time? yang:timestamp | ||||
| +--ro local-rib | ||||
| | +--ro route* [prefix] | ||||
| | ... | ||||
| +--ro topologies* [name] | +--ro topologies* [name] | |||
| | +--ro name leafref | | +--ro name leafref | |||
| | +--ro fast-route {fast-reroute}? | | +--ro local-rib | |||
| | ... | | ... | |||
| +--ro system-counters | +--ro system-counters | |||
| | +--ro level* [level] | | +--ro level* [level] | |||
| | ... | | ... | |||
| +--ro interfaces | +--ro interfaces | |||
| | +--ro interface* [interface] | | +--ro interface* [interface] | |||
| | ... | | ... | |||
| +--ro spf-log | +--ro spf-log | |||
| | +--ro event* [id] | | +--ro event* [id] | |||
| | ... | | ... | |||
| skipping to change at page 7, line 18 ¶ | skipping to change at page 7, line 50 ¶ | |||
| | +--ro input | | +--ro input | |||
| | +--ro routing-protocol-instance-name instance-state-ref | | +--ro routing-protocol-instance-name instance-state-ref | |||
| | +--ro level? level | | +--ro level? level | |||
| | +--ro interface? string | | +--ro interface? string | |||
| +---x clear-database | +---x clear-database | |||
| +--ro input | +--ro input | |||
| +--ro routing-protocol-instance-name instance-state-ref | +--ro routing-protocol-instance-name instance-state-ref | |||
| +--ro level? level | +--ro level? level | |||
| notifications: | notifications: | |||
| +---n database-overload | +---n database-overload | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro overload? enumeration | | +--ro isis-level? level | |||
| | +--ro overload? enumeration | ||||
| +---n lsp-too-large | +---n lsp-too-large | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro interface-name? string | | +--ro isis-level? level | |||
| | +--ro interface-level? level | | +--ro interface-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-level? level | |||
| | +--ro pdu-size? uint32 | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro lsp-id? lsp-id | | +--ro pdu-size? uint32 | |||
| | +--ro lsp-id? lsp-id | ||||
| +---n if-state-change | ||||
| | +--ro routing-instance? string | ||||
| | +--ro routing-protocol-name? string | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? string | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro state? if-state-type | ||||
| +---n corrupted-lsp-detected | +---n corrupted-lsp-detected | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro lsp-id? lsp-id | | +--ro isis-level? level | |||
| | +--ro lsp-id? lsp-id | ||||
| +---n attempt-to-exceed-max-sequence | +---n attempt-to-exceed-max-sequence | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro lsp-id? lsp-id | | +--ro isis-level? level | |||
| | +--ro lsp-id? lsp-id | ||||
| +---n id-len-mismatch | +---n id-len-mismatch | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro interface-name? string | | +--ro isis-level? level | |||
| | +--ro interface-level? level | | +--ro interface-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-level? level | |||
| | +--ro pdu-field-len? uint8 | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro raw-pdu? binary | | +--ro pdu-field-len? uint8 | |||
| | +--ro raw-pdu? binary | ||||
| +---n max-area-addresses-mismatch | +---n max-area-addresses-mismatch | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro interface-name? string | | +--ro isis-level? level | |||
| | +--ro interface-level? level | | +--ro interface-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-level? level | |||
| | +--ro max-area-addresses? uint8 | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro raw-pdu? binary | | +--ro max-area-addresses? uint8 | |||
| | +--ro raw-pdu? binary | ||||
| +---n own-lsp-purge | +---n own-lsp-purge | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro interface-name? string | | +--ro isis-level? level | |||
| | +--ro interface-level? level | | +--ro interface-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-level? level | |||
| | +--ro lsp-id? lsp-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro lsp-id? lsp-id | ||||
| +---n sequence-number-skipped | +---n sequence-number-skipped | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro interface-name? string | | +--ro isis-level? level | |||
| | +--ro interface-level? level | | +--ro interface-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-level? level | |||
| | +--ro lsp-id? lsp-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro lsp-id? lsp-id | ||||
| +---n authentication-type-failure | +---n authentication-type-failure | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro interface-name? string | | +--ro isis-level? level | |||
| | +--ro interface-level? level | | +--ro interface-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-level? level | |||
| | +--ro raw-pdu? binary | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro raw-pdu? binary | ||||
| +---n authentication-failure | +---n authentication-failure | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro interface-name? string | | +--ro isis-level? level | |||
| | +--ro interface-level? level | | +--ro interface-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-level? level | |||
| | +--ro raw-pdu? binary | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro raw-pdu? binary | ||||
| +---n version-skew | +---n version-skew | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro interface-name? string | | +--ro isis-level? level | |||
| | +--ro interface-level? level | | +--ro interface-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-level? level | |||
| | +--ro protocol-version? uint8 | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro raw-pdu? binary | | +--ro protocol-version? uint8 | |||
| | +--ro raw-pdu? binary | ||||
| +---n area-mismatch | +---n area-mismatch | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro interface-name? string | | +--ro isis-level? level | |||
| | +--ro interface-level? level | | +--ro interface-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-level? level | |||
| | +--ro raw-pdu? binary | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro raw-pdu? binary | ||||
| +---n rejected-adjacency | +---n rejected-adjacency | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro interface-name? string | | +--ro isis-level? level | |||
| | +--ro interface-level? level | | +--ro interface-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-level? level | |||
| | +--ro raw-pdu? binary | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro reason? string | | +--ro raw-pdu? binary | |||
| | +--ro reason? string | ||||
| +---n protocols-supported-mismatch | +---n protocols-supported-mismatch | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro interface-name? string | | +--ro isis-level? level | |||
| | +--ro interface-level? level | | +--ro interface-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-level? level | |||
| | +--ro raw-pdu? binary | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro protocols* uint8 | | +--ro raw-pdu? binary | |||
| | +--ro protocols* uint8 | ||||
| +---n lsp-error-detected | +---n lsp-error-detected | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro interface-name? string | | +--ro isis-level? level | |||
| | +--ro interface-level? level | | +--ro interface-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-level? level | |||
| | +--ro lsp-id? lsp-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro raw-pdu? binary | | +--ro lsp-id? lsp-id | |||
| | +--ro error-offset? uint32 | | +--ro raw-pdu? binary | |||
| | +--ro tlv-type? uint8 | | +--ro error-offset? uint32 | |||
| +---n adjacency-change | | +--ro tlv-type? uint8 | |||
| | +--ro instance-name? string | +---n adjacency-state-change | |||
| | +--ro instance-level? level | | +--ro routing-instance? string | |||
| | +--ro interface-name? string | | +--ro routing-protocol-name? string | |||
| | +--ro interface-level? level | | +--ro isis-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-name? string | |||
| | +--ro neighbor? string | | +--ro interface-level? level | |||
| | +--ro neighbor-system-id? system-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro level? level | | +--ro neighbor? string | |||
| | +--ro state? enumeration | | +--ro neighbor-system-id? system-id | |||
| | +--ro reason? string | | +--ro state? adj-state-type | |||
| | +--ro reason? string | ||||
| +---n lsp-received | +---n lsp-received | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro interface-name? string | | +--ro isis-level? level | |||
| | +--ro interface-level? level | | +--ro interface-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-level? level | |||
| | +--ro lsp-id? lsp-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro sequence? uint32 | | +--ro lsp-id? lsp-id | |||
| | +--ro received-timestamp? yang:timestamp | | +--ro sequence? uint32 | |||
| | +--ro neighbor-system-id? system-id | | +--ro received-timestamp? yang:timestamp | |||
| | +--ro neighbor-system-id? system-id | ||||
| +---n lsp-generation | +---n lsp-generation | |||
| +--ro instance-name? string | +--ro routing-instance? string | |||
| +--ro instance-level? level | +--ro routing-protocol-name? string | |||
| +--ro lsp-id? lsp-id | +--ro isis-level? level | |||
| +--ro sequence? uint32 | +--ro lsp-id? lsp-id | |||
| +--ro send-timestamp? yang:timestamp | +--ro sequence? uint32 | |||
| +--ro send-timestamp? yang:timestamp | ||||
| 2.1. IS-IS Configuration | 2.1. IS-IS Configuration | |||
| The IS-IS configuration container is divided in: | The IS-IS configuration container is divided in: | |||
| o Global parameters. | o Global parameters. | |||
| o Per interface configuration (see Section 2.4). | o Per interface configuration (see Section 2.4). | |||
| Additional modules may be created this to support any additional | Additional modules may be created this to support any additional | |||
| parameters. These modules should augment the ietf-isis module. | parameters. These additional modules should augment the ietf-isis | |||
| module. | ||||
| The model implements features, so some of the configuration statement | The model implements features, thus some of the configuration | |||
| becomes optional. As an example, the ability to control the | statement becomes optional. As an example, the ability to control | |||
| administrative state of a particular IS-IS instance is optional. By | the administrative state of a particular IS-IS instance is optional. | |||
| advertising the feature "admin-control", a device communicates to the | By advertising the feature "admin-control", a device communicates to | |||
| client that it supports the ability to shutdown a particular IS-IS | the client that it supports the ability to shutdown a particular IS- | |||
| instance. | IS instance. | |||
| The global configuration contains usual IS-IS parameters such as lsp- | The global configuration contains usual IS-IS parameters such as lsp- | |||
| mtu, lsp-lifetime, lsp-refresh, default-metric ... | mtu, lsp-lifetime, lsp-refresh, default-metric... | |||
| 2.2. Multitopology Parameters | 2.2. Multitopology Parameters | |||
| The model supports multitopology (MT) IS-IS as defined in [RFC5120]. | The model supports multitopology (MT) IS-IS as defined in [RFC5120]. | |||
| The "topologies" container is used to enable support of MT | The "topologies" container is used to enable support of MT | |||
| extensions. | extensions. | |||
| The "name" used in the topology list should refer to an existing RIB | The "name" used in the topology list should refer to an existing RIB | |||
| of the device. | of the device. | |||
| skipping to change at page 10, line 47 ¶ | skipping to change at page 12, line 11 ¶ | |||
| Some specific parameters could be defined on a per topology basis | Some specific parameters could be defined on a per topology basis | |||
| both at global level and at interface level: for example, an | both at global level and at interface level: for example, an | |||
| interface metric can be defined per topology. | interface metric can be defined per topology. | |||
| Multiple address families (like IPv4 or IPv6) can also be activated | Multiple address families (like IPv4 or IPv6) can also be activated | |||
| within the default topology. This can be achieved using the "afs" | within the default topology. This can be achieved using the "afs" | |||
| container (requiring "nlpid-control" feature to be advertised). | container (requiring "nlpid-control" feature to be advertised). | |||
| 2.3. Per-Level Parameters | 2.3. Per-Level Parameters | |||
| Some parameters support a per level configuration. In this case, the | Some parameters allow a per level configuration. In this case, the | |||
| parameter is modeled as a container with three configuration | parameter is modeled as a container with three configuration | |||
| locations: | locations: | |||
| o top level container: corresponds to level-1-2, so the | o a top level container: corresponds to level-1-2, so the | |||
| configuration applies to both levels. | configuration applies to both levels. | |||
| o level-1 container: corresponds to level-1 specific parameters. | o a level-1 container: corresponds to level-1 specific parameters. | |||
| o level-2 container: corresponds to level-2 specific parameters. | o a level-2 container: corresponds to level-2 specific parameters. | |||
| +--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 | |||
| Example: | Example: | |||
| skipping to change at page 12, line 43 ¶ | skipping to change at page 13, line 45 ¶ | |||
| Finally, if an implementation supports per level configuration but | Finally, if an implementation supports per level configuration but | |||
| does not support the level-1-2 configuration, it SHOULD also | does not support the level-1-2 configuration, it SHOULD also | |||
| advertise a deviation. | advertise a deviation. | |||
| 2.4. Per-Interface Parameters | 2.4. Per-Interface Parameters | |||
| The per-interface section of the IS-IS instance describes the | The per-interface section of the IS-IS instance describes the | |||
| interface specific parameters. | interface specific parameters. | |||
| The interface is a reference to an interface defined in the "ietf- | The interface is modeled as a reference to an existing interface | |||
| interfaces" YANG model. | defined in the "ietf-interfaces" YANG model. | |||
| Each interface has some interface-specific parameters that may have a | Each interface has some interface-specific parameters that may have a | |||
| different per level value as described in previous section. An | different per level value as described in previous section. An | |||
| interface-specific parameter always override an IS-IS global | interface-specific parameter always override an IS-IS global | |||
| parameter. | parameter. | |||
| Some parameters like hello-padding are defined as containers to allow | Some parameters like hello-padding are defined as containers to allow | |||
| easy extension by vendor specific modules. | easy extension by vendor specific modules. | |||
| +--rw interfaces | +--rw interfaces | |||
| skipping to change at page 15, line 18 ¶ | skipping to change at page 16, line 21 ¶ | |||
| | +--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 afs {nlpid-control}? | +--rw afs {nlpid-control}? | |||
| | +--rw af* [af] | | +--rw af* [af] | |||
| | +--rw af identityref | | +--rw af identityref | |||
| +--rw mpls | +--rw mpls | |||
| | +--rw igp-ldp-sync {igp-ldp-sync}? | | +--rw ldp | |||
| | +--rw enable? boolean | | +--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-disabled? boolean | | +--rw candidate-disabled? boolean | |||
| | +--rw enable? boolean | | +--rw enable? boolean | |||
| | +--rw remote-lfa {remote-lfa}? | | +--rw remote-lfa {remote-lfa}? | |||
| | | +--rw enable? boolean | | | +--rw enable? boolean | |||
| | +--rw level-1 | | +--rw level-1 | |||
| | | +--rw candidate-disabled? boolean | | | +--rw candidate-disabled? boolean | |||
| | | +--rw enable? boolean | | | +--rw enable? boolean | |||
| | | +--rw remote-lfa {remote-lfa}? | | | +--rw remote-lfa {remote-lfa}? | |||
| | | +--rw enable? boolean | | | +--rw enable? boolean | |||
| | +--rw level-2 | | +--rw level-2 | |||
| | +--rw candidate-disabled? boolean | | +--rw candidate-disabled? boolean | |||
| | +--rw enable? boolean | | +--rw enable? boolean | |||
| | +--rw remote-lfa {remote-lfa}? | | +--rw remote-lfa {remote-lfa}? | |||
| | +--rw enable? boolean | | +--rw enable? boolean | |||
| +--rw topologies {multi-topology}? | +--rw topologies {multi-topology}? | |||
| +--rw topology* [name] | +--rw topology* [name] | |||
| +--rw name leafref | +--rw name leafref | |||
| +--rw fast-reroute {fast-reroute}? | ||||
| | +--rw lfa {lfa}? | ||||
| | +--rw candidate-disabled? boolean | ||||
| | +--rw enable? boolean | ||||
| | +--rw remote-lfa {remote-lfa}? | ||||
| | | +--rw enable? boolean | ||||
| | +--rw level-1 | ||||
| | | +--rw candidate-disabled? boolean | ||||
| | | +--rw enable? boolean | ||||
| | | +--rw remote-lfa {remote-lfa}? | ||||
| | | +--rw enable? boolean | ||||
| | +--rw level-2 | ||||
| | +--rw candidate-disabled? boolean | ||||
| | +--rw enable? boolean | ||||
| | +--rw remote-lfa {remote-lfa}? | ||||
| | +--rw enable? boolean | ||||
| +--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 | |||
| 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 ([I-D.ietf-rtgwg-yang-key-chain]). The IS-IS module | chain module ([I-D.ietf-rtgwg-yang-key-chain]). The IS-IS module | |||
| imports the "ietf-key-chain" module and reuses some groupings to | imports the "ietf-key-chain" module and reuses some groupings to | |||
| allow global and per interface configuration of authentication. If a | allow global and per interface configuration of authentication. If a | |||
| global authentication is configured, an implementation SHOULD | global authentication is configured, an implementation SHOULD | |||
| authenticate PSNP, CSNP and LSPs with the authentication parameters | authenticate PSNPs, CSNPs and LSPs with the authentication parameters | |||
| supplied. The authentication of hello PDUs can be activated on a per | supplied. The authentication of hello PDUs can be activated on a per | |||
| interface basis. | interface basis. | |||
| 2.6. IGP/LDP synchronization | 2.6. IGP/LDP synchronization | |||
| [RFC5443] defines a mechanism where IGP needs to be synchronized with | [RFC5443] defines a mechanism where IGP needs to be synchronized with | |||
| LDP. An "igp-ldp-sync" feature has been defined in the model to | LDP. An "ldp-igp-sync" feature has been defined in the model to | |||
| support this mechanism. The "mpls/igp-ldp-sync" container under | support this mechanism. The "mpls/ldp/igp-sync" leaf under | |||
| "interface" allows activation of the mechanism on a per interface | "interface" allows activation of the mechanism on a per interface | |||
| basis. The "mpls/igp-ldp-sync" container in the global configuration | basis. The "mpls/ldp/igp-sync" container in the global configuration | |||
| is empty on purpose and is not required for the activation. The goal | is empty on purpose and is not required for the activation. The goal | |||
| of this empty container is to allow easy augmentation with additional | of this empty container is to allow easy augmentation with additional | |||
| parameters like timers for example. | parameters like timers for example. | |||
| 2.7. ISO parameters | 2.7. ISO parameters | |||
| As IS-IS protocol is based on ISO protocol suite, some ISO parameters | As IS-IS protocol is based on ISO protocol suite, some ISO parameters | |||
| may be required. | may be required. | |||
| This module augments interface configuration model to support ISO | This module augments interface configuration model to support ISO | |||
| skipping to change at page 17, line 16 ¶ | skipping to change at page 18, line 5 ¶ | |||
| remote LFA at interface only. The global "lfa" container is present | remote LFA at interface only. The global "lfa" container is present | |||
| but kept empty to allow augmentation with vendor specific properties | but kept empty to allow augmentation with vendor specific properties | |||
| like policies. | like policies. | |||
| Remote LFA is considered as a child of LFA. Remote LFA cannot be | Remote LFA is considered as a child of LFA. Remote LFA cannot be | |||
| enabled if LFA is not enabled. | enabled if LFA is not enabled. | |||
| The "candidate-disabled" allows to mark an interface to not be used | The "candidate-disabled" allows to mark an interface to not be used | |||
| as a backup. | as a backup. | |||
| 2.9. Operational State | 2.9. Operational States | |||
| A "isis" container provides operational states for IS-IS. This | An "isis" container provides operational states for IS-IS. This | |||
| container is divided in multiple components: | container is divided in multiple components: | |||
| o system-counters : provides statistical informations about the | o system-counters : provides statistical informations about the | |||
| global system. | global system. | |||
| o interface : provides configuration state information for each | o interface : provides configuration state informations for each | |||
| interface. | interface. | |||
| o adjacencies: provides state information about current IS-IS | o adjacencies: provides state informations about current IS-IS | |||
| adjacencies. | adjacencies. | |||
| o spf-log: provides information about SPF events on the node. | o spf-log: provides informations about SPF events on the node. | |||
| o lsp-log: provides information about LSP events on the node | o lsp-log: provides informations about LSP events on the node | |||
| (reception of an LSP or modification of local LSP). | (reception of an LSP or modification of local LSP). | |||
| o database: provides details on current LSDB. | o local-rib: provides the IS-IS internal routing table view. | |||
| o hostnames: provides information about system-id to hostname | o database: provides details on the current LSDB. | |||
| o hostnames: provides informations about system-id to hostname | ||||
| mappings. | mappings. | |||
| o fast-reroute: provides information about IP FRR. | o fast-reroute: provides informations about IP FRR. | |||
| 3. RPC Operations | 3. RPC Operations | |||
| The "ietf-isis" module defines two RPC operations: | The "ietf-isis" module defines two RPC operations: | |||
| o clear-isis-database: reset the content of a particular IS-IS | o clear-isis-database: reset the content of a particular IS-IS | |||
| database and restart database synchronization with the neighbors. | database and restart database synchronization with the neighbors. | |||
| o clear-isis-adjacency: restart a particular set of IS-IS | o clear-isis-adjacency: restart a particular set of IS-IS | |||
| adjacencies. | adjacencies. | |||
| skipping to change at page 19, line 32 ¶ | skipping to change at page 20, line 22 ¶ | |||
| adjacency-change : This notification is sent when an IS-IS | adjacency-change : This notification is sent when an IS-IS | |||
| adjacency moves to Up state or to Down state. | adjacency moves to Up state or to Down state. | |||
| lsp-received : This notification is sent when a LSP is received. | lsp-received : This notification is sent when a LSP is received. | |||
| lsp-generation : This notification is sent when a LSP is | lsp-generation : This notification is sent when a LSP is | |||
| regenerated. | regenerated. | |||
| notifications: | notifications: | |||
| +---n database-overload | +---n database-overload | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro overload? enumeration | | +--ro isis-level? level | |||
| | +--ro overload? enumeration | ||||
| +---n lsp-too-large | +---n lsp-too-large | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro interface-name? string | | +--ro isis-level? level | |||
| | +--ro interface-level? level | | +--ro interface-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-level? level | |||
| | +--ro pdu-size? uint32 | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro lsp-id? lsp-id | | +--ro pdu-size? uint32 | |||
| | +--ro lsp-id? lsp-id | ||||
| +---n if-state-change | ||||
| | +--ro routing-instance? string | ||||
| | +--ro routing-protocol-name? string | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? string | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro state? if-state-type | ||||
| +---n corrupted-lsp-detected | +---n corrupted-lsp-detected | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro lsp-id? lsp-id | | +--ro isis-level? level | |||
| | +--ro lsp-id? lsp-id | ||||
| +---n attempt-to-exceed-max-sequence | +---n attempt-to-exceed-max-sequence | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro lsp-id? lsp-id | | +--ro isis-level? level | |||
| | +--ro lsp-id? lsp-id | ||||
| +---n id-len-mismatch | +---n id-len-mismatch | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro interface-name? string | | +--ro isis-level? level | |||
| | +--ro interface-level? level | | +--ro interface-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-level? level | |||
| | +--ro pdu-field-len? uint8 | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro raw-pdu? binary | | +--ro pdu-field-len? uint8 | |||
| | +--ro raw-pdu? binary | ||||
| +---n max-area-addresses-mismatch | +---n max-area-addresses-mismatch | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro interface-name? string | | +--ro isis-level? level | |||
| | +--ro interface-level? level | | +--ro interface-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-level? level | |||
| | +--ro max-area-addresses? uint8 | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro raw-pdu? binary | | +--ro max-area-addresses? uint8 | |||
| | +--ro raw-pdu? binary | ||||
| +---n own-lsp-purge | +---n own-lsp-purge | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro interface-name? string | | +--ro isis-level? level | |||
| | +--ro interface-level? level | | +--ro interface-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-level? level | |||
| | +--ro lsp-id? lsp-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro lsp-id? lsp-id | ||||
| +---n sequence-number-skipped | +---n sequence-number-skipped | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro interface-name? string | | +--ro isis-level? level | |||
| | +--ro interface-level? level | | +--ro interface-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-level? level | |||
| | +--ro lsp-id? lsp-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro lsp-id? lsp-id | ||||
| +---n authentication-type-failure | +---n authentication-type-failure | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro interface-name? string | | +--ro isis-level? level | |||
| | +--ro interface-level? level | | +--ro interface-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-level? level | |||
| | +--ro raw-pdu? binary | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro raw-pdu? binary | ||||
| +---n authentication-failure | +---n authentication-failure | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro interface-name? string | | +--ro isis-level? level | |||
| | +--ro interface-level? level | | +--ro interface-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-level? level | |||
| | +--ro raw-pdu? binary | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro raw-pdu? binary | ||||
| +---n version-skew | +---n version-skew | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro interface-name? string | | +--ro isis-level? level | |||
| | +--ro interface-level? level | | +--ro interface-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-level? level | |||
| | +--ro protocol-version? uint8 | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro raw-pdu? binary | | +--ro protocol-version? uint8 | |||
| | +--ro raw-pdu? binary | ||||
| +---n area-mismatch | +---n area-mismatch | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro interface-name? string | | +--ro isis-level? level | |||
| | +--ro interface-level? level | | +--ro interface-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-level? level | |||
| | +--ro raw-pdu? binary | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro raw-pdu? binary | ||||
| +---n rejected-adjacency | +---n rejected-adjacency | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro interface-name? string | | +--ro isis-level? level | |||
| | +--ro interface-level? level | | +--ro interface-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-level? level | |||
| | +--ro raw-pdu? binary | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro reason? string | | +--ro raw-pdu? binary | |||
| | +--ro reason? string | ||||
| +---n protocols-supported-mismatch | +---n protocols-supported-mismatch | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro interface-name? string | | +--ro isis-level? level | |||
| | +--ro interface-level? level | | +--ro interface-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-level? level | |||
| | +--ro raw-pdu? binary | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro protocols* uint8 | | +--ro raw-pdu? binary | |||
| | +--ro protocols* uint8 | ||||
| +---n lsp-error-detected | +---n lsp-error-detected | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro interface-name? string | | +--ro isis-level? level | |||
| | +--ro interface-level? level | | +--ro interface-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-level? level | |||
| | +--ro lsp-id? lsp-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro raw-pdu? binary | | +--ro lsp-id? lsp-id | |||
| | +--ro error-offset? uint32 | | +--ro raw-pdu? binary | |||
| | +--ro tlv-type? uint8 | | +--ro error-offset? uint32 | |||
| +---n adjacency-change | | +--ro tlv-type? uint8 | |||
| | +--ro instance-name? string | +---n adjacency-state-change | |||
| | +--ro instance-level? level | | +--ro routing-instance? string | |||
| | +--ro interface-name? string | | +--ro routing-protocol-name? string | |||
| | +--ro interface-level? level | | +--ro isis-level? level | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-name? string | |||
| | +--ro neighbor? string | | +--ro interface-level? level | |||
| | +--ro neighbor-system-id? system-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro level? level | | +--ro neighbor? string | |||
| | +--ro state? enumeration | | +--ro neighbor-system-id? system-id | |||
| | +--ro reason? string | | +--ro state? adj-state-type | |||
| | +--ro reason? string | ||||
| +---n lsp-received | +---n lsp-received | |||
| | +--ro instance-name? string | | +--ro routing-instance? string | |||
| | +--ro instance-level? level | | +--ro routing-protocol-name? string | |||
| | +--ro interface-name? string | | +--ro isis-level? level | |||
| | +--ro interface-level? level | | +--ro interface-name? string | |||
| | +--ro extended-circuit-id? extended-circuit-id | | +--ro interface-level? level | |||
| | +--ro lsp-id? lsp-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| | +--ro sequence? uint32 | | +--ro lsp-id? lsp-id | |||
| | +--ro received-timestamp? yang:timestamp | | +--ro sequence? uint32 | |||
| | +--ro neighbor-system-id? system-id | | +--ro received-timestamp? yang:timestamp | |||
| | +--ro neighbor-system-id? system-id | ||||
| +---n lsp-generation | +---n lsp-generation | |||
| +--ro instance-name? string | +--ro routing-instance? string | |||
| +--ro instance-level? level | +--ro routing-protocol-name? string | |||
| +--ro lsp-id? lsp-id | +--ro isis-level? level | |||
| +--ro sequence? uint32 | +--ro lsp-id? lsp-id | |||
| +--ro send-timestamp? yang:timestamp | +--ro sequence? uint32 | |||
| +--ro send-timestamp? yang:timestamp | ||||
| 5. Interaction with Other YANG Modules | 5. Interaction with Other YANG Modules | |||
| The "isis" configuration container augments the "/rt:routing/ | The "isis" configuration container augments the "/rt:routing/ | |||
| rt:control-plane-protocols/control-plane-protocol" container of the | rt:control-plane-protocols/control-plane-protocol" container of the | |||
| ietf-routing [I-D.ietf-netmod-routing-cfg] module by defining IS-IS | ietf-routing [I-D.ietf-netmod-routing-cfg] module by defining IS-IS | |||
| specific parameters. | specific parameters. | |||
| The "isis" module augments "/if:interfaces/if:interface" with ISO | The "isis" module augments "/if:interfaces/if:interface" with ISO | |||
| specific parameters. | specific parameters. | |||
| skipping to change at page 22, line 43 ¶ | skipping to change at page 24, line 10 ¶ | |||
| Some IS-IS specific routes attributes are added to route objects of | Some IS-IS specific routes attributes are added to route objects of | |||
| the ietf-routing module by augmenting "/rt:routing- | the ietf-routing module by augmenting "/rt:routing- | |||
| state/rt:ribs/rt:rib/rt:routes/rt:route". | state/rt:ribs/rt:rib/rt:routes/rt:route". | |||
| The modules defined in this document use some groupings from ietf- | The modules defined in this document use some groupings from ietf- | |||
| keychain [I-D.ietf-rtgwg-yang-key-chain]. | keychain [I-D.ietf-rtgwg-yang-key-chain]. | |||
| 6. IS-IS YANG Module | 6. IS-IS YANG Module | |||
| <CODE BEGINS> file "ietf-isis@2016-11-03.yang" | <CODE BEGINS> file "ietf-isis@2017-01-13.yang" | |||
| module ietf-isis { | module ietf-isis { | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-isis"; | namespace "urn:ietf:params:xml:ns:yang:ietf-isis"; | |||
| prefix isis; | prefix isis; | |||
| import ietf-routing { | import ietf-routing { | |||
| prefix "rt"; | prefix "rt"; | |||
| } | } | |||
| import ietf-inet-types { | import ietf-inet-types { | |||
| prefix inet; | prefix inet; | |||
| } | } | |||
| import ietf-yang-types { | import ietf-yang-types { | |||
| prefix yang; | prefix yang; | |||
| } | } | |||
| skipping to change at page 24, line 38 ¶ | skipping to change at page 26, line 4 ¶ | |||
| description "Identity for the ISIS routing protocol | description "Identity for the ISIS routing protocol | |||
| database reset action."; | database reset action."; | |||
| } | } | |||
| identity clear-isis-adjacency { | identity clear-isis-adjacency { | |||
| description "Identity for the ISIS routing protocol | description "Identity for the ISIS routing protocol | |||
| adjacency reset action."; | adjacency reset action."; | |||
| } | } | |||
| /* Feature definitions */ | /* Feature definitions */ | |||
| feature ietf-spf-delay { | ||||
| description | ||||
| "Support of IETF SPF delay algorithm."; | ||||
| } | ||||
| feature bfd { | feature bfd { | |||
| description | description | |||
| "Support of BFD for IS-IS links."; | "Support of BFD for IS-IS links."; | |||
| } | } | |||
| feature key-chain { | feature key-chain { | |||
| description | description | |||
| "Support of keychain for authentication."; | "Support of keychain for authentication."; | |||
| } | } | |||
| feature segment-routing { | feature segment-routing { | |||
| description | description | |||
| skipping to change at page 25, line 12 ¶ | skipping to change at page 26, line 29 ¶ | |||
| } | } | |||
| feature node-flag { | feature node-flag { | |||
| description | description | |||
| "Support of node-flag advertisement | "Support of node-flag advertisement | |||
| as prefix attribute"; | as prefix attribute"; | |||
| } | } | |||
| feature node-tag { | feature node-tag { | |||
| description | description | |||
| "Support of node tag."; | "Support of node tag."; | |||
| } | } | |||
| feature igp-ldp-sync { | feature ldp-igp-sync { | |||
| description | description | |||
| "Support of RFC5443."; | "Support of RFC5443."; | |||
| } | } | |||
| feature fast-reroute { | feature fast-reroute { | |||
| description | description | |||
| "Support of IPFRR."; | "Support of IPFRR."; | |||
| } | } | |||
| feature nsr { | feature nsr { | |||
| description | description | |||
| "Support of | "Support of | |||
| skipping to change at page 25, line 47 ¶ | skipping to change at page 27, line 16 ¶ | |||
| all links to max metric."; | all links to max metric."; | |||
| } | } | |||
| feature prefix-tag { | feature prefix-tag { | |||
| description | description | |||
| "Add 32bit tag to prefixes"; | "Add 32bit tag to prefixes"; | |||
| } | } | |||
| feature prefix-tag64 { | feature prefix-tag64 { | |||
| description | description | |||
| "Add 64bit tag to prefixes"; | "Add 64bit tag to prefixes"; | |||
| } | } | |||
| feature reference-bandwidth { | feature auto-cost { | |||
| description | description | |||
| "Use a reference bandwidth to compute metric."; | "Use an automated assignment of metrics."; | |||
| } | } | |||
| feature ipv4-router-id { | feature ipv4-router-id { | |||
| description | description | |||
| "Support of IPv4 router ID configuration under ISIS."; | "Support of IPv4 router ID configuration under ISIS."; | |||
| } | } | |||
| feature ipv6-router-id { | feature ipv6-router-id { | |||
| description | description | |||
| "Support of IPv6 router ID configuration under ISIS."; | "Support of IPv6 router ID configuration under ISIS."; | |||
| } | } | |||
| skipping to change at page 28, line 35 ¶ | skipping to change at page 30, line 4 ¶ | |||
| "This enum describes L1 only capability."; | "This enum describes L1 only capability."; | |||
| } | } | |||
| enum "level-2" { | enum "level-2" { | |||
| description | description | |||
| "This enum describes L2 only capability."; | "This enum describes L2 only capability."; | |||
| } | } | |||
| enum "level-all" { | enum "level-all" { | |||
| description | description | |||
| "This enum describes both levels capability."; | "This enum describes both levels capability."; | |||
| } | } | |||
| } | } | |||
| default "level-all"; | default "level-all"; | |||
| description | description | |||
| "This type defines ISIS level of an object."; | "This type defines ISIS level of an object."; | |||
| } | } | |||
| typedef adj-state-type { | ||||
| type enumeration { | ||||
| enum "Up" { | ||||
| description | ||||
| "This state describes that | ||||
| adjacency is established."; | ||||
| } | ||||
| enum "Down" { | ||||
| description | ||||
| "This state describes that | ||||
| adjacency is NOT established."; | ||||
| } | ||||
| enum "Init" { | ||||
| description | ||||
| "This state describes that | ||||
| adjacency is establishing."; | ||||
| } | ||||
| enum "Failed" { | ||||
| description | ||||
| "This state describes that | ||||
| adjacency is failed."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "This type defines states of an adjacency"; | ||||
| } | ||||
| typedef if-state-type { | ||||
| type enumeration { | ||||
| enum "Up" { | ||||
| description | ||||
| "This state describes that | ||||
| ."; | ||||
| } | ||||
| enum "Down" { | ||||
| description | ||||
| "This state describes that | ||||
| ."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "This type defines states of an interface"; | ||||
| } | ||||
| typedef level-number { | typedef level-number { | |||
| type uint8 { | type uint8 { | |||
| range "1 .. 2"; | range "1 .. 2"; | |||
| } | } | |||
| description | description | |||
| "This type defines a current ISIS level."; | "This type defines a current ISIS level."; | |||
| } | } | |||
| typedef lsp-id { | typedef lsp-id { | |||
| type string { | type string { | |||
| skipping to change at page 30, line 32 ¶ | skipping to change at page 32, line 46 ¶ | |||
| description | description | |||
| "LSPs must not be flooded over that interface."; | "LSPs must not be flooded over that interface."; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "This type describes meshgroup state of an interface"; | "This type describes meshgroup state of an interface"; | |||
| } | } | |||
| /* Grouping definitions */ | /* Grouping definitions */ | |||
| grouping admin-control { | grouping local-rib { | |||
| description "Local-rib grouping."; | ||||
| container local-rib { | ||||
| description "Local-rib."; | ||||
| list route { | ||||
| key "prefix"; | ||||
| description "Routes"; | ||||
| leaf prefix { | ||||
| type inet:ip-prefix; | ||||
| description "Destination prefix."; | ||||
| } | ||||
| container next-hops { | ||||
| description "All next hops for the route."; | ||||
| list next-hop { | ||||
| key "next-hop"; | ||||
| description "List of next hop for the route"; | ||||
| leaf outgoing-interface { | ||||
| type if:interface-ref; | ||||
| description | ||||
| "Name of the outgoing interface."; | ||||
| } | ||||
| leaf next-hop { | ||||
| type inet:ip-address; | ||||
| description "Nexthop address."; | ||||
| } | ||||
| } | ||||
| } | ||||
| leaf metric { | ||||
| type uint32; | ||||
| description "Metric for this route."; | ||||
| } | ||||
| leaf level { | ||||
| type level-number; | ||||
| description "Level number for this route."; | ||||
| } | ||||
| leaf route-tag { | ||||
| type uint32; | ||||
| description "Route tag for this route."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| grouping admin-control { | ||||
| leaf enable { | leaf enable { | |||
| if-feature admin-control; | if-feature admin-control; | |||
| type boolean; | type boolean; | |||
| default true; | default true; | |||
| description | description | |||
| "Control the administrative | "Control the administrative | |||
| state."; | state."; | |||
| } | ||||
| } | ||||
| description | description | |||
| "Grouping for admin control."; | "Grouping for admin control."; | |||
| } | } | |||
| grouping adjacency-state { | grouping adjacency-state { | |||
| container adjacencies { | container adjacencies { | |||
| list adjacency { | list adjacency { | |||
| leaf neighbor-systype { | leaf neighbor-systype { | |||
| type level; | type level; | |||
| description | description | |||
| skipping to change at page 32, line 18 ¶ | skipping to change at page 35, line 23 ¶ | |||
| description | description | |||
| "When the adjacency most recently entered | "When the adjacency most recently entered | |||
| state 'up', measured in hundredths of a | state 'up', measured in hundredths of a | |||
| second since the last reinitialization of | second since the last reinitialization of | |||
| the network management subsystem. | the network management subsystem. | |||
| The value is 0 if the adjacency has never | The value is 0 if the adjacency has never | |||
| been in state 'up'."; | been in state 'up'."; | |||
| } | } | |||
| leaf state { | leaf state { | |||
| type enumeration { | type adj-state-type; | |||
| enum "Up" { | ||||
| description | ||||
| "This state describes that | ||||
| adjacency is established."; | ||||
| } | ||||
| enum "Down" { | ||||
| description | ||||
| "This state describes that | ||||
| adjacency is NOT established."; | ||||
| } | ||||
| enum "Init" { | ||||
| description | ||||
| "This state describes that | ||||
| adjacency is establishing."; | ||||
| } | ||||
| enum "Failed" { | ||||
| description | ||||
| "This state describes that | ||||
| adjacency is failed."; | ||||
| } | ||||
| } | ||||
| description | description | |||
| "This leaf describes the state of the | "This leaf describes the state of the | |||
| interface."; | interface."; | |||
| } | } | |||
| description | description | |||
| "List of operational adjacencies."; | "List of operational adjacencies."; | |||
| } | } | |||
| description | description | |||
| "This container lists the adjacencies of | "This container lists the adjacencies of | |||
| skipping to change at page 37, line 21 ¶ | skipping to change at page 40, line 4 ¶ | |||
| } | } | |||
| description | description | |||
| "Per AF statistics."; | "Per AF statistics."; | |||
| } | } | |||
| description | description | |||
| "Global protection statistics."; | "Global protection statistics."; | |||
| } | } | |||
| description | description | |||
| "IPFRR states."; | "IPFRR states."; | |||
| } | } | |||
| grouping notification-instance-hdr { | grouping notification-instance-hdr { | |||
| description | description | |||
| "This group describes common instance specific | "This group describes common instance specific | |||
| data for notifications."; | data for notifications."; | |||
| leaf instance-name { | leaf routing-instance { | |||
| type string; | ||||
| description | ||||
| "Describes the name of the routing-instance instance."; | ||||
| } | ||||
| leaf routing-protocol-name { | ||||
| type string; | type string; | |||
| description | description | |||
| "Describes the name of the ISIS instance."; | "Describes the name of the ISIS instance."; | |||
| } | } | |||
| leaf instance-level { | leaf isis-level { | |||
| type level; | type level; | |||
| description | description | |||
| "Describes the ISIS level of the instance."; | "Describes the ISIS level of the instance."; | |||
| } | } | |||
| } | } | |||
| grouping notification-interface-hdr { | grouping notification-interface-hdr { | |||
| description | description | |||
| "This group describes common interface specific | "This group describes common interface specific | |||
| data for notifications."; | data for notifications."; | |||
| skipping to change at page 40, line 12 ¶ | skipping to change at page 42, line 49 ¶ | |||
| uses lfa-if-cfg; | uses lfa-if-cfg; | |||
| description | description | |||
| "LFA level 2 config"; | "LFA level 2 config"; | |||
| } | } | |||
| description | description | |||
| "LFA config"; | "LFA config"; | |||
| } | } | |||
| } | } | |||
| grouping ietf-spf-delay-cfg { | ||||
| leaf initial-delay { | ||||
| type uint16; | ||||
| units msec; | ||||
| description | ||||
| "Delay used while in QUIET state."; | ||||
| } | ||||
| leaf short-delay { | ||||
| type uint16; | ||||
| units msec; | ||||
| description | ||||
| "Delay used while in SHORT_WAIT state."; | ||||
| } | ||||
| leaf long-delay { | ||||
| type uint16; | ||||
| units msec; | ||||
| description | ||||
| "Delay used while in LONG_WAIT state."; | ||||
| } | ||||
| leaf hold-down { | ||||
| type uint16; | ||||
| units msec; | ||||
| description | ||||
| "Timer used to consider an IGP stability period."; | ||||
| } | ||||
| leaf time-to-learn { | ||||
| type uint16; | ||||
| units msec; | ||||
| description | ||||
| "Duration used to learn all the IGP events | ||||
| related to a single component failure."; | ||||
| } | ||||
| description | ||||
| "Grouping for IETF SPF delay configuration."; | ||||
| } | ||||
| grouping ietf-spf-delay-state { | ||||
| leaf current-state { | ||||
| type enumeration { | ||||
| enum "QUIET" { | ||||
| description "QUIET state"; | ||||
| } | ||||
| enum "SHORT_WAIT" { | ||||
| description "SHORT_WAIT state"; | ||||
| } | ||||
| enum "LONG_WAIT" { | ||||
| description "LONG_WAIT state"; | ||||
| } | ||||
| } | ||||
| description | ||||
| "Current state of the algorithm."; | ||||
| } | ||||
| leaf remaining-time-to-learn { | ||||
| type uint16; | ||||
| units "seconds"; | ||||
| description | ||||
| "Remaining time until time-to-learn timer fires."; | ||||
| } | ||||
| leaf remaining-hold-down { | ||||
| type uint16; | ||||
| units "seconds"; | ||||
| description | ||||
| "Remaining time until hold-down timer fires."; | ||||
| } | ||||
| leaf last-event-received { | ||||
| type yang:timestamp; | ||||
| description | ||||
| "Time of last IGP event received"; | ||||
| } | ||||
| leaf next-spf-time { | ||||
| type yang:timestamp; | ||||
| description | ||||
| "Time when next SPF has been scheduled."; | ||||
| } | ||||
| leaf last-spf-time { | ||||
| type yang:timestamp; | ||||
| description | ||||
| "Time of last SPF computation."; | ||||
| } | ||||
| description | ||||
| "Grouping for IETF SPF delay operational states."; | ||||
| } | ||||
| grouping prefix-reachability-attributes { | grouping prefix-reachability-attributes { | |||
| description | description | |||
| "This group defines extended reachability attributes of an | "This group defines extended reachability attributes of an | |||
| IPv4 or IPv6 prefix."; | IPv4 or IPv6 prefix."; | |||
| leaf external-prefix-flag { | leaf external-prefix-flag { | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "External prefix flag."; | "External prefix flag."; | |||
| } | } | |||
| skipping to change at page 46, line 27 ¶ | skipping to change at page 51, line 4 ¶ | |||
| leaf supported { | leaf supported { | |||
| type boolean; | type boolean; | |||
| default "false"; | default "false"; | |||
| description | description | |||
| "This leaf describes if the metric is supported."; | "This leaf describes if the metric is supported."; | |||
| } | } | |||
| description | description | |||
| "This container defines the ISIS error metric."; | "This container defines the ISIS error metric."; | |||
| } | } | |||
| } | } | |||
| grouping database { | grouping database { | |||
| description | description | |||
| "This group defines attributes of an | "This group defines attributes of an | |||
| ISIS database (Link State DB)."; | ISIS database (Link State DB)."; | |||
| leaf decoded-completed { | ||||
| type boolean; | ||||
| description | ||||
| "The OSPF LSA body is fully decoded."; | ||||
| } | ||||
| leaf raw-data { | ||||
| type yang:hex-string; | ||||
| description | ||||
| "The complete LSP in network byte | ||||
| order hexadecimal as received or originated."; | ||||
| } | ||||
| leaf lsp-id { | leaf lsp-id { | |||
| type lsp-id; | type lsp-id; | |||
| description | description | |||
| "This leaf describes the LSP ID of the LSP."; | "This leaf describes the LSP ID of the LSP."; | |||
| } | } | |||
| leaf checksum { | leaf checksum { | |||
| type uint16; | type uint16; | |||
| description | description | |||
| "This leaf describes the checksum of the LSP."; | "This leaf describes the checksum of the LSP."; | |||
| } | } | |||
| skipping to change at page 60, line 34 ¶ | skipping to change at page 65, line 26 ¶ | |||
| "Router ID value that would be used in | "Router ID value that would be used in | |||
| TLV 134."; | TLV 134."; | |||
| } | } | |||
| leaf ipv6-router-id { | leaf ipv6-router-id { | |||
| if-feature ipv6-router-id; | if-feature ipv6-router-id; | |||
| type inet:ipv6-address; | type inet:ipv6-address; | |||
| description | description | |||
| "Router ID value that would be used in | "Router ID value that would be used in | |||
| TLV 140."; | TLV 140."; | |||
| } | } | |||
| container igp-ldp-sync { | container ldp { | |||
| if-feature igp-ldp-sync; | container igp-sync { | |||
| if-feature ldp-igp-sync; | ||||
| description | ||||
| "This container may be augmented | ||||
| with global parameters for igp-ldp-sync."; | ||||
| } | ||||
| description | description | |||
| "This container may be augmented | "LDP related configuration."; | |||
| with global parameters for igp-ldp-sync."; | ||||
| } | } | |||
| description | description | |||
| "This container handles mpls config."; | "This container handles mpls config."; | |||
| } | } | |||
| leaf reference-bandwidth { | container auto-cost { | |||
| if-feature reference-bandwidth; | if-feature auto-cost; | |||
| type uint32; | leaf reference-bandwidth { | |||
| units "bps"; | type uint32; | |||
| description | units "bps"; | |||
| "This leaf defines the bandwidth for calculating | description | |||
| metric."; | "This leaf defines the bandwidth for calculating | |||
| metric."; | ||||
| } | ||||
| leaf enable { | ||||
| type boolean; | ||||
| default false; | ||||
| description | ||||
| "Enable/disable auto-cost."; | ||||
| } | ||||
| description | ||||
| "This container defines the auto-cost configuration."; | ||||
| } | } | |||
| leaf lsp-mtu { | leaf lsp-mtu { | |||
| type uint16; | type uint16; | |||
| units "bytes"; | units "bytes"; | |||
| default 1492; | default 1492; | |||
| description | description | |||
| "This leaf describes the maximum size of a | "This leaf describes the maximum size of a | |||
| LSP PDU in bytes."; | LSP PDU in bytes."; | |||
| } | } | |||
| leaf lsp-lifetime { | leaf lsp-lifetime { | |||
| type uint16 { | type uint16 { | |||
| skipping to change at page 61, line 31 ¶ | skipping to change at page 66, line 37 ¶ | |||
| leaf lsp-refresh { | leaf lsp-refresh { | |||
| if-feature lsp-refresh; | if-feature lsp-refresh; | |||
| type uint16 { | type uint16 { | |||
| range "1..65535"; | range "1..65535"; | |||
| } | } | |||
| units "seconds"; | units "seconds"; | |||
| description | description | |||
| "This leaf describes the refresh interval of the | "This leaf describes the refresh interval of the | |||
| router LSP in seconds."; | router LSP in seconds."; | |||
| } | } | |||
| container spf-control { | ||||
| container ietf-spf-delay { | ||||
| if-feature ietf-spf-delay; | ||||
| uses ietf-spf-delay-cfg; | ||||
| description | ||||
| "IETF spf delay algorithm configuration."; | ||||
| } | ||||
| description | ||||
| "Container for all SPF computation related | ||||
| operations."; | ||||
| } | ||||
| container graceful-restart { | container graceful-restart { | |||
| if-feature graceful-restart; | if-feature graceful-restart; | |||
| leaf enable { | leaf enable { | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "Control enabling the feature."; | "Control enabling the feature."; | |||
| } | } | |||
| leaf restart-interval { | ||||
| type uint16; | ||||
| units "seconds"; | ||||
| description | ||||
| "Interval in seconds to attempt graceful restart prior | ||||
| to failing"; | ||||
| } | ||||
| leaf helper-enable { | ||||
| type boolean; | ||||
| description | ||||
| "If enabled, the local router can act as restart helper."; | ||||
| } | ||||
| description | description | |||
| "This container activates graceful restart."; | "This container activates graceful restart."; | |||
| } | } | |||
| container nsr { | container nsr { | |||
| if-feature nsr; | if-feature nsr; | |||
| description | description | |||
| "Non-Stop Routing (NSR) config state."; | "Non-Stop Routing (NSR) config state."; | |||
| leaf enable { | leaf enable { | |||
| type boolean; | type boolean; | |||
| skipping to change at page 69, line 31 ¶ | skipping to change at page 75, line 11 ¶ | |||
| } | } | |||
| description | description | |||
| "List of AFs."; | "List of AFs."; | |||
| } | } | |||
| description | description | |||
| "Container for address-families"; | "Container for address-families"; | |||
| } | } | |||
| container mpls { | container mpls { | |||
| container igp-ldp-sync { | container ldp { | |||
| if-feature igp-ldp-sync; | leaf igp-sync { | |||
| leaf enable { | if-feature ldp-igp-sync; | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "Enable/disable IGP LDP sync."; | "Enables IGP/LDP sync."; | |||
| } | } | |||
| description | description | |||
| "IGP-LDP sync configuration."; | "LDP protocol related configurations."; | |||
| } | } | |||
| description | description | |||
| "Container for MPLS specific configuration | "Container for MPLS specific configuration | |||
| for ISIS."; | for ISIS."; | |||
| } | } | |||
| } | } | |||
| grouping isis-if-topologies-cfg { | grouping isis-if-topologies-cfg { | |||
| description | description | |||
| "ISIS interface topology cfg."; | "ISIS interface topology cfg."; | |||
| skipping to change at page 71, line 47 ¶ | skipping to change at page 77, line 27 ¶ | |||
| leaf name { | leaf name { | |||
| type leafref { | type leafref { | |||
| path "../../../../../../rt:ribs/rt:rib/rt:name"; | path "../../../../../../rt:ribs/rt:rib/rt:name"; | |||
| } | } | |||
| description "RIB"; | description "RIB"; | |||
| } | } | |||
| uses isis-global-topologies-cfg; | uses isis-global-topologies-cfg; | |||
| container fast-reroute { | ||||
| if-feature fast-reroute; | ||||
| uses fast-reroute-global-cfg; | ||||
| description | ||||
| "IPFRR."; | ||||
| } | ||||
| description | description | |||
| "List of topologies"; | "List of topologies"; | |||
| } | } | |||
| description | description | |||
| "Container for multi-topology"; | "Container for multi-topology"; | |||
| } | } | |||
| container interfaces { | container interfaces { | |||
| list interface { | list interface { | |||
| skipping to change at page 72, line 46 ¶ | skipping to change at page 78, line 20 ¶ | |||
| leaf name { | leaf name { | |||
| type leafref { | type leafref { | |||
| path "../../../../../../../../"+ | path "../../../../../../../../"+ | |||
| "rt:ribs/rt:rib/rt:name"; | "rt:ribs/rt:rib/rt:name"; | |||
| } | } | |||
| description | description | |||
| "Name of RIB."; | "Name of RIB."; | |||
| } | } | |||
| container fast-reroute { | ||||
| if-feature fast-reroute; | ||||
| uses fast-reroute-if-cfg; | ||||
| description | ||||
| "IPFRR."; | ||||
| } | ||||
| uses isis-if-topologies-cfg; | uses isis-if-topologies-cfg; | |||
| description | description | |||
| "List of topologies."; | "List of topologies."; | |||
| } | } | |||
| description | description | |||
| "Container for multi-topology"; | "Container for multi-topology"; | |||
| } | } | |||
| description | description | |||
| "List of ISIS interfaces."; | "List of ISIS interfaces."; | |||
| skipping to change at page 73, line 47 ¶ | skipping to change at page 79, line 15 ¶ | |||
| container isis { | container isis { | |||
| config false; | config false; | |||
| uses isis-global-cfg; | uses isis-global-cfg; | |||
| container fast-reroute { | container fast-reroute { | |||
| if-feature fast-reroute; | if-feature fast-reroute; | |||
| uses fast-reroute-global-cfg; | uses fast-reroute-global-cfg; | |||
| uses fast-reroute-global-state; | uses fast-reroute-global-state; | |||
| description | description | |||
| "IPFRR states."; | "IPFRR states."; | |||
| } | } | |||
| container ietf-spf-delay { | ||||
| if-feature ietf-spf-delay; | ||||
| uses ietf-spf-delay-cfg; | ||||
| uses ietf-spf-delay-state; | ||||
| description | ||||
| "IETF SPF delay operational states."; | ||||
| } | ||||
| uses local-rib; | ||||
| list topologies { | list topologies { | |||
| key name; | key name; | |||
| leaf name { | leaf name { | |||
| type leafref { | type leafref { | |||
| path "../../../../../" | path "../../../../../" | |||
| +"rt:ribs/rt:rib/rt:name"; | +"rt:ribs/rt:rib/rt:name"; | |||
| } | } | |||
| description | description | |||
| "Name of RIB."; | "Name of RIB."; | |||
| } | } | |||
| container fast-route { | uses local-rib; | |||
| if-feature fast-reroute; | ||||
| uses fast-reroute-global-cfg; | ||||
| uses fast-reroute-global-state; | ||||
| description | ||||
| "IPFRR states."; | ||||
| } | ||||
| description | description | |||
| "List of topologies."; | "List of topologies."; | |||
| } | } | |||
| container system-counters { | container system-counters { | |||
| list level { | list level { | |||
| key level; | key level; | |||
| leaf level { | leaf level { | |||
| type level-number; | type level-number; | |||
| skipping to change at page 81, line 50 ¶ | skipping to change at page 87, line 18 ¶ | |||
| description | description | |||
| "This leaf describes the type of computation | "This leaf describes the type of computation | |||
| used."; | used."; | |||
| } | } | |||
| leaf level { | leaf level { | |||
| type level-number; | type level-number; | |||
| description | description | |||
| "This leaf describes the level affected by the | "This leaf describes the level affected by the | |||
| the computation."; | the computation."; | |||
| } | } | |||
| leaf spf-delay { | ||||
| type uint32; | ||||
| units "milliseconds"; | ||||
| description | ||||
| "This leaf describes the SPF delay that | ||||
| was used for this event."; | ||||
| } | ||||
| leaf schedule-timestamp { | leaf schedule-timestamp { | |||
| type yang:timestamp; | type yang:timestamp; | |||
| description | description | |||
| "This leaf describes the timestamp | "This leaf describes the timestamp | |||
| when the computation was scheduled."; | when the computation was scheduled."; | |||
| } | } | |||
| leaf start-timestamp { | leaf start-timestamp { | |||
| type yang:timestamp; | type yang:timestamp; | |||
| description | description | |||
| "This leaf describes the timestamp | "This leaf describes the timestamp | |||
| skipping to change at page 89, line 37 ¶ | skipping to change at page 94, line 47 ¶ | |||
| } | } | |||
| description | description | |||
| "This notification is sent when we attempt | "This notification is sent when we attempt | |||
| to propagate an LSP that is larger than the | to propagate an LSP that is larger than the | |||
| dataLinkBlockSize for the circuit. | dataLinkBlockSize for the circuit. | |||
| The notification generation must be throttled | The notification generation must be throttled | |||
| with at least a 5 second gap. | with at least a 5 second gap. | |||
| "; | "; | |||
| } | } | |||
| notification if-state-change { | ||||
| uses notification-instance-hdr; | ||||
| uses notification-interface-hdr; | ||||
| leaf state { | ||||
| type if-state-type; | ||||
| description "Interface state."; | ||||
| } | ||||
| description | ||||
| "This notification is sent when an interface | ||||
| state change is detected."; | ||||
| } | ||||
| notification corrupted-lsp-detected { | notification corrupted-lsp-detected { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| leaf lsp-id { | leaf lsp-id { | |||
| type lsp-id; | type lsp-id; | |||
| description | description | |||
| "LSP ID."; | "LSP ID."; | |||
| } | } | |||
| description | description | |||
| "This notification is sent when we find | "This notification is sent when we find | |||
| that an LSP that was stored in memory has | that an LSP that was stored in memory has | |||
| skipping to change at page 95, line 4 ¶ | skipping to change at page 100, line 28 ¶ | |||
| "if the problem is a malformed TLV, the tlv-type is set | "if the problem is a malformed TLV, the tlv-type is set | |||
| to the type value of the suspicious TLV. | to the type value of the suspicious TLV. | |||
| Otherwise this leaf is not present."; | Otherwise this leaf is not present."; | |||
| } | } | |||
| description | description | |||
| "This notification is sent when the system | "This notification is sent when the system | |||
| receives a LSP with a parse error. | receives a LSP with a parse error. | |||
| The notification generation must be throttled with at least | The notification generation must be throttled with at least | |||
| a 5 second gap. | a 5 second gap. | |||
| "; | "; | |||
| } | } | |||
| notification adjacency-change { | notification adjacency-state-change { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf neighbor { | leaf neighbor { | |||
| type string; | type string; | |||
| description | description | |||
| "Describes the name of the neighbor. If the | "Describes the name of the neighbor. If the | |||
| name of the neighbor is not available, the | name of the neighbor is not available, the | |||
| field would be empty."; | field would be empty."; | |||
| } | } | |||
| leaf neighbor-system-id { | leaf neighbor-system-id { | |||
| type system-id; | type system-id; | |||
| description | description | |||
| "Describes the system-id of the neighbor."; | "Describes the system-id of the neighbor."; | |||
| } | } | |||
| leaf level { | ||||
| type level; | ||||
| description | ||||
| "Describes the ISIS level of the adjacency."; | ||||
| } | ||||
| leaf state { | leaf state { | |||
| type enumeration { | type adj-state-type; | |||
| enum "Up" { | ||||
| description | ||||
| "This state describes that | ||||
| adjacency is established."; | ||||
| } | ||||
| enum "Down" { | ||||
| description | ||||
| "This state describes that | ||||
| adjacency is no more established."; | ||||
| } | ||||
| } | ||||
| description | description | |||
| "This leaf describes the new state of the | "This leaf describes the new state of the | |||
| ISIS adjacency."; | ISIS adjacency."; | |||
| } | } | |||
| leaf reason { | leaf reason { | |||
| type string; | type string; | |||
| description | description | |||
| "If the adjacency is going to DOWN, | "If the adjacency is going to DOWN, | |||
| this leaf provides a reason for the adjacency | this leaf provides a reason for the adjacency | |||
| going down. The reason is provided as a text. | going down. The reason is provided as a text. | |||
| skipping to change at page 98, line 10 ¶ | skipping to change at page 103, line 15 ¶ | |||
| depending on the internal organization, for example: | depending on the internal organization, for example: | |||
| o User FullWrite: would access to the whole data model. This kind | o User FullWrite: would access to the whole data model. This kind | |||
| of profile may be restricted to few experienced people. | of profile may be restricted to few experienced people. | |||
| o User PartialWrite: would only access to configuration part within | o User PartialWrite: would only access to configuration part within | |||
| /isis/interfaces/interface. So this kind of profile is restricted | /isis/interfaces/interface. So this kind of profile is restricted | |||
| to creation/modification/deletion of interfaces. This profile | to creation/modification/deletion of interfaces. This profile | |||
| does not have access to RPC. | does not have access to RPC. | |||
| o User Read: would only access to state part /isis-state. | o User Read: would only access to the operational states. | |||
| Unauthorized access to configuration or RPC may cause high damages to | Unauthorized access to configuration or RPC may cause high damages to | |||
| the network service. | the network service. | |||
| The /isis-state/database may contain authentication information. As | The "isis/database" may contain authentication information. As | |||
| presented in the description of the /isis-state/database/level- | presented in the description of the "/isis/database/level- | |||
| 1/lsp/authentication/authentication-key, the authentication MUST | 1/lsp/authentication/authentication-key", the authentication MUST | |||
| never be presented in plaintext format for security reason. Authors | never be displayed in a plaintext format for security reason. | |||
| recommend the usage of MD5 to display or return the authentication- | Authors recommend the usage of MD5 to display or return the | |||
| key. | authentication-key. | |||
| Some authentication-key may also be present in the /isis | Some authentication-key may also be required in the "isis" writable | |||
| configuration. When configuring IS-IS using the NETCONF protocol, | container. When configuring IS-IS using the NETCONF protocol, | |||
| authors recommends the usage of secure transport of NETCONF using SSH | authors recommends the usage of secure transport of NETCONF using SSH | |||
| ([RFC6242]). | ([RFC6242]). | |||
| 8. Contributors | 8. Contributors | |||
| Authors would like to thank Kiran Agrahara Sreenivasa, Dean | Authors would like to thank Kiran Agrahara Sreenivasa, Dean | |||
| Bogdanovic, Yingzhen Qu, Yi Yang for their major contributions to the | Bogdanovic, Yingzhen Qu, Yi Yang for their major contributions to the | |||
| draft. | draft. | |||
| 9. Acknowledgements | 9. Acknowledgements | |||
| skipping to change at page 99, line 7 ¶ | skipping to change at page 104, line 15 ¶ | |||
| This document also requests one new YANG module name in the YANG | This document also requests one new YANG module name in the YANG | |||
| Module Names registry ([RFC6020]) with the following suggestion: | Module Names registry ([RFC6020]) with the following suggestion: | |||
| name: ietf-isis | name: ietf-isis | |||
| namespace: urn:ietf:params:xml:ns:yang:ietf-isis | namespace: urn:ietf:params:xml:ns:yang:ietf-isis | |||
| prefix: isis | prefix: isis | |||
| reference: RFC XXXX | reference: RFC XXXX | |||
| 11. Change log for ietf-isis YANG module | 11. Change log for ietf-isis YANG module | |||
| 11.1. From version -13 to version -14 | 11.1. From version -14 to version -15 | |||
| o Alignment with OSPF model done: | ||||
| * Added spf-control container with IETF SPF delay algorithm as a | ||||
| feature. | ||||
| * Added graceful-restart options. | ||||
| * Added nsr as a feature. | ||||
| * Removed per topology FRR. Need to be augmented if necessary. | ||||
| * Created an ldp container within mpls. | ||||
| * Renamed igp-ldp-sync to igp-sync. | ||||
| * Added auto-cost container. | ||||
| * Moved reference-bandwidth under auto-cost container. | ||||
| * Added IS-IS local RIB as operational state. | ||||
| * Added decode-completed and raw-data leaves in the LSDB model. | ||||
| * Modified the notification header. | ||||
| 11.2. From version -13 to version -14 | ||||
| o Segment Routing extensions are now in a separate document. | o Segment Routing extensions are now in a separate document. | |||
| 11.2. From version -12 to version -13 | 11.3. From version -12 to version -13 | |||
| o Move feature nlpid-control to container rather than list. | o Move feature nlpid-control to container rather than list. | |||
| o Rename multi-topology to topologies to align with OSPF. | o Rename multi-topology to topologies to align with OSPF. | |||
| o Rename bfd/enabled to bfd/enable for consistency reason. | o Rename bfd/enabled to bfd/enable for consistency reason. | |||
| o Add support for NSR with a feature. | o Add support for NSR with a feature. | |||
| 11.3. From version -09 to version -12 | 11.4. From version -09 to version -12 | |||
| o Rename node-tag container to node-tags. | o Rename node-tag container to node-tags. | |||
| 11.4. From version -08 to version -09 | 11.5. From version -08 to version -09 | |||
| o Added container before af list. | o Added container before af list. | |||
| o Added container before topology list. | o Added container before topology list. | |||
| o Aligned LFA if per level cfg. | o Aligned LFA if per level cfg. | |||
| o Align to draft-ietf-netmod-routing-cfg-23. | o Align to draft-ietf-netmod-routing-cfg-23. | |||
| 11.5. From version -07 to version -08 | 11.6. From version -07 to version -08 | |||
| o Remove selector from system-id type. | o Remove selector from system-id type. | |||
| o Add some default values. | o Add some default values. | |||
| o Moved lists to containers+groupings for per level configuration. | o Moved lists to containers+groupings for per level configuration. | |||
| o remove routing-instance as per core routing model v21. | o remove routing-instance as per core routing model v21. | |||
| o added BFD leaf (no more BFD protocol model). | o added BFD leaf (no more BFD protocol model). | |||
| o changed keychain module reference. | o changed keychain module reference. | |||
| 11.6. From version -05 to version -07 | 11.7. From version -05 to version -07 | |||
| o Move Overload config from list to container. | o Move Overload config from list to container. | |||
| o Move Overload-max-metric config from list to container. | o Move Overload-max-metric config from list to container. | |||
| o Move preference config from list to container. | o Move preference config from list to container. | |||
| o Add Node flag in config. | o Add Node flag in config. | |||
| o Removed BFD config => moved to isis-bfd module. | o Removed BFD config => moved to isis-bfd module. | |||
| o Remove call to routing policy model. | o Remove call to routing policy model. | |||
| 11.7. From version -03 to version -05 | 11.8. From version -03 to version -05 | |||
| o Correct invalid references to previous versions of core routing | o Correct invalid references to previous versions of core routing | |||
| model. | model. | |||
| o Remove BFD config and replace by groupings from ietf-bfd. | o Remove BFD config and replace by groupings from ietf-bfd. | |||
| o Adding routing-policy support through routing-policy model. | o Adding routing-policy support through routing-policy model. | |||
| 11.8. From version -02 to version -03 | 11.9. From version -02 to version -03 | |||
| o Reviewed config and op state groupings. | o Reviewed config and op state groupings. | |||
| o Add default value to lfa candidate-disabled. | o Add default value to lfa candidate-disabled. | |||
| o Add enable leaf to isis container to reflect admin state. | o Add enable leaf to isis container to reflect admin state. | |||
| o Move to VRF centric only. | o Move to VRF centric only. | |||
| o Segment routing is part os a separate module. | o Segment routing is part os a separate module. | |||
| 11.9. From version -01 to version -02 | 11.10. From version -01 to version -02 | |||
| o Adding IPFRR. | o Adding IPFRR. | |||
| o Adding igp-ldp-sync. | o Adding igp-ldp-sync. | |||
| o Adding segment-routing. | o Adding segment-routing. | |||
| o Adding instance reference to operational states. | o Adding instance reference to operational states. | |||
| o Move AF type from string to identity. | o Move AF type from string to identity. | |||
| skipping to change at page 101, line 17 ¶ | skipping to change at page 107, line 5 ¶ | |||
| o Added modification information in lsp-log. | o Added modification information in lsp-log. | |||
| o Removing igp-ldp-sync timer in IS-IS. | o Removing igp-ldp-sync timer in IS-IS. | |||
| o Defining hierarchy for operational states. | o Defining hierarchy for operational states. | |||
| o Adding clns-mtu. | o Adding clns-mtu. | |||
| o Adding key-chain. | o Adding key-chain. | |||
| 11.10. From version -00 to version -01 | 11.11. From version -00 to version -01 | |||
| o Interface metric move from af container to interface container. | o Interface metric move from af container to interface container. | |||
| o Hello-padding on interface moved to hello-padding-disable with | o Hello-padding on interface moved to hello-padding-disable with | |||
| empty type. | empty type. | |||
| o three-way-handshake removed. | o three-way-handshake removed. | |||
| o route preference changed to a choice. | o route preference changed to a choice. | |||
| skipping to change at page 101, line 51 ¶ | skipping to change at page 107, line 39 ¶ | |||
| o Make BFD a feature. | o Make BFD a feature. | |||
| o Create mpls-te container and put router-id inside. | o Create mpls-te container and put router-id inside. | |||
| o Remove GR helper disable and timers. | o Remove GR helper disable and timers. | |||
| 12. Normative References | 12. Normative References | |||
| [I-D.ietf-netmod-routing-cfg] | [I-D.ietf-netmod-routing-cfg] | |||
| Lhotka, L. and A. Lindem, "A YANG Data Model for Routing | Lhotka, L. and A. Lindem, "A YANG Data Model for Routing | |||
| Management", draft-ietf-netmod-routing-cfg-24 (work in | Management", draft-ietf-netmod-routing-cfg-25 (work in | |||
| progress), October 2016. | progress), November 2016. | |||
| [I-D.ietf-rtgwg-yang-key-chain] | [I-D.ietf-rtgwg-yang-key-chain] | |||
| Lindem, A., Qu, Y., Yeung, D., Chen, I., Zhang, Z., and Y. | Lindem, A., Qu, Y., Yeung, D., Chen, I., Zhang, Z., and Y. | |||
| Yang, "Routing Key Chain YANG Data Model", draft-ietf- | Yang, "Routing Key Chain YANG Data Model", draft-ietf- | |||
| rtgwg-yang-key-chain-10 (work in progress), October 2016. | rtgwg-yang-key-chain-13 (work in progress), January 2017. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/ | Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/ | |||
| RFC2119, March 1997, | RFC2119, March 1997, | |||
| <http://www.rfc-editor.org/info/rfc2119>. | <http://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
| DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, | |||
| <http://www.rfc-editor.org/info/rfc3688>. | <http://www.rfc-editor.org/info/rfc3688>. | |||
| End of changes. 123 change blocks. | ||||
| 441 lines changed or deleted | 723 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||