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."; | ||||
} | } | |||