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 "&#160;">
<!ENTITY zwsp "&#8203;">
<!ENTITY nbhy "&#8209;">
<!ENTITY wj "&#8288;">
]>
<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.