rfc9130xml2.original.xml | rfc9130.xml | |||
---|---|---|---|---|
<?xml version="1.0"?> | <?xml version='1.0' encoding='utf-8'?> | |||
<?rfc strict="yes" ?> | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
<?rfc toc="yes"?> | ||||
<?rfc tocdepth="3"?> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" | |||
<?rfc symrefs="yes"?> | docName="draft-ietf-isis-yang-isis-cfg-42" number="9130" ipr="trust200902" | |||
<?rfc sortrefs="yes" ?> | category="std" obsoletes="" updates="" submissionType="IETF" | |||
<?rfc compact="yes" ?> | xml:lang="en" tocInclude="true" tocDepth="3" symRefs="true" | |||
<?rfc subcompact="no" ?> | sortRefs="true" version="3" consensus="true"> | |||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"> | <!-- xml2rfc v2v3 conversion 2.47.0 --> | |||
<rfc docName="draft-ietf-isis-yang-isis-cfg-42" ipr="trust200902" category="std" | ||||
obsoletes="" updates="" submissionType="IETF" xml:lang="en"> | ||||
<front> | <front> | |||
<title abbrev="isis-cfg">YANG Data Model for IS-IS Protocol</title> | <title abbrev="isis-cfg">YANG Data Model for the IS-IS Protocol</title> | |||
<!-- [rfced] Document title: We changed "for IS-IS Protocol" to | ||||
"for the IS-IS Protocol". Please let us know any objections. | ||||
Original: | ||||
YANG Data Model for IS-IS Protocol | ||||
Currently: | ||||
YANG Data Model for the IS-IS Protocol --> | ||||
<!-- [rfced] The current abbreviated title, which is displayed | ||||
in the headers of the PDF output, is somewhat hard to understand. | ||||
Original: | ||||
isis-cfg | ||||
Perhaps: | ||||
ISIS YANG Data Model --> | ||||
<seriesInfo name="RFC" value="9130"/> | ||||
<author fullname="Stephane Litkowski" initials="S" surname="Litkowski"> | <author fullname="Stephane Litkowski" initials="S" surname="Litkowski"> | |||
<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> | <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> | |||
<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> | |||
<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/> | <date month="September" year="2021"/> | |||
<workgroup>IS-IS Working Group</workgroup> | ||||
<!-- [rfced] Please insert any keywords (beyond those that appear in the | ||||
title) for use on https://www.rfc-editor.org/search --> | ||||
<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:</t> | |||
<sourcecode type="yangtree"><![CDATA[ | ||||
<figure title="" suppress-title="false" align="left" alt="" width="" heigh | ||||
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 | |||
skipping to change at line 193 ¶ | skipping to change at line 221 ¶ | |||
+--rw topologies {multi-topology}? | +--rw topologies {multi-topology}? | |||
| +--rw topology* [name] | | +--rw topology* [name] | |||
| ... | | ... | |||
+--rw interfaces | +--rw interfaces | |||
+--rw interface* [name] | +--rw interface* [name] | |||
... | ... | |||
rpcs: | rpcs: | |||
+---x clear-adjacency | +---x clear-adjacency | |||
| +---w input | | +---w input | |||
| +---w routing-protocol-instance-name -> /rt:routing/ | | +---w routing-protocol-instance-name -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +---w level? level | | +---w level? level | |||
| +---w interface? if:interface-ref | | +---w interface? if:interface-ref | |||
+---x clear-database | +---x clear-database | |||
+---w input | +---w input | |||
+---w routing-protocol-instance-name -> /rt:routing/ | +---w routing-protocol-instance-name -> /rt:routing/ | |||
| control-plane-protocols/ | | control-plane-protocols/ | |||
| control-plane-protocol/name | | control-plane-protocol/name | |||
+---w level? level | +---w level? level | |||
notifications: | notifications: | |||
+---n database-overload | +---n database-overload | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro overload? enumeration | | +--ro overload? enumeration | |||
+---n lsp-too-large | +---n lsp-too-large | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| control-plane-protocols/ | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| +--ro interface-level? level | | +--ro interface-level? level | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro pdu-size? uint32 | | +--ro pdu-size? uint32 | |||
| +--ro lsp-id? lsp-id | | +--ro lsp-id? lsp-id | |||
+---n if-state-change | +---n if-state-change | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| +--ro interface-level? level | | +--ro interface-level? level | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro state? if-state-type | | +--ro state? if-state-type | |||
+---n corrupted-lsp-detected | +---n corrupted-lsp-detected | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro lsp-id? lsp-id | | +--ro lsp-id? lsp-id | |||
+---n attempt-to-exceed-max-sequence | +---n attempt-to-exceed-max-sequence | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro lsp-id? lsp-id | | +--ro lsp-id? lsp-id | |||
+---n id-len-mismatch | +---n id-len-mismatch | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| +--ro interface-level? level | | +--ro interface-level? level | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro pdu-field-len? uint8 | | +--ro pdu-field-len? uint8 | |||
| +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
+---n max-area-addresses-mismatch | +---n max-area-addresses-mismatch | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| +--ro interface-level? level | | +--ro interface-level? level | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro max-area-addresses? uint8 | | +--ro max-area-addresses? uint8 | |||
| +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
+---n own-lsp-purge | +---n own-lsp-purge | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| +--ro interface-level? level | | +--ro interface-level? level | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro lsp-id? lsp-id | | +--ro lsp-id? lsp-id | |||
+---n sequence-number-skipped | +---n sequence-number-skipped | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| +--ro interface-level? level | | +--ro interface-level? level | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro lsp-id? lsp-id | | +--ro lsp-id? lsp-id | |||
+---n authentication-type-failure | +---n authentication-type-failure | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| +--ro interface-level? level | | +--ro interface-level? level | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
+---n authentication-failure | +---n authentication-failure | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| +--ro interface-level? level | | +--ro interface-level? level | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
+---n version-skew | +---n version-skew | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| +--ro interface-level? level | | +--ro interface-level? level | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro protocol-version? uint8 | | +--ro protocol-version? uint8 | |||
| +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
+---n area-mismatch | +---n area-mismatch | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| +--ro interface-level? level | | +--ro interface-level? level | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
+---n rejected-adjacency | +---n rejected-adjacency | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| +--ro interface-level? level | | +--ro interface-level? level | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| +--ro reason? string | | +--ro reason? string | |||
+---n protocols-supported-mismatch | +---n protocols-supported-mismatch | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| +--ro interface-level? level | | +--ro interface-level? level | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| +--ro protocols* uint8 | | +--ro protocols* uint8 | |||
+---n lsp-error-detected | +---n lsp-error-detected | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| +--ro interface-level? level | | +--ro interface-level? level | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro lsp-id? lsp-id | | +--ro lsp-id? lsp-id | |||
| +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| +--ro error-offset? uint32 | | +--ro error-offset? uint32 | |||
| +--ro tlv-type? uint8 | | +--ro tlv-type? uint8 | |||
+---n adjacency-state-change | +---n adjacency-state-change | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| +--ro interface-level? level | | +--ro interface-level? level | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro neighbor? string | | +--ro neighbor? string | |||
| +--ro neighbor-system-id? system-id | | +--ro neighbor-system-id? system-id | |||
| +--ro state? adj-state-type | | +--ro state? adj-state-type | |||
| +--ro reason? string | | +--ro reason? string | |||
+---n lsp-received | +---n lsp-received | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| +--ro interface-level? level | | +--ro interface-level? level | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro lsp-id? lsp-id | | +--ro lsp-id? lsp-id | |||
| +--ro sequence? uint32 | | +--ro sequence? uint32 | |||
| +--ro received-timestamp? yang:timestamp | | +--ro received-timestamp? yang:timestamp | |||
| +--ro neighbor-system-id? system-id | | +--ro neighbor-system-id? system-id | |||
+---n lsp-generation | +---n lsp-generation | |||
+--ro routing-protocol-name? -> /rt:routing/ | +--ro routing-protocol-name? -> /rt:routing/ | |||
| control-plane-protocols/ | | control-plane-protocols/ | |||
| control-plane-protocol/name | | control-plane-protocol/name | |||
+--ro isis-level? level | +--ro isis-level? level | |||
+--ro lsp-id? lsp-id | +--ro lsp-id? lsp-id | |||
+--ro sequence? uint32 | +--ro sequence? uint32 | |||
+--ro send-timestamp? yang:timestamp | +--ro send-timestamp? yang:timestamp]]></sourcecode> | |||
</artwork> | ||||
</figure> | <!-- [rfced] Section 2: The tree diagram does not follow the offset | |||
guidance provided in Section 2 of RFC 8340. | ||||
<section anchor="yang-isis-global" title="IS-IS Configuration" toc="defaul | Original: | |||
t"> | module: ietf-isis | |||
<t>The IS-IS configuration is divided into: | augment /rt:routing/rt:ribs/rt:rib/rt:routes/rt:route: | |||
<list style="symbols"> | ... | |||
<t>Global parameters.</t> | ||||
<t>Per-interface configuration (see <xref target="yang-interface" page | ||||
no="false" format="default"/>).</t> | ||||
</list></t> | ||||
<t>Additional modules may be created to support | ||||
additional parameters. These additional modules MUST augment the | ||||
ietf-isis module.</t> | ||||
<t>The model includes optional features, for which the correspon | ||||
ding configuration data nodes are also optional. | ||||
As an example, the ability to control the administrative state o | ||||
f a particular IS-IS instance is optional. | ||||
By advertising the feature "admin-control", a device communicate | ||||
s to the client that it supports the ability to shutdown a particular IS-IS inst | ||||
ance.</t> | ||||
<t> | ||||
The global configuration contains usual IS-IS parameters, such a | ||||
s, lsp-mtu, lsp-lifetime, lsp-refresh, default-metric, etc. | ||||
</t> | ||||
</section> | ||||
<section anchor="yang-multitopology" title="Multi-topology Parameters" toc | Per RFC 8340, this would be | |||
="default"> | module: ietf-isis | |||
<t>The model supports multi-topology (MT) IS-IS as defined in <x | augment /rt:routing/rt:ribs/rt:rib/rt:routes/rt:route: | |||
ref target="RFC5120" pageno="false" format="default"/>.</t> | ... | |||
<t>The "topologies" container is used to enable support of the MT | ||||
extensions.</t> | ||||
<t>The "name" used in the topology list should refer to an exist | ||||
ing Routing Information Base (RIB) | ||||
defined for the device <xref target="RFC8349" pageno="false" | ||||
format="default"/>.</t> | ||||
<t>Some specific parameters can be defined on a per-topology bas | ||||
is, | ||||
both at the global level and at the interface level: for example | ||||
, an interface metric can be defined per topology.</t> | ||||
<t>Multiple address families (such as, IPv4 or IPv6) can also be | ||||
enabled within the default topology. | ||||
This can be achieved using the address-families container (requi | ||||
ring the "nlpid-control" feature to be supported).</t> | ||||
</section> | We also see that there are two lines in this tree and eight lines | |||
in the per-interface tree that yield "Too long line" xml2rfc | ||||
warnings. Please let us know whether (1) you would like to correct | ||||
the offsets and add line breaks where needed or (2) leave as is. --> | ||||
<section anchor="yang-level" title="Per-Level Parameters" toc="default"> | <section anchor="yang-isis-global" toc="default" numbered="true"> | |||
<t>Some parameters allow a per-level configuration. For such parameters, | <name>IS-IS Configuration</name> | |||
the parameter is modeled as a container with three configuration | <t>The IS-IS configuration is divided into two areas:</t> | |||
locations: | <ul spacing="normal"> | |||
<list style="symbols"> | <li>Global parameters</li> | |||
<t>a Top-level container: Corresponds to level-1-2, so the confi | <li>Per-interface configuration (see <xref target="yang-interface" | |||
guration applies to both levels.</t> | format="default"/>)</li> | |||
<t>a Level-1 container: Corresponds to level-1 specific paramete | </ul> | |||
rs.</t> | <t>Additional modules may be created to support additional | |||
<t>a Level-2 container: Corresponds to level-2 specific paramete | parameters. These additional modules <bcp14>MUST</bcp14> augment the | |||
rs.</t> | "ietf-isis" module.</t> | |||
</list> | <t>The model includes optional features for which the corresponding | |||
</t> | configuration data nodes are also optional. As an example, the ability | |||
<figure title="" suppress-title="false" align="left" alt="" widt | to control the administrative state of a particular IS-IS instance is | |||
h="" height=""> | optional. By advertising the feature "admin-control", a device | |||
<artwork xml:space="preserve" name="" type="" align="left" alt=" | communicates to the client that it supports the ability to shut down a | |||
" width="" height=""> | particular IS-IS instance.</t> | |||
<t>The global configuration contains the usual IS-IS parameters, e.g., | ||||
"lsp-mtu", "lsp-lifetime", "lsp-refresh", "default-metric".</t> | ||||
</section> | ||||
<section anchor="yang-multitopology" toc="default" numbered="true"> | ||||
<name>Multi-Topology Parameters</name> | ||||
<t>The model supports Multi-Topology (MT) IS-IS as defined in <xref | ||||
target="RFC5120" format="default"/>.</t> | ||||
<t>The "topologies" container is used to enable support of the MT | ||||
extensions.</t> | ||||
<t>The "name" used in the topology list should refer to an existing | ||||
Routing Information Base (RIB) defined for the device <xref | ||||
target="RFC8349" format="default"/>.</t> | ||||
<t>Some specific parameters can be defined on a per-topology basis, | ||||
at both the global level and the interface level: for example, an | ||||
interface metric can be defined per topology.</t> | ||||
<t>Multiple address families (such as IPv4 or IPv6) can also be | ||||
enabled within the default topology. This can be achieved using the | ||||
"address-families" container (requiring the "nlpid-control" feature to | ||||
be supported).</t> | ||||
</section> | ||||
<section anchor="yang-level" toc="default" numbered="true"> | ||||
<name>Per-Level Parameters</name> | ||||
<t>Some parameters allow per-level configuration. For such | ||||
parameters, the parameter is modeled as a container with three | ||||
configuration locations: | ||||
</t> | ||||
<dl newline="true" spacing="normal"> | ||||
<dt>A top-level container:</dt> | ||||
<dd>Corresponds to "level-all", so the | ||||
configuration applies to both levels.</dd> | ||||
<dt>A level-1 container:</dt> | ||||
<dd>Corresponds to parameters specific to level 1.</dd> | ||||
<dt>A level-2 container:</dt> | ||||
<dd>Corresponds to parameters specific to level 2.</dd> | ||||
</dl> | ||||
<sourcecode type="yangtree"><![CDATA[ | ||||
+--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]]></sourcecode> | |||
</artwork> | <t>Example:</t> | |||
</figure> | <sourcecode type="xml"><![CDATA[ | |||
<t>Example:</t> | <priority> | |||
<figure title="" suppress-title="false" align="left" alt="" widt | <value>250</value> | |||
h="" height=""> | <level-1> | |||
<artwork xml:space="preserve" name="" type="" align="left" alt=" | <value>100</value> | |||
" width="" height=""> | </level-1> | |||
<priority> | </priority>]]></sourcecode> | |||
<value>250</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 | |||
<value>100</value> | 100 for the level-1 configuration and 250 for the top-level configuratio | |||
</level-1> | n, the | |||
</priority> | implementation must use 100 for the level-1 priority and 250 for the | |||
</artwork> | level-2 priority.</t> | |||
</figure> | <t>Some parameters, such as "overload bit" and "route preference", | |||
<t> | are not modeled to support per-level configuration. If an | |||
An implementation MUST prefer a level-specific parameter over a | implementation supports per-level configuration for such parameters, | |||
top-level parameter. | this implementation <bcp14>MUST</bcp14> augment the current model by | |||
For example, if the priority is 100 for the level-1 and 250 for | adding both level-1 and level-2 containers and <bcp14>MUST</bcp14> | |||
the top-level configuration, the implementation must use 100 for the level-1 pri | reuse existing configuration groupings.</t> | |||
ority and 250 for the level-2 priority. | <t>Example of augmentation:</t> | |||
</t> | <sourcecode type="yang"><![CDATA[ | |||
<t> | ||||
Some parameters, such as, "overload bit" and "route preference", | ||||
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 enable? 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 | |||
skipping to change at line 525 ¶ | skipping to change at line 578 ¶ | |||
| +--rw enable? boolean | | +--rw enable? boolean | |||
+--rw mesh-group-enable? mesh-group-state | +--rw mesh-group-enable? mesh-group-state | |||
+--rw mesh-group? uint8 | +--rw mesh-group? uint8 | |||
+--rw interface-type? interface-type | +--rw interface-type? interface-type | |||
+--rw tag* uint32 {prefix-tag}? | +--rw tag* uint32 {prefix-tag}? | |||
+--rw tag64* uint64 {prefix-tag64}? | +--rw tag64* uint64 {prefix-tag64}? | |||
+--rw node-flag? boolean {node-flag}? | +--rw node-flag? boolean {node-flag}? | |||
+--rw hello-authentication | +--rw hello-authentication | |||
| +--rw (authentication-type)? | | +--rw (authentication-type)? | |||
| | +--:(key-chain) {key-chain}? | | | +--:(key-chain) {key-chain}? | |||
| | | +--rw key-chain? key-chain:key-chain-ref | | | | +--rw key-chain? key-chain:key-chain-ref | |||
| | +--:(password) | | | +--:(password) | |||
| | +--rw key? string | | | +--rw key? string | |||
| | +--rw crypto-algorithm? identityref | | | +--rw crypto-algorithm? identityref | |||
| +--rw level-1 | | +--rw level-1 | |||
| | +--rw (authentication-type)? | | | +--rw (authentication-type)? | |||
| | +--:(key-chain) {key-chain}? | | | +--:(key-chain) {key-chain}? | |||
| | | +--rw key-chain? key-chain:key-chain-ref | | | | +--rw key-chain? key-chain:key-chain-ref | |||
| | +--:(password) | | | +--:(password) | |||
| | +--rw key? string | | | +--rw key? string | |||
| | +--rw crypto-algorithm? identityref | | | +--rw crypto-algorithm? identityref | |||
skipping to change at line 646 ¶ | skipping to change at line 699 ¶ | |||
| | +--ro in? uint32 | | | +--ro in? uint32 | |||
| | +--ro out? uint32 | | | +--ro out? uint32 | |||
| +--ro csnp | | +--ro csnp | |||
| | +--ro in? uint32 | | | +--ro in? uint32 | |||
| | +--ro out? uint32 | | | +--ro out? uint32 | |||
| +--ro unknown | | +--ro unknown | |||
| +--ro in? uint32 | | +--ro in? uint32 | |||
+--rw discontinuity-time? yang:date-and-time | +--rw discontinuity-time? yang:date-and-time | |||
+--rw topologies {multi-topology}? | +--rw topologies {multi-topology}? | |||
+--rw topology* [name] | +--rw topology* [name] | |||
+--rw name -> | +--rw name -> | |||
| ../../../../../../../../rt:ribs/rib/name | | ../../../../../../../../rt:ribs/rib/name | |||
+--rw metric | +--rw metric | |||
+--rw value? wide-metric | +--rw value? wide-metric | |||
+--rw level-1 | +--rw level-1 | |||
| +--rw value? wide-metric | | +--rw value? wide-metric | |||
+--rw level-2 | +--rw level-2 | |||
+--rw value? wide-metric | +--rw value? wide-metric | |||
rpcs: | rpcs: | |||
+---x clear-adjacency | +---x clear-adjacency | |||
| +---w input | | +---w input | |||
| +---w routing-protocol-instance-name -> /rt:routing/ | | +---w routing-protocol-instance-name -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +---w level? level | | +---w level? level | |||
| +---w interface? if:interface-ref | | +---w interface? if:interface-ref | |||
+---x clear-database | +---x clear-database | |||
+---w input | +---w input | |||
+---w routing-protocol-instance-name -> /rt:routing/ | +---w routing-protocol-instance-name -> /rt:routing/ | |||
| control-plane-protocols/ | | control-plane-protocols/ | |||
| control-plane-protocol/name | | control-plane-protocol/name | |||
+---w level? level | +---w level? level | |||
notifications: | notifications: | |||
+---n database-overload | +---n database-overload | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro overload? enumeration | | +--ro overload? enumeration | |||
+---n lsp-too-large | +---n lsp-too-large | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| +--ro interface-level? level | | +--ro interface-level? level | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro pdu-size? uint32 | | +--ro pdu-size? uint32 | |||
| +--ro lsp-id? lsp-id | | +--ro lsp-id? lsp-id | |||
+---n if-state-change | +---n if-state-change | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| +--ro interface-level? level | | +--ro interface-level? level | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro state? if-state-type | | +--ro state? if-state-type | |||
+---n corrupted-lsp-detected | +---n corrupted-lsp-detected | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro lsp-id? lsp-id | | +--ro lsp-id? lsp-id | |||
+---n attempt-to-exceed-max-sequence | +---n attempt-to-exceed-max-sequence | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro lsp-id? lsp-id | | +--ro lsp-id? lsp-id | |||
+---n id-len-mismatch | +---n id-len-mismatch | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| +--ro interface-level? level | | +--ro interface-level? level | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro pdu-field-len? uint8 | | +--ro pdu-field-len? uint8 | |||
| +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
+---n max-area-addresses-mismatch | +---n max-area-addresses-mismatch | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| +--ro interface-level? level | | +--ro interface-level? level | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro max-area-addresses? uint8 | | +--ro max-area-addresses? uint8 | |||
| +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
+---n own-lsp-purge | +---n own-lsp-purge | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| +--ro interface-level? level | | +--ro interface-level? level | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro lsp-id? lsp-id | | +--ro lsp-id? lsp-id | |||
+---n sequence-number-skipped | +---n sequence-number-skipped | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| +--ro interface-level? level | | +--ro interface-level? level | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro lsp-id? lsp-id | | +--ro lsp-id? lsp-id | |||
+---n authentication-type-failure | +---n authentication-type-failure | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| +--ro interface-level? level | | +--ro interface-level? level | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
+---n authentication-failure | +---n authentication-failure | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| +--ro interface-level? level | | +--ro interface-level? level | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
+---n version-skew | +---n version-skew | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| +--ro interface-level? level | | +--ro interface-level? level | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro protocol-version? uint8 | | +--ro protocol-version? uint8 | |||
| +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
+---n area-mismatch | +---n area-mismatch | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| +--ro interface-level? level | | +--ro interface-level? level | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
+---n rejected-adjacency | +---n rejected-adjacency | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| +--ro interface-level? level | | +--ro interface-level? level | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| +--ro reason? string | | +--ro reason? string | |||
+---n protocols-supported-mismatch | +---n protocols-supported-mismatch | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| +--ro interface-level? level | | +--ro interface-level? level | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| +--ro protocols* uint8 | | +--ro protocols* uint8 | |||
+---n lsp-error-detected | +---n lsp-error-detected | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| +--ro interface-level? level | | +--ro interface-level? level | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro lsp-id? lsp-id | | +--ro lsp-id? lsp-id | |||
| +--ro raw-pdu? binary | | +--ro raw-pdu? binary | |||
| +--ro error-offset? uint32 | | +--ro error-offset? uint32 | |||
| +--ro tlv-type? uint8 | | +--ro tlv-type? uint8 | |||
+---n adjacency-state-change | +---n adjacency-state-change | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| +--ro interface-level? level | | +--ro interface-level? level | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro neighbor? string | | +--ro neighbor? string | |||
| +--ro neighbor-system-id? system-id | | +--ro neighbor-system-id? system-id | |||
| +--ro state? adj-state-type | | +--ro state? adj-state-type | |||
| +--ro reason? string | | +--ro reason? string | |||
+---n lsp-received | +---n lsp-received | |||
| +--ro routing-protocol-name? -> /rt:routing/ | | +--ro routing-protocol-name? -> /rt:routing/ | |||
| | control-plane-protocols/ | | | control-plane-protocols/ | |||
| | control-plane-protocol/name | | | control-plane-protocol/name | |||
| +--ro isis-level? level | | +--ro isis-level? level | |||
| +--ro interface-name? if:interface-ref | | +--ro interface-name? if:interface-ref | |||
| +--ro interface-level? level | | +--ro interface-level? level | |||
| +--ro extended-circuit-id? extended-circuit-id | | +--ro extended-circuit-id? extended-circuit-id | |||
| +--ro lsp-id? lsp-id | | +--ro lsp-id? lsp-id | |||
| +--ro sequence? uint32 | | +--ro sequence? uint32 | |||
| +--ro received-timestamp? yang:timestamp | | +--ro received-timestamp? yang:timestamp | |||
| +--ro neighbor-system-id? system-id | | +--ro neighbor-system-id? system-id | |||
+---n lsp-generation | +---n lsp-generation | |||
+--ro routing-protocol-name? -> /rt:routing/ | +--ro routing-protocol-name? -> /rt:routing/ | |||
| control-plane-protocols/ | | control-plane-protocols/ | |||
| control-plane-protocol/name | | control-plane-protocol/name | |||
+--ro isis-level? level | +--ro isis-level? level | |||
+--ro lsp-id? lsp-id | +--ro lsp-id? lsp-id | |||
+--ro sequence? uint32 | +--ro sequence? uint32 | |||
+--ro send-timestamp? yang:timestamp | +--ro send-timestamp? yang:timestamp]]></sourcecode> | |||
</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. | Packets), CSNPs (Complete Sequence Number Packets), and LSPs (Link | |||
The authentication of HELLO PDUs (Protocol Data Units) can be activat | State Packets) 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-enable" 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 | <!-- [rfced] We found the use of the term "we" confusing (7 instances). | |||
with a different value for the Maximum Area Addresses.</t> | Does the term mean "IS-IS node"? For example: | |||
<t>own-lsp-purge: This notification is sent when the system | ||||
receives a PDU with its own system ID and zero age.</t> | Current: | |||
<t>sequence-number-skipped: This notification is sent when the s | id-len-mismatch: | |||
ystem | This notification is sent when we receive a PDU with a different | |||
value for the system ID length. | ||||
Perhaps: | ||||
id-len-mismatch: | ||||
This notification is sent when the IS-IS node receives a PDU | ||||
with a different value for the system ID length. --> | ||||
<dd>This notification is sent when we receive a PDU | ||||
with a different value for the system ID length.</dd> | ||||
<dt>max-area-addresses-mismatch:</dt> | ||||
<dd>This notification is sent when we receive a PDU | ||||
with a different value for the Maximum Area Addresses.</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>The "isis" operational state container augments the | ||||
"/rt:routing-state/rt:control-plane-protocols/control-plane-protocol" | <!-- [rfced] *[AD]: We are following up on a question we asked | |||
container of the ietf-routing module with IS-IS-specific | in mid-October 2020. Please see the author reply below, and confirm | |||
operational states.</t> | that removing the text in question is acceptable. | |||
Section 5: Should '"isis" module' be | ||||
'"isis" container', '"ietf-isis" module', or something else? | ||||
Original: | ||||
The "isis" module augments "/if:interfaces/if:interface" defined by | ||||
[RFC8343] with ISO specific parameters. | ||||
Author reply: | ||||
Go ahead and make these consistently, "ietf-isis" module. Please remove: | ||||
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. | ||||
This is no longer applicable. --> | ||||
</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="RFC9127" format="default"/>.</t> | |||
</section> | </section> | |||
<section anchor="isis-yang" title="IS-IS YANG Module" toc="default"> | <!-- Lynne: If authors don't agree to doc. title change, fix the | |||
<t>The following RFCs, drafts and external standards are not referenced in t | "RFC 9130:" entry --> | |||
he document text | ||||
but are referenced in the ietf-isis.yang module: <xref target="ISO-10589" pag | <!-- The two "Quote from" items are DNE. Incorrect in the original; | |||
eno="false" format="default"/>, <xref target="RFC1195" pageno="false" format="de | fixed and FYI-AQed. --> | |||
fault"/>, <xref target="RFC4090" pageno="false" format="default"/>,<xref target= | ||||
"RFC5029" pageno="false" format="default"/>, <xref target="RFC5130" pageno="fals | <section anchor="isis-yang" toc="default" numbered="true"> | |||
e" format="default"/>, <xref target="RFC5302" pageno="false" format="default"/>, | <name>IS-IS YANG Module</name> | |||
<xref target="RFC5305" pageno="false" format="default"/>, <xref target="RFC5306 | <t>The following specifications are referenced in this module: <xref | |||
" pageno="false" format="default"/>, <xref target="RFC5307" pageno="false" forma | target="ISO-10589" format="default"/>, <xref target="RFC1195" | |||
t="default"/>, <xref target="RFC5308" pageno="false" format="default"/>, <xref t | format="default"/>, <xref target="RFC4090" format="default"/>, <xref | |||
arget="RFC5880" pageno="false" format="default"/>, <xref target="RFC5881" pageno | target="RFC5029" format="default"/>, | |||
="false" format="default"/>, <xref target="RFC6119" pageno="false" format="defau | <xref target="RFC5120"/>, | |||
lt"/>, <xref target="RFC6232" pageno="false" format="default"/>, <xref target="R | <xref target="RFC5130" format="default"/>, | |||
FC7794" pageno="false" format="default"/>, <xref target="RFC7981" pageno="false" | <xref target="RFC5286"/>, | |||
format="default"/>, <xref target="RFC8570" pageno="false" format="default"/>, < | <xref target="RFC5301"/>, | |||
xref target="RFC7917" pageno="false" format="default"/>, <xref target="RFC8405" | <xref target="RFC5302" format="default"/>, <xref | |||
pageno="false" format="default"/>.</t> | target="RFC5305" format="default"/>, <xref target="RFC5307" format="defaul | |||
<figure title="" suppress-title="false" align="left" alt="" width="" heigh | t"/>, <xref | |||
t=""> | target="RFC5308" format="default"/>, | |||
<artwork xml:space="preserve" name="" type="" align="left" alt="" width= | <xref target="RFC5443"/>, | |||
"" height=""> | <xref target="RFC5880" format="default"/>, | |||
<![CDATA[ | <xref target="RFC5881" format="default"/>, <xref | |||
<CODE BEGINS> file "ietf-isis@2019-10-15.yang" | target="RFC6119" format="default"/>, <xref target="RFC6232" | |||
format="default"/>, | ||||
<xref target="RFC6241"/>, | ||||
<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="RFC9127"/>.</t> | ||||
<!-- [rfced] We note that Stephane Litkowski is an author of | ||||
this document but is listed as an editor of the YANG module. | ||||
Please confirm that these roles are correct. --> | ||||
<!--[rfced] May we update the YANG module as shown in this diff file? | ||||
https://www.rfc-editor.org/authors/ietf-isis@2021-08-31.yang-rfcdiff.html | ||||
It compares the current module to the output of the formatting | ||||
tool, pyang (https://trac.ietf.org/trac/ops/wiki/yang-review-tools). | ||||
To be clear, with or without the formatting updates, the YANG module | ||||
parses. --> | ||||
<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 9127: 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 | Author: Ladislav Lhotka | |||
<mailto:llhotka@nic.cz>"; | <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) 2021 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 Simplified 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 Packet (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 { | identity lsp-l1system-flag { | |||
base lsp-flag; | base lsp-flag; | |||
description | description | |||
"Set when the Intermediate System has an L1 type."; | "Set when the Intermediate System has an L1 type."; | |||
} | } | |||
identity lsp-l2system-flag { | identity lsp-l2system-flag { | |||
base lsp-flag; | base lsp-flag; | |||
description | description | |||
"Set when the Intermediate System has an L2 type."; | "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."; | leveraging on setting all the link metrics to MAX_METRIC."; | |||
} | } | |||
feature prefix-tag { | feature prefix-tag { | |||
description | description | |||
"Support for 32-bit prefix tags"; | "Support for 32-bit prefix tags."; | |||
reference "RFC5130 - A Policy Control Mechanism in | reference | |||
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 1781 ¶ | |||
"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 pattern 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 system ID pattern 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-enable { | |||
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 enable { | |||
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 enable { | |||
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."; | |||
skipping to change at line 1835 ¶ | skipping to change at line 2092 ¶ | |||
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-metric1 { | |||
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-metric2 { | |||
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-metric3 { | |||
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 2213 ¶ | |||
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 "Global protection statistics."; | description | |||
"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 enable { | |||
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; | |||
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; | |||
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; | |||
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; | |||
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; | |||
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 component failure (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."; | |||
} | } | |||
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 2715 ¶ | |||
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 "Interval between hello messages."; | description | |||
"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 "Interval between hello messages."; | description | |||
"Interval between Hello messages."; | ||||
} | } | |||
grouping hello-multiplier-cfg { | grouping hello-multiplier-cfg { | |||
leaf value { | leaf value { | |||
type uint16; | type uint16; | |||
description | 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 "Interface DIS election priority grouping"; | description | |||
"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 "Interface DIS election priority grouping"; | description | |||
"Interface DIS election priority grouping."; | ||||
} | } | |||
grouping metric-cfg { | grouping metric-cfg { | |||
leaf value { | leaf value { | |||
type wide-metric; | type wide-metric; | |||
description "Metric value."; | description | |||
"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 enable { | |||
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 "../enable = '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 "Grouping for global metric parameters."; | description | |||
"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 enable { | |||
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-enable { | |||
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 | |||
"Non-Stop Routing (NSR) configuration."; | ||||
leaf enable { | leaf enable { | |||
type boolean; | type boolean; | |||
default false; | default false; | |||
description "Enable/Disable Non-Stop Routing (NSR)."; | description | |||
"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 enable { | |||
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."; | |||
} | } | |||
skipping to change at line 2712 ¶ | skipping to change at line 3059 ¶ | |||
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 | description | |||
"Maximum number of Equal-Cost Multi-Path (ECMP) paths."; | "Maximum number of Equal-Cost Multi-Path (ECMP) paths."; | |||
} | } | |||
container ietf-spf-delay { | container ietf-spf-delay { | |||
if-feature ietf-spf-delay; | if-feature ietf-spf-delay; | |||
uses ietf-spf-delay; | uses ietf-spf-delay; | |||
description "IETF SPF delay algorithm configuration."; | description | |||
"IETF SPF delay algorithm configuration."; | ||||
} | } | |||
description | description | |||
"SPF calculation control."; | "SPF calculation control."; | |||
} | } | |||
description "Grouping for SPF global parameters."; | description | |||
"Grouping for SPF global parameters."; | ||||
} | } | |||
grouping instance-config { | grouping instance-config { | |||
description "IS-IS global configuration grouping"; | description | |||
"IS-IS global configuration grouping."; | ||||
uses admin-control; | uses admin-control; | |||
leaf level-type { | leaf level-type { | |||
type level; | type level; | |||
default "level-all"; | default "level-all"; | |||
description | description | |||
"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."; | |||
} | } | |||
} | } | |||
skipping to change at line 2815 ¶ | skipping to change at line 3169 ¶ | |||
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 enable { | |||
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-enable { | |||
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-enable = 'mesh-set'" { | |||
description | description | |||
"Only valid when mesh-group-enable equals mesh-set"; | "Only valid when 'mesh-group-enable' 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 interfaces."; | "Priority only applies to broadcast 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 client configuration."; | ||||
uses bfd-types:client-cfg-parms; | uses bfd-types:client-cfg-parms; | |||
reference "RFC YYYY - YANG Data Model for Bidirectional | reference | |||
Forwarding Detection (BFD). | "RFC 9127: YANG Data Model for Bidirectional Forwarding | |||
Detection (BFD)"; | ||||
number for draft-ietf-bfd-yang."; | ||||
} | } | |||
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 3560 ¶ | |||
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 we ran SPF at this level."; | |||
} | } | |||
description | description | |||
"List of supported levels."; | "List of supported levels."; | |||
} | } | |||
description | description | |||
"List counters for the IS-IS protocol instance"; | "List 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 3635 ¶ | |||
} | } | |||
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 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 Packet | ||||
(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 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 indicating 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 3815 ¶ | |||
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 "Grouping for LSP log."; | } description | |||
"Grouping for the LSP log."; | ||||
} | } | |||
/* Groupings for the LSDB description */ | /* Groupings for the Link State Database (LSDB) descriptions */ | |||
/* Unknown TLV and sub-TLV description */ | /* Unknown TLV and sub-TLV descriptions */ | |||
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 | |||
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 | description | |||
"This list contains identities for the bits which are | "This list contains identities for the bits that | |||
set."; | are set."; | |||
} | } | |||
description | description | |||
"TLV 229 flags."; | "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 | description | |||
"This list contains identities for the bits which are | "This list contains identities for the bits that | |||
set."; | are set."; | |||
} | } | |||
description | description | |||
"Router capability flags."; | "Router Capability flags."; | |||
} | } | |||
container node-tags { | container node-tags { | |||
if-feature node-tag; | if-feature node-tag; | |||
list node-tag { | list node-tag { | |||
leaf tag { | leaf tag { | |||
type uint32; | type uint32; | |||
description "Node tag value."; | description | |||
"Node tag value."; | ||||
} | } | |||
description "List of tags."; | description | |||
"List of tags."; | ||||
} | } | |||
description "Container for node admin tags"; | description | |||
"Container for node administrative tags."; | ||||
} | } | |||
uses unknown-tlvs; | uses unknown-tlvs; | |||
description | description | |||
"IS-IS node capabilities. This list element may | "IS-IS node capabilities. This list element may | |||
be extended with detailed information - IS-IS | be extended with detailed information. The IS-IS | |||
reference is TLV 242."; | reference is TLV 242."; | |||
} | } | |||
description "List of router capability TLVs."; | description | |||
"List of Router Capability TLVs."; | ||||
} | } | |||
description "Grouping for TLV242."; | description | |||
"Grouping for 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 | description | |||
"This list contains identities for the bits which are | "This list contains identities for the bits that | |||
set."; | are set."; | |||
} | } | |||
description "LSP attributes."; | description | |||
"LSP attributes."; | ||||
} | } | |||
uses tlv132-ipv4-addresses; | uses tlv132-ipv4-addresses; | |||
uses tlv232-ipv6-addresses; | uses tlv232-ipv6-addresses; | |||
uses tlv134-ipv4-te-rid; | uses tlv134-ipv4-te-rid; | |||
uses tlv140-ipv6-te-rid; | uses tlv140-ipv6-te-rid; | |||
uses tlv129-protocols; | uses tlv129-protocols; | |||
uses tlv137-hostname; | uses tlv137-hostname; | |||
uses tlv10-authentication; | uses tlv10-authentication; | |||
uses tlv229-mt; | uses tlv229-mt; | |||
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 configured."; | "At least one area address must be 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 enable { | |||
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 "List of topologies"; | description | |||
"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. If | |||
the operation fails for an IS-IS internal reason, then | the operation fails for an IS-IS internal reason, then | |||
the error-tag and error-app-tag should be set | the 'error-tag' and 'error-app-tag' should be set | |||
indicating the reason for the failure."; | 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 we 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. The generation of the notification must be | |||
throttled with at least 5 seconds between successive | 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 we find that | |||
an LSP that was stored in memory has become | an LSP that was stored in 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 we receive a PDU | |||
with a different value for the system-id length. | with a different value for the system ID length. | |||
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 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 we receive a PDU | |||
with a different value for the Maximum Area Addresses. | with a different value for the Maximum Area Addresses. | |||
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 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 with the wrong authentication information. | |||
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 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 "New state of the IS-IS adjacency."; | description | |||
"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 "Timestamp when the LSP was received."; | description | |||
"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 "Timestamp when our LSP was regenerated."; | description | |||
"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 anchor="Security" title="Security Considerations" toc="default"> | ||||
<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 | ||||
ef target="RFC6241" pageno="false" format="default"/> or RESTCONF <xref target=" | ||||
RFC8040" pageno="false" format="default"/>. The lowest NETCONF layer is the secu | ||||
re transport layer, and the mandatory-to-implement secure transport is Secure Sh | ||||
ell (SSH) <xref target="RFC6242" pageno="false" format="default"/>. The lowest R | ||||
ESTCONF layer is HTTPS, and the mandatory-to-implement secure transport is TLS < | ||||
xref target="RFC8446" pageno="false" format="default"/>.</t> | ||||
<t>The NETCONF Access Control Model (NACM) <xref target="RFC8341" pageno="f | ||||
alse" format="default"/> provides the means to restrict access for particular NE | ||||
TCONF or RESTCONF users to a pre-configured subset of all available NETCONF or R | ||||
ESTCONF protocol operations and content.</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> | ||||
Exposure of the Link State Database and local RIB include information beyond the | ||||
scope of the IS-IS router and this may be undesirable since exposure may facili | ||||
tate other attacks. Additionally, the complete IP network topology and, if deplo | ||||
yed, the traffic engineering topology of the IS-IS domain can be reconstructed f | ||||
rom the Link State Database. Though not as straightforward, the IS-IS local RIB | ||||
can also be discover topological information. Network operators may consider the | ||||
ir topologies to be sensitive confidential data. | ||||
</t> | ||||
<t>For IS-IS authentication, configuration is supported via the specific | ||||
ation of key-chain <xref target="RFC8177" pageno="false" format="default"/> or t | ||||
he direct specification of key and authentication algorithm. Hence, authenticati | ||||
on | ||||
configuration using the "auth-table-trailer" case in the | ||||
"authentication" container inherits the security considerations of <xref targ | ||||
et="RFC8177" pageno="false" format="default"/>. This includes the considerations | ||||
with respect to the | ||||
local storage and handling of authentication keys.</t> | ||||
<t>Some of the RPC operations in this YANG module may be considered sensitiv | ||||
e or vulnerable in some network environments. It is thus important to control ac | ||||
cess to these operations. The IS-IS YANG | ||||
module support the "clear-adjacency" and "clear-database" RPCs. If | ||||
access to either of these is compromised, they can result in | ||||
temporary network outages be employed to mount DoS attacks. | ||||
</t> | ||||
<t>The actual authentication key data (whether locally specified or part | <!-- [rfced] *[AD]: Section 6: Please review the following updates, | |||
of a key-chain) is sensitive and needs to be kept secret from | (additions of "derived-from-or-self" and enclosing parentheses), | |||
unauthorized parties; compromise of the key data would allow an attacker to f | provided by the authors in email of 16 December 2020, and let us know | |||
orge IS-IS traffic that would be accepted as authentic, | if you approve. | |||
potentially compromising the entirety IS-IS domain.</t> | ||||
<t>The model describes several notifications, implementations mu | Original: | |||
st rate-limit the generation of these notifications to avoid creating significan | augment "/rt:routing/" | |||
t notification load. Otherwise, this notification load may have some side effect | +"rt:ribs/rt:rib/rt:routes/rt:route" { | |||
s on the system stability and may be exploited as an attack vector.</t> | when "rt:source-protocol = 'isis:isis'" { | |||
... | ||||
augment "/rt:routing/rt:control-plane-protocols/" | ||||
+"rt:control-plane-protocol" { | ||||
when "rt:type = 'isis:isis'" { | ||||
</section> | Currently: | |||
augment "/rt:routing/" | ||||
+"rt:ribs/rt:rib/rt:routes/rt:route" { | ||||
when "derived-from-or-self(rt:source-protocol, 'isis:isis')" { | ||||
... | ||||
augment "/rt:routing/rt:control-plane-protocols/" | ||||
+"rt:control-plane-protocol" { | ||||
when "derived-from-or-self(rt:type, 'isis:isis')" { --> | ||||
<section anchor="Contributors" title="Contributors" toc="default"> | <!-- [rfced] Section 6: Should " leaf MT-ID" be " leaf mt-id" here? | |||
<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 anchor="ack" title="Acknowledgements" toc="default"> | Original: | |||
<t>The authors would like to thank Tom Petch, Alvaro Retana, Stewart Bry | leaf MT-ID { --> | |||
ant, Barry Leiba, Benjamin Kaduk and | ||||
Adam Roach, and Roman Danyliw for their review and comments.</t> | ||||
</section> | ||||
<section anchor="IANA" title="IANA Considerations" toc="default"> | ||||
<t>The IANA is requested to assign two new URIs from the | ||||
IETF XML registry <xref target="RFC3688" pageno="false" format="default"/>. A | ||||
uthors are suggesting the following URI: </t> | ||||
<figure title="" suppress-title="false" align="left" alt="" width="" height=" | ||||
"> | ||||
<artwork xml:space="preserve" name="" type="" align="left" alt="" width="" he | ||||
ight=""> | ||||
URI: urn:ietf:params:xml:ns:yang:ietf-isis | ||||
Registrant Contact: The IESG | ||||
XML: N/A, the requested URI is an XML namespace | ||||
</artwork> | ||||
</figure> | ||||
<t>This document also requests one new YANG module name in the YANG Modu | ||||
le Names registry <xref target="RFC6020" pageno="false" format="default"/> with | ||||
the following suggestion:</t> | ||||
<figure title="" suppress-title="false" align="left" alt="" width="" height=" | ||||
"> | ||||
<artwork xml:space="preserve" name="" type="" align="left" alt="" width="" he | ||||
ight=""> | ||||
name: ietf-isis | ||||
namespace: urn:ietf:params:xml:ns:yang:ietf-isis | ||||
prefix: isis | ||||
reference: RFC XXXX | ||||
</artwork> | ||||
</figure> | ||||
</section> | </section> | |||
<section anchor="Security" toc="default" numbered="true"> | ||||
<name>Security Considerations</name> | ||||
<!-- Begin YANG security DNE paragraphs 1 and 2 (slight changes per | ||||
boilerplate) --> | ||||
<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> | ||||
</middle> | <t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/ | |||
<back> | > | |||
<references title="Normative References"> | provides the means to restrict access for particular NETCONF or RESTCONF users | |||
to a preconfigured subset of all available NETCONF or RESTCONF protocol | ||||
<reference anchor="RFC1195" target="https://www.rfc-editor.org/info/rfc1195"> | operations and content.</t> | |||
<front> | <!-- End YANG security DNE text (paragraphs 1 and 2) --> | |||
<title>Use of OSI IS-IS for routing in TCP/IP and dual environments</title> | ||||
<author initials="R.W." surname="Callon" fullname="R.W. Callon"><organization/>< | ||||
/author> | ||||
<date year="1990" month="December"/> | ||||
<abstract><t>This memo specifies an integrated routing protocol, based on the OS | ||||
I Intra-Domain IS-IS Routing Protocol, which may be used as an interior gateway | ||||
protocol (IGP) to support TCP/IP as well as OSI. This allows a single routing p | ||||
rotocol to be used to support pure IP environments, pure OSI environments, and d | ||||
ual environments. This specification was developed by the IS-IS working group o | ||||
f the Internet Engineering Task Force. [STANDARDS-TRACK]</t></abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="1195"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC1195"/> | ||||
</reference> | ||||
<reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119"> | ||||
<front> | ||||
<title>Key words for use in RFCs to Indicate Requirement Levels</title> | ||||
<author initials="S." surname="Bradner" fullname="S. Bradner"><organization/></a | ||||
uthor> | ||||
<date year="1997" month="March"/> | ||||
<abstract><t>In many standards track documents several words are used to signify | ||||
the requirements in the specification. These words are often capitalized. This | ||||
document defines these words as they should be interpreted in IETF documents. | ||||
This document specifies an Internet Best Current Practices for the Internet Comm | ||||
unity, and requests discussion and suggestions for improvements.</t></abstract> | ||||
</front> | ||||
<seriesInfo name="BCP" value="14"/> | ||||
<seriesInfo name="RFC" value="2119"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC2119"/> | ||||
</reference> | ||||
<reference anchor="RFC3688" target="https://www.rfc-editor.org/info/rfc3688"> | ||||
<front> | ||||
<title>The IETF XML Registry</title> | ||||
<author initials="M." surname="Mealling" fullname="M. Mealling"><organization/>< | ||||
/author> | ||||
<date year="2004" month="January"/> | ||||
<abstract><t>This document describes an IANA maintained registry for IETF standa | ||||
rds which use Extensible Markup Language (XML) related items such as Namespaces, | ||||
Document Type Declarations (DTDs), Schemas, and Resource Description Framework | ||||
(RDF) Schemas.</t></abstract> | ||||
</front> | ||||
<seriesInfo name="BCP" value="81"/> | ||||
<seriesInfo name="RFC" value="3688"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC3688"/> | ||||
</reference> | ||||
<reference anchor="RFC4090" target="https://www.rfc-editor.org/info/rfc4090"> | ||||
<front> | ||||
<title>Fast Reroute Extensions to RSVP-TE for LSP Tunnels</title> | ||||
<author initials="P." surname="Pan" fullname="P. Pan" role="editor"><organizatio | ||||
n/></author> | ||||
<author initials="G." surname="Swallow" fullname="G. Swallow" role="editor"><org | ||||
anization/></author> | ||||
<author initials="A." surname="Atlas" fullname="A. Atlas" role="editor"><organiz | ||||
ation/></author> | ||||
<date year="2005" month="May"/> | ||||
<abstract><t>This document defines RSVP-TE extensions to establish backup label- | ||||
switched path (LSP) tunnels for local repair of LSP tunnels. These mechanisms e | ||||
nable the re-direction of traffic onto backup LSP tunnels in 10s of milliseconds | ||||
, in the event of a failure.</t><t>Two methods are defined here. The one-to-one | ||||
backup method creates detour LSPs for each protected LSP at each potential poin | ||||
t of local repair. The facility backup method creates a bypass tunnel to protec | ||||
t a potential failure point; by taking advantage of MPLS label stacking, this by | ||||
pass tunnel can protect a set of LSPs that have similar backup constraints. Bot | ||||
h methods can be used to protect links and nodes during network failure. The de | ||||
scribed behavior and extensions to RSVP allow nodes to implement either method o | ||||
r both and to interoperate in a mixed network. [STANDARDS-TRACK]</t></abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="4090"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC4090"/> | ||||
</reference> | ||||
<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"> | <!-- Begin YANG security DNE paragraph 3 (fixed per boilerplate) --> | |||
<front> | <t>There are a number of data nodes defined in this YANG module that are | |||
<title>IS-IS Prefix Attributes for Extended IPv4 and IPv6 Reachability</title> | writable/creatable/deletable (i.e., config true, which is the default). These | |||
<author initials="L." surname="Ginsberg" fullname="L. Ginsberg" role="editor"><o | data nodes may be considered sensitive or vulnerable in some network | |||
rganization/></author> | environments. Write operations (e.g., edit-config) to these data nodes without | |||
<author initials="B." surname="Decraene" fullname="B. Decraene"><organization/>< | proper protection can have a negative effect on network operations. These are | |||
/author> | the subtrees and data nodes and their sensitivity/vulnerability:</t> | |||
<author initials="S." surname="Previdi" fullname="S. Previdi"><organization/></a | <!-- End YANG security DNE paragraph 3 --> | |||
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"> | <t indent="3">/isis</t> | |||
<front> | <t indent="3">/isis/interfaces/interface[name]</t> | |||
<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"> | <t>For IS-IS, the ability to modify IS-IS configuration will allow the ent | |||
<front> | ire IS-IS domain to be compromised, including forming adjacencies with unauthori | |||
<title>The YANG 1.1 Data Modeling Language</title> | zed routers to misroute traffic or mount a massive Denial-of-Service (DoS) attac | |||
<author initials="M." surname="Bjorklund" fullname="M. Bjorklund" role="editor"> | k. | |||
<organization/></author> | For example, adding IS-IS on any unprotected interface could allow an IS-IS | |||
<date year="2016" month="August"/> | adjacency to be formed with an unauthorized and malicious neighbor. Once | |||
<abstract><t>YANG is a data modeling language used to model configuration data, | an adjacency is formed, traffic could be hijacked. As a simpler example, | |||
state data, Remote Procedure Calls, and notifications for network management pro | a DoS attack could be mounted by changing the cost of an IS-IS interface | |||
tocols. This document describes the syntax and semantics of version 1.1 of the | to be asymmetric, such that a hard routing loop ensues. In general, | |||
YANG language. YANG version 1.1 is a maintenance release of the YANG language, | unauthorized modification of most IS-IS features will pose its own set | |||
addressing ambiguities and defects in the original specification. There are a s | of security risks; therefore, the Security Considerations sections in the | |||
mall number of backward incompatibilities from YANG version 1. This document al | respective reference RFCs should be consulted.</t> | |||
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"> | <!-- Begin YANG security paragraph 4 DNE text (fixed per boilerplate) --> | |||
<front> | <t>Some of the readable data nodes in this YANG module may be considered | |||
<title>IS-IS Extensions for Advertising Router Information</title> | sensitive or vulnerable in some network environments. It is thus important to | |||
<author initials="L." surname="Ginsberg" fullname="L. Ginsberg"><organization/>< | control read access (e.g., via get, get-config, or notification) to these data | |||
/author> | nodes. These are the subtrees and data nodes and their | |||
<author initials="S." surname="Previdi" fullname="S. Previdi"><organization/></a | sensitivity/vulnerability:</t> | |||
uthor> | <!-- End YANG security paragraph 4 DNE text --> | |||
<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"> | <t indent="3">/isis/database</t> | |||
<front> | <t indent="3">/isis/local-rib</t> | |||
<title>RESTCONF Protocol</title> | <t> | |||
<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"> | Exposure of the Link State Database (LSDB) will reveal the detailed | |||
<front> | topology of the network. Similarly, the IS-IS local RIB exposes the reachable | |||
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title> | prefixes in the IS-IS routing domain. Exposure of the LSDB and local RIB may | |||
<author initials="B." surname="Leiba" fullname="B. Leiba"><organization/></autho | also reveal information beyond the scope of the IS-IS router; this may be | |||
r> | undesirable, since such exposure may facilitate other attacks. Additionally, | |||
<date year="2017" month="May"/> | the complete IP network topology -- and, if deployed, the TE topology of the | |||
<abstract><t>RFC 2119 specifies common key words that may be used in protocol s | IS-IS domain -- can be reconstructed from the LSDB. Though not as | |||
pecifications. This document aims to reduce the ambiguity by clarifying that on | straightforward, the IS-IS local RIB can also be exploited to discover | |||
ly UPPERCASE usage of the key words have the defined special meanings.</t></abs | topological information. Network operators may consider their topologies to | |||
tract> | be sensitive confidential data. | |||
</front> | </t> | |||
<seriesInfo name="BCP" value="14"/> | <t>For IS-IS authentication, configuration is supported via the | |||
<seriesInfo name="RFC" value="8174"/> | specification of a key chain <xref target="RFC8177" format="default"/> | |||
<seriesInfo name="DOI" value="10.17487/RFC8174"/> | or the direct specification of a key and authentication algorithm. | |||
</reference> | 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> | ||||
<reference anchor="RFC8294" target="https://www.rfc-editor.org/info/rfc8294"> | <!-- Begin YANG security paragraph 5 DNE text (fixed per boilerplate) --> | |||
<front> | <t>Some of the RPC operations in this YANG module may be considered sensitive or | |||
<title>Common YANG Data Types for the Routing Area</title> | vulnerable in some network environments. It is thus important to control | |||
<author initials="X." surname="Liu" fullname="X. Liu"><organization/></author> | access to these operations. These are the operations and their | |||
<author initials="Y." surname="Qu" fullname="Y. Qu"><organization/></author> | sensitivity/vulnerability:</t> | |||
<author initials="A." surname="Lindem" fullname="A. Lindem"><organization/></aut | <!-- End YANG security paragraph 5 DNE text --> | |||
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"> | <t>The IS-IS YANG | |||
<front> | module supports the "clear-adjacency" and "clear-database" RPCs. If | |||
<title>Network Configuration Access Control Model</title> | access to either of these is compromised, they can be exploited to | |||
<author initials="A." surname="Bierman" fullname="A. Bierman"><organization/></a | mount DoS attacks due to the resultant network outages.</t> | |||
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"> | <!-- [rfced] Authors and *[AD]: Section 7: Per the guidelines on | |||
<front> | <https://trac.ietf.org/trac/ops/wiki/yang-security-guidelines>, | |||
<title>Network Management Datastore Architecture (NMDA)</title> | we have updated the boilerplate text in this section. To preserve | |||
<author initials="M." surname="Bjorklund" fullname="M. Bjorklund"><organization/ | information specific to this document, we moved some of the text. | |||
></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"> | Please review this section carefully, and let us know if further | |||
<front> | updates are needed. --> | |||
<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"> | <t>The actual authentication key data (whether locally specified or part | |||
<front> | of a key chain) is sensitive and needs to be kept secret from | |||
<title>A YANG Data Model for Routing Management (NMDA Version)</title> | unauthorized parties; compromise of the key data would allow an attacker to f | |||
<author initials="L." surname="Lhotka" fullname="L. Lhotka"><organization/></aut | orge IS-IS traffic that would be accepted as authentic, | |||
hor> | potentially compromising the entire IS-IS domain.</t> | |||
<author initials="A." surname="Lindem" fullname="A. Lindem"><organization/></aut | <t>The model describes several notifications. Implementations must | |||
hor> | rate-limit the generation of these notifications to avoid creating | |||
<author initials="Y." surname="Qu" fullname="Y. Qu"><organization/></author> | significant notification load. Otherwise, this notification load may | |||
<date year="2018" month="March"/> | negatively affect system stability and may be exploited as an attack vecto | |||
<abstract><t>This document specifies three YANG modules and one submodule. Toget | r.</t> | |||
her, they form the core routing data model that serves as a framework for config | </section> | |||
uring and managing a routing subsystem. It is expected that these modules will | <section anchor="IANA" toc="default" numbered="true"> | |||
be augmented by additional YANG modules defining data models for control-plane p | <name>IANA Considerations</name> | |||
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"> | <t>The IANA has assigned the following URI in the | |||
<front> | "IETF XML Registry" <xref target="RFC3688" format="default"/>.</t> | |||
<title>YANG Data Model for Key Chains</title> | <dl newline="false" spacing="compact"> | |||
<author initials="A." surname="Lindem" fullname="A. Lindem" role="editor"><organ | <dt>URI:</dt> | |||
ization/></author> | <dd>urn:ietf:params:xml:ns:yang:ietf-isis</dd> | |||
<author initials="Y." surname="Qu" fullname="Y. Qu"><organization/></author> | <dt>Registrant Contact:</dt> | |||
<author initials="D." surname="Yeung" fullname="D. Yeung"><organization/></autho | <dd>The IESG</dd> | |||
r> | <dt>XML:</dt> | |||
<author initials="I." surname="Chen" fullname="I. Chen"><organization/></author> | <dd>N/A; the requested URI is an XML namespace.</dd> | |||
<author initials="J." surname="Zhang" fullname="J. Zhang"><organization/></autho | </dl> | |||
r> | <t>This document also adds the following YANG module name in the "YANG | |||
<date year="2017" month="June"/> | Module Names" registry <xref target="RFC6020" format="default"/>:</t> | |||
<abstract><t>This document describes the key chain YANG data model. Key chains | <dl newline="false" spacing="compact"> | |||
are commonly used for routing protocol authentication and other applications req | <dt>Name:</dt> | |||
uiring symmetric keys. A key chain is a list containing one or more elements co | <dd>ietf-isis</dd> | |||
ntaining a Key ID, key string, send/accept lifetimes, and the associated authent | <dt>Maintained by IANA?</dt> | |||
ication or encryption algorithm. By properly overlapping the send and accept li | <dd>N</dd> | |||
fetimes of multiple key chain elements, key strings and algorithms may be gracef | <dt>Namespace:</dt> | |||
ully updated. By representing them in a YANG data model, key distribution can b | <dd>urn:ietf:params:xml:ns:yang:ietf-isis</dd> | |||
e automated.</t></abstract> | <dt>Prefix:</dt> | |||
</front> | <dd>isis</dd> | |||
<seriesInfo name="RFC" value="8177"/> | <dt>Reference:</dt> | |||
<seriesInfo name="DOI" value="10.17487/RFC8177"/> | <dd>RFC 9130</dd> | |||
</reference> | </dl> | |||
</section> | ||||
</middle> | ||||
<back> | ||||
<displayreference target="I-D.ietf-rtgwg-segment-routing-ti-lfa" to="SR-TI-LFA"/ | ||||
> | ||||
<references> | ||||
<name>References</name> | ||||
<references> | ||||
<name>Normative References</name> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.1195.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.2119.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.3688.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.4090.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.5029.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.5120.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.5130.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.5286.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.5301.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.5302.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.5305.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8706.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.5307.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.5308.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.5443.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.5880.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.5881.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.6020.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.6119.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.6232.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.6241.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.6242.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.6991.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.7490.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.7794.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.7917.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.7950.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.7981.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8040.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8174.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8294.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8341.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8342.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8343.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8349.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8177.xml"/> | ||||
<reference anchor="I-D.ietf-bfd-yang"> | <!-- draft-ietf-bfd-yang (RFC 9127) --> | |||
<reference anchor="RFC9127" target="https://www.rfc-editor.org/info/rfc9127"> | ||||
<front> | <front> | |||
<title>YANG Data Model for Bidirectional Forwarding Detection (BFD)</title> | <title>YANG Data Model for Bidirectional Forwarding Detection (BFD)</title> | |||
<author initials='R' surname='Raham' fullname='Reshad Raham' role="editor"> | ||||
<author initials="R" surname="Rahman" fullname="Reshad Rahman"> | <organization></organization> | |||
<organization/> | ||||
</author> | </author> | |||
<author initials='L' surname='Zheng' fullname='Lianshu Zheng' role="editor"> | ||||
<author initials="L" surname="Zheng" fullname="Lianshu Zheng"> | <organization></organization> | |||
<organization/> | ||||
</author> | </author> | |||
<author initials='M' surname='Jethanandani' fullname='Mahesh Jethanandani' role= | ||||
<author initials="M" surname="Jethanandani" fullname="Mahesh Jethanandani"> | "editor"> | |||
<organization/> | <organization></organization> | |||
</author> | </author> | |||
<author initials='S' surname='Pallagatti' fullname='Santosh Pallagatti'> | ||||
<author initials="J" surname="Networks" fullname="Juniper Networks"> | <organization></organization> | |||
<organization/> | ||||
</author> | </author> | |||
<author initials='G' surname='Mirsky' fullname='Greg Mirsky'> | ||||
<author initials="G" surname="Mirsky" fullname="Gregory Mirsky"> | <organization></organization> | |||
<organization/> | ||||
</author> | </author> | |||
<date month='September' year='2021'/> | ||||
<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> | </front> | |||
<seriesInfo name="RFC" value="8570"/> | <seriesInfo name="RFC" value="9127"/> | |||
<seriesInfo name="DOI" value="10.17487/RFC8570"/> | <seriesInfo name="DOI" value="10.17487/RFC9127"/> | |||
</reference> | </reference> | |||
<reference anchor="ISO-10589"> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
<front> | FC.8405.xml"/> | |||
<title>Intermediate System to Intermediate System intra- | <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 | <!-- draft-ietf-rtgwg-segment-routing-ti-lfa (I-D Exists) --> | |||
t Re-route (TI-LFA), aimed at providing protection of node and adjacency segment | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-rt | |||
s within the Segment Routing (SR) framework. This Fast Re-route (FRR) behavior | gwg-segment-routing-ti-lfa.xml"/> | |||
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> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
FC.7812.xml"/> | ||||
</references> | ||||
</references> | ||||
<section anchor="rpc-example" toc="default" numbered="true"> | ||||
<name>Example of IS-IS Configuration in XML</name> | ||||
<t>This appendix gives an example of the configuration of an IS-IS instanc | ||||
e on a device. | ||||
The example is written in XML <xref target="W3C.REC-xml-20081126"/>. | ||||
<seriesInfo name="Internet-Draft" value="draft-ietf-rtgwg-segment-routing-ti-lfa | <!-- [rfced] *[AD] and authors: | |||
-01"/> | Per <https://ietf.org/about/groups/iesg/statements/formal-languages-use/>, | |||
<format type="TXT" target="http://www.ietf.org/internet-drafts/draft-ietf-rtgwg- | we have added a citation for [W3C.REC-xml-20081126] here and added it | |||
segment-routing-ti-lfa-01.txt"/> | to the list of Normative References. Please let us know any objections. | |||
</reference> | ||||
<reference anchor="RFC7812" target="https://www.rfc-editor.org/info/rfc7812"> | Original: | |||
<front> | The example is written in 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> | Currently: | |||
<section anchor="rpc-example" title="Example of IS-IS configuration in XML" | [W3C.REC-xml-20081126] | |||
toc="default"> | Bray, T., Paoli, J., Sperberg-McQueen, M., Maler, E., and | |||
<t>This section gives an example of configuration of an IS-IS instance on | F. Yergeau, "Extensible Markup Language (XML) 1.0 (Fifth | |||
a device. | Edition)", World Wide Web Consortium Recommendation REC- | |||
The example is written in XML.</t> | xml-20081126, November 2008, | |||
<https://www.w3.org/TR/2008/REC-xml-20081126>. | ||||
... | ||||
The example is written in XML [W3C.REC-xml-20081126]. --> | ||||
<figure title="" suppress-title="false" align="left" alt="" width="" heigh | </t> | |||
t=""> | <sourcecode type="xml"><![CDATA[ | |||
<artwork xml:space="preserve" name="" type="" align="left" alt="" width= | <?xml version="1.0" encoding="utf-8"?> | |||
"" height=""> | <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> | |||
<?xml version="1.0" encoding="utf-8"?> | <routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> | |||
<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> | <name>SLI</name> | |||
<routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> | <router-id>192.0.2.1</router-id> | |||
<name>SLI</name> | <control-plane-protocols> | |||
<router-id>192.0.2.1</router-id> | <control-plane-protocol> | |||
<control-plane-protocols> | <name>IS-IS-example</name> | |||
<control-plane-protocol> | <description/> | |||
<name>ISIS-example</name> | <type> | |||
<description/> | <type xmlns:isis="urn:ietf:params:xml:ns:yang:ietf-isis"> | |||
<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> | <enable>true</enable> | |||
<level-type>level-2</level-type> | <level-type>level-2</level-type> | |||
<system-id>87FC.FCDF.4432</system-id> | <system-id>87FC.FCDF.4432</system-id> | |||
<area-address>49.0001</area-address> | <area-address>49.0001</area-address> | |||
<mpls> | <mpls> | |||
<te-rid> | <te-rid> | |||
<ipv4-router-id>192.0.2.1</ipv4-router-id> | <ipv4-router-id>192.0.2.1</ipv4-router-id> | |||
</te-rid> | </te-rid> | |||
</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> | <enable>true</enable> | |||
</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> | <enable>true</enable> | |||
</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>]]></sourcecode> | |||
</artwork> | </section> | |||
<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> | ||||
</figure> | <!-- [rfced] Please review the "Inclusive Language" portion of the | |||
online Style Guide at | ||||
<https://www.rfc-editor.org/styleguide/part2/#inclusive_language>, | ||||
and let us know if any changes are needed. --> | ||||
</section> | ||||
</back> | </back> | |||
</rfc> | </rfc> | |||
End of changes. 794 change blocks. | ||||
2584 lines changed or deleted | 2360 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |