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. |