| < draft-ietf-isis-yang-isis-cfg-00.txt | draft-ietf-isis-yang-isis-cfg-01.txt > | |||
|---|---|---|---|---|
| ISIS Working Group S. Litkowski | ISIS Working Group S. Litkowski | |||
| Internet-Draft Orange | Internet-Draft Orange | |||
| Intended status: Standards Track D. Yeung | Intended status: Standards Track D. Yeung | |||
| Expires: April 10, 2015 A. Lindem | Expires: April 27, 2015 A. Lindem | |||
| Cisco Systems | Cisco Systems | |||
| J. Zhang | J. Zhang | |||
| Juniper Networks | Juniper Networks | |||
| L. Lhotka | L. Lhotka | |||
| October 07, 2014 | October 24, 2014 | |||
| YANG Data Model for ISIS protocol | YANG Data Model for ISIS protocol | |||
| draft-ietf-isis-yang-isis-cfg-00 | draft-ietf-isis-yang-isis-cfg-01 | |||
| 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 ISIS protocol. | and manage ISIS protocol. | |||
| 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 43 ¶ | skipping to change at page 1, line 43 ¶ | |||
| 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 April 10, 2015. | This Internet-Draft will expire on April 27, 2015. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2014 IETF Trust and the persons identified as the | Copyright (c) 2014 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 21 ¶ | skipping to change at page 2, line 21 ¶ | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 1.1. Tree diagram . . . . . . . . . . . . . . . . . . . . . . 2 | 1.1. Tree diagram . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 3 | 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 3 | |||
| 2.1. ISIS Configuration . . . . . . . . . . . . . . . . . . . 8 | 2.1. ISIS Configuration . . . . . . . . . . . . . . . . . . . 8 | |||
| 2.2. Multitopology Parameters . . . . . . . . . . . . . . . . 8 | 2.2. Multitopology Parameters . . . . . . . . . . . . . . . . 9 | |||
| 2.3. Per-Level Parameters . . . . . . . . . . . . . . . . . . 8 | 2.3. Per-Level Parameters . . . . . . . . . . . . . . . . . . 10 | |||
| 2.4. Per-Interface Parameters . . . . . . . . . . . . . . . . 9 | 2.4. Per-Interface Parameters . . . . . . . . . . . . . . . . 10 | |||
| 2.5. Operational State . . . . . . . . . . . . . . . . . . . . 10 | 2.5. Operational State . . . . . . . . . . . . . . . . . . . . 11 | |||
| 3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 11 | 3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 11 | 4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 5. Interaction with Other YANG Modules . . . . . . . . . . . . . 16 | 5. Interaction with Other YANG Modules . . . . . . . . . . . . . 20 | |||
| 6. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . 16 | 6. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 78 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 82 | |||
| 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 79 | 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 83 | |||
| 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 79 | 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 83 | |||
| 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 79 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 83 | |||
| 11. Normative References . . . . . . . . . . . . . . . . . . . . 79 | 11. Normative References . . . . . . . . . . . . . . . . . . . . 83 | |||
| Appendix A. Example: NETCONF <get> Reply . . . . . . . . . . . . 80 | Appendix A. Example: NETCONF <get> Reply . . . . . . . . . . . . 84 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 80 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 87 | |||
| 1. Introduction | 1. Introduction | |||
| This document defines a YANG data model for ISIS routing protocol. | This document defines a YANG data model for ISIS routing protocol. | |||
| The data model covers configuration of an ISIS routing protocol | The data model covers configuration of an ISIS 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 3, line 44 ¶ | skipping to change at page 3, line 44 ¶ | |||
| +--ro metric? uint32 | +--ro metric? uint32 | |||
| +--ro tag* uint64 | +--ro tag* uint64 | |||
| +--ro route-type? enumeration | +--ro route-type? enumeration | |||
| augment /rt:active-route/rt:output/rt:route: | augment /rt:active-route/rt:output/rt:route: | |||
| +--ro metric? uint32 | +--ro metric? uint32 | |||
| +--ro tag* uint64 | +--ro tag* uint64 | |||
| +--ro route-type? enumeration | +--ro route-type? enumeration | |||
| augment /rt:routing/rt:routing-instance/rt:routing-protocols/rt:routing-protocol: | augment /rt:routing/rt:routing-instance/rt:routing-protocols/rt:routing-protocol: | |||
| +--rw isis | +--rw isis | |||
| +--rw instance* [routing-instance] | +--rw instance* [routing-instance] | |||
| +--rw routing-instance rt:routing-instance-ref | +--rw routing-instance rt:routing-instance-ref | |||
| +--rw level? 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 ipv4-router-id? inet:ipv4-address | +--rw mpls-te | |||
| +--rw ipv6-router-id? inet:ipv6-address | | ... | |||
| +--rw reference-bandwidth? uint32 {reference-bandwidth}? | +--rw reference-bandwidth? uint32 {reference-bandwidth}? | |||
| +--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 lsp-gen-interval-exp-delay* [level] {lsp-gen-interval-exp-delay}? | ||||
| | +--rw initial? uint16 | ||||
| | +--rw incremental? uint16 | ||||
| | +--rw maximum? uint8 | ||||
| | +--rw level level | ||||
| +--rw graceful-restart {graceful-restart}? | +--rw graceful-restart {graceful-restart}? | |||
| | +--rw restart-duration? uint16 | | ... | |||
| | +--rw helper-disable? empty | +--rw authentication* [level] | |||
| | +--rw enabled? boolean | | ... | |||
| +--rw psnp-authentication* [level] | +--rw metric-type* [level] | |||
| | +--rw value? boolean | | ... | |||
| | +--rw level level | +--rw preference* [level] | |||
| +--rw csnp-authentication* [level] | | ... | |||
| | +--rw value? boolean | +--rw default-metric* [level] | |||
| | +--rw level level | | ... | |||
| +--rw authentication-key* [level] | +--rw af* [af] {nlpid-control}? | |||
| | +--rw value? string | | ... | |||
| | +--rw level level | +--rw topologies* [name] {multi-topology}? | |||
| +--rw authentication-type* [level] | | ... | |||
| | +--rw value? authentication-type | +--rw overload* [level] | |||
| | ... | ||||
| +--rw overload-max-metric* [level] {overload-max-metric}? | ||||
| | ... | ||||
| +--rw interfaces | ||||
| ... | ||||
| augment /rt:routing-state/rt:routing-instance/rt:routing-protocols/rt:routing-protocol: | ||||
| +--ro isis | ||||
| +--ro system-counters | ||||
| | +--ro level* [level] | ||||
| | ... | ||||
| +--ro interface-counters | ||||
| | +--ro interface* [interface] | ||||
| | ... | ||||
| +--ro packet-counters | ||||
| | +--ro level* [level] | ||||
| | ... | ||||
| +--ro interfaces | ||||
| | +--ro interfaces* [interface] | ||||
| | ... | ||||
| +--ro adjacencies | ||||
| | +--ro adjacency* | ||||
| | ... | ||||
| +--ro spf-log | ||||
| | +--ro event* [id] | ||||
| | ... | ||||
| +--ro lsp-log | ||||
| | +--ro event* [id] | ||||
| | ... | ||||
| +--ro database | ||||
| | +--ro level-db* [level] | ||||
| | ... | ||||
| +--ro hostnames | ||||
| +--ro hostname* [system-id] | ||||
| ... | ||||
| rpcs: | ||||
| +---x clear-adjacency | ||||
| | +--ro input | ||||
| | +--ro routing-instance-name rt:routing-instance-state-ref | ||||
| | +--ro routing-protocol-instance-name instance-state-ref | ||||
| | +--ro level? level | ||||
| | +--ro interface? string | ||||
| +---x clear-database | ||||
| +--ro input | ||||
| +--ro routing-instance-name rt:routing-instance-state-ref | ||||
| +--ro routing-protocol-instance-name instance-state-ref | ||||
| +--ro level? level | ||||
| notifications: | ||||
| +---n database-overload | ||||
| | +--ro instance-name? string | ||||
| | +--ro instance-level? level | ||||
| | +--ro overload? enumeration | ||||
| +---n lsp-too-large | ||||
| | +--ro instance-name? string | ||||
| | +--ro instance-level? level | ||||
| | +--ro interface-name? string | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro pdu-size? uint32 | ||||
| | +--ro lsp-id? lsp-id | ||||
| +---n corrupted-lsp-detected | ||||
| | +--ro instance-name? string | ||||
| | +--ro instance-level? level | ||||
| | +--ro lsp-id? lsp-id | ||||
| +---n attempt-to-exceed-max-sequence | ||||
| | +--ro instance-name? string | ||||
| | +--ro instance-level? level | ||||
| | +--ro lsp-id? lsp-id | ||||
| +---n id-len-mismatch | ||||
| | +--ro instance-name? string | ||||
| | +--ro instance-level? level | ||||
| | +--ro interface-name? string | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro pdu-field-len? uint8 | ||||
| | +--ro raw-pdu? binary | ||||
| +---n max-area-addresses-mismatch | ||||
| | +--ro instance-name? string | ||||
| | +--ro instance-level? level | ||||
| | +--ro interface-name? string | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro max-area-addresses? uint8 | ||||
| | +--ro raw-pdu? binary | ||||
| +---n own-lsp-purge | ||||
| | +--ro instance-name? string | ||||
| | +--ro instance-level? level | ||||
| | +--ro interface-name? string | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro lsp-id? lsp-id | ||||
| +---n sequence-number-skipped | ||||
| | +--ro instance-name? string | ||||
| | +--ro instance-level? level | ||||
| | +--ro interface-name? string | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro lsp-id? lsp-id | ||||
| +---n authentication-type-failure | ||||
| | +--ro instance-name? string | ||||
| | +--ro instance-level? level | ||||
| | +--ro interface-name? string | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro raw-pdu? binary | ||||
| +---n authentication-failure | ||||
| | +--ro instance-name? string | ||||
| | +--ro instance-level? level | ||||
| | +--ro interface-name? string | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro raw-pdu? binary | ||||
| +---n version-skew | ||||
| | +--ro instance-name? string | ||||
| | +--ro instance-level? level | ||||
| | +--ro interface-name? string | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro protocol-version? uint8 | ||||
| | +--ro raw-pdu? binary | ||||
| +---n area-mismatch | ||||
| | +--ro instance-name? string | ||||
| | +--ro instance-level? level | ||||
| | +--ro interface-name? string | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro raw-pdu? binary | ||||
| +---n rejected-adjacency | ||||
| | +--ro instance-name? string | ||||
| | +--ro instance-level? level | ||||
| | +--ro interface-name? string | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro raw-pdu? binary | ||||
| | +--ro reason? string | ||||
| +---n protocols-supported-mismatch | ||||
| | +--ro instance-name? string | ||||
| | +--ro instance-level? level | ||||
| | +--ro interface-name? string | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro raw-pdu? binary | ||||
| | +--ro protocols* uint8 | ||||
| +---n lsp-error-detected | ||||
| | +--ro instance-name? string | ||||
| | +--ro instance-level? level | ||||
| | +--ro interface-name? string | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro lsp-id? lsp-id | ||||
| | +--ro raw-pdu? binary | ||||
| | +--ro error-offset? uint32 | ||||
| | +--ro tlv-type? uint8 | ||||
| +---n adjacency-change | ||||
| | +--ro instance-name? string | ||||
| | +--ro instance-level? level | ||||
| | +--ro interface-name? string | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro neighbor? string | ||||
| | +--ro neighbor-system-id? system-id | ||||
| | +--ro level? level | ||||
| | +--ro state? enumeration | ||||
| | +--ro reason? string | ||||
| +---n lsp-received | ||||
| | +--ro instance-name? string | ||||
| | +--ro instance-level? level | ||||
| | +--ro interface-name? string | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro lsp-id? lsp-id | ||||
| | +--ro sequence? uint32 | ||||
| | +--ro received-timestamp? yang:timestamp | ||||
| | +--ro neighbor-system-id? system-id | ||||
| +---n lsp-generation | ||||
| +--ro instance-name? string | ||||
| +--ro instance-level? level | ||||
| +--ro lsp-id? lsp-id | ||||
| +--ro sequence? uint32 | ||||
| +--ro send-timestamp? yang:timestamp | ||||
| 2.1. ISIS Configuration | ||||
| The ISIS configuration currently supports both VRF-centric and | ||||
| protocol-centric configuration. This may be changed in future. In a | ||||
| protocol-centric configuration, the isis configuration is applied | ||||
| within the standard-routing-instance and the instance list helps to | ||||
| reference the routing-instance where ISIS is activated. In a VRF- | ||||
| centric configuration, the isis configuration is applied directly | ||||
| within the appropriate routing-instance where ISIS is activated. In | ||||
| this case, the instance list will contain a single element. | ||||
| The ISIS configuration container is divided in: | ||||
| o Global parameters. | ||||
| o Per interface configuration (see Section 2.4). | ||||
| It would to up to extension modules to augment this model to support | ||||
| vendor specific parameters. | ||||
| augment /rt:routing/rt:routing-instance/rt:routing-protocols/rt:routing-protocol: | ||||
| +--rw isis | ||||
| +--rw instance* [routing-instance] | ||||
| +--rw routing-instance rt:routing-instance-ref | ||||
| +--rw level-type? level | ||||
| +--rw system-id? system-id | ||||
| +--rw maximum-area-addresses? uint8 {maximum-area-addresses}? | ||||
| +--rw area-address* area-address | ||||
| +--rw mpls-te | ||||
| | +--rw ipv4-router-id? inet:ipv4-address {ipv4-router-id}? | ||||
| | +--rw ipv6-router-id? inet:ipv6-address {ipv6-router-id}? | ||||
| +--rw reference-bandwidth? uint32 {reference-bandwidth}? | ||||
| +--rw lsp-mtu? uint16 | ||||
| +--rw lsp-lifetime? uint16 | ||||
| +--rw lsp-refresh? uint16 {lsp-refresh}? | ||||
| +--rw graceful-restart {graceful-restart}? | ||||
| | +--rw enabled? boolean | ||||
| +--rw authentication* [level] | ||||
| | +--rw key? string | ||||
| | +--rw type? authentication-type | ||||
| | +--rw level level | | +--rw level level | |||
| +--rw metric-type* [level] | +--rw metric-type* [level] | |||
| | +--rw value? enumeration | | +--rw value? enumeration | |||
| | +--rw level level | | +--rw level level | |||
| +--rw preference* [level] | +--rw preference* [level] | |||
| | +--rw value? uint8 | | +--rw (granularity)? | |||
| | +--rw level level | | | +--:(detail) | |||
| +--rw external-preference* [level] | | | | +--rw internal? uint8 | |||
| | +--rw value? uint8 | | | | +--rw external? uint8 | |||
| | +--rw level level | | | +--:(coarse) | |||
| | | +--rw default? uint8 | ||||
| | +--rw level level | ||||
| +--rw default-metric* [level] | +--rw default-metric* [level] | |||
| | +--rw value? wide-metric | | +--rw value? wide-metric | |||
| | +--rw level level | | +--rw level level | |||
| +--rw af* [af] {nlpid-control}? | +--rw af* [af] {nlpid-control}? | |||
| | +--rw af string | | +--rw af string | |||
| | +--rw enabled? boolean | ||||
| +--rw topologies* [name] {multi-topology}? | ||||
| | +--rw enabled? boolean | | +--rw enabled? boolean | |||
| | +--rw name rt:rib-ref | ||||
| | +--rw default-metric* [level] | | +--rw default-metric* [level] | |||
| | +--rw value? wide-metric | | +--rw value? wide-metric | |||
| | +--rw level level | | +--rw level level | |||
| +--rw topologies* [name] {multi-topology}? | ||||
| | +--rw enabled? boolean | ||||
| | +--rw name rt:rib-ref | ||||
| +--rw overload* [level] | +--rw overload* [level] | |||
| | +--rw status? boolean | | +--rw status? boolean | |||
| | +--rw type? enumeration | | +--rw timeout? uint16 | |||
| | +--rw level level | ||||
| +--rw overload-max-metric* [level] {overload-max-metric}? | ||||
| | +--rw status? boolean | ||||
| | +--rw timeout? uint16 | | +--rw timeout? uint16 | |||
| | +--rw level level | | +--rw level level | |||
| +--rw interfaces | +--rw interfaces | |||
| +--rw interface* [name] | +--rw interface* [name] | |||
| ... | ... | |||
| 2.2. Multitopology Parameters | ||||
| The topologies list is used to enable support of MT extensions for | ||||
| specific address families. | ||||
| Each topology should refer to an existing RIB. | ||||
| 2.3. Per-Level Parameters | ||||
| Some parameters support per level configuration. In this case, the | ||||
| parameter is built as a list, so different values could be used for | ||||
| each level. The "level-all" permits to apply a value to both levels. | ||||
| +--rw priority* [level] | ||||
| | +--rw value? uint8 | ||||
| | +--rw level level | ||||
| Example : | ||||
| <priority> | ||||
| <value>100</value> | ||||
| <level>level-1</level> | ||||
| </priority> | ||||
| <priority> | ||||
| <value>200</value> | ||||
| <level>level-2</level> | ||||
| </priority> | ||||
| 2.4. Per-Interface Parameters | ||||
| The per-interface section of the ISIS instance describes the | ||||
| interface specific parameters. | ||||
| The interface is referenced using a string. It would be up to the | ||||
| server device to check if the interface exists or not. Using a | ||||
| string permits to support some specific implementations that use the | ||||
| "interface all" stanza to apply a configuration to all interfaces. | ||||
| Each interface has interface-specific parameters that may have a | ||||
| different value per level as described in previous section. An | ||||
| interface-specific parameter always override an ISIS global parameter | ||||
| . | ||||
| Some parameters like BFD and hello-padding are defined as containers | ||||
| to permit easy extension by vendor specific modules. | ||||
| +--rw interfaces | ||||
| +--rw interface* [name] | ||||
| +--rw name string | ||||
| +--rw level-type? level | ||||
| +--rw lsp-pacing-interval? uint16 | ||||
| +--rw lsp-retransmit-interval? uint16 | ||||
| +--rw passive? boolean | ||||
| +--rw csnp-interval? uint16 | ||||
| +--rw hello-padding | ||||
| | +--rw enabled? boolean | ||||
| +--rw mesh-group-enabled? mesh-group-state | ||||
| +--rw mesh-group? uint8 | ||||
| +--rw interface-type? interface-type | ||||
| +--rw enabled? boolean | ||||
| +--rw tag* uint32 {prefix-tag}? | ||||
| +--rw tag64* uint64 {prefix-tag64}? | ||||
| +--rw hello-authentication* [level] | ||||
| | +--rw type? authentication-type | ||||
| | +--rw key? string | ||||
| | +--rw level level | ||||
| +--rw hello-interval* [level] | ||||
| | +--rw value? uint16 | ||||
| | +--rw level level | ||||
| +--rw hello-multiplier* [level] | ||||
| | +--rw value? uint16 | ||||
| | +--rw level level | ||||
| +--rw priority* [level] | ||||
| | +--rw value? uint8 | ||||
| | +--rw level level | ||||
| +--rw metric* [level] | ||||
| | +--rw value? wide-metric | ||||
| | +--rw level level | ||||
| +--rw af* [af] | ||||
| | +--rw af string | ||||
| | +--rw bfd {bfd}? | ||||
| | ... | ||||
| +--rw topologies* [name] | ||||
| +--rw name rt:rib-ref | ||||
| +--rw metric* [level] | ||||
| ... | ||||
| 2.5. Operational State | ||||
| "isis" container provides operational states for ISIS. This | ||||
| container is divided in multiple components: | ||||
| o system-counters : provides statistical informations about the | ||||
| global system. | ||||
| o interface-counters : provides statistical informations for each | ||||
| interface. | ||||
| o packet-counters : provides statistical informations for each type | ||||
| of PDU. | ||||
| o interface : provides configuration state information for each | ||||
| interface. | ||||
| o adjacencies: provides state information about current ISIS | ||||
| adjacencies. | ||||
| o spf-log: provides information about SPF events on the node. | ||||
| o lsp-log: provides information about LSP events on the node | ||||
| (reception of an LSP or modification of local LSP). | ||||
| o database: provides details on current LSDB. | ||||
| o hostnames: provides information about system-id to hostname | ||||
| mappings. | ||||
| augment /rt:routing-state/rt:routing-instance/rt:routing-protocols/rt:routing-protocol: | augment /rt:routing-state/rt:routing-instance/rt:routing-protocols/rt:routing-protocol: | |||
| +--ro isis | +--ro isis | |||
| +--ro system-counters | +--ro system-counters | |||
| | +--ro level* [level] | | +--ro level* [level] | |||
| | +--ro level level-number | | +--ro level level-number | |||
| | +--ro corrupted-lsps? uint32 | | +--ro corrupted-lsps? uint32 | |||
| | +--ro authentication-type-fails? uint32 | | +--ro authentication-type-fails? uint32 | |||
| | +--ro authentication-fails? uint32 | | +--ro authentication-fails? uint32 | |||
| | +--ro database-overload? uint32 | | +--ro database-overload? uint32 | |||
| | +--ro own-lsp-purge? uint32 | | +--ro own-lsp-purge? uint32 | |||
| skipping to change at page 8, line 4 ¶ | skipping to change at page 15, line 22 ¶ | |||
| | +--ro mt-entries | | +--ro mt-entries | |||
| | | +--ro topology* [MT-ID] | | | +--ro topology* [MT-ID] | |||
| | | ... | | | ... | |||
| | +--ro ipv6-addresses* inet:ipv6-address | | +--ro ipv6-addresses* inet:ipv6-address | |||
| | +--ro mt-extended-ipv4-reachability | | +--ro mt-extended-ipv4-reachability | |||
| | | +--ro prefixes* [ip-prefix] | | | +--ro prefixes* [ip-prefix] | |||
| | | ... | | | ... | |||
| | +--ro mt-ipv6-reachability | | +--ro mt-ipv6-reachability | |||
| | | +--ro prefixes* [ip-prefix] | | | +--ro prefixes* [ip-prefix] | |||
| | | ... | | | ... | |||
| | +--ro ipv6-reachability | | +--ro ipv6-reachability | |||
| | | +--ro prefixes* [ip-prefix] | | | +--ro prefixes* [ip-prefix] | |||
| | | ... | | | ... | |||
| | +--ro router-capabilities | | +--ro router-capabilities | |||
| | +--ro binary? binary | | +--ro binary? binary | |||
| +--ro hostnames | +--ro hostnames | |||
| +--ro hostname* [system-id] | +--ro hostname* [system-id] | |||
| +--ro system-id system-id | +--ro system-id system-id | |||
| +--ro hostname? string | +--ro hostname? string | |||
| 2.1. ISIS Configuration | ||||
| The ISIS configuration currently supports both VRF-centric and | ||||
| protocol-centric configuration. This may be changed in future. In a | ||||
| protocol-centric configuration, the isis configuration is applied | ||||
| within the standard-routing-instance and the instance list helps to | ||||
| reference the routing-instance where ISIS is activated. In a VRF- | ||||
| centric configuration, the isis configuration is applied directly | ||||
| within the appropriate routing-instance where ISIS is activated. In | ||||
| this case, the instance list will contain a single element. | ||||
| The ISIS configuration container is divided in: | ||||
| o Global parameters. | ||||
| o Per interface configuration (see Section 2.4). | ||||
| 2.2. Multitopology Parameters | ||||
| The topologies list is used to enable support of MT extensions for | ||||
| specific address families. | ||||
| Each topology should refer to an existing RIB. | ||||
| 2.3. Per-Level Parameters | ||||
| Some parameters support per level configuration. In this case, the | ||||
| parameter is built as a list, so different values could be used for | ||||
| each level. The "level-all" permits to apply a value to both levels. | ||||
| +--rw priority* [level] | ||||
| | +--rw value? uint8 | ||||
| | +--rw level level | ||||
| 2.4. Per-Interface Parameters | ||||
| The per-interface section of the ISIS instance describes the | ||||
| interface specific parameters. | ||||
| The interface is referenced using a string. It would be up to the | ||||
| server device to check if the interface exists or not. Using a | ||||
| string permits to support some specific implementations that use the | ||||
| "interface all" stanza to apply a configuration to all interfaces. | ||||
| Each interface has interface-specific parameters that may have a | ||||
| different value per level as described in previous section. An | ||||
| interface-specific parameter always override an ISIS global parameter | ||||
| . | ||||
| +--rw name string | ||||
| +--rw level-type? level | ||||
| +--rw lsp-pacing-interval? uint16 | ||||
| +--rw lsp-retransmit-interval? uint16 | ||||
| +--rw passive? boolean | ||||
| +--rw csnp-interval? uint16 | ||||
| +--rw three-way-handshake? boolean | ||||
| +--rw hello-padding? boolean | ||||
| +--rw mesh-group-enabled? mesh-group-state | ||||
| +--rw mesh-group? uint8 | ||||
| +--rw interface-type? interface-type | ||||
| +--rw enabled? boolean | ||||
| +--rw tag* uint32 {prefix-tag}? | ||||
| +--rw tag64* uint64 {prefix-tag64}? | ||||
| +--rw hello-authentication* [level] | ||||
| | +--rw type? authentication-type | ||||
| | +--rw key? string | ||||
| | +--rw level level | ||||
| +--rw hello-interval* [level] | ||||
| | +--rw value? uint16 | ||||
| | +--rw level level | ||||
| +--rw hello-multiplier* [level] | ||||
| | +--rw value? uint16 | ||||
| | +--rw level level | ||||
| +--rw priority* [level] | ||||
| | +--rw value? uint8 | ||||
| | +--rw level level | ||||
| +--rw af* [af] | ||||
| | +--rw af string | ||||
| | +--rw bfd-enabled? empty | ||||
| | +--rw metric* [level] | ||||
| | ... | ||||
| +--rw topologies* [name] | ||||
| +--rw name rt:rib-ref | ||||
| +--rw metric* [level] | ||||
| ... | ||||
| 2.5. Operational State | ||||
| "isis" container provides operational states for ISIS. This | ||||
| container is divided in multiple components: | ||||
| o system-counters : provides statistical informations about the | ||||
| global system. | ||||
| o interface-counters : provides statistical informations for each | ||||
| interface. | ||||
| o packet-counters : provides statistical informations for each type | ||||
| of PDU. | ||||
| o interface : provides configuration state information for each | ||||
| interface. | ||||
| o adjacencies: provides state information about current ISIS | ||||
| adjacencies. | ||||
| o spf-log: provides information about SPF events on the node. | ||||
| o lsp-log: provides information about LSP events on the node | ||||
| (reception of an LSP or modification of local LSP). | ||||
| o database: provides details on current LSDB. | ||||
| o hostnames: provides information about system-id to hostname | ||||
| mappings. | ||||
| 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 ISIS | o clear-isis-database: reset the content of a particular ISIS | |||
| 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 ISIS | o clear-isis-adjacency: restart a particular set of ISIS | |||
| adjacencies. | adjacencies. | |||
| skipping to change at page 16, line 23 ¶ | skipping to change at page 20, line 37 ¶ | |||
| container of the ietf-routing module by defining ISIS specific | container of the ietf-routing module by defining ISIS specific | |||
| operational states. | operational states. | |||
| Some ISIS specific routes attributes are added to route objects of | Some ISIS specific routes attributes are added to route objects of | |||
| the ietf-routing module by augmenting "/rt:routing- | the ietf-routing module by augmenting "/rt:routing- | |||
| state/rt:ribs/rt:rib/rt:routes/rt:route" and "/rt:active- | state/rt:ribs/rt:rib/rt:routes/rt:route" and "/rt:active- | |||
| route/rt:output/rt:route". | route/rt:output/rt:route". | |||
| 6. YANG Module | 6. YANG Module | |||
| <CODE BEGINS> file "ietf-isis@2014-10-07.yang" | <CODE BEGINS> file "ietf-isis@2014-10-24.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"; | |||
| } | } | |||
| skipping to change at page 17, line 26 ¶ | skipping to change at page 21, line 40 ¶ | |||
| <mailto:kkoushik@brocade.com> | <mailto:kkoushik@brocade.com> | |||
| Yingzhen Qu | Yingzhen Qu | |||
| <mailto:yiqu@cisco.com> | <mailto:yiqu@cisco.com> | |||
| "; | "; | |||
| description | description | |||
| "The YANG module defines a generic configuration model for | "The YANG module defines a generic configuration model for | |||
| ISIS common across all of the vendor implementations."; | ISIS common across all of the vendor implementations."; | |||
| revision 2014-10-24 { | ||||
| description | ||||
| " | ||||
| * Change hello-padding to container | ||||
| * Change bfd to container | ||||
| * Make BFD a feature | ||||
| * Creates mpls-te container and put router-id | ||||
| inside | ||||
| * Remove GR helper disable and timers | ||||
| "; | ||||
| reference "draft-ietf-isis-yang-isis-cfg-01"; | ||||
| } | ||||
| revision 2014-10-21 { | ||||
| description | ||||
| " | ||||
| * Interface metric move from af container to interface | ||||
| container | ||||
| * Hello-padding on interface moved to hello-padding-disable | ||||
| with empty type | ||||
| * three-way-handshake removed | ||||
| * route preference changed to a choice | ||||
| * csnp-authentication/psnp-authentication merged | ||||
| to authentication container | ||||
| * lsp-gen-interval-exp-delay removed | ||||
| * Added overload-max-metric feature | ||||
| * overload-max-metric is in a separate container | ||||
| "; | ||||
| reference ""; | ||||
| } | ||||
| revision 2014-10-07 { | revision 2014-10-07 { | |||
| description | description | |||
| " | " | |||
| * Removed spf parameters (should be part of | * Removed spf parameters (should be part of | |||
| vendor specific extensions. | vendor specific extensions. | |||
| * Removed hello parameters at global level. | * Removed hello parameters at global level. | |||
| * Interface configuration uses a string rather | * Interface configuration uses a string rather | |||
| than a reference. This permits to map to some | than a reference. This permits to map to some | |||
| vendor specific configuration. | vendor specific configuration. | |||
| "; | "; | |||
| reference ""; | reference "draft-ietf-isis-yang-isis-00"; | |||
| } | } | |||
| revision 2014-09-26 { | revision 2014-09-26 { | |||
| description | description | |||
| " | " | |||
| * Add BFD support | * Add BFD support | |||
| * remove max-elements to max-area-addresses | * remove max-elements to max-area-addresses | |||
| "; | "; | |||
| reference ""; | reference ""; | |||
| } | } | |||
| revision 2014-09-11 { | revision 2014-09-11 { | |||
| skipping to change at page 19, line 48 ¶ | skipping to change at page 24, line 45 ¶ | |||
| identity clear-isis-database { | identity clear-isis-database { | |||
| 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 bfd { | ||||
| description | ||||
| "Support of BFD."; | ||||
| } | ||||
| feature overload-max-metric { | ||||
| description | ||||
| "Support of overload by setting | ||||
| 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 reference-bandwidth { | |||
| description | description | |||
| "Use a reference bandwidth to compute metric."; | "Use a reference bandwidth to compute metric."; | |||
| } | } | |||
| feature ipv4-router-id { | ||||
| description | ||||
| "Support of IPv4 router ID configuration under ISIS."; | ||||
| } | ||||
| feature ipv6-router-id { | ||||
| description | ||||
| "Support of IPv6 router ID configuration under ISIS."; | ||||
| } | ||||
| feature multi-topology { | feature multi-topology { | |||
| description | description | |||
| "Multitopology routing support."; | "Multitopology routing support."; | |||
| } | } | |||
| feature nlpid-control { | feature nlpid-control { | |||
| description | description | |||
| "This feature controls the advertisement | "This feature controls the advertisement | |||
| of support NLPID within ISIS configuration."; | of support NLPID within ISIS configuration."; | |||
| } | } | |||
| feature graceful-restart { | feature graceful-restart { | |||
| description | description | |||
| "Graceful restart support as per RFC5306."; | "Graceful restart support as per RFC5306."; | |||
| } | } | |||
| feature lsp-gen-interval-exp-delay { | ||||
| description | ||||
| "LSP generation delay using exp backoff."; | ||||
| } | ||||
| feature lsp-refresh { | feature lsp-refresh { | |||
| description | description | |||
| "Configuration of LSP refresh interval."; | "Configuration of LSP refresh interval."; | |||
| } | } | |||
| feature maximum-area-addresses { | feature maximum-area-addresses { | |||
| description | description | |||
| "Support of maximum-area-addresses config."; | "Support of maximum-area-addresses config."; | |||
| } | } | |||
| typedef instance-state-ref { | typedef instance-state-ref { | |||
| type leafref { | type leafref { | |||
| path "/rt:routing-state/rt:routing-instance/" | path "/rt:routing-state/rt:routing-instance/" | |||
| +"rt:routing-protocols/rt:routing-protocol/rt:name"; | +"rt:routing-protocols/rt:routing-protocol/rt:name"; | |||
| } | } | |||
| description | description | |||
| "This type is used for leaves that reference state data of | "This type is used for leaves that reference state data of | |||
| an ISIS protocol instance."; | an ISIS protocol instance."; | |||
| } | } | |||
| typedef admin-state { | typedef admin-state { | |||
| type enumeration { | type enumeration { | |||
| enum "up" { | enum "up" { | |||
| description | description | |||
| "Up state"; | "Up state"; | |||
| } | } | |||
| enum "down" { | enum "down" { | |||
| description | description | |||
| "Down state"; | "Down state"; | |||
| } | } | |||
| skipping to change at page 39, line 37 ¶ | skipping to change at page 44, line 45 ¶ | |||
| description | description | |||
| "Reference routing instance. | "Reference routing instance. | |||
| For protocol centric model, which is | For protocol centric model, which is | |||
| supported in | supported in | |||
| default-instance only, this could reference | default-instance only, this could reference | |||
| any VRF routing-instance. | any VRF routing-instance. | |||
| For VRF centric model, must reference the | For VRF centric model, must reference the | |||
| enclosing routing-instance."; | enclosing routing-instance."; | |||
| } | } | |||
| leaf level { | leaf level-type { | |||
| type level; | type level; | |||
| default "level-all"; | default "level-all"; | |||
| description | description | |||
| "This leaf describes the type of ISIS node. | "This leaf describes the type of ISIS node. | |||
| A node can be level-1-only, level-2-only | A node can be level-1-only, level-2-only | |||
| or level-1-2. | or level-1-2. | |||
| "; | "; | |||
| } | } | |||
| leaf system-id { | leaf system-id { | |||
| skipping to change at page 40, line 4 ¶ | skipping to change at page 45, line 16 ¶ | |||
| A node can be level-1-only, level-2-only | A node can be level-1-only, level-2-only | |||
| or level-1-2. | or level-1-2. | |||
| "; | "; | |||
| } | } | |||
| leaf system-id { | leaf system-id { | |||
| type system-id; | type system-id; | |||
| description | description | |||
| "This leaf defines the system-id of the node."; | "This leaf defines the system-id of the node."; | |||
| } | } | |||
| leaf maximum-area-addresses { | leaf maximum-area-addresses { | |||
| if-feature maximum-area-addresses; | if-feature maximum-area-addresses; | |||
| type uint8; | type uint8; | |||
| default 3; | default 3; | |||
| description | description | |||
| "Defines the maximum areas supported."; | "Defines the maximum areas supported."; | |||
| } | } | |||
| leaf-list area-address { | leaf-list area-address { | |||
| type area-address; | type area-address; | |||
| description | description | |||
| "List of areas supported by the | "List of areas supported by the | |||
| protocol instance."; | protocol instance."; | |||
| } | } | |||
| leaf ipv4-router-id { | container mpls-te { | |||
| type inet:ipv4-address; | leaf ipv4-router-id { | |||
| description | if-feature ipv4-router-id; | |||
| "Router ID value that would be used in TLV 134."; | type inet:ipv4-address; | |||
| } | description | |||
| leaf ipv6-router-id { | "Router ID value that would be used in | |||
| type inet:ipv6-address; | TLV 134."; | |||
| } | ||||
| leaf ipv6-router-id { | ||||
| if-feature ipv6-router-id; | ||||
| type inet:ipv6-address; | ||||
| description | ||||
| "Router ID value that would be used in | ||||
| TLV 140."; | ||||
| } | ||||
| description | description | |||
| "Router ID value that would be used in TLV 140."; | "This container handles mpls te config."; | |||
| } | } | |||
| leaf reference-bandwidth { | leaf reference-bandwidth { | |||
| if-feature reference-bandwidth; | if-feature reference-bandwidth; | |||
| type uint32; | type uint32; | |||
| units "bps"; | units "bps"; | |||
| description | description | |||
| "This leaf defines the bandwidth for calculating | "This leaf defines the bandwidth for calculating | |||
| metric."; | metric."; | |||
| } | } | |||
| skipping to change at page 41, line 14 ¶ | skipping to change at page 46, line 35 ¶ | |||
| LSP in seconds."; | LSP in seconds."; | |||
| } | } | |||
| leaf lsp-refresh { | leaf lsp-refresh { | |||
| if-feature lsp-refresh; | if-feature lsp-refresh; | |||
| type uint16; | type uint16; | |||
| 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."; | |||
| } | } | |||
| list lsp-gen-interval-exp-delay { | ||||
| if-feature lsp-gen-interval-exp-delay; | ||||
| key level; | ||||
| leaf initial { | ||||
| type uint16; | ||||
| units "milliseconds"; | ||||
| description | ||||
| "Initial timer."; | ||||
| } | ||||
| leaf incremental { | ||||
| type uint16; | ||||
| units "milliseconds"; | ||||
| description | ||||
| "Incremental timer."; | ||||
| } | ||||
| leaf maximum { | ||||
| type uint8; | ||||
| units "seconds"; | ||||
| description | ||||
| "Maximum timer."; | ||||
| } | ||||
| leaf level { | ||||
| type level; | ||||
| description | ||||
| "Level applicability."; | ||||
| } | ||||
| description | ||||
| "Configuration of exponential backoff delay | ||||
| for LSP generation."; | ||||
| } | ||||
| container graceful-restart { | container graceful-restart { | |||
| if-feature graceful-restart; | if-feature graceful-restart; | |||
| leaf restart-duration { | ||||
| type uint16; | ||||
| units seconds; | ||||
| description | ||||
| "Defines the restart duration in seconds."; | ||||
| } | ||||
| leaf helper-disable { | ||||
| type empty; | ||||
| description | ||||
| "If the leaf exists, helper capacity | ||||
| is disabled."; | ||||
| } | ||||
| leaf enabled { | leaf enabled { | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "Control enabling the feature."; | "Control enabling the feature."; | |||
| } | } | |||
| description | description | |||
| "This container activates graceful restart."; | "This container activates graceful restart."; | |||
| } | } | |||
| list psnp-authentication { | list authentication { | |||
| key level; | ||||
| leaf value { | ||||
| type boolean; | ||||
| default "true"; | ||||
| description | ||||
| "This leaf describes if PSNP messages must be | ||||
| authenticated."; | ||||
| } | ||||
| leaf level { | ||||
| type level; | ||||
| description | ||||
| "Level applicability."; | ||||
| } | ||||
| description | ||||
| "Container for CSNP authentication."; | ||||
| } | ||||
| list csnp-authentication { | ||||
| key level; | ||||
| leaf value { | ||||
| type boolean; | ||||
| default "true"; | ||||
| description | ||||
| "This leaf describes if CSNP messages must be | ||||
| authenticated."; | ||||
| } | ||||
| leaf level { | ||||
| type level; | ||||
| description | ||||
| "Level applicability."; | ||||
| } | ||||
| description | ||||
| "Container for CSNP authentication."; | ||||
| } | ||||
| list authentication-key { | ||||
| key level; | key level; | |||
| leaf value { | leaf key { | |||
| type string; | type string; | |||
| description | description | |||
| "This leaf describes the authentication key | "This leaf describes the | |||
| to be used. | authentication key."; | |||
| For security reason, the | ||||
| authentication key MUST NOT be presented | ||||
| in plaintext format upon a get-config reply. | ||||
| Authors recommends | ||||
| to use MD5 hash to present the | ||||
| authentication-key"; | ||||
| } | ||||
| leaf level { | ||||
| type level; | ||||
| description | ||||
| "Level applicability."; | ||||
| } | } | |||
| description | leaf type { | |||
| "Container for authentication key."; | ||||
| } | ||||
| list authentication-type { | ||||
| key level; | ||||
| leaf value { | ||||
| type authentication-type; | type authentication-type; | |||
| description | description | |||
| "This leaf describes the authentication type | "This leaf describes the authentication | |||
| to be used."; | type to be used."; | |||
| } | } | |||
| leaf level { | leaf level { | |||
| type level; | type level; | |||
| description | description | |||
| "Level applicability."; | "Level applicability."; | |||
| } | } | |||
| description | description | |||
| "Container for authentication-type"; | "Container for ISIS authentication. | |||
| It covers both LSPs and SNPs."; | ||||
| } | } | |||
| list metric-type { | list metric-type { | |||
| key level; | key level; | |||
| leaf value { | leaf value { | |||
| type enumeration { | type enumeration { | |||
| enum wide-only { | enum wide-only { | |||
| description | description | |||
| "Advertise new metric style only | "Advertise new metric style only | |||
| skipping to change at page 44, line 48 ¶ | skipping to change at page 48, line 19 ¶ | |||
| type level; | type level; | |||
| description | description | |||
| "Level applicability."; | "Level applicability."; | |||
| } | } | |||
| description | description | |||
| "Metric style container."; | "Metric style container."; | |||
| } | } | |||
| list preference { | list preference { | |||
| key level; | key level; | |||
| leaf value { | choice granularity { | |||
| type uint8; | case detail { | |||
| leaf internal { | ||||
| type uint8; | ||||
| description | ||||
| "This leaf defines the protocol | ||||
| preference for internal routes."; | ||||
| } | ||||
| leaf external { | ||||
| type uint8; | ||||
| description | ||||
| "This leaf defines the protocol | ||||
| preference for external routes."; | ||||
| } | ||||
| } | ||||
| case coarse { | ||||
| leaf default { | ||||
| type uint8; | ||||
| description | ||||
| "This leaf defines the protocol | ||||
| preference for all ISIS routes."; | ||||
| } | ||||
| } | ||||
| description | description | |||
| "This leaf defines the protocol preference."; | "Choice for implementation of route preference."; | |||
| } | } | |||
| leaf level { | leaf level { | |||
| type level; | type level; | |||
| description | description | |||
| "Level applicability."; | "Level applicability."; | |||
| } | } | |||
| description | description | |||
| "This leaf defines the protocol preference."; | "This leaf defines the protocol preference."; | |||
| } | } | |||
| list external-preference { | ||||
| key level; | ||||
| leaf value { | ||||
| type uint8; | ||||
| description | ||||
| "This leaf defines the protocol preference for | ||||
| external routes."; | ||||
| } | ||||
| leaf level { | ||||
| type level; | ||||
| description | ||||
| "Level applicability."; | ||||
| } | ||||
| description | ||||
| "This leaf defines the protocol preference for | ||||
| external routes."; | ||||
| } | ||||
| list default-metric { | list default-metric { | |||
| key level; | key level; | |||
| leaf value { | leaf value { | |||
| type wide-metric; | type wide-metric; | |||
| description | description | |||
| "Value of the metric"; | "Value of the metric"; | |||
| } | } | |||
| leaf level { | leaf level { | |||
| type level; | type level; | |||
| skipping to change at page 46, line 13 ¶ | skipping to change at page 49, line 38 ¶ | |||
| description | description | |||
| "Address-family"; | "Address-family"; | |||
| } | } | |||
| leaf enabled { | leaf enabled { | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "Describes the activation state of the | "Describes the activation state of the | |||
| AF."; | AF."; | |||
| } | } | |||
| description | ||||
| "This list permits activation | ||||
| of new address families."; | ||||
| } | ||||
| list topologies { | ||||
| if-feature multi-topology; | ||||
| key "name"; | ||||
| leaf enabled { | ||||
| type boolean; | ||||
| description | ||||
| "Describes the activation state of the | ||||
| AF."; | ||||
| } | ||||
| leaf name { | ||||
| type rt:rib-ref; | ||||
| description "RIB"; | ||||
| } | ||||
| list default-metric { | list default-metric { | |||
| key level; | key level; | |||
| leaf value { | leaf value { | |||
| type wide-metric; | type wide-metric; | |||
| description | description | |||
| "Value of the metric"; | "Value of the metric"; | |||
| } | } | |||
| leaf level { | leaf level { | |||
| type level; | type level; | |||
| description | description | |||
| "Level applicability of the metric."; | "Level applicability of the metric."; | |||
| } | } | |||
| description | description | |||
| "Defines the metric to be used by default."; | "Defines the metric to be used by default."; | |||
| } | } | |||
| description | description | |||
| "List of address families supported"; | "List of topologies"; | |||
| } | } | |||
| list topologies { | list overload { | |||
| if-feature multi-topology; | key level; | |||
| key "name"; | leaf status { | |||
| leaf enabled { | ||||
| type boolean; | type boolean; | |||
| description | description | |||
| "Describes the activation state of the | "This leaf defines the overload status."; | |||
| AF."; | ||||
| } | } | |||
| leaf name { | ||||
| type rt:rib-ref; | leaf timeout { | |||
| description "RIB"; | type uint16; | |||
| units "seconds"; | ||||
| description | ||||
| "This leaf defines the timeout in seconds | ||||
| of the overload condition."; | ||||
| } | ||||
| leaf level { | ||||
| type level; | ||||
| description | ||||
| "Level applicability of the metric."; | ||||
| } | } | |||
| description | description | |||
| "List of topologies"; | "This leaf describes if the router is | |||
| set to overload state."; | ||||
| } | } | |||
| list overload { | ||||
| list overload-max-metric { | ||||
| if-feature overload-max-metric; | ||||
| key level; | key level; | |||
| leaf status { | leaf status { | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "This leaf defines the overload status."; | "This leaf defines the overload status."; | |||
| } | } | |||
| leaf type { | ||||
| type enumeration { | ||||
| enum "max-metric" { | ||||
| description | ||||
| "Advertise max metric for all links."; | ||||
| } | ||||
| enum "overload-bit" { | ||||
| description | ||||
| "Set overload bit"; | ||||
| } | ||||
| } | ||||
| description | ||||
| "Defines how the overload status is set."; | ||||
| } | ||||
| leaf timeout { | leaf timeout { | |||
| type uint16; | type uint16; | |||
| units "seconds"; | units "seconds"; | |||
| description | description | |||
| "This leaf defines the timeout in seconds | "This leaf defines the timeout in seconds | |||
| of the overload condition."; | of the overload condition."; | |||
| } | } | |||
| leaf level { | leaf level { | |||
| type level; | type level; | |||
| description | description | |||
| skipping to change at page 48, line 43 ¶ | skipping to change at page 52, line 36 ¶ | |||
| but network is advertised)."; | but network is advertised)."; | |||
| } | } | |||
| leaf csnp-interval { | leaf csnp-interval { | |||
| type uint16; | type uint16; | |||
| units "seconds"; | units "seconds"; | |||
| description | description | |||
| "This leaf defines the interval of CSNP | "This leaf defines the interval of CSNP | |||
| messages."; | messages."; | |||
| } | } | |||
| leaf three-way-handshake { | container hello-padding { | |||
| type boolean; | leaf enabled { | |||
| description | type boolean; | |||
| "This leaf defines if the interface uses | default "true"; | |||
| 3-way handshake."; | description | |||
| } | "Status of Hello-padding activation. | |||
| By default, the implementation shall | ||||
| pad HELLOs."; | ||||
| } | ||||
| leaf hello-padding { | ||||
| type boolean; | ||||
| description | description | |||
| "This leaf defines if ISIS Hellos would | "This container handles ISIS hello padding | |||
| be padded up to MTU size."; | configuration."; | |||
| } | } | |||
| leaf mesh-group-enabled { | leaf mesh-group-enabled { | |||
| type mesh-group-state; | type mesh-group-state; | |||
| description | description | |||
| "Describes the mesh group state of | "Describes the mesh group state of | |||
| the interface."; | the interface."; | |||
| } | } | |||
| leaf mesh-group { | leaf mesh-group { | |||
| skipping to change at page 52, line 4 ¶ | skipping to change at page 55, line 44 ¶ | |||
| declaring the adjacency down."; | declaring the adjacency down."; | |||
| } | } | |||
| list priority { | list priority { | |||
| must 'interface-type = "broadcast"'; | must 'interface-type = "broadcast"'; | |||
| key level; | key level; | |||
| leaf value { | leaf value { | |||
| type uint8 { | type uint8 { | |||
| range "0 .. 127"; | range "0 .. 127"; | |||
| } | } | |||
| description | description | |||
| "This leaf describes the priority of | "This leaf describes the priority of | |||
| the interface | the interface | |||
| for DIS election."; | for DIS election."; | |||
| } | } | |||
| leaf level { | leaf level { | |||
| type level; | type level; | |||
| description | description | |||
| "Level applicability."; | "Level applicability."; | |||
| } | } | |||
| description | description | |||
| "This leaf describes the priority of | "This leaf describes the priority of | |||
| the interface | the interface | |||
| for DIS election."; | for DIS election."; | |||
| } | } | |||
| list metric { | ||||
| key level; | ||||
| leaf value { | ||||
| type wide-metric; | ||||
| description | ||||
| "Metric value."; | ||||
| } | ||||
| leaf level { | ||||
| type level; | ||||
| description | ||||
| "Level applicability."; | ||||
| } | ||||
| description | ||||
| "Container for interface metric"; | ||||
| } | ||||
| list af { | list af { | |||
| key af; | key af; | |||
| leaf af { | leaf af { | |||
| type string; | type string; | |||
| description | description | |||
| "Address-family"; | "Address-family"; | |||
| } | } | |||
| leaf bfd-enabled { | container bfd { | |||
| type empty; | if-feature bfd; | |||
| description | leaf enabled { | |||
| "If the leaf is present, | type boolean; | |||
| BFD is enabled."; | default false; | |||
| } | ||||
| list metric { | ||||
| key level; | ||||
| leaf value { | ||||
| type wide-metric; | ||||
| description | ||||
| "Metric value."; | ||||
| } | ||||
| leaf level { | ||||
| type level; | ||||
| description | description | |||
| "Level applicability."; | "This leaf enables BFD."; | |||
| } | } | |||
| description | description | |||
| "Container for interface metric"; | "The container describes | |||
| BFD config."; | ||||
| } | } | |||
| description | description | |||
| "List of AFs."; | "List of AFs."; | |||
| } | } | |||
| list topologies { | list topologies { | |||
| key name; | key name; | |||
| leaf name { | leaf name { | |||
| type rt:rib-ref; | type rt:rib-ref; | |||
| description | description | |||
| "Name of RIB."; | "Name of RIB."; | |||
| } | } | |||
| list metric { | list metric { | |||
| key level; | key level; | |||
| skipping to change at page 75, line 51 ¶ | skipping to change at page 80, line 4 ¶ | |||
| "If the problem is a malformed TLV, | "If the problem is a malformed TLV, | |||
| the error-offset points to the start of the TLV. | the error-offset points to the start of the TLV. | |||
| If the problem is with the LSP header, | If the problem is with the LSP header, | |||
| the error-offset points to the suspicious byte"; | the error-offset points to the suspicious byte"; | |||
| } | } | |||
| leaf tlv-type { | leaf tlv-type { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "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-change { | |||
| skipping to change at page 80, line 26 ¶ | skipping to change at page 84, line 29 ¶ | |||
| [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration | [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration | |||
| Protocol (NETCONF) Access Control Model", RFC 6536, March | Protocol (NETCONF) Access Control Model", RFC 6536, March | |||
| 2012. | 2012. | |||
| Appendix A. Example: NETCONF <get> Reply | Appendix A. Example: NETCONF <get> Reply | |||
| This section gives an example of a reply to the NETCONF <get> request | This section gives an example of a reply to the NETCONF <get> request | |||
| for a device that implements the data model defined in this document. | for a device that implements the data model defined in this document. | |||
| The example is written in XML. | The example is written in XML. | |||
| TODO | <?xml version="1.0" encoding="utf-8"?> | |||
| <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> | ||||
| <routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> | ||||
| <routing-instance> | ||||
| <name>SLI</name> | ||||
| <router-id>1.1.1.1</router-id> | ||||
| <description/> | ||||
| <default-ribs> | ||||
| <default-rib> | ||||
| <address-family>ipv4-unicast</address-family> | ||||
| <rib-name>default</rib-name> | ||||
| </default-rib> | ||||
| </default-ribs> | ||||
| <interfaces> | ||||
| <interface> | ||||
| <name>Loopback0</name> | ||||
| </interface> | ||||
| <interface> | ||||
| <name>Eth1</name> | ||||
| </interface> | ||||
| </interfaces> | ||||
| <routing-protocols> | ||||
| <routing-protocol> | ||||
| <name>ISIS</name> | ||||
| <description/> | ||||
| <type>isis:isis</type> | ||||
| <connected-ribs> | ||||
| <connected-rib> | ||||
| <rib-name>default</rib-name> | ||||
| <import-filter/> | ||||
| <export-filter/> | ||||
| </connected-rib> | ||||
| </connected-ribs> | ||||
| <isis xmlns="urn:ietf:params:xml:ns:yang:ietf-isis"> | ||||
| <instance> | ||||
| <routing-instance>SLI</routing-instance> | ||||
| <level-type>level-2</level-type> | ||||
| <system-id>87FC.FCDF.4432</system-id> | ||||
| <area-address>49.0001</area-address> | ||||
| <mpls-te> | ||||
| <ipv4-router-id>1.1.1.1</ipv4-router-id> | ||||
| </mpls-te> | ||||
| <lsp-lifetime>65535</lsp-lifetime> | ||||
| <lsp-refresh>65000</lsp-refresh> | ||||
| <authentication> | ||||
| <key>ThisIsThePassword</key> | ||||
| <type>plain-text</type> | ||||
| <level>level-2</level> | ||||
| </authentication> | ||||
| <metric-type> | ||||
| <value>wide</value> | ||||
| </metric-type> | ||||
| <default-metric> | ||||
| <value>111111</value> | ||||
| </default-metric> | ||||
| <af> | ||||
| <af>ipv4-unicast</af> | ||||
| <enabled>true</enabled> | ||||
| </af> | ||||
| <interfaces> | ||||
| <interface> | ||||
| <name>Loopback0</name> | ||||
| <tag>200</tag> | ||||
| <metric> | ||||
| <value>0</value> | ||||
| </metric> | ||||
| <passive>true</passive> | ||||
| </interface> | ||||
| <interface> | ||||
| <name>Eth1</name> | ||||
| <level-type>level-2</level-type> | ||||
| <interface-type>point-to-point</interface-type> | ||||
| <metric> | ||||
| <value>167890</value> | ||||
| </metric> | ||||
| </interface> | ||||
| </interfaces> | ||||
| </instance> | ||||
| </isis> | ||||
| </routing-protocol> | ||||
| </routing-protocols> | ||||
| </routing-instance> | ||||
| <ribs> | ||||
| <rib> | ||||
| <name>default</name> | ||||
| <address-family>ipv4-unicast</address-family> | ||||
| <description/> | ||||
| <recipient-ribs> | ||||
| <recipient-rib> | ||||
| <rib-name/> | ||||
| <filter/> | ||||
| </recipient-rib> | ||||
| </recipient-ribs> | ||||
| </rib> | ||||
| </ribs> | ||||
| <route-filters> | ||||
| <route-filter> | ||||
| <name/> | ||||
| <description/> | ||||
| <type/> | ||||
| </route-filter> | ||||
| </route-filters> | ||||
| </routing> | ||||
| <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"> | ||||
| <interface> | ||||
| <name>Loopback0</name> | ||||
| <description/> | ||||
| <type/> | ||||
| <link-up-down-trap-enable/> | ||||
| <ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> | ||||
| <mtu/> | ||||
| <address> | ||||
| <ip>1.1.1.1</ip> | ||||
| <prefix-length>32</prefix-length> | ||||
| </address> | ||||
| </ipv4> | ||||
| </interface> | ||||
| <interface> | ||||
| <name>Eth1</name> | ||||
| <description/> | ||||
| <type/> | ||||
| <link-up-down-trap-enable/> | ||||
| <ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> | ||||
| <mtu/> | ||||
| <address> | ||||
| <ip>10.0.0.1</ip> | ||||
| <prefix-length>30</prefix-length> | ||||
| </address> | ||||
| </ipv4> | ||||
| </interface> | ||||
| </interfaces> | ||||
| </data> | ||||
| Authors' Addresses | Authors' Addresses | |||
| Stephane Litkowski | Stephane Litkowski | |||
| Orange | Orange | |||
| Email: stephane.litkowski@orange.com | Email: stephane.litkowski@orange.com | |||
| Derek Yeung | Derek Yeung | |||
| Cisco Systems | Cisco Systems | |||
| End of changes. 64 change blocks. | ||||
| 378 lines changed or deleted | 721 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/ | ||||