| rfc9587.original.xml | rfc9587.xml | |||
|---|---|---|---|---|
| <?xml version="1.0" encoding="US-ASCII"?> | <?xml version='1.0' encoding='utf-8'?> | |||
| <!DOCTYPE rfc [ | ||||
| <!ENTITY RFC3688 PUBLIC '' | ||||
| 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3688.xml'> | ||||
| <!ENTITY RFC5340 PUBLIC '' | ||||
| 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5340.xml'> | ||||
| <!ENTITY RFC6020 PUBLIC '' | ||||
| 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.6020.xml'> | ||||
| <!ENTITY RFC6241 PUBLIC '' | ||||
| 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.6241.xml'> | ||||
| <!ENTITY RFC6242 PUBLIC '' | ||||
| 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.6242.xml'> | ||||
| <!ENTITY RFC6991 PUBLIC '' | ||||
| 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.6991.xml'> | ||||
| <!ENTITY RFC7950 PUBLIC '' | ||||
| 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.7950.xml'> | ||||
| <!ENTITY RFC8040 PUBLIC '' | ||||
| 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.8040.xml'> | ||||
| <!ENTITY RFC8294 PUBLIC '' | ||||
| 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.8294.xml'> | ||||
| <!ENTITY RFC8340 PUBLIC '' | ||||
| 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.8340.xml'> | ||||
| <!ENTITY RFC8341 PUBLIC '' | ||||
| 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.8341.xml'> | ||||
| <!ENTITY RFC8342 PUBLIC '' | ||||
| 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.8342.xml'> | ||||
| <!ENTITY RFC8349 PUBLIC '' | ||||
| 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.8349.xml'> | ||||
| <!ENTITY RFC8362 PUBLIC '' | ||||
| 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.8362.xml'> | ||||
| <!ENTITY RFC8446 PUBLIC '' | ||||
| 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.8446.xml'> | ||||
| <!ENTITY RFC8792 PUBLIC '' | ||||
| 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.8792.xml'> | ||||
| <!ENTITY RFC9129 PUBLIC '' | ||||
| 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.9129.xml'> | ||||
| ]> | ||||
| <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> | ||||
| <?rfc strict="no" ?> | ||||
| <?rfc toc="yes" ?> | ||||
| <?rfc symrefs="yes" ?> | ||||
| <?rfc sortrefs="yes"?> | ||||
| <?rfc rfcedstyle="yes" ?> | <!-- pre-edited by LB 04/30/2024 --> | |||
| <?rfc subcompact="no" ?> | ||||
| <rfc category="std" docName="draft-ietf-lsr-ospfv3-extended-lsa-yang-29" ipr="tr | <!-- draft submitted in xml v2 --> | |||
| ust200902" | ||||
| consensus="true" submissionType="IETF" version="3"> | ||||
| <!-- category values: std, bcp, info, exp, and historic | ||||
| ipr values: full3667, noModification3667, noDerivatives3667 | ||||
| you can add the attributes updates="NNNN" and obsoletes="NNNN" | ||||
| they will automatically be output with "(if approved)" --> | ||||
| <!-- ***** FRONT MATTER ***** --> | <!DOCTYPE rfc [ | |||
| <!ENTITY nbsp " "> | ||||
| <!ENTITY zwsp "​"> | ||||
| <!ENTITY nbhy "‑"> | ||||
| <!ENTITY wj "⁠"> | ||||
| ]> | ||||
| <rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-ie | ||||
| tf-lsr-ospfv3-extended-lsa-yang-29" number="9587" ipr="trust200902" consensus="t | ||||
| rue" submissionType="IETF" tocInclude="true" updates="" obsoletes="" sortRefs="t | ||||
| rue" symRefs="true" xml:lang="en" version="3"> | ||||
| <front> | <front> | |||
| <!-- The abbreviated title is used in the page header - it is only necessary | <title abbrev="YANG Data Model for OSPFv3 Extended LSAs">YANG Data Model for O | |||
| if the | SPFv3 Extended Link State Advertisements (LSAs)</title> | |||
| full title is longer than 39 characters --> | <seriesInfo name="RFC" value="9587"/> | |||
| <title abbrev="OSPFv3 Extended LSAs YANG">YANG Model for OSPFv3 Extended LSAs< | ||||
| /title> | ||||
| <!-- add 'role="editor"' below for the editors if appropriate --> | ||||
| <!-- Another author who claims to be an editor --> | ||||
| <author fullname="Acee Lindem" initials="A." surname="Lindem"> | <author fullname="Acee Lindem" initials="A." surname="Lindem"> | |||
| <organization>LabN Consulting, L.L.C.</organization> | <organization>LabN Consulting, L.L.C.</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>301 Midenhall Way</street> | <street>301 Midenhall Way</street> | |||
| <city>Cary, NC 27513</city> | <city>Cary</city> | |||
| <region>NC</region> | ||||
| <code>27513</code> | ||||
| <country>United States of America</country> | ||||
| </postal> | </postal> | |||
| <email>acee.ietf@gmail.com</email> | <email>acee.ietf@gmail.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Sharmila Palani" initials="S." surname="Palani"> | <author fullname="Sharmila Palani" initials="S." surname="Palani"> | |||
| <organization>Microsoft</organization> | <organization>Microsoft</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>1 Microsoft Way</street> | <street>1 Microsoft Way</street> | |||
| <city>Redmond, WA 98052</city> | <city>Redmond</city> | |||
| <region>WA</region> | ||||
| <code>98052</code> | ||||
| <country>United States of America</country> | ||||
| </postal> | </postal> | |||
| <email>sharmila.palani@microsoft.com</email> | <email>sharmila.palani@microsoft.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Yingzhen Qu" initials="Y" surname="Qu"> | <author fullname="Yingzhen Qu" initials="Y" surname="Qu"> | |||
| <organization>Futurewei Technologies</organization> | <organization>Futurewei Technologies</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>2330 Central Expressway</street> | <street>2330 Central Expressway</street> | |||
| <city>Santa Clara</city> | <city>Santa Clara</city> | |||
| <region>CA</region> | <region>CA</region> | |||
| <code>95050</code> | <code>95050</code> | |||
| <country>USA</country> | <country>United States of America</country> | |||
| </postal> | </postal> | |||
| <phone></phone> | ||||
| <email>yingzhen.ietf@gmail.com</email> | <email>yingzhen.ietf@gmail.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date/> | <date month="June" year="2024"/> | |||
| <!-- If the month and year are both specified and are the current ones, xml2 | ||||
| rfc will fill | ||||
| in the current day for you. If only the current year is specified, xml2 | ||||
| rfc will fill | ||||
| in the current day and month for you. If the year is not the current one, it | ||||
| is | ||||
| necessary to specify at least a month (xml2rfc assumes day="1" if not specifi | ||||
| ed for the | ||||
| purpose of calculating the expiry date). With drafts it is normally sufficie | ||||
| nt to | ||||
| specify just the year. --> | ||||
| <!-- Meta-data Declarations --> | ||||
| <area>General</area> | ||||
| <workgroup>Internet</workgroup> | ||||
| <!-- WG name at the upperleft corner of the doc, | ||||
| IETF is fine for individual submissions. | ||||
| If this element is not present, the default is "Network Working Group", | ||||
| which is used by the RFC Editor as a nod to the history of the IETF. -- | ||||
| > | ||||
| <!-- Keywords will be incorporated into HTML output | ||||
| files in a meta tag but they have no effect on text or nroff | ||||
| output. If you submit your draft to the RFC Editor, the | ||||
| keywords will be used for the search engine. --> | ||||
| <area>rtg</area> | ||||
| <workgroup>lsr</workgroup> | ||||
| <abstract> | <abstract> | |||
| <t>This document defines a YANG data model augmenting the IETF OSPF | <t>This document defines a YANG data model augmenting the IETF OSPF | |||
| YANG model to provide support for | YANG data model (RFC 9129) to provide support for | |||
| OSPFv3 Link State Advertisement (LSA) Extensibility as defined in | OSPFv3 Link State Advertisement (LSA) Extensibility as defined in | |||
| RFC 8362. OSPFv3 Extended LSAs provide extensible TLV-based LSAs for the | RFC 8362. OSPFv3 Extended LSAs provide extensible TLV-based LSAs for the | |||
| base LSA types defined in RFC 5340.</t> | base LSA types defined in RFC 5340.</t> | |||
| </abstract> | </abstract> | |||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section title="Overview"> | <section> <name>Overview</name> | |||
| <t>YANG <xref target="RFC7950"></xref> is a data definition language | <t>YANG <xref target="RFC7950"/> is a data definition language | |||
| used to define the contents of a conceptual data store | used to define the contents of a conceptual datastore | |||
| that allows networked devices to be managed using NETCONF | that allows networked devices to be managed using NETCONF | |||
| <xref target="RFC6241"/>. YANG is proving relevant beyond its | <xref target="RFC6241"/>. YANG is proving relevant beyond its | |||
| initial confines, as bindings to other interfaces (e.g., ReST) and | initial confines as bindings to other interfaces (e.g., RESTCONF <xref tar get="RFC8040"/>) and | |||
| encodings other than XML (e.g., JSON) are being defined. Furthermore, | encodings other than XML (e.g., JSON) are being defined. Furthermore, | |||
| YANG data models can be used as the basis for implementation of other | YANG data models can be used as the basis for implementation of other | |||
| interfaces, such as CLI and programmatic APIs.</t> | interfaces, such as Command-Line Interfaces (CLIs) and programmatic APIs.< /t> | |||
| <t>This document defines a YANG data model augmenting the IETF OSPF | <t>This document defines a YANG data model augmenting the IETF OSPF | |||
| YANG model <xref target="RFC9129"/>, which itself augments | YANG data model <xref target="RFC9129"/>, which itself augments | |||
| <xref target="RFC8349"/>, to provide support for configuration and | <xref target="RFC8349"/>, to provide support for configuration and | |||
| operational state for OSPFv3 Extended LSAs as defined in | operational state for OSPFv3 Extended Link State Advertisements (LSAs) as defined in | |||
| <xref target="RFC8362"/>. </t> | <xref target="RFC8362"/>. </t> | |||
| <t>The YANG modules in this document conform to the Network Management | <t>The YANG module specified in this document conforms to the Network Mana gement | |||
| Datastore Architecture (NMDA) <xref target="RFC8342"/>.</t> | Datastore Architecture (NMDA) <xref target="RFC8342"/>.</t> | |||
| </section> | </section> | |||
| <section title="Tree Diagrams"> | <section> <name>Tree Diagrams</name> | |||
| <t> This document uses the graphical representation of data models | <t> This document uses the graphical representation of data models | |||
| defined in <xref target="RFC8340"/>. </t> | defined in <xref target="RFC8340"/>. </t> | |||
| </section> | </section> | |||
| <section title="OSPFv3 Extended LSAs"> | <section> <name>OSPFv3 Extended LSAs</name> | |||
| <t>This document defines a model for the OSPFv3 Extended LSA feature. It is | <t>This document defines a YANG data model for the OSPFv3 Extended LSA featu | |||
| an | re. It is an | |||
| augmentation of the OSPF base model provided support for OSPFv3 Link State | augmentation of the OSPF base model <xref target="RFC9129"/> to provide su | |||
| Advertisement (LSA) Extensibility <xref target="RFC8362"/>. | pport for OSPFv3 LSA Extensibility <xref target="RFC8362"/>. | |||
| OSPFv3 Extended LSAs provide extensible TLV-based LSAs for the | OSPFv3 Extended LSAs provide extensible TLV-based LSAs for the | |||
| base LSA types defined in <xref target="RFC5340"/>.</t> | base LSA types defined in <xref target="RFC5340"/>.</t> | |||
| <t>The OSPFv3 Extended LSA YANG module requires support for the OSPF base | <t>The OSPFv3 Extended LSA YANG module requires support for the OSPF base | |||
| model<xref target="RFC9129"></xref> which defines basic OSPF | model, which defines basic OSPF | |||
| configuration and state. The OSPF YANG model augments the ietf-routing YANG | configuration and state. The OSPF YANG data model augments the "ietf-routing" | |||
| model defined in <xref target="RFC8349"/>. | YANG | |||
| The augmentations defined in the ietf-ospfv3-extended-lsa YANG | data model defined in <xref target="RFC8349"/>. | |||
| module provide global configuration, area configuration, and addition of OSPF | The augmentations defined in the "ietf-ospfv3-extended-lsa" YANG | |||
| v3 | module provide global configuration, area configuration, and the addition of | |||
| Extended LSAs to the Link State Database (LSDB) operational state.</t> | OSPFv3 | |||
| <artwork> | Extended LSAs to the Link State Database (LSDB) operational state.</t> | |||
| <sourcecode type="yangtree"><![CDATA[ | ||||
| module: ietf-ospfv3-extended-lsa | module: ietf-ospfv3-extended-lsa | |||
| augment /rt:routing/rt:control-plane-protocols | augment /rt:routing/rt:control-plane-protocols | |||
| /rt:control-plane-protocol/ospf:ospf: | /rt:control-plane-protocol/ospf:ospf: | |||
| +--rw extended-lsa-support? boolean | +--rw extended-lsa-support? boolean | |||
| augment /rt:routing/rt:control-plane-protocols | augment /rt:routing/rt:control-plane-protocols | |||
| /rt:control-plane-protocol/ospf:ospf/ospf:areas | /rt:control-plane-protocol/ospf:ospf/ospf:areas | |||
| /ospf:area: | /ospf:area: | |||
| +--rw extended-lsa-support? boolean | +--rw extended-lsa-support? boolean | |||
| augment /rt:routing/rt:control-plane-protocols | augment /rt:routing/rt:control-plane-protocols | |||
| skipping to change at line 209 ¶ | skipping to change at line 145 ¶ | |||
| +--ro intra-prefix-tlv | +--ro intra-prefix-tlv | |||
| | +--ro metric? ospf:ospf-metric | | +--ro metric? ospf:ospf-metric | |||
| | +--ro prefix? inet:ip-prefix | | +--ro prefix? inet:ip-prefix | |||
| | +--ro prefix-options | | +--ro prefix-options | |||
| | | +--ro prefix-options* identityref | | | +--ro prefix-options* identityref | |||
| | +--ro sub-tlvs* [] | | +--ro sub-tlvs* [] | |||
| | +--ro unknown-sub-tlv | | +--ro unknown-sub-tlv | |||
| | +--ro type? uint16 | | +--ro type? uint16 | |||
| | +--ro length? uint16 | | +--ro length? uint16 | |||
| | +--ro value? yang:hex-string | | +--ro value? yang:hex-string | |||
| +--ro ipv6-link-local-tlv | +--ro ipv6-link-local-addr-tlv | |||
| | +--ro link-local-address? inet:ipv6-address | | +--ro link-local-address? inet:ipv6-address | |||
| | +--ro sub-tlvs* [] | | +--ro sub-tlvs* [] | |||
| | +--ro unknown-sub-tlv | | +--ro unknown-sub-tlv | |||
| | +--ro type? uint16 | | +--ro type? uint16 | |||
| | +--ro length? uint16 | | +--ro length? uint16 | |||
| | +--ro value? yang:hex-string | | +--ro value? yang:hex-string | |||
| +--ro ipv4-link-local-tlv | +--ro ipv4-link-local-addr-tlv | |||
| +--ro link-local-address? inet:ipv4-address | +--ro link-local-address? inet:ipv4-address | |||
| +--ro sub-tlvs* [] | +--ro sub-tlvs* [] | |||
| +--ro unknown-sub-tlv | +--ro unknown-sub-tlv | |||
| +--ro type? uint16 | +--ro type? uint16 | |||
| +--ro length? uint16 | +--ro length? uint16 | |||
| +--ro value? yang:hex-string | +--ro value? yang:hex-string | |||
| augment /rt:routing/rt:control-plane-protocols | augment /rt:routing/rt:control-plane-protocols | |||
| /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | |||
| /ospf:database/ospf:area-scope-lsa-type | /ospf:database/ospf:area-scope-lsa-type | |||
| /ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version | /ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version | |||
| skipping to change at line 363 ¶ | skipping to change at line 299 ¶ | |||
| +--ro ipv6-fwd-addr-sub-tlv | +--ro ipv6-fwd-addr-sub-tlv | |||
| | +--ro forwarding-address? inet:ipv6-address | | +--ro forwarding-address? inet:ipv6-address | |||
| +--ro ipv4-fwd-addr-sub-tlv | +--ro ipv4-fwd-addr-sub-tlv | |||
| | +--ro forwarding-address? inet:ipv4-address | | +--ro forwarding-address? inet:ipv4-address | |||
| +--ro route-tag-sub-tlv | +--ro route-tag-sub-tlv | |||
| | +--ro route-tag? uint32 | | +--ro route-tag? uint32 | |||
| +--ro unknown-sub-tlv | +--ro unknown-sub-tlv | |||
| +--ro type? uint16 | +--ro type? uint16 | |||
| +--ro length? uint16 | +--ro length? uint16 | |||
| +--ro value? yang:hex-string | +--ro value? yang:hex-string | |||
| ]]></sourcecode> | ||||
| </artwork> | ||||
| </section> | </section> | |||
| <section title="OSPFv3 Extended LSA Yang Module"> | <section> <name>OSPFv3 Extended LSA YANG Module</name> | |||
| <t>The following RFCs and drafts are not referenced in the document text | <t>The following RFCs are not referenced in the document text | |||
| but are referenced in the ietf-ospfv3-extended-lsa.yang module: | but are referenced in the "ietf-ospfv3-extended-lsa.yang" module: | |||
| <xref target="RFC6991"/>, <xref target="RFC8294"/>.</t> | <xref target="RFC6991"/> and <xref target="RFC8294"/>.</t> | |||
| <artwork><![CDATA[ | ||||
| <CODE BEGINS> file "ietf-ospfv3-extended-lsa@2024-02-02.yang" | <sourcecode name="ietf-ospfv3-extended-lsa@2024-05-16.yang" type="yang" | |||
| markers="true"><![CDATA[ | ||||
| module ietf-ospfv3-extended-lsa { | module ietf-ospfv3-extended-lsa { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-ospfv3-extended-lsa"; | namespace "urn:ietf:params:xml:ns:yang:ietf-ospfv3-extended-lsa"; | |||
| prefix ospfv3-e-lsa; | prefix ospfv3-e-lsa; | |||
| import ietf-routing-types { | import ietf-routing-types { | |||
| prefix rt-types; | prefix rt-types; | |||
| reference | reference | |||
| "RFC 8294: Common YANG Data Types for the Routing Area"; | "RFC 8294: Common YANG Data Types for the Routing Area"; | |||
| } | } | |||
| skipping to change at line 397 ¶ | skipping to change at line 333 ¶ | |||
| } | } | |||
| import ietf-routing { | import ietf-routing { | |||
| prefix rt; | prefix rt; | |||
| reference | reference | |||
| "RFC 8349: A YANG Data Model for Routing | "RFC 8349: A YANG Data Model for Routing | |||
| Management (NMDA Version)"; | Management (NMDA Version)"; | |||
| } | } | |||
| import ietf-ospf { | import ietf-ospf { | |||
| prefix ospf; | prefix ospf; | |||
| reference | reference | |||
| "RFC 9129: A YANG Data Model for OSPF Protocol"; | "RFC 9129: YANG Data Model for the OSPF Protocol"; | |||
| } | } | |||
| organization | organization | |||
| "IETF LSR - Link State Routing Working Group"; | "IETF LSR - Link State Routing Working Group"; | |||
| contact | contact | |||
| "WG Web: <https://datatracker.ietf.org/wg/lsr/> | "WG Web: <https://datatracker.ietf.org/wg/lsr/> | |||
| WG List: <mailto:lsr@ietf.org> | WG List: <mailto:lsr@ietf.org> | |||
| Author: Acee Lindem | Author: Acee Lindem | |||
| <mailto:acee.ietf@gmail.com> | <mailto:acee.ietf@gmail.com> | |||
| Author: Sharmila Palani | Author: Sharmila Palani | |||
| <mailto:sharmila.palani@microsoft.com> | <mailto:sharmila.palani@microsoft.com> | |||
| Author: Yingzhen Qu | Author: Yingzhen Qu | |||
| <mailto:yingzhen.ietf@gmail.com>"; | <mailto:yingzhen.ietf@gmail.com>"; | |||
| description | description | |||
| "This YANG module defines the configuration | "This YANG module defines the configuration and operational | |||
| and operational state for OSPFv3 Extended LSAs, which is | state for OSPFv3 Extended LSAs, which is common across all | |||
| common across all of the vendor implementations. The | vendor implementations. The semantics and encodings for | |||
| semantics and encodings for OSPFv3 Extended LSAs are | OSPFv3 Extended LSAs are described in RFC 8362. OSPFv3 | |||
| described in RFC 8362. OSPFv3 Extended LSAs provide extensible | Extended LSAs provide extensible TLV-based LSAs for the base | |||
| TLV-based LSAs for the base LSA types defined in RFC 5340. | LSA types defined in RFC 5340. | |||
| This YANG model conforms to the Network Management | This YANG data model conforms to the Network Management | |||
| Datastore Architecture (NMDA) as described in RFC 8342. | Datastore Architecture (NMDA) as described in RFC 8342. | |||
| Copyright (c) 2024 IETF Trust and the persons identified as | Copyright (c) 2024 IETF Trust and the persons identified as | |||
| authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject to | without modification, is permitted pursuant to, and subject to | |||
| the license terms contained in, the Revised BSD License set | the license terms contained in, the Revised BSD License set | |||
| forth in Section 4.c of the IETF Trust's Legal Provisions | forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| Relating to IETF Documents | Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info). | (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 9587; see the | |||
| (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself | RFC itself for full legal notices."; | |||
| for full legal notices."; | ||||
| reference | reference | |||
| "RFC XXXX - YANG Model for OSPFv3 Extended LSAs"; | "RFC 9587: YANG Data Model for OSPFv3 Extended Link State | |||
| Advertisements (LSAs)"; | ||||
| revision 2024-02-02 { | revision 2024-05-16 { | |||
| description | description | |||
| "Initial revision."; | "Initial revision."; | |||
| reference | reference | |||
| "RFC XXXX: YANG Data Model for OSPFv3 Extended LSAs."; | "RFC 9587: YANG Data Model for OSPFv3 Extended Link State | |||
| Advertisements (LSAs)"; | ||||
| } | } | |||
| /* | /* | |||
| * OSPFv3 Extended LSA Type Identities | * OSPFv3 Extended LSA Type Identities | |||
| */ | */ | |||
| identity ospfv3-e-router-lsa { | identity ospfv3-e-router-lsa { | |||
| base ospf:ospfv3-lsa-type; | base ospf:ospfv3-lsa-type; | |||
| description | description | |||
| "OSPFv3 Extended Router LSA - Type 0xA021"; | "OSPFv3 E-Router-LSA - Type 0xA021."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.1"; | Extensibility, Section 4.1"; | |||
| } | } | |||
| identity ospfv3-e-network-lsa { | identity ospfv3-e-network-lsa { | |||
| base ospf:ospfv3-lsa-type; | base ospf:ospfv3-lsa-type; | |||
| description | description | |||
| "OSPFv3 Extended Network LSA - Type 0xA022"; | "OSPFv3 E-Network-LSA - Type 0xA022."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.2"; | Extensibility, Section 4.2"; | |||
| } | } | |||
| identity ospfv3-e-summary-lsa-type { | identity ospfv3-e-summary-lsa-type { | |||
| base ospf:ospfv3-lsa-type; | base ospf:ospfv3-lsa-type; | |||
| description | description | |||
| "OSPFv3 Extended Summary LSA types"; | "OSPFv3 Extended Summary LSA types: | |||
| E-Inter-Area-Prefix-LSA and E-Inter-Area-Router-LSA."; | ||||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.3 and Section 4.4"; | Extensibility, Sections 4.3 and 4.4"; | |||
| } | } | |||
| identity ospfv3-e-inter-area-prefix-lsa { | identity ospfv3-e-inter-area-prefix-lsa { | |||
| base ospfv3-e-summary-lsa-type; | base ospfv3-e-summary-lsa-type; | |||
| description | description | |||
| "OSPFv3 Extended Inter-area Prefix LSA - Type 0xA023"; | "OSPFv3 E-Inter-Area-Prefix-LSA - Type 0xA023."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.3"; | Extensibility, Section 4.3"; | |||
| } | } | |||
| identity ospfv3-e-inter-area-router-lsa { | identity ospfv3-e-inter-area-router-lsa { | |||
| base ospfv3-e-summary-lsa-type; | base ospfv3-e-summary-lsa-type; | |||
| description | description | |||
| "OSPFv3 Extended Inter-area Router LSA - Type 0xA024"; | "OSPFv3 E-Inter-Area-Router-LSA - Type 0xA024."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.4"; | Extensibility, Section 4.4"; | |||
| } | } | |||
| identity ospfv3-e-external-lsa-type { | identity ospfv3-e-external-lsa-type { | |||
| base ospf:ospfv3-lsa-type; | base ospf:ospfv3-lsa-type; | |||
| description | description | |||
| "OSPFv3 Extended External LSA types"; | "OSPFv3 Extended External LSA types: | |||
| E-AS-External-LSA and E-NSSA-LSA (where | ||||
| NSSA expands to Not-So-Stubby-Area)."; | ||||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.5 and Section 4.6"; | Extensibility, Sections 4.5 and 4.6"; | |||
| } | } | |||
| identity ospfv3-e-as-external-lsa { | identity ospfv3-e-as-external-lsa { | |||
| base ospfv3-e-external-lsa-type; | base ospfv3-e-external-lsa-type; | |||
| description | description | |||
| "OSPFv3 Extended AS-External LSA - Type 0xC025"; | "OSPFv3 E-AS-External-LSA - Type 0xC025."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.5"; | Extensibility, Section 4.5"; | |||
| } | } | |||
| identity ospfv3-e-nssa-lsa { | identity ospfv3-e-nssa-lsa { | |||
| base ospfv3-e-external-lsa-type; | base ospfv3-e-external-lsa-type; | |||
| description | description | |||
| "OSPFv3 Extended Not-So-Stubby-Area (NSSA) LSA - | "OSPFv3 E-NSSA-LSA - Type 0xA027."; | |||
| Type 0xA027"; | ||||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.6"; | Extensibility, Section 4.6"; | |||
| } | } | |||
| identity ospfv3-e-link-lsa { | identity ospfv3-e-link-lsa { | |||
| base ospf:ospfv3-lsa-type; | base ospf:ospfv3-lsa-type; | |||
| description | description | |||
| "OSPFv3 Extended Link LSA - Type 0x8028"; | "OSPFv3 E-Link-LSA - Type 0x8028."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.7"; | Extensibility, Section 4.7"; | |||
| } | } | |||
| identity ospfv3-e-intra-area-prefix-lsa { | identity ospfv3-e-intra-area-prefix-lsa { | |||
| base ospf:ospfv3-lsa-type; | base ospf:ospfv3-lsa-type; | |||
| description | description | |||
| "OSPFv3 Extended Intra-area Prefix LSA - Type 0xA029"; | "OSPFv3 E-Intra-Area-Prefix-LSA - Type 0xA029."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.8"; | Extensibility, Section 4.8"; | |||
| } | } | |||
| identity ospfv3-e-prefix-option { | identity ospfv3-e-prefix-option { | |||
| description | description | |||
| "Base identity for OSPFv3 Prefix Options."; | "Base identity for OSPFv3 prefix options."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.1"; | Extensibility, Section 3.1"; | |||
| } | } | |||
| identity nu-bit { | identity nu-bit { | |||
| base ospfv3-e-prefix-option; | base ospfv3-e-prefix-option; | |||
| description | description | |||
| "When set, the prefix should be excluded | "When set, the prefix should be excluded | |||
| from IPv6 unicast calculations."; | from IPv6 unicast calculations."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.1 | Extensibility, Section 3.1 | |||
| RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; | RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; | |||
| } | } | |||
| identity la-bit { | identity la-bit { | |||
| base ospfv3-e-prefix-option; | base ospfv3-e-prefix-option; | |||
| description | description | |||
| "When set, the prefix is actually an IPv6 interface | "When set, the prefix is actually an IPv6 interface | |||
| address of the Advertising Router."; | address of the advertising router."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.1 | Extensibility, Section 3.1 | |||
| RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; | RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; | |||
| } | } | |||
| identity p-bit { | identity p-bit { | |||
| base ospfv3-e-prefix-option; | base ospfv3-e-prefix-option; | |||
| description | description | |||
| "When set, the NSSA area prefix should be | "When set, the NSSA prefix should be translated to an | |||
| translated to an AS External LSA and advertised | E-AS-External-LSA and advertised by the translating | |||
| by the translating NSSA Border Router."; | NSSA Border Router."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.1 | Extensibility, Section 3.1 | |||
| RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; | RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; | |||
| } | } | |||
| identity dn-bit { | identity dn-bit { | |||
| base ospfv3-e-prefix-option; | base ospfv3-e-prefix-option; | |||
| description | description | |||
| "When set, the inter-area-prefix LSA or | "When set, the E-Inter-Area-Prefix-LSA or | |||
| AS-external LSA prefix has been advertised as an | E-AS-External-LSA prefix has been advertised as an | |||
| L3VPN prefix."; | L3VPN prefix."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.1 | Extensibility, Section 3.1 | |||
| RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; | RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; | |||
| } | } | |||
| identity n-bit { | identity n-bit { | |||
| base ospfv3-e-prefix-option; | base ospfv3-e-prefix-option; | |||
| description | description | |||
| "When set, the prefix is a host address that identifies | "When set, the prefix is a host address that identifies | |||
| the advertising router."; | the advertising router."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.1 | Extensibility, Section 3.1 | |||
| RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; | RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; | |||
| } | } | |||
| identity ospfv3-e-external-prefix-option { | identity ospfv3-e-external-prefix-option { | |||
| description | description | |||
| "Base identity for OSPFv3 External Prefix Options."; | "Base identity for OSPFv3 external prefix options."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.6"; | Extensibility, Section 3.6"; | |||
| } | } | |||
| identity e-bit { | identity e-bit { | |||
| base ospfv3-e-external-prefix-option; | base ospfv3-e-external-prefix-option; | |||
| description | description | |||
| "When the E-bit is set, the metric specified is a Type 2 | "When the E-bit is set, the metric specified is a Type 2 | |||
| external metric. This means the metric is considered larger | external metric. This means the metric is considered larger | |||
| than any intra-AS path. When the E-bit is clear, the | than any intra-AS path. When the E-bit is clear, the | |||
| specified metric is a Type 1 external metric. This means | specified metric is a Type 1 external metric. This means | |||
| that it is expressed in the same units as other LSAs (i.e., | that it is expressed in the same units as other LSAs (i.e., | |||
| the same units as the interface costs in router-LSAs)."; | the same units as the interface costs in Router-LSAs)."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.6"; | Extensibility, Section 3.6"; | |||
| } | } | |||
| grouping unknown-sub-tlv { | grouping unknown-sub-tlv { | |||
| description | description | |||
| "Unknown TLV grouping"; | "Unknown TLV grouping."; | |||
| container unknown-sub-tlv { | container unknown-sub-tlv { | |||
| uses ospf:tlv; | uses ospf:tlv; | |||
| description | description | |||
| "Unknown External TLV Sub-TLV"; | "Unknown External TLV sub-TLV."; | |||
| } | } | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 6.3"; | Extensibility, Section 6.3"; | |||
| } | } | |||
| grouping ospfv3-lsa-prefix { | grouping ospfv3-lsa-prefix { | |||
| description | description | |||
| "OSPFv3 LSA prefix"; | "OSPFv3 LSA prefix."; | |||
| leaf prefix { | leaf prefix { | |||
| type inet:ip-prefix; | type inet:ip-prefix; | |||
| description | description | |||
| "LSA Prefix"; | "LSA prefix."; | |||
| } | } | |||
| container prefix-options { | container prefix-options { | |||
| leaf-list prefix-options { | leaf-list prefix-options { | |||
| type identityref { | type identityref { | |||
| base ospfv3-e-prefix-option; | base ospfv3-e-prefix-option; | |||
| } | } | |||
| description | description | |||
| "OSPFv3 prefix option flag list. This list will | "OSPFv3 prefix options flag list. This list will | |||
| contain the identities for the OSPFv3 options | contain the identities for the OSPFv3 options | |||
| that are set for the OSPFv3 prefix."; | that are set for the OSPFv3 prefix."; | |||
| } | } | |||
| description | description | |||
| "Prefix options."; | "Prefix options."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.1"; | Extensibility, Section 3.1"; | |||
| } | } | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3"; | Extensibility, Section 3"; | |||
| } | } | |||
| grouping external-prefix-tlv { | grouping external-prefix-tlv { | |||
| container external-prefix-tlv { | container external-prefix-tlv { | |||
| description | description | |||
| "External Prefix LSA TLV"; | "External-Prefix TLV."; | |||
| container flags { | container flags { | |||
| leaf-list ospfv3-e-external-prefix-bits { | leaf-list ospfv3-e-external-prefix-bits { | |||
| type identityref { | type identityref { | |||
| base ospfv3-e-external-prefix-option; | base ospfv3-e-external-prefix-option; | |||
| } | } | |||
| description | description | |||
| "OSPFv3 external-prefix TLV bits list."; | "OSPFv3 External-Prefix TLV bits list."; | |||
| } | } | |||
| description | description | |||
| "External Prefix Flags"; | "External prefix flags."; | |||
| } | } | |||
| leaf metric { | leaf metric { | |||
| type ospf:ospf-metric; | type ospf:ospf-metric; | |||
| description | description | |||
| "External Prefix Metric"; | "External prefix metric."; | |||
| } | } | |||
| uses ospfv3-lsa-prefix; | uses ospfv3-lsa-prefix; | |||
| list sub-tlvs { | list sub-tlvs { | |||
| description | description | |||
| "External Prefix TLV Sub-TLVs"; | "External-Prefix TLV sub-TLVs."; | |||
| container ipv6-fwd-addr-sub-tlv { | container ipv6-fwd-addr-sub-tlv { | |||
| description | description | |||
| "IPv6 Forwarding address Sub-TLV for E-AS-External and | "IPv6-Forwarding-Address sub-TLV for | |||
| E-NSSA LSAs for the IPv6 address family."; | E-AS-External-LSAs and E-NSSA-LSAs for the IPv6 | |||
| address family."; | ||||
| leaf forwarding-address { | leaf forwarding-address { | |||
| type inet:ipv6-address; | type inet:ipv6-address; | |||
| description | description | |||
| "IPv6 Forwarding Address"; | "IPv6 forwarding address."; | |||
| } | } | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.10"; | Extensibility, Section 3.10"; | |||
| } | } | |||
| container ipv4-fwd-addr-sub-tlv { | container ipv4-fwd-addr-sub-tlv { | |||
| description | description | |||
| "IPv4 Forwarding address Sub-TLV for E-AS-External and | "IPv4-Forwarding-Address sub-TLV for | |||
| E-NSSA LSAs for the IPv4 address family."; | E-AS-External-LSAs and E-NSSA-LSAs for the IPv4 | |||
| address family."; | ||||
| leaf forwarding-address { | leaf forwarding-address { | |||
| type inet:ipv4-address; | type inet:ipv4-address; | |||
| description | description | |||
| "IPv4 Forwarding Address"; | "IPv4 forwarding address."; | |||
| } | } | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.11"; | Extensibility, Section 3.11"; | |||
| } | } | |||
| container route-tag-sub-tlv { | container route-tag-sub-tlv { | |||
| description | description | |||
| "Route Tag Sub-TLV"; | "Route-Tag sub-TLV."; | |||
| leaf route-tag { | leaf route-tag { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Route Tag"; | "Route tag."; | |||
| } | } | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.12"; | Extensibility, Section 3.12"; | |||
| } | } | |||
| uses unknown-sub-tlv; | uses unknown-sub-tlv; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "External Prefix TLV Grouping"; | "External-Prefix TLV grouping."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.6"; | Extensibility, Section 3.6"; | |||
| } | } | |||
| grouping intra-area-prefix-tlv { | grouping intra-area-prefix-tlv { | |||
| container intra-prefix-tlv { | container intra-prefix-tlv { | |||
| description | description | |||
| "Intra-Area Prefix LSA TLV"; | "Intra-Area-Prefix-LSA TLV."; | |||
| leaf metric { | leaf metric { | |||
| type ospf:ospf-metric; | type ospf:ospf-metric; | |||
| description | description | |||
| "Intra-Area Prefix Metric"; | "Intra-Area Prefix metric."; | |||
| } | } | |||
| uses ospfv3-lsa-prefix; | uses ospfv3-lsa-prefix; | |||
| list sub-tlvs { | list sub-tlvs { | |||
| description | description | |||
| "Intra-Area Prefix TLV Sub-TLVs"; | "Intra-Area-Prefix TLV sub-TLVs."; | |||
| uses unknown-sub-tlv; | uses unknown-sub-tlv; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "Intra-Area Prefix TLV Grouping"; | "Intra-Area-Prefix TLV grouping."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.7"; | Extensibility, Section 3.7"; | |||
| } | } | |||
| grouping ipv6-link-local-tlv { | grouping ipv6-link-local-addr-tlv { | |||
| container ipv6-link-local-tlv { | container ipv6-link-local-addr-tlv { | |||
| description | description | |||
| "IPv6 Link-Local LSA TLV"; | "IPv6 Link-Local Address TLV."; | |||
| leaf link-local-address { | leaf link-local-address { | |||
| type inet:ipv6-address; | type inet:ipv6-address; | |||
| description | description | |||
| "IPv6 Link Local address"; | "IPv6 Link-Local address."; | |||
| } | } | |||
| list sub-tlvs { | list sub-tlvs { | |||
| description | description | |||
| "IPv6 Link Local TLV Sub-TLVs"; | "IPv6 Link-Local Address TLV sub-TLVs."; | |||
| uses unknown-sub-tlv; | uses unknown-sub-tlv; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "IPv6 Link-Local TLV Grouping"; | "IPv6 Link-Local Address TLV grouping."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.8"; | Extensibility, Section 3.8"; | |||
| } | } | |||
| grouping ipv4-link-local-tlv { | grouping ipv4-link-local-addr-tlv { | |||
| container ipv4-link-local-tlv { | container ipv4-link-local-addr-tlv { | |||
| description | description | |||
| "IPv4 Link-Local LSA TLV"; | "IPv4 Link-Local Address TLV."; | |||
| leaf link-local-address { | leaf link-local-address { | |||
| type inet:ipv4-address; | type inet:ipv4-address; | |||
| description | description | |||
| "IPv4 Link Local address"; | "IPv4 Link-Local address."; | |||
| } | } | |||
| list sub-tlvs { | list sub-tlvs { | |||
| description | description | |||
| "IPv4 Link Local TLV Sub-TLVs"; | "IPv4 Link-Local Address TLV sub-TLVs."; | |||
| uses unknown-sub-tlv; | uses unknown-sub-tlv; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "IPv4 Link-Local TLV Grouping"; | "IPv4 Link-Local Address TLV grouping."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.9"; | Extensibility, Section 3.9"; | |||
| } | } | |||
| /* Configuration */ | /* Configuration */ | |||
| augment "/rt:routing/rt:control-plane-protocols" | augment "/rt:routing/rt:control-plane-protocols" | |||
| + "/rt:control-plane-protocol/ospf:ospf" { | + "/rt:control-plane-protocol/ospf:ospf" { | |||
| when "../rt:type = 'ospf:ospfv3'" { | when "../rt:type = 'ospf:ospfv3'" { | |||
| description | description | |||
| "This augments the OSPFv3 routing protocol when used."; | "This augments the OSPFv3 routing protocol when used."; | |||
| } | } | |||
| description | description | |||
| "This augments the OSPFv3 protocol instance-level configuration | "This augments the OSPFv3 protocol instance-level | |||
| with Extended LSA support. When enabled, OSPFv3 Extended LSAs | configuration with Extended LSA support. When enabled, | |||
| will be advertised and OSPFv3 Legacy LSAs will not be | OSPFv3 Extended LSAs will be advertised and OSPFv3 Legacy | |||
| advertised. When disabled, OSPFv3 Legacy LSAs will be | LSAs will not be advertised. When disabled, OSPFv3 Legacy | |||
| advertised. However, OSPFv3 Extended LSAs could still be | LSAs will be advertised. However, OSPFv3 Extended LSAs | |||
| advertised in Extended LSA Sparse-Mode to support | could still be advertised in Extended LSA Sparse Mode to | |||
| incrementally-deployed features as described insection 6.2 of | support incrementally deployed features as described in | |||
| RFC 8362."; | Section 6.2 of RFC 8362."; | |||
| leaf extended-lsa-support { | leaf extended-lsa-support { | |||
| type boolean; | type boolean; | |||
| default "false"; | default "false"; | |||
| description | description | |||
| "Enable OSPFv3 Extended LSA Support for the OSPFv3 | "Enable OSPFv3 Extended LSA support for the OSPFv3 | |||
| domain"; | domain."; | |||
| reference | reference | |||
| "RFC 8362 - OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Appendix A - Global Configuration Support"; | Extensibility, Appendix A - Global Configuration Support"; | |||
| } | } | |||
| } | } | |||
| augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
| + "rt:control-plane-protocol/ospf:ospf/ospf:" | + "rt:control-plane-protocol/ospf:ospf/ospf:" | |||
| + "areas/ospf:area" { | + "areas/ospf:area" { | |||
| when "../../../rt:type = 'ospf:ospfv3'" { | when "../../../rt:type = 'ospf:ospfv3'" { | |||
| description | description | |||
| "This augments the OSPFv3 protocol area-level configuration | "This augments the OSPFv3 protocol area-level | |||
| when used."; | configuration when used."; | |||
| } | } | |||
| description | description | |||
| "This augments the OSPFv3 protocol area-level | "This augments the OSPFv3 protocol area-level | |||
| configuration with Extended LSA support."; | configuration with Extended LSA support."; | |||
| leaf extended-lsa-support { | leaf extended-lsa-support { | |||
| type boolean; | type boolean; | |||
| must "derived-from(../ospf:area-type,'stub-nssa-area') or " | must "derived-from(../ospf:area-type,'stub-nssa-area') or " | |||
| + "(current() = 'true') or " | + "(current() = 'true') or " | |||
| + "(../../../extended-lsa-support = 'false')" { | + "(../../../extended-lsa-support = 'false')" { | |||
| description | description | |||
| "For regular areas, i.e., areas where AS-scoped LSAs | "For regular areas, i.e., areas where AS-scoped LSAs | |||
| are flooded, disabling AreaExtendedLSASupport at the | are flooded, disabling AreaExtendedLSASupport at the | |||
| area level is prohibited when ExtendedLSASupport is | area level is prohibited when ExtendedLSASupport is | |||
| enabled at the instance level. AS-External LSAs | enabled at the instance level. E-AS-External-LSAs | |||
| are flooded into all OSPFv3 regular areas (i.e., not | are flooded into all OSPFv3 regular areas (i.e., not | |||
| a stub or an NSSA area) and disabling support at the | a stub or an NSSA), and disabling support at the | |||
| area level is not possible."; | area level is not possible."; | |||
| } | } | |||
| description | description | |||
| "This augments the OSPFv3 protocol area-level configuration | "This augments the OSPFv3 protocol area-level | |||
| with Extended LSA support. When enabled, OSPFv3 Extended | configuration with Extended LSA support. When enabled, | |||
| LSAs will be advertised and OSPFv3 Legacy LSAs will not be | OSPFv3 Extended LSAs will be advertised and OSPFv3 Legacy | |||
| advertised. When disabled, OSPFv3 Legacy LSAs will be | LSAs will not be advertised. When disabled, OSPFv3 | |||
| advertised. However, OSPFv3 Extended LSAs could still be | Legacy LSAs will be advertised. However, OSPFv3 Extended | |||
| advertised in Extended LSA Sparse-Mode to support | LSAs could still be advertised in Extended LSA Sparse | |||
| incrementally-deployed features as described insection | Mode to support incrementally deployed features as | |||
| 6.2 of RFC 8362. If not specified, Extended LSA support | described in Section 6.2 of RFC 8362. If not specified, | |||
| status is inherited from the instance-level configuration."; | Extended LSA support status is inherited from the | |||
| instance-level configuration."; | ||||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Appendix B - Area Configuration Support"; | Extensibility, Appendix B - Area Configuration Support"; | |||
| } | } | |||
| } | } | |||
| /* | /* | |||
| * Link State Database (LSDB) Augmentations | * Link State Database (LSDB) Augmentations | |||
| */ | */ | |||
| skipping to change at line 897 ¶ | skipping to change at line 839 ¶ | |||
| + "ospf:interfaces/ospf:interface/ospf:database/" | + "ospf:interfaces/ospf:interface/ospf:database/" | |||
| + "ospf:link-scope-lsa-type/ospf:link-scope-lsas/" | + "ospf:link-scope-lsa-type/ospf:link-scope-lsas/" | |||
| + "ospf:link-scope-lsa/ospf:version/ospf:ospfv3/" | + "ospf:link-scope-lsa/ospf:version/ospf:ospfv3/" | |||
| + "ospf:ospfv3/ospf:body" { | + "ospf:ospfv3/ospf:body" { | |||
| when "../../../../../../../../../../../" | when "../../../../../../../../../../../" | |||
| + "rt:type = 'ospf:ospfv3'" { | + "rt:type = 'ospf:ospfv3'" { | |||
| description | description | |||
| "This augmentation is only valid for OSPFv3."; | "This augmentation is only valid for OSPFv3."; | |||
| } | } | |||
| description | description | |||
| "This augmentation adds OSPFv3 Link-Scoped Extended LSAs | "This augmentation adds OSPFv3 Link-scoped Extended LSAs | |||
| to the operational state for an interface Link State | to the operational state for an interface Link State | |||
| Database (LSDB)."; | Database (LSDB)."; | |||
| container e-link { | container e-link { | |||
| when "../../ospf:header/ospf:type = " | when "../../ospf:header/ospf:type = " | |||
| + "'ospfv3-e-lsa:ospfv3-e-link-lsa'" { | + "'ospfv3-e-lsa:ospfv3-e-link-lsa'" { | |||
| description | description | |||
| "Only applies to Extended Link LSAs."; | "Only applies to E-Link-LSAs."; | |||
| } | } | |||
| description | description | |||
| "E-Link LSA"; | "E-Link-LSA contents."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.7"; | Extensibility, Section 4.7"; | |||
| leaf rtr-priority { | leaf rtr-priority { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "Router Priority for the interface."; | "Router priority for the interface."; | |||
| } | } | |||
| uses ospf:ospfv3-lsa-options; | uses ospf:ospfv3-lsa-options; | |||
| list e-link-tlvs { | list e-link-tlvs { | |||
| description | description | |||
| "E-Link LSA TLVs"; | "E-Link-LSA TLVs."; | |||
| container unknown-tlv { | container unknown-tlv { | |||
| uses ospf:tlv; | uses ospf:tlv; | |||
| description | description | |||
| "Unknown E-Link TLV"; | "Unknown E-Link TLV."; | |||
| } | } | |||
| uses intra-area-prefix-tlv; | uses intra-area-prefix-tlv; | |||
| uses ipv6-link-local-tlv; | uses ipv6-link-local-addr-tlv; | |||
| uses ipv4-link-local-tlv; | uses ipv4-link-local-addr-tlv; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| augment "/rt:routing/" | augment "/rt:routing/" | |||
| + "rt:control-plane-protocols/rt:control-plane-protocol/" | + "rt:control-plane-protocols/rt:control-plane-protocol/" | |||
| + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" | + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" | |||
| + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" | + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" | |||
| + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" | + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" | |||
| + "ospf:ospfv3/ospf:body" { | + "ospf:ospfv3/ospf:body" { | |||
| when "../../../../../../../../../" | when "../../../../../../../../../" | |||
| + "rt:type = 'ospf:ospfv3'" { | + "rt:type = 'ospf:ospfv3'" { | |||
| description | description | |||
| "This augmentation is only valid for OSPFv3."; | "This augmentation is only valid for OSPFv3."; | |||
| } | } | |||
| description | description | |||
| "This augmentation adds OSPFv3 Area-Scoped Extended LSAs | "This augmentation adds OSPFv3 Area-scoped Extended LSAs | |||
| to the operational state for an area Link State | to the operational state for an area LSDB."; | |||
| Database (LSDB)."; | ||||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4"; | Extensibility, Section 4"; | |||
| container e-router { | container e-router { | |||
| when "../../ospf:header/ospf:type = " | when "../../ospf:header/ospf:type = " | |||
| + "'ospfv3-e-lsa:ospfv3-e-router-lsa'" { | + "'ospfv3-e-lsa:ospfv3-e-router-lsa'" { | |||
| description | description | |||
| "Only valid for OSPFv3 Extended-Router LSAs"; | "Only valid for OSPFv3 E-Router-LSAs."; | |||
| } | } | |||
| description | description | |||
| "OSPv3 Extended Router LSA"; | "OSPFv3 E-Router-LSA contents."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.1"; | Extensibility, Section 4.1"; | |||
| uses ospf:ospf-router-lsa-bits; | uses ospf:ospf-router-lsa-bits; | |||
| uses ospf:ospfv3-lsa-options; | uses ospf:ospfv3-lsa-options; | |||
| list e-router-tlvs { | list e-router-tlvs { | |||
| description | description | |||
| "E-Router LSA TLVs"; | "E-Router-LSA TLVs."; | |||
| container unknown-tlv { | container unknown-tlv { | |||
| uses ospf:tlv; | uses ospf:tlv; | |||
| description | description | |||
| "Unknown E-Router TLV"; | "Unknown E-Router TLV."; | |||
| } | } | |||
| container link-tlv { | container link-tlv { | |||
| description | description | |||
| "E-Router LSA TLV"; | "E-Router-LSA TLV."; | |||
| leaf interface-id { | leaf interface-id { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Interface ID for link"; | "Interface ID for link."; | |||
| } | } | |||
| leaf neighbor-interface-id { | leaf neighbor-interface-id { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Neighbor's Interface ID for link"; | "Neighbor's Interface ID for link."; | |||
| } | } | |||
| leaf neighbor-router-id { | leaf neighbor-router-id { | |||
| type rt-types:router-id; | type rt-types:router-id; | |||
| description | description | |||
| "Neighbor's Router ID for link"; | "Neighbor's Router ID for link."; | |||
| } | } | |||
| leaf type { | leaf type { | |||
| type ospf:router-link-type; | type ospf:router-link-type; | |||
| description | description | |||
| "Link type: 1 - Point-to-Point Link | "Link type: 1 - Point-to-Point Link | |||
| 2 - Transit Network Link | 2 - Transit Network Link | |||
| 3 - Stub Network Link Link | 3 - Stub Network Link | |||
| 4 - Virtual Link"; | 4 - Virtual Link."; | |||
| } | } | |||
| leaf metric { | leaf metric { | |||
| type ospf:ospf-link-metric; | type ospf:ospf-link-metric; | |||
| description | description | |||
| "Link Metric"; | "Link metric."; | |||
| } | } | |||
| list sub-tlvs { | list sub-tlvs { | |||
| description | description | |||
| "Link TLV Sub-TLVs"; | "Link TLV sub-TLVs."; | |||
| uses unknown-sub-tlv; | uses unknown-sub-tlv; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container e-network { | container e-network { | |||
| when "../../ospf:header/ospf:type = " | when "../../ospf:header/ospf:type = " | |||
| + "'ospfv3-e-lsa:ospfv3-e-network-lsa'" { | + "'ospfv3-e-lsa:ospfv3-e-network-lsa'" { | |||
| description | description | |||
| "Only applies to E-Network LSAs."; | "Only applies to E-Network-LSAs."; | |||
| } | } | |||
| description | description | |||
| "Extended Network LSA"; | "E-Network-LSA contents."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.2"; | Extensibility, Section 4.2"; | |||
| uses ospf:ospfv3-lsa-options; | uses ospf:ospfv3-lsa-options; | |||
| list e-network-tlvs { | list e-network-tlvs { | |||
| description | description | |||
| "E-Network LSA TLVs"; | "E-Network-LSA TLVs."; | |||
| container unknown-tlv { | container unknown-tlv { | |||
| uses ospf:tlv; | uses ospf:tlv; | |||
| description | description | |||
| "Unknown E-Network TLV"; | "Unknown E-Network TLV."; | |||
| } | } | |||
| container attached-router-tlv { | container attached-router-tlv { | |||
| description | description | |||
| "Attached Router TLV"; | "Attached-Routers TLV."; | |||
| leaf-list adjacent-neighbor-router-id { | leaf-list adjacent-neighbor-router-id { | |||
| type rt-types:router-id; | type rt-types:router-id; | |||
| description | description | |||
| "Adjacent Neighbor's Router ID"; | "Adjacent neighbor's Router ID."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container e-nssa { | container e-nssa { | |||
| when "../../ospf:header/ospf:type = " | when "../../ospf:header/ospf:type = " | |||
| + "'ospfv3-e-lsa:ospfv3-e-nssa-lsa'" { | + "'ospfv3-e-lsa:ospfv3-e-nssa-lsa'" { | |||
| description | description | |||
| "Only applies to E-NSSA LSAs."; | "Only applies to E-NSSA-LSAs."; | |||
| } | } | |||
| description | ||||
| "E-NSSA-LSA contents."; | ||||
| list e-external-tlvs { | list e-external-tlvs { | |||
| description | description | |||
| "E-NSSA LSA TLVs"; | "E-NSSA-LSA TLVs."; | |||
| container unknown-tlv { | container unknown-tlv { | |||
| uses ospf:tlv; | uses ospf:tlv; | |||
| description | description | |||
| "Unknown E-External TLV"; | "Unknown E-External TLV."; | |||
| } | } | |||
| uses external-prefix-tlv; | uses external-prefix-tlv; | |||
| } | } | |||
| description | ||||
| "E-NSSA LSA."; | ||||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.6"; | Extensibility, Section 4.6"; | |||
| } | } | |||
| container e-inter-area-prefix { | container e-inter-area-prefix { | |||
| when "../../ospf:header/ospf:type = " | when "../../ospf:header/ospf:type = " | |||
| + "'ospfv3-e-lsa:ospfv3-e-inter-area-prefix-lsa'" { | + "'ospfv3-e-lsa:ospfv3-e-inter-area-prefix-lsa'" { | |||
| description | description | |||
| "Only applies to E-Inter-Area-Prefix LSAs."; | "Only applies to E-Inter-Area-Prefix-LSAs."; | |||
| } | } | |||
| description | description | |||
| "Extended Inter-Area Prefix LSA"; | "E-Inter-Area-Prefix-LSA contents."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.3"; | Extensibility, Section 4.3"; | |||
| list e-inter-prefix-tlvs { | list e-inter-prefix-tlvs { | |||
| description | description | |||
| "E-Inter-Area-Prefix LSA TLVs"; | "E-Inter-Area-Prefix-LSA TLVs."; | |||
| container unknown-tlv { | container unknown-tlv { | |||
| uses ospf:tlv; | uses ospf:tlv; | |||
| description | description | |||
| "Unknown E-Inter-Area-Prefix TLV"; | "Unknown E-Inter-Area-Prefix TLV."; | |||
| } | } | |||
| container inter-prefix-tlv { | container inter-prefix-tlv { | |||
| description | description | |||
| "Unknown E-Inter-Area-Prefix LSA TLV"; | "Unknown E-Inter-Area-Prefix-LSA TLV."; | |||
| leaf metric { | leaf metric { | |||
| type ospf:ospf-metric; | type ospf:ospf-metric; | |||
| description | description | |||
| "Inter-Area Prefix Metric"; | "Inter-Area Prefix metric."; | |||
| } | } | |||
| uses ospfv3-lsa-prefix; | uses ospfv3-lsa-prefix; | |||
| list sub-tlvs { | list sub-tlvs { | |||
| description | description | |||
| "Inter-Area Prefix TLV Sub-TLVs"; | "Inter-Area-Prefix TLV sub-TLVs."; | |||
| uses unknown-sub-tlv; | uses unknown-sub-tlv; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container e-inter-area-router { | container e-inter-area-router { | |||
| when "../../ospf:header/ospf:type = " | when "../../ospf:header/ospf:type = " | |||
| + "'ospfv3-e-lsa:ospfv3-e-inter-area-router-lsa'" { | + "'ospfv3-e-lsa:ospfv3-e-inter-area-router-lsa'" { | |||
| description | description | |||
| "Only applies to E-Inter-Area-Router LSAs."; | "Only applies to E-Inter-Area-Router-LSAs."; | |||
| } | } | |||
| description | description | |||
| "Extended Inter-Area Router LSA"; | "E-Inter-Area-Router-LSA contents."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.4"; | Extensibility, Section 4.4"; | |||
| list e-inter-router-tlvs { | list e-inter-router-tlvs { | |||
| description | description | |||
| "E-Inter-Area-Router LSA TLVs"; | "E-Inter-Area-Router-LSA TLVs."; | |||
| container unknown-tlv { | container unknown-tlv { | |||
| uses ospf:tlv; | uses ospf:tlv; | |||
| description | description | |||
| "Unknown E-Inter-Area-Router TLV"; | "Unknown E-Inter-Area-Router TLV."; | |||
| } | } | |||
| container inter-router-tlv { | container inter-router-tlv { | |||
| description | description | |||
| "Unknown E-Inter-Area-Router LSA TLV"; | "Unknown E-Inter-Area-Router-LSA TLV."; | |||
| uses ospf:ospfv3-lsa-options; | uses ospf:ospfv3-lsa-options; | |||
| leaf metric { | leaf metric { | |||
| type ospf:ospf-metric; | type ospf:ospf-metric; | |||
| description | description | |||
| "Inter-Area Router Metric"; | "Inter-Area Router metric."; | |||
| } | } | |||
| leaf destination-router-id { | leaf destination-router-id { | |||
| type rt-types:router-id; | type rt-types:router-id; | |||
| description | description | |||
| "Destination Router ID"; | "Destination Router ID."; | |||
| } | } | |||
| list sub-tlvs { | list sub-tlvs { | |||
| description | description | |||
| "Inter-Area Router TLV Sub-TLVs"; | "Inter-Area-Router TLV sub-TLVs."; | |||
| uses unknown-sub-tlv; | uses unknown-sub-tlv; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container e-intra-area-prefix { | container e-intra-area-prefix { | |||
| when "../../ospf:header/ospf:type = " | when "../../ospf:header/ospf:type = " | |||
| + "'ospfv3-e-lsa:ospfv3-e-intra-area-prefix-lsa'" { | + "'ospfv3-e-lsa:ospfv3-e-intra-area-prefix-lsa'" { | |||
| description | description | |||
| "Only applies to E-Intra-Area-Prefix LSAs."; | "Only applies to E-Intra-Area-Prefix-LSAs."; | |||
| } | } | |||
| description | description | |||
| "E-Intra-Area-Prefix LSA"; | "E-Intra-Area-Prefix-LSA contents."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.8"; | Extensibility, Section 4.8"; | |||
| leaf referenced-ls-type { | leaf referenced-ls-type { | |||
| type uint16; | type uint16; | |||
| description | description | |||
| "Referenced Link State type"; | "Referenced Link State type."; | |||
| } | } | |||
| leaf referenced-link-state-id { | leaf referenced-link-state-id { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Referenced Link State ID"; | "Referenced Link State ID."; | |||
| } | } | |||
| leaf referenced-adv-router { | leaf referenced-adv-router { | |||
| type rt-types:router-id; | type rt-types:router-id; | |||
| description | description | |||
| "Referenced Advertising Router"; | "Referenced advertising router."; | |||
| } | } | |||
| list e-intra-prefix-tlvs { | list e-intra-prefix-tlvs { | |||
| description | description | |||
| "E-Intra-Area-Prefix LSA TLVs"; | "E-Intra-Area-Prefix-LSA TLVs."; | |||
| container unknown-tlv { | container unknown-tlv { | |||
| uses ospf:tlv; | uses ospf:tlv; | |||
| description | description | |||
| "Unknown E-Intra-Area-Prefix TLV"; | "Unknown E-Intra-Area-Prefix TLV."; | |||
| } | } | |||
| uses intra-area-prefix-tlv; | uses intra-area-prefix-tlv; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| augment "/rt:routing/" | augment "/rt:routing/" | |||
| + "rt:control-plane-protocols/rt:control-plane-protocol/" | + "rt:control-plane-protocols/rt:control-plane-protocol/" | |||
| + "ospf:ospf/ospf:database/" | + "ospf:ospf/ospf:database/" | |||
| + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" | + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" | |||
| + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" | + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" | |||
| + "ospf:ospfv3/ospf:body" { | + "ospf:ospfv3/ospf:body" { | |||
| when "../../../../../../../" | when "../../../../../../../" | |||
| + "rt:type = 'ospf:ospfv3'" { | + "rt:type = 'ospf:ospfv3'" { | |||
| description | description | |||
| "This augmentation is only valid for OSPFv3."; | "This augmentation is only valid for OSPFv3."; | |||
| } | } | |||
| description | description | |||
| "This augmentation adds OSPFv3 AS-Scoped Extended LSAs | "This augmentation adds OSPFv3 AS-scoped Extended LSAs to | |||
| to the operational state for an AS instance-level Link | the operational state for an AS instance-level LSDB."; | |||
| State Database (LSDB)."; | ||||
| container e-as-external { | container e-as-external { | |||
| when "../../ospf:header/ospf:type = " | when "../../ospf:header/ospf:type = " | |||
| + "'ospfv3-e-lsa:ospfv3-e-as-external-lsa'" { | + "'ospfv3-e-lsa:ospfv3-e-as-external-lsa'" { | |||
| description | description | |||
| "Only applies to E-AS-external LSAs."; | "Only applies to E-AS-External-LSAs."; | |||
| } | } | |||
| description | ||||
| "E-AS-External-LSA contents."; | ||||
| list e-external-tlvs { | list e-external-tlvs { | |||
| description | description | |||
| "E-External LSA TLVs"; | "E-AS-External-LSA TLVs."; | |||
| container unknown-tlv { | container unknown-tlv { | |||
| uses ospf:tlv; | uses ospf:tlv; | |||
| description | description | |||
| "Unknown E-External TLV"; | "Unknown E-External TLV."; | |||
| } | } | |||
| uses external-prefix-tlv; | uses external-prefix-tlv; | |||
| } | } | |||
| description | ||||
| "E-AS-External LSA."; | ||||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.5"; | Extensibility, Section 4.5"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | ]]></sourcecode> | |||
| ]]></artwork> | ||||
| </section> | </section> | |||
| <!-- Possibly a 'Contributors' section ... --> | <section anchor="Security"> <name>Security Considerations</name> | |||
| <!-- YANG security cons. boilerplate paragraph 1 --> | ||||
| <section anchor="Security" title="Security Considerations"> | <t>The YANG module specified in this document defines a schema for data | |||
| <t>The YANG modules specified in this document define a schema for | that is designed to be accessed via network management protocols such | |||
| data that is designed to be accessed via network | as NETCONF <xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/>. | |||
| management protocols such as NETCONF <xref target="RFC6241"/> or | The lowest NETCONF layer is the secure transport layer, and the | |||
| RESTCONF <xref target="RFC8040"/>. The lowest NETCONF layer is the secure | mandatory-to-implement secure transport is Secure Shell (SSH) | |||
| transport | <xref target="RFC6242"/>. The lowest RESTCONF layer is HTTPS, and the | |||
| layer, and the mandatory-to-implement secure transport is Secure Shell (S | mandatory-to-implement secure transport is TLS <xref target="RFC8446"/>.</t> | |||
| SH) | ||||
| <xref target="RFC6242"/>. The lowest RESTCONF layer is HTTPS, and the | ||||
| mandatory-to-implement secure transport is TLS <xref target="RFC8446"/>.< | ||||
| /t> | ||||
| <t>The NETCONF access control model <xref target="RFC8341"/> provides the | <!-- YANG security cons. boilerplate paragraph 2 --> | |||
| means to restrict access for particular NETCONF or RESTCONF users to a | <t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/ | |||
| pre-configured subset of all available NETCONF or RESTCONF protocol | > | |||
| operations and content.</t> | provides the means to restrict access for particular NETCONF or RESTCONF users | |||
| to a preconfigured subset of all available NETCONF or RESTCONF protocol | ||||
| operations and content.</t> | ||||
| <t> | <!-- YANG security cons. boilerplate paragraph 3 --> | |||
| There are a number of data nodes defined in ietf-ospfv3-extended-lsa.yan | <t>There are a number of data nodes defined in the | |||
| g module | "ietf-ospfv3-extended-lsa.yang" module that are writable/creatable/deletable (i. | |||
| that are writable/creatable/deletable (i.e., config true, which is the d | e., config true, which is the default). These data nodes may be considered sensi | |||
| efault). | tive or vulnerable in some network environments. Write operations (e.g., edit-co | |||
| These data nodes may be considered sensitive or vulnerable in some netwo | nfig) to these data nodes without proper protection can have a negative effect o | |||
| rk | n network operations. These are the subtrees and data nodes and their sensitivit | |||
| environments. Write operations (e.g., edit-config) to these data nodes w | y/vulnerability:</t> | |||
| ithout | <t indent="3">/ospf:ospf/extended-lsa-support</t> | |||
| proper protection can have a negative effect on network operations. Ther | <t indent="3">/ospf:ospf/ospf:areas/ospf:area/extended-lsa-support</t> | |||
| e are | ||||
| the subtrees and data nodes and their sensitivity/vulnerability: | ||||
| </t> | ||||
| <ul spacing="compact" empty="true"> | ||||
| <li>/ospf:ospf/extended-lsa-support</li> | ||||
| <li>/ospf:ospf/ospf:areas/ospf:area/extended-lsa-support</li> | ||||
| </ul> | ||||
| <t> | <t> | |||
| The ability to disable or enable OSPFv3 Extended LSA support can resul t | The ability to disable or enable OSPFv3 Extended LSA support can resul t | |||
| in a Denial of Service (DoS) attack since OSPFv3 routers will use sole ly OSPFv3 | in a Denial-of-Service (DoS) attack, since OSPFv3 routers will use sol ely OSPFv3 | |||
| Extended LSAs or OSPFv3 Legacy LSAs for the OSPFv3 SPF computation. OS PFv3 | Extended LSAs or OSPFv3 Legacy LSAs for the OSPFv3 SPF computation. OS PFv3 | |||
| routers using different types of LSAs will | routers using different types of LSAs will | |||
| result in incomplete reachability and possible partioning of the OSPFv | result in incomplete reachability and possible partitioning of the OSP | |||
| 3 routing | Fv3 routing | |||
| domain. Refer to section 6 of <xref target="RFC8362"/> for more inform | domain. Refer to <xref target="RFC8362" sectionFormat="of" section="6" | |||
| ation on | /> | |||
| for more information on | ||||
| OSPFv3 Extended LSA compatibility. | OSPFv3 Extended LSA compatibility. | |||
| </t> | </t> | |||
| <t>Some of the readable data nodes in the ietf-ospfv3-extended-lsa.yang modul | <!-- YANG security cons. boilerplate paragraph 4. OK as is per AD --> | |||
| e | <t>Some of the readable data nodes in the "ietf-ospfv3-extended-lsa.yang" module | |||
| may be considered sensitive or vulnerable in some network environments. It | may be considered sensitive or vulnerable in some network environments. It is t | |||
| is thus | hus important to control read access (e.g., via get, get-config, or notification | |||
| important to control read access (e.g., via get, get-config, or notificati | ) to these data nodes.</t> | |||
| on) | ||||
| to these data nodes. The exposure of the Link State Database (LSDB) will | <t>Exposing the Link State Database (LSDB) will in turn | |||
| expose the detailed topology of the network. This includes topological inf ormation | expose the detailed topology of the network. This includes topological inf ormation | |||
| from other routers. This may be undesirable | from other routers. This may be undesirable | |||
| due to the fact that exposure may facilitate other attacks. Additionally, | due to the fact that exposure may facilitate other attacks. Additionally, | |||
| network operators may consider their topologies to be sensitive confidenti al | network operators may consider their topologies to be sensitive confidenti al | |||
| data.</t> | data.</t> | |||
| </section> | </section> | |||
| <section title="IANA Considerations"> | <section> <name>IANA Considerations</name> | |||
| <t> | <t>Per this document, IANA has registered the following URI in the "IETF XML Reg | |||
| This document registers a URI in the IETF XML registry | istry" <xref target="RFC3688"/>: | |||
| <xref target="RFC3688"/>. Following the format in <xref target="RFC3688"/>, | ||||
| the following registration is requested to be made: | ||||
| </t> | </t> | |||
| <artwork> | <dl spacing="compact"> | |||
| URI: urn:ietf:params:xml:ns:yang:ietf-ospfv3-extended-lsa | <dt>URI:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-ospfv3-extended-lsa</dd> | |||
| Registrant Contact: The IESG. | <dt>Registrant Contact:</dt><dd>The IESG.</dd> | |||
| XML: N/A, the requested URI is an XML namespace. | <dt>XML:</dt><dd>N/A; the requested URI is an XML namespace.</dd> | |||
| </artwork> | </dl> | |||
| <t> | <t> | |||
| This document registers a YANG module in the YANG Module Names | Per this document, IANA has registered the following YANG module in the "YA | |||
| registry <xref target="RFC6020"/>. | NG Module Names" | |||
| registry <xref target="RFC6020"/>: | ||||
| </t> | </t> | |||
| <artwork> | <dl spacing="compact"> | |||
| name: ietf-ospfv3-extended-lsa | <dt>Name:</dt><dd>ietf-ospfv3-extended-lsa</dd> | |||
| namespace: urn:ietf:params:xml:ns:yang:ietf-ospfv3-extended-lsa | <dt>Maintained by IANA:</dt><dd>N</dd> | |||
| prefix: ospfv3-e-lsa | <dt>Namespace:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-ospfv3-extended-lsa</ | |||
| reference: RFC XXXX | dd> | |||
| </artwork> | <dt>Prefix:</dt><dd>ospfv3-e-lsa</dd> | |||
| <dt>Reference:</dt><dd>RFC 9587</dd> | ||||
| </dl> | ||||
| </section> | </section> | |||
| <section anchor="Acknowledgements" title="Acknowledgements"> | ||||
| <t>The YANG model was developed using the suite of YANG tools written | ||||
| and maintained by numerous authors.</t> | ||||
| <t>Thanks much to Tom Petch, Mahesh Jethanandani, Renato Westphal, | ||||
| Victoria Pritchard, Reshad Rahman, and Chris Hopps for their review and co | ||||
| mments.</t> | ||||
| </section> | ||||
| </middle> | </middle> | |||
| <!-- *****BACK MATTER ***** --> | ||||
| <back> | <back> | |||
| <!-- References split into informative and normative --> | ||||
| <!-- There are 2 ways to insert reference entries from the citation librarie | <references> | |||
| s: | <name>References</name> | |||
| 1. define an ENTITY at the top, and use "ampersand character"RFC2629; here | <references> <name>Normative References</name> | |||
| (as shown) | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.368 | |||
| 2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xm | 8.xml"/> | |||
| l"?> here | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.534 | |||
| (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis. | 0.xml"/> | |||
| xml") | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.602 | |||
| 0.xml"/> | ||||
| Both are cited textually in the same manner: by using xref elements. | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.624 | |||
| If you use the PI option, xml2rfc will, by default, try to find included fi | 1.xml"/> | |||
| les in the same | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.624 | |||
| directory as the including file. You can also define the XML_LIBRARY enviro | 2.xml"/> | |||
| nment variable | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.699 | |||
| with a value containing a set of directories to search. These can be eithe | 1.xml"/> | |||
| r in the local | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.795 | |||
| filing system or remote ones accessed by http (http://domain/dir/... ).--> | 0.xml"/> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.804 | ||||
| <references title="Normative References"> | 0.xml"/> | |||
| <!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC. | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.829 | |||
| 2119.xml"?--> | 4.xml"/> | |||
| &RFC3688; | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.834 | |||
| &RFC5340; | 1.xml"/> | |||
| &RFC6020; | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.834 | |||
| &RFC6241; | 2.xml"/> | |||
| &RFC6242; | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.834 | |||
| &RFC6991; | 9.xml"/> | |||
| &RFC7950; | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.836 | |||
| &RFC8040; | 2.xml"/> | |||
| &RFC8294; | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.844 | |||
| &RFC8341; | 6.xml"/> | |||
| &RFC8342; | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.912 | |||
| &RFC8349; | 9.xml"/> | |||
| &RFC8362; | <reference anchor="W3C.REC-xml-20081126" target="https://www.w3.org/TR/x | |||
| &RFC8446; | ml/"> | |||
| &RFC9129; | <front> | |||
| </references> | <title>Extensible Markup Language (XML) 1.0 (Fifth Edition)</title> | |||
| <references title="Informative References"> | <author initials="T." surname="Bray"/> | |||
| <!-- Here we use entities that we defined at the beginning. --> | <author initials="J." surname="Paoli"/> | |||
| &RFC8340; | <author initials="C. M." surname="Sperberg-McQueen"/> | |||
| &RFC8792; | <author initials="E." surname="Maler"/> | |||
| </references> | <author initials="F." surname="Yergeau"/> | |||
| <date month="November" year="2008"/> | ||||
| </front> | ||||
| <refcontent>W3C Recommendation REC-xml-20081126</refcontent> | ||||
| </reference> | ||||
| </references> | ||||
| <references> <name>Informative References</name> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.795 | ||||
| 1.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.834 | ||||
| 0.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.879 | ||||
| 2.xml"/> | ||||
| </references> | ||||
| </references> | ||||
| <section> | <section> | |||
| <name>Configuration Example</name> | <name>Configuration Example</name> | |||
| <t>The following is an XML example using the YANG model for OSPFv3 Exten | <t>The following is an XML example (per <xref target="W3C.REC-xml-200811 | |||
| ded LSAs.</t> | 26"/>) using the YANG data model for OSPFv3 Extended LSAs. (Line breaks are used | |||
| <t>Note: '\' line wrapping per <xref target="RFC8792" format="default"/> | per <xref target="RFC8792"/> and are for display purposes only.)</t> | |||
| . </t> | <sourcecode type="xml"><![CDATA[ | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | Note: '\' line wrapping per RFC 8792. | |||
| <?xml version='1.0' encoding='UTF-8'?> | <?xml version='1.0' encoding='UTF-8'?> | |||
| <routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> | <routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> | |||
| <router-id>192.0.2.1</router-id> | <router-id>192.0.2.1</router-id> | |||
| <control-plane-protocols> | <control-plane-protocols> | |||
| <control-plane-protocol> | <control-plane-protocol> | |||
| <type xmlns:ospf="urn:ietf:params:xml:ns:yang:ietf-ospf">\ | <type xmlns:ospf="urn:ietf:params:xml:ns:yang:ietf-ospf">\ | |||
| ospf:ospfv3</type> | ospf:ospfv3</type> | |||
| <name>"OSPFv3"</name> | <name>"OSPFv3"</name> | |||
| <ospf xmlns="urn:ietf:params:xml:ns:yang:ietf-ospf"> | <ospf xmlns="urn:ietf:params:xml:ns:yang:ietf-ospf"> | |||
| <extended-lsa-support xmlns="urn:ietf:params:xml:ns:yang:\ | <extended-lsa-support xmlns="urn:ietf:params:xml:ns:yang:\ | |||
| ietf-ospfv3-extended-lsa">true</extended-lsa-support> | ietf-ospfv3-extended-lsa">true</extended-lsa-support> | |||
| </ospf> | </ospf> | |||
| </control-plane-protocol> | </control-plane-protocol> | |||
| </control-plane-protocols> | </control-plane-protocols> | |||
| </routing> | </routing> | |||
| ]]></artwork> | ]]></sourcecode> | |||
| <t>The following is the same example using JSON format.</t> | ||||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | <t>The following is the same example using JSON format <xref target="RFC79 | |||
| 51"/>.</t> | ||||
| <sourcecode type="json"><![CDATA[ | ||||
| { | { | |||
| "routing": { | "routing": { | |||
| "router-id": "192.0.2.1", | "router-id": "192.0.2.1", | |||
| "control-plane-protocols": { | "control-plane-protocols": { | |||
| "control-plane-protocol": { | "control-plane-protocol": { | |||
| "type": "ospf:ospfv3", | "type": "ospf:ospfv3", | |||
| "name": "\"OSPFv3\"", | "name": "\"OSPFv3\"", | |||
| "ospf": { | "ospf": { | |||
| "extended-lsa-support": true | "extended-lsa-support": true | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </section> | ||||
| <section anchor="Acknowledgements" numbered="false"> <name>Acknowledgements< | ||||
| /name> | ||||
| <t>The YANG data model defined in this document was developed using the su | ||||
| ite of YANG tools written | ||||
| and maintained by numerous authors.</t> | ||||
| <t>Thanks much to <contact fullname="Tom Petch"/>, <contact fullname="Mahe | ||||
| sh Jethanandani"/>, <contact fullname="Renato Westphal"/>, | ||||
| <contact fullname="Victoria Pritchard"/>, <contact fullname="Reshad Rahman | ||||
| "/>, and <contact fullname="Chris Hopps"/> for their review and comments.</t> | ||||
| </section> | </section> | |||
| </back> | </back> | |||
| </rfc> | </rfc> | |||
| End of changes. 167 change blocks. | ||||
| 421 lines changed or deleted | 364 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||