| rfc9130xml2.original.xml | rfc9130.xml | |||
|---|---|---|---|---|
| <?xml version="1.0"?> | <?xml version='1.0' encoding='utf-8'?> | |||
| <?rfc strict="yes" ?> | ||||
| <?rfc toc="yes"?> | <!DOCTYPE rfc [ | |||
| <?rfc tocdepth="3"?> | <!ENTITY nbsp " "> | |||
| <?rfc symrefs="yes"?> | <!ENTITY zwsp "​"> | |||
| <?rfc sortrefs="yes" ?> | <!ENTITY nbhy "‑"> | |||
| <?rfc compact="yes" ?> | <!ENTITY wj "⁠"> | |||
| <?rfc subcompact="no" ?> | ]> | |||
| <!DOCTYPE rfc SYSTEM "rfc2629.dtd"> | ||||
| <rfc docName="draft-ietf-isis-yang-isis-cfg-42" ipr="trust200902" category="std" | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" | |||
| obsoletes="" updates="" submissionType="IETF" xml:lang="en"> | docName="draft-ietf-isis-yang-isis-cfg-42" number="9130" ipr="trust200902" | |||
| category="std" obsoletes="" updates="" submissionType="IETF" | ||||
| xml:lang="en" tocInclude="true" tocDepth="3" symRefs="true" | ||||
| sortRefs="true" version="3" consensus="true"> | ||||
| <!-- xml2rfc v2v3 conversion 2.47.0 --> | ||||
| <front> | <front> | |||
| <title abbrev="isis-cfg">YANG Data Model for IS-IS Protocol</title> | <title abbrev="IS-IS YANG Data Model">YANG Data Model for the IS-IS Protocol | |||
| <author fullname="Stephane Litkowski" initials="S" surname="Litkowski"> | </title> | |||
| <seriesInfo name="RFC" value="9130"/> | ||||
| <author fullname="Stephane Litkowski" initials="S" surname="Litkowski" role= | ||||
| "editor"> | ||||
| <organization>Cisco Systems</organization> | <organization>Cisco Systems</organization> | |||
| <address> | <address> | |||
| <email>slitkows.ietf@gmail.com</email> | <email>slitkows.ietf@gmail.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Derek Yeung" initials="D" surname="Yeung"> | <author fullname="Derek Yeung" initials="D" surname="Yeung"> | |||
| <organization>Arrcus, Inc</organization> | <organization>Arrcus, Inc.</organization> | |||
| <address> | <address> | |||
| <email>derek@arrcus.com</email> | <postal> | |||
| <street>2077 Gateway Place, Suite 400</street> | ||||
| <city>San Jose</city> | ||||
| <region>CA</region> | ||||
| <code>95110</code> | ||||
| <country>United States of America</country> | ||||
| </postal> | ||||
| <email>derek@arrcus.com</email> | ||||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Acee Lindem" initials="A" surname="Lindem"> | <author fullname="Acee Lindem" initials="A." surname="Lindem"> | |||
| <organization>Cisco Systems</organization> | <organization>Cisco Systems</organization> | |||
| <address> | <address> | |||
| <postal> | ||||
| <street>301 Midenhall Way</street> | ||||
| <city>Cary</city> | ||||
| <region>NC</region> | ||||
| <code>27513</code> | ||||
| <country>United States of America</country> | ||||
| </postal> | ||||
| <email>acee@cisco.com</email> | <email>acee@cisco.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Jeffrey Zhang" initials="J" surname="Zhang"> | <author fullname="Jeffrey Zhang" initials="J" surname="Zhang"> | |||
| <organization>Juniper Networks</organization> | <organization>Juniper Networks</organization> | |||
| <address> | <address> | |||
| <postal> | ||||
| <street>10 Technology Park Drive</street> | ||||
| <city>Westford</city> | ||||
| <region>MA</region> | ||||
| <code>01886</code> | ||||
| <country>United States of America</country> | ||||
| </postal> | ||||
| <email>zzhang@juniper.net</email> | <email>zzhang@juniper.net</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Ladislav Lhotka" initials="L" surname="Lhotka"> | <author fullname="Ladislav Lhotka" initials="L" surname="Lhotka"> | |||
| <organization>CZ.NIC</organization> | <organization>CZ.NIC</organization> | |||
| <address> | <address> | |||
| <email>lhotka@nic.cz</email> | <email>ladislav.lhotka@nic.cz</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date/> | ||||
| <area/> | ||||
| <workgroup>IS-IS Working Group</workgroup> | ||||
| <date month="October" year="2022"/> | ||||
| <abstract> | <abstract> | |||
| <t>This document defines a YANG data model that can be used to | <t>This document defines a YANG data model that can be used to | |||
| configure and manage the IS-IS protocol on network elements. | configure and manage the IS-IS protocol on network elements. | |||
| </t> | </t> | |||
| </abstract> | </abstract> | |||
| <note title="Requirements Language"> | ||||
| <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | ||||
| "OPTIONAL" in this document are to be interpreted as described in | ||||
| BCP 14 <xref target="RFC2119" pageno="false" format="default"/> <xref target= | ||||
| "RFC8174" pageno="false" format="default"/> when, and only when, they appear in | ||||
| all | ||||
| capitals, as shown here.</t> | ||||
| </note> | ||||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section anchor="introduction" title="Introduction" toc="default"> | <section anchor="introduction" toc="default" numbered="true"> | |||
| <name>Introduction</name> | ||||
| <t> | <t> | |||
| This document defines a YANG <xref target="RFC7950" pageno="false" format= | This document defines a YANG data model <xref target="RFC7950" | |||
| "default"/> data model for IS-IS routing | format="default"/> for the IS-IS routing | |||
| protocol.</t> | protocol.</t> | |||
| <t>The data model covers configuration of an IS-IS routing | <t>The data model covers the configuration of an IS-IS routing | |||
| protocol instance, as well as, the retrieval of IS-IS operational states.< | protocol instance, as well as the retrieval of IS-IS operational states.</ | |||
| /t> | t> | |||
| <t>A simplified tree representation of the data model is | <t>A simplified tree representation of the data model is | |||
| presented in <xref target="design" pageno="false" format="default"/>. | presented in <xref target="design" format="default"/>. | |||
| Tree diagrams used in this document follow the notation defined in <xref | Tree diagrams used in this document follow the notation defined in <xref | |||
| target="RFC8340" pageno="false" format="default"/>.</t> | target="RFC8340" format="default"/>.</t> | |||
| <t>The module is designed as per the NMDA (Network Management Datastore Arch | <t>The module defined in this document is designed as per the Network Mana | |||
| itecture) <xref target="RFC8342" pageno="false" format="default"/>.</t> | gement Datastore | |||
| Architecture (NMDA) <xref target="RFC8342" format="default"/>.</t> | ||||
| <section> | ||||
| <name>Requirements Language</name> | ||||
| <t> | ||||
| The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | ||||
| "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | ||||
| NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", | ||||
| "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | ||||
| "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are | ||||
| to be interpreted as | ||||
| described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | ||||
| when, and only when, they appear in all capitals, as shown here. | ||||
| </t> | ||||
| </section> | </section> | |||
| <section anchor="design" title="Design of the Data Model" toc="default"> | </section> | |||
| <section anchor="design" toc="default" numbered="true"> | ||||
| <name>Design of the Data Model</name> | ||||
| <t>The IS-IS YANG module augments the | <t>The IS-IS YANG module augments the | |||
| "control-plane-protocol" list in the ietf-routing module <xref target="RFC 8349" pageno="false" format="default"/> with specific | "control-plane-protocol" list in the "ietf-routing" module <xref target="R FC8349" format="default"/> with specific | |||
| IS-IS parameters.</t> | IS-IS parameters.</t> | |||
| <t>The figure below describes the overall structure of the ietf-isis | <t>The diagram below shows the overall structure of the "ietf-isis" | |||
| YANG module:</t> | YANG module defined in this document. NOTE: '\' line wrapping is per | |||
| <xref target="RFC8792"/>.</t> | ||||
| <figure title="" suppress-title="false" align="left" alt="" width="" heigh | <sourcecode type="yangtree"><![CDATA[ | |||
| t=""> | ||||
| <artwork xml:space="preserve" name="" type="" align="left" alt="" width= | ||||
| "" height=""> | ||||
| module: ietf-isis | module: ietf-isis | |||
| augment /rt:routing/rt:ribs/rt:rib/rt:routes/rt:route: | augment /rt:routing/rt:ribs/rt:rib/rt:routes/rt:route: | |||
| +--ro metric? uint32 | +--ro metric? uint32 | |||
| +--ro tag* uint64 | +--ro tag* uint64 | |||
| +--ro route-type? enumeration | +--ro route-type? enumeration | |||
| augment /if:interfaces/if:interface: | augment /if:interfaces/if:interface: | |||
| +--rw clns-mtu? uint16 {osi-interface}? | +--rw clns-mtu? uint16 {osi-interface}? | |||
| augment /rt:routing/rt:control-plane-protocols/rt: | augment /rt:routing/rt:control-plane-protocols/rt: | |||
| control-plane-protocol: | control-plane-protocol: | |||
| +--rw isis | +--rw isis | |||
| +--rw enable? boolean {admin-control}? | +--rw enabled? 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? \ | |||
| +--rw area-address* area-address | uint8 {maximum-area-addresses}? | |||
| +--rw lsp-mtu? uint16 | +--rw area-address* area-address | |||
| +--rw lsp-lifetime? uint16 | +--rw lsp-mtu? uint16 | |||
| +--rw lsp-refresh? rt-types:timer-value-seconds16 | +--rw lsp-lifetime? uint16 | |||
| | {lsp-refresh}? | +--rw lsp-refresh? rt-types:timer-value-seconds16 | |||
| +--rw poi-tlv? boolean {poi-tlv}? | | {lsp-refresh}? | |||
| +--rw graceful-restart {graceful-restart}? | +--rw poi-tlv? boolean {poi-tlv}? | |||
| | +--rw enable? boolean | +--rw graceful-restart {graceful-restart}? | |||
| | +--rw restart-interval? rt-types:timer-value-seconds16 | | +--rw enabled? boolean | |||
| | +--rw helper-enable? boolean | | +--rw restart-interval? rt-types:timer-value-seconds16 | |||
| +--rw nsr {nsr}? | | +--rw helper-enabled? boolean | |||
| | +--rw enable? boolean | +--rw nsr {nsr}? | |||
| +--rw node-tags {node-tag}? | | +--rw enabled? boolean | |||
| | +--rw node-tag* [tag] | +--rw node-tags {node-tag}? | |||
| | ... | | +--rw node-tag* [tag] | |||
| +--rw metric-type | | ... | |||
| | +--rw value? enumeration | +--rw metric-type | |||
| | +--rw level-1 | | +--rw value? enumeration | |||
| | | ... | | +--rw level-1 | |||
| | +--rw level-2 | | | ... | |||
| | ... | | +--rw level-2 | |||
| +--rw default-metric | | ... | |||
| | +--rw value? wide-metric | +--rw default-metric | |||
| | +--rw level-1 | | +--rw value? wide-metric | |||
| | | ... | | +--rw level-1 | |||
| | +--rw level-2 | | | ... | |||
| | ... | | +--rw level-2 | |||
| +--rw auto-cost {auto-cost}? | | ... | |||
| | +--rw enable? boolean | +--rw auto-cost {auto-cost}? | |||
| | +--rw reference-bandwidth? uint32 | | +--rw enabled? boolean | |||
| +--rw authentication | | +--rw reference-bandwidth? uint32 | |||
| | +--rw (authentication-type)? | +--rw authentication | |||
| | | ... | | +--rw (authentication-type)? | |||
| | +--rw level-1 | | | ... | |||
| | | ... | | +--rw level-1 | |||
| | +--rw level-2 | | | ... | |||
| | ... | | +--rw level-2 | |||
| +--rw address-families {nlpid-control}? | | ... | |||
| | +--rw address-family-list* [address-family] | +--rw address-families {nlpid-control}? | |||
| | ... | | +--rw address-family-list* [address-family] | |||
| +--rw mpls | | ... | |||
| | +--rw te-rid {te-rid}? | +--rw mpls | |||
| | | ... | | +--rw te-rid {te-rid}? | |||
| | +--rw ldp | | | ... | |||
| | ... | | +--rw ldp | |||
| +--rw spf-control | | ... | |||
| | +--rw paths? uint16 {max-ecmp}? | +--rw spf-control | |||
| | +--rw ietf-spf-delay {ietf-spf-delay}? | | +--rw paths? uint16 {max-ecmp}? | |||
| | ... | | +--rw ietf-spf-delay {ietf-spf-delay}? | |||
| +--rw fast-reroute {fast-reroute}? | | ... | |||
| | +--rw lfa {lfa}? | +--rw fast-reroute {fast-reroute}? | |||
| +--rw preference | | +--rw lfa {lfa}? | |||
| | +--rw (granularity)? | +--rw preference | |||
| | ... | | +--rw (granularity)? | |||
| +--rw overload | | ... | |||
| | +--rw status? boolean | +--rw overload | |||
| +--rw overload-max-metric {overload-max-metric}? | | +--rw status? boolean | |||
| | +--rw timeout? rt-types:timer-value-seconds16 | +--rw overload-max-metric {overload-max-metric}? | |||
| +--ro spf-log | | +--rw timeout? rt-types:timer-value-seconds16 | |||
| | +--ro event* [id] | +--ro spf-log | |||
| | ... | | +--ro event* [id] | |||
| +--ro lsp-log | | ... | |||
| | +--ro event* [id] | +--ro lsp-log | |||
| | ... | | +--ro event* [id] | |||
| +--ro hostnames | | ... | |||
| | +--ro hostname* [system-id] | +--ro hostnames | |||
| | ... | | +--ro hostname* [system-id] | |||
| +--ro database | | ... | |||
| | +--ro levels* [level] | +--ro database | |||
| | ... | | +--ro levels* [level] | |||
| +--ro local-rib | | ... | |||
| | +--ro route* [prefix] | +--ro local-rib | |||
| | ... | | +--ro route* [prefix] | |||
| +--ro system-counters | | ... | |||
| | +--ro level* [level] | +--ro system-counters | |||
| | ... | | +--ro level* [level] | |||
| +--ro protected-routes | | ... | |||
| | +--ro address-family-stats* [address-family prefix alternate] | +--ro protected-routes | |||
| | ... | | +--ro address-family-stats* \ | |||
| +--ro unprotected-routes | | [address-family prefix alternate] | |||
| | +--ro prefixes* [address-family prefix] | | ... | |||
| | ... | +--ro unprotected-routes | |||
| +--ro protection-statistics* [frr-protection-method] | | +--ro prefixes* [address-family prefix] | |||
| | +--ro frr-protection-method identityref | | ... | |||
| | +--ro address-family-stats* [address-family] | +--ro protection-statistics* [frr-protection-method] | |||
| | ... | | +--ro frr-protection-method identityref | |||
| +--rw discontinuity-time? yang:date-and-time | | +--ro address-family-stats* [address-family] | |||
| +--rw topologies {multi-topology}? | | ... | |||
| | +--rw topology* [name] | +--rw discontinuity-time? yang:date-and-time | |||
| | ... | +--rw topologies {multi-topology}? | |||
| +--rw interfaces | | +--rw topology* [name] | |||
| +--rw interface* [name] | | ... | |||
| ... | +--rw interfaces | |||
| +--rw interface* [name] | ||||
| rpcs: | ... | |||
| +---x clear-adjacency | ||||
| | +---w input | ||||
| | +---w routing-protocol-instance-name -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +---w level? level | ||||
| | +---w interface? if:interface-ref | ||||
| +---x clear-database | ||||
| +---w input | ||||
| +---w routing-protocol-instance-name -> /rt:routing/ | ||||
| | control-plane-protocols/ | ||||
| | control-plane-protocol/name | ||||
| +---w level? level | ||||
| notifications: | rpcs: | |||
| +---n database-overload | +---x clear-adjacency | |||
| | +--ro routing-protocol-name? -> /rt:routing/ | | +---w input | |||
| | | control-plane-protocols/ | | +---w routing-protocol-instance-name -> /rt:routing/ | |||
| | | control-plane-protocol/name | | | control-plane-\ | |||
| | +--ro isis-level? level | | | protocols/ | |||
| | +--ro overload? enumeration | | | control-plane-\ | |||
| +---n lsp-too-large | | | protocol/name | |||
| | +--ro routing-protocol-name? -> /rt:routing/ | | +---w level? level | |||
| | control-plane-protocols/ | | +---w interface? if:interface-ref | |||
| | | control-plane-protocol/name | +---x clear-database | |||
| | +--ro isis-level? level | +---w input | |||
| | +--ro interface-name? if:interface-ref | +---w routing-protocol-instance-name -> /rt:routing/ | |||
| | +--ro interface-level? level | | control-plane-\ | |||
| | +--ro extended-circuit-id? extended-circuit-id | | protocols/ | |||
| | +--ro pdu-size? uint32 | | control-plane-\ | |||
| | +--ro lsp-id? lsp-id | | protocol/name | |||
| +---n if-state-change | +---w level? level | |||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro state? if-state-type | ||||
| +---n corrupted-lsp-detected | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro lsp-id? lsp-id | ||||
| +---n attempt-to-exceed-max-sequence | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro lsp-id? lsp-id | ||||
| +---n id-len-mismatch | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro pdu-field-len? uint8 | ||||
| | +--ro raw-pdu? binary | ||||
| +---n max-area-addresses-mismatch | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro max-area-addresses? uint8 | ||||
| | +--ro raw-pdu? binary | ||||
| +---n own-lsp-purge | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro lsp-id? lsp-id | ||||
| +---n sequence-number-skipped | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro lsp-id? lsp-id | ||||
| +---n authentication-type-failure | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro raw-pdu? binary | ||||
| +---n authentication-failure | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro raw-pdu? binary | ||||
| +---n version-skew | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro protocol-version? uint8 | ||||
| | +--ro raw-pdu? binary | ||||
| +---n area-mismatch | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro raw-pdu? binary | ||||
| +---n rejected-adjacency | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro raw-pdu? binary | ||||
| | +--ro reason? string | ||||
| +---n protocols-supported-mismatch | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro raw-pdu? binary | ||||
| | +--ro protocols* uint8 | ||||
| +---n lsp-error-detected | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro lsp-id? lsp-id | ||||
| | +--ro raw-pdu? binary | ||||
| | +--ro error-offset? uint32 | ||||
| | +--ro tlv-type? uint8 | ||||
| +---n adjacency-state-change | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro neighbor? string | ||||
| | +--ro neighbor-system-id? system-id | ||||
| | +--ro state? adj-state-type | ||||
| | +--ro reason? string | ||||
| +---n lsp-received | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro lsp-id? lsp-id | ||||
| | +--ro sequence? uint32 | ||||
| | +--ro received-timestamp? yang:timestamp | ||||
| | +--ro neighbor-system-id? system-id | ||||
| +---n lsp-generation | ||||
| +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | control-plane-protocols/ | ||||
| | control-plane-protocol/name | ||||
| +--ro isis-level? level | ||||
| +--ro lsp-id? lsp-id | ||||
| +--ro sequence? uint32 | ||||
| +--ro send-timestamp? yang:timestamp | ||||
| </artwork> | ||||
| </figure> | notifications: | |||
| +---n database-overload | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro overload? enumeration | ||||
| +---n lsp-too-large | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro pdu-size? uint32 | ||||
| | +--ro lsp-id? lsp-id | ||||
| +---n if-state-change | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro state? if-state-type | ||||
| +---n corrupted-lsp-detected | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro lsp-id? lsp-id | ||||
| +---n attempt-to-exceed-max-sequence | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro lsp-id? lsp-id | ||||
| +---n id-len-mismatch | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro pdu-field-len? uint8 | ||||
| | +--ro raw-pdu? binary | ||||
| +---n max-area-addresses-mismatch | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro max-area-addresses? uint8 | ||||
| | +--ro raw-pdu? binary | ||||
| +---n own-lsp-purge | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro lsp-id? lsp-id | ||||
| +---n sequence-number-skipped | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro lsp-id? lsp-id | ||||
| +---n authentication-type-failure | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro raw-pdu? binary | ||||
| +---n authentication-failure | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro raw-pdu? binary | ||||
| +---n version-skew | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro protocol-version? uint8 | ||||
| | +--ro raw-pdu? binary | ||||
| +---n area-mismatch | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro raw-pdu? binary | ||||
| +---n rejected-adjacency | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro raw-pdu? binary | ||||
| | +--ro reason? string | ||||
| +---n protocols-supported-mismatch | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro raw-pdu? binary | ||||
| | +--ro protocols* uint8 | ||||
| +---n lsp-error-detected | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro lsp-id? lsp-id | ||||
| | +--ro raw-pdu? binary | ||||
| | +--ro error-offset? uint32 | ||||
| | +--ro tlv-type? uint8 | ||||
| +---n adjacency-state-change | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro neighbor? string | ||||
| | +--ro neighbor-system-id? system-id | ||||
| | +--ro state? adj-state-type | ||||
| | +--ro reason? string | ||||
| +---n lsp-received | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro lsp-id? lsp-id | ||||
| | +--ro sequence? uint32 | ||||
| | +--ro received-timestamp? yang:timestamp | ||||
| | +--ro neighbor-system-id? system-id | ||||
| +---n lsp-generation | ||||
| +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | control-plane-protocols/ | ||||
| | control-plane-protocol/name | ||||
| +--ro isis-level? level | ||||
| +--ro lsp-id? lsp-id | ||||
| +--ro sequence? uint32 | ||||
| +--ro send-timestamp? yang:timestamp | ||||
| ]]></sourcecode> | ||||
| <section anchor="yang-isis-global" title="IS-IS Configuration" toc="defaul | <section anchor="yang-isis-global" toc="default" numbered="true"> | |||
| t"> | <name>IS-IS Configuration</name> | |||
| <t>The IS-IS configuration is divided into: | <t>The IS-IS configuration is divided into two areas:</t> | |||
| <list style="symbols"> | <ul spacing="normal"> | |||
| <t>Global parameters.</t> | <li>Global parameters</li> | |||
| <t>Per-interface configuration (see <xref target="yang-interface" page | <li>Per-interface configuration (see <xref target="yang-interface" | |||
| no="false" format="default"/>).</t> | format="default"/>)</li> | |||
| </list></t> | </ul> | |||
| <t>Additional modules may be created to support | <t>Additional modules may be created to support additional | |||
| additional parameters. These additional modules MUST augment the | parameters. These additional modules <bcp14>MUST</bcp14> augment the | |||
| ietf-isis module.</t> | "ietf-isis" module.</t> | |||
| <t>The model includes optional features, for which the correspon | <t>The model includes optional features for which the corresponding | |||
| ding configuration data nodes are also optional. | configuration data nodes are also optional. As an example, the ability | |||
| As an example, the ability to control the administrative state o | to control the administrative state of a particular IS-IS instance is | |||
| f a particular IS-IS instance is optional. | optional. By advertising the feature "admin-control", a device | |||
| By advertising the feature "admin-control", a device communicate | communicates to the client that it supports the ability to shut down a | |||
| s to the client that it supports the ability to shutdown a particular IS-IS inst | particular IS-IS instance.</t> | |||
| ance.</t> | <t>The global configuration contains the usual IS-IS parameters, e.g., | |||
| <t> | "lsp-mtu", "lsp-lifetime", "lsp-refresh", "default-metric".</t> | |||
| The global configuration contains usual IS-IS parameters, such a | ||||
| s, lsp-mtu, lsp-lifetime, lsp-refresh, default-metric, etc. | ||||
| </t> | ||||
| </section> | </section> | |||
| <section anchor="yang-multitopology" toc="default" numbered="true"> | ||||
| <section anchor="yang-multitopology" title="Multi-topology Parameters" toc | <name>Multi-Topology Parameters</name> | |||
| ="default"> | <t>The model supports Multi-Topology (MT) IS-IS as defined in <xref | |||
| <t>The model supports multi-topology (MT) IS-IS as defined in <x | target="RFC5120" format="default"/>.</t> | |||
| ref target="RFC5120" pageno="false" format="default"/>.</t> | <t>The "topologies" container is used to enable support of the MT | |||
| <t>The "topologies" container is used to enable support of the MT | ||||
| extensions.</t> | extensions.</t> | |||
| <t>The "name" used in the topology list should refer to an exist | <t>The "name" used in the topology list should refer to an existing | |||
| ing Routing Information Base (RIB) | Routing Information Base (RIB) defined for the device <xref | |||
| defined for the device <xref target="RFC8349" pageno="false" | target="RFC8349" format="default"/>.</t> | |||
| format="default"/>.</t> | <t>Some specific parameters can be defined on a per-topology basis, | |||
| <t>Some specific parameters can be defined on a per-topology bas | at both the global level and the interface level: for example, an | |||
| is, | interface metric can be defined per topology.</t> | |||
| both at the global level and at the interface level: for example | <t>Multiple address families (such as IPv4 or IPv6) can also be | |||
| , an interface metric can be defined per topology.</t> | enabled within the default topology. This can be achieved using the | |||
| <t>Multiple address families (such as, IPv4 or IPv6) can also be | "address-families" container (requiring the "nlpid-control" feature to | |||
| enabled within the default topology. | be supported).</t> | |||
| This can be achieved using the address-families container (requi | ||||
| ring the "nlpid-control" feature to be supported).</t> | ||||
| </section> | </section> | |||
| <section anchor="yang-level" toc="default" numbered="true"> | ||||
| <section anchor="yang-level" title="Per-Level Parameters" toc="default"> | <name>Per-Level Parameters</name> | |||
| <t>Some parameters allow a per-level configuration. For such parameters, | <t>Some parameters allow per-level configuration. For such | |||
| the parameter is modeled as a container with three configuration | parameters, the parameter is modeled as a container with three | |||
| locations: | configuration locations: | |||
| <list style="symbols"> | </t> | |||
| <t>a Top-level container: Corresponds to level-1-2, so the confi | <dl newline="true" spacing="normal"> | |||
| guration applies to both levels.</t> | <dt>A top-level container:</dt> | |||
| <t>a Level-1 container: Corresponds to level-1 specific paramete | <dd>Corresponds to "level-all", so the | |||
| rs.</t> | configuration applies to both levels.</dd> | |||
| <t>a Level-2 container: Corresponds to level-2 specific paramete | <dt>A level-1 container:</dt> | |||
| rs.</t> | <dd>Corresponds to parameters specific to level 1.</dd> | |||
| </list> | <dt>A level-2 container:</dt> | |||
| </t> | <dd>Corresponds to parameters specific to level 2.</dd> | |||
| <figure title="" suppress-title="false" align="left" alt="" widt | </dl> | |||
| h="" height=""> | <sourcecode type="yangtree"><![CDATA[ | |||
| <artwork xml:space="preserve" name="" type="" align="left" alt=" | ||||
| " width="" height=""> | ||||
| +--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 | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | <t>Example:</t> | |||
| <t>Example:</t> | <sourcecode type="xml"><![CDATA[ | |||
| <figure title="" suppress-title="false" align="left" alt="" widt | <priority> | |||
| h="" height=""> | <value>250</value> | |||
| <artwork xml:space="preserve" name="" type="" align="left" alt=" | <level-1> | |||
| " width="" height=""> | <value>100</value> | |||
| <priority> | </level-1> | |||
| <value>250</value> | </priority> | |||
| <level-1> | ]]></sourcecode> | |||
| <value>100</value> | <t>An implementation <bcp14>MUST</bcp14> prefer a level-specific | |||
| </level-1> | parameter over a top-level parameter. For example, if the priority is | |||
| </priority> | 100 for the level-1 configuration and 250 for the top-level configuratio | |||
| </artwork> | n, the | |||
| </figure> | implementation must use 100 for the level-1 priority and 250 for the | |||
| <t> | level-2 priority.</t> | |||
| An implementation MUST prefer a level-specific parameter over a | <t>Some parameters, such as "overload bit" and "route preference", | |||
| top-level parameter. | are not modeled to support per-level configuration. If an | |||
| For example, if the priority is 100 for the level-1 and 250 for | implementation supports per-level configuration for such parameters, | |||
| the top-level configuration, the implementation must use 100 for the level-1 pri | this implementation <bcp14>MUST</bcp14> augment the current model by | |||
| ority and 250 for the level-2 priority. | adding both level-1 and level-2 containers and <bcp14>MUST</bcp14> | |||
| </t> | reuse existing configuration groupings.</t> | |||
| <t> | <t>Example of augmentation:</t> | |||
| Some parameters, such as, "overload bit" and "route preference", | <sourcecode type="yang"><![CDATA[ | |||
| are not modeled to support a per-level configuration. If an implementation supp | ||||
| orts per-level configuration for such parameter, | ||||
| this implementation MUST augment the current model by adding bot | ||||
| h level-1 and level-2 containers and MUST reuse existing configuration groupings | ||||
| . | ||||
| </t> | ||||
| <t>Example of augmentation:</t> | ||||
| <figure title="" suppress-title="false" align="left" alt="" widt | ||||
| h="" height=""> | ||||
| <artwork xml:space="preserve" name="" type="" align="left" alt=" | ||||
| " width="" height=""> | ||||
| augment "/rt:routing/" + | augment "/rt:routing/" + | |||
| "rt:control-plane-protocols/rt:control-plane-protocol"+ | "rt:control-plane-protocols/rt:control-plane-protocol"+ | |||
| "/isis:isis/isis:overload" { | "/isis:isis/isis:overload" { | |||
| when "rt:type = 'isis:isis'" { | when "rt:type = 'isis:isis'" { | |||
| description | description | |||
| "This augment IS-IS routing protocol when used"; | "This augments the IS-IS routing protocol when used."; | |||
| } | } | |||
| description | description | |||
| "This augments IS-IS overload configuration | "This augments the IS-IS overload configuration | |||
| with per-level configuration."; | with per-level configuration."; | |||
| container level-1 { | container level-1 { | |||
| uses isis:overload-global-cfg; | uses isis:overload-global-cfg; | |||
| description | description | |||
| "Level 1 configuration."; | "Level-1 configuration."; | |||
| } | } | |||
| container level-2 { | container level-2 { | |||
| uses isis:overload-global-cfg; | uses isis:overload-global-cfg; | |||
| description | description | |||
| "Level 2 configuration."; | "Level-2 configuration."; | |||
| } | } | |||
| } | } | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | ||||
| <t> | ||||
| If an implementation does not support per-level configuration fo | ||||
| r a parameter modeled with per-level configuration, the implementation should ad | ||||
| vertise a deviation to announce the non-support of the level-1 and level-2 conta | ||||
| iners. | ||||
| </t> | ||||
| <t> | ||||
| Finally, if an implementation supports per-level configuration b | ||||
| ut does not support the level-1-2 configuration, it should also advertise a devi | ||||
| ation. | ||||
| </t> | ||||
| </section> | ||||
| <section anchor="yang-interface" title="Per-Interface Parameters" toc="def | <t>If an implementation does not support per-level configuration for a | |||
| ault"> | parameter modeled with per-level configuration, the implementation | |||
| should advertise a deviation to announce that it does not support the | ||||
| configuration of level-1 and level-2 containers.</t> | ||||
| <t>Finally, if an implementation supports per-level configuration but | ||||
| does not support the "level-all" configuration, it should also advertise | ||||
| a deviation.</t> | ||||
| </section> | ||||
| <section anchor="yang-interface" toc="default" numbered="true"> | ||||
| <name>Per-Interface Parameters</name> | ||||
| <t>The per-interface section of the IS-IS instance describes | <t>The per-interface section of the IS-IS instance describes | |||
| the interface-specific parameters.</t> | the interface-specific parameters.</t> | |||
| <t>The interface is modeled as a reference to an existing interf | <t>The interface is modeled as a reference to an existing interface | |||
| ace defined in the "ietf-interfaces" YANG model (<xref target="RFC8343" pageno=" | as defined in the "ietf-interfaces" YANG module <xref target="RFC8343" | |||
| false" format="default"/>.</t> | format="default"/>.</t> | |||
| <t>Each interface has some interface-specific parameters that may have | <t>Each interface has some interface-specific parameters that may have | |||
| a different per-level value as described in the previous section | a different per-level value as described in the previous section. An | |||
| . | interface-specific parameter <bcp14>MUST</bcp14> be preferred over an | |||
| An interface-specific parameter MUST be preferred over an IS-IS | IS-IS global parameter.</t> | |||
| global | <t>Some parameters, such as "hello-padding", are defined as containers | |||
| parameter.</t> | to allow easy extension by vendor-specific modules.</t> | |||
| <t>Some parameters, such as, hello-padding are defined as contai | <sourcecode type="yangtree"><![CDATA[ | |||
| ners | ||||
| to allow easy extension by vendor-specific modules.</t> | ||||
| <figure title="" suppress-title="false" align="left" alt="" width="" hei | ||||
| ght=""> | ||||
| <artwork xml:space="preserve" name="" type="" align="left" alt="" wi | ||||
| dth="" height=""> | ||||
| +--rw interfaces | +--rw interfaces | |||
| +--rw interface* [name] | +--rw interface* [name] | |||
| +--rw name if:interface-ref | +--rw name if:interface-ref | |||
| +--rw enable? boolean {admin-control}? | +--rw enabled? boolean {admin-control}? | |||
| +--rw level-type? level | +--rw level-type? level | |||
| +--rw lsp-pacing-interval? rt-types: | +--rw lsp-pacing-interval? rt-types: | |||
| | timer-value-milliseconds | | timer-value-\ | |||
| | milliseconds | ||||
| +--rw lsp-retransmit-interval? rt-types: | +--rw lsp-retransmit-interval? rt-types: | |||
| | timer-value-seconds16 | | timer-value-seconds16 | |||
| +--rw passive? boolean | +--rw passive? boolean | |||
| +--rw csnp-interval? rt-types: | +--rw csnp-interval? rt-types: | |||
| | timer-value-seconds16 | | timer-value-seconds16 | |||
| +--rw hello-padding | +--rw hello-padding | |||
| | +--rw enable? boolean | | +--rw enabled? boolean | |||
| +--rw mesh-group-enable? mesh-group-state | +--rw mesh-group-enabled? mesh-group-state | |||
| +--rw mesh-group? uint8 | +--rw mesh-group? uint8 | |||
| +--rw interface-type? interface-type | +--rw interface-type? interface-type | |||
| +--rw tag* uint32 {prefix-tag}? | +--rw tag* uint32 {prefix-tag}? | |||
| +--rw tag64* uint64 {prefix-tag64}? | +--rw tag64* uint64 {prefix-tag64}? | |||
| +--rw node-flag? boolean {node-flag}? | +--rw node-flag? boolean {node-flag}? | |||
| +--rw hello-authentication | +--rw hello-authentication | |||
| | +--rw (authentication-type)? | | +--rw (authentication-type)? | |||
| | | +--:(key-chain) {key-chain}? | | | +--:(key-chain) {key-chain}? | |||
| | | | +--rw key-chain? key-chain:key-chain-ref | | | | +--rw key-chain? key-chain:key-chain-ref | |||
| | | +--:(password) | | | +--:(password) | |||
| | | +--rw key? string | | | +--rw key? string | |||
| | | +--rw crypto-algorithm? identityref | | | +--rw crypto-algorithm? identityref | |||
| | +--rw level-1 | | +--rw level-1 | |||
| | | +--rw (authentication-type)? | | | +--rw (authentication-type)? | |||
| | | +--:(key-chain) {key-chain}? | | | +--:(key-chain) {key-chain}? | |||
| | | | +--rw key-chain? key-chain:key-chain-ref | | | | +--rw key-chain? key-chain:\ | |||
| | | | key-chain-ref | ||||
| | | +--:(password) | | | +--:(password) | |||
| | | +--rw key? string | | | +--rw key? string | |||
| | | +--rw crypto-algorithm? identityref | | | +--rw crypto-algorithm? identityref | |||
| | +--rw level-2 | | +--rw level-2 | |||
| | +--rw (authentication-type)? | | +--rw (authentication-type)? | |||
| | +--:(key-chain) {key-chain}? | | +--:(key-chain) {key-chain}? | |||
| | | +--rw key-chain? key-chain:key-chain-ref | | | +--rw key-chain? key-chain:\ | |||
| | | key-chain-ref | ||||
| | +--:(password) | | +--:(password) | |||
| | +--rw key? string | | +--rw key? string | |||
| | +--rw crypto-algorithm? identityref | | +--rw crypto-algorithm? identityref | |||
| +--rw hello-interval | +--rw hello-interval | |||
| | +--rw value? rt-types:timer-value-seconds16 | | +--rw value? rt-types:timer-value-seconds16 | |||
| | +--rw level-1 | | +--rw level-1 | |||
| | | +--rw value? rt-types:timer-value-seconds16 | | | +--rw value? rt-types:timer-value-seconds16 | |||
| | +--rw level-2 | | +--rw level-2 | |||
| | +--rw value? rt-types:timer-value-seconds16 | | +--rw value? rt-types:timer-value-seconds16 | |||
| +--rw hello-multiplier | +--rw hello-multiplier | |||
| skipping to change at line 568 ¶ | skipping to change at line 620 ¶ | |||
| | | +--rw value? uint8 | | | +--rw value? uint8 | |||
| | +--rw level-2 | | +--rw level-2 | |||
| | +--rw value? uint8 | | +--rw value? uint8 | |||
| +--rw metric | +--rw metric | |||
| | +--rw value? wide-metric | | +--rw value? wide-metric | |||
| | +--rw level-1 | | +--rw level-1 | |||
| | | +--rw value? wide-metric | | | +--rw value? wide-metric | |||
| | +--rw level-2 | | +--rw level-2 | |||
| | +--rw value? wide-metric | | +--rw value? wide-metric | |||
| +--rw bfd {bfd}? | +--rw bfd {bfd}? | |||
| | +--rw enable? boolean | | +--rw enabled? boolean | |||
| | +--rw local-multiplier? multiplier | | +--rw local-multiplier? multiplier | |||
| | +--rw (interval-config-type)? | | | {client-base-cfg-parms}? | |||
| | +--rw (interval-config-type)? {client-base-cfg-parms}? | ||||
| | +--:(tx-rx-intervals) | | +--:(tx-rx-intervals) | |||
| | | +--rw desired-min-tx-interval? uint32 | | | +--rw desired-min-tx-interval? uint32 | |||
| | | +--rw required-min-rx-interval? uint32 | | | +--rw required-min-rx-interval? uint32 | |||
| | +--:(single-interval) {single-minimum-interval}? | | +--:(single-interval) {single-minimum-interval}? | |||
| | +--rw min-interval? uint32 | | +--rw min-interval? uint32 | |||
| +--rw address-families {nlpid-control}? | +--rw address-families {nlpid-control}? | |||
| | +--rw address-family-list* [address-family] | | +--rw address-family-list* [address-family] | |||
| | +--rw address-family iana-rt-types:address-family | | +--rw address-family iana-rt-types:address-family | |||
| +--rw mpls | +--rw mpls | |||
| | +--rw ldp | | +--rw ldp | |||
| | +--rw igp-sync? boolean {ldp-igp-sync}? | | +--rw igp-sync? boolean {ldp-igp-sync}? | |||
| +--rw fast-reroute {fast-reroute}? | +--rw fast-reroute {fast-reroute}? | |||
| | +--rw lfa {lfa}? | | +--rw lfa {lfa}? | |||
| | +--rw candidate-enable? boolean | | +--rw candidate-enabled? boolean | |||
| | +--rw enable? boolean | | +--rw enabled? boolean | |||
| | +--rw remote-lfa {remote-lfa}? | | +--rw remote-lfa {remote-lfa}? | |||
| | | +--rw enable? boolean | | | +--rw enabled? boolean | |||
| | +--rw level-1 | | +--rw level-1 | |||
| | | +--rw candidate-enable? boolean | | | +--rw candidate-enabled? boolean | |||
| | | +--rw enable? boolean | | | +--rw enabled? boolean | |||
| | | +--rw remote-lfa {remote-lfa}? | | | +--rw remote-lfa {remote-lfa}? | |||
| | | +--rw enable? boolean | | | +--rw enabled? boolean | |||
| | +--rw level-2 | | +--rw level-2 | |||
| | +--rw candidate-enable? boolean | | +--rw candidate-enabled? boolean | |||
| | +--rw enable? boolean | | +--rw enabled? boolean | |||
| | +--rw remote-lfa {remote-lfa}? | | +--rw remote-lfa {remote-lfa}? | |||
| | +--rw enable? boolean | | +--rw enabled? boolean | |||
| +--ro adjacencies | +--ro adjacencies | |||
| | +--ro adjacency* [] | | +--ro adjacency* [] | |||
| | +--ro neighbor-sys-type? level | | +--ro neighbor-sys-type? level | |||
| | +--ro neighbor-sysid? system-id | | +--ro neighbor-sysid? system-id | |||
| | +--ro neighbor-extended-circuit-id? extended-circuit-id | | +--ro neighbor-extended-circuit-id? extended-\ | |||
| | | circuit-id | ||||
| | +--ro neighbor-snpa? snpa | | +--ro neighbor-snpa? snpa | |||
| | +--ro usage? level | | +--ro usage? level | |||
| | +--ro hold-timer? rt-types: | | +--ro hold-timer? rt-types: | |||
| | | timer-value-seconds16 | | | timer-value-\ | |||
| | | seconds16 | ||||
| | +--ro neighbor-priority? uint8 | | +--ro neighbor-priority? uint8 | |||
| | +--ro lastuptime? yang:timestamp | | +--ro lastuptime? yang:timestamp | |||
| | +--ro state? adj-state-type | | +--ro state? adj-state-type | |||
| +--ro event-counters | +--ro event-counters | |||
| | +--ro adjacency-changes? uint32 | | +--ro adjacency-changes? uint32 | |||
| | +--ro adjacency-number? uint32 | | +--ro adjacency-number? uint32 | |||
| | +--ro init-fails? uint32 | | +--ro init-fails? uint32 | |||
| | +--ro adjacency-rejects? uint32 | | +--ro adjacency-rejects? uint32 | |||
| | +--ro id-len-mismatch? uint32 | | +--ro id-len-mismatch? uint32 | |||
| | +--ro max-area-addresses-mismatch? uint32 | | +--ro max-area-addresses-mismatch? uint32 | |||
| skipping to change at line 646 ¶ | skipping to change at line 701 ¶ | |||
| | | +--ro in? uint32 | | | +--ro in? uint32 | |||
| | | +--ro out? uint32 | | | +--ro out? uint32 | |||
| | +--ro csnp | | +--ro csnp | |||
| | | +--ro in? uint32 | | | +--ro in? uint32 | |||
| | | +--ro out? uint32 | | | +--ro out? uint32 | |||
| | +--ro unknown | | +--ro unknown | |||
| | +--ro in? uint32 | | +--ro in? uint32 | |||
| +--rw discontinuity-time? yang:date-and-time | +--rw discontinuity-time? yang:date-and-time | |||
| +--rw topologies {multi-topology}? | +--rw topologies {multi-topology}? | |||
| +--rw topology* [name] | +--rw topology* [name] | |||
| +--rw name -> | +--rw name -> | |||
| | ../../../../../../../../rt:ribs/rib/name | | ../../../../../../../../rt:\ | |||
| | ribs/rib/name | ||||
| +--rw metric | +--rw metric | |||
| +--rw value? wide-metric | +--rw value? wide-metric | |||
| +--rw level-1 | +--rw level-1 | |||
| | +--rw value? wide-metric | | +--rw value? wide-metric | |||
| +--rw level-2 | +--rw level-2 | |||
| +--rw value? wide-metric | +--rw value? wide-metric | |||
| ]]></sourcecode> | ||||
| rpcs: | ||||
| +---x clear-adjacency | ||||
| | +---w input | ||||
| | +---w routing-protocol-instance-name -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +---w level? level | ||||
| | +---w interface? if:interface-ref | ||||
| +---x clear-database | ||||
| +---w input | ||||
| +---w routing-protocol-instance-name -> /rt:routing/ | ||||
| | control-plane-protocols/ | ||||
| | control-plane-protocol/name | ||||
| +---w level? level | ||||
| notifications: | ||||
| +---n database-overload | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro overload? enumeration | ||||
| +---n lsp-too-large | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro pdu-size? uint32 | ||||
| | +--ro lsp-id? lsp-id | ||||
| +---n if-state-change | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro state? if-state-type | ||||
| +---n corrupted-lsp-detected | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro lsp-id? lsp-id | ||||
| +---n attempt-to-exceed-max-sequence | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro lsp-id? lsp-id | ||||
| +---n id-len-mismatch | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro pdu-field-len? uint8 | ||||
| | +--ro raw-pdu? binary | ||||
| +---n max-area-addresses-mismatch | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro max-area-addresses? uint8 | ||||
| | +--ro raw-pdu? binary | ||||
| +---n own-lsp-purge | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro lsp-id? lsp-id | ||||
| +---n sequence-number-skipped | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro lsp-id? lsp-id | ||||
| +---n authentication-type-failure | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro raw-pdu? binary | ||||
| +---n authentication-failure | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro raw-pdu? binary | ||||
| +---n version-skew | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro protocol-version? uint8 | ||||
| | +--ro raw-pdu? binary | ||||
| +---n area-mismatch | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro raw-pdu? binary | ||||
| +---n rejected-adjacency | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro raw-pdu? binary | ||||
| | +--ro reason? string | ||||
| +---n protocols-supported-mismatch | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro raw-pdu? binary | ||||
| | +--ro protocols* uint8 | ||||
| +---n lsp-error-detected | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro lsp-id? lsp-id | ||||
| | +--ro raw-pdu? binary | ||||
| | +--ro error-offset? uint32 | ||||
| | +--ro tlv-type? uint8 | ||||
| +---n adjacency-state-change | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro neighbor? string | ||||
| | +--ro neighbor-system-id? system-id | ||||
| | +--ro state? adj-state-type | ||||
| | +--ro reason? string | ||||
| +---n lsp-received | ||||
| | +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | | control-plane-protocols/ | ||||
| | | control-plane-protocol/name | ||||
| | +--ro isis-level? level | ||||
| | +--ro interface-name? if:interface-ref | ||||
| | +--ro interface-level? level | ||||
| | +--ro extended-circuit-id? extended-circuit-id | ||||
| | +--ro lsp-id? lsp-id | ||||
| | +--ro sequence? uint32 | ||||
| | +--ro received-timestamp? yang:timestamp | ||||
| | +--ro neighbor-system-id? system-id | ||||
| +---n lsp-generation | ||||
| +--ro routing-protocol-name? -> /rt:routing/ | ||||
| | control-plane-protocols/ | ||||
| | control-plane-protocol/name | ||||
| +--ro isis-level? level | ||||
| +--ro lsp-id? lsp-id | ||||
| +--ro sequence? uint32 | ||||
| +--ro send-timestamp? yang:timestamp | ||||
| </artwork> | ||||
| </figure> | ||||
| </section> | </section> | |||
| <section anchor="yang-authentication" title="Authentication Parameter | <section anchor="yang-authentication" toc="default" numbered="true"> | |||
| s" toc="default"> | <name>Authentication Parameters</name> | |||
| <t> | <t>The module defined in this document enables authentication configurat | |||
| The module enables authentication configuration through the IETF key- | ion through the | |||
| chain module <xref target="RFC8177" pageno="false" format="default"/>. | "ietf-key-chain" module <xref target="RFC8177" format="default"/>. | |||
| The IS-IS module imports the "ietf-key-chain" module and reuses some | The IS-IS module imports the "ietf-key-chain" module and reuses | |||
| groupings to allow global and per-interface configuration of authentication. | some groupings to allow global and per-interface configuration of | |||
| If global authentication is configured, an implementation SHOULD auth | authentication. | |||
| enticate PSNPs (Partial Sequence Number Packets), CSNPs (Complete Sequence Numbe | If global authentication is configured, an implementation | |||
| r Packets) and LSPs (Link State Packets) with the authentication parameters supp | <bcp14>SHOULD</bcp14> authenticate PSNPs (Partial Sequence Number | |||
| lied. | PDUs), CSNPs (Complete Sequence Number PDUs), and LSPs (Link | |||
| The authentication of HELLO PDUs (Protocol Data Units) can be activat | State PDUs) with the authentication parameters supplied. | |||
| ed on a per-interface basis. | The authentication of Hello PDUs (Protocol Data Units) can be | |||
| </t> | activated on a per-interface basis. | |||
| </section> | </t> | |||
| <section anchor="yang-igp-ldp" title="IGP/LDP synchronization" toc="d | </section> | |||
| efault"> | <section anchor="yang-igp-ldp" toc="default" numbered="true"> | |||
| <t> | <name>IGP/LDP Synchronization</name> | |||
| <xref target="RFC5443" pageno="false" format="default"/> defines a me | <t> | |||
| chanism where IGP (Interior Gateway Protocol) needs to be synchronized with LDP | <xref target="RFC5443" format="default"/> defines a mechanism where | |||
| (Label Distribution Protocol). | IGP (the Interior Gateway Protocol) needs to be synchronized with LDP | |||
| An "ldp-igp-sync" feature has been defined in the model to support th | (the Label Distribution Protocol). | |||
| is functionality. | An "ldp-igp-sync" feature has been defined in the model to support | |||
| The "mpls/ldp/igp-sync" leaf under "interface" allows activation of t | this functionality. | |||
| he functionality on a per-interface basis. | The "mpls/ldp/igp-sync" leaf under "interface" allows activation of | |||
| The "mpls/ldp/igp-sync" container in the global configuration is inte | the functionality on a per-interface basis. | |||
| ntionally empty and is not required for feature activation. | The "mpls/ldp/igp-sync" container in the global configuration is | |||
| The goal of this empty container is to facilitate augmentation with a | intentionally empty and is not required for feature activation. | |||
| dditional parameters, e.g., timers. | The goal of this empty container is to facilitate augmentation with | |||
| </t> | additional parameters, e.g., timers. | |||
| </section> | </t> | |||
| <section anchor="yang-iso" title="ISO parameters" toc="default"> | </section> | |||
| <t>As the IS-IS protocol is based on the ISO protocol suite, some ISO | <section anchor="yang-iso" toc="default" numbered="true"> | |||
| parameters may be required.</t> | <name>ISO Parameters</name> | |||
| <t>This module augments interface configuration model to support sele | <t>As the IS-IS protocol is based on the ISO protocol suite, some ISO | |||
| cted ISO configuration parameters.</t> | parameters may be required.</t> | |||
| <t>The clns-mtu can be configured for an interface.</t> | <t>This module augments the "ietf-interfaces" module configuration to su | |||
| </section> | pport | |||
| <section anchor="yang-frr" title="IP FRR" toc="default"> | selected ISO configuration parameters.</t> | |||
| <t> | <t>The "clns-mtu" parameter can be configured for an interface.</t> | |||
| This YANG module supports LFA (Loop Free Alternates) <xref target="RFC | </section> | |||
| 5286" pageno="false" format="default"/> and remote LFA <xref target="RFC7490" pa | <section anchor="yang-frr" toc="default" numbered="true"> | |||
| geno="false" format="default"/> as IP Fast Re-Route (FRR) techniques. | <name>IP FRR</name> | |||
| The "fast-reroute" container may be augmented by other models to suppo | <t> | |||
| rt other IP FRR flavors (MRT as defined in <xref target="RFC7812" pageno="false" | The YANG module defined in this document supports LFAs (Loop-Free Alte | |||
| format="default"/>, TI-LFA as defined in <xref target="I-D.ietf-rtgwg-segment-r | rnates) <xref | |||
| outing-ti-lfa" pageno="false" format="default"/>, etc.). | target="RFC5286" format="default"/> and remote LFAs <xref | |||
| </t> | target="RFC7490" format="default"/> as IP Fast Reroute (FRR) | |||
| <t> | techniques. | |||
| The current version of the model supports activation of LFA and remote | The "fast-reroute" container may be augmented by other models to | |||
| LFA at the interface-level only. | support other IP FRR flavors (Maximally Redundant Trees (MRTs) | |||
| The global "lfa" container is present but kept empty to allow augmenta | as defined in <xref | |||
| tion with vendor-specific properties, e.g., policies. | target="RFC7812" format="default"/>, Topology Independent LFA | |||
| </t> | (TI-LFA) FRR as defined in <xref | |||
| <t>Remote LFA is considered as an extension of LFA. Remote LFA cannot | target="I-D.ietf-rtgwg-segment-routing-ti-lfa" format="default"/>, | |||
| be enabled if LFA is not enabled.</t> | etc.). | |||
| <t>The "candidate-enable" data leaf designates that an interface can b | </t> | |||
| e used as a backup.</t> | <t> | |||
| </section> | The current version of the model supports activation of LFAs and | |||
| remote LFAs at the interface level only. | ||||
| <section anchor="yang-op" title="Operational States" toc="default"> | The global "lfa" container is present but kept empty to allow | |||
| <t>Operational state is defined in module in various containers at vario | augmentation with vendor-specific properties, e.g., policies. | |||
| us levels: | </t> | |||
| <list style="symbols"> | <t>Remote LFAs are considered an extension of LFAs. Remote LFAs cannot | |||
| <t>system-counters: Provides statistical information about | be enabled if LFAs are not enabled.</t> | |||
| the global system.</t> | <t>The "candidate-enabled" data leaf designates that an interface can | |||
| <t>interface: Provides configuration state information for | be used as a backup.</t> | |||
| each interface.</t> | </section> | |||
| <t>adjacencies: Provides state information about current | <section anchor="yang-op" toc="default" numbered="true"> | |||
| IS-IS adjacencies.</t> | <name>Operational States</name> | |||
| <t>spf-log: Provides information about SPF events for an IS-IS instanc | <t>Operational states are defined in the "ietf-isis" module in various c | |||
| e. | ontainers at various levels: | |||
| This SHOULD be implemented as a wrapping buffer.</t> | </t> | |||
| <t>lsp-log: Provides information about LSP events for an IS-IS instanc | <dl newline="true" spacing="normal"> | |||
| e | <dt>system-counters:</dt> | |||
| <dd>Provides statistical information about | ||||
| the global system.</dd> | ||||
| <dt>interface:</dt> | ||||
| <dd>Provides configuration state information for | ||||
| each interface.</dd> | ||||
| <dt>adjacencies:</dt> | ||||
| <dd>Provides state information about current | ||||
| IS-IS adjacencies.</dd> | ||||
| <dt>spf-log:</dt> | ||||
| <dd>Provides information about Shortest Path First (SPF) events for an | ||||
| IS-IS instance. | ||||
| This <bcp14>SHOULD</bcp14> be implemented as a wrapping buffer.</dd> | ||||
| <dt>lsp-log:</dt> | ||||
| <dd>Provides information about LSP events for an IS-IS instance | ||||
| (reception of an LSP or modification of a local LSP). | (reception of an LSP or modification of a local LSP). | |||
| This SHOULD be implemented as a wrapping buffer and the implementation | This <bcp14>SHOULD</bcp14> be implemented as a wrapping buffer. The im | |||
| MAY optionally log LSP refreshes.</t> | plementation <bcp14>MAY</bcp14> optionally log LSP refreshes.</dd> | |||
| <t>local-rib: Provides the IS-IS internal routing table.</t> | <dt>local-rib:</dt> | |||
| <t>database: Provides contents of the current Link State Database.</t> | <dd>Provides the IS-IS internal routing table.</dd> | |||
| <t>hostnames: Provides the system-id to | <dt>database:</dt> | |||
| hostname mappings <xref target="RFC5301" pageno="false" format="defaul | <dd>Provides the contents of the current Link State Database (LSDB).</ | |||
| t"/>.</t> | dd> | |||
| <t>fast-reroute: Provides IP FRR state information.</t> | <dt>hostnames:</dt> | |||
| </list></t> | <dd>Provides the system-ID-to-hostname mappings <xref target="RFC5301" | |||
| format="default"/>.</dd> | ||||
| <dt>fast-reroute:</dt> | ||||
| <dd>Provides IP FRR state information.</dd> | ||||
| </dl> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="RPC" toc="default" numbered="true"> | ||||
| <section anchor="RPC" title="RPC Operations" toc="default"> | <name>RPC Operations</name> | |||
| <t>The "ietf-isis" module defines two RPC operations: | <t>The "ietf-isis" module defines two RPC operations: | |||
| <list style="symbols"> | </t> | |||
| <t>clear-database: Reset the content of a particular IS-IS | <dl newline="true" spacing="normal"> | |||
| database and restart database synchronization with all | <dt>clear-database:</dt> | |||
| neighbors.</t> | <dd>Resets the contents of a particular IS-IS | |||
| <t>clear-adjacency: Restart a particular set of IS-IS | database and restarts database synchronization with all | |||
| adjacencies.</t> | neighbors.</dd> | |||
| </list></t> | <dt>clear-adjacency:</dt> | |||
| <dd>Restarts a particular set of IS-IS | ||||
| <figure title="" suppress-title="false" align="left" alt="" width="" heigh | adjacencies.</dd> | |||
| t=""> | </dl> | |||
| <artwork xml:space="preserve" name="" type="" align="left" alt="" widt | ||||
| h="" height=""> | ||||
| </artwork> | ||||
| </figure> | ||||
| </section> | </section> | |||
| <section anchor="notif" toc="default" numbered="true"> | ||||
| <section anchor="notif" title="Notifications" toc="default"> | <name>Notifications</name> | |||
| <t>The "ietf-isis" module defines the following notifications: | <t>The "ietf-isis" module defines the following notifications: | |||
| <list> | </t> | |||
| <t>database-overload: This notification is sent when the IS-IS Node ov | <dl newline="true" spacing="normal"> | |||
| erload condition changes.</t> | <dt>database-overload:</dt> | |||
| <t>lsp-too-large: This notification is sent when the system tries to p | <dd>This notification is sent when the IS-IS node's overload condition c | |||
| ropagate a PDU that is too large.</t> | hanges.</dd> | |||
| <t>if-state-change: This notification is sent when an interface's state chan | <dt>lsp-too-large:</dt> | |||
| ges.</t> | <dd>This notification is sent when the system tries to propagate a PDU | |||
| <t>corrupted-lsp-detected: This notification is sent when the IS-IS no | that is too large.</dd> | |||
| de discovers | <dt>if-state-change:</dt> | |||
| that an LSP that was previously stored in the Link State Data | <dd>This notification is sent when an interface's state changes.</dd> | |||
| base, i.e., local memory, has | <dt>corrupted-lsp-detected:</dt> | |||
| become corrupted.</t> | <dd>This notification is sent when the IS-IS node discovers | |||
| <t>attempt-to-exceed-max-sequence: This notification is sent whe | that an LSP that was previously stored in the LSDB, i.e., loc | |||
| n the system | al memory, has | |||
| wraps the 32-bit sequence counter of an LSP.</t> | become corrupted.</dd> | |||
| <t>id-len-mismatch: This notification is sent when we receive a | <dt>attempt-to-exceed-max-sequence:</dt> | |||
| PDU | <dd>This notification is sent when the system | |||
| with a different value for the System ID length.</t> | wraps the 32-bit sequence counter of an LSP.</dd> | |||
| <t>max-area-addresses-mismatch: This notification is sent when w | <dt>id-len-mismatch:</dt> | |||
| e receive a PDU | <dd>This notification is sent when a PDU | |||
| with a different value for the Maximum Area Addresses.</t> | with a different value for the system ID length is received.</ | |||
| <t>own-lsp-purge: This notification is sent when the system | dd> | |||
| receives a PDU with its own system ID and zero age.</t> | <dt>max-area-addresses-mismatch:</dt> | |||
| <t>sequence-number-skipped: This notification is sent when the s | <dd>This notification is sent when a PDU | |||
| ystem | with a different value for the Maximum Area Addresses is recei | |||
| ved.</dd> | ||||
| <dt>own-lsp-purge:</dt> | ||||
| <dd>This notification is sent when the system | ||||
| receives a PDU with its own system ID and zero age.</dd> | ||||
| <dt>sequence-number-skipped:</dt> | ||||
| <dd>This notification is sent when the system | ||||
| receives a PDU with its own system ID and | receives a PDU with its own system ID and | |||
| different contents. The system has to reissue | different contents. The system has to reissue | |||
| the LSP with a higher sequence number.</t> | the LSP with a higher sequence number.</dd> | |||
| <t>authentication-type-failure: This notification is sent when t | <dt>authentication-type-failure:</dt> | |||
| he system | <dd>This notification is sent when the system | |||
| receives a PDU with the wrong authentication type | receives a PDU with the wrong authentication type | |||
| field.</t> | field.</dd> | |||
| <t>authentication-failure: This notification is sent when the sy | <dt>authentication-failure:</dt> | |||
| stem | <dd>This notification is sent when the system | |||
| receives a PDU with the wrong authentication | receives a PDU with the wrong authentication | |||
| information.</t> | information.</dd> | |||
| <t>version-skew: This notification is sent when the system | <dt>version-skew:</dt> | |||
| <dd>This notification is sent when the system | ||||
| receives a PDU with a different protocol version | receives a PDU with a different protocol version | |||
| number.</t> | number.</dd> | |||
| <t>area-mismatch: This notification is sent when the system | <dt>area-mismatch:</dt> | |||
| <dd>This notification is sent when the system | ||||
| receives a Hello PDU from an IS that does | receives a Hello PDU from an IS that does | |||
| not share any area address.</t> | not share any area address.</dd> | |||
| <t>rejected-adjacency: This notification is sent when the system | <dt>rejected-adjacency:</dt> | |||
| <dd>This notification is sent when the system | ||||
| receives a Hello PDU from an IS but does not | receives a Hello PDU from an IS but does not | |||
| establish an adjacency for some reason.</t> | establish an adjacency for some reason.</dd> | |||
| <t>protocols-supported-mismatch: This notification is sent when | <dt>protocols-supported-mismatch:</dt> | |||
| the system | <dd>This notification is sent when the system | |||
| receives a non-pseudonode LSP that has no matching | receives a non-pseudonode LSP that has no matching | |||
| protocol supported.</t> | protocol supported.</dd> | |||
| <t>lsp-error-detected: This notification is sent when the system | <dt>lsp-error-detected:</dt> | |||
| receives an LSP with a parse error.</t> | <dd>This notification is sent when the system | |||
| <t>adjacency-state-change: This notification is sent when an IS- | receives an LSP with a parse error.</dd> | |||
| IS adjacency | <dt>adjacency-state-change:</dt> | |||
| moves to Up state or to Down state.</t> | <dd>This notification is sent when an IS-IS adjacency | |||
| <t>lsp-received: This notification is sent when an LSP | moves to the "up" state or the "down" state.</dd> | |||
| is received.</t> | <dt>lsp-received:</dt> | |||
| <t>lsp-generation: This notification is sent when an LSP | <dd>This notification is sent when an LSP | |||
| is regenerated.</t> | is received.</dd> | |||
| </list> | <dt>lsp-generation:</dt> | |||
| </t> | <dd>This notification is sent when an LSP | |||
| is regenerated.</dd> | ||||
| <figure title="" suppress-title="false" align="left" alt="" width="" heigh | </dl> | |||
| t=""> | ||||
| <artwork xml:space="preserve" name="" type="" align="left" alt="" width= | ||||
| "" height=""> | ||||
| </artwork> | ||||
| </figure> | ||||
| </section> | </section> | |||
| <section anchor="interactions" toc="default" numbered="true"> | ||||
| <section anchor="interaction" title="Interaction with Other YANG Modules" to | <name>Interactions with Other YANG Modules</name> | |||
| c="default"> | ||||
| <t>The "isis" container augments the | <t>The "isis" container augments the | |||
| "/rt:routing/rt:control-plane-protocols/control-plane-protocol" | "/rt:routing/rt:control-plane-protocols/control-plane-protocol" | |||
| container of the ietf-routing <xref target="RFC8349" pageno="false" format ="default"/> module with IS-IS-specific | container of the "ietf-routing" module <xref target="RFC8349" format="defa ult"/> with IS-IS-specific | |||
| parameters.</t> | parameters.</t> | |||
| <t>The "isis" module augments | <t>The "ietf-isis" module augments | |||
| "/if:interfaces/if:interface" defined by <xref target="RFC8343" pageno="fa | "/if:interfaces/if:interface" as defined by <xref target="RFC8343" format= | |||
| lse" format="default"/> | "default"/> | |||
| with ISO specific parameters.</t> | with ISO-specific parameters.</t> | |||
| <t>The "isis" operational state container augments the | ||||
| "/rt:routing-state/rt:control-plane-protocols/control-plane-protocol" | ||||
| container of the ietf-routing module with IS-IS-specific | ||||
| operational states.</t> | ||||
| <t>Some IS-IS-specific route attributes are added to route | <t>Some IS-IS-specific route attributes are added to route | |||
| objects in the ietf-routing module by augmenting | objects in the "ietf-routing" module by augmenting | |||
| "/rt:routing-state/rt:ribs/rt:rib/rt:routes/rt:route".</t> | "/rt:routing-state/rt:ribs/rt:rib/rt:routes/rt:route".</t> | |||
| <t>The modules defined in this document uses some groupings from ietf- | <t>The module defined in this document uses some groupings from "ietf-keyc | |||
| keychain <xref target="RFC8177" pageno="false" format="default"/>.</t> | hain" <xref target="RFC8177" format="default"/>.</t> | |||
| <t>The module reuses types from <xref target="RFC6991" pageno="false" form | <t>The module reuses types from <xref target="RFC6991" format="default"/> | |||
| at="default"/> and <xref target="RFC8294" pageno="false" format="default"/>.</t> | and <xref target="RFC8294" format="default"/>.</t> | |||
| <t>To support BFD for fast detection, the module relies on <xref target="I | <t>To support Bidirectional Forwarding Detection (BFD) for fast detection, | |||
| -D.ietf-bfd-yang" pageno="false" format="default"/>.</t> | the module relies on <xref target="RFC9314" format="default"/>.</t> | |||
| </section> | </section> | |||
| <section anchor="isis-yang" title="IS-IS YANG Module" toc="default"> | <!-- The two "Quote from RFC 7981" items in the module are DNE. | |||
| <t>The following RFCs, drafts and external standards are not referenced in t | Incorrect in the original; fixes were OKed by authors. --> | |||
| he document text | ||||
| but are referenced in the ietf-isis.yang module: <xref target="ISO-10589" pag | <section anchor="isis-yang" toc="default" numbered="true"> | |||
| eno="false" format="default"/>, <xref target="RFC1195" pageno="false" format="de | <name>IS-IS YANG Module</name> | |||
| fault"/>, <xref target="RFC4090" pageno="false" format="default"/>,<xref target= | <t>The following specifications are referenced in this module: <xref | |||
| "RFC5029" pageno="false" format="default"/>, <xref target="RFC5130" pageno="fals | target="ISO-10589" format="default"/>, <xref target="RFC1195" | |||
| e" format="default"/>, <xref target="RFC5302" pageno="false" format="default"/>, | format="default"/>, <xref target="RFC4090" format="default"/>, <xref | |||
| <xref target="RFC5305" pageno="false" format="default"/>, <xref target="RFC5306 | target="RFC5029" format="default"/>, | |||
| " pageno="false" format="default"/>, <xref target="RFC5307" pageno="false" forma | <xref target="RFC5120"/>, | |||
| t="default"/>, <xref target="RFC5308" pageno="false" format="default"/>, <xref t | <xref target="RFC5130" format="default"/>, | |||
| arget="RFC5880" pageno="false" format="default"/>, <xref target="RFC5881" pageno | <xref target="RFC5286"/>, | |||
| ="false" format="default"/>, <xref target="RFC6119" pageno="false" format="defau | <xref target="RFC5301"/>, | |||
| lt"/>, <xref target="RFC6232" pageno="false" format="default"/>, <xref target="R | <xref target="RFC5302" format="default"/>, <xref | |||
| FC7794" pageno="false" format="default"/>, <xref target="RFC7981" pageno="false" | target="RFC5305" format="default"/>, <xref target="RFC5307" format="defaul | |||
| format="default"/>, <xref target="RFC8570" pageno="false" format="default"/>, < | t"/>, <xref | |||
| xref target="RFC7917" pageno="false" format="default"/>, <xref target="RFC8405" | target="RFC5308" format="default"/>, | |||
| pageno="false" format="default"/>.</t> | <xref target="RFC5443"/>, | |||
| <figure title="" suppress-title="false" align="left" alt="" width="" heigh | <xref target="RFC5880" format="default"/>, | |||
| t=""> | <xref target="RFC5881" format="default"/>, <xref | |||
| <artwork xml:space="preserve" name="" type="" align="left" alt="" width= | target="RFC6119" format="default"/>, <xref target="RFC6232" | |||
| "" height=""> | format="default"/>, | |||
| <![CDATA[ | <xref target="RFC6241"/>, | |||
| <CODE BEGINS> file "ietf-isis@2019-10-15.yang" | <xref target="RFC6991"/>, | |||
| <xref target="RFC7490"/>, | ||||
| <xref target="RFC7794" format="default"/>, | ||||
| <xref target="RFC7917" format="default"/>, | ||||
| <xref target="RFC7981" format="default"/>, | ||||
| <xref target="RFC8177"/>, | ||||
| <xref target="RFC8294"/>, | ||||
| <xref target="RFC8342"/>, | ||||
| <xref target="RFC8343"/>, | ||||
| <xref target="RFC8349"/>, | ||||
| <xref target="RFC8405" format="default"/>, | ||||
| <xref target="RFC8570" format="default"/>, | ||||
| <xref target="RFC8706" format="default"/>, and | ||||
| <xref target="RFC9314"/>.</t> | ||||
| <sourcecode name="ietf-isis@2021-08-31.yang" type="yang" markers="true"><![CDATA | ||||
| [ | ||||
| module ietf-isis { | module ietf-isis { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-isis"; | namespace "urn:ietf:params:xml:ns:yang:ietf-isis"; | |||
| prefix isis; | prefix isis; | |||
| import ietf-routing { | import ietf-routing { | |||
| prefix "rt"; | prefix rt; | |||
| reference "RFC 8349 - A YANG Data Model for Routing | reference | |||
| Management (NMDA Version)"; | "RFC 8349: A YANG Data Model for Routing Management | |||
| (NMDA Version)"; | ||||
| } | } | |||
| import ietf-inet-types { | import ietf-inet-types { | |||
| prefix inet; | prefix inet; | |||
| reference "RFC 6991 - Common YANG Data Types"; | reference | |||
| "RFC 6991: Common YANG Data Types"; | ||||
| } | } | |||
| import ietf-yang-types { | import ietf-yang-types { | |||
| prefix yang; | prefix yang; | |||
| reference "RFC 6991 - Common YANG Data Types"; | reference | |||
| "RFC 6991: Common YANG Data Types"; | ||||
| } | } | |||
| import ietf-interfaces { | import ietf-interfaces { | |||
| prefix "if"; | prefix if; | |||
| reference "RFC 8343 - A YANG Data Model for Interface | reference | |||
| Management (NDMA Version)"; | "RFC 8343: A YANG Data Model for Interface Management"; | |||
| } | } | |||
| import ietf-key-chain { | import ietf-key-chain { | |||
| prefix "key-chain"; | prefix key-chain; | |||
| reference "RFC 8177 - YANG Data Model for Key Chains"; | reference | |||
| "RFC 8177: YANG Data Model for Key Chains"; | ||||
| } | } | |||
| import ietf-routing-types { | import ietf-routing-types { | |||
| prefix "rt-types"; | prefix rt-types; | |||
| reference "RFC 8294 - Common YANG Data Types for the | reference | |||
| Routing Area"; | "RFC 8294: Common YANG Data Types for the Routing Area"; | |||
| } | } | |||
| import iana-routing-types { | import iana-routing-types { | |||
| prefix "iana-rt-types"; | prefix iana-rt-types; | |||
| reference "RFC 8294 - Common YANG Data Types for the | reference | |||
| Routing Area"; | "RFC 8294: Common YANG Data Types for the Routing Area"; | |||
| } | } | |||
| import ietf-bfd-types { | import ietf-bfd-types { | |||
| prefix "bfd-types"; | prefix bfd-types; | |||
| reference "RFC YYYY - YANG Data Model for Bidirectional | reference | |||
| Forwarding Detection (BFD). | "RFC 9314: YANG Data Model for Bidirectional Forwarding | |||
| Detection (BFD)"; | ||||
| number for draft-ietf-bfd-yang."; | ||||
| } | } | |||
| organization | organization | |||
| "IETF LSR Working Group"; | "IETF LSR Working Group"; | |||
| contact | contact | |||
| "WG Web: <https://datatracker.ietf.org/group/lsr/> | "WG Web: <https://datatracker.ietf.org/wg/lsr/> | |||
| WG List: <mailto:lsr@ietf.org> | WG List: <mailto:lsr@ietf.org> | |||
| Editor: Stephane Litkowski | Editor: Stephane Litkowski | |||
| <mailto:slitkows.ietf@gmail.com> | <mailto:slitkows.ietf@gmail.com> | |||
| Author: Derek Yeung | Author: Derek Yeung | |||
| <mailto:derek@arrcus.com> | <mailto:derek@arrcus.com> | |||
| Author: Acee Lindem | Author: Acee Lindem | |||
| <mailto:acee@cisco.com> | <mailto:acee@cisco.com> | |||
| Author: Jeffrey Zhang | Author: Jeffrey Zhang | |||
| <mailto:zzhang@juniper.net> | <mailto:zzhang@juniper.net> | |||
| Author: Ladislav Lhotka | ||||
| <mailto:llhotka@nic.cz>"; | ||||
| Author: Ladislav Lhotka | ||||
| <mailto:ladislav.lhotka@nic.cz>"; | ||||
| description | description | |||
| "This YANG module defines the generic configuration and | "This YANG module defines the generic configuration and | |||
| operational state for the IS-IS protocol common to all | operational states for the IS-IS protocol common to all | |||
| vendor implementations. It is intended that the module | vendor implementations. It is intended that the module | |||
| will be extended by vendors to define vendor-specific | will be extended by vendors to define vendor-specific | |||
| IS-IS configuration parameters and policies, | IS-IS configuration parameters and policies - | |||
| for example, route maps or route policies. | for example, route maps or route policies. | |||
| This YANG model conforms to the Network Management | ||||
| Datastore Architecture (NMDA) as described in RFC 8242. | ||||
| Copyright (c) 2018 IETF Trust and the persons identified as | This YANG data model conforms to the Network Management | |||
| authors of the code. All rights reserved. | Datastore Architecture (NMDA) as described in RFC 8342. | |||
| Redistribution and use in source and binary forms, with or | The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | |||
| without modification, is permitted pursuant to, and subject to | NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', | |||
| the license terms contained in, the Simplified BSD License set | 'MAY', and 'OPTIONAL' in this document are to be interpreted as | |||
| forth in Section 4.c of the IETF Trust's Legal Provisions | described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, | |||
| Relating to IETF Documents | they appear in all capitals, as shown here. | |||
| (https://trustee.ietf.org/license-info). | ||||
| This version of this YANG module is part of RFC XXXX | Copyright (c) 2022 IETF Trust and the persons identified as | |||
| (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself | authors of the code. All rights reserved. | |||
| for full legal notices. | ||||
| The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | Redistribution and use in source and binary forms, with or | |||
| NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', | without modification, is permitted pursuant to, and subject to | |||
| 'MAY', and 'OPTIONAL' in this document are to be interpreted as | the license terms contained in, the Revised BSD License set | |||
| described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, | forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| they appear in all capitals, as shown here. | Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info). | ||||
| This version of this YANG module is part of RFC XXXX; | This version of this YANG module is part of RFC 9130; see the | |||
| see the RFC itself for full legal notices."; | RFC itself for full legal notices."; | |||
| reference | ||||
| "RFC 8342: Network Management Datastore Architecture (NMDA)"; | ||||
| revision 2019-10-15 { | revision 2021-08-31 { | |||
| description | description | |||
| "Initial revision."; | "Initial revision."; | |||
| reference "RFC XXXX"; | reference | |||
| "RFC 9130: YANG Data Model for the IS-IS Protocol"; | ||||
| } | } | |||
| /* Identities */ | /* Identities */ | |||
| identity isis { | identity isis { | |||
| base rt:routing-protocol; | base rt:routing-protocol; | |||
| description "Identity for the IS-IS routing protocol."; | description | |||
| "Identity for the IS-IS routing protocol."; | ||||
| } | } | |||
| identity lsp-log-reason { | identity lsp-log-reason { | |||
| description "Base identity for an LSP change log reason."; | description | |||
| "Base identity for a Link State PDU (LSP) | ||||
| change log reason."; | ||||
| } | } | |||
| identity refresh { | identity refresh { | |||
| base lsp-log-reason; | base lsp-log-reason; | |||
| description | description | |||
| "Identity used when the LSP log reason is | "Identity used when the LSP log reason is that an LSP | |||
| a refresh LSP received."; | refresh was received."; | |||
| } | } | |||
| identity content-change { | identity content-change { | |||
| base lsp-log-reason; | base lsp-log-reason; | |||
| description | description | |||
| "Identity used when the LSP log reason is | "Identity used when the LSP log reason is | |||
| a change in the content of the LSP."; | a change in the contents of the LSP."; | |||
| } | } | |||
| identity frr-protection-method { | identity frr-protection-method { | |||
| description | description | |||
| "Base identity for a Fast Reroute protection method."; | "Base identity for a Fast Reroute protection method."; | |||
| } | } | |||
| identity frr-protection-method-lfa { | identity frr-protection-method-lfa { | |||
| base frr-protection-method; | base frr-protection-method; | |||
| description "Loop Free Alternate as defined in RFC5286."; | description | |||
| "Loop-Free Alternate as defined in RFC 5286."; | ||||
| reference | ||||
| "RFC 5286: Basic Specification for IP Fast Reroute: | ||||
| Loop-Free Alternates"; | ||||
| } | } | |||
| identity frr-protection-method-rlfa { | identity frr-protection-method-rlfa { | |||
| base frr-protection-method; | base frr-protection-method; | |||
| description "Remote Loop Free Alternate as defined in RFC7490."; | description | |||
| "Remote Loop-Free Alternate as defined in RFC 7490."; | ||||
| reference | ||||
| "RFC 7490: Remote Loop-Free Alternate (LFA) | ||||
| Fast Reroute (FRR)"; | ||||
| } | } | |||
| identity frr-protection-method-rsvpte { | identity frr-protection-method-rsvpte { | |||
| base frr-protection-method; | base frr-protection-method; | |||
| description "RSVP-TE as defined in RFC4090."; | description | |||
| "RSVP-TE as defined in RFC 4090."; | ||||
| reference | ||||
| "RFC 4090: Fast Reroute Extensions to RSVP-TE for | ||||
| LSP Tunnels"; | ||||
| } | } | |||
| identity frr-protection-available-type { | identity frr-protection-available-type { | |||
| description "Base identity for Fast Reroute protection types | description | |||
| provided by an alternate path."; | "Base identity for Fast Reroute protection types | |||
| provided by an alternate path."; | ||||
| } | } | |||
| identity frr-protection-available-node-type { | identity frr-protection-available-node-type { | |||
| base frr-protection-available-type; | base frr-protection-available-type; | |||
| description "Node protection is provided by the alternate."; | description | |||
| "Node protection is provided by the alternate."; | ||||
| } | } | |||
| identity frr-protection-available-link-type { | identity frr-protection-available-link-type { | |||
| base frr-protection-available-type; | base frr-protection-available-type; | |||
| description "Link protection is provided by the alternate."; | description | |||
| "Link protection is provided by the alternate."; | ||||
| } | } | |||
| identity frr-protection-available-srlg-type { | identity frr-protection-available-srlg-type { | |||
| base frr-protection-available-type; | base frr-protection-available-type; | |||
| description "SRLG protection is provided by the alternate."; | description | |||
| "Shared Risk Link Group (SRLG) protection is provided by | ||||
| the alternate."; | ||||
| } | } | |||
| identity frr-protection-available-downstream-type { | identity frr-protection-available-downstream-type { | |||
| base frr-protection-available-type; | base frr-protection-available-type; | |||
| description "The alternate is downstream of node in the path."; | description | |||
| "The alternate is downstream of the node in the path."; | ||||
| } | } | |||
| identity frr-protection-available-other-type { | identity frr-protection-available-other-type { | |||
| base frr-protection-available-type; | base frr-protection-available-type; | |||
| description "The level of protection is unknown."; | description | |||
| "The level of protection is unknown."; | ||||
| } | } | |||
| identity frr-alternate-type { | identity frr-alternate-type { | |||
| description "Base identity for IP Fast Reroute alternate type."; | description | |||
| "Base identity for the IP Fast Reroute alternate type."; | ||||
| } | } | |||
| identity frr-alternate-type-equal-cost { | identity frr-alternate-type-equal-cost { | |||
| base frr-alternate-type; | base frr-alternate-type; | |||
| description "ECMP alternate."; | description | |||
| "ECMP-based alternate."; | ||||
| } | } | |||
| identity frr-alternate-type-lfa { | identity frr-alternate-type-lfa { | |||
| base frr-alternate-type; | base frr-alternate-type; | |||
| description "LFA alternate."; | description | |||
| "LFA-based alternate."; | ||||
| } | } | |||
| identity frr-alternate-type-remote-lfa { | identity frr-alternate-type-remote-lfa { | |||
| base frr-alternate-type; | base frr-alternate-type; | |||
| description "Remote LFA alternate."; | description | |||
| "Remote-LFA-based alternate."; | ||||
| } | } | |||
| identity frr-alternate-type-tunnel { | identity frr-alternate-type-tunnel { | |||
| base frr-alternate-type; | base frr-alternate-type; | |||
| description "Tunnel based alternate (such as, | description | |||
| RSVP-TE or GRE)."; | "Tunnel-based alternate (such as RSVP-TE or GRE)."; | |||
| } | } | |||
| identity frr-alternate-mrt { | identity frr-alternate-mrt { | |||
| base frr-alternate-type; | base frr-alternate-type; | |||
| description "MRT alternate."; | description | |||
| "MRT-based alternate."; | ||||
| } | } | |||
| identity frr-alternate-tilfa { | identity frr-alternate-tilfa { | |||
| base frr-alternate-type; | base frr-alternate-type; | |||
| description "TILFA alternate."; | description | |||
| "TI-LFA-based alternate."; | ||||
| } | } | |||
| identity frr-alternate-other { | identity frr-alternate-other { | |||
| base frr-alternate-type; | base frr-alternate-type; | |||
| description "Other alternate."; | description | |||
| "Other type of alternate."; | ||||
| } | } | |||
| identity unidirectional-link-delay-subtlv-flag { | identity unidirectional-link-delay-subtlv-flag { | |||
| description "Base identity for unidirectional-link-delay | description | |||
| subTLV flags. Flags are defined in RFC8570."; | "Base identity for the flag corresponding to the | |||
| Unidirectional Link Delay sub-TLV as defined in RFC 8570."; | ||||
| reference | ||||
| "RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; | ||||
| } | } | |||
| identity unidirectional-link-delay-subtlv-a-flag { | identity unidirectional-link-delay-subtlv-a-flag { | |||
| base unidirectional-link-delay-subtlv-flag; | base unidirectional-link-delay-subtlv-flag; | |||
| description | description | |||
| "The A bit represents the Anomalous (A) bit. | "The 'A' bit field represents the Anomalous (A) bit. | |||
| The A bit is set when the measured value of | The A bit is set when the measured value of | |||
| this parameter exceeds its configured | this parameter exceeds its configured | |||
| maximum threshold. | maximum threshold. | |||
| The A bit is cleared when the measured value | The A bit is cleared when the measured value | |||
| falls below its configured reuse threshold. | falls below its configured reuse threshold. | |||
| If the A bit is clear, | If the A bit is clear, | |||
| the value represents steady-state link performance."; | the value represents steady-state link performance."; | |||
| } | } | |||
| identity min-max-unidirectional-link-delay-subtlv-flag { | identity min-max-unidirectional-link-delay-subtlv-flag { | |||
| description | description | |||
| "Base identity for min-max-unidirectional-link-delay | "Base identity for the flag corresponding to the Min/Max | |||
| subTLV flags. Flags are defined in RFC8570."; | Unidirectional Link Delay sub-TLV as defined in RFC 8570."; | |||
| reference | ||||
| "RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; | ||||
| } | } | |||
| identity min-max-unidirectional-link-delay-subtlv-a-flag { | identity min-max-unidirectional-link-delay-subtlv-a-flag { | |||
| base min-max-unidirectional-link-delay-subtlv-flag; | base min-max-unidirectional-link-delay-subtlv-flag; | |||
| description | description | |||
| "The A bit represents the Anomalous (A) bit. | "The 'A' bit field represents the Anomalous (A) bit. | |||
| The A bit is set when the measured value of | The A bit is set when the measured value of | |||
| this parameter exceeds its configured | this parameter exceeds its configured | |||
| maximum threshold. | maximum threshold. | |||
| The A bit is cleared when the measured value | The A bit is cleared when the measured value | |||
| falls below its configured reuse threshold. | falls below its configured reuse threshold. | |||
| If the A bit is clear, | If the A bit is clear, | |||
| the value represents steady-state link performance."; | the value represents steady-state link performance."; | |||
| } | } | |||
| identity unidirectional-link-loss-subtlv-flag { | identity unidirectional-link-loss-subtlv-flag { | |||
| description "Base identity for unidirectional-link-loss | description | |||
| subTLV flags. Flags are defined in RFC8570."; | "Base identity for the flag corresponding to the | |||
| Unidirectional Link Loss sub-TLV as defined in RFC 8570."; | ||||
| reference | ||||
| "RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; | ||||
| } | } | |||
| identity unidirectional-link-loss-subtlv-a-flag { | identity unidirectional-link-loss-subtlv-a-flag { | |||
| base unidirectional-link-loss-subtlv-flag; | base unidirectional-link-loss-subtlv-flag; | |||
| description | description | |||
| "The A bit represents the Anomalous (A) bit. | "The 'A' bit field represents the Anomalous (A) bit. | |||
| The A bit is set when the measured value of | The A bit is set when the measured value of | |||
| this parameter exceeds its configured | this parameter exceeds its configured | |||
| maximum threshold. | maximum threshold. | |||
| The A bit is cleared when the measured value | The A bit is cleared when the measured value | |||
| falls below its configured reuse threshold. | falls below its configured reuse threshold. | |||
| If the A bit is clear, | If the A bit is clear, | |||
| the value represents steady-state link performance."; | the value represents steady-state link performance."; | |||
| } | } | |||
| identity tlv229-flag { | identity tlv229-flag { | |||
| description "Base identity for TLV229 flags. Flags are defined | description | |||
| in RFC5120."; | "Base identity for the flag corresponding to TLV 229 | |||
| (M-Topologies) as defined in RFC 5120."; | ||||
| reference | ||||
| "RFC 5120: M-ISIS: Multi Topology (MT) Routing in | ||||
| Intermediate System to Intermediate Systems (IS-ISs)"; | ||||
| } | } | |||
| identity tlv229-overload-flag { | identity tlv229-overload-flag { | |||
| base tlv229-flag; | base tlv229-flag; | |||
| description | description | |||
| "If set, the originator is overloaded, | "If set, the originator is overloaded | |||
| and must be avoided in path calculation."; | and must be avoided in the path calculation."; | |||
| } | } | |||
| identity tlv229-attached-flag { | identity tlv229-attached-flag { | |||
| base tlv229-flag; | base tlv229-flag; | |||
| description | description | |||
| "If set, the originator is attached to | "If set, the originator is attached to | |||
| another area using the referred metric."; | another area using the referred metric."; | |||
| } | } | |||
| identity router-capability-flag { | identity router-capability-flag { | |||
| description "Base identity for router capability flags. | description | |||
| Flags are defined in RFC7981."; | "Base identity for the flag corresponding to the | |||
| Router Capability TLV as defined in RFC 7981."; | ||||
| reference | ||||
| "RFC 7981: IS-IS Extensions for Advertising Router | ||||
| Information"; | ||||
| } | } | |||
| identity router-capability-flooding-flag { | identity router-capability-flooding-flag { | |||
| base router-capability-flag; | base router-capability-flag; | |||
| description | description | |||
| "Quote from RFC7981: 'If the S bit is set, | "Quote from RFC 7981: | |||
| the IS-IS Router CAPABILITY | 'If the S bit is set(1), the IS-IS Router CAPABILITY TLV | |||
| TLV MUST be flooded across the entire routing | MUST be flooded across the entire routing domain. If the | |||
| domain. If the S bit is clear, the TLV MUST NOT | S bit is not set(0), the TLV MUST NOT be leaked between | |||
| be leaked between levels. This bit MUST NOT | levels. This bit MUST NOT be altered during the TLV | |||
| be altered during the TLV leaking'."; | leaking.'"; | |||
| } | } | |||
| identity router-capability-down-flag { | identity router-capability-down-flag { | |||
| base router-capability-flag; | base router-capability-flag; | |||
| description | description | |||
| "Quote from RFC7981: 'When the IS-IS Router CAPABILITY TLV | "Quote from RFC 7981: | |||
| is leaked from level-2 to level-1, the D bit MUST be set. | 'When the IS-IS Router CAPABILITY TLV is leaked from | |||
| Otherwise, this bit MUST be clear. IS-IS Router | Level 2 (L2) to Level 1 (L1), the D bit MUST be set. | |||
| capability TLVs with the D bit set MUST NOT be | Otherwise, this bit MUST be clear. IS-IS Router | |||
| leaked from level-1 to level-2 in to prevent | CAPABILITY TLVs with the D bit set MUST NOT be leaked from | |||
| TLV looping'."; | Level 1 to Level 2. This is to prevent TLV looping.'"; | |||
| } | } | |||
| identity lsp-flag { | identity lsp-flag { | |||
| description "Base identity for LSP attributes. | description | |||
| Attributes are defined in ISO 10589"; | "Base identity for LSP attributes as defined in ISO 10589."; | |||
| reference | ||||
| "ISO 10589: Intermediate System to Intermediate System | ||||
| intra-domain routeing information exchange protocol | ||||
| for use in conjunction with the protocol for providing | ||||
| the connectionless-mode network service (ISO 8473)"; | ||||
| } | } | |||
| identity lsp-partitioned-flag { | identity lsp-partitioned-flag { | |||
| base lsp-flag; | base lsp-flag; | |||
| description "Originator partition repair supported"; | description | |||
| "Originator partition repair supported."; | ||||
| } | } | |||
| identity lsp-attached-error-metric-flag { | identity lsp-attached-error-metric-flag { | |||
| base lsp-flag; | base lsp-flag; | |||
| description "Set when originator is attached to | description | |||
| another area using the error metric."; | "Set when the originator is attached to | |||
| another area using the error metric."; | ||||
| } | } | |||
| identity lsp-attached-delay-metric-flag { | identity lsp-attached-delay-metric-flag { | |||
| base lsp-flag; | base lsp-flag; | |||
| description "Set when originator is attached to | description | |||
| another area using the delay metric."; | "Set when the originator is attached to | |||
| another area using the delay metric."; | ||||
| } | } | |||
| identity lsp-attached-expense-metric-flag { | identity lsp-attached-expense-metric-flag { | |||
| base lsp-flag; | base lsp-flag; | |||
| description "Set when originator is attached to | description | |||
| another area using the expense metric."; | "Set when the originator is attached to | |||
| another area using the expense metric."; | ||||
| } | } | |||
| identity lsp-attached-default-metric-flag { | identity lsp-attached-default-metric-flag { | |||
| base lsp-flag; | base lsp-flag; | |||
| description "Set when originator is attached to | description | |||
| another area using the default metric."; | "Set when the originator is attached to | |||
| another area using the default metric."; | ||||
| } | } | |||
| identity lsp-overload-flag { | identity lsp-overload-flag { | |||
| base lsp-flag; | base lsp-flag; | |||
| description | description | |||
| "If set, the originator is overloaded, | "If set, the originator is overloaded | |||
| and must be avoided in path calculation."; | and must be avoided in the path calculation."; | |||
| } | } | |||
| identity lsp-l1system-flag { | ||||
| base lsp-flag; | identity lsp-l1-system-flag { | |||
| description | base lsp-flag; | |||
| "Set when the Intermediate System has an L1 type."; | description | |||
| "Set when the Intermediate System has an L1 type."; | ||||
| } | } | |||
| identity lsp-l2system-flag { | ||||
| base lsp-flag; | identity lsp-l2-system-flag { | |||
| description | base lsp-flag; | |||
| "Set when the Intermediate System has an L2 type."; | description | |||
| "Set when the Intermediate System has an L2 type."; | ||||
| } | } | |||
| /* Feature definitions */ | /* Feature definitions */ | |||
| feature osi-interface { | feature osi-interface { | |||
| description "Support of OSI specific parameters on an | description | |||
| interface."; | "Support of OSI-specific parameters on an interface."; | |||
| } | } | |||
| feature poi-tlv { | feature poi-tlv { | |||
| description "Support of Purge Originator Identification."; | description | |||
| reference "RFC 6232 - Purge Originator Identification TLV | "Support of the Purge Originator Identification (POI) TLV."; | |||
| for IS-IS"; | reference | |||
| "RFC 6232: Purge Originator Identification TLV for IS-IS"; | ||||
| } | } | |||
| feature ietf-spf-delay { | feature ietf-spf-delay { | |||
| description | description | |||
| "Support for IETF SPF delay algorithm."; | "Support for the IETF SPF delay algorithm."; | |||
| reference "RFC 8405 - SPF Back-off algorithm for link | reference | |||
| state IGPs"; | "RFC 8405: Shortest Path First (SPF) Back-Off Delay Algorithm | |||
| for Link-State IGPs"; | ||||
| } | } | |||
| feature bfd { | feature bfd { | |||
| description | description | |||
| "Support for BFD detection of IS-IS neighbor reachability."; | "Support for detection of IS-IS neighbor reachability | |||
| reference "RFC 5880 - Bidirectional Forwarding Detection (BFD) | via BFD."; | |||
| RFC 5881 - Bidirectional Forwarding Detection | reference | |||
| (BFD) for IPv4 and IPv6 (Single Hop)"; | "RFC 5880: Bidirectional Forwarding Detection (BFD) | |||
| RFC 5881: Bidirectional Forwarding Detection (BFD) | ||||
| for IPv4 and IPv6 (Single Hop)"; | ||||
| } | } | |||
| feature key-chain { | feature key-chain { | |||
| description | description | |||
| "Support of keychain for authentication."; | "Support of key chains for authentication."; | |||
| reference "RFC8177 - YANG Data Model for Key Chains"; | reference | |||
| "RFC 8177: YANG Data Model for Key Chains"; | ||||
| } | } | |||
| feature node-flag { | feature node-flag { | |||
| description | description | |||
| "Support for node-flag for IS-IS prefixes."; | "Support for node flags for IS-IS prefixes."; | |||
| reference "RFC7794 - IS-IS Prefix Attributes for | reference | |||
| Extended IP and IPv6 Reachability"; | "RFC 7794: IS-IS Prefix Attributes for Extended IPv4 and IPv6 | |||
| Reachability"; | ||||
| } | } | |||
| feature node-tag { | feature node-tag { | |||
| description | description | |||
| "Support for node admin tag for IS-IS routing instances."; | "Support for node administrative tags for IS-IS | |||
| reference "RFC7917 - Advertising Node Administrative Tags | routing instances."; | |||
| in IS-IS"; | reference | |||
| "RFC 7917: Advertising Node Administrative Tags in IS-IS"; | ||||
| } | } | |||
| feature ldp-igp-sync { | feature ldp-igp-sync { | |||
| description | description | |||
| "Support for LDP IGP synchronization."; | "Support for LDP IGP synchronization."; | |||
| reference "RFC5443 - LDP IGP Synchronization."; | reference | |||
| "RFC 5443: LDP IGP Synchronization"; | ||||
| } | } | |||
| feature fast-reroute { | feature fast-reroute { | |||
| description | description | |||
| "Support for IP Fast Reroute (IP-FRR)."; | "Support for IP Fast Reroute (IP FRR)."; | |||
| } | } | |||
| feature nsr { | feature nsr { | |||
| description | description | |||
| "Support for Non-Stop-Routing (NSR). The IS-IS NSR feature | "Support for Non-Stop-Routing (NSR). The IS-IS NSR feature | |||
| allows a router with redundant control-plane capability | allows a router with redundant control-plane capability | |||
| (e.g., dual Route-Processor (RP) cards) to maintain its | (e.g., dual Route Processor (RP) cards) to maintain its | |||
| state and adjacencies during planned and unplanned | state and adjacencies during planned and unplanned | |||
| IS-IS instance restarts. It differs from graceful-restart | IS-IS instance restarts. It differs from graceful restart | |||
| or Non-Stop Forwarding (NSF) in that no protocol signaling | or Non-Stop Forwarding (NSF) in that no protocol signaling | |||
| or assistance from adjacent IS-IS neighbors is required to | or assistance from adjacent IS-IS neighbors is required to | |||
| recover control-plane state."; | recover control-plane state."; | |||
| } | } | |||
| feature lfa { | feature lfa { | |||
| description | description | |||
| "Support for Loop-Free Alternates (LFAs)."; | "Support for Loop-Free Alternates (LFAs)."; | |||
| reference "RFC5286 - Basic Specification of IP Fast-Reroute: | reference | |||
| Loop-free Alternates"; | "RFC 5286: Basic Specification for IP Fast Reroute: | |||
| Loop-Free Alternates"; | ||||
| } | } | |||
| feature remote-lfa { | feature remote-lfa { | |||
| description | description | |||
| "Support for Remote Loop-Free Alternates (R-LFAs)."; | "Support for remote LFAs (R-LFAs)."; | |||
| reference "RFC7490 - Remote Loop-Free Alternate Fast Reroute"; | reference | |||
| "RFC 7490: Remote Loop-Free Alternate (LFA) | ||||
| Fast Reroute (FRR)"; | ||||
| } | } | |||
| feature overload-max-metric { | feature overload-max-metric { | |||
| description | description | |||
| "Support of overload by setting all links to max metric. | "Support of overload by setting all links to the maximum | |||
| In IS-IS, the overload bit is usually used to signal that | link metric. In IS-IS, the overload bit is usually used to | |||
| a node cannot be used as a transit. The overload-max-metric | signal that a node cannot be used as a transit node. The | |||
| feature brings a similar behavior leveraging on setting all | 'overload-max-metric' feature provides similar behavior, | |||
| the link metrics to MAX_METRIC."; | also setting all the link metrics to MAX_METRIC."; | |||
| } | } | |||
| feature prefix-tag { | feature prefix-tag { | |||
| description | description | |||
| "Support for 32-bit prefix tags"; | "Support for 32-bit prefix tags."; | |||
| reference "RFC5130 - A Policy Control Mechanism in | reference | |||
| IS-IS Using Administrative Tags"; | "RFC 5130: A Policy Control Mechanism in IS-IS Using | |||
| Administrative Tags"; | ||||
| } | } | |||
| feature prefix-tag64 { | feature prefix-tag64 { | |||
| description | description | |||
| "Support for 64-bit prefix tags"; | "Support for 64-bit prefix tags."; | |||
| reference "RFC5130 - A Policy Control Mechanism in | reference | |||
| IS-IS Using Administrative Tags"; | "RFC 5130: A Policy Control Mechanism in IS-IS Using | |||
| Administrative Tags"; | ||||
| } | } | |||
| feature auto-cost { | feature auto-cost { | |||
| description | description | |||
| "Support for IS-IS interface metric computation | "Support for an IS-IS interface metric computation | |||
| according to a reference bandwidth."; | according to a reference bandwidth."; | |||
| } | } | |||
| feature te-rid { | feature te-rid { | |||
| description | description | |||
| "Traffic-Engineering Router-ID."; | "Traffic Engineering router ID."; | |||
| reference "RFC5305 - IS-IS Extensions for Traffic Engineering | reference | |||
| RFC6119 - IPv6 Traffic Engineering in IS-IS"; | "RFC 5305: IS-IS Extensions for Traffic Engineering | |||
| RFC 6119: IPv6 Traffic Engineering in IS-IS"; | ||||
| } | } | |||
| feature max-ecmp { | feature max-ecmp { | |||
| description | description | |||
| "Setting maximum number of ECMP paths."; | "Sets the maximum number of ECMP paths."; | |||
| } | } | |||
| feature multi-topology { | feature multi-topology { | |||
| description | description | |||
| "Support for Multiple-Topology Routing (MTR)."; | "Support for Multi-Topology (MT) Routing."; | |||
| reference "RFC5120 - M-IS-IS: Multi Topology Routing in IS-IS"; | reference | |||
| "RFC 5120: M-ISIS: Multi Topology (MT) Routing in | ||||
| Intermediate System to Intermediate Systems (IS-ISs)"; | ||||
| } | } | |||
| feature nlpid-control { | feature nlpid-control { | |||
| description | description | |||
| "Support for the advertisement | "Support for the advertisement of a Network Layer | |||
| of a Network Layer Protocol Identifier within IS-IS | Protocol Identifier within an IS-IS configuration."; | |||
| configuration."; | ||||
| } | } | |||
| feature graceful-restart { | feature graceful-restart { | |||
| description | description | |||
| "IS-IS Graceful restart support."; | "Support for IS-IS graceful restart."; | |||
| reference "RFC5306 - Restart Signaling in IS-IS"; | reference | |||
| "RFC 8706: Restart Signaling for IS-IS"; | ||||
| } | } | |||
| feature lsp-refresh { | feature lsp-refresh { | |||
| description | description | |||
| "Configuration of LSP refresh interval."; | "Configuration of the LSP refresh interval."; | |||
| } | } | |||
| feature maximum-area-addresses { | feature maximum-area-addresses { | |||
| description | description | |||
| "Support for maximum-area-addresses configuration."; | "Support for 'maximum-area-addresses' configuration."; | |||
| } | } | |||
| feature admin-control { | feature admin-control { | |||
| description | description | |||
| "Administrative control of the protocol state."; | "Administrative control of the protocol state."; | |||
| } | } | |||
| /* Type definitions */ | /* Type definitions */ | |||
| typedef circuit-id { | typedef circuit-id { | |||
| skipping to change at line 1534 ¶ | skipping to change at line 1585 ¶ | |||
| "Broadcast interface type."; | "Broadcast interface type."; | |||
| } | } | |||
| enum point-to-point { | enum point-to-point { | |||
| description | description | |||
| "Point-to-point interface type."; | "Point-to-point interface type."; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "This type defines the type of adjacency | "This type defines the type of adjacency | |||
| to be established for the interface. | to be established for the interface. | |||
| The interface-type determines the type | 'interface-type' determines the type | |||
| of hello message that is used."; | of Hello message that is used."; | |||
| } | } | |||
| typedef level { | typedef level { | |||
| type enumeration { | type enumeration { | |||
| enum "level-1" { | enum level-1 { | |||
| description | description | |||
| "This enum indicates L1-only capability."; | "This enum indicates L1-only capability."; | |||
| } | } | |||
| enum "level-2" { | enum level-2 { | |||
| description | description | |||
| "This enum indicates L2-only capability."; | "This enum indicates L2-only capability."; | |||
| } | } | |||
| enum "level-all" { | enum level-all { | |||
| description | description | |||
| "This enum indicates capability for both levels."; | "This enum indicates capability for both levels."; | |||
| } | } | |||
| } | } | |||
| default "level-all"; | default "level-all"; | |||
| description | description | |||
| "This type defines IS-IS level of an object."; | "This type defines the IS-IS level of an object."; | |||
| } | } | |||
| typedef adj-state-type { | typedef adj-state-type { | |||
| type enumeration { | type enumeration { | |||
| enum "up" { | enum up { | |||
| description | description | |||
| "State indicates the adjacency is established."; | "This state indicates that the adjacency is established."; | |||
| } | } | |||
| enum "down" { | enum down { | |||
| description | description | |||
| "State indicates the adjacency is NOT established."; | "This state indicates that the adjacency is | |||
| NOT established."; | ||||
| } | } | |||
| enum "init" { | enum init { | |||
| description | description | |||
| "State indicates the adjacency is establishing."; | "This state indicates that the adjacency is being | |||
| established."; | ||||
| } | } | |||
| enum "failed" { | enum failed { | |||
| description | description | |||
| "State indicates the adjacency is failed."; | "This state indicates that the adjacency has failed."; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "This type defines states of an adjacency"; | "This type defines the states of an adjacency."; | |||
| } | } | |||
| typedef if-state-type { | typedef if-state-type { | |||
| type enumeration { | type enumeration { | |||
| enum "up" { | enum up { | |||
| description "Up state."; | description | |||
| "'up' state."; | ||||
| } | } | |||
| enum "down" { | enum down { | |||
| description "Down state"; | description | |||
| "'down' state."; | ||||
| } | } | |||
| } | } | |||
| description | description | |||
| "This type defines the state of an interface"; | "This type defines the state of an interface."; | |||
| } | } | |||
| typedef level-number { | typedef level-number { | |||
| type uint8 { | type uint8 { | |||
| range "1 .. 2"; | range "1 .. 2"; | |||
| } | } | |||
| description | description | |||
| "This type defines the current IS-IS level."; | "This type defines the current IS-IS level."; | |||
| } | } | |||
| typedef lsp-id { | typedef lsp-id { | |||
| type string { | type string { | |||
| pattern | pattern '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]' | |||
| '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]' | + '{4}\.[0-9][0-9]-[0-9][0-9]'; | |||
| +'{4}\.[0-9][0-9]-[0-9][0-9]'; | ||||
| } | } | |||
| description | description | |||
| "This type defines the IS-IS LSP ID format using a | "This type defines the IS-IS LSP ID format using a | |||
| pattern. An example LSP ID is 0143.0438.AEF0.02-01"; | pattern. An example LSP ID is '0143.0438.AEF0.02-01'."; | |||
| } | } | |||
| typedef area-address { | typedef area-address { | |||
| type string { | type string { | |||
| pattern '[0-9A-Fa-f]{2}(\.[0-9A-Fa-f]{4}){0,6}'; | pattern '[0-9A-Fa-f]{2}(\.[0-9A-Fa-f]{4}){0,6}'; | |||
| } | } | |||
| description | description | |||
| "This type defines the area address format."; | "This type defines the area address format."; | |||
| } | } | |||
| typedef snpa { | typedef snpa { | |||
| type string { | type string { | |||
| length "0 .. 20"; | length "0 .. 20"; | |||
| } | } | |||
| description | description | |||
| "This type defines the Subnetwork Point | "This type defines the Subnetwork Point of Attachment (SNPA) | |||
| of Attachment (SNPA) format. | format. The SNPA should be encoded according to the rules | |||
| The SNPA should be encoded according to the rules | specified for the particular type of subnetwork being used. | |||
| specified for the particular type of subnetwork | As an example, for an Ethernet subnetwork, the SNPA is | |||
| being used. As an example, for an ethernet subnetwork, | encoded as a Media Access Control (MAC) address, such as | |||
| the SNPA is encoded as a MAC address, such as, | ||||
| '00aa.bbcc.ddee'."; | '00aa.bbcc.ddee'."; | |||
| } | } | |||
| typedef system-id { | typedef system-id { | |||
| type string { | type string { | |||
| pattern | pattern '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}'; | |||
| '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}'; | ||||
| } | } | |||
| description | description | |||
| "This type defines IS-IS system-id using pattern, | "This type defines the IS-IS system ID by using a pattern. | |||
| An example system-id is 0143.0438.AEF0"; | An example system ID is '0143.0438.AEF0'."; | |||
| } | } | |||
| typedef extended-system-id { | typedef extended-system-id { | |||
| type string { | type string { | |||
| pattern | pattern '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.' | |||
| '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.' | + '[0-9][0-9]'; | |||
| +'[0-9][0-9]'; | ||||
| } | } | |||
| description | description | |||
| "This type defines IS-IS system-id using pattern. The extended | "This type defines the IS-IS system ID using a pattern. | |||
| system-id contains the pseudonode number in addition to the | 'extended-system-id' contains the pseudonode number | |||
| system-id. | in addition to the system ID. | |||
| An example system-id is 0143.0438.AEF0.00"; | An example extended system ID is '0143.0438.AEF0.00'."; | |||
| } | } | |||
| typedef wide-metric { | typedef wide-metric { | |||
| type uint32 { | type uint32 { | |||
| range "0 .. 16777215"; | range "0 .. 16777215"; | |||
| } | } | |||
| description | description | |||
| "This type defines wide style format of IS-IS metric."; | "This type defines the wide-style format of an IS-IS metric."; | |||
| } | } | |||
| typedef std-metric { | typedef std-metric { | |||
| type uint8 { | type uint8 { | |||
| range "0 .. 63"; | range "0 .. 63"; | |||
| } | } | |||
| description | description | |||
| "This type defines old style format of IS-IS metric."; | "This type defines the old-style format of the IS-IS metric."; | |||
| } | } | |||
| typedef mesh-group-state { | typedef mesh-group-state { | |||
| type enumeration { | type enumeration { | |||
| enum "mesh-inactive" { | enum mesh-inactive { | |||
| description | description | |||
| "Interface is not part of a mesh group."; | "The interface is not part of a mesh group."; | |||
| } | } | |||
| enum "mesh-set" { | enum mesh-set { | |||
| description | description | |||
| "Interface is part of a mesh group."; | "The interface is part of a mesh group."; | |||
| } | } | |||
| enum "mesh-blocked" { | enum mesh-blocked { | |||
| description | description | |||
| "LSPs must not be flooded over this interface."; | "LSPs must not be flooded over this interface."; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "This type describes mesh group state of an interface"; | "This type describes the mesh group state of an interface."; | |||
| } | } | |||
| /* Grouping for notifications */ | /* Grouping for notifications */ | |||
| grouping notification-instance-hdr { | grouping notification-instance-hdr { | |||
| description | description | |||
| "Instance specific IS-IS notification data grouping"; | "Instance-specific IS-IS notification data grouping."; | |||
| leaf routing-protocol-name { | leaf routing-protocol-name { | |||
| type leafref { | type leafref { | |||
| path "/rt:routing/rt:control-plane-protocols/" | path "/rt:routing/rt:control-plane-protocols/" | |||
| + "rt:control-plane-protocol/rt:name"; | + "rt:control-plane-protocol/rt:name"; | |||
| } | } | |||
| description "Name of the IS-IS instance."; | description | |||
| "Name of the IS-IS instance."; | ||||
| } | } | |||
| leaf isis-level { | leaf isis-level { | |||
| type level; | type level; | |||
| description "IS-IS level of the instance."; | description | |||
| "IS-IS level of the instance."; | ||||
| } | } | |||
| } | } | |||
| grouping notification-interface-hdr { | grouping notification-interface-hdr { | |||
| description | description | |||
| "Interface specific IS-IS notification data grouping"; | "Interface-specific IS-IS notification data grouping."; | |||
| leaf interface-name { | leaf interface-name { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| description "IS-IS interface name"; | description | |||
| "IS-IS interface name."; | ||||
| } | } | |||
| leaf interface-level { | leaf interface-level { | |||
| type level; | type level; | |||
| description "IS-IS level of the interface."; | description | |||
| "IS-IS level of the interface."; | ||||
| } | } | |||
| leaf extended-circuit-id { | leaf extended-circuit-id { | |||
| type extended-circuit-id; | type extended-circuit-id; | |||
| description "Extended circuit-id of the interface."; | description | |||
| "Extended circuit ID of the interface."; | ||||
| } | } | |||
| } | } | |||
| /* Groupings for IP Fast Reroute */ | /* Groupings for IP Fast Reroute */ | |||
| grouping instance-fast-reroute-config { | grouping instance-fast-reroute-config { | |||
| description | description | |||
| "This group defines global configuration of IP | "This group defines the global configuration of IP | |||
| Fast ReRoute (FRR)."; | Fast Reroute (FRR)."; | |||
| container fast-reroute { | container fast-reroute { | |||
| if-feature fast-reroute; | if-feature "fast-reroute"; | |||
| description | description | |||
| "This container may be augmented with global | "This container may be augmented with global | |||
| parameters for IP-FRR."; | parameters for IP FRR."; | |||
| container lfa { | container lfa { | |||
| if-feature lfa; | if-feature "lfa"; | |||
| description | description | |||
| "This container may be augmented with | "This container may be augmented with | |||
| global parameters for Loop-Free Alternatives (LFA). | global parameters for Loop-Free Alternates (LFAs). | |||
| Container creation has no effect on LFA activation."; | The creation of this container has no effect on | |||
| LFA activation."; | ||||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping interface-lfa-config { | grouping interface-lfa-config { | |||
| leaf candidate-enable { | leaf candidate-enabled { | |||
| type boolean; | type boolean; | |||
| default "true"; | default "true"; | |||
| description | description | |||
| "Enable the interface to be used as backup."; | "Enables the interface to be used as a backup."; | |||
| } | } | |||
| leaf enable { | leaf enabled { | |||
| type boolean; | type boolean; | |||
| default false; | default "false"; | |||
| description | description | |||
| "Activates LFA - Per-prefix LFA computation | "Activates the LFA. Per-prefix LFA computation is assumed."; | |||
| is assumed."; | ||||
| } | } | |||
| container remote-lfa { | container remote-lfa { | |||
| if-feature remote-lfa; | if-feature "remote-lfa"; | |||
| leaf enable { | leaf enabled { | |||
| type boolean; | type boolean; | |||
| default false; | default "false"; | |||
| description | description | |||
| "Activates Remote LFA (R-LFA)."; | "Activates the remote LFA (R-LFA)."; | |||
| } | } | |||
| description | description | |||
| "Remote LFA configuration."; | "Remote LFA configuration."; | |||
| } | } | |||
| description "Grouping for LFA interface configuration"; | description | |||
| "Grouping for LFA interface configuration."; | ||||
| } | } | |||
| grouping interface-fast-reroute-config { | grouping interface-fast-reroute-config { | |||
| description | description | |||
| "This group defines interface configuration of IP-FRR."; | "This group defines the interface configuration of IP FRR."; | |||
| container fast-reroute { | container fast-reroute { | |||
| if-feature fast-reroute; | if-feature "fast-reroute"; | |||
| container lfa { | container lfa { | |||
| if-feature lfa; | if-feature "lfa"; | |||
| uses interface-lfa-config; | uses interface-lfa-config; | |||
| container level-1 { | container level-1 { | |||
| uses interface-lfa-config; | uses interface-lfa-config; | |||
| description | description | |||
| "LFA level 1 config"; | "LFA level-1 configuration."; | |||
| } | } | |||
| container level-2 { | container level-2 { | |||
| uses interface-lfa-config; | uses interface-lfa-config; | |||
| description | description | |||
| "LFA level 2 config"; | "LFA level-2 configuration."; | |||
| } | } | |||
| description | description | |||
| "LFA configuration."; | "LFA configuration."; | |||
| } | } | |||
| description | description | |||
| "Interface IP Fast-reroute configuration."; | "Interface IP FRR configuration."; | |||
| } | } | |||
| } | } | |||
| grouping instance-fast-reroute-state { | grouping instance-fast-reroute-state { | |||
| description "IPFRR state data grouping"; | description | |||
| "IP FRR state data grouping."; | ||||
| container protected-routes { | container protected-routes { | |||
| config false; | config false; | |||
| list address-family-stats { | list address-family-stats { | |||
| key "address-family prefix alternate"; | key "address-family prefix alternate"; | |||
| leaf address-family { | leaf address-family { | |||
| type iana-rt-types:address-family; | type iana-rt-types:address-family; | |||
| description | description | |||
| "Address-family"; | "Address family."; | |||
| } | } | |||
| leaf prefix { | leaf prefix { | |||
| type inet:ip-prefix; | type inet:ip-prefix; | |||
| description | description | |||
| "Protected prefix."; | "Protected prefix."; | |||
| } | } | |||
| leaf alternate { | leaf alternate { | |||
| type inet:ip-address; | type inet:ip-address; | |||
| description | description | |||
| "Alternate next hop for the prefix."; | "Alternate next hop for the prefix."; | |||
| } | } | |||
| leaf alternate-type { | leaf alternate-type { | |||
| type identityref { | type identityref { | |||
| base frr-alternate-type; | base frr-alternate-type; | |||
| } | } | |||
| description | description | |||
| "Type of alternate."; | "Type of alternate."; | |||
| } | } | |||
| leaf best { | leaf best { | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "Is set when the alternate is the preferred one, | "Set when the alternate is the preferred alternate; | |||
| is clear otherwise."; | clear otherwise."; | |||
| } | } | |||
| leaf non-best-reason { | leaf non-best-reason { | |||
| type string { | type string { | |||
| length "1..255"; | length "1..255"; | |||
| } | } | |||
| description | description | |||
| "Information field to describe why the alternate | "Information field that explains why the alternate | |||
| is not best. The length should be limited to 255 | is not the best alternate. The length should be | |||
| unicode characters. The expected format is a single | limited to 255 Unicode characters. The expected format | |||
| line text."; | is a single line of text."; | |||
| } | } | |||
| container protection-available { | container protection-available { | |||
| leaf-list protection-types { | leaf-list protection-types { | |||
| type identityref { | type identityref { | |||
| base frr-protection-available-type; | base frr-protection-available-type; | |||
| } | } | |||
| description "This list contains a set of protection | description | |||
| types defined as identities. | "This list contains a set of protection | |||
| An identity must be added for each type of | types defined as identities. | |||
| protection provided by the alternate. | An identity must be added for each type of | |||
| As an example, if an alternate provides | protection provided by the alternate. | |||
| SRLG, node and link protection, three | As an example, if an alternate provides | |||
| identities must be added in this list: | SRLG, node, and link protection, three | |||
| one for SRLG protection, one for node | identities must be added in this list: | |||
| protection, one for link protection."; | one for SRLG protection, one for node | |||
| protection, and one for link protection."; | ||||
| } | } | |||
| description "Protection types provided by the alternate."; | description | |||
| "Protection types provided by the alternate."; | ||||
| } | } | |||
| leaf alternate-metric1 { | leaf alternate-metric-1 { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Metric from Point of Local Repair (PLR) to | "Metric from the Point of Local Repair (PLR) to the | |||
| destination through the alternate path."; | destination through the alternate path."; | |||
| } | } | |||
| leaf alternate-metric2 { | leaf alternate-metric-2 { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Metric from PLR to the alternate node"; | "Metric from the PLR to the alternate node."; | |||
| } | } | |||
| leaf alternate-metric3 { | leaf alternate-metric-3 { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Metric from alternate node to the destination"; | "Metric from the alternate node to the destination."; | |||
| } | } | |||
| description | description | |||
| "Per-AF protected prefix statistics."; | "Per-address-family protected prefix statistics."; | |||
| } | } | |||
| description | description | |||
| "List of prefixes that are protected."; | "List of prefixes that are protected."; | |||
| } | } | |||
| container unprotected-routes { | container unprotected-routes { | |||
| config false; | config false; | |||
| list prefixes { | list prefixes { | |||
| key "address-family prefix"; | key "address-family prefix"; | |||
| leaf address-family { | leaf address-family { | |||
| type iana-rt-types:address-family; | type iana-rt-types:address-family; | |||
| description | ||||
| description "Address-family"; | "Address family."; | |||
| } | } | |||
| leaf prefix { | leaf prefix { | |||
| type inet:ip-prefix; | type inet:ip-prefix; | |||
| description "Unprotected prefix."; | description | |||
| "Unprotected prefix."; | ||||
| } | } | |||
| description | description | |||
| "Per-AF unprotected prefix statistics."; | "Per-address-family unprotected prefix statistics."; | |||
| } | } | |||
| description | description | |||
| "List of prefixes that are not protected."; | "List of prefixes that are not protected."; | |||
| } | } | |||
| list protection-statistics { | list protection-statistics { | |||
| key frr-protection-method; | key "frr-protection-method"; | |||
| config false; | config false; | |||
| leaf frr-protection-method { | leaf frr-protection-method { | |||
| type identityref { | type identityref { | |||
| base frr-protection-method; | base frr-protection-method; | |||
| } | } | |||
| description "Protection method used."; | description | |||
| "Protection method used."; | ||||
| } | } | |||
| list address-family-stats { | list address-family-stats { | |||
| key address-family; | key "address-family"; | |||
| leaf address-family { | leaf address-family { | |||
| type iana-rt-types:address-family; | type iana-rt-types:address-family; | |||
| description | ||||
| description "Address-family"; | "Address family."; | |||
| } | } | |||
| leaf total-routes { | leaf total-routes { | |||
| type yang:gauge32; | type yang:gauge32; | |||
| description "Total prefixes."; | description | |||
| "Total prefixes."; | ||||
| } | } | |||
| leaf unprotected-routes { | leaf unprotected-routes { | |||
| type yang:gauge32; | type yang:gauge32; | |||
| description | description | |||
| "Total prefixes that are not protected."; | "Total prefixes that are not protected."; | |||
| } | } | |||
| leaf protected-routes { | leaf protected-routes { | |||
| type yang:gauge32; | type yang:gauge32; | |||
| description | description | |||
| "Total prefixes that are protected."; | "Total prefixes that are protected."; | |||
| skipping to change at line 1951 ¶ | skipping to change at line 2009 ¶ | |||
| type yang:gauge32; | type yang:gauge32; | |||
| description | description | |||
| "Total prefixes that are link protected."; | "Total prefixes that are link protected."; | |||
| } | } | |||
| leaf node-protected-routes { | leaf node-protected-routes { | |||
| type yang:gauge32; | type yang:gauge32; | |||
| description | description | |||
| "Total prefixes that are node protected."; | "Total prefixes that are node protected."; | |||
| } | } | |||
| description | description | |||
| "Per-AF protected prefix statistics."; | "Per-address-family protected prefix statistics."; | |||
| } | } | |||
| description | ||||
| description "Global protection statistics."; | "Global protection statistics."; | |||
| } | } | |||
| } | } | |||
| /* Route table and local RIB groupings */ | /* Routing table and local Routing Information Base (RIB) | |||
| groupings */ | ||||
| grouping local-rib { | grouping local-rib { | |||
| description "Local-rib - RIB for Routes computed by the local | description | |||
| IS-IS routing instance."; | "Local RIB: RIB for routes computed by the local IS-IS | |||
| routing instance."; | ||||
| container local-rib { | container local-rib { | |||
| config false; | config false; | |||
| description "Local-rib."; | description | |||
| "Local RIB."; | ||||
| list route { | list route { | |||
| key "prefix"; | key "prefix"; | |||
| description "Routes"; | description | |||
| "Routes."; | ||||
| leaf prefix { | leaf prefix { | |||
| type inet:ip-prefix; | type inet:ip-prefix; | |||
| description "Destination prefix."; | description | |||
| "Destination prefix."; | ||||
| } | } | |||
| container next-hops { | container next-hops { | |||
| description "Next hops for the route."; | description | |||
| "Next hops for the route."; | ||||
| list next-hop { | list next-hop { | |||
| key "next-hop"; | key "next-hop"; | |||
| description "List of next hops for the route"; | description | |||
| "List of next hops for the route."; | ||||
| leaf outgoing-interface { | leaf outgoing-interface { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| description | description | |||
| "Name of the outgoing interface."; | "Name of the outgoing interface."; | |||
| } | } | |||
| leaf next-hop { | leaf next-hop { | |||
| type inet:ip-address; | type inet:ip-address; | |||
| description "Next hop address."; | description | |||
| "Next-hop address."; | ||||
| } | } | |||
| } | } | |||
| } | } | |||
| leaf metric { | leaf metric { | |||
| type uint32; | type uint32; | |||
| description "Metric for this route."; | description | |||
| "Metric for this route."; | ||||
| } | } | |||
| leaf level { | leaf level { | |||
| type level-number; | type level-number; | |||
| description "Level number for this route."; | description | |||
| "Level number for this route."; | ||||
| } | } | |||
| leaf route-tag { | leaf route-tag { | |||
| type uint32; | type uint32; | |||
| description "Route tag for this route."; | description | |||
| "Route tag for this route."; | ||||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping route-content { | grouping route-content { | |||
| description | description | |||
| "IS-IS protocol-specific route properties grouping."; | "IS-IS protocol-specific route properties grouping."; | |||
| leaf metric { | leaf metric { | |||
| type uint32; | type uint32; | |||
| description "IS-IS metric of a route."; | description | |||
| "IS-IS metric of a route."; | ||||
| } | } | |||
| leaf-list tag { | leaf-list tag { | |||
| type uint64; | type uint64; | |||
| description | description | |||
| "List of tags associated with the route. | "List of tags associated with the route. This list | |||
| This list provides a consolidated view of both | provides a consolidated view of both 32-bit and 64-bit | |||
| 32-bit and 64-bit tags (RFC5130) available for the prefix."; | tags (RFC 5130) available for the prefix."; | |||
| reference | ||||
| "RFC 5130: A Policy Control Mechanism in IS-IS Using | ||||
| Administrative Tags"; | ||||
| } | } | |||
| leaf route-type { | leaf route-type { | |||
| type enumeration { | type enumeration { | |||
| enum l2-intra-area { | enum l2-intra-area { | |||
| description "Level 2 internal route. As per RFC5302, | description | |||
| the prefix is directly connected to the | "Level-2 internal route. As per RFC 5302, | |||
| advertising router. It cannot be | the prefix is directly connected to the | |||
| distinguished from an L1->L2 inter-area | advertising router. It cannot be | |||
| route."; | distinguished from an L1->L2 inter-area | |||
| route."; | ||||
| reference | ||||
| "RFC 5302: Domain-Wide Prefix Distribution with | ||||
| Two-Level IS-IS"; | ||||
| } | } | |||
| enum l1-intra-area { | enum l1-intra-area { | |||
| description "Level 1 internal route. As per RFC5302, | description | |||
| the prefix is directly connected to the | "Level-1 internal route. As per RFC 5302, | |||
| advertising router."; | the prefix is directly connected to the | |||
| advertising router."; | ||||
| } | } | |||
| enum l2-external { | enum l2-external { | |||
| description "Level 2 external route. As per RFC5302, | description | |||
| such a route is learned from other IGPs. | "Level-2 external route. As per RFC 5302, | |||
| It cannot be distinguished from an L1->L2 | such a route is learned from other IGPs. | |||
| inter-area external route."; | It cannot be distinguished from an L1->L2 | |||
| inter-area external route."; | ||||
| } | } | |||
| enum l1-external { | enum l1-external { | |||
| description "Level 1 external route. As per RFC5302, | description | |||
| such a route is learned from other IGPs."; | "Level-1 external route. As per RFC 5302, | |||
| such a route is learned from other IGPs."; | ||||
| } | } | |||
| enum l1-inter-area { | enum l1-inter-area { | |||
| description "These prefixes are learned via L2 routing."; | description | |||
| "These prefixes are learned via L2 routing."; | ||||
| } | } | |||
| enum l1-inter-area-external { | enum l1-inter-area-external { | |||
| description "These prefixes are learned via L2 routing | description | |||
| towards an l2-external route."; | "These prefixes are learned via L2 routing | |||
| towards a level-2 external route."; | ||||
| } | } | |||
| } | } | |||
| description "IS-IS route type."; | description | |||
| "IS-IS route type."; | ||||
| } | } | |||
| } | } | |||
| /* Grouping definitions for configuration and ops state */ | /* Grouping definitions for configuration and operational states */ | |||
| grouping adjacency-state { | grouping adjacency-state { | |||
| container adjacencies { | container adjacencies { | |||
| config false; | config false; | |||
| list adjacency { | list adjacency { | |||
| leaf neighbor-sys-type { | leaf neighbor-sys-type { | |||
| type level; | type level; | |||
| description | description | |||
| "Level capability of neighboring system"; | "Level capability of the neighboring system."; | |||
| } | } | |||
| leaf neighbor-sysid { | leaf neighbor-sysid { | |||
| type system-id; | type system-id; | |||
| description | description | |||
| "The system-id of the neighbor"; | "The system ID of the neighbor."; | |||
| } | } | |||
| leaf neighbor-extended-circuit-id { | leaf neighbor-extended-circuit-id { | |||
| type extended-circuit-id; | type extended-circuit-id; | |||
| description | description | |||
| "Circuit ID of the neighbor"; | "The circuit ID of the neighbor."; | |||
| } | } | |||
| leaf neighbor-snpa { | leaf neighbor-snpa { | |||
| type snpa; | type snpa; | |||
| description | description | |||
| "SNPA of the neighbor"; | "The SNPA of the neighbor."; | |||
| } | } | |||
| leaf usage { | leaf usage { | |||
| type level; | type level; | |||
| description | description | |||
| "Define the level(s) activated for the adjacency. | "Defines the level(s) activated for the adjacency. | |||
| On a p2p link this might be level 1 and 2, | On a point-to-point link, this might be level 1 and | |||
| but on a LAN, the usage will be level 1 | level 2, but on a LAN, the usage will be level 1 | |||
| between neighbors at level 1 or level 2 between | between neighbors at level 1 or level 2 between | |||
| neighbors at level 2."; | neighbors at level 2."; | |||
| } | } | |||
| leaf hold-timer { | leaf hold-timer { | |||
| type rt-types:timer-value-seconds16; | type rt-types:timer-value-seconds16; | |||
| units seconds; | units "seconds"; | |||
| description | description | |||
| "The holding time in seconds for this | "The holding time (in seconds) for this adjacency. | |||
| adjacency. This value is based on | This value is based on received Hello PDUs and the | |||
| received hello PDUs and the elapsed | elapsed time since receipt."; | |||
| time since receipt."; | ||||
| } | } | |||
| leaf neighbor-priority { | leaf neighbor-priority { | |||
| type uint8 { | type uint8 { | |||
| range "0 .. 127"; | range "0 .. 127"; | |||
| } | } | |||
| description | description | |||
| "Priority of the neighboring IS for becoming | "Priority of the neighboring IS for becoming the | |||
| the DIS."; | Designated Intermediate System (DIS)."; | |||
| } | } | |||
| leaf lastuptime { | leaf lastuptime { | |||
| type yang:timestamp; | type yang:timestamp; | |||
| description | description | |||
| "When the adjacency most recently entered | "When the adjacency most recently entered the | |||
| state 'up', measured in hundredths of a | 'up' state, 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 the 'up' state."; | |||
| } | } | |||
| leaf state { | leaf state { | |||
| type adj-state-type; | type adj-state-type; | |||
| description | description | |||
| "This leaf describes the state of the interface."; | "This leaf describes the state of the 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 | |||
| the local node."; | the local node."; | |||
| } | } | |||
| description | description | |||
| "Adjacency state"; | "Adjacency state."; | |||
| } | } | |||
| grouping admin-control { | grouping admin-control { | |||
| leaf enable { | leaf enabled { | |||
| if-feature admin-control; | if-feature "admin-control"; | |||
| type boolean; | type boolean; | |||
| default "true"; | default "true"; | |||
| description | description | |||
| "Enable/Disable the protocol."; | "Enables or disables the protocol."; | |||
| } | } | |||
| description | description | |||
| "Grouping for admin control."; | "Grouping for administrative control."; | |||
| } | } | |||
| grouping ietf-spf-delay { | grouping ietf-spf-delay { | |||
| leaf initial-delay { | leaf initial-delay { | |||
| type rt-types:timer-value-milliseconds; | type rt-types:timer-value-milliseconds; | |||
| units msec; | units "msec"; | |||
| default "50"; | ||||
| description | description | |||
| "Delay used while in QUIET state (milliseconds)."; | "Delay used while in the QUIET state (milliseconds)."; | |||
| } | } | |||
| leaf short-delay { | leaf short-delay { | |||
| type rt-types:timer-value-milliseconds; | type rt-types:timer-value-milliseconds; | |||
| units msec; | units "msec"; | |||
| default "200"; | ||||
| description | description | |||
| "Delay used while in SHORT_WAIT state (milliseconds)."; | "Delay used while in the SHORT_WAIT state (milliseconds)."; | |||
| } | } | |||
| leaf long-delay { | leaf long-delay { | |||
| type rt-types:timer-value-milliseconds; | type rt-types:timer-value-milliseconds; | |||
| units msec; | units "msec"; | |||
| default "5000"; | ||||
| description | description | |||
| "Delay used while in LONG_WAIT state (milliseconds)."; | "Delay used while in the LONG_WAIT state (milliseconds)."; | |||
| } | } | |||
| leaf hold-down { | leaf hold-down { | |||
| type rt-types:timer-value-milliseconds; | type rt-types:timer-value-milliseconds; | |||
| units msec; | units "msec"; | |||
| default "10000"; | ||||
| description | description | |||
| "Timer used to consider an IGP stability period | "This timer value defines the period without any changes | |||
| (milliseconds)."; | for the IGP to be considered stable (in milliseconds)."; | |||
| } | } | |||
| leaf time-to-learn { | leaf time-to-learn { | |||
| type rt-types:timer-value-milliseconds; | type rt-types:timer-value-milliseconds; | |||
| units msec; | units "msec"; | |||
| default "500"; | ||||
| description | description | |||
| "Duration used to learn all the IGP events | "Duration used to learn all the IGP events | |||
| related to a single component failure (milliseconds)."; | related to a single network event (milliseconds)."; | |||
| } | } | |||
| leaf current-state { | leaf current-state { | |||
| type enumeration { | type enumeration { | |||
| enum "quiet" { | enum quiet { | |||
| description "QUIET state"; | description | |||
| "QUIET state."; | ||||
| } | } | |||
| enum "short-wait" { | enum short-wait { | |||
| description "SHORT_WAIT state"; | description | |||
| "SHORT_WAIT state."; | ||||
| } | } | |||
| enum "long-wait" { | enum long-wait { | |||
| description "LONG_WAIT state"; | description | |||
| "LONG_WAIT state."; | ||||
| } | } | |||
| } | } | |||
| config false; | config false; | |||
| description | description | |||
| "Current SPF back-off algorithm state."; | "Current SPF Back-Off algorithm state."; | |||
| } | } | |||
| leaf remaining-time-to-learn { | leaf remaining-time-to-learn { | |||
| type rt-types:timer-value-milliseconds; | type rt-types:timer-value-milliseconds; | |||
| units "msec"; | units "msec"; | |||
| config false; | config false; | |||
| description | description | |||
| "Remaining time until time-to-learn timer fires."; | "Remaining time until the time-to-learn timer fires."; | |||
| } | } | |||
| leaf remaining-hold-down { | leaf remaining-hold-down { | |||
| type rt-types:timer-value-milliseconds; | type rt-types:timer-value-milliseconds; | |||
| units "msec"; | units "msec"; | |||
| config false; | config false; | |||
| description | description | |||
| "Remaining time until hold-down timer fires."; | "Remaining time until the hold-down timer fires."; | |||
| } | } | |||
| leaf last-event-received { | leaf last-event-received { | |||
| type yang:timestamp; | type yang:timestamp; | |||
| config false; | config false; | |||
| description | description | |||
| "Time of last IGP event received"; | "Time of the last IGP event received."; | |||
| } | } | |||
| leaf next-spf-time { | leaf next-spf-time { | |||
| type yang:timestamp; | type yang:timestamp; | |||
| config false; | config false; | |||
| description | description | |||
| "Time when next SPF has been scheduled."; | "Time when the next SPF has been scheduled."; | |||
| } | } | |||
| leaf last-spf-time { | leaf last-spf-time { | |||
| type yang:timestamp; | type yang:timestamp; | |||
| config false; | config false; | |||
| description | description | |||
| "Time of last SPF computation."; | "Time of the last SPF computation."; | |||
| } | } | |||
| description | description | |||
| "Grouping for IETF SPF delay configuration and state."; | "Grouping for IETF SPF delay configuration and state."; | |||
| reference | ||||
| "RFC 8405: Shortest Path First (SPF) Back-Off Delay Algorithm | ||||
| for Link-State IGPs"; | ||||
| } | } | |||
| grouping node-tag-config { | grouping node-tag-config { | |||
| description | description | |||
| "IS-IS node tag config state."; | "IS-IS node tag configuration state."; | |||
| container node-tags { | container node-tags { | |||
| if-feature node-tag; | if-feature "node-tag"; | |||
| list node-tag { | list node-tag { | |||
| key tag; | key "tag"; | |||
| leaf tag { | leaf tag { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Node tag value."; | "Node tag value."; | |||
| } | } | |||
| description | description | |||
| "List of tags."; | "List of tags."; | |||
| } | } | |||
| description | description | |||
| "Container for node admin tags."; | "Container for node administrative tags."; | |||
| } | } | |||
| } | } | |||
| grouping authentication-global-cfg { | grouping authentication-global-cfg { | |||
| choice authentication-type { | choice authentication-type { | |||
| case key-chain { | case key-chain { | |||
| if-feature key-chain; | if-feature "key-chain"; | |||
| leaf key-chain { | leaf key-chain { | |||
| type key-chain:key-chain-ref; | type key-chain:key-chain-ref; | |||
| description | description | |||
| "Reference to a key-chain."; | "Reference to a key chain."; | |||
| } | } | |||
| } | } | |||
| case password { | case password { | |||
| leaf key { | leaf key { | |||
| type string; | type string; | |||
| description | description | |||
| "This leaf specifies the authentication key. The | "This leaf specifies the authentication key. The | |||
| length of the key may be dependent on the | length of the key may be dependent on the | |||
| cryptographic algorithm."; | cryptographic algorithm."; | |||
| } | } | |||
| leaf crypto-algorithm { | leaf crypto-algorithm { | |||
| type identityref { | type identityref { | |||
| base key-chain:crypto-algorithm; | base key-chain:crypto-algorithm; | |||
| } | } | |||
| description | description | |||
| "Cryptographic algorithm associated with key."; | "Cryptographic algorithm associated with a key."; | |||
| } | } | |||
| } | } | |||
| description "Choice of authentication."; | description | |||
| "Choice of authentication."; | ||||
| } | } | |||
| description "Grouping for global authentication config."; | description | |||
| "Grouping for global authentication configuration."; | ||||
| } | } | |||
| grouping metric-type-global-cfg { | grouping metric-type-global-cfg { | |||
| leaf value { | leaf value { | |||
| type enumeration { | type enumeration { | |||
| enum wide-only { | enum wide-only { | |||
| description | description | |||
| "Advertise new metric style only (RFC5305)"; | "Advertises the new metric style only (RFC 5305)."; | |||
| reference | ||||
| "RFC 5305: IS-IS Extensions for Traffic Engineering"; | ||||
| } | } | |||
| enum old-only { | enum old-only { | |||
| description | description | |||
| "Advertise old metric style only (RFC1195)"; | "Advertises the old metric style only (RFC 1195)."; | |||
| reference | ||||
| "RFC 1195: Use of OSI IS-IS for routing in TCP/IP and | ||||
| dual environments"; | ||||
| } | } | |||
| enum both { | enum both { | |||
| description "Advertise both metric styles"; | description | |||
| "Advertises both metric styles."; | ||||
| } | } | |||
| } | } | |||
| description | description | |||
| "Type of metric to be generated: | "Type of metric to be generated: | |||
| - wide-only means only new metric style | ||||
| is generated, | - 'wide-only' means that only a new metric style | |||
| - old-only means that only old-style metric | is generated. | |||
| is generated, | - 'old-only' means that only an old metric style | |||
| - both means that both are advertised. | is generated. | |||
| This leaf is only affecting IPv4 metrics."; | - 'both' means that both are advertised. | |||
| This leaf only affects IPv4 metrics."; | ||||
| } | } | |||
| description | description | |||
| "Grouping for global metric style config."; | "Grouping for global metric style configuration."; | |||
| } | } | |||
| grouping metric-type-global-cfg-with-default { | grouping metric-type-global-cfg-with-default { | |||
| leaf value { | leaf value { | |||
| type enumeration { | type enumeration { | |||
| enum wide-only { | enum wide-only { | |||
| description | description | |||
| "Advertise new metric style only (RFC5305)"; | "Advertises the new metric style only (RFC 5305)."; | |||
| reference | ||||
| "RFC 5305: IS-IS Extensions for Traffic Engineering"; | ||||
| } | } | |||
| enum old-only { | enum old-only { | |||
| description | description | |||
| "Advertise old metric style only (RFC1195)"; | "Advertises the old metric style only (RFC 1195)."; | |||
| reference | ||||
| "RFC 1195: Use of OSI IS-IS for routing in TCP/IP and | ||||
| dual environments"; | ||||
| } | } | |||
| enum both { | enum both { | |||
| description "Advertise both metric styles"; | description | |||
| "Advertises both metric styles."; | ||||
| } | } | |||
| } | } | |||
| default wide-only; | default "wide-only"; | |||
| description | description | |||
| "Type of metric to be generated: | "Type of metric to be generated: | |||
| - wide-only means only new metric style | ||||
| is generated, | - 'wide-only' means that only a new metric style | |||
| - old-only means that only old-style metric | is generated. | |||
| is generated, | - 'old-only' means that only an old metric style | |||
| - both means that both are advertised. | is generated. | |||
| This leaf is only affecting IPv4 metrics."; | - 'both' means that both are advertised. | |||
| This leaf only affects IPv4 metrics."; | ||||
| } | } | |||
| description | description | |||
| "Grouping for global metric style config."; | "Grouping for global metric style configuration."; | |||
| } | } | |||
| grouping default-metric-global-cfg { | grouping default-metric-global-cfg { | |||
| leaf value { | leaf value { | |||
| type wide-metric; | type wide-metric; | |||
| description "Value of the metric"; | description | |||
| "Value of the metric."; | ||||
| } | } | |||
| description | description | |||
| "Global default metric config grouping."; | "Global default metric configuration grouping."; | |||
| } | } | |||
| grouping default-metric-global-cfg-with-default { | grouping default-metric-global-cfg-with-default { | |||
| leaf value { | leaf value { | |||
| type wide-metric; | type wide-metric; | |||
| default "10"; | default "10"; | |||
| description "Value of the metric"; | description | |||
| "Value of the metric."; | ||||
| } | } | |||
| description | description | |||
| "Global default metric config grouping."; | "Global default metric configuration grouping."; | |||
| } | } | |||
| grouping overload-global-cfg { | grouping overload-global-cfg { | |||
| leaf status { | leaf status { | |||
| type boolean; | type boolean; | |||
| default false; | default "false"; | |||
| description | description | |||
| "This leaf specifies the overload status."; | "This leaf specifies the overload status."; | |||
| } | } | |||
| description "Grouping for overload bit config."; | description | |||
| "Grouping for overload bit configuration."; | ||||
| } | } | |||
| grouping overload-max-metric-global-cfg { | grouping overload-max-metric-global-cfg { | |||
| leaf timeout { | leaf timeout { | |||
| type rt-types:timer-value-seconds16; | type rt-types:timer-value-seconds16; | |||
| units "seconds"; | units "seconds"; | |||
| description | description | |||
| "Timeout (in seconds) of the overload condition."; | "Timeout (in seconds) of the overload condition."; | |||
| } | } | |||
| description | description | |||
| "Overload maximum metric configuration grouping"; | "Overload maximum metric configuration grouping."; | |||
| } | } | |||
| grouping route-preference-global-cfg { | grouping route-preference-global-cfg { | |||
| choice granularity { | choice granularity { | |||
| case detail { | case detail { | |||
| leaf internal { | leaf internal { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "Protocol preference for internal routes."; | "Protocol preference for internal routes."; | |||
| } | } | |||
| skipping to change at line 2404 ¶ | skipping to change at line 2517 ¶ | |||
| leaf default { | leaf default { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "Protocol preference for all IS-IS routes."; | "Protocol preference for all IS-IS routes."; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "Choice for implementation of route preference."; | "Choice for implementation of route preference."; | |||
| } | } | |||
| description | description | |||
| "Global route preference grouping"; | "Global route preference grouping."; | |||
| } | } | |||
| grouping hello-authentication-cfg { | grouping hello-authentication-cfg { | |||
| choice authentication-type { | choice authentication-type { | |||
| case key-chain { | case key-chain { | |||
| if-feature key-chain; | if-feature "key-chain"; | |||
| leaf key-chain { | leaf key-chain { | |||
| type key-chain:key-chain-ref; | type key-chain:key-chain-ref; | |||
| description "Reference to a key-chain."; | description | |||
| "Reference to a key chain."; | ||||
| } | } | |||
| } | } | |||
| case password { | case password { | |||
| leaf key { | leaf key { | |||
| type string; | type string; | |||
| description "Authentication key specification - The | description | |||
| length of the key may be dependent on the | "Authentication key specification. The length of the | |||
| cryptographic algorithm."; | key may be dependent on the cryptographic algorithm."; | |||
| } | } | |||
| leaf crypto-algorithm { | leaf crypto-algorithm { | |||
| type identityref { | type identityref { | |||
| base key-chain:crypto-algorithm; | base key-chain:crypto-algorithm; | |||
| } | } | |||
| description | description | |||
| "Cryptographic algorithm associated with key."; | "Cryptographic algorithm associated with a key."; | |||
| } | } | |||
| } | } | |||
| description "Choice of authentication."; | description | |||
| "Choice of authentication."; | ||||
| } | } | |||
| description "Grouping for hello authentication."; | description | |||
| "Grouping for Hello authentication."; | ||||
| } | } | |||
| grouping hello-interval-cfg { | grouping hello-interval-cfg { | |||
| leaf value { | leaf value { | |||
| type rt-types:timer-value-seconds16; | type rt-types:timer-value-seconds16; | |||
| units "seconds"; | units "seconds"; | |||
| description | description | |||
| "Interval (in seconds) between successive hello | "Interval (in seconds) between successive Hello | |||
| messages."; | messages."; | |||
| } | } | |||
| description | ||||
| description "Interval between hello messages."; | "Interval between Hello messages."; | |||
| } | } | |||
| grouping hello-interval-cfg-with-default { | grouping hello-interval-cfg-with-default { | |||
| leaf value { | leaf value { | |||
| type rt-types:timer-value-seconds16; | type rt-types:timer-value-seconds16; | |||
| units "seconds"; | units "seconds"; | |||
| default 10; | default "10"; | |||
| description | description | |||
| "Interval (in seconds) between successive hello | "Interval (in seconds) between successive Hello | |||
| messages."; | messages."; | |||
| } | } | |||
| description | ||||
| description "Interval between hello messages."; | "Interval between Hello messages."; | |||
| } | } | |||
| grouping hello-multiplier-cfg { | grouping hello-multiplier-cfg { | |||
| leaf value { | leaf value { | |||
| type uint16; | type uint16; | |||
| description | description | |||
| "Number of missed hello messages prior to | "Number of missed Hello messages prior to | |||
| declaring the adjacency down."; | declaring the adjacency down."; | |||
| } | } | |||
| description | description | |||
| "Number of missed hello messages prior to | "Grouping for the number of missed Hello messages prior to | |||
| adjacency down grouping."; | declaring the adjacency down."; | |||
| } | } | |||
| grouping hello-multiplier-cfg-with-default { | grouping hello-multiplier-cfg-with-default { | |||
| leaf value { | leaf value { | |||
| type uint16; | type uint16; | |||
| default 3; | default "3"; | |||
| description | description | |||
| "Number of missed hello messages prior to | "Number of missed Hello messages prior to | |||
| declaring the adjacency down."; | declaring the adjacency down."; | |||
| } | } | |||
| description | description | |||
| "Number of missed hello messages prior to | "Grouping for the number of missed Hello messages prior to | |||
| adjacency down grouping."; | declaring the adjacency down."; | |||
| } | } | |||
| grouping priority-cfg { | grouping priority-cfg { | |||
| leaf value { | leaf value { | |||
| type uint8 { | type uint8 { | |||
| range "0 .. 127"; | range "0 .. 127"; | |||
| } | } | |||
| description | description | |||
| "Priority of interface for DIS election."; | "Priority of the interface for DIS election."; | |||
| } | } | |||
| description | ||||
| description "Interface DIS election priority grouping"; | "Interface DIS election priority grouping."; | |||
| } | } | |||
| grouping priority-cfg-with-default { | grouping priority-cfg-with-default { | |||
| leaf value { | leaf value { | |||
| type uint8 { | type uint8 { | |||
| range "0 .. 127"; | range "0 .. 127"; | |||
| } | } | |||
| default 64; | default "64"; | |||
| description | description | |||
| "Priority of interface for DIS election."; | "Priority of the interface for DIS election."; | |||
| } | } | |||
| description | ||||
| description "Interface DIS election priority grouping"; | "Interface DIS election priority grouping."; | |||
| } | } | |||
| grouping metric-cfg { | grouping metric-cfg { | |||
| leaf value { | leaf value { | |||
| type wide-metric; | type wide-metric; | |||
| description "Metric value."; | description | |||
| "Metric value."; | ||||
| } | } | |||
| description "Interface metric grouping"; | description | |||
| "Interface metric grouping."; | ||||
| } | } | |||
| grouping metric-cfg-with-default { | grouping metric-cfg-with-default { | |||
| leaf value { | leaf value { | |||
| type wide-metric; | type wide-metric; | |||
| default "10"; | default "10"; | |||
| description "Metric value."; | description | |||
| "Metric value."; | ||||
| } | } | |||
| description "Interface metric grouping"; | description | |||
| "Interface metric grouping."; | ||||
| } | } | |||
| grouping metric-parameters { | grouping metric-parameters { | |||
| container metric-type { | container metric-type { | |||
| uses metric-type-global-cfg-with-default; | uses metric-type-global-cfg-with-default; | |||
| container level-1 { | container level-1 { | |||
| uses metric-type-global-cfg; | uses metric-type-global-cfg; | |||
| description "level-1 specific configuration"; | description | |||
| "Configuration specific to level 1."; | ||||
| } | } | |||
| container level-2 { | container level-2 { | |||
| uses metric-type-global-cfg; | uses metric-type-global-cfg; | |||
| description "level-2 specific configuration"; | description | |||
| "Configuration specific to level 2."; | ||||
| } | } | |||
| description "Metric style global configuration"; | description | |||
| "Metric style global configuration."; | ||||
| } | } | |||
| container default-metric { | container default-metric { | |||
| uses default-metric-global-cfg-with-default; | uses default-metric-global-cfg-with-default; | |||
| container level-1 { | container level-1 { | |||
| uses default-metric-global-cfg; | uses default-metric-global-cfg; | |||
| description "level-1 specific configuration"; | description | |||
| "Configuration specific to level 1."; | ||||
| } | } | |||
| container level-2 { | container level-2 { | |||
| uses default-metric-global-cfg; | uses default-metric-global-cfg; | |||
| description "level-2 specific configuration"; | description | |||
| "Configuration specific to level 2."; | ||||
| } | } | |||
| description "Default metric global configuration"; | description | |||
| "Default metric global configuration."; | ||||
| } | } | |||
| container auto-cost { | container auto-cost { | |||
| if-feature auto-cost; | if-feature "auto-cost"; | |||
| description | description | |||
| "Interface Auto-cost configuration state."; | "Interface auto-cost configuration state."; | |||
| leaf enable { | leaf enabled { | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "Enable/Disable interface auto-cost."; | "Enables or disables interface auto-cost."; | |||
| } | } | |||
| leaf reference-bandwidth { | leaf reference-bandwidth { | |||
| when "../enable = 'true'" { | when "../enabled = 'true'" { | |||
| description "Only when auto cost is enabled"; | description | |||
| "Only when auto-cost is enabled."; | ||||
| } | } | |||
| type uint32 { | type uint32 { | |||
| range "1..4294967"; | range "1..4294967"; | |||
| } | } | |||
| units Mbits; | units "Mbits"; | |||
| description | description | |||
| "Configure reference bandwidth used to automatically | "Configures the reference bandwidth used to automatically | |||
| determine interface cost (Mbits). The cost is the | determine the interface cost (Mbits). The cost is the | |||
| reference bandwidth divided by the interface speed | reference bandwidth divided by the interface speed, | |||
| with 1 being the minimum cost."; | with 1 being the minimum cost."; | |||
| } | } | |||
| } | } | |||
| description | ||||
| description "Grouping for global metric parameters."; | "Grouping for global metric parameters."; | |||
| } | } | |||
| grouping high-availability-parameters { | grouping high-availability-parameters { | |||
| container graceful-restart { | container graceful-restart { | |||
| if-feature graceful-restart; | if-feature "graceful-restart"; | |||
| leaf enable { | leaf enabled { | |||
| type boolean; | type boolean; | |||
| default false; | default "false"; | |||
| description "Enable graceful restart."; | description | |||
| "Enables graceful restart."; | ||||
| } | } | |||
| leaf restart-interval { | leaf restart-interval { | |||
| type rt-types:timer-value-seconds16; | type rt-types:timer-value-seconds16; | |||
| units "seconds"; | units "seconds"; | |||
| description | description | |||
| "Interval (in seconds) to attempt graceful restart prior | "Interval (in seconds) to attempt graceful restart prior | |||
| to failure."; | to failure."; | |||
| } | } | |||
| leaf helper-enable { | leaf helper-enabled { | |||
| type boolean; | type boolean; | |||
| default "true"; | default "true"; | |||
| description | description | |||
| "Enable local IS-IS router as graceful restart helper."; | "Enables a local IS-IS router as a graceful restart | |||
| helper."; | ||||
| } | } | |||
| description "Graceful-Restart Configuration."; | description | |||
| "Configuration of graceful restart."; | ||||
| } | } | |||
| container nsr { | container nsr { | |||
| if-feature nsr; | if-feature "nsr"; | |||
| description "Non-Stop Routing (NSR) configuration."; | description | |||
| leaf enable { | "Non-Stop Routing (NSR) configuration."; | |||
| leaf enabled { | ||||
| type boolean; | type boolean; | |||
| default false; | default "false"; | |||
| description "Enable/Disable Non-Stop Routing (NSR)."; | description | |||
| "Enables or disables NSR."; | ||||
| } | } | |||
| } | } | |||
| description "Grouping for High Availability parameters."; | description | |||
| "Grouping for high-availability parameters."; | ||||
| } | } | |||
| grouping authentication-parameters { | grouping authentication-parameters { | |||
| container authentication { | container authentication { | |||
| uses authentication-global-cfg; | uses authentication-global-cfg; | |||
| container level-1 { | container level-1 { | |||
| uses authentication-global-cfg; | uses authentication-global-cfg; | |||
| description "level-1 specific configuration"; | description | |||
| "Configuration specific to level 1."; | ||||
| } | } | |||
| container level-2 { | container level-2 { | |||
| uses authentication-global-cfg; | uses authentication-global-cfg; | |||
| description "level-2 specific configuration"; | description | |||
| "Configuration specific to level 2."; | ||||
| } | } | |||
| description "Authentication global configuration for | description | |||
| both LSPs and SNPs."; | "Authentication global configuration for | |||
| both LSPs and Sequence Number PDUs (SNPs)."; | ||||
| } | } | |||
| description "Grouping for authentication parameters"; | description | |||
| "Grouping for authentication parameters."; | ||||
| } | } | |||
| grouping address-family-parameters { | grouping address-family-parameters { | |||
| container address-families { | container address-families { | |||
| if-feature nlpid-control; | if-feature "nlpid-control"; | |||
| list address-family-list { | list address-family-list { | |||
| key address-family; | key "address-family"; | |||
| leaf address-family { | leaf address-family { | |||
| type iana-rt-types:address-family; | type iana-rt-types:address-family; | |||
| description "Address-family"; | description | |||
| "Address family."; | ||||
| } | } | |||
| leaf enable { | leaf enabled { | |||
| type boolean; | type boolean; | |||
| description "Activate the address family."; | description | |||
| "Activates the address family."; | ||||
| } | } | |||
| description | description | |||
| "List of address families and whether or not they | "List of address families and whether or not they | |||
| are activated."; | are activated."; | |||
| } | } | |||
| description "Address Family configuration"; | description | |||
| "Address family configuration."; | ||||
| } | } | |||
| description "Grouping for address family parameters."; | description | |||
| "Grouping for address family parameters."; | ||||
| } | } | |||
| grouping mpls-parameters { | grouping mpls-parameters { | |||
| container mpls { | container mpls { | |||
| container te-rid { | container te-rid { | |||
| if-feature te-rid; | if-feature "te-rid"; | |||
| description | description | |||
| "Stable ISIS Router IP Address used for Traffic | "Stable IS-IS router IP address used for Traffic | |||
| Engineering"; | Engineering."; | |||
| leaf ipv4-router-id { | leaf ipv4-router-id { | |||
| type inet:ipv4-address; | type inet:ipv4-address; | |||
| description | description | |||
| "Router ID value that would be used in TLV 134."; | "Router ID value that would be used in TLV 134."; | |||
| } | } | |||
| leaf ipv6-router-id { | leaf ipv6-router-id { | |||
| type inet:ipv6-address; | type inet:ipv6-address; | |||
| description | description | |||
| "Router ID value that would be used in TLV 140."; | "Router ID value that would be used in TLV 140."; | |||
| } | } | |||
| } | } | |||
| container ldp { | container ldp { | |||
| container igp-sync { | container igp-sync { | |||
| if-feature ldp-igp-sync; | if-feature "ldp-igp-sync"; | |||
| description | description | |||
| "This container may be augmented with global | "This container may be augmented with global | |||
| parameters for igp-ldp-sync."; | parameters for LDP IGP synchronization."; | |||
| } | } | |||
| description "LDP configuration."; | description | |||
| "LDP configuration."; | ||||
| } | } | |||
| description "MPLS configuration"; | description | |||
| "MPLS configuration."; | ||||
| } | } | |||
| description "Grouping for MPLS global parameters."; | description | |||
| "Grouping for MPLS global parameters."; | ||||
| } | } | |||
| grouping lsp-parameters { | grouping lsp-parameters { | |||
| leaf lsp-mtu { | leaf lsp-mtu { | |||
| type uint16; | type uint16; | |||
| units "bytes"; | units "bytes"; | |||
| default 1492; | default "1492"; | |||
| description | description | |||
| "Maximum size of an LSP PDU in bytes."; | "Maximum size of an LSP PDU in bytes."; | |||
| } | } | |||
| leaf lsp-lifetime { | leaf lsp-lifetime { | |||
| type uint16 { | type uint16 { | |||
| range "1..65535"; | range "1..65535"; | |||
| } | } | |||
| units "seconds"; | units "seconds"; | |||
| description | description | |||
| "Lifetime of the router's LSPs in seconds."; | "Lifetime of the router's LSPs in seconds."; | |||
| } | } | |||
| leaf lsp-refresh { | leaf lsp-refresh { | |||
| if-feature lsp-refresh; | if-feature "lsp-refresh"; | |||
| type rt-types:timer-value-seconds16; | type rt-types:timer-value-seconds16; | |||
| units "seconds"; | units "seconds"; | |||
| description | description | |||
| "Refresh interval of the router's LSPs in seconds."; | "Refresh interval of the router's LSPs in seconds."; | |||
| } | } | |||
| leaf poi-tlv { | leaf poi-tlv { | |||
| if-feature poi-tlv; | if-feature "poi-tlv"; | |||
| type boolean; | type boolean; | |||
| default false; | default "false"; | |||
| description | description | |||
| "Enable advertisement of IS-IS Purge Originator | "Enables the advertisement of the IS-IS Purge Originator | |||
| Identification TLV."; | Identification TLV."; | |||
| } | } | |||
| description "Grouping for LSP global parameters."; | description | |||
| "Grouping for LSP global parameters."; | ||||
| } | } | |||
| grouping spf-parameters { | grouping spf-parameters { | |||
| container spf-control { | container spf-control { | |||
| leaf paths { | leaf paths { | |||
| if-feature max-ecmp; | if-feature "max-ecmp"; | |||
| type uint16 { | type uint16 { | |||
| range "1..65535"; | range "1..65535"; | |||
| } | ||||
| description | ||||
| "Maximum number of Equal-Cost Multi-Path (ECMP) paths."; | ||||
| } | ||||
| container ietf-spf-delay { | ||||
| if-feature ietf-spf-delay; | ||||
| uses ietf-spf-delay; | ||||
| description "IETF SPF delay algorithm configuration."; | ||||
| } | } | |||
| description | description | |||
| "SPF calculation control."; | "Maximum number of Equal-Cost Multi-Path (ECMP) paths."; | |||
| } | ||||
| container ietf-spf-delay { | ||||
| if-feature "ietf-spf-delay"; | ||||
| uses ietf-spf-delay; | ||||
| description | ||||
| "IETF SPF delay algorithm configuration."; | ||||
| } | ||||
| description | ||||
| "SPF calculation control."; | ||||
| } | } | |||
| description "Grouping for SPF global parameters."; | description | |||
| "Grouping for SPF global parameters."; | ||||
| } | } | |||
| grouping instance-config { | ||||
| description "IS-IS global configuration grouping"; | ||||
| grouping instance-config { | ||||
| description | ||||
| "IS-IS global configuration grouping."; | ||||
| uses admin-control; | uses admin-control; | |||
| leaf level-type { | leaf level-type { | |||
| type level; | type level; | |||
| default "level-all"; | default "level-all"; | |||
| description | description | |||
| "Level of an IS-IS node - can be level-1, | "Level of an IS-IS node. Can be 'level-1', 'level-2', or | |||
| level-2 or level-all."; | 'level-all'."; | |||
| } | } | |||
| leaf system-id { | leaf system-id { | |||
| type system-id; | type system-id; | |||
| description "system-id of the node."; | description | |||
| "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 "Maximum areas supported."; | description | |||
| "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 protocol instance."; | "List of areas supported by the protocol instance."; | |||
| } | } | |||
| uses lsp-parameters; | uses lsp-parameters; | |||
| uses high-availability-parameters; | uses high-availability-parameters; | |||
| uses node-tag-config; | uses node-tag-config; | |||
| uses metric-parameters; | uses metric-parameters; | |||
| uses authentication-parameters; | uses authentication-parameters; | |||
| uses address-family-parameters; | uses address-family-parameters; | |||
| uses mpls-parameters; | uses mpls-parameters; | |||
| uses spf-parameters; | uses spf-parameters; | |||
| uses instance-fast-reroute-config; | uses instance-fast-reroute-config; | |||
| container preference { | container preference { | |||
| uses route-preference-global-cfg; | uses route-preference-global-cfg; | |||
| description "Router preference configuration for IS-IS | description | |||
| protocol instance route installation"; | "Router preference configuration for IS-IS | |||
| protocol instance route installation."; | ||||
| } | } | |||
| container overload { | container overload { | |||
| uses overload-global-cfg; | uses overload-global-cfg; | |||
| description "Router protocol instance overload state | description | |||
| configuration"; | "Router protocol instance overload state configuration."; | |||
| } | } | |||
| container overload-max-metric { | container overload-max-metric { | |||
| if-feature overload-max-metric; | if-feature "overload-max-metric"; | |||
| uses overload-max-metric-global-cfg; | uses overload-max-metric-global-cfg; | |||
| description | description | |||
| "Router protocol instance overload maximum | "Router protocol instance overload maximum | |||
| metric advertisement configuration."; | metric advertisement configuration."; | |||
| } | } | |||
| } | } | |||
| grouping instance-state { | grouping instance-state { | |||
| description | description | |||
| "IS-IS instance operational state."; | "IS-IS instance operational state."; | |||
| skipping to change at line 2815 ¶ | skipping to change at line 2962 ¶ | |||
| uses lsdb; | uses lsdb; | |||
| uses local-rib; | uses local-rib; | |||
| uses system-counters; | uses system-counters; | |||
| uses instance-fast-reroute-state; | uses instance-fast-reroute-state; | |||
| leaf discontinuity-time { | leaf discontinuity-time { | |||
| type yang:date-and-time; | type yang:date-and-time; | |||
| description | description | |||
| "The time of the most recent occasion at which any one | "The time of the most recent occasion at which any one | |||
| or more of this IS-IS instance's counters suffered a | or more of this IS-IS instance's counters suffered a | |||
| discontinuity. If no such discontinuities have occurred | discontinuity. If no such discontinuities have occurred | |||
| since the IS-IS instance was last re-initialized, then | since the IS-IS instance was last reinitialized, then | |||
| this node contains the time the IS-IS instance was | this node contains the time the IS-IS instance was | |||
| re-initialized which normally occurs when it was | reinitialized, which normally occurs when it was | |||
| created."; | created."; | |||
| } | } | |||
| } | } | |||
| grouping multi-topology-config { | grouping multi-topology-config { | |||
| description "Per-topology configuration"; | description | |||
| "Per-topology configuration."; | ||||
| container default-metric { | container default-metric { | |||
| uses default-metric-global-cfg; | uses default-metric-global-cfg; | |||
| container level-1 { | container level-1 { | |||
| uses default-metric-global-cfg; | uses default-metric-global-cfg; | |||
| description "level-1 specific configuration"; | description | |||
| "Configuration specific to level 1."; | ||||
| } | } | |||
| container level-2 { | container level-2 { | |||
| uses default-metric-global-cfg; | uses default-metric-global-cfg; | |||
| description "level-2 specific configuration"; | description | |||
| "Configuration specific to level 2."; | ||||
| } | } | |||
| description "Default metric per-topology configuration"; | description | |||
| "Default metric per-topology configuration."; | ||||
| } | } | |||
| uses node-tag-config; | uses node-tag-config; | |||
| } | } | |||
| grouping interface-config { | grouping interface-config { | |||
| description "Interface configuration grouping"; | description | |||
| "Interface configuration grouping."; | ||||
| uses admin-control; | uses admin-control; | |||
| leaf level-type { | leaf level-type { | |||
| type level; | type level; | |||
| default "level-all"; | default "level-all"; | |||
| description "IS-IS level of the interface."; | description | |||
| "IS-IS level of the interface."; | ||||
| } | } | |||
| leaf lsp-pacing-interval { | leaf lsp-pacing-interval { | |||
| type rt-types:timer-value-milliseconds; | type rt-types:timer-value-milliseconds; | |||
| units "milliseconds"; | units "milliseconds"; | |||
| default 33; | default "33"; | |||
| description | description | |||
| "Interval (in milli-seconds) between LSP | "Interval (in milliseconds) between LSP transmissions."; | |||
| transmissions."; | ||||
| } | } | |||
| leaf lsp-retransmit-interval { | leaf lsp-retransmit-interval { | |||
| type rt-types:timer-value-seconds16; | type rt-types:timer-value-seconds16; | |||
| units "seconds"; | units "seconds"; | |||
| description | description | |||
| "Interval (in seconds) between LSP | "Interval (in seconds) between LSP retransmissions."; | |||
| retransmissions."; | ||||
| } | } | |||
| leaf passive { | leaf passive { | |||
| type boolean; | type boolean; | |||
| default "false"; | default "false"; | |||
| description | description | |||
| "Indicates whether the interface is in passive mode (IS-IS | "Indicates whether the interface is in passive mode (IS-IS | |||
| not running but network is advertised)."; | is not running, but the network is advertised)."; | |||
| } | } | |||
| leaf csnp-interval { | leaf csnp-interval { | |||
| type rt-types:timer-value-seconds16; | type rt-types:timer-value-seconds16; | |||
| units "seconds"; | units "seconds"; | |||
| default 10; | default "10"; | |||
| description | description | |||
| "Interval (in seconds) between CSNP messages."; | "Interval (in seconds) between Complete Sequence Number | |||
| Packet (CSNP) messages."; | ||||
| } | } | |||
| container hello-padding { | container hello-padding { | |||
| leaf enable { | leaf enabled { | |||
| type boolean; | type boolean; | |||
| default "true"; | default "true"; | |||
| description | description | |||
| "IS-IS Hello-padding activation - enabled by default."; | "IS-IS Hello padding activation. Enabled by default."; | |||
| } | } | |||
| description "IS-IS hello padding configuration."; | description | |||
| "IS-IS Hello padding configuration."; | ||||
| } | } | |||
| leaf mesh-group-enable { | leaf mesh-group-enabled { | |||
| type mesh-group-state; | type mesh-group-state; | |||
| description "IS-IS interface mesh-group state"; | description | |||
| "IS-IS interface mesh group state."; | ||||
| } | } | |||
| leaf mesh-group { | leaf mesh-group { | |||
| when "../mesh-group-enable = 'mesh-set'" { | when "../mesh-group-enabled = 'mesh-set'" { | |||
| description | description | |||
| "Only valid when mesh-group-enable equals mesh-set"; | "Only valid when 'mesh-group-enabled' equals 'mesh-set'."; | |||
| } | } | |||
| type uint8; | type uint8; | |||
| description "IS-IS interface mesh-group ID."; | description | |||
| "IS-IS interface mesh group ID."; | ||||
| } | } | |||
| leaf interface-type { | leaf interface-type { | |||
| type interface-type; | type interface-type; | |||
| default "broadcast"; | default "broadcast"; | |||
| description | description | |||
| "Type of adjacency to be established for the interface. This | "Type of adjacency to be established for the interface. | |||
| dictates the type of hello messages that are used."; | This dictates the type of Hello messages that are used."; | |||
| } | } | |||
| leaf-list tag { | leaf-list tag { | |||
| if-feature prefix-tag; | if-feature "prefix-tag"; | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "List of tags associated with the interface."; | "List of tags associated with the interface."; | |||
| } | } | |||
| leaf-list tag64 { | leaf-list tag64 { | |||
| if-feature prefix-tag64; | if-feature "prefix-tag64"; | |||
| type uint64; | type uint64; | |||
| description | description | |||
| "List of 64-bit tags associated with the interface."; | "List of 64-bit tags associated with the interface."; | |||
| } | } | |||
| leaf node-flag { | leaf node-flag { | |||
| if-feature node-flag; | if-feature "node-flag"; | |||
| type boolean; | type boolean; | |||
| default false; | default "false"; | |||
| description | description | |||
| "Set prefix as a node representative prefix."; | "Sets the prefix as a node representative prefix."; | |||
| } | } | |||
| container hello-authentication { | container hello-authentication { | |||
| uses hello-authentication-cfg; | uses hello-authentication-cfg; | |||
| container level-1 { | container level-1 { | |||
| uses hello-authentication-cfg; | uses hello-authentication-cfg; | |||
| description "level-1 specific configuration"; | description | |||
| "Configuration specific to level 1."; | ||||
| } | } | |||
| container level-2 { | container level-2 { | |||
| uses hello-authentication-cfg; | uses hello-authentication-cfg; | |||
| description "level-2 specific configuration"; | description | |||
| "Configuration specific to level 2."; | ||||
| } | } | |||
| description | description | |||
| "Authentication type to be used in hello messages."; | "Authentication type to be used in Hello messages."; | |||
| } | } | |||
| container hello-interval { | container hello-interval { | |||
| uses hello-interval-cfg-with-default; | uses hello-interval-cfg-with-default; | |||
| container level-1 { | container level-1 { | |||
| uses hello-interval-cfg; | uses hello-interval-cfg; | |||
| description "level-1 specific configuration"; | description | |||
| "Configuration specific to level 1."; | ||||
| } | } | |||
| container level-2 { | container level-2 { | |||
| uses hello-interval-cfg; | uses hello-interval-cfg; | |||
| description "level-2 specific configuration"; | description | |||
| "Configuration specific to level 2."; | ||||
| } | } | |||
| description "Interval between hello messages."; | description | |||
| "Interval between Hello messages."; | ||||
| } | } | |||
| container hello-multiplier { | container hello-multiplier { | |||
| uses hello-multiplier-cfg-with-default; | uses hello-multiplier-cfg-with-default; | |||
| container level-1 { | container level-1 { | |||
| uses hello-multiplier-cfg; | uses hello-multiplier-cfg; | |||
| description "level-1 specific configuration"; | description | |||
| "Configuration specific to level 1."; | ||||
| } | } | |||
| container level-2 { | container level-2 { | |||
| uses hello-multiplier-cfg; | uses hello-multiplier-cfg; | |||
| description "level-2 specific configuration"; | description | |||
| "Configuration specific to level 2."; | ||||
| } | } | |||
| description "Hello multiplier configuration."; | description | |||
| "Hello multiplier configuration."; | ||||
| } | } | |||
| container priority { | container priority { | |||
| must '../interface-type = "broadcast"' { | must '../interface-type = "broadcast"' { | |||
| error-message | error-message "Priority only applies to broadcast " | |||
| "Priority only applies to broadcast interfaces."; | + "interfaces."; | |||
| description "Check for broadcast interface."; | description | |||
| "Checks for a broadcast interface."; | ||||
| } | } | |||
| uses priority-cfg-with-default; | uses priority-cfg-with-default; | |||
| container level-1 { | container level-1 { | |||
| uses priority-cfg; | uses priority-cfg; | |||
| description "level-1 specific configuration"; | description | |||
| "Configuration specific to level 1."; | ||||
| } | } | |||
| container level-2 { | container level-2 { | |||
| uses priority-cfg; | uses priority-cfg; | |||
| description "level-2 specific configuration"; | description | |||
| "Configuration specific to level 2."; | ||||
| } | } | |||
| description "Priority for DIS election."; | description | |||
| "Priority for DIS election."; | ||||
| } | } | |||
| container metric { | container metric { | |||
| uses metric-cfg-with-default; | uses metric-cfg-with-default; | |||
| container level-1 { | container level-1 { | |||
| uses metric-cfg; | uses metric-cfg; | |||
| description "level-1 specific configuration"; | description | |||
| "Configuration specific to level 1."; | ||||
| } | } | |||
| container level-2 { | container level-2 { | |||
| uses metric-cfg; | uses metric-cfg; | |||
| description "level-2 specific configuration"; | description | |||
| "Configuration specific to level 2."; | ||||
| } | } | |||
| description "Metric configuration."; | description | |||
| "Metric configuration."; | ||||
| } | } | |||
| container bfd { | container bfd { | |||
| if-feature bfd; | if-feature "bfd"; | |||
| description "BFD Client Configuration."; | description | |||
| "BFD interface configuration."; | ||||
| uses bfd-types:client-cfg-parms; | uses bfd-types:client-cfg-parms; | |||
| reference | ||||
| reference "RFC YYYY - YANG Data Model for Bidirectional | "RFC 5880: Bidirectional Forwarding Detection (BFD) | |||
| Forwarding Detection (BFD). | RFC 5881: Bidirectional Forwarding Detection | |||
| (BFD) for IPv4 and IPv6 (Single Hop) | ||||
| number for draft-ietf-bfd-yang."; | RFC 9314: YANG Data Model for Bidirectional Forwarding | |||
| Detection (BFD)"; | ||||
| } | } | |||
| container address-families { | container address-families { | |||
| if-feature nlpid-control; | if-feature "nlpid-control"; | |||
| list address-family-list { | list address-family-list { | |||
| key address-family; | key "address-family"; | |||
| leaf address-family { | leaf address-family { | |||
| type iana-rt-types:address-family; | type iana-rt-types:address-family; | |||
| description "Address-family"; | description | |||
| "Address family."; | ||||
| } | } | |||
| description "List of AFs."; | description | |||
| "List of address families."; | ||||
| } | } | |||
| description "Interface address-families"; | description | |||
| "Interface address families."; | ||||
| } | } | |||
| container mpls { | container mpls { | |||
| container ldp { | container ldp { | |||
| leaf igp-sync { | leaf igp-sync { | |||
| if-feature ldp-igp-sync; | if-feature "ldp-igp-sync"; | |||
| type boolean; | type boolean; | |||
| default false; | default "false"; | |||
| description "Enables IGP/LDP synchronization"; | description | |||
| "Enables IGP/LDP synchronization."; | ||||
| } | } | |||
| description "LDP protocol related configuration."; | description | |||
| "Configuration related to LDP."; | ||||
| } | } | |||
| description "MPLS configuration for IS-IS interfaces"; | description | |||
| "MPLS configuration for IS-IS interfaces."; | ||||
| } | } | |||
| uses interface-fast-reroute-config; | uses interface-fast-reroute-config; | |||
| } | } | |||
| grouping multi-topology-interface-config { | grouping multi-topology-interface-config { | |||
| description "IS-IS interface topology configuration."; | description | |||
| "IS-IS interface topology configuration."; | ||||
| container metric { | container metric { | |||
| uses metric-cfg; | uses metric-cfg; | |||
| container level-1 { | container level-1 { | |||
| uses metric-cfg; | uses metric-cfg; | |||
| description "level-1 specific configuration"; | description | |||
| "Configuration specific to level 1."; | ||||
| } | } | |||
| container level-2 { | container level-2 { | |||
| uses metric-cfg; | uses metric-cfg; | |||
| description "level-2 specific configuration"; | description | |||
| "Configuration specific to level 2."; | ||||
| } | } | |||
| description "Metric IS-IS interface configuration."; | description | |||
| "Metric IS-IS interface configuration."; | ||||
| } | } | |||
| } | } | |||
| grouping interface-state { | grouping interface-state { | |||
| description | description | |||
| "IS-IS interface operational state."; | "IS-IS interface operational state."; | |||
| uses adjacency-state; | uses adjacency-state; | |||
| uses event-counters; | uses event-counters; | |||
| uses packet-counters; | uses packet-counters; | |||
| leaf discontinuity-time { | leaf discontinuity-time { | |||
| type yang:date-and-time; | type yang:date-and-time; | |||
| description | description | |||
| "The time of the most recent occasion at which any one | "The time of the most recent occasion at which any one | |||
| or more of this IS-IS interface's counters suffered a | or more of this IS-IS interface's counters suffered a | |||
| discontinuity. If no such discontinuities have occurred | discontinuity. If no such discontinuities have occurred | |||
| since the IS-IS interface was last re-initialized, then | since the IS-IS interface was last reinitialized, then | |||
| this node contains the time the IS-IS interface was | this node contains the time the IS-IS interface was | |||
| re-initialized which normally occurs when it was | reinitialized, which normally occurs when it was | |||
| created."; | created."; | |||
| } | } | |||
| } | } | |||
| /* Grouping for the hostname database */ | /* Grouping for the hostname database */ | |||
| grouping hostname-db { | grouping hostname-db { | |||
| container hostnames { | container hostnames { | |||
| config false; | config false; | |||
| list hostname { | list hostname { | |||
| key system-id; | key "system-id"; | |||
| leaf system-id { | leaf system-id { | |||
| type system-id; | type system-id; | |||
| description | description | |||
| "system-id associated with the hostname."; | "System ID associated with the hostname."; | |||
| } | } | |||
| leaf hostname { | leaf hostname { | |||
| type string { | type string { | |||
| length "1..255"; | length "1..255"; | |||
| } | } | |||
| description | description | |||
| "Hostname associated with the system-id | "Hostname associated with the system ID | |||
| as defined in RFC5301."; | as defined in RFC 5301."; | |||
| reference | ||||
| "RFC 5301: Dynamic Hostname Exchange Mechanism | ||||
| for IS-IS"; | ||||
| } | } | |||
| description | description | |||
| "List of system-id/hostname associations."; | "List of system ID / hostname associations."; | |||
| } | } | |||
| description | description | |||
| "Hostname to system-id mapping database."; | "Hostname-to-system-ID mapping database."; | |||
| } | } | |||
| description | description | |||
| "Grouping for hostname to system-id mapping database."; | "Grouping for hostname-to-system-ID mapping database."; | |||
| } | } | |||
| /* Groupings for counters */ | /* Groupings for counters */ | |||
| grouping system-counters { | grouping system-counters { | |||
| container system-counters { | container system-counters { | |||
| config false; | config false; | |||
| list level { | list level { | |||
| key level; | key "level"; | |||
| leaf level { | leaf level { | |||
| type level-number; | type level-number; | |||
| description "IS-IS level."; | description | |||
| "IS-IS level."; | ||||
| } | } | |||
| leaf corrupted-lsps { | leaf corrupted-lsps { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Number of corrupted in-memory LSPs detected. | "Number of corrupted in-memory LSPs detected. | |||
| LSPs received from the wire with a bad | LSPs received from the wire with a bad | |||
| checksum are silently dropped and not counted. | checksum are silently dropped and not counted. | |||
| LSPs received from the wire with parse errors | LSPs received from the wire with parse errors | |||
| are counted by lsp-errors."; | are counted by 'lsp-errors'."; | |||
| } | } | |||
| leaf authentication-type-fails { | leaf authentication-type-fails { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Number of authentication type mismatches."; | "Number of authentication type mismatches."; | |||
| } | } | |||
| leaf authentication-fails { | leaf authentication-fails { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Number of authentication key failures."; | "Number of authentication key failures."; | |||
| } | } | |||
| leaf database-overload { | leaf database-overload { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Number of times the database has become | "Number of times the database has become | |||
| skipping to change at line 3171 ¶ | skipping to change at line 3352 ¶ | |||
| than that of the receiving system."; | than that of the receiving system."; | |||
| } | } | |||
| leaf partition-changes { | leaf partition-changes { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Number of partition changes detected."; | "Number of partition changes detected."; | |||
| } | } | |||
| leaf lsp-errors { | leaf lsp-errors { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Number of LSPs with errors we have received."; | "Number of LSPs received with errors."; | |||
| } | } | |||
| leaf spf-runs { | leaf spf-runs { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Number of times we ran SPF at this level."; | "Number of times SPF was run at this level."; | |||
| } | } | |||
| description | description | |||
| "List of supported levels."; | "List of supported levels."; | |||
| } | } | |||
| description | description | |||
| "List counters for the IS-IS protocol instance"; | "List of counters for the IS-IS protocol instance."; | |||
| } | } | |||
| description | description | |||
| "Grouping for IS-IS system counters"; | "Grouping for IS-IS system counters."; | |||
| } | } | |||
| grouping event-counters { | grouping event-counters { | |||
| container event-counters { | container event-counters { | |||
| config false; | config false; | |||
| leaf adjacency-changes { | leaf adjacency-changes { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "The number of times an adjacency state change has | "The number of times an adjacency state change has | |||
| occurred on this interface."; | occurred on this interface."; | |||
| } | } | |||
| leaf adjacency-number { | leaf adjacency-number { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "The number of adjacencies on this interface."; | "The number of adjacencies on this interface."; | |||
| } | } | |||
| leaf init-fails { | leaf init-fails { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "The number of times initialization of this | "The number of times initialization of this interface has | |||
| interface has failed. This counts events such | failed. This counts events such as Point-to-Point | |||
| as PPP NCP failures. Failures to form an | Protocol (PPP) Network Control Protocol (NCP) failures. | |||
| adjacency are counted by adjacency-rejects."; | Failures to form an adjacency are counted by | |||
| 'adjacency-rejects'."; | ||||
| } | } | |||
| leaf adjacency-rejects { | leaf adjacency-rejects { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "The number of times an adjacency has been | "The number of times an adjacency has been | |||
| rejected on this interface."; | rejected on this interface."; | |||
| } | } | |||
| leaf id-len-mismatch { | leaf id-len-mismatch { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| skipping to change at line 3245 ¶ | skipping to change at line 3427 ¶ | |||
| } | } | |||
| leaf authentication-fails { | leaf authentication-fails { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Number of authentication key failures."; | "Number of authentication key failures."; | |||
| } | } | |||
| leaf lan-dis-changes { | leaf lan-dis-changes { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "The number of times the DIS has changed on this | "The number of times the DIS has changed on this | |||
| interface at this level. If the interface type is | interface at this level. If the interface type is | |||
| point-to-point, the count is zero."; | 'point-to-point', the count is zero."; | |||
| } | } | |||
| description "IS-IS interface event counters."; | description | |||
| "IS-IS interface event counters."; | ||||
| } | } | |||
| description | description | |||
| "Grouping for IS-IS interface event counters"; | "Grouping for IS-IS interface event counters."; | |||
| } | } | |||
| grouping packet-counters { | grouping packet-counters { | |||
| container packet-counters { | container packet-counters { | |||
| config false; | config false; | |||
| list level { | list level { | |||
| key level; | key "level"; | |||
| leaf level { | leaf level { | |||
| type level-number; | type level-number; | |||
| description "IS-IS level."; | description | |||
| "IS-IS level."; | ||||
| } | } | |||
| container iih { | container iih { | |||
| leaf in { | leaf in { | |||
| type uint32; | type uint32; | |||
| description "Received IIH PDUs."; | description | |||
| "Received IS-IS Hello (IIH) PDUs."; | ||||
| } | } | |||
| leaf out { | leaf out { | |||
| type uint32; | type uint32; | |||
| description "Sent IIH PDUs."; | description | |||
| "Sent IIH PDUs."; | ||||
| } | } | |||
| description "Number of IIH PDUs received/sent."; | description | |||
| "Number of IIH PDUs received/sent."; | ||||
| } | } | |||
| container ish { | container ish { | |||
| leaf in { | leaf in { | |||
| type uint32; | type uint32; | |||
| description "Received ISH PDUs."; | description | |||
| "Received Intermediate System Hello (ISH) PDUs."; | ||||
| } | } | |||
| leaf out { | leaf out { | |||
| type uint32; | type uint32; | |||
| description "Sent ISH PDUs."; | description | |||
| "Sent ISH PDUs."; | ||||
| } | } | |||
| description | description | |||
| "ISH PDUs received/sent."; | "ISH PDUs received/sent."; | |||
| } | } | |||
| container esh { | container esh { | |||
| leaf in { | leaf in { | |||
| type uint32; | type uint32; | |||
| description "Received ESH PDUs."; | description | |||
| "Received End System Hello (ESH) PDUs."; | ||||
| } | } | |||
| leaf out { | leaf out { | |||
| type uint32; | type uint32; | |||
| description "Sent ESH PDUs."; | description | |||
| "Sent ESH PDUs."; | ||||
| } | } | |||
| description "Number of ESH PDUs received/sent."; | description | |||
| "Number of ESH PDUs received/sent."; | ||||
| } | } | |||
| container lsp { | container lsp { | |||
| leaf in { | leaf in { | |||
| type uint32; | type uint32; | |||
| description "Received LSP PDUs."; | description | |||
| "Received Link State PDU (LSP) PDUs."; | ||||
| } | } | |||
| leaf out { | leaf out { | |||
| type uint32; | type uint32; | |||
| description "Sent LSP PDUs."; | description | |||
| "Sent LSP PDUs."; | ||||
| } | } | |||
| description "Number of LSP PDUs received/sent."; | description | |||
| "Number of LSP PDUs received/sent."; | ||||
| } | } | |||
| container psnp { | container psnp { | |||
| leaf in { | leaf in { | |||
| type uint32; | type uint32; | |||
| description "Received PSNP PDUs."; | description | |||
| "Received Partial Sequence Number PDU (PSNP) PDUs."; | ||||
| } | } | |||
| leaf out { | leaf out { | |||
| type uint32; | type uint32; | |||
| description "Sent PSNP PDUs."; | description | |||
| "Sent PSNP PDUs."; | ||||
| } | } | |||
| description "Number of PSNP PDUs received/sent."; | description | |||
| "Number of PSNP PDUs received/sent."; | ||||
| } | } | |||
| container csnp { | container csnp { | |||
| leaf in { | leaf in { | |||
| type uint32; | type uint32; | |||
| description "Received CSNP PDUs."; | description | |||
| "Received Complete Sequence Number PDU (CSNP) PDUs."; | ||||
| } | } | |||
| leaf out { | leaf out { | |||
| type uint32; | type uint32; | |||
| description "Sent CSNP PDUs."; | description | |||
| "Sent CSNP PDUs."; | ||||
| } | } | |||
| description "Number of CSNP PDUs received/sent."; | description | |||
| "Number of CSNP PDUs received/sent."; | ||||
| } | } | |||
| container unknown { | container unknown { | |||
| leaf in { | leaf in { | |||
| type uint32; | type uint32; | |||
| description "Received unknown PDUs."; | description | |||
| "Received unknown PDUs."; | ||||
| } | } | |||
| description "Number of unknown PDUs received/sent."; | description | |||
| "Number of unknown PDUs received."; | ||||
| } | } | |||
| description | description | |||
| "List of packet counter for supported levels."; | "List of packet counters for supported levels."; | |||
| } | } | |||
| description "Packet counters per IS-IS level."; | description | |||
| "Packet counters per IS-IS level."; | ||||
| } | } | |||
| description | description | |||
| "Grouping for per IS-IS Level packet counters."; | "Grouping for packet counters per IS-IS level."; | |||
| } | } | |||
| /* Groupings for various log buffers */ | /* Groupings for various log buffers */ | |||
| grouping spf-log { | grouping spf-log { | |||
| container spf-log { | container spf-log { | |||
| config false; | config false; | |||
| list event { | list event { | |||
| key id; | key "id"; | |||
| leaf id { | leaf id { | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "Event identifier - purely internal value. | "Event identifier. A purely internal value. | |||
| It is expected the most recent events to have the bigger | The most recent events are expected to have a bigger | |||
| id number."; | ID number."; | |||
| } | } | |||
| leaf spf-type { | leaf spf-type { | |||
| type enumeration { | type enumeration { | |||
| enum full { | enum full { | |||
| description "Full SPF computation."; | description | |||
| "Full SPF computation."; | ||||
| } | } | |||
| enum route-only { | enum route-only { | |||
| description | description | |||
| "Route reachability only SPF computation"; | "SPF computation of route reachability | |||
| only."; | ||||
| } | } | |||
| } | } | |||
| description "Type of SPF computation performed."; | description | |||
| "Type of SPF computation performed."; | ||||
| } | } | |||
| leaf level { | leaf level { | |||
| type level-number; | type level-number; | |||
| description | description | |||
| "IS-IS level number for SPF computation"; | "IS-IS level number for the SPF computation."; | |||
| } | } | |||
| leaf schedule-timestamp { | leaf schedule-timestamp { | |||
| type yang:timestamp; | type yang:timestamp; | |||
| description | description | |||
| "Timestamp of when the SPF computation was | "Timestamp of when the SPF computation was | |||
| scheduled."; | scheduled."; | |||
| } | } | |||
| leaf start-timestamp { | leaf start-timestamp { | |||
| type yang:timestamp; | type yang:timestamp; | |||
| description | description | |||
| skipping to change at line 3399 ¶ | skipping to change at line 3605 ¶ | |||
| leaf end-timestamp { | leaf end-timestamp { | |||
| type yang:timestamp; | type yang:timestamp; | |||
| description | description | |||
| "Timestamp of when the SPF computation ended."; | "Timestamp of when the SPF computation ended."; | |||
| } | } | |||
| list trigger-lsp { | list trigger-lsp { | |||
| key "lsp"; | key "lsp"; | |||
| leaf lsp { | leaf lsp { | |||
| type lsp-id; | type lsp-id; | |||
| description | description | |||
| "LSP ID of the LSP triggering SPF computation."; | "LSP ID of the LSP that triggered the SPF | |||
| computation."; | ||||
| } | } | |||
| leaf sequence { | leaf sequence { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Sequence number of the LSP triggering SPF | "Sequence number of the LSP that triggered the SPF | |||
| computation"; | computation."; | |||
| } | } | |||
| description | description | |||
| "This list includes the LSPs that triggered the | "This list includes the LSPs that triggered the | |||
| SPF computation."; | SPF computation."; | |||
| } | } | |||
| description | description | |||
| "List of computation events - implemented as a | "List of computation events. Implemented as a | |||
| wrapping buffer."; | wrapping buffer."; | |||
| } | } | |||
| description | description | |||
| "This container lists the SPF computation events."; | "This container lists the SPF computation events."; | |||
| } | } | |||
| description "Grouping for spf-log events."; | description | |||
| "Grouping for SPF log events."; | ||||
| } | } | |||
| grouping lsp-log { | grouping lsp-log { | |||
| container lsp-log { | container lsp-log { | |||
| config false; | config false; | |||
| list event { | list event { | |||
| key id; | key "id"; | |||
| leaf id { | leaf id { | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "Event identifier - purely internal value. | "Event identifier. A purely internal value. | |||
| It is expected the most recent events to have the bigger | The most recent events are expected to have a bigger | |||
| id number."; | ID number."; | |||
| } | } | |||
| leaf level { | leaf level { | |||
| type level-number; | type level-number; | |||
| description | description | |||
| "IS-IS level number for LSP"; | "IS-IS level number for the LSP."; | |||
| } | } | |||
| container lsp { | container lsp { | |||
| leaf lsp { | leaf lsp { | |||
| type lsp-id; | type lsp-id; | |||
| description | description | |||
| "LSP ID of the LSP."; | "LSP ID of the LSP."; | |||
| } | } | |||
| leaf sequence { | leaf sequence { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Sequence number of the LSP."; | "Sequence number of the LSP."; | |||
| } | } | |||
| description | description | |||
| "LSP identification container - either the received | "LSP identification container for either the received | |||
| LSP or the locally generated LSP."; | LSP or the locally generated LSP."; | |||
| } | } | |||
| leaf received-timestamp { | leaf received-timestamp { | |||
| type yang:timestamp; | type yang:timestamp; | |||
| description | description | |||
| "This is the timestamp when the LSA was received. | "This is the timestamp when the LSP was received. | |||
| In case of local LSA update, the timestamp refers | In the case of a local LSP update, the timestamp refers | |||
| to the LSA origination time."; | to the LSP origination time."; | |||
| } | } | |||
| leaf reason { | leaf reason { | |||
| type identityref { | type identityref { | |||
| base lsp-log-reason; | base lsp-log-reason; | |||
| } | } | |||
| description "Type of LSP change."; | description | |||
| "Type of LSP change."; | ||||
| } | } | |||
| description | description | |||
| "List of LSP events - implemented as a | "List of LSP events. Implemented as a wrapping buffer."; | |||
| wrapping buffer."; | ||||
| } | } | |||
| description | description | |||
| "This container lists the LSP log. | "This container lists the LSP log. | |||
| Local LSP modifications are also included | Local LSP modifications are also included in the list."; | |||
| in the list."; | } | |||
| description | ||||
| } description "Grouping for LSP log."; | "Grouping for the LSP log."; | |||
| } | } | |||
| /* Groupings for the LSDB description */ | /* Groupings for the Link State Database (LSDB) descriptions */ | |||
| /* Unknown TLV and sub-TLV descriptions */ | ||||
| /* Unknown TLV and sub-TLV description */ | ||||
| grouping tlv { | grouping tlv { | |||
| description | description | |||
| "Type-Length-Value (TLV)"; | "Type-Length-Value (TLV)."; | |||
| leaf type { | leaf type { | |||
| type uint16; | type uint16; | |||
| description "TLV type."; | description | |||
| "TLV type."; | ||||
| } | } | |||
| leaf length { | leaf length { | |||
| type uint16; | type uint16; | |||
| description "TLV length (octets)."; | description | |||
| "TLV length (octets)."; | ||||
| } | } | |||
| leaf value { | leaf value { | |||
| type yang:hex-string; | type yang:hex-string; | |||
| description "TLV value."; | description | |||
| "TLV value."; | ||||
| } | } | |||
| } | } | |||
| grouping unknown-tlvs { | grouping unknown-tlvs { | |||
| description | description | |||
| "Unknown TLVs grouping - Used for unknown TLVs or | "Unknown TLVs grouping. Used for unknown TLVs or | |||
| unknown sub-TLVs."; | unknown sub-TLVs."; | |||
| container unknown-tlvs { | container unknown-tlvs { | |||
| description "All unknown TLVs."; | description | |||
| "All unknown TLVs."; | ||||
| list unknown-tlv { | list unknown-tlv { | |||
| description "Unknown TLV."; | description | |||
| "Unknown TLV."; | ||||
| uses tlv; | uses tlv; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| /* TLVs and sub-TLVs for prefixes */ | /* TLVs and sub-TLVs for prefixes */ | |||
| grouping prefix-reachability-attributes { | grouping prefix-reachability-attributes { | |||
| description | description | |||
| "Grouping for extended reachability attributes of an | "Grouping for extended reachability attributes of an | |||
| skipping to change at line 3523 ¶ | skipping to change at line 3730 ¶ | |||
| } | } | |||
| } | } | |||
| } | } | |||
| /* TLVs and sub-TLVs for prefixes */ | /* TLVs and sub-TLVs for prefixes */ | |||
| grouping prefix-reachability-attributes { | grouping prefix-reachability-attributes { | |||
| description | description | |||
| "Grouping for extended reachability attributes of an | "Grouping for 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 "External prefix flag."; | description | |||
| "External prefix flag."; | ||||
| } | } | |||
| leaf readvertisement-flag { | leaf readvertisement-flag { | |||
| type boolean; | type boolean; | |||
| description "Re-advertisement flag."; | description | |||
| "Re-advertisement flag."; | ||||
| } | } | |||
| leaf node-flag { | leaf node-flag { | |||
| type boolean; | type boolean; | |||
| description "Node flag."; | description | |||
| "Node flag."; | ||||
| } | } | |||
| } | } | |||
| grouping prefix-ipv4-source-router-id { | grouping prefix-ipv4-source-router-id { | |||
| description | description | |||
| "Grouping for the IPv4 source router ID of a prefix | "Grouping for the IPv4 source router ID of a prefix | |||
| advertisement."; | advertisement."; | |||
| leaf ipv4-source-router-id { | leaf ipv4-source-router-id { | |||
| type inet:ipv4-address; | type inet:ipv4-address; | |||
| description "IPv4 Source router ID address."; | description | |||
| "IPv4 source router ID address."; | ||||
| } | } | |||
| } | } | |||
| grouping prefix-ipv6-source-router-id { | grouping prefix-ipv6-source-router-id { | |||
| description | description | |||
| "Grouping for the IPv6 source router ID of a prefix | "Grouping for the IPv6 source router ID of a prefix | |||
| advertisement."; | advertisement."; | |||
| leaf ipv6-source-router-id { | leaf ipv6-source-router-id { | |||
| type inet:ipv6-address; | type inet:ipv6-address; | |||
| description "IPv6 Source router ID address."; | description | |||
| "IPv6 source router ID address."; | ||||
| } | } | |||
| } | } | |||
| grouping prefix-attributes-extension { | grouping prefix-attributes-extension { | |||
| description "Prefix extended attributes | description | |||
| as defined in RFC7794."; | "Prefix extended attributes as defined in RFC 7794."; | |||
| reference | ||||
| "RFC 7794: IS-IS Prefix Attributes for Extended IPv4 and IPv6 | ||||
| Reachability"; | ||||
| uses prefix-reachability-attributes; | uses prefix-reachability-attributes; | |||
| uses prefix-ipv4-source-router-id; | uses prefix-ipv4-source-router-id; | |||
| uses prefix-ipv6-source-router-id; | uses prefix-ipv6-source-router-id; | |||
| } | } | |||
| grouping prefix-ipv4-std { | grouping prefix-ipv4-std { | |||
| description | description | |||
| "Grouping for attributes of an IPv4 standard prefix | "Grouping for attributes of an IPv4 standard prefix | |||
| as defined in RFC1195."; | as defined in RFC 1195."; | |||
| reference | ||||
| "RFC 1195: Use of OSI IS-IS for routing in TCP/IP and | ||||
| dual environments"; | ||||
| leaf ip-prefix { | leaf ip-prefix { | |||
| type inet:ipv4-address; | type inet:ipv4-address; | |||
| description "IPv4 prefix address"; | description | |||
| "IPv4 prefix address."; | ||||
| } | } | |||
| leaf prefix-len { | leaf prefix-len { | |||
| type uint8; | type uint8; | |||
| description "IPv4 prefix length (in bits)"; | description | |||
| "IPv4 prefix length (in bits)."; | ||||
| } | } | |||
| leaf i-e { | leaf i-e { | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "Internal or External (I/E) Metric bit value. | "Internal or external (I/E) metric bit value. | |||
| Set to 'false' to indicate an internal metric."; | Set to 'false' to indicate an internal metric."; | |||
| } | } | |||
| container default-metric { | container default-metric { | |||
| leaf metric { | leaf metric { | |||
| type std-metric; | type std-metric; | |||
| description "Default IS-IS metric for IPv4 prefix"; | description | |||
| "Default IS-IS metric for the IPv4 prefix."; | ||||
| } | } | |||
| description "IS-IS default metric container."; | description | |||
| "IS-IS default metric container."; | ||||
| } | } | |||
| container delay-metric { | container delay-metric { | |||
| leaf metric { | leaf metric { | |||
| type std-metric; | type std-metric; | |||
| description "IS-IS delay metric for IPv4 prefix"; | description | |||
| "IS-IS delay metric for the IPv4 prefix."; | ||||
| } | } | |||
| leaf supported { | leaf supported { | |||
| type boolean; | type boolean; | |||
| default "false"; | default "false"; | |||
| description | description | |||
| "Indicates whether IS-IS delay metric is supported."; | "Indicates whether the IS-IS delay metric is supported."; | |||
| } | } | |||
| description "IS-IS delay metric container."; | description | |||
| "IS-IS delay metric container."; | ||||
| } | } | |||
| container expense-metric { | container expense-metric { | |||
| leaf metric { | leaf metric { | |||
| type std-metric; | type std-metric; | |||
| description "IS-IS expense metric for IPv4 prefix"; | description | |||
| "IS-IS expense metric for the IPv4 prefix."; | ||||
| } | } | |||
| leaf supported { | leaf supported { | |||
| type boolean; | type boolean; | |||
| default "false"; | default "false"; | |||
| description | description | |||
| "Indicates whether IS-IS expense metric is supported."; | "Indicates whether the IS-IS expense metric is supported."; | |||
| } | } | |||
| description "IS-IS expense metric container."; | description | |||
| "IS-IS expense metric container."; | ||||
| } | } | |||
| container error-metric { | container error-metric { | |||
| leaf metric { | leaf metric { | |||
| type std-metric; | type std-metric; | |||
| description | description | |||
| "This leaf describes the IS-IS error metric value"; | "This leaf describes the IS-IS error metric value."; | |||
| } | } | |||
| leaf supported { | leaf supported { | |||
| type boolean; | type boolean; | |||
| default "false"; | default "false"; | |||
| description | description | |||
| "Indicates whether IS-IS error metric is supported."; | "Indicates whether the IS-IS error metric is supported."; | |||
| } | } | |||
| description "IS-IS error metric container."; | description | |||
| "IS-IS error metric container."; | ||||
| } | } | |||
| } | } | |||
| grouping prefix-ipv4-extended { | grouping prefix-ipv4-extended { | |||
| description | description | |||
| "Grouping for attributes of an IPv4 extended prefix | "Grouping for attributes of an IPv4 extended prefix | |||
| as defined in RFC5305."; | as defined in RFC 5305."; | |||
| reference | ||||
| "RFC 5305: IS-IS Extensions for Traffic Engineering"; | ||||
| leaf up-down { | leaf up-down { | |||
| type boolean; | type boolean; | |||
| description "Value of up/down bit. | description | |||
| Set to true when the prefix has been advertised down | "Value of the up/down bit. | |||
| the hierarchy."; | Set to 'true' when the prefix has been advertised down | |||
| the hierarchy."; | ||||
| } | } | |||
| leaf ip-prefix { | leaf ip-prefix { | |||
| type inet:ipv4-address; | type inet:ipv4-address; | |||
| description "IPv4 prefix address"; | description | |||
| "IPv4 prefix address."; | ||||
| } | } | |||
| leaf prefix-len { | leaf prefix-len { | |||
| type uint8; | type uint8; | |||
| description "IPv4 prefix length (in bits)"; | description | |||
| "IPv4 prefix length (in bits)."; | ||||
| } | } | |||
| leaf metric { | leaf metric { | |||
| type wide-metric; | type wide-metric; | |||
| description "IS-IS wide metric value"; | description | |||
| "IS-IS wide metric value."; | ||||
| } | } | |||
| leaf-list tag { | leaf-list tag { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "List of 32-bit tags associated with the IPv4 prefix."; | "List of 32-bit tags associated with the IPv4 prefix."; | |||
| } | } | |||
| leaf-list tag64 { | leaf-list tag64 { | |||
| type uint64; | type uint64; | |||
| description | description | |||
| "List of 64-bit tags associated with the IPv4 prefix."; | "List of 64-bit tags associated with the IPv4 prefix."; | |||
| } | } | |||
| uses prefix-attributes-extension; | uses prefix-attributes-extension; | |||
| } | } | |||
| grouping prefix-ipv6-extended { | grouping prefix-ipv6-extended { | |||
| description "Grouping for attributes of an IPv6 prefix | description | |||
| as defined in RFC5308."; | "Grouping for attributes of an IPv6 prefix | |||
| as defined in RFC 5308."; | ||||
| reference | ||||
| "RFC 5308: Routing IPv6 with IS-IS"; | ||||
| leaf up-down { | leaf up-down { | |||
| type boolean; | type boolean; | |||
| description "Value of up/down bit. | description | |||
| Set to true when the prefix has been advertised down | "Value of the up/down bit. | |||
| the hierarchy."; | Set to 'true' when the prefix has been advertised down | |||
| the hierarchy."; | ||||
| } | } | |||
| leaf ip-prefix { | leaf ip-prefix { | |||
| type inet:ipv6-address; | type inet:ipv6-address; | |||
| description "IPv6 prefix address"; | description | |||
| "IPv6 prefix address."; | ||||
| } | } | |||
| leaf prefix-len { | leaf prefix-len { | |||
| type uint8; | type uint8; | |||
| description "IPv6 prefix length (in bits)"; | description | |||
| "IPv6 prefix length (in bits)."; | ||||
| } | } | |||
| leaf metric { | leaf metric { | |||
| type wide-metric; | type wide-metric; | |||
| description "IS-IS wide metric value"; | description | |||
| "IS-IS wide metric value."; | ||||
| } | } | |||
| leaf-list tag { | leaf-list tag { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "List of 32-bit tags associated with the IPv4 prefix."; | "List of 32-bit tags associated with the IPv6 prefix."; | |||
| } | } | |||
| leaf-list tag64 { | leaf-list tag64 { | |||
| type uint64; | type uint64; | |||
| description | description | |||
| "List of 64-bit tags associated with the IPv4 prefix."; | "List of 64-bit tags associated with the IPv6 prefix."; | |||
| } | } | |||
| uses prefix-attributes-extension; | uses prefix-attributes-extension; | |||
| } | } | |||
| /* TLVs and sub-TLVs for neighbors */ | /* TLVs and sub-TLVs for neighbors */ | |||
| grouping neighbor-link-attributes { | grouping neighbor-link-attributes { | |||
| description | description | |||
| "Grouping for link attributes as defined | "Grouping for link attributes as defined | |||
| in RFC5029"; | in RFC 5029."; | |||
| reference | ||||
| "RFC 5029: Definition of an IS-IS Link Attribute Sub-TLV"; | ||||
| leaf link-attributes-flags { | leaf link-attributes-flags { | |||
| type uint16; | type uint16; | |||
| description | description | |||
| "Flags for the link attributes"; | "Flags for the link attributes."; | |||
| } | } | |||
| } | } | |||
| grouping neighbor-gmpls-extensions { | grouping neighbor-gmpls-extensions { | |||
| description | description | |||
| "Grouping for GMPLS attributes of a neighbor as defined | "Grouping for GMPLS attributes of a neighbor as defined | |||
| in RFC5307"; | in RFC 5307."; | |||
| reference | ||||
| "RFC 5307: IS-IS Extensions in Support of Generalized | ||||
| Multi-Protocol Label Switching (GMPLS)"; | ||||
| leaf link-local-id { | leaf link-local-id { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Local identifier of the link."; | "Local identifier of the link."; | |||
| } | } | |||
| leaf remote-local-id { | leaf remote-local-id { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Remote identifier of the link."; | "Remote identifier of the link."; | |||
| } | } | |||
| leaf protection-capability { | leaf protection-capability { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "Describes the protection capabilities | "Describes the protection capabilities | |||
| of the link. This is the value of the | of the link. This is the value of the | |||
| first octet of the sub-TLV type 20 value."; | first octet of the sub-TLV type 20 value."; | |||
| } | } | |||
| container interface-switching-capability { | container interface-switching-capability { | |||
| description | description | |||
| "Interface switching capabilities of the link."; | "Interface switching capabilities of the link."; | |||
| leaf switching-capability { | leaf switching-capability { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "Switching capability of the link."; | "Switching capability of the link."; | |||
| } | } | |||
| leaf encoding { | leaf encoding { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "Type of encoding of the LSP being used."; | "Type of encoding of the LSP being used."; | |||
| } | } | |||
| container max-lsp-bandwidths { | container max-lsp-bandwidths { | |||
| description "Per-priority max LSP bandwidths."; | description | |||
| "Per-priority maximum LSP bandwidths."; | ||||
| list max-lsp-bandwidth { | list max-lsp-bandwidth { | |||
| leaf priority { | leaf priority { | |||
| type uint8 { | type uint8 { | |||
| range "0 .. 7"; | range "0 .. 7"; | |||
| } | } | |||
| description "Priority from 0 to 7."; | description | |||
| "Priority from 0 to 7."; | ||||
| } | } | |||
| leaf bandwidth { | leaf bandwidth { | |||
| type rt-types:bandwidth-ieee-float32; | type rt-types:bandwidth-ieee-float32; | |||
| description "max LSP bandwidth."; | description | |||
| "Maximum LSP bandwidth."; | ||||
| } | } | |||
| description | description | |||
| "List of max LSP bandwidths for different | "List of maximum LSP bandwidths for different | |||
| priorities."; | priorities."; | |||
| } | } | |||
| } | } | |||
| container tdm-specific { | container tdm-specific { | |||
| when "../switching-capability = 100"; | when '../switching-capability = 100'; | |||
| description | description | |||
| "Switching Capability-specific information applicable | "Switching-capability-specific information applicable | |||
| when switching type is TDM."; | when the switching type is Time-Division Multiplexing | |||
| (TDM)."; | ||||
| leaf minimum-lsp-bandwidth { | leaf minimum-lsp-bandwidth { | |||
| type rt-types:bandwidth-ieee-float32; | type rt-types:bandwidth-ieee-float32; | |||
| description "minimum LSP bandwidth."; | description | |||
| "Minimum LSP bandwidth."; | ||||
| } | } | |||
| leaf indication { | leaf indication { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "The indication whether the interface supports Standard | "Indicates whether the interface supports Standard | |||
| or Arbitrary SONET/SDH."; | or Arbitrary SONET/SDH (Synchronous Optical Network / | |||
| Synchronous Digital Hierarchy)."; | ||||
| } | } | |||
| } | } | |||
| container psc-specific { | container psc-specific { | |||
| when "../switching-capability >= 1 and | when "../switching-capability >= 1 and | |||
| ../switching-capability <= 4"; | ../switching-capability <= 4"; | |||
| description | description | |||
| "Switching Capability-specific information applicable | "Switching-capability-specific information applicable | |||
| when switching type is PSC1,PSC2,PSC3 or PSC4."; | when the switching type is PSC1, PSC2, PSC3, or PSC4 | |||
| ('PSC' stands for 'Packet Switching Capability')."; | ||||
| leaf minimum-lsp-bandwidth { | leaf minimum-lsp-bandwidth { | |||
| type rt-types:bandwidth-ieee-float32; | type rt-types:bandwidth-ieee-float32; | |||
| description "minimum LSP bandwidth."; | description | |||
| "Minimum LSP bandwidth."; | ||||
| } | } | |||
| leaf mtu { | leaf mtu { | |||
| type uint16; | type uint16; | |||
| units bytes; | units "bytes"; | |||
| description | description | |||
| "Interface MTU"; | "Interface MTU."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping neighbor-extended-te-extensions { | grouping neighbor-extended-te-extensions { | |||
| description | description | |||
| "Grouping for TE attributes of a neighbor as defined | "Grouping for TE attributes of a neighbor as defined | |||
| in RFC8570"; | in RFC 8570."; | |||
| reference | ||||
| "RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; | ||||
| container unidirectional-link-delay { | container unidirectional-link-delay { | |||
| description | description | |||
| "Container for the average delay | "Container for the average delay | |||
| from the local neighbor to the remote one."; | from the local neighbor to the remote neighbor."; | |||
| container flags { | container flags { | |||
| leaf-list unidirectional-link-delay-subtlv-flags { | leaf-list unidirectional-link-delay-subtlv-flags { | |||
| type identityref { | type identityref { | |||
| base unidirectional-link-delay-subtlv-flag; | base unidirectional-link-delay-subtlv-flag; | |||
| } | } | |||
| description | description | |||
| "This list contains identities for the bits | "This list contains identities for the bits that | |||
| which are set."; | are set."; | |||
| } | } | |||
| description | description | |||
| "unidirectional-link-delay subTLV flags."; | "Unidirectional Link Delay sub-TLV flags."; | |||
| } | } | |||
| leaf value { | leaf value { | |||
| type uint32; | type uint32; | |||
| units usec; | units "usec"; | |||
| description | description | |||
| "Delay value expressed in microseconds."; | "Delay value expressed in microseconds."; | |||
| } | } | |||
| } | } | |||
| container min-max-unidirectional-link-delay { | container min-max-unidirectional-link-delay { | |||
| description | description | |||
| "Container for the min and max delay | "Container for the minimum and maximum delay | |||
| from the local neighbor to the remote one."; | from the local neighbor to the remote neighbor."; | |||
| container flags { | container flags { | |||
| leaf-list min-max-unidirectional-link-delay-subtlv-flags { | leaf-list min-max-unidirectional-link-delay-subtlv-flags { | |||
| type identityref { | type identityref { | |||
| base min-max-unidirectional-link-delay-subtlv-flag; | base min-max-unidirectional-link-delay-subtlv-flag; | |||
| } | } | |||
| description | description | |||
| "This list contains identities for the bits which are | "This list contains identities for the bits that | |||
| set."; | are set."; | |||
| } | } | |||
| description | description | |||
| "min-max-unidirectional-link-delay subTLV flags."; | "Min/Max Unidirectional Link Delay sub-TLV flags."; | |||
| } | } | |||
| leaf min-value { | leaf min-value { | |||
| type uint32; | type uint32; | |||
| units usec; | units "usec"; | |||
| description | description | |||
| "Minimum delay value expressed in microseconds."; | "Minimum delay value expressed in microseconds."; | |||
| } | } | |||
| leaf max-value { | leaf max-value { | |||
| type uint32; | type uint32; | |||
| units usec; | units "usec"; | |||
| description | description | |||
| "Maximum delay value expressed in microseconds."; | "Maximum delay value expressed in microseconds."; | |||
| } | } | |||
| } | } | |||
| container unidirectional-link-delay-variation { | container unidirectional-link-delay-variation { | |||
| description | description | |||
| "Container for the average delay variation | "Container for the average delay variation | |||
| from the local neighbor to the remote one."; | from the local neighbor to the remote neighbor."; | |||
| leaf value { | leaf value { | |||
| type uint32; | type uint32; | |||
| units usec; | units "usec"; | |||
| description | description | |||
| "Delay variation value expressed in microseconds."; | "Delay variation value expressed in microseconds."; | |||
| } | } | |||
| } | } | |||
| container unidirectional-link-loss { | container unidirectional-link-loss { | |||
| description | description | |||
| "Container for the packet loss | "Container for packet loss from the local neighbor to the | |||
| from the local neighbor to the remote one."; | remote neighbor."; | |||
| container flags { | container flags { | |||
| leaf-list unidirectional-link-loss-subtlv-flags { | leaf-list unidirectional-link-loss-subtlv-flags { | |||
| type identityref { | type identityref { | |||
| base unidirectional-link-loss-subtlv-flag; | base unidirectional-link-loss-subtlv-flag; | |||
| } | } | |||
| description | description | |||
| "This list contains identities for the bits which are | "This list contains identities for the bits that | |||
| set."; | are set."; | |||
| } | } | |||
| description | description | |||
| "unidirectional-link-loss subTLV flags."; | "Unidirectional Link Loss sub-TLV flags."; | |||
| } | } | |||
| leaf value { | leaf value { | |||
| type uint32; | type uint32; | |||
| units percent; | units "percent"; | |||
| description | description | |||
| "Link packet loss expressed as a percentage | "Link packet loss expressed as a percentage of | |||
| of the total traffic sent over a configurable interval."; | the total traffic sent over a configurable interval."; | |||
| } | } | |||
| } | } | |||
| container unidirectional-link-residual-bandwidth { | container unidirectional-link-residual-bandwidth { | |||
| description | description | |||
| "Container for the residual bandwidth | "Container for the residual bandwidth | |||
| from the local neighbor to the remote one."; | from the local neighbor to the remote neighbor."; | |||
| leaf value { | leaf value { | |||
| type rt-types:bandwidth-ieee-float32; | type rt-types:bandwidth-ieee-float32; | |||
| units Bps; | units "Bps"; | |||
| description | description | |||
| "Residual bandwidth."; | "Residual bandwidth."; | |||
| } | } | |||
| } | } | |||
| container unidirectional-link-available-bandwidth { | container unidirectional-link-available-bandwidth { | |||
| description | description | |||
| "Container for the available bandwidth | "Container for the available bandwidth | |||
| from the local neighbor to the remote one."; | from the local neighbor to the remote neighbor."; | |||
| leaf value { | leaf value { | |||
| type rt-types:bandwidth-ieee-float32; | type rt-types:bandwidth-ieee-float32; | |||
| units Bps; | units "Bps"; | |||
| description | description | |||
| "Available bandwidth."; | "Available bandwidth."; | |||
| } | } | |||
| } | } | |||
| container unidirectional-link-utilized-bandwidth { | container unidirectional-link-utilized-bandwidth { | |||
| description | description | |||
| "Container for the utilized bandwidth | "Container for the utilized bandwidth | |||
| from the local neighbor to the remote one."; | from the local neighbor to the remote neighbor."; | |||
| leaf value { | leaf value { | |||
| type rt-types:bandwidth-ieee-float32; | type rt-types:bandwidth-ieee-float32; | |||
| units Bps; | units "Bps"; | |||
| description | description | |||
| "Utilized bandwidth."; | "Utilized bandwidth."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping neighbor-te-extensions { | grouping neighbor-te-extensions { | |||
| description | description | |||
| "Grouping for TE attributes of a neighbor as defined | "Grouping for TE attributes of a neighbor as defined | |||
| in RFC5305"; | in RFC 5305."; | |||
| reference | ||||
| "RFC 5305: IS-IS Extensions for Traffic Engineering"; | ||||
| leaf admin-group { | leaf admin-group { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Administrative group/Resource Class/Color."; | "Administrative Group / Resource Class/Color."; | |||
| } | } | |||
| container local-if-ipv4-addrs { | container local-if-ipv4-addrs { | |||
| description "All local interface IPv4 addresses."; | description | |||
| "All local interface IPv4 addresses."; | ||||
| leaf-list local-if-ipv4-addr { | leaf-list local-if-ipv4-addr { | |||
| type inet:ipv4-address; | type inet:ipv4-address; | |||
| description | description | |||
| "List of local interface IPv4 addresses."; | "List of local interface IPv4 addresses."; | |||
| } | } | |||
| } | } | |||
| container remote-if-ipv4-addrs { | container remote-if-ipv4-addrs { | |||
| description "All remote interface IPv4 addresses."; | description | |||
| "All remote interface IPv4 addresses."; | ||||
| leaf-list remote-if-ipv4-addr { | leaf-list remote-if-ipv4-addr { | |||
| type inet:ipv4-address; | type inet:ipv4-address; | |||
| description | description | |||
| "List of remote interface IPv4 addresses."; | "List of remote interface IPv4 addresses."; | |||
| } | } | |||
| } | } | |||
| leaf te-metric { | leaf te-metric { | |||
| type uint32; | type uint32; | |||
| description "TE metric."; | description | |||
| "TE metric."; | ||||
| } | } | |||
| leaf max-bandwidth { | leaf max-bandwidth { | |||
| type rt-types:bandwidth-ieee-float32; | type rt-types:bandwidth-ieee-float32; | |||
| description "Maximum bandwidth."; | description | |||
| "Maximum bandwidth."; | ||||
| } | } | |||
| leaf max-reservable-bandwidth { | leaf max-reservable-bandwidth { | |||
| type rt-types:bandwidth-ieee-float32; | type rt-types:bandwidth-ieee-float32; | |||
| description "Maximum reservable bandwidth."; | description | |||
| "Maximum reservable bandwidth."; | ||||
| } | } | |||
| container unreserved-bandwidths { | container unreserved-bandwidths { | |||
| description "All unreserved bandwidths."; | description | |||
| "All unreserved bandwidths."; | ||||
| list unreserved-bandwidth { | list unreserved-bandwidth { | |||
| leaf priority { | leaf priority { | |||
| type uint8 { | type uint8 { | |||
| range "0 .. 7"; | range "0 .. 7"; | |||
| } | } | |||
| description "Priority from 0 to 7."; | description | |||
| "Priority from 0 to 7."; | ||||
| } | } | |||
| leaf unreserved-bandwidth { | leaf unreserved-bandwidth { | |||
| type rt-types:bandwidth-ieee-float32; | type rt-types:bandwidth-ieee-float32; | |||
| description "Unreserved bandwidth."; | description | |||
| "Unreserved bandwidth."; | ||||
| } | } | |||
| description | description | |||
| "List of unreserved bandwidths for different | "List of unreserved bandwidths for different | |||
| priorities."; | priorities."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping neighbor-extended { | grouping neighbor-extended { | |||
| description | description | |||
| "Grouping for attributes of an IS-IS extended neighbor."; | "Grouping for attributes of an IS-IS extended neighbor."; | |||
| leaf neighbor-id { | leaf neighbor-id { | |||
| type extended-system-id; | type extended-system-id; | |||
| description "system-id of the extended neighbor."; | description | |||
| "System ID of the extended neighbor."; | ||||
| } | } | |||
| container instances { | container instances { | |||
| description "List of all adjacencies between the local | description | |||
| system and the neighbor system-id."; | "List of all adjacencies between the local | |||
| system and the neighbor system ID."; | ||||
| list instance { | list instance { | |||
| key id; | key "id"; | |||
| leaf id { | leaf id { | |||
| type uint32; | type uint32; | |||
| description "Unique identifier of an instance of a | description | |||
| particular neighbor."; | "Unique identifier of an instance of a | |||
| particular neighbor."; | ||||
| } | } | |||
| leaf metric { | leaf metric { | |||
| type wide-metric; | type wide-metric; | |||
| description "IS-IS wide metric for extended neighbor"; | description | |||
| "IS-IS wide metric for the extended neighbor."; | ||||
| } | } | |||
| uses neighbor-gmpls-extensions; | uses neighbor-gmpls-extensions; | |||
| uses neighbor-te-extensions; | uses neighbor-te-extensions; | |||
| uses neighbor-extended-te-extensions; | uses neighbor-extended-te-extensions; | |||
| uses neighbor-link-attributes; | uses neighbor-link-attributes; | |||
| uses unknown-tlvs; | uses unknown-tlvs; | |||
| description "Instance of a particular adjacency."; | description | |||
| "Instance of a particular adjacency."; | ||||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping neighbor { | grouping neighbor { | |||
| description "IS-IS standard neighbor grouping."; | description | |||
| "IS-IS standard neighbor grouping."; | ||||
| leaf neighbor-id { | leaf neighbor-id { | |||
| type extended-system-id; | type extended-system-id; | |||
| description "IS-IS neighbor system-id"; | description | |||
| "IS-IS neighbor system ID."; | ||||
| } | } | |||
| container instances { | container instances { | |||
| description "List of all adjacencies between the local | description | |||
| system and the neighbor system-id."; | "List of all adjacencies between the local | |||
| system and the neighbor system ID."; | ||||
| list instance { | list instance { | |||
| key id; | key "id"; | |||
| leaf id { | leaf id { | |||
| type uint32; | type uint32; | |||
| description "Unique identifier of an instance of a | description | |||
| particular neighbor."; | "Unique identifier of an instance of a | |||
| particular neighbor."; | ||||
| } | } | |||
| leaf i-e { | leaf i-e { | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "Internal or External (I/E) Metric bit value. | "Internal or external (I/E) metric bit value. | |||
| Set to 'false' to indicate an internal metric."; | Set to 'false' to indicate an internal metric."; | |||
| } | } | |||
| container default-metric { | container default-metric { | |||
| leaf metric { | leaf metric { | |||
| type std-metric; | type std-metric; | |||
| description "IS-IS default metric value"; | description | |||
| "IS-IS default metric value."; | ||||
| } | } | |||
| description "IS-IS default metric container"; | description | |||
| "IS-IS default metric container."; | ||||
| } | } | |||
| container delay-metric { | container delay-metric { | |||
| leaf metric { | leaf metric { | |||
| type std-metric; | type std-metric; | |||
| description "IS-IS delay metric value"; | description | |||
| "IS-IS delay metric value."; | ||||
| } | } | |||
| leaf supported { | leaf supported { | |||
| type boolean; | type boolean; | |||
| default "false"; | default "false"; | |||
| description "IS-IS delay metric supported"; | description | |||
| "IS-IS delay metric supported."; | ||||
| } | } | |||
| description "IS-IS delay metric container"; | description | |||
| "IS-IS delay metric container."; | ||||
| } | } | |||
| container expense-metric { | container expense-metric { | |||
| leaf metric { | leaf metric { | |||
| type std-metric; | type std-metric; | |||
| description "IS-IS expense metric value"; | description | |||
| "IS-IS expense metric value."; | ||||
| } | } | |||
| leaf supported { | leaf supported { | |||
| type boolean; | type boolean; | |||
| default "false"; | default "false"; | |||
| description "IS-IS expense metric supported"; | description | |||
| "IS-IS expense metric supported."; | ||||
| } | } | |||
| description "IS-IS expense metric container"; | description | |||
| "IS-IS expense metric container."; | ||||
| } | } | |||
| container error-metric { | container error-metric { | |||
| leaf metric { | leaf metric { | |||
| type std-metric; | type std-metric; | |||
| description "IS-IS error metric value"; | description | |||
| "IS-IS error metric value."; | ||||
| } | } | |||
| leaf supported { | leaf supported { | |||
| type boolean; | type boolean; | |||
| default "false"; | default "false"; | |||
| description "IS-IS error metric supported"; | description | |||
| "IS-IS error metric supported."; | ||||
| } | } | |||
| description "IS-IS error metric container"; | description | |||
| "IS-IS error metric container."; | ||||
| } | } | |||
| description "Instance of a particular adjacency | description | |||
| as defined in ISO10589."; | "Instance of a particular adjacency as defined in | |||
| ISO 10589."; | ||||
| reference | ||||
| "ISO 10589: Intermediate System to Intermediate System | ||||
| intra-domain routeing information exchange protocol | ||||
| for use in conjunction with the protocol for providing | ||||
| the connectionless-mode network service (ISO 8473)"; | ||||
| } | } | |||
| } | } | |||
| } | } | |||
| /* Top-level TLVs */ | /* Top-level TLVs */ | |||
| grouping tlv132-ipv4-addresses { | grouping tlv132-ipv4-addresses { | |||
| leaf-list ipv4-addresses { | leaf-list ipv4-addresses { | |||
| type inet:ipv4-address; | type inet:ipv4-address; | |||
| description | description | |||
| "List of IPv4 addresses of the IS-IS node - IS-IS | "List of IPv4 addresses of the IS-IS node. The IS-IS | |||
| reference is TLV 132."; | reference is TLV 132."; | |||
| } | } | |||
| description "Grouping for TLV132."; | description | |||
| "Grouping for TLV 132."; | ||||
| } | } | |||
| grouping tlv232-ipv6-addresses { | grouping tlv232-ipv6-addresses { | |||
| leaf-list ipv6-addresses { | leaf-list ipv6-addresses { | |||
| type inet:ipv6-address; | type inet:ipv6-address; | |||
| description | description | |||
| "List of IPv6 addresses of the IS-IS node - IS-IS | "List of IPv6 addresses of the IS-IS node. The IS-IS | |||
| reference is TLV 232."; | reference is TLV 232."; | |||
| } | } | |||
| description "Grouping for TLV232."; | description | |||
| "Grouping for TLV 232."; | ||||
| } | } | |||
| grouping tlv134-ipv4-te-rid { | grouping tlv134-ipv4-te-rid { | |||
| leaf ipv4-te-routerid { | leaf ipv4-te-routerid { | |||
| type inet:ipv4-address; | type inet:ipv4-address; | |||
| description | description | |||
| "IPv4 Traffic Engineering router ID of the IS-IS node - | "IPv4 Traffic Engineering router ID of the IS-IS node. | |||
| IS-IS reference is TLV 134."; | The IS-IS reference is TLV 134."; | |||
| } | } | |||
| description "Grouping for TLV134."; | description | |||
| "Grouping for TLV 134."; | ||||
| } | } | |||
| grouping tlv140-ipv6-te-rid { | grouping tlv140-ipv6-te-rid { | |||
| leaf ipv6-te-routerid { | leaf ipv6-te-routerid { | |||
| type inet:ipv6-address; | type inet:ipv6-address; | |||
| description | description | |||
| "IPv6 Traffic Engineering router ID of the IS-IS node - | "IPv6 Traffic Engineering router ID of the IS-IS node. | |||
| IS-IS reference is TLV 140."; | The IS-IS reference is TLV 140."; | |||
| } | } | |||
| description "Grouping for TLV140."; | description | |||
| "Grouping for TLV 140."; | ||||
| } | } | |||
| grouping tlv129-protocols { | grouping tlv129-protocols { | |||
| leaf-list protocol-supported { | leaf-list protocol-supported { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "List of supported protocols of the IS-IS node - | "List of supported protocols of the IS-IS node. | |||
| IS-IS reference is TLV 129."; | The IS-IS reference is TLV 129."; | |||
| } | } | |||
| description "Grouping for TLV129."; | description | |||
| "Grouping for TLV 129."; | ||||
| } | } | |||
| grouping tlv137-hostname { | grouping tlv137-hostname { | |||
| leaf dynamic-hostname { | leaf dynamic-hostname { | |||
| type string; | type string; | |||
| description | description | |||
| "Host Name of the IS-IS node - IS-IS reference | "Hostname of the IS-IS node. The IS-IS reference | |||
| is TLV 137."; | is TLV 137."; | |||
| } | } | |||
| description "Grouping for TLV137."; | description | |||
| "Grouping for TLV 137."; | ||||
| } | } | |||
| grouping tlv10-authentication { | grouping tlv10-authentication { | |||
| container authentication { | container authentication { | |||
| leaf authentication-type { | leaf authentication-type { | |||
| type identityref { | type identityref { | |||
| base key-chain:crypto-algorithm; | base key-chain:crypto-algorithm; | |||
| } | } | |||
| description | description | |||
| "Authentication type to be used with IS-IS node."; | "Authentication type to be used with an IS-IS node."; | |||
| } | } | |||
| leaf authentication-key { | leaf authentication-key { | |||
| type string; | type string; | |||
| description | description | |||
| "Authentication key to be used. For security reasons, | "Authentication key to be used. For security reasons, | |||
| the authentication key MUST NOT be presented in | the authentication key MUST NOT be presented in | |||
| a clear text format in response to any request | a cleartext format in response to any request | |||
| (e.g., via get, get-config)."; | (e.g., via get or get-config)."; | |||
| } | } | |||
| description | description | |||
| "IS-IS node authentication information container - | "IS-IS node authentication information container. The | |||
| IS-IS reference is TLV 10."; | IS-IS reference is TLV 10."; | |||
| } | } | |||
| description "Grouping for TLV10."; | description | |||
| "Grouping for TLV 10."; | ||||
| } | } | |||
| grouping tlv229-mt { | grouping tlv229-mt { | |||
| container mt-entries { | container mt-entries { | |||
| list topology { | list topology { | |||
| description | description | |||
| "List of topologies supported"; | "List of topologies supported."; | |||
| leaf mt-id { | leaf mt-id { | |||
| type uint16 { | type uint16 { | |||
| range "0 .. 4095"; | range "0 .. 4095"; | |||
| } | } | |||
| description | description | |||
| "Multi-Topology identifier of topology."; | "Multi-Topology (MT) identifier of the topology."; | |||
| } | } | |||
| container attributes { | container attributes { | |||
| leaf-list flags { | leaf-list flags { | |||
| type identityref { | type identityref { | |||
| base tlv229-flag; | base tlv229-flag; | |||
| } | ||||
| description | ||||
| "This list contains identities for the bits which are | ||||
| set."; | ||||
| } | } | |||
| description | description | |||
| "TLV 229 flags."; | "This list contains identities for the bits that | |||
| are set."; | ||||
| } | ||||
| description | ||||
| "TLV 229 flags."; | ||||
| } | } | |||
| } | } | |||
| description | description | |||
| "IS-IS node topology information container - | "IS-IS node topology information container. The | |||
| IS-IS reference is TLV 229."; | IS-IS reference is TLV 229."; | |||
| } | } | |||
| description "Grouping for TLV229."; | description | |||
| "Grouping for TLV 229."; | ||||
| } | } | |||
| grouping tlv242-router-capabilities { | grouping tlv242-router-capabilities { | |||
| container router-capabilities { | container router-capabilities { | |||
| list router-capability { | list router-capability { | |||
| container flags { | container flags { | |||
| leaf-list router-capability-flags { | leaf-list router-capability-flags { | |||
| type identityref { | type identityref { | |||
| base router-capability-flag; | base router-capability-flag; | |||
| } | ||||
| description | ||||
| "This list contains identities for the bits which are | ||||
| set."; | ||||
| } | } | |||
| description | description | |||
| "Router capability flags."; | "This list contains identities for the bits that | |||
| are set."; | ||||
| } | } | |||
| container node-tags { | description | |||
| if-feature node-tag; | "Router Capability flags."; | |||
| list node-tag { | } | |||
| leaf tag { | container node-tags { | |||
| type uint32; | if-feature "node-tag"; | |||
| description "Node tag value."; | list node-tag { | |||
| } | leaf tag { | |||
| description "List of tags."; | type uint32; | |||
| description | ||||
| "Node tag value."; | ||||
| } | } | |||
| description "Container for node admin tags"; | description | |||
| "List of tags."; | ||||
| } | } | |||
| uses unknown-tlvs; | ||||
| description | description | |||
| "IS-IS node capabilities. This list element may | "Container for node administrative tags."; | |||
| be extended with detailed information - IS-IS | ||||
| reference is TLV 242."; | ||||
| } | } | |||
| description "List of router capability TLVs."; | uses unknown-tlvs; | |||
| description | ||||
| "IS-IS node capabilities. This list element may | ||||
| be extended with detailed information. The IS-IS | ||||
| reference is TLV 242."; | ||||
| } | } | |||
| description "Grouping for TLV242."; | description | |||
| "List of Router Capability TLVs."; | ||||
| } | ||||
| description | ||||
| "Grouping for TLV 242."; | ||||
| } | } | |||
| grouping tlv138-srlg { | grouping tlv138-srlg { | |||
| description | description | |||
| "Grouping for TLV138."; | "Grouping for TLV 138."; | |||
| container links-srlgs { | container links-srlgs { | |||
| list links { | list links { | |||
| leaf neighbor-id { | leaf neighbor-id { | |||
| type extended-system-id; | type extended-system-id; | |||
| description "system-id of the extended neighbor."; | description | |||
| "System ID of the extended neighbor."; | ||||
| } | } | |||
| leaf flags { | leaf flags { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "Flags associated with the link."; | "Flags associated with the link."; | |||
| } | } | |||
| leaf link-local-id { | leaf link-local-id { | |||
| type union { | type union { | |||
| type inet:ip-address; | type inet:ip-address; | |||
| type uint32; | type uint32; | |||
| } | } | |||
| description | description | |||
| "Local identifier of the link. | "Local identifier of the link. | |||
| It could be an IPv4 address or a local identifier."; | It could be an IPv4 address or a local identifier."; | |||
| } | } | |||
| leaf link-remote-id { | leaf link-remote-id { | |||
| type union { | type union { | |||
| type inet:ip-address; | type inet:ip-address; | |||
| type uint32; | type uint32; | |||
| } | } | |||
| description | description | |||
| "Remote identifier of the link. | "Remote identifier of the link. | |||
| It could be an IPv4 address or a remotely learned | It could be an IPv4 address or a remotely learned | |||
| identifier."; | identifier."; | |||
| } | } | |||
| container srlgs { | container srlgs { | |||
| description "List of SRLGs."; | description | |||
| "List of SRLGs."; | ||||
| leaf-list srlg { | leaf-list srlg { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "SRLG value of the link."; | "SRLG value of the link."; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "SRLG attribute of a link."; | "SRLG attribute of a link."; | |||
| } | } | |||
| description | description | |||
| "List of links with SRLGs"; | "List of links with SRLGs."; | |||
| } | } | |||
| } | } | |||
| /* Grouping for LSDB description */ | /* Grouping for LSDB descriptions */ | |||
| grouping lsp-entry { | grouping lsp-entry { | |||
| description "IS-IS LSP database entry grouping"; | description | |||
| "IS-IS LSP database entry grouping."; | ||||
| leaf decoded-completed { | leaf decoded-completed { | |||
| type boolean; | type boolean; | |||
| description "IS-IS LSP body fully decoded."; | description | |||
| "The IS-IS LSP body has been fully decoded."; | ||||
| } | } | |||
| leaf raw-data { | leaf raw-data { | |||
| type yang:hex-string; | type yang:hex-string; | |||
| description | description | |||
| "The hexadecimal representation of the complete LSP in | "The hexadecimal representation of the complete LSP | |||
| network-byte order (NBO) as received or originated."; | as received or originated, in network byte order."; | |||
| } | } | |||
| leaf lsp-id { | leaf lsp-id { | |||
| type lsp-id; | type lsp-id; | |||
| description "LSP ID of the LSP"; | description | |||
| "LSP ID of the LSP."; | ||||
| } | } | |||
| leaf checksum { | leaf checksum { | |||
| type uint16; | type uint16; | |||
| description "LSP checksum"; | description | |||
| "LSP checksum."; | ||||
| } | } | |||
| leaf remaining-lifetime { | leaf remaining-lifetime { | |||
| type uint16; | type uint16; | |||
| units "seconds"; | units "seconds"; | |||
| description | description | |||
| "Remaining lifetime (in seconds) until LSP expiration."; | "Remaining lifetime (in seconds) until LSP expiration."; | |||
| } | } | |||
| leaf sequence { | leaf sequence { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "This leaf describes the sequence number of the LSP."; | "This leaf describes the sequence number of the LSP."; | |||
| } | } | |||
| container attributes { | container attributes { | |||
| leaf-list lsp-flags { | leaf-list lsp-flags { | |||
| type identityref { | type identityref { | |||
| base lsp-flag; | base lsp-flag; | |||
| } | ||||
| description | ||||
| "This list contains identities for the bits which are | ||||
| set."; | ||||
| } | } | |||
| description "LSP attributes."; | description | |||
| "This list contains identities for the bits that | ||||
| are set."; | ||||
| } | ||||
| description | ||||
| "LSP attributes."; | ||||
| } | } | |||
| uses tlv132-ipv4-addresses; | uses tlv132-ipv4-addresses; | |||
| uses tlv232-ipv6-addresses; | uses tlv232-ipv6-addresses; | |||
| uses tlv134-ipv4-te-rid; | uses tlv134-ipv4-te-rid; | |||
| uses tlv140-ipv6-te-rid; | uses tlv140-ipv6-te-rid; | |||
| uses tlv129-protocols; | uses tlv129-protocols; | |||
| uses tlv137-hostname; | uses tlv137-hostname; | |||
| uses tlv10-authentication; | uses tlv10-authentication; | |||
| uses tlv229-mt; | uses tlv229-mt; | |||
| uses tlv242-router-capabilities; | uses tlv242-router-capabilities; | |||
| uses tlv138-srlg; | uses tlv138-srlg; | |||
| skipping to change at line 4352 ¶ | skipping to change at line 4657 ¶ | |||
| uses tlv232-ipv6-addresses; | uses tlv232-ipv6-addresses; | |||
| uses tlv134-ipv4-te-rid; | uses tlv134-ipv4-te-rid; | |||
| uses tlv140-ipv6-te-rid; | uses tlv140-ipv6-te-rid; | |||
| uses tlv129-protocols; | uses tlv129-protocols; | |||
| uses tlv137-hostname; | uses tlv137-hostname; | |||
| uses tlv10-authentication; | uses tlv10-authentication; | |||
| uses tlv229-mt; | uses tlv229-mt; | |||
| uses tlv242-router-capabilities; | uses tlv242-router-capabilities; | |||
| uses tlv138-srlg; | uses tlv138-srlg; | |||
| uses unknown-tlvs; | uses unknown-tlvs; | |||
| container is-neighbor { | container is-neighbor { | |||
| list neighbor { | list neighbor { | |||
| key neighbor-id; | key "neighbor-id"; | |||
| uses neighbor; | uses neighbor; | |||
| description "List of neighbors."; | description | |||
| "List of neighbors."; | ||||
| } | } | |||
| description | description | |||
| "Standard IS neighbors container - IS-IS reference is | "Standard IS neighbors container. The IS-IS reference is | |||
| TLV 2."; | TLV 2."; | |||
| } | } | |||
| container extended-is-neighbor { | container extended-is-neighbor { | |||
| list neighbor { | list neighbor { | |||
| key neighbor-id; | key "neighbor-id"; | |||
| uses neighbor-extended; | uses neighbor-extended; | |||
| description | description | |||
| "List of extended IS neighbors"; | "List of extended IS neighbors."; | |||
| } | } | |||
| description | description | |||
| "Standard IS extended neighbors container - IS-IS | "Standard IS extended neighbors container. The IS-IS | |||
| reference is TLV 22"; | reference is TLV 22."; | |||
| } | } | |||
| container ipv4-internal-reachability { | container ipv4-internal-reachability { | |||
| list prefixes { | list prefixes { | |||
| uses prefix-ipv4-std; | uses prefix-ipv4-std; | |||
| description "List of prefixes."; | description | |||
| "List of prefixes."; | ||||
| } | } | |||
| description | description | |||
| "IPv4 internal reachability information container - IS-IS | "IPv4 internal reachability information container. | |||
| reference is TLV 128."; | The IS-IS reference is TLV 128."; | |||
| } | } | |||
| container ipv4-external-reachability { | container ipv4-external-reachability { | |||
| list prefixes { | list prefixes { | |||
| uses prefix-ipv4-std; | uses prefix-ipv4-std; | |||
| description "List of prefixes."; | description | |||
| "List of prefixes."; | ||||
| } | } | |||
| description | description | |||
| "IPv4 external reachability information container - | "IPv4 external reachability information container. The | |||
| IS-IS reference is TLV 130."; | IS-IS reference is TLV 130."; | |||
| } | } | |||
| container extended-ipv4-reachability { | container extended-ipv4-reachability { | |||
| list prefixes { | list prefixes { | |||
| uses prefix-ipv4-extended; | uses prefix-ipv4-extended; | |||
| uses unknown-tlvs; | uses unknown-tlvs; | |||
| description "List of prefixes."; | description | |||
| "List of prefixes."; | ||||
| } | } | |||
| description | description | |||
| "IPv4 extended reachability information container - | "IPv4 extended reachability information container. The | |||
| IS-IS reference is TLV 135."; | IS-IS reference is TLV 135."; | |||
| } | } | |||
| container mt-is-neighbor { | container mt-is-neighbor { | |||
| list neighbor { | list neighbor { | |||
| leaf mt-id { | leaf mt-id { | |||
| type uint16 { | type uint16 { | |||
| range "0 .. 4095"; | range "0 .. 4095"; | |||
| } | } | |||
| description "Multi-topology (MT) identifier"; | description | |||
| "Multi-Topology (MT) identifier."; | ||||
| } | } | |||
| uses neighbor-extended; | uses neighbor-extended; | |||
| description "List of neighbors."; | description | |||
| "List of neighbors."; | ||||
| } | } | |||
| description | description | |||
| "IS-IS multi-topology neighbor container - IS-IS | "IS-IS MT neighbor container. The IS-IS reference is | |||
| reference is TLV 223."; | TLV 223."; | |||
| } | } | |||
| container mt-extended-ipv4-reachability { | container mt-extended-ipv4-reachability { | |||
| list prefixes { | list prefixes { | |||
| leaf mt-id { | leaf mt-id { | |||
| type uint16 { | type uint16 { | |||
| range "0 .. 4095"; | range "0 .. 4095"; | |||
| } | } | |||
| description "Multi-topology (MT) identifier"; | description | |||
| "MT identifier."; | ||||
| } | } | |||
| uses prefix-ipv4-extended; | uses prefix-ipv4-extended; | |||
| uses unknown-tlvs; | uses unknown-tlvs; | |||
| description "List of extended prefixes."; | description | |||
| "List of extended prefixes."; | ||||
| } | } | |||
| description | description | |||
| "IPv4 multi-topology (MT) extended reachability | "IPv4 MT extended reachability information container. | |||
| information container - IS-IS reference is TLV 235."; | The IS-IS reference is TLV 235."; | |||
| reference | ||||
| "RFC 5120: M-ISIS: Multi Topology (MT) Routing in | ||||
| Intermediate System to Intermediate Systems (IS-ISs)"; | ||||
| } | } | |||
| container mt-ipv6-reachability { | container mt-ipv6-reachability { | |||
| list prefixes { | list prefixes { | |||
| leaf MT-ID { | leaf mt-id { | |||
| type uint16 { | type uint16 { | |||
| range "0 .. 4095"; | range "0 .. 4095"; | |||
| } | } | |||
| description "Multi-topology (MT) identifier"; | description | |||
| "MT identifier."; | ||||
| } | } | |||
| uses prefix-ipv6-extended; | uses prefix-ipv6-extended; | |||
| uses unknown-tlvs; | uses unknown-tlvs; | |||
| description "List of IPv6 extended prefixes."; | description | |||
| "List of IPv6 extended prefixes."; | ||||
| } | } | |||
| description | description | |||
| "IPv6 multi-topology (MT) extended reachability | "IPv6 MT extended reachability information container. | |||
| information container - IS-IS reference is TLV 237."; | The IS-IS reference is TLV 237."; | |||
| reference | ||||
| "RFC 5120: M-ISIS: Multi Topology (MT) Routing in | ||||
| Intermediate System to Intermediate Systems (IS-ISs)"; | ||||
| } | } | |||
| container ipv6-reachability { | container ipv6-reachability { | |||
| list prefixes { | list prefixes { | |||
| uses prefix-ipv6-extended; | uses prefix-ipv6-extended; | |||
| uses unknown-tlvs; | uses unknown-tlvs; | |||
| description "List of IPv6 prefixes."; | description | |||
| "List of IPv6 prefixes."; | ||||
| } | } | |||
| description | description | |||
| "IPv6 reachability information container - IS-IS | "IPv6 reachability information container. The IS-IS | |||
| reference is TLV 236."; | reference is TLV 236."; | |||
| } | } | |||
| } | } | |||
| grouping lsdb { | grouping lsdb { | |||
| description "Link State Database (LSDB) grouping"; | description | |||
| "Link State Database (LSDB) grouping."; | ||||
| container database { | container database { | |||
| config false; | config false; | |||
| list levels { | list levels { | |||
| key level; | key "level"; | |||
| leaf level { | leaf level { | |||
| type level-number; | type level-number; | |||
| description "LSDB level number (1 or 2)"; | description | |||
| "LSDB level number (1 or 2)."; | ||||
| } | } | |||
| list lsp { | list lsp { | |||
| key lsp-id; | key "lsp-id"; | |||
| uses lsp-entry; | uses lsp-entry; | |||
| description "List of LSPs in LSDB"; | description | |||
| "List of LSPs in the LSDB."; | ||||
| } | } | |||
| description "List of LSPs for the LSDB level container"; | description | |||
| "List of LSPs for the LSDB-level container."; | ||||
| } | } | |||
| description "IS-IS Link State database container"; | description | |||
| "IS-IS LSDB container."; | ||||
| } | } | |||
| } | } | |||
| /* Augmentations */ | /* Augmentations */ | |||
| augment "/rt:routing/" | augment "/rt:routing/" | |||
| +"rt:ribs/rt:rib/rt:routes/rt:route" { | + "rt:ribs/rt:rib/rt:routes/rt:route" { | |||
| when "rt:source-protocol = 'isis:isis'" { | when "derived-from-or-self(rt:source-protocol, 'isis:isis')" { | |||
| description "IS-IS-specific route attributes."; | description | |||
| "IS-IS-specific route attributes."; | ||||
| } | } | |||
| uses route-content; | uses route-content; | |||
| description | description | |||
| "This augments route object in RIB with IS-IS-specific | "This augments the route object in the Routing Information | |||
| attributes."; | Base (RIB) with IS-IS-specific attributes."; | |||
| } | } | |||
| augment "/if:interfaces/if:interface" { | augment "/if:interfaces/if:interface" { | |||
| leaf clns-mtu { | leaf clns-mtu { | |||
| if-feature osi-interface; | if-feature "osi-interface"; | |||
| type uint16; | type uint16; | |||
| description "CLNS MTU of the interface"; | description | |||
| "Connectionless-mode Network Service (CLNS) MTU of the | ||||
| interface."; | ||||
| } | } | |||
| description "ISO specific interface parameters."; | description | |||
| "ISO-specific interface parameters."; | ||||
| } | } | |||
| augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
| +"rt:control-plane-protocol" { | + "rt:control-plane-protocol" { | |||
| when "rt:type = 'isis:isis'" { | when "derived-from-or-self(rt:type, 'isis:isis')" { | |||
| description | description | |||
| "This augment is only valid when routing protocol | "This augmentation is only valid when the routing protocol | |||
| instance type is 'isis'"; | instance type is 'isis'."; | |||
| } | } | |||
| description | description | |||
| "This augments a routing protocol instance with IS-IS | "This augments a routing protocol instance with IS-IS-specific | |||
| specific parameters."; | parameters."; | |||
| container isis { | container isis { | |||
| must "count(area-address) > 0" { | must 'count(area-address) > 0' { | |||
| error-message | error-message "At least one area address must be " | |||
| "At least one area-address must be configured."; | + "configured."; | |||
| description | description | |||
| "Enforce configuration of at least one area."; | "Enforces the configuration of at least one area."; | |||
| } | } | |||
| uses instance-config; | uses instance-config; | |||
| uses instance-state; | uses instance-state; | |||
| container topologies { | container topologies { | |||
| if-feature multi-topology; | if-feature "multi-topology"; | |||
| list topology { | list topology { | |||
| key "name"; | key "name"; | |||
| leaf enable { | leaf enabled { | |||
| type boolean; | type boolean; | |||
| description "Topology enable configuration"; | description | |||
| "Enables the topology configuration."; | ||||
| } | } | |||
| leaf name { | leaf name { | |||
| type leafref { | type leafref { | |||
| path "../../../../../../rt:ribs/rt:rib/rt:name"; | path "../../../../../../rt:ribs/rt:rib/rt:name"; | |||
| } | } | |||
| description | description | |||
| "Routing Information Base (RIB) corresponding | "RIB corresponding to the topology."; | |||
| to topology."; | ||||
| } | } | |||
| uses multi-topology-config; | uses multi-topology-config; | |||
| description | ||||
| description "List of topologies"; | "List of topologies."; | |||
| } | } | |||
| description "Multi-topology container"; | description | |||
| "MT container."; | ||||
| } | } | |||
| container interfaces { | container interfaces { | |||
| list interface { | list interface { | |||
| key "name"; | key "name"; | |||
| leaf name { | leaf name { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| description | description | |||
| "Reference to the interface within | "Reference to the interface within | |||
| the routing-instance."; | the routing instance."; | |||
| } | } | |||
| uses interface-config; | uses interface-config; | |||
| uses interface-state; | uses interface-state; | |||
| container topologies { | container topologies { | |||
| if-feature multi-topology; | if-feature "multi-topology"; | |||
| list topology { | list topology { | |||
| 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 | |||
| "Routing Information Base (RIB) corresponding | "RIB corresponding to the topology."; | |||
| to topology."; | ||||
| } | } | |||
| uses multi-topology-interface-config; | uses multi-topology-interface-config; | |||
| description "List of interface topologies"; | description | |||
| "List of interface topologies."; | ||||
| } | } | |||
| description "Multi-topology container"; | description | |||
| "MT container."; | ||||
| } | } | |||
| description "List of IS-IS interfaces."; | description | |||
| "List of IS-IS interfaces."; | ||||
| } | } | |||
| description | description | |||
| "IS-IS interface specific configuration container"; | "Configuration container specific to IS-IS interfaces."; | |||
| } | } | |||
| description | description | |||
| "IS-IS configuration/state top-level container"; | "IS-IS configuration/state top-level container."; | |||
| } | } | |||
| } | } | |||
| /* RPC methods */ | /* RPC methods */ | |||
| rpc clear-adjacency { | rpc clear-adjacency { | |||
| description | description | |||
| "This RPC request clears a particular set of IS-IS | "This RPC request clears a particular set of IS-IS | |||
| adjacencies. If the operation fails due to an internal | adjacencies. If the operation fails for an internal | |||
| reason, then the error-tag and error-app-tag should be | reason, then the 'error-tag' and 'error-app-tag' should be | |||
| set indicating the reason for the failure."; | set indicating the reason for the failure."; | |||
| reference | ||||
| "RFC 6241: Network Configuration Protocol (NETCONF)"; | ||||
| input { | input { | |||
| leaf routing-protocol-instance-name { | leaf routing-protocol-instance-name { | |||
| type leafref { | type leafref { | |||
| path "/rt:routing/rt:control-plane-protocols/" | path "/rt:routing/rt:control-plane-protocols/" | |||
| + "rt:control-plane-protocol/rt:name"; | + "rt:control-plane-protocol/rt:name"; | |||
| } | } | |||
| mandatory "true"; | mandatory true; | |||
| description | description | |||
| "Name of the IS-IS protocol instance whose IS-IS | "Name of the IS-IS protocol instance whose IS-IS | |||
| adjacency is being cleared. | adjacency is being cleared. | |||
| If the corresponding IS-IS instance doesn't exist, | If the corresponding IS-IS instance doesn't exist, | |||
| then the operation will fail with an error-tag of | then the operation will fail with an 'error-tag' of | |||
| 'data-missing' and an error-app-tag of | 'data-missing' and an 'error-app-tag' of | |||
| 'routing-protocol-instance-not-found'."; | 'routing-protocol-instance-not-found'."; | |||
| } | } | |||
| leaf level { | leaf level { | |||
| type level; | type level; | |||
| description | description | |||
| "IS-IS level of the adjacency to be cleared. If the | "IS-IS level of the adjacency to be cleared. If the | |||
| IS-IS level is level-1-2, both level 1 and level 2 | IS-IS level is 'level-all', level-1 and level-2 | |||
| adjacencies would be cleared. | adjacencies would both be cleared. | |||
| If the value provided is different from the one | If the value provided is different from the value | |||
| authorized in the enum type, then the operation | authorized in the enum type, then the operation | |||
| SHALL fail with an error-tag of 'data-missing' and | SHALL fail with an 'error-tag' of 'data-missing' and | |||
| an error-app-tag of 'bad-isis-level'."; | an 'error-app-tag' of 'bad-isis-level'."; | |||
| } | } | |||
| leaf interface { | leaf interface { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| description | description | |||
| "IS-IS interface name. | "IS-IS interface name. | |||
| If the corresponding IS-IS interface doesn't exist, | If the corresponding IS-IS interface doesn't exist, | |||
| then the operation SHALL fail with an error-tag of | then the operation SHALL fail with an 'error-tag' of | |||
| 'data-missing' and an error-app-tag of | 'data-missing' and an 'error-app-tag' of | |||
| 'isis-interface-not-found'."; | 'isis-interface-not-found'."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| rpc clear-database { | rpc clear-database { | |||
| description | description | |||
| "This RPC request clears a particular IS-IS database. If | "This RPC request clears a particular IS-IS database. | |||
| the operation fails for an IS-IS internal reason, then | Additionally, all neighbor adjacencies will be forced to | |||
| the error-tag and error-app-tag should be set | the DOWN state and self-originated LSPs will be | |||
| indicating the reason for the failure."; | reoriginated. If the operation fails for an IS-IS | |||
| internal reason, then the 'error-tag' and 'error-app-tag' | ||||
| should be set indicating the reason for the failure."; | ||||
| input { | input { | |||
| leaf routing-protocol-instance-name { | leaf routing-protocol-instance-name { | |||
| type leafref { | type leafref { | |||
| path "/rt:routing/rt:control-plane-protocols/" | path "/rt:routing/rt:control-plane-protocols/" | |||
| + "rt:control-plane-protocol/rt:name"; | + "rt:control-plane-protocol/rt:name"; | |||
| } | } | |||
| mandatory "true"; | mandatory true; | |||
| description | description | |||
| "Name of the IS-IS protocol instance whose IS-IS | "Name of the IS-IS protocol instance whose IS-IS | |||
| database(s) is/are being cleared. | database or databases are being cleared. | |||
| If the corresponding IS-IS instance doesn't exist, | If the corresponding IS-IS instance doesn't exist, | |||
| then the operation will fail with an error-tag of | then the operation will fail with an 'error-tag' of | |||
| 'data-missing' and an error-app-tag of | 'data-missing' and an 'error-app-tag' of | |||
| 'routing-protocol-instance-not-found'."; | 'routing-protocol-instance-not-found'."; | |||
| } | } | |||
| leaf level { | leaf level { | |||
| type level; | type level; | |||
| description | description | |||
| "IS-IS level of the adjacency to be cleared. If the | "IS-IS level of the adjacency to be cleared. If the | |||
| IS-IS level is level-1-2, both level 1 and level 2 | IS-IS level is 'level-all', the databases for both | |||
| databases would be cleared. | level 1 and level 2 would be cleared. | |||
| If the value provided is different from the one | If the value provided is different from the value | |||
| authorized in the enum type, then the operation | authorized in the enum type, then the operation | |||
| SHALL fail with an error-tag of 'data-missing' and | SHALL fail with an 'error-tag' of 'data-missing' and | |||
| an error-app-tag of 'bad-isis-level'."; | an 'error-app-tag' of 'bad-isis-level'."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| /* Notifications */ | /* Notifications */ | |||
| notification database-overload { | notification database-overload { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| leaf overload { | leaf overload { | |||
| type enumeration { | type enumeration { | |||
| enum off { | enum off { | |||
| description | description | |||
| "Indicates IS-IS instance has left overload state"; | "Indicates that the IS-IS instance has left the | |||
| overload state."; | ||||
| } | } | |||
| enum on { | enum on { | |||
| description | description | |||
| "Indicates IS-IS instance has entered overload state"; | "Indicates that the IS-IS instance has entered the | |||
| overload state."; | ||||
| } | } | |||
| } | } | |||
| description "New overload state of the IS-IS instance"; | description | |||
| "New overload state of the IS-IS instance."; | ||||
| } | } | |||
| description | description | |||
| "This notification is sent when an IS-IS instance | "This notification is sent when an IS-IS instance | |||
| overload state changes."; | overload state changes."; | |||
| } | } | |||
| notification lsp-too-large { | notification lsp-too-large { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf pdu-size { | leaf pdu-size { | |||
| type uint32; | type uint32; | |||
| description "Size of the LSP PDU"; | description | |||
| "Size of the LSP PDU."; | ||||
| } | } | |||
| leaf lsp-id { | leaf lsp-id { | |||
| type lsp-id; | type lsp-id; | |||
| description "LSP ID"; | description | |||
| "LSP ID."; | ||||
| } | } | |||
| description | description | |||
| "This notification is sent when we attempt to propagate | "This notification is sent when an attempt to propagate | |||
| an LSP that is larger than the dataLinkBlockSize (ISO10589) | an LSP that is larger than the dataLinkBlockSize (ISO 10589) | |||
| for the circuit. The notification generation must be | for the circuit occurs. The generation of the notification | |||
| throttled with at least 5 seconds between successive | must be throttled with at least 5 seconds between successive | |||
| notifications."; | notifications."; | |||
| reference | ||||
| "ISO 10589: Intermediate System to Intermediate System | ||||
| intra-domain routeing information exchange protocol | ||||
| for use in conjunction with the protocol for providing | ||||
| the connectionless-mode network service (ISO 8473)"; | ||||
| } | } | |||
| notification if-state-change { | notification if-state-change { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf state { | leaf state { | |||
| type if-state-type; | type if-state-type; | |||
| description "Interface state."; | description | |||
| "Interface state."; | ||||
| } | } | |||
| description | description | |||
| "This notification is sent when an interface | "This notification is sent when an interface | |||
| state change is detected."; | 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 "LSP ID"; | description | |||
| "LSP ID."; | ||||
| } | } | |||
| description | description | |||
| "This notification is sent when we find that | "This notification is sent when an LSP that was stored in | |||
| an LSP that was stored in memory has become | memory has become corrupted."; | |||
| corrupted."; | ||||
| } | } | |||
| notification attempt-to-exceed-max-sequence { | notification attempt-to-exceed-max-sequence { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| leaf lsp-id { | leaf lsp-id { | |||
| type lsp-id; | type lsp-id; | |||
| description "LSP ID"; | description | |||
| "LSP ID."; | ||||
| } | } | |||
| description | description | |||
| "This notification is sent when the system | "This notification is sent when the system | |||
| wraps the 32-bit sequence counter of an LSP."; | wraps the 32-bit sequence counter of an LSP."; | |||
| } | } | |||
| notification id-len-mismatch { | notification id-len-mismatch { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf pdu-field-len { | leaf pdu-field-len { | |||
| type uint8; | type uint8; | |||
| description "Size of the ID length in the received PDU"; | description | |||
| "Value for the system ID length in the received PDU."; | ||||
| } | } | |||
| leaf raw-pdu { | leaf raw-pdu { | |||
| type binary; | type binary; | |||
| description "Received raw PDU."; | description | |||
| "Received raw PDU."; | ||||
| } | } | |||
| description | description | |||
| "This notification is sent when we receive a PDU | "This notification is sent when a PDU with a different value | |||
| with a different value for the system-id length. | for the system ID length is received. The generation of the | |||
| The notification generation must be throttled | notification must be throttled with at least 5 seconds | |||
| with at least 5 seconds between successive | between successive notifications."; | |||
| notifications."; | ||||
| } | } | |||
| notification max-area-addresses-mismatch { | notification max-area-addresses-mismatch { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf max-area-addresses { | leaf max-area-addresses { | |||
| type uint8; | type uint8; | |||
| description "Received number of supported areas"; | description | |||
| "Received number of supported areas."; | ||||
| } | } | |||
| leaf raw-pdu { | leaf raw-pdu { | |||
| type binary; | type binary; | |||
| description "Received raw PDU."; | description | |||
| "Received raw PDU."; | ||||
| } | } | |||
| description | description | |||
| "This notification is sent when we receive a PDU | "This notification is sent when a PDU with a different value | |||
| with a different value for the Maximum Area Addresses. | for the Maximum Area Addresses has been received. The | |||
| The notification generation must be throttled | generation of the notification must be throttled with | |||
| with at least 5 seconds between successive | at least 5 seconds between successive notifications."; | |||
| notifications."; | ||||
| } | } | |||
| notification own-lsp-purge { | notification own-lsp-purge { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf lsp-id { | leaf lsp-id { | |||
| type lsp-id; | type lsp-id; | |||
| description "LSP ID"; | description | |||
| "LSP ID."; | ||||
| } | } | |||
| description | description | |||
| "This notification is sent when the system receives | "This notification is sent when the system receives | |||
| a PDU with its own system-id and zero age."; | a PDU with its own system ID and zero age."; | |||
| } | } | |||
| notification sequence-number-skipped { | notification sequence-number-skipped { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf lsp-id { | leaf lsp-id { | |||
| type lsp-id; | type lsp-id; | |||
| description "LSP ID"; | description | |||
| "LSP ID."; | ||||
| } | } | |||
| description | description | |||
| "This notification is sent when the system receives a | "This notification is sent when the system receives a | |||
| PDU with its own system-id and different contents. The | PDU with its own system ID and different contents. The | |||
| system has to originate the LSP with a higher sequence | system has to originate the LSP with a higher sequence | |||
| number."; | number."; | |||
| } | } | |||
| notification authentication-type-failure { | notification authentication-type-failure { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf raw-pdu { | leaf raw-pdu { | |||
| type binary; | type binary; | |||
| description "Received raw PDU."; | description | |||
| "Received raw PDU."; | ||||
| } | } | |||
| description | description | |||
| "This notification is sent when the system receives a | "This notification is sent when the system receives a | |||
| PDU with the wrong authentication type field. | PDU with the wrong authentication type field. | |||
| The notification generation must be throttled | The generation of the notification must be throttled | |||
| with at least 5 seconds between successive | with at least 5 seconds between successive notifications."; | |||
| notifications."; | ||||
| } | } | |||
| notification authentication-failure { | notification authentication-failure { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf raw-pdu { | leaf raw-pdu { | |||
| type binary; | type binary; | |||
| description "Received raw PDU."; | description | |||
| "Received raw PDU."; | ||||
| } | } | |||
| description | description | |||
| "This notification is sent when the system receives | "This notification is sent when the system receives | |||
| a PDU with the wrong authentication information. | a PDU on which authentication fails. The generation of the | |||
| The notification generation must be throttled | notification must be throttled with at least 5 seconds | |||
| with at least 5 seconds between successive | between successive notifications."; | |||
| notifications."; | ||||
| } | } | |||
| notification version-skew { | notification version-skew { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf protocol-version { | leaf protocol-version { | |||
| type uint8; | type uint8; | |||
| description "Protocol version received in the PDU."; | description | |||
| "Protocol version received in the PDU."; | ||||
| } | } | |||
| leaf raw-pdu { | leaf raw-pdu { | |||
| type binary; | type binary; | |||
| description "Received raw PDU."; | description | |||
| "Received raw PDU."; | ||||
| } | } | |||
| description | description | |||
| "This notification is sent when the system receives a | "This notification is sent when the system receives a | |||
| PDU with a different protocol version number. | PDU with a different protocol version number. | |||
| The notification generation must be throttled | The generation of the notification must be throttled | |||
| with at least 5 seconds between successive | with at least 5 seconds between successive notifications."; | |||
| notifications."; | ||||
| } | } | |||
| notification area-mismatch { | notification area-mismatch { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf raw-pdu { | leaf raw-pdu { | |||
| type binary; | type binary; | |||
| description "Received raw PDU."; | description | |||
| "Received raw PDU."; | ||||
| } | } | |||
| description | description | |||
| "This notification is sent when the system receives a | "This notification is sent when the system receives a | |||
| Hello PDU from an IS that does not share any area | Hello PDU from an IS that does not share any area | |||
| address. The notification generation must be throttled | address. The generation of the notification must be | |||
| with at least 5 seconds between successive | throttled with at least 5 seconds between successive | |||
| notifications."; | notifications."; | |||
| } | } | |||
| notification rejected-adjacency { | notification rejected-adjacency { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf raw-pdu { | leaf raw-pdu { | |||
| type binary; | type binary; | |||
| description | description | |||
| "Received raw PDU."; | "Received raw PDU."; | |||
| } | } | |||
| leaf reason { | leaf reason { | |||
| type string { | type string { | |||
| length "0..255"; | length "0..255"; | |||
| } | } | |||
| description | description | |||
| "The system may provide a reason to reject the | "The system may provide a reason to reject the | |||
| adjacency. If the reason is not available, | adjacency. If the reason is not available, | |||
| the reason string will not be returned. | the reason string will not be returned. | |||
| The expected format is a single line text."; | The expected format is a single line of text."; | |||
| } | } | |||
| description | description | |||
| "This notification is sent when the system receives a | "This notification is sent when the system receives a | |||
| Hello PDU from an IS but does not establish an adjacency | Hello PDU from an IS but does not establish an adjacency | |||
| for some reason. The notification generation must be | for some reason. The generation of the notification | |||
| throttled with at least 5 seconds between successive | must be throttled with at least 5 seconds between | |||
| notifications."; | successive notifications."; | |||
| } | } | |||
| notification protocols-supported-mismatch { | notification protocols-supported-mismatch { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf raw-pdu { | leaf raw-pdu { | |||
| type binary; | type binary; | |||
| description "Received raw PDU."; | description | |||
| "Received raw PDU."; | ||||
| } | } | |||
| leaf-list protocols { | leaf-list protocols { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "List of protocols supported by the remote system."; | "List of protocols supported by the remote system."; | |||
| } | } | |||
| description | description | |||
| "This notification is sent when the system receives a | "This notification is sent when the system receives a | |||
| non-pseudonode LSP that has no matching protocols | non-pseudonode LSP that has no matching protocols | |||
| supported. The notification generation must be throttled | supported. The generation of the notification must be | |||
| with at least 5 seconds between successive | throttled with at least 5 seconds between successive | |||
| notifications."; | notifications."; | |||
| } | } | |||
| notification lsp-error-detected { | notification lsp-error-detected { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf lsp-id { | leaf lsp-id { | |||
| type lsp-id; | type lsp-id; | |||
| description "LSP ID."; | description | |||
| "LSP ID."; | ||||
| } | } | |||
| leaf raw-pdu { | leaf raw-pdu { | |||
| type binary; | type binary; | |||
| description "Received raw PDU."; | description | |||
| "Received raw PDU."; | ||||
| } | } | |||
| leaf error-offset { | leaf error-offset { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "If the problem is a malformed TLV, the error-offset | "If the problem is a malformed TLV, the error offset | |||
| points to the start of the TLV. If the problem is with | points to the start of the TLV. If the problem is with | |||
| the LSP header, the error-offset points to the errant | the LSP header, the error offset points to the errant | |||
| byte"; | 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. Otherwise, | to the type value of the suspicious TLV. Otherwise, | |||
| this leaf is not present."; | this leaf is not present."; | |||
| } | } | |||
| description | description | |||
| "This notification is sent when the system receives an | "This notification is sent when the system receives an | |||
| LSP with a parse error. The notification generation must | LSP with a parse error. The generation of the notification | |||
| be throttled with at least 5 seconds between successive | must be throttled with at least 5 seconds between | |||
| notifications."; | successive notifications."; | |||
| } | } | |||
| notification adjacency-state-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 { | |||
| length "1..255"; | length "1..255"; | |||
| } | } | |||
| description | description | |||
| "Name of the neighbor. | "Name of the neighbor. It corresponds to the hostname | |||
| It corresponds to the hostname associated | associated with the system ID of the neighbor in the | |||
| with the system-id of the neighbor in the | mapping database (RFC 5301). If the name of the neighbor | |||
| mapping database (RFC5301). | is not available, it is not returned."; | |||
| If the name of the neighbor is | reference | |||
| not available, it is not returned."; | "RFC 5301: Dynamic Hostname Exchange Mechanism for IS-IS"; | |||
| } | } | |||
| leaf neighbor-system-id { | leaf neighbor-system-id { | |||
| type system-id; | type system-id; | |||
| description "Neighbor system-id"; | description | |||
| "Neighbor system ID."; | ||||
| } | } | |||
| leaf state { | leaf state { | |||
| type adj-state-type; | type adj-state-type; | |||
| description | ||||
| description "New state of the IS-IS adjacency."; | "New state of the IS-IS adjacency."; | |||
| } | } | |||
| leaf reason { | leaf reason { | |||
| type string { | type string { | |||
| length "1..255"; | length "1..255"; | |||
| } | } | |||
| description | description | |||
| "If the adjacency is going to DOWN, this leaf provides | "If the adjacency is going to the 'down' state, this leaf | |||
| a reason for the adjacency going down. The reason is | provides a reason for the adjacency going down. The reason | |||
| provided as a text. If the adjacency is going to UP, no | is provided as text. If the adjacency is going to the 'up' | |||
| reason is provided. The expected format is a single line | state, no reason is provided. The expected format is a | |||
| text."; | single line of text."; | |||
| } | } | |||
| description | description | |||
| "This notification is sent when an IS-IS adjacency | "This notification is sent when an IS-IS adjacency | |||
| moves to Up state or to Down state."; | moves to the 'up' state or the 'down' state."; | |||
| } | } | |||
| notification lsp-received { | notification lsp-received { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-interface-hdr; | uses notification-interface-hdr; | |||
| leaf lsp-id { | leaf lsp-id { | |||
| type lsp-id; | type lsp-id; | |||
| description "LSP ID"; | description | |||
| "LSP ID."; | ||||
| } | } | |||
| leaf sequence { | leaf sequence { | |||
| type uint32; | type uint32; | |||
| description "Sequence number of the received LSP."; | description | |||
| "Sequence number of the received LSP."; | ||||
| } | } | |||
| leaf received-timestamp { | leaf received-timestamp { | |||
| type yang:timestamp; | type yang:timestamp; | |||
| description | ||||
| description "Timestamp when the LSP was received."; | "Timestamp when the LSP was received."; | |||
| } | } | |||
| leaf neighbor-system-id { | leaf neighbor-system-id { | |||
| type system-id; | type system-id; | |||
| description "Neighbor system-id of LSP sender"; | description | |||
| "Neighbor system ID of the LSP sender."; | ||||
| } | } | |||
| description | description | |||
| "This notification is sent when an LSP is received. | "This notification is sent when an LSP is received. | |||
| The notification generation must be throttled with at | The generation of the notification must be throttled with | |||
| least 5 seconds between successive notifications."; | at least 5 seconds between successive notifications."; | |||
| } | } | |||
| notification lsp-generation { | notification lsp-generation { | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| leaf lsp-id { | leaf lsp-id { | |||
| type lsp-id; | type lsp-id; | |||
| description "LSP ID"; | description | |||
| "LSP ID."; | ||||
| } | } | |||
| leaf sequence { | leaf sequence { | |||
| type uint32; | type uint32; | |||
| description "Sequence number of the received LSP."; | description | |||
| "Sequence number of the received LSP."; | ||||
| } | } | |||
| leaf send-timestamp { | leaf send-timestamp { | |||
| type yang:timestamp; | type yang:timestamp; | |||
| description | ||||
| description "Timestamp when our LSP was regenerated."; | "Timestamp when the LSP was regenerated."; | |||
| } | } | |||
| description | description | |||
| "This notification is sent when an LSP is regenerated. | "This notification is sent when an LSP is regenerated. | |||
| The notification generation must be throttled with at | The generation of the notification must be throttled with | |||
| least 5 seconds between successive notifications."; | at least 5 seconds between successive notifications."; | |||
| } | } | |||
| } | } | |||
| <CODE ENDS>]]></artwork> | ]]></sourcecode> | |||
| </figure> | ||||
| </section> | </section> | |||
| <section anchor="Security" toc="default" numbered="true"> | ||||
| <name>Security Considerations</name> | ||||
| <t>The YANG module specified in this document defines a schema for data | ||||
| that is designed to be accessed via network management protocols such | ||||
| as NETCONF <xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/>. | ||||
| The lowest NETCONF layer is the secure transport layer, and the | ||||
| mandatory-to-implement secure transport is Secure Shell (SSH) | ||||
| <xref target="RFC6242"/>. The lowest RESTCONF layer is HTTPS, and the | ||||
| mandatory-to-implement secure transport is TLS <xref target="RFC8446"/>.</t> | ||||
| <section anchor="Security" title="Security Considerations" toc="default"> | <t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/ | |||
| <t>The YANG modules specified in this document define a schema for data that | > | |||
| is designed to be accessed via network management protocols such as NETCONF <xr | provides the means to restrict access for particular NETCONF or RESTCONF users | |||
| ef target="RFC6241" pageno="false" format="default"/> or RESTCONF <xref target=" | to a preconfigured subset of all available NETCONF or RESTCONF protocol | |||
| RFC8040" pageno="false" format="default"/>. The lowest NETCONF layer is the secu | operations and content.</t> | |||
| re transport layer, and the mandatory-to-implement secure transport is Secure Sh | <t>There are a number of data nodes defined in this YANG module that are | |||
| ell (SSH) <xref target="RFC6242" pageno="false" format="default"/>. The lowest R | writable/creatable/deletable (i.e., config true, which is the default). These | |||
| ESTCONF layer is HTTPS, and the mandatory-to-implement secure transport is TLS < | data nodes may be considered sensitive or vulnerable in some network | |||
| xref target="RFC8446" pageno="false" format="default"/>.</t> | environments. Write operations (e.g., edit-config) to these data nodes without | |||
| <t>The NETCONF Access Control Model (NACM) <xref target="RFC8341" pageno="f | proper protection can have a negative effect on network operations. These are | |||
| alse" format="default"/> provides the means to restrict access for particular NE | the subtrees and data nodes and their sensitivity/vulnerability:</t> | |||
| TCONF or RESTCONF users to a pre-configured subset of all available NETCONF or R | <t indent="3">/isis</t> | |||
| ESTCONF protocol operations and content.</t> | <t indent="3">/isis/interfaces/interface[name]</t> | |||
| <t>There are a number of data nodes defined in ietf-isis.yang module that ar | ||||
| e writable/creatable/deletable (i.e., config true, which is the default). These | ||||
| data nodes may be considered sensitive or vulnerable in some network environment | ||||
| s. Write operations (e.g., edit-config) to these data nodes without proper prote | ||||
| ction can have a negative effect on network operations. | ||||
| Writable data node represent configuration of each instance and interface. These | ||||
| correspond to the following schema nodes: | ||||
| <list style="none"> | ||||
| <t>/isis</t> | ||||
| <t>/isis/interfaces/interface[name]</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>For IS-IS, the ability to modify IS-IS configuration will allow the entire IS | ||||
| -IS domain to be compromised including forming adjacencies with unauthorized rou | ||||
| ters to misroute traffic or mount a massive Denial-of-Service (DoS) attack. | ||||
| For example, adding IS-IS on any unprotected interface could allow an IS-IS adja | ||||
| cency to be formed with an unauthorized and malicious neighbor. Once an adjacenc | ||||
| y is formed, traffic could be hijacked. As a simpler example, a Denial-Of-Servic | ||||
| e attack could be mounted by changing the cost of an IS-IS interface to be asymm | ||||
| etric such that a hard routing loop ensues. In general, unauthorized modificatio | ||||
| n of most IS-IS features will pose their own set of security risks and the "Secu | ||||
| rity Considerations" in the respective reference RFCs should be consulted.</t> | ||||
| <t>Some of the readable data nodes in the ietf-isis.yang module may be consi | ||||
| dered sensitive or vulnerable in some network environments. It is thus important | ||||
| to control read access (e.g., via get, get-config, or notification) to these da | ||||
| ta nodes. The exposure of the Link State Database (LSDB) will expose the detaile | ||||
| d topology of the network. Similarly, the IS-IS local RIB exposes the reachable | ||||
| prefixes in the IS-IS routing domain. The Link State Database (LSDB) and local R | ||||
| IB are represented by the following schema nodes: | ||||
| <list style="none"> | ||||
| <t>/isis/database</t> | ||||
| <t>/isis/local-rib</t> | ||||
| </list> | ||||
| </t> | ||||
| <t> | <t>For IS-IS, the ability to modify IS-IS configuration will allow the ent | |||
| Exposure of the Link State Database and local RIB include information beyond the | ire IS-IS domain to be compromised, including forming adjacencies with unauthori | |||
| scope of the IS-IS router and this may be undesirable since exposure may facili | zed routers to misroute traffic or mount a massive Denial-of-Service (DoS) attac | |||
| tate other attacks. Additionally, the complete IP network topology and, if deplo | k. | |||
| yed, the traffic engineering topology of the IS-IS domain can be reconstructed f | For example, adding IS-IS on any unprotected interface could allow an IS-IS | |||
| rom the Link State Database. Though not as straightforward, the IS-IS local RIB | adjacency to be formed with an unauthorized and malicious neighbor. Once | |||
| can also be discover topological information. Network operators may consider the | an adjacency is formed, traffic could be hijacked. As a simpler example, | |||
| ir topologies to be sensitive confidential data. | a DoS attack could be mounted by changing the cost of an IS-IS interface | |||
| </t> | to be asymmetric, such that a hard routing loop ensues. In general, | |||
| unauthorized modification of most IS-IS features will pose its own set | ||||
| of security risks; therefore, the Security Considerations sections in the | ||||
| respective reference RFCs should be consulted.</t> | ||||
| <t>Some of the readable data nodes in this YANG module may be considered | ||||
| sensitive or vulnerable in some network environments. It is thus important to | ||||
| control read access (e.g., via get, get-config, or notification) to these data | ||||
| nodes. These are the subtrees and data nodes and their | ||||
| sensitivity/vulnerability:</t> | ||||
| <t indent="3">/isis/database</t> | ||||
| <t indent="3">/isis/local-rib</t> | ||||
| <t> | ||||
| <t>For IS-IS authentication, configuration is supported via the specific | Exposure of the Link State Database (LSDB) will reveal the detailed | |||
| ation of key-chain <xref target="RFC8177" pageno="false" format="default"/> or t | topology of the network. Similarly, the IS-IS local RIB exposes the reachable | |||
| he direct specification of key and authentication algorithm. Hence, authenticati | prefixes in the IS-IS routing domain. Exposure of the LSDB and local RIB may | |||
| on | also reveal information beyond the scope of the IS-IS router; this may be | |||
| configuration using the "auth-table-trailer" case in the | undesirable, since such exposure may facilitate other attacks. Additionally, | |||
| "authentication" container inherits the security considerations of <xref targ | the complete IP network topology -- and, if deployed, the TE topology of the | |||
| et="RFC8177" pageno="false" format="default"/>. This includes the considerations | IS-IS domain -- can be reconstructed from the LSDB. Though not as | |||
| with respect to the | straightforward, the IS-IS local RIB can also be exploited to discover | |||
| topological information. Network operators may consider their topologies to | ||||
| be sensitive confidential data. | ||||
| </t> | ||||
| <t>For IS-IS authentication, configuration is supported via the | ||||
| specification of a key chain <xref target="RFC8177" format="default"/> | ||||
| or the direct specification of a key and authentication algorithm. | ||||
| Hence, authentication configuration using the "key-chain" case in the | ||||
| "authentication-type" container inherits the security considerations of | ||||
| <xref target="RFC8177" format="default"/>. This includes considerations with re | ||||
| spect to the | ||||
| local storage and handling of authentication keys.</t> | local storage and handling of authentication keys.</t> | |||
| <t>Some of the RPC operations in this YANG module may be considered sensitive or | ||||
| <t>Some of the RPC operations in this YANG module may be considered sensitiv | vulnerable in some network environments. It is thus important to control | |||
| e or vulnerable in some network environments. It is thus important to control ac | access to these operations. These are the operations and their | |||
| cess to these operations. The IS-IS YANG | sensitivity/vulnerability:</t> | |||
| module support the "clear-adjacency" and "clear-database" RPCs. If | <t>The IS-IS YANG | |||
| access to either of these is compromised, they can result in | module supports the "clear-adjacency" and "clear-database" RPCs. If | |||
| temporary network outages be employed to mount DoS attacks. | access to either of these is compromised, they can be exploited to | |||
| </t> | mount DoS attacks due to the resultant network outages.</t> | |||
| <t>The actual authentication key data (whether locally specified or part | ||||
| <t>The actual authentication key data (whether locally specified or part | of a key chain) is sensitive and needs to be kept secret from | |||
| of a key-chain) is sensitive and needs to be kept secret from | ||||
| unauthorized parties; compromise of the key data would allow an attacker to f orge IS-IS traffic that would be accepted as authentic, | unauthorized parties; compromise of the key data would allow an attacker to f orge IS-IS traffic that would be accepted as authentic, | |||
| potentially compromising the entirety IS-IS domain.</t> | potentially compromising the entire IS-IS domain.</t> | |||
| <t>The model describes several notifications. Implementations must | ||||
| <t>The model describes several notifications, implementations mu | rate-limit the generation of these notifications to avoid creating | |||
| st rate-limit the generation of these notifications to avoid creating significan | significant notification load. Otherwise, this notification load may | |||
| t notification load. Otherwise, this notification load may have some side effect | negatively affect system stability and may be exploited as an attack vecto | |||
| s on the system stability and may be exploited as an attack vector.</t> | r.</t> | |||
| </section> | ||||
| <section anchor="Contributors" title="Contributors" toc="default"> | ||||
| <t>The authors would like to thank | ||||
| Kiran Agrahara Sreenivasa, Dean Bogdanovic, Yingzhen Qu, Yi Yang, Jeff | ||||
| Tanstura | ||||
| for their major contributions to the draft.</t> | ||||
| </section> | </section> | |||
| <section anchor="IANA" toc="default" numbered="true"> | ||||
| <name>IANA Considerations</name> | ||||
| <section anchor="ack" title="Acknowledgements" toc="default"> | <t>The IANA has assigned the following URI in the | |||
| <t>The authors would like to thank Tom Petch, Alvaro Retana, Stewart Bry | "IETF XML Registry" <xref target="RFC3688" format="default"/>.</t> | |||
| ant, Barry Leiba, Benjamin Kaduk and | <dl newline="false" spacing="compact"> | |||
| Adam Roach, and Roman Danyliw for their review and comments.</t> | <dt>URI:</dt> | |||
| </section> | <dd>urn:ietf:params:xml:ns:yang:ietf-isis</dd> | |||
| <section anchor="IANA" title="IANA Considerations" toc="default"> | <dt>Registrant Contact:</dt> | |||
| <t>The IANA is requested to assign two new URIs from the | <dd>The IESG</dd> | |||
| IETF XML registry <xref target="RFC3688" pageno="false" format="default"/>. A | <dt>XML:</dt> | |||
| uthors are suggesting the following URI: </t> | <dd>N/A; the requested URI is an XML namespace.</dd> | |||
| <figure title="" suppress-title="false" align="left" alt="" width="" height=" | </dl> | |||
| "> | <t>This document also adds the following YANG module name in the "YANG | |||
| <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" he | Module Names" registry <xref target="RFC6020" format="default"/>:</t> | |||
| ight=""> | <dl newline="false" spacing="compact"> | |||
| URI: urn:ietf:params:xml:ns:yang:ietf-isis | <dt>Name:</dt> | |||
| Registrant Contact: The IESG | <dd>ietf-isis</dd> | |||
| XML: N/A, the requested URI is an XML namespace | <dt>Maintained by IANA?</dt> | |||
| </artwork> | <dd>N</dd> | |||
| </figure> | <dt>Namespace:</dt> | |||
| <t>This document also requests one new YANG module name in the YANG Modu | <dd>urn:ietf:params:xml:ns:yang:ietf-isis</dd> | |||
| le Names registry <xref target="RFC6020" pageno="false" format="default"/> with | <dt>Prefix:</dt> | |||
| the following suggestion:</t> | <dd>isis</dd> | |||
| <figure title="" suppress-title="false" align="left" alt="" width="" height=" | <dt>Reference:</dt> | |||
| "> | <dd>RFC 9130</dd> | |||
| <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" he | </dl> | |||
| ight=""> | ||||
| name: ietf-isis | ||||
| namespace: urn:ietf:params:xml:ns:yang:ietf-isis | ||||
| prefix: isis | ||||
| reference: RFC XXXX | ||||
| </artwork> | ||||
| </figure> | ||||
| </section> | </section> | |||
| </middle> | </middle> | |||
| <back> | <back> | |||
| <references title="Normative References"> | <displayreference target="I-D.ietf-rtgwg-segment-routing-ti-lfa" to="SR-TI-LFA"/ | |||
| > | ||||
| <reference anchor="RFC1195" target="https://www.rfc-editor.org/info/rfc1195"> | <references> | |||
| <front> | <name>References</name> | |||
| <title>Use of OSI IS-IS for routing in TCP/IP and dual environments</title> | <references> | |||
| <author initials="R.W." surname="Callon" fullname="R.W. Callon"><organization/>< | <name>Normative References</name> | |||
| /author> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <date year="1990" month="December"/> | FC.1195.xml"/> | |||
| <abstract><t>This memo specifies an integrated routing protocol, based on the OS | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| I Intra-Domain IS-IS Routing Protocol, which may be used as an interior gateway | FC.2119.xml"/> | |||
| protocol (IGP) to support TCP/IP as well as OSI. This allows a single routing p | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| rotocol to be used to support pure IP environments, pure OSI environments, and d | FC.3688.xml"/> | |||
| ual environments. This specification was developed by the IS-IS working group o | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| f the Internet Engineering Task Force. [STANDARDS-TRACK]</t></abstract> | FC.4090.xml"/> | |||
| </front> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <seriesInfo name="RFC" value="1195"/> | FC.5029.xml"/> | |||
| <seriesInfo name="DOI" value="10.17487/RFC1195"/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| </reference> | FC.5120.xml"/> | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119"> | FC.5130.xml"/> | |||
| <front> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <title>Key words for use in RFCs to Indicate Requirement Levels</title> | FC.5286.xml"/> | |||
| <author initials="S." surname="Bradner" fullname="S. Bradner"><organization/></a | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| uthor> | FC.5301.xml"/> | |||
| <date year="1997" month="March"/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <abstract><t>In many standards track documents several words are used to signify | FC.5302.xml"/> | |||
| the requirements in the specification. These words are often capitalized. This | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| document defines these words as they should be interpreted in IETF documents. | FC.5305.xml"/> | |||
| This document specifies an Internet Best Current Practices for the Internet Comm | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| unity, and requests discussion and suggestions for improvements.</t></abstract> | FC.8706.xml"/> | |||
| </front> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <seriesInfo name="BCP" value="14"/> | FC.5307.xml"/> | |||
| <seriesInfo name="RFC" value="2119"/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <seriesInfo name="DOI" value="10.17487/RFC2119"/> | FC.5308.xml"/> | |||
| </reference> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| FC.5443.xml"/> | ||||
| <reference anchor="RFC3688" target="https://www.rfc-editor.org/info/rfc3688"> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <front> | FC.5880.xml"/> | |||
| <title>The IETF XML Registry</title> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <author initials="M." surname="Mealling" fullname="M. Mealling"><organization/>< | FC.5881.xml"/> | |||
| /author> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <date year="2004" month="January"/> | FC.6020.xml"/> | |||
| <abstract><t>This document describes an IANA maintained registry for IETF standa | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| rds which use Extensible Markup Language (XML) related items such as Namespaces, | FC.6119.xml"/> | |||
| Document Type Declarations (DTDs), Schemas, and Resource Description Framework | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| (RDF) Schemas.</t></abstract> | FC.6232.xml"/> | |||
| </front> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <seriesInfo name="BCP" value="81"/> | FC.6241.xml"/> | |||
| <seriesInfo name="RFC" value="3688"/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <seriesInfo name="DOI" value="10.17487/RFC3688"/> | FC.6242.xml"/> | |||
| </reference> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| FC.6991.xml"/> | ||||
| <reference anchor="RFC4090" target="https://www.rfc-editor.org/info/rfc4090"> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <front> | FC.7490.xml"/> | |||
| <title>Fast Reroute Extensions to RSVP-TE for LSP Tunnels</title> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <author initials="P." surname="Pan" fullname="P. Pan" role="editor"><organizatio | FC.7794.xml"/> | |||
| n/></author> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <author initials="G." surname="Swallow" fullname="G. Swallow" role="editor"><org | FC.7917.xml"/> | |||
| anization/></author> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <author initials="A." surname="Atlas" fullname="A. Atlas" role="editor"><organiz | FC.7950.xml"/> | |||
| ation/></author> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <date year="2005" month="May"/> | FC.7981.xml"/> | |||
| <abstract><t>This document defines RSVP-TE extensions to establish backup label- | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| switched path (LSP) tunnels for local repair of LSP tunnels. These mechanisms e | FC.8040.xml"/> | |||
| nable the re-direction of traffic onto backup LSP tunnels in 10s of milliseconds | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| , in the event of a failure.</t><t>Two methods are defined here. The one-to-one | FC.8174.xml"/> | |||
| backup method creates detour LSPs for each protected LSP at each potential poin | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| t of local repair. The facility backup method creates a bypass tunnel to protec | FC.8294.xml"/> | |||
| t a potential failure point; by taking advantage of MPLS label stacking, this by | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| pass tunnel can protect a set of LSPs that have similar backup constraints. Bot | FC.8341.xml"/> | |||
| h methods can be used to protect links and nodes during network failure. The de | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| scribed behavior and extensions to RSVP allow nodes to implement either method o | FC.8342.xml"/> | |||
| r both and to interoperate in a mixed network. [STANDARDS-TRACK]</t></abstract> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| </front> | FC.8343.xml"/> | |||
| <seriesInfo name="RFC" value="4090"/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <seriesInfo name="DOI" value="10.17487/RFC4090"/> | FC.8349.xml"/> | |||
| </reference> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| FC.8177.xml"/> | ||||
| <reference anchor="RFC5029" target="https://www.rfc-editor.org/info/rfc5029"> | ||||
| <front> | ||||
| <title>Definition of an IS-IS Link Attribute Sub-TLV</title> | ||||
| <author initials="JP." surname="Vasseur" fullname="JP. Vasseur"><organization/>< | ||||
| /author> | ||||
| <author initials="S." surname="Previdi" fullname="S. Previdi"><organization/></a | ||||
| uthor> | ||||
| <date year="2007" month="September"/> | ||||
| <abstract><t>This document defines a sub-TLV called "Link-attributes" carried wi | ||||
| thin the TLV 22 and used to flood some link characteristics. [STANDARDS-TRACK]< | ||||
| /t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="5029"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5029"/> | ||||
| </reference> | ||||
| <reference anchor="RFC5120" target="https://www.rfc-editor.org/info/rfc5120"> | ||||
| <front> | ||||
| <title>M-ISIS: Multi Topology (MT) Routing in Intermediate System to Intermediat | ||||
| e Systems (IS-ISs)</title> | ||||
| <author initials="T." surname="Przygienda" fullname="T. Przygienda"><organizatio | ||||
| n/></author> | ||||
| <author initials="N." surname="Shen" fullname="N. Shen"><organization/></author> | ||||
| <author initials="N." surname="Sheth" fullname="N. Sheth"><organization/></autho | ||||
| r> | ||||
| <date year="2008" month="February"/> | ||||
| <abstract><t>This document describes an optional mechanism within Intermediate S | ||||
| ystem to Intermediate Systems (IS-ISs) used today by many ISPs for IGP routing w | ||||
| ithin their clouds. This document describes how to run, within a single IS-IS d | ||||
| omain, a set of independent IP topologies that we call Multi-Topologies (MTs). T | ||||
| his MT extension can be used for a variety of purposes, such as an in-band manag | ||||
| ement network "on top" of the original IGP topology, maintaining separate IGP ro | ||||
| uting domains for isolated multicast or IPv6 islands within the backbone, or for | ||||
| cing a subset of an address space to follow a different topology. [STANDARDS-TR | ||||
| ACK]</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="5120"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5120"/> | ||||
| </reference> | ||||
| <reference anchor="RFC5130" target="https://www.rfc-editor.org/info/rfc5130"> | ||||
| <front> | ||||
| <title>A Policy Control Mechanism in IS-IS Using Administrative Tags</title> | ||||
| <author initials="S." surname="Previdi" fullname="S. Previdi"><organization/></a | ||||
| uthor> | ||||
| <author initials="M." surname="Shand" fullname="M. Shand" role="editor"><organiz | ||||
| ation/></author> | ||||
| <author initials="C." surname="Martin" fullname="C. Martin"><organization/></aut | ||||
| hor> | ||||
| <date year="2008" month="February"/> | ||||
| <abstract><t>This document describes an extension to the IS-IS protocol to add o | ||||
| perational capabilities that allow for ease of management and control over IP pr | ||||
| efix distribution within an IS-IS domain. This document enhances the IS-IS prot | ||||
| ocol by extending the information that an Intermediate System (IS) router can pl | ||||
| ace in Link State Protocol (LSP) Data Units for policy use. This extension will | ||||
| provide operators with a mechanism to control IP prefix distribution throughout | ||||
| multi-level IS-IS domains. [STANDARDS-TRACK]</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="5130"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5130"/> | ||||
| </reference> | ||||
| <reference anchor="RFC5286" target="https://www.rfc-editor.org/info/rfc5286"> | ||||
| <front> | ||||
| <title>Basic Specification for IP Fast Reroute: Loop-Free Alternates</title> | ||||
| <author initials="A." surname="Atlas" fullname="A. Atlas" role="editor"><organiz | ||||
| ation/></author> | ||||
| <author initials="A." surname="Zinin" fullname="A. Zinin" role="editor"><organiz | ||||
| ation/></author> | ||||
| <date year="2008" month="September"/> | ||||
| <abstract><t>This document describes the use of loop-free alternates to provide | ||||
| local protection for unicast traffic in pure IP and MPLS/LDP networks in the eve | ||||
| nt of a single failure, whether link, node, or shared risk link group (SRLG). T | ||||
| he goal of this technology is to reduce the packet loss that happens while route | ||||
| rs converge after a topology change due to a failure. Rapid failure repair is a | ||||
| chieved through use of precalculated backup next-hops that are loop-free and saf | ||||
| e to use until the distributed network convergence process completes. This simpl | ||||
| e approach does not require any support from other routers. The extent to which | ||||
| this goal can be met by this specification is dependent on the topology of the n | ||||
| etwork. [STANDARDS-TRACK]</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="5286"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5286"/> | ||||
| </reference> | ||||
| <reference anchor="RFC5301" target="https://www.rfc-editor.org/info/rfc5301"> | ||||
| <front> | ||||
| <title>Dynamic Hostname Exchange Mechanism for IS-IS</title> | ||||
| <author initials="D." surname="McPherson" fullname="D. McPherson"><organization/ | ||||
| ></author> | ||||
| <author initials="N." surname="Shen" fullname="N. Shen"><organization/></author> | ||||
| <date year="2008" month="October"/> | ||||
| <abstract><t>RFC 2763 defined a simple and dynamic mechanism for routers running | ||||
| IS-IS to learn about symbolic hostnames. RFC 2763 defined a new TLV that allow | ||||
| s the IS-IS routers to flood their name-to-systemID mapping information across t | ||||
| he IS-IS network.</t><t>This document obsoletes RFC 2763. This document moves t | ||||
| he capability provided by RFC 2763 to the Standards Track. [STANDARDS-TRACK]</t | ||||
| ></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="5301"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5301"/> | ||||
| </reference> | ||||
| <reference anchor="RFC5302" target="https://www.rfc-editor.org/info/rfc5302"> | ||||
| <front> | ||||
| <title>Domain-Wide Prefix Distribution with Two-Level IS-IS</title> | ||||
| <author initials="T." surname="Li" fullname="T. Li"><organization/></author> | ||||
| <author initials="H." surname="Smit" fullname="H. Smit"><organization/></author> | ||||
| <author initials="T." surname="Przygienda" fullname="T. Przygienda"><organizatio | ||||
| n/></author> | ||||
| <date year="2008" month="October"/> | ||||
| <abstract><t>This document describes extensions to the Intermediate System to In | ||||
| termediate System (IS-IS) protocol to support optimal routing within a two-level | ||||
| domain. The IS-IS protocol is specified in ISO 10589, with extensions for supp | ||||
| orting IPv4 (Internet Protocol) specified in RFC 1195. This document replaces R | ||||
| FC 2966.</t><t>This document extends the semantics presented in RFC 1195 so that | ||||
| a routing domain running with both level 1 and level 2 Intermediate Systems (IS | ||||
| ) (routers) can distribute IP prefixes between level 1 and level 2, and vice ver | ||||
| sa. This distribution requires certain restrictions to ensure that persistent f | ||||
| orwarding loops do not form. The goal of this domain-wide prefix distribution is | ||||
| to increase the granularity of the routing information within the domain. [STA | ||||
| NDARDS-TRACK]</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="5302"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5302"/> | ||||
| </reference> | ||||
| <reference anchor="RFC5305" target="https://www.rfc-editor.org/info/rfc5305"> | ||||
| <front> | ||||
| <title>IS-IS Extensions for Traffic Engineering</title> | ||||
| <author initials="T." surname="Li" fullname="T. Li"><organization/></author> | ||||
| <author initials="H." surname="Smit" fullname="H. Smit"><organization/></author> | ||||
| <date year="2008" month="October"/> | ||||
| <abstract><t>This document describes extensions to the Intermediate System to In | ||||
| termediate System (IS-IS) protocol to support Traffic Engineering (TE). This do | ||||
| cument extends the IS-IS protocol by specifying new information that an Intermed | ||||
| iate System (router) can place in Link State Protocol Data Units (LSP). This in | ||||
| formation describes additional details regarding the state of the network that a | ||||
| re useful for traffic engineering computations. [STANDARDS-TRACK]</t></abstract | ||||
| > | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="5305"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5305"/> | ||||
| </reference> | ||||
| <reference anchor="RFC5306" target="https://www.rfc-editor.org/info/rfc5306"> | ||||
| <front> | ||||
| <title>Restart Signaling for IS-IS</title> | ||||
| <author initials="M." surname="Shand" fullname="M. Shand"><organization/></autho | ||||
| r> | ||||
| <author initials="L." surname="Ginsberg" fullname="L. Ginsberg"><organization/>< | ||||
| /author> | ||||
| <date year="2008" month="October"/> | ||||
| <abstract><t>This document describes a mechanism for a restarting router to sign | ||||
| al to its neighbors that it is restarting, allowing them to reestablish their ad | ||||
| jacencies without cycling through the down state, while still correctly initiati | ||||
| ng database synchronization.</t><t>This document additionally describes a mechan | ||||
| ism for a restarting router to determine when it has achieved Link State Protoco | ||||
| l Data Unit (LSP) database synchronization with its neighbors and a mechanism to | ||||
| optimize LSP database synchronization, while minimizing transient routing disru | ||||
| ption when a router starts. This document obsoletes RFC 3847. [STANDARDS-TRACK | ||||
| ]</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="5306"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5306"/> | ||||
| </reference> | ||||
| <reference anchor="RFC5307" target="https://www.rfc-editor.org/info/rfc5307"> | ||||
| <front> | ||||
| <title>IS-IS Extensions in Support of Generalized Multi-Protocol Label Switching | ||||
| (GMPLS)</title> | ||||
| <author initials="K." surname="Kompella" fullname="K. Kompella" role="editor"><o | ||||
| rganization/></author> | ||||
| <author initials="Y." surname="Rekhter" fullname="Y. Rekhter" role="editor"><org | ||||
| anization/></author> | ||||
| <date year="2008" month="October"/> | ||||
| <abstract><t>This document specifies encoding of extensions to the IS-IS routing | ||||
| protocol in support of Generalized Multi-Protocol Label Switching (GMPLS). [ST | ||||
| ANDARDS-TRACK]</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="5307"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5307"/> | ||||
| </reference> | ||||
| <reference anchor="RFC5308" target="https://www.rfc-editor.org/info/rfc5308"> | ||||
| <front> | ||||
| <title>Routing IPv6 with IS-IS</title> | ||||
| <author initials="C." surname="Hopps" fullname="C. Hopps"><organization/></autho | ||||
| r> | ||||
| <date year="2008" month="October"/> | ||||
| <abstract><t>This document specifies a method for exchanging IPv6 routing inform | ||||
| ation using the IS-IS routing protocol. The described method utilizes two new T | ||||
| LVs: a reachability TLV and an interface address TLV to distribute the necessary | ||||
| IPv6 information throughout a routing domain. Using this method, one can route | ||||
| IPv6 along with IPv4 and OSI using a single intra-domain routing protocol. [ST | ||||
| ANDARDS-TRACK]</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="5308"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5308"/> | ||||
| </reference> | ||||
| <reference anchor="RFC5443" target="https://www.rfc-editor.org/info/rfc5443"> | ||||
| <front> | ||||
| <title>LDP IGP Synchronization</title> | ||||
| <author initials="M." surname="Jork" fullname="M. Jork"><organization/></author> | ||||
| <author initials="A." surname="Atlas" fullname="A. Atlas"><organization/></autho | ||||
| r> | ||||
| <author initials="L." surname="Fang" fullname="L. Fang"><organization/></author> | ||||
| <date year="2009" month="March"/> | ||||
| <abstract><t>In certain networks, there is dependency on the edge-to-edge Label | ||||
| Switched Paths (LSPs) setup by the Label Distribution Protocol (LDP), e.g., netw | ||||
| orks that are used for Multiprotocol Label Switching (MPLS) Virtual Private Netw | ||||
| ork (VPN) applications. For such applications, it is not possible to rely on In | ||||
| ternet Protocol (IP) forwarding if the MPLS LSP is not operating appropriately. | ||||
| Blackholing of labeled traffic can occur in situations where the Interior Gatewa | ||||
| y Protocol (IGP) is operational on a link on which LDP is not. While the link c | ||||
| ould still be used for IP forwarding, it is not useful for MPLS forwarding, for | ||||
| example, MPLS VPN applications or Border Gateway Protocol (BGP) route-free cores | ||||
| . This document describes a mechanism to avoid traffic loss due to this conditi | ||||
| on without introducing any protocol changes. This memo provides information fo | ||||
| r the Internet community.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="5443"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5443"/> | ||||
| </reference> | ||||
| <reference anchor="RFC5880" target="https://www.rfc-editor.org/info/rfc5880"> | ||||
| <front> | ||||
| <title>Bidirectional Forwarding Detection (BFD)</title> | ||||
| <author initials="D." surname="Katz" fullname="D. Katz"><organization/></author> | ||||
| <author initials="D." surname="Ward" fullname="D. Ward"><organization/></author> | ||||
| <date year="2010" month="June"/> | ||||
| <abstract><t>This document describes a protocol intended to detect faults in the | ||||
| bidirectional path between two forwarding engines, including interfaces, data l | ||||
| ink(s), and to the extent possible the forwarding engines themselves, with poten | ||||
| tially very low latency. It operates independently of media, data protocols, an | ||||
| d routing protocols. [STANDARDS-TRACK]</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="5880"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5880"/> | ||||
| </reference> | ||||
| <reference anchor="RFC5881" target="https://www.rfc-editor.org/info/rfc5881"> | ||||
| <front> | ||||
| <title>Bidirectional Forwarding Detection (BFD) for IPv4 and IPv6 (Single Hop)</ | ||||
| title> | ||||
| <author initials="D." surname="Katz" fullname="D. Katz"><organization/></author> | ||||
| <author initials="D." surname="Ward" fullname="D. Ward"><organization/></author> | ||||
| <date year="2010" month="June"/> | ||||
| <abstract><t>This document describes the use of the Bidirectional Forwarding Det | ||||
| ection (BFD) protocol over IPv4 and IPv6 for single IP hops. [STANDARDS-TRACK]</ | ||||
| t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="5881"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5881"/> | ||||
| </reference> | ||||
| <reference anchor="RFC6020" target="https://www.rfc-editor.org/info/rfc6020"> | ||||
| <front> | ||||
| <title>YANG - A Data Modeling Language for the Network Configuration Protocol (N | ||||
| ETCONF)</title> | ||||
| <author initials="M." surname="Bjorklund" fullname="M. Bjorklund" role="editor"> | ||||
| <organization/></author> | ||||
| <date year="2010" month="October"/> | ||||
| <abstract><t>YANG is a data modeling language used to model configuration and st | ||||
| ate data manipulated by the Network Configuration Protocol (NETCONF), NETCONF re | ||||
| mote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t></abstract | ||||
| > | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="6020"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC6020"/> | ||||
| </reference> | ||||
| <reference anchor="RFC6119" target="https://www.rfc-editor.org/info/rfc6119"> | ||||
| <front> | ||||
| <title>IPv6 Traffic Engineering in IS-IS</title> | ||||
| <author initials="J." surname="Harrison" fullname="J. Harrison"><organization/>< | ||||
| /author> | ||||
| <author initials="J." surname="Berger" fullname="J. Berger"><organization/></aut | ||||
| hor> | ||||
| <author initials="M." surname="Bartlett" fullname="M. Bartlett"><organization/>< | ||||
| /author> | ||||
| <date year="2011" month="February"/> | ||||
| <abstract><t>This document specifies a method for exchanging IPv6 traffic engin | ||||
| eering information using the IS-IS routing protocol. This information enables ro | ||||
| uters in an IS-IS network to calculate traffic-engineered routes using IPv6 add | ||||
| resses. [STANDARDS-TRACK]</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="6119"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC6119"/> | ||||
| </reference> | ||||
| <reference anchor="RFC6232" target="https://www.rfc-editor.org/info/rfc6232"> | ||||
| <front> | ||||
| <title>Purge Originator Identification TLV for IS-IS</title> | ||||
| <author initials="F." surname="Wei" fullname="F. Wei"><organization/></author> | ||||
| <author initials="Y." surname="Qin" fullname="Y. Qin"><organization/></author> | ||||
| <author initials="Z." surname="Li" fullname="Z. Li"><organization/></author> | ||||
| <author initials="T." surname="Li" fullname="T. Li"><organization/></author> | ||||
| <author initials="J." surname="Dong" fullname="J. Dong"><organization/></author> | ||||
| <date year="2011" month="May"/> | ||||
| <abstract><t>At present, an IS-IS purge does not contain any information identif | ||||
| ying the Intermediate System (IS) that generates the purge. This makes it diffic | ||||
| ult to locate the source IS.</t><t>To address this issue, this document defines | ||||
| a TLV to be added to purges to record the system ID of the IS generating it. Si | ||||
| nce normal Link State Protocol Data Unit (LSP) flooding does not change LSP cont | ||||
| ents, this TLV should propagate with the purge.</t><t>This document updates RFC | ||||
| 5301, RFC 5304, and RFC 5310. [STANDARDS-TRACK]</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="6232"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC6232"/> | ||||
| </reference> | ||||
| <reference anchor="RFC6241" target="https://www.rfc-editor.org/info/rfc6241"> | ||||
| <front> | ||||
| <title>Network Configuration Protocol (NETCONF)</title> | ||||
| <author initials="R." surname="Enns" fullname="R. Enns" role="editor"><organizat | ||||
| ion/></author> | ||||
| <author initials="M." surname="Bjorklund" fullname="M. Bjorklund" role="editor"> | ||||
| <organization/></author> | ||||
| <author initials="J." surname="Schoenwaelder" fullname="J. Schoenwaelder" role=" | ||||
| editor"><organization/></author> | ||||
| <author initials="A." surname="Bierman" fullname="A. Bierman" role="editor"><org | ||||
| anization/></author> | ||||
| <date year="2011" month="June"/> | ||||
| <abstract><t>The Network Configuration Protocol (NETCONF) defined in this docume | ||||
| nt provides mechanisms to install, manipulate, and delete the configuration of n | ||||
| etwork devices. It uses an Extensible Markup Language (XML)-based data encoding | ||||
| for the configuration data as well as the protocol messages. The NETCONF proto | ||||
| col operations are realized as remote procedure calls (RPCs). This document obs | ||||
| oletes RFC 4741. [STANDARDS-TRACK]</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="6241"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC6241"/> | ||||
| </reference> | ||||
| <reference anchor="RFC6242" target="https://www.rfc-editor.org/info/rfc6242"> | ||||
| <front> | ||||
| <title>Using the NETCONF Protocol over Secure Shell (SSH)</title> | ||||
| <author initials="M." surname="Wasserman" fullname="M. Wasserman"><organization/ | ||||
| ></author> | ||||
| <date year="2011" month="June"/> | ||||
| <abstract><t>This document describes a method for invoking and running the Netwo | ||||
| rk Configuration Protocol (NETCONF) within a Secure Shell (SSH) session as an SS | ||||
| H subsystem. This document obsoletes RFC 4742. [STANDARDS-TRACK]</t></abstract | ||||
| > | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="6242"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC6242"/> | ||||
| </reference> | ||||
| <reference anchor="RFC6991" target="https://www.rfc-editor.org/info/rfc6991"> | ||||
| <front> | ||||
| <title>Common YANG Data Types</title> | ||||
| <author initials="J." surname="Schoenwaelder" fullname="J. Schoenwaelder" role=" | ||||
| editor"><organization/></author> | ||||
| <date year="2013" month="July"/> | ||||
| <abstract><t>This document introduces a collection of common data types to be us | ||||
| ed with the YANG data modeling language. This document obsoletes RFC 6021.</t>< | ||||
| /abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="6991"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC6991"/> | ||||
| </reference> | ||||
| <reference anchor="RFC7490" target="https://www.rfc-editor.org/info/rfc7490"> | ||||
| <front> | ||||
| <title>Remote Loop-Free Alternate (LFA) Fast Reroute (FRR)</title> | ||||
| <author initials="S." surname="Bryant" fullname="S. Bryant"><organization/></aut | ||||
| hor> | ||||
| <author initials="C." surname="Filsfils" fullname="C. Filsfils"><organization/>< | ||||
| /author> | ||||
| <author initials="S." surname="Previdi" fullname="S. Previdi"><organization/></a | ||||
| uthor> | ||||
| <author initials="M." surname="Shand" fullname="M. Shand"><organization/></autho | ||||
| r> | ||||
| <author initials="N." surname="So" fullname="N. So"><organization/></author> | ||||
| <date year="2015" month="April"/> | ||||
| <abstract><t>This document describes an extension to the basic IP fast reroute m | ||||
| echanism, described in RFC 5286, that provides additional backup connectivity fo | ||||
| r point-to-point link failures when none can be provided by the basic mechanisms | ||||
| .</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="7490"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7490"/> | ||||
| </reference> | ||||
| <reference anchor="RFC7794" target="https://www.rfc-editor.org/info/rfc7794"> | ||||
| <front> | ||||
| <title>IS-IS Prefix Attributes for Extended IPv4 and IPv6 Reachability</title> | ||||
| <author initials="L." surname="Ginsberg" fullname="L. Ginsberg" role="editor"><o | ||||
| rganization/></author> | ||||
| <author initials="B." surname="Decraene" fullname="B. Decraene"><organization/>< | ||||
| /author> | ||||
| <author initials="S." surname="Previdi" fullname="S. Previdi"><organization/></a | ||||
| uthor> | ||||
| <author initials="X." surname="Xu" fullname="X. Xu"><organization/></author> | ||||
| <author initials="U." surname="Chunduri" fullname="U. Chunduri"><organization/>< | ||||
| /author> | ||||
| <date year="2016" month="March"/> | ||||
| <abstract><t>This document introduces new sub-TLVs to support advertisement of I | ||||
| Pv4 and IPv6 prefix attribute flags and the source router ID of the router that | ||||
| originated a prefix advertisement.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="7794"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7794"/> | ||||
| </reference> | ||||
| <reference anchor="RFC7917" target="https://www.rfc-editor.org/info/rfc7917"> | ||||
| <front> | ||||
| <title>Advertising Node Administrative Tags in IS-IS</title> | ||||
| <author initials="P." surname="Sarkar" fullname="P. Sarkar" role="editor"><organ | ||||
| ization/></author> | ||||
| <author initials="H." surname="Gredler" fullname="H. Gredler"><organization/></a | ||||
| uthor> | ||||
| <author initials="S." surname="Hegde" fullname="S. Hegde"><organization/></autho | ||||
| r> | ||||
| <author initials="S." surname="Litkowski" fullname="S. Litkowski"><organization/ | ||||
| ></author> | ||||
| <author initials="B." surname="Decraene" fullname="B. Decraene"><organization/>< | ||||
| /author> | ||||
| <date year="2016" month="July"/> | ||||
| <abstract><t>This document describes an extension to the IS-IS routing protocol | ||||
| to advertise node administrative tags. This optional capability allows tagging | ||||
| and grouping of the nodes in an IS-IS domain. The node administrative tags can | ||||
| be used to express and apply locally defined network policies, thereby providing | ||||
| a very useful operational capability. Node administrative tags may be used by | ||||
| either IS-IS itself or other applications consuming information propagated via I | ||||
| S-IS.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="7917"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7917"/> | ||||
| </reference> | ||||
| <reference anchor="RFC7950" target="https://www.rfc-editor.org/info/rfc7950"> | ||||
| <front> | ||||
| <title>The YANG 1.1 Data Modeling Language</title> | ||||
| <author initials="M." surname="Bjorklund" fullname="M. Bjorklund" role="editor"> | ||||
| <organization/></author> | ||||
| <date year="2016" month="August"/> | ||||
| <abstract><t>YANG is a data modeling language used to model configuration data, | ||||
| state data, Remote Procedure Calls, and notifications for network management pro | ||||
| tocols. This document describes the syntax and semantics of version 1.1 of the | ||||
| YANG language. YANG version 1.1 is a maintenance release of the YANG language, | ||||
| addressing ambiguities and defects in the original specification. There are a s | ||||
| mall number of backward incompatibilities from YANG version 1. This document al | ||||
| so specifies the YANG mappings to the Network Configuration Protocol (NETCONF).< | ||||
| /t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="7950"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7950"/> | ||||
| </reference> | ||||
| <reference anchor="RFC7981" target="https://www.rfc-editor.org/info/rfc7981"> | ||||
| <front> | ||||
| <title>IS-IS Extensions for Advertising Router Information</title> | ||||
| <author initials="L." surname="Ginsberg" fullname="L. Ginsberg"><organization/>< | ||||
| /author> | ||||
| <author initials="S." surname="Previdi" fullname="S. Previdi"><organization/></a | ||||
| uthor> | ||||
| <author initials="M." surname="Chen" fullname="M. Chen"><organization/></author> | ||||
| <date year="2016" month="October"/> | ||||
| <abstract><t>This document defines a new optional Intermediate System to Interme | ||||
| diate System (IS-IS) TLV named CAPABILITY, formed of multiple sub-TLVs, which al | ||||
| lows a router to announce its capabilities within an IS-IS level or the entire r | ||||
| outing domain. This document obsoletes RFC 4971.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="7981"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7981"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8040" target="https://www.rfc-editor.org/info/rfc8040"> | ||||
| <front> | ||||
| <title>RESTCONF Protocol</title> | ||||
| <author initials="A." surname="Bierman" fullname="A. Bierman"><organization/></a | ||||
| uthor> | ||||
| <author initials="M." surname="Bjorklund" fullname="M. Bjorklund"><organization/ | ||||
| ></author> | ||||
| <author initials="K." surname="Watsen" fullname="K. Watsen"><organization/></aut | ||||
| hor> | ||||
| <date year="2017" month="January"/> | ||||
| <abstract><t>This document describes an HTTP-based protocol that provides a prog | ||||
| rammatic interface for accessing data defined in YANG, using the datastore conce | ||||
| pts defined in the Network Configuration Protocol (NETCONF).</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8040"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8040"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174"> | ||||
| <front> | ||||
| <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title> | ||||
| <author initials="B." surname="Leiba" fullname="B. Leiba"><organization/></autho | ||||
| r> | ||||
| <date year="2017" month="May"/> | ||||
| <abstract><t>RFC 2119 specifies common key words that may be used in protocol s | ||||
| pecifications. This document aims to reduce the ambiguity by clarifying that on | ||||
| ly UPPERCASE usage of the key words have the defined special meanings.</t></abs | ||||
| tract> | ||||
| </front> | ||||
| <seriesInfo name="BCP" value="14"/> | ||||
| <seriesInfo name="RFC" value="8174"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8174"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8294" target="https://www.rfc-editor.org/info/rfc8294"> | ||||
| <front> | ||||
| <title>Common YANG Data Types for the Routing Area</title> | ||||
| <author initials="X." surname="Liu" fullname="X. Liu"><organization/></author> | ||||
| <author initials="Y." surname="Qu" fullname="Y. Qu"><organization/></author> | ||||
| <author initials="A." surname="Lindem" fullname="A. Lindem"><organization/></aut | ||||
| hor> | ||||
| <author initials="C." surname="Hopps" fullname="C. Hopps"><organization/></autho | ||||
| r> | ||||
| <author initials="L." surname="Berger" fullname="L. Berger"><organization/></aut | ||||
| hor> | ||||
| <date year="2017" month="December"/> | ||||
| <abstract><t>This document defines a collection of common data types using the Y | ||||
| ANG data modeling language. These derived common types are designed to be impor | ||||
| ted by other modules defined in the routing area.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8294"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8294"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8341" target="https://www.rfc-editor.org/info/rfc8341"> | ||||
| <front> | ||||
| <title>Network Configuration Access Control Model</title> | ||||
| <author initials="A." surname="Bierman" fullname="A. Bierman"><organization/></a | ||||
| uthor> | ||||
| <author initials="M." surname="Bjorklund" fullname="M. Bjorklund"><organization/ | ||||
| ></author> | ||||
| <date year="2018" month="March"/> | ||||
| <abstract><t>The standardization of network configuration interfaces for use wit | ||||
| h the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires | ||||
| a structured and secure operating environment that promotes human usability and | ||||
| multi-vendor interoperability. There is a need for standard mechanisms to rest | ||||
| rict NETCONF or RESTCONF protocol access for particular users to a preconfigured | ||||
| subset of all available NETCONF or RESTCONF protocol operations and content. T | ||||
| his document defines such an access control model.</t><t>This document obsoletes | ||||
| RFC 6536.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="STD" value="91"/> | ||||
| <seriesInfo name="RFC" value="8341"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8341"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8342" target="https://www.rfc-editor.org/info/rfc8342"> | ||||
| <front> | ||||
| <title>Network Management Datastore Architecture (NMDA)</title> | ||||
| <author initials="M." surname="Bjorklund" fullname="M. Bjorklund"><organization/ | ||||
| ></author> | ||||
| <author initials="J." surname="Schoenwaelder" fullname="J. Schoenwaelder"><organ | ||||
| ization/></author> | ||||
| <author initials="P." surname="Shafer" fullname="P. Shafer"><organization/></aut | ||||
| hor> | ||||
| <author initials="K." surname="Watsen" fullname="K. Watsen"><organization/></aut | ||||
| hor> | ||||
| <author initials="R." surname="Wilton" fullname="R. Wilton"><organization/></aut | ||||
| hor> | ||||
| <date year="2018" month="March"/> | ||||
| <abstract><t>Datastores are a fundamental concept binding the data models writte | ||||
| n in the YANG data modeling language to network management protocols such as the | ||||
| Network Configuration Protocol (NETCONF) and RESTCONF. This document defines an | ||||
| architectural framework for datastores based on the experience gained with the | ||||
| initial simpler model, addressing requirements that were not well supported in t | ||||
| he initial model. This document updates RFC 7950.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8342"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8342"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8343" target="https://www.rfc-editor.org/info/rfc8343"> | ||||
| <front> | ||||
| <title>A YANG Data Model for Interface Management</title> | ||||
| <author initials="M." surname="Bjorklund" fullname="M. Bjorklund"><organization/ | ||||
| ></author> | ||||
| <date year="2018" month="March"/> | ||||
| <abstract><t>This document defines a YANG data model for the management of netwo | ||||
| rk interfaces. It is expected that interface-type-specific data models augment | ||||
| the generic interfaces data model defined in this document. The data model inclu | ||||
| des definitions for configuration and system state (status information and count | ||||
| ers for the collection of statistics).</t><t>The YANG data model in this documen | ||||
| t conforms to the Network Management Datastore Architecture (NMDA) defined in RF | ||||
| C 8342.</t><t>This document obsoletes RFC 7223.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8343"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8343"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8349" target="https://www.rfc-editor.org/info/rfc8349"> | ||||
| <front> | ||||
| <title>A YANG Data Model for Routing Management (NMDA Version)</title> | ||||
| <author initials="L." surname="Lhotka" fullname="L. Lhotka"><organization/></aut | ||||
| hor> | ||||
| <author initials="A." surname="Lindem" fullname="A. Lindem"><organization/></aut | ||||
| hor> | ||||
| <author initials="Y." surname="Qu" fullname="Y. Qu"><organization/></author> | ||||
| <date year="2018" month="March"/> | ||||
| <abstract><t>This document specifies three YANG modules and one submodule. Toget | ||||
| her, they form the core routing data model that serves as a framework for config | ||||
| uring and managing a routing subsystem. It is expected that these modules will | ||||
| be augmented by additional YANG modules defining data models for control-plane p | ||||
| rotocols, route filters, and other functions. The core routing data model provi | ||||
| des common building blocks for such extensions -- routes, Routing Information Ba | ||||
| ses (RIBs), and control-plane protocols.</t><t>The YANG modules in this document | ||||
| conform to the Network Management Datastore Architecture (NMDA). This document | ||||
| obsoletes RFC 8022.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8349"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8349"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8177" target="https://www.rfc-editor.org/info/rfc8177"> | ||||
| <front> | ||||
| <title>YANG Data Model for Key Chains</title> | ||||
| <author initials="A." surname="Lindem" fullname="A. Lindem" role="editor"><organ | ||||
| ization/></author> | ||||
| <author initials="Y." surname="Qu" fullname="Y. Qu"><organization/></author> | ||||
| <author initials="D." surname="Yeung" fullname="D. Yeung"><organization/></autho | ||||
| r> | ||||
| <author initials="I." surname="Chen" fullname="I. Chen"><organization/></author> | ||||
| <author initials="J." surname="Zhang" fullname="J. Zhang"><organization/></autho | ||||
| r> | ||||
| <date year="2017" month="June"/> | ||||
| <abstract><t>This document describes the key chain YANG data model. Key chains | ||||
| are commonly used for routing protocol authentication and other applications req | ||||
| uiring symmetric keys. A key chain is a list containing one or more elements co | ||||
| ntaining a Key ID, key string, send/accept lifetimes, and the associated authent | ||||
| ication or encryption algorithm. By properly overlapping the send and accept li | ||||
| fetimes of multiple key chain elements, key strings and algorithms may be gracef | ||||
| ully updated. By representing them in a YANG data model, key distribution can b | ||||
| e automated.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8177"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8177"/> | ||||
| </reference> | ||||
| <reference anchor="I-D.ietf-bfd-yang"> | ||||
| <front> | ||||
| <title>YANG Data Model for Bidirectional Forwarding Detection (BFD)</title> | ||||
| <author initials="R" surname="Rahman" fullname="Reshad Rahman"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="L" surname="Zheng" fullname="Lianshu Zheng"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="M" surname="Jethanandani" fullname="Mahesh Jethanandani"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="J" surname="Networks" fullname="Juniper Networks"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="G" surname="Mirsky" fullname="Gregory Mirsky"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="August" day="2" year="2018"/> | ||||
| <abstract><t>This document defines a YANG data model that can be used to configu | ||||
| re and manage Bidirectional Forwarding Detection (BFD). The YANG modules in thi | ||||
| s document conform to the Network Management Datastore Architecture (NMDA).</t>< | ||||
| /abstract> | ||||
| </front> | ||||
| <seriesInfo name="Internet-Draft" value="draft-ietf-bfd-yang-17"/> | ||||
| <format type="TXT" target="http://www.ietf.org/internet-drafts/draft-ietf-bfd-ya | ||||
| ng-17.txt"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8405" target="https://www.rfc-editor.org/info/rfc8405"> | ||||
| <front> | ||||
| <title>Shortest Path First (SPF) Back-Off Delay Algorithm for Link-State IGPs</t | ||||
| itle> | ||||
| <author initials="B." surname="Decraene" fullname="B. Decraene"><organization/>< | ||||
| /author> | ||||
| <author initials="S." surname="Litkowski" fullname="S. Litkowski"><organization/ | ||||
| ></author> | ||||
| <author initials="H." surname="Gredler" fullname="H. Gredler"><organization/></a | ||||
| uthor> | ||||
| <author initials="A." surname="Lindem" fullname="A. Lindem"><organization/></aut | ||||
| hor> | ||||
| <author initials="P." surname="Francois" fullname="P. Francois"><organization/>< | ||||
| /author> | ||||
| <author initials="C." surname="Bowers" fullname="C. Bowers"><organization/></aut | ||||
| hor> | ||||
| <date year="2018" month="June"/> | ||||
| <abstract><t>This document defines a standard algorithm to temporarily postpone | ||||
| or "back off" link-state IGP Shortest Path First (SPF) computations. This reduce | ||||
| s the computational load and churn on IGP nodes when multiple temporally close n | ||||
| etwork events trigger multiple SPF computations.</t><t>Having one standard algor | ||||
| ithm improves interoperability by reducing the probability and/or duration of tr | ||||
| ansient forwarding loops during the IGP convergence when the IGP reacts to multi | ||||
| ple temporally close IGP events.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8405"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8405"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8446" target="https://www.rfc-editor.org/info/rfc8446"> | ||||
| <front> | ||||
| <title>The Transport Layer Security (TLS) Protocol Version 1.3</title> | ||||
| <author initials="E." surname="Rescorla" fullname="E. Rescorla"><organization/>< | ||||
| /author> | ||||
| <date year="2018" month="August"/> | ||||
| <abstract><t>This document specifies version 1.3 of the Transport Layer Security | ||||
| (TLS) protocol. TLS allows client/server applications to communicate over the | ||||
| Internet in a way that is designed to prevent eavesdropping, tampering, and mess | ||||
| age forgery.</t><t>This document updates RFCs 5705 and 6066, and obsoletes RFCs | ||||
| 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 | ||||
| implementations.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8446"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8446"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8570" target="https://www.rfc-editor.org/info/rfc8570"> | ||||
| <front> | ||||
| <title>IS-IS Traffic Engineering (TE) Metric Extensions</title> | ||||
| <author initials="L." surname="Ginsberg" fullname="L. Ginsberg" role="editor"><o | ||||
| rganization/></author> | ||||
| <author initials="S." surname="Previdi" fullname="S. Previdi" role="editor"><org | ||||
| anization/></author> | ||||
| <author initials="S." surname="Giacalone" fullname="S. Giacalone"><organization/ | ||||
| ></author> | ||||
| <author initials="D." surname="Ward" fullname="D. Ward"><organization/></author> | ||||
| <author initials="J." surname="Drake" fullname="J. Drake"><organization/></autho | ||||
| r> | ||||
| <author initials="Q." surname="Wu" fullname="Q. Wu"><organization/></author> | ||||
| <date year="2019" month="March"/> | ||||
| <abstract><t>In certain networks, such as, but not limited to, financial informa | ||||
| tion networks (e.g., stock market data providers), network-performance criteria | ||||
| (e.g., latency) are becoming as critical to data-path selection as other metrics | ||||
| .</t><t>This document describes extensions to IS-IS Traffic Engineering Extensio | ||||
| ns (RFC 5305). These extensions provide a way to distribute and collect network | ||||
| -performance information in a scalable fashion. The information distributed usin | ||||
| g IS-IS TE Metric Extensions can then be used to make path-selection decisions b | ||||
| ased on network performance.</t><t>Note that this document only covers the mecha | ||||
| nisms with which network-performance information is distributed. The mechanisms | ||||
| for measuring network performance or acting on that information, once distribut | ||||
| ed, are outside the scope of this document.</t><t>This document obsoletes RFC 78 | ||||
| 10.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8570"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8570"/> | ||||
| </reference> | ||||
| <reference anchor="ISO-10589"> | <!-- draft-ietf-bfd-rfc9127-bis (RFC 9314; pub. Sept. 2022) --> | |||
| <front> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <title>Intermediate System to Intermediate System intra- | FC.9314.xml"/> | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8405.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8446.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8570.xml"/> | ||||
| <reference anchor="ISO-10589" target="https://www.iso.org/standard/30932 | ||||
| .html"> | ||||
| <front> | ||||
| <title>Intermediate System to Intermediate System intra- | ||||
| domain routeing information exchange protocol for use in | domain routeing information exchange protocol for use in | |||
| conjunction with the protocol for providing the | conjunction with the protocol for providing the | |||
| connectionless-mode network service (ISO 8473)</title> | connectionless-mode network service (ISO 8473)</title> | |||
| <author surname="ISO"/> | <author><organization>ISO</organization></author> | |||
| <date year="2002"/> | <date year="2002"/> | |||
| </front> | </front> | |||
| <seriesInfo name="International Standard 10589: 2002," value="Second Editi | <refcontent>International Standard 10589: 2002, Second Edition</refcon | |||
| on"/> | tent> | |||
| </reference> | ||||
| <reference anchor='W3C.REC-xml-20081126' | ||||
| target='https://www.w3.org/TR/2008/REC-xml-20081126'> | ||||
| <front> | ||||
| <title>Extensible Markup Language (XML) 1.0 (Fifth Edition)</title> | ||||
| <author initials='T.' surname='Bray' fullname='Tim Bray'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='J.' surname='Paoli' fullname='Jean Paoli'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='M.' surname='Sperberg-McQueen' fullname='Michael Sperberg | ||||
| -McQueen'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='E.' surname='Maler' fullname='Eve Maler'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='F.' surname='Yergeau' fullname='Francois Yergeau'> | ||||
| <organization /> | ||||
| </author> | ||||
| <date month='November' year='2008' /> | ||||
| </front> | ||||
| <seriesInfo name="World Wide Web Consortium Recommendation" value="REC-xml- | ||||
| 20081126"/> | ||||
| </reference> | </reference> | |||
| </references> | </references> | |||
| <references title="Informative References"> | <references> | |||
| <name>Informative References</name> | ||||
| <reference anchor="RFC8340" target="https://www.rfc-editor.org/info/rfc8340"> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <front> | FC.8340.xml"/> | |||
| <title>YANG Tree Diagrams</title> | ||||
| <author initials="M." surname="Bjorklund" fullname="M. Bjorklund"><organization/ | ||||
| ></author> | ||||
| <author initials="L." surname="Berger" fullname="L. Berger" role="editor"><organ | ||||
| ization/></author> | ||||
| <date year="2018" month="March"/> | ||||
| <abstract><t>This document captures the current syntax used in YANG module tree | ||||
| diagrams. The purpose of this document is to provide a single location for this | ||||
| definition. This syntax may be updated from time to time based on the evolutio | ||||
| n of the YANG language.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="BCP" value="215"/> | ||||
| <seriesInfo name="RFC" value="8340"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8340"/> | ||||
| </reference> | ||||
| <reference anchor="I-D.ietf-rtgwg-segment-routing-ti-lfa"> | ||||
| <front> | ||||
| <title>Topology Independent Fast Reroute using Segment Routing</title> | ||||
| <author initials="S" surname="Litkowski" fullname="Stephane Litkowski"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="A" surname="Bashandy" fullname="Ahmed Bashandy"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="C" surname="Filsfils" fullname="Clarence Filsfils"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="B" surname="Decraene" fullname="Bruno Decraene"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="P" surname="Francois" fullname="Pierre Francois"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="d" surname="daniel.voyer@bell.ca" fullname="daniel.voyer@bell. | ||||
| ca"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="F" surname="Clad" fullname="Francois Clad"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="P" surname="Camarillo" fullname="Pablo Camarillo"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="March" day="5" year="2019"/> | ||||
| <abstract><t>This document presents Topology Independent Loop-free Alternate Fas | ||||
| t Re-route (TI-LFA), aimed at providing protection of node and adjacency segment | ||||
| s within the Segment Routing (SR) framework. This Fast Re-route (FRR) behavior | ||||
| builds on proven IP-FRR concepts being LFAs, remote LFAs (RLFA), and remote LFAs | ||||
| with directed forwarding (DLFA). It extends these concepts to provide guarante | ||||
| ed coverage in any IGP network. A key aspect of TI-LFA is the FRR path selectio | ||||
| n approach establishing protection over the expected post-convergence paths from | ||||
| the point of local repair, dramatically reducing the operational need to contro | ||||
| l the tie-breaks among various FRR options.</t></abstract> | ||||
| </front> | <!-- draft-ietf-rtgwg-segment-routing-ti-lfa (I-D Exists) --> | |||
| <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-rt | ||||
| gwg-segment-routing-ti-lfa.xml"/> | ||||
| <seriesInfo name="Internet-Draft" value="draft-ietf-rtgwg-segment-routing-ti-lfa | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| -01"/> | FC.7812.xml"/> | |||
| <format type="TXT" target="http://www.ietf.org/internet-drafts/draft-ietf-rtgwg- | ||||
| segment-routing-ti-lfa-01.txt"/> | ||||
| </reference> | ||||
| <reference anchor="RFC7812" target="https://www.rfc-editor.org/info/rfc7812"> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <front> | FC.8792.xml"/> | |||
| <title>An Architecture for IP/LDP Fast Reroute Using Maximally Redundant Trees ( | ||||
| MRT-FRR)</title> | ||||
| <author initials="A." surname="Atlas" fullname="A. Atlas"><organization/></autho | ||||
| r> | ||||
| <author initials="C." surname="Bowers" fullname="C. Bowers"><organization/></aut | ||||
| hor> | ||||
| <author initials="G." surname="Enyedi" fullname="G. Enyedi"><organization/></aut | ||||
| hor> | ||||
| <date year="2016" month="June"/> | ||||
| <abstract><t>This document defines the architecture for IP and LDP Fast Reroute | ||||
| using Maximally Redundant Trees (MRT-FRR). MRT-FRR is a technology that gives l | ||||
| ink-protection and node-protection with 100% coverage in any network topology th | ||||
| at is still connected after the failure.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="7812"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7812"/> | ||||
| </reference> | ||||
| </references> | ||||
| </references> | </references> | |||
| <section anchor="rpc-example" title="Example of IS-IS configuration in XML" | <section anchor="rpc-example" toc="default" numbered="true"> | |||
| toc="default"> | <name>Example of IS-IS Configuration in XML</name> | |||
| <t>This section gives an example of configuration of an IS-IS instance on | <t>This appendix gives an example of the configuration of an IS-IS instanc | |||
| a device. | e on a device. | |||
| The example is written in XML.</t> | The example is written in XML <xref target="W3C.REC-xml-20081126"/>.</ | |||
| t> | ||||
| <figure title="" suppress-title="false" align="left" alt="" width="" heigh | <sourcecode type="xml"><![CDATA[ | |||
| t=""> | <?xml version="1.0" encoding="utf-8"?> | |||
| <artwork xml:space="preserve" name="" type="" align="left" alt="" width= | <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> | |||
| "" height=""> | <routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> | |||
| <?xml version="1.0" encoding="utf-8"?> | <name>SLI</name> | |||
| <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> | <router-id>192.0.2.1</router-id> | |||
| <routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> | <control-plane-protocols> | |||
| <name>SLI</name> | <control-plane-protocol> | |||
| <router-id>192.0.2.1</router-id> | <name>IS-IS-example</name> | |||
| <control-plane-protocols> | <description/> | |||
| <control-plane-protocol> | <type> | |||
| <name>ISIS-example</name> | <type xmlns:isis="urn:ietf:params:xml:ns:yang:ietf-isis"> | |||
| <description/> | ||||
| <type> | ||||
| <type xmlns:isis="urn:ietf:params:xml:ns:yang:ietf-isis"> | ||||
| isis:isis | isis:isis | |||
| </type> | </type> | |||
| </type> | </type> | |||
| <isis xmlns="urn:ietf:params:xml:ns:yang:ietf-isis"> | <isis xmlns="urn:ietf:params:xml:ns:yang:ietf-isis"> | |||
| <enable>true</enable> | <enabled>true</enabled> | |||
| <level-type>level-2</level-type> | <level-type>level-2</level-type> | |||
| <system-id>87FC.FCDF.4432</system-id> | <system-id>87FC.FCDF.4432</system-id> | |||
| <area-address>49.0001</area-address> | <area-address>49.0001</area-address> | |||
| <mpls> | <mpls> | |||
| <te-rid> | <te-rid> | |||
| <ipv4-router-id>192.0.2.1</ipv4-router-id> | <ipv4-router-id>192.0.2.1</ipv4-router-id> | |||
| </te-rid> | </te-rid> | |||
| </mpls> | </mpls> | |||
| <lsp-lifetime>65535</lsp-lifetime> | <lsp-lifetime>65535</lsp-lifetime> | |||
| <lsp-refresh>65000</lsp-refresh> | <lsp-refresh>65000</lsp-refresh> | |||
| <metric-type> | <metric-type> | |||
| <value>wide-only</value> | <value>wide-only</value> | |||
| </metric-type> | </metric-type> | |||
| <default-metric> | <default-metric> | |||
| <value>111111</value> | <value>111111</value> | |||
| </default-metric> | </default-metric> | |||
| <address-families> | <address-families> | |||
| <address-family-list> | <address-family-list> | |||
| <address-family>ipv4</address-family> | <address-family>ipv4</address-family> | |||
| <enable>true</enable> | <enabled>true</enabled> | |||
| </address-family-list> | </address-family-list> | |||
| <address-family-list> | <address-family-list> | |||
| <address-family>ipv6</address-family> | <address-family>ipv6</address-family> | |||
| <enable>true</enable> | <enabled>true</enabled> | |||
| </address-family-list> | </address-family-list> | |||
| </address-families> | </address-families> | |||
| <interfaces> | <interfaces> | |||
| <interface> | <interface> | |||
| <name>Loopback0</name> | <name>Loopback0</name> | |||
| <tag>200</tag> | <tag>200</tag> | |||
| <metric> | <metric> | |||
| <value>0</value> | <value>0</value> | |||
| </metric> | </metric> | |||
| <passive>true</passive> | <passive>true</passive> | |||
| </interface> | </interface> | |||
| <interface> | <interface> | |||
| <name>Eth1</name> | <name>Eth1</name> | |||
| <level-type>level-2</level-type> | <level-type>level-2</level-type> | |||
| <interface-type>point-to-point</interface-type> | <interface-type>point-to-point</interface-type> | |||
| <metric> | <metric> | |||
| <value>167890</value> | <value>167890</value> | |||
| </metric> | </metric> | |||
| </interface> | </interface> | |||
| </interfaces> | </interfaces> | |||
| </isis> | </isis> | |||
| </control-plane-protocol> | </control-plane-protocol> | |||
| </control-plane-protocols> | </control-plane-protocols> | |||
| </routing> | </routing> | |||
| <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"> | <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"> | |||
| <interface> | <interface> | |||
| <name>Loopback0</name> | <name>Loopback0</name> | |||
| <description/> | <description/> | |||
| <type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type"> | <type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type"> | |||
| ianaift:softwareLoopback | ianaift:softwareLoopback | |||
| </type> | </type> | |||
| <link-up-down-trap-enable>enabled</link-up-down-trap-enable> | <link-up-down-trap-enable>enabled</link-up-down-trap-enable> | |||
| <ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> | <ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> | |||
| <address> | <address> | |||
| <ip>192.0.2.1</ip> | <ip>192.0.2.1</ip> | |||
| <prefix-length>32</prefix-length> | <prefix-length>32</prefix-length> | |||
| </address> | </address> | |||
| </ipv4> | </ipv4> | |||
| <ipv6 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> | <ipv6 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> | |||
| <address> | <address> | |||
| <ip>2001:DB8::1</ip> | <ip>2001:db8::1</ip> | |||
| <prefix-length>128</prefix-length> | <prefix-length>128</prefix-length> | |||
| </address> | </address> | |||
| </ipv6> | </ipv6> | |||
| </interface> | </interface> | |||
| <interface> | <interface> | |||
| <name>Eth1</name> | <name>Eth1</name> | |||
| <description/> | <description/> | |||
| <type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type"> | <type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type"> | |||
| ianaift:ethernetCsmacd | ianaift:ethernetCsmacd | |||
| </type> | </type> | |||
| <link-up-down-trap-enable>enabled</link-up-down-trap-enable> | <link-up-down-trap-enable>enabled</link-up-down-trap-enable> | |||
| <ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> | <ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> | |||
| <address> | <address> | |||
| <ip>198.51.100.1</ip> | <ip>198.51.100.1</ip> | |||
| <prefix-length>30</prefix-length> | <prefix-length>30</prefix-length> | |||
| </address> | </address> | |||
| </ipv4> | </ipv4> | |||
| <ipv6 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> | <ipv6 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> | |||
| <address> | <address> | |||
| <ip>2001:DB8:0:0:FF::1</ip> | <ip>2001:db8:0:0:ff::1</ip> | |||
| <prefix-length>64</prefix-length> | <prefix-length>64</prefix-length> | |||
| </address> | </address> | |||
| </ipv6> | </ipv6> | |||
| </interface> | </interface> | |||
| </interfaces> | </interfaces> | |||
| </data> | </data> | |||
| </artwork> | ]]></sourcecode> | |||
| </section> | ||||
| </figure> | <section anchor="ack" toc="default" numbered="false"> | |||
| <name>Acknowledgments</name> | ||||
| <t>The authors would like to thank <contact fullname="Tom Petch"/>, | ||||
| <contact fullname="Alvaro Retana"/>, <contact fullname="Stewart | ||||
| Bryant"/>, <contact fullname="Barry Leiba"/>, <contact | ||||
| fullname="Benjamin Kaduk"/>, <contact fullname="Adam Roach"/>, | ||||
| and <contact fullname="Roman Danyliw"/> for their review and | ||||
| comments.</t> | ||||
| </section> | ||||
| <section anchor="Contributors" toc="default" numbered="false"> | ||||
| <name>Contributors</name> | ||||
| <t>The authors would like to thank | ||||
| <contact fullname="Kiran Agrahara Sreenivasa"/>, <contact | ||||
| fullname="Dean Bogdanovic"/>, <contact fullname="Yingzhen Qu"/>, | ||||
| <contact fullname="Yi Yang"/>, and <contact fullname="Jeff Tantsura"/> | ||||
| for their major contributions to this document.</t> | ||||
| </section> | </section> | |||
| </back> | </back> | |||
| </rfc> | </rfc> | |||
| End of changes. 978 change blocks. | ||||
| 3356 lines changed or deleted | 2782 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||