<?xmlversion="1.0" encoding="US-ASCII"?>version='1.0' encoding='utf-8'?> <!-- pre-edited by LB 04/30/2024 --> <!-- draft submitted in xml v2 --> <!DOCTYPE rfc [ <!ENTITYRFC3688 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'>nbsp " "> <!ENTITYRFC8342 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.8342.xml'>zwsp "​"> <!ENTITYRFC8349 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.8349.xml'>nbhy "‑"> <!ENTITYRFC8362 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'>wj "⁠"> ]><?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> <?rfc strict="no" ?> <?rfc toc="yes" ?> <?rfc symrefs="yes" ?> <?rfc sortrefs="yes"?> <?rfc rfcedstyle="yes" ?> <?rfc subcompact="no" ?><rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-ietf-lsr-ospfv3-extended-lsa-yang-29" number="9587" ipr="trust200902" consensus="true" submissionType="IETF" tocInclude="true" updates="" obsoletes="" sortRefs="true" symRefs="true" xml:lang="en" 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 ***** --><front><!-- The abbreviated title is used in the page header - it is only necessary if the full title is longer than 39 characters --><titleabbrev="OSPFv3 Extended LSAs YANG">YANGabbrev="YANG Data Model for OSPFv3 ExtendedLSAs</title> <!-- add 'role="editor"' belowLSAs">YANG Data Model forthe editors if appropriate --> <!-- Another author who claims to be an editor -->OSPFv3 Extended Link State Advertisements (LSAs)</title> <seriesInfo name="RFC" value="9587"/> <author fullname="Acee Lindem" initials="A." surname="Lindem"> <organization>LabN Consulting, L.L.C.</organization> <address> <postal> <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> <email>acee.ietf@gmail.com</email> </address> </author> <author fullname="Sharmila Palani" initials="S." surname="Palani"> <organization>Microsoft</organization> <address> <postal> <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> <email>sharmila.palani@microsoft.com</email> </address> </author> <author fullname="Yingzhen Qu" initials="Y" surname="Qu"> <organization>Futurewei Technologies</organization> <address> <postal> <street>2330 Central Expressway</street> <city>Santa Clara</city> <region>CA</region> <code>95050</code><country>USA</country><country>United States of America</country> </postal><phone></phone><email>yingzhen.ietf@gmail.com</email> </address> </author><date/> <!-- If the month and year are both specified and are the current ones, xml2rfc will fill in the current day for you. If only the current year is specified, xml2rfc 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 specified for the purpose of calculating the expiry date). With drafts it is normally sufficient 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. --><date month="June" year="2024"/> <area>rtg</area> <workgroup>lsr</workgroup> <abstract> <t>This document defines a YANG data model augmenting the IETF OSPF YANG data model (RFC 9129) to provide support for OSPFv3 Link State Advertisement (LSA) Extensibility as defined in RFC 8362. OSPFv3 Extended LSAs provide extensible TLV-based LSAs for the base LSA types defined in RFC 5340.</t> </abstract> </front> <middle><section title="Overview"><section> <name>Overview</name> <t>YANG <xreftarget="RFC7950"></xref>target="RFC7950"/> is a data definition language used to define the contents of a conceptualdata storedatastore that allows networked devices to be managed using NETCONF <xref target="RFC6241"/>. YANG is proving relevant beyond its initialconfines,confines as bindings to other interfaces (e.g.,ReST)RESTCONF <xref target="RFC8040"/>) and encodings other than XML (e.g., JSON) are being defined. Furthermore, YANG data models can be used as the basis for implementation of other interfaces, such asCLICommand-Line Interfaces (CLIs) and programmatic APIs.</t> <t>This document defines a YANG data model augmenting the IETF OSPF YANG data model <xref target="RFC9129"/>, which itself augments <xref target="RFC8349"/>, to provide support for configuration and operational state for OSPFv3 ExtendedLSAsLink State Advertisements (LSAs) as defined in <xref target="RFC8362"/>. </t> <t>The YANGmodulesmodule specified in this documentconformconforms to the Network Management Datastore Architecture (NMDA) <xref target="RFC8342"/>.</t> </section><section title="Tree Diagrams"><section> <name>Tree Diagrams</name> <t> This document uses the graphical representation of data models defined in <xref target="RFC8340"/>. </t> </section><section title="OSPFv3<section> <name>OSPFv3 ExtendedLSAs">LSAs</name> <t>This document defines a YANG data model for the OSPFv3 Extended LSA feature. It is an augmentation of the OSPF base modelprovided<xref target="RFC9129"/> to provide support for OSPFv3Link State Advertisement (LSA)LSA Extensibility <xref target="RFC8362"/>. OSPFv3 Extended LSAs provide extensible TLV-based LSAs for the base LSA types defined in <xref target="RFC5340"/>.</t> <t>The OSPFv3 Extended LSA YANG module requires support for the OSPF basemodel<xref target="RFC9129"></xref>model, which defines basic OSPF configuration and state. The OSPF YANG data model augments theietf-routing"ietf-routing" YANG data model defined in <xref target="RFC8349"/>. The augmentations defined in theietf-ospfv3-extended-lsa"ietf-ospfv3-extended-lsa" YANG module provide global configuration, area configuration, and the addition of OSPFv3 Extended LSAs to the Link State Database (LSDB) operational state.</t><artwork><sourcecode type="yangtree"><![CDATA[ module: ietf-ospfv3-extended-lsa augment /rt:routing/rt:control-plane-protocols /rt:control-plane-protocol/ospf:ospf: +--rw extended-lsa-support? boolean augment /rt:routing/rt:control-plane-protocols /rt:control-plane-protocol/ospf:ospf/ospf:areas /ospf:area: +--rw extended-lsa-support? boolean augment /rt:routing/rt:control-plane-protocols /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area /ospf:interfaces/ospf:interface/ospf:database /ospf:link-scope-lsa-type/ospf:link-scope-lsas /ospf:link-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 /ospf:body: +--ro e-link +--ro rtr-priority? uint8 +--ro lsa-options | +--ro lsa-options* identityref +--ro e-link-tlvs* [] +--ro unknown-tlv | +--ro type? uint16 | +--ro length? uint16 | +--ro value? yang:hex-string +--ro intra-prefix-tlv | +--ro metric? ospf:ospf-metric | +--ro prefix? inet:ip-prefix | +--ro prefix-options | | +--ro prefix-options* identityref | +--ro sub-tlvs* [] | +--ro unknown-sub-tlv | +--ro type? uint16 | +--ro length? uint16 | +--ro value? yang:hex-string +--roipv6-link-local-tlvipv6-link-local-addr-tlv | +--ro link-local-address? inet:ipv6-address | +--ro sub-tlvs* [] | +--ro unknown-sub-tlv | +--ro type? uint16 | +--ro length? uint16 | +--ro value? yang:hex-string +--roipv4-link-local-tlvipv4-link-local-addr-tlv +--ro link-local-address? inet:ipv4-address +--ro sub-tlvs* [] +--ro unknown-sub-tlv +--ro type? uint16 +--ro length? uint16 +--ro value? yang:hex-string augment /rt:routing/rt:control-plane-protocols /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area /ospf:database/ospf:area-scope-lsa-type /ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version /ospf:ospfv3/ospf:ospfv3/ospf:body: +--ro e-router | +--ro router-bits | | +--ro rtr-lsa-bits* identityref | +--ro lsa-options | | +--ro lsa-options* identityref | +--ro e-router-tlvs* [] | +--ro unknown-tlv | | +--ro type? uint16 | | +--ro length? uint16 | | +--ro value? yang:hex-string | +--ro link-tlv | +--ro interface-id? uint32 | +--ro neighbor-interface-id? uint32 | +--ro neighbor-router-id? rt-types:router-id | +--ro type? ospf:router-link-type | +--ro metric? ospf:ospf-link-metric | +--ro sub-tlvs* [] | +--ro unknown-sub-tlv | +--ro type? uint16 | +--ro length? uint16 | +--ro value? yang:hex-string +--ro e-network | +--ro lsa-options | | +--ro lsa-options* identityref | +--ro e-network-tlvs* [] | +--ro unknown-tlv | | +--ro type? uint16 | | +--ro length? uint16 | | +--ro value? yang:hex-string | +--ro attached-router-tlv | +--ro adjacent-neighbor-router-id* rt-types:router-id +--ro e-nssa | +--ro e-external-tlvs* [] | +--ro unknown-tlv | | +--ro type? uint16 | | +--ro length? uint16 | | +--ro value? yang:hex-string | +--ro external-prefix-tlv | +--ro flags | | +--ro ospfv3-e-external-prefix-bits* identityref | +--ro metric? ospf:ospf-metric | +--ro prefix? inet:ip-prefix | +--ro prefix-options | | +--ro prefix-options* identityref | +--ro sub-tlvs* [] | +--ro ipv6-fwd-addr-sub-tlv | | +--ro forwarding-address? inet:ipv6-address | +--ro ipv4-fwd-addr-sub-tlv | | +--ro forwarding-address? inet:ipv4-address | +--ro route-tag-sub-tlv | | +--ro route-tag? uint32 | +--ro unknown-sub-tlv | +--ro type? uint16 | +--ro length? uint16 | +--ro value? yang:hex-string +--ro e-inter-area-prefix | +--ro e-inter-prefix-tlvs* [] | +--ro unknown-tlv | | +--ro type? uint16 | | +--ro length? uint16 | | +--ro value? yang:hex-string | +--ro inter-prefix-tlv | +--ro metric? ospf:ospf-metric | +--ro prefix? inet:ip-prefix | +--ro prefix-options | | +--ro prefix-options* identityref | +--ro sub-tlvs* [] | +--ro unknown-sub-tlv | +--ro type? uint16 | +--ro length? uint16 | +--ro value? yang:hex-string +--ro e-inter-area-router | +--ro e-inter-router-tlvs* [] | +--ro unknown-tlv | | +--ro type? uint16 | | +--ro length? uint16 | | +--ro value? yang:hex-string | +--ro inter-router-tlv | +--ro lsa-options | | +--ro lsa-options* identityref | +--ro metric? ospf:ospf-metric | +--ro destination-router-id? rt-types:router-id | +--ro sub-tlvs* [] | +--ro unknown-sub-tlv | +--ro type? uint16 | +--ro length? uint16 | +--ro value? yang:hex-string +--ro e-intra-area-prefix +--ro referenced-ls-type? uint16 +--ro referenced-link-state-id? uint32 +--ro referenced-adv-router? rt-types:router-id +--ro e-intra-prefix-tlvs* [] +--ro unknown-tlv | +--ro type? uint16 | +--ro length? uint16 | +--ro value? yang:hex-string +--ro intra-prefix-tlv +--ro metric? ospf:ospf-metric +--ro prefix? inet:ip-prefix +--ro prefix-options | +--ro prefix-options* identityref +--ro sub-tlvs* [] +--ro unknown-sub-tlv +--ro type? uint16 +--ro length? uint16 +--ro value? yang:hex-string augment /rt:routing/rt:control-plane-protocols /rt:control-plane-protocol/ospf:ospf/ospf:database /ospf:as-scope-lsa-type/ospf:as-scope-lsas /ospf:as-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 /ospf:body: +--ro e-as-external +--ro e-external-tlvs* [] +--ro unknown-tlv | +--ro type? uint16 | +--ro length? uint16 | +--ro value? yang:hex-string +--ro external-prefix-tlv +--ro flags | +--ro ospfv3-e-external-prefix-bits* identityref +--ro metric? ospf:ospf-metric +--ro prefix? inet:ip-prefix +--ro prefix-options | +--ro prefix-options* identityref +--ro sub-tlvs* [] +--ro ipv6-fwd-addr-sub-tlv | +--ro forwarding-address? inet:ipv6-address +--ro ipv4-fwd-addr-sub-tlv | +--ro forwarding-address? inet:ipv4-address +--ro route-tag-sub-tlv | +--ro route-tag? uint32 +--ro unknown-sub-tlv +--ro type? uint16 +--ro length? uint16 +--ro value? yang:hex-string</artwork>]]></sourcecode> </section><section title="OSPFv3<section> <name>OSPFv3 Extended LSAYang Module">YANG Module</name> <t>The following RFCsand draftsare not referenced in the document text but are referenced in theietf-ospfv3-extended-lsa.yang"ietf-ospfv3-extended-lsa.yang" module: <xreftarget="RFC6991"/>,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 { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-ospfv3-extended-lsa"; prefix ospfv3-e-lsa; import ietf-routing-types { prefix rt-types; reference "RFC 8294: Common YANG Data Types for the Routing Area"; } import ietf-inet-types { prefix inet; reference "RFC 6991: Common YANG Data Types"; } import ietf-routing { prefix rt; reference "RFC 8349: A YANG Data Model for Routing Management (NMDA Version)"; } import ietf-ospf { prefix ospf; reference "RFC 9129:AYANG Data Model for the OSPF Protocol"; } organization "IETF LSR - Link State Routing Working Group"; contact "WG Web: <https://datatracker.ietf.org/wg/lsr/> WG List: <mailto:lsr@ietf.org> Author: Acee Lindem <mailto:acee.ietf@gmail.com> Author: Sharmila Palani <mailto:sharmila.palani@microsoft.com> Author: Yingzhen Qu <mailto:yingzhen.ietf@gmail.com>"; description "This YANG module defines the configuration and operational state for OSPFv3 Extended LSAs, which is common across allof thevendor implementations. The semantics and encodings for OSPFv3 Extended LSAs are described in RFC 8362. OSPFv3 Extended LSAs provide extensible TLV-based LSAs for the base LSA types defined in RFC 5340. This YANG data model conforms to the Network Management Datastore Architecture (NMDA) as described in RFC 8342. Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Revised BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFCXXXX (https://www.rfc-editor.org/info/rfcXXXX);9587; see the RFC itself for full legal notices."; reference "RFCXXXX -9587: YANG Data Model for OSPFv3 ExtendedLSAs";Link State Advertisements (LSAs)"; revision2024-02-022024-05-16 { description "Initial revision."; reference "RFCXXXX:9587: YANG Data Model for OSPFv3 ExtendedLSAs.";Link State Advertisements (LSAs)"; } /* * OSPFv3 Extended LSA Type Identities */ identity ospfv3-e-router-lsa { base ospf:ospfv3-lsa-type; description "OSPFv3Extended Router LSAE-Router-LSA - Type0xA021";0xA021."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 4.1"; } identity ospfv3-e-network-lsa { base ospf:ospfv3-lsa-type; description "OSPFv3Extended Network LSAE-Network-LSA - Type0xA022";0xA022."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 4.2"; } identity ospfv3-e-summary-lsa-type { base ospf:ospfv3-lsa-type; description "OSPFv3 Extended Summary LSAtypes";types: E-Inter-Area-Prefix-LSA and E-Inter-Area-Router-LSA."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility,SectionSections 4.3 andSection4.4"; } identity ospfv3-e-inter-area-prefix-lsa { base ospfv3-e-summary-lsa-type; description "OSPFv3Extended Inter-area Prefix LSAE-Inter-Area-Prefix-LSA - Type0xA023";0xA023."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 4.3"; } identity ospfv3-e-inter-area-router-lsa { base ospfv3-e-summary-lsa-type; description "OSPFv3Extended Inter-area Router LSAE-Inter-Area-Router-LSA - Type0xA024";0xA024."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 4.4"; } identity ospfv3-e-external-lsa-type { base ospf:ospfv3-lsa-type; description "OSPFv3 Extended External LSAtypes";types: E-AS-External-LSA and E-NSSA-LSA (where NSSA expands to Not-So-Stubby-Area)."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility,SectionSections 4.5 andSection4.6"; } identity ospfv3-e-as-external-lsa { base ospfv3-e-external-lsa-type; description "OSPFv3Extended AS-External LSAE-AS-External-LSA - Type0xC025";0xC025."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 4.5"; } identity ospfv3-e-nssa-lsa { base ospfv3-e-external-lsa-type; description "OSPFv3Extended Not-So-Stubby-Area (NSSA) LSAE-NSSA-LSA - Type0xA027";0xA027."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 4.6"; } identity ospfv3-e-link-lsa { base ospf:ospfv3-lsa-type; description "OSPFv3Extended Link LSAE-Link-LSA - Type0x8028";0x8028."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 4.7"; } identity ospfv3-e-intra-area-prefix-lsa { base ospf:ospfv3-lsa-type; description "OSPFv3Extended Intra-area Prefix LSAE-Intra-Area-Prefix-LSA - Type0xA029";0xA029."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 4.8"; } identity ospfv3-e-prefix-option { description "Base identity for OSPFv3Prefix Options.";prefix options."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 3.1"; } identity nu-bit { base ospfv3-e-prefix-option; description "When set, the prefix should be excluded from IPv6 unicast calculations."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 3.1 RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; } identity la-bit { base ospfv3-e-prefix-option; description "When set, the prefix is actually an IPv6 interface address of theAdvertising Router.";advertising router."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 3.1 RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; } identity p-bit { base ospfv3-e-prefix-option; description "When set, the NSSAareaprefix should be translated to anAS External LSAE-AS-External-LSA and advertised by the translating NSSA Border Router."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 3.1 RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; } identity dn-bit { base ospfv3-e-prefix-option; description "When set, theinter-area-prefix LSAE-Inter-Area-Prefix-LSA orAS-external LSAE-AS-External-LSA prefix has been advertised as an L3VPN prefix."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 3.1 RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; } identity n-bit { base ospfv3-e-prefix-option; description "When set, the prefix is a host address that identifies the advertising router."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 3.1 RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; } identity ospfv3-e-external-prefix-option { description "Base identity for OSPFv3External Prefix Options.";external prefix options."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 3.6"; } identity e-bit { base ospfv3-e-external-prefix-option; description "When the E-bit is set, the metric specified is a Type 2 external metric. This means the metric is considered larger than any intra-AS path. When the E-bit is clear, the specified metric is a Type 1 external metric. This means that it is expressed in the same units as other LSAs (i.e., the same units as the interface costs inrouter-LSAs).";Router-LSAs)."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 3.6"; } grouping unknown-sub-tlv { description "Unknown TLVgrouping";grouping."; container unknown-sub-tlv { uses ospf:tlv; description "Unknown External TLVSub-TLV";sub-TLV."; } reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 6.3"; } grouping ospfv3-lsa-prefix { description "OSPFv3 LSAprefix";prefix."; leaf prefix { type inet:ip-prefix; description "LSAPrefix";prefix."; } container prefix-options { leaf-list prefix-options { type identityref { base ospfv3-e-prefix-option; } description "OSPFv3 prefixoptionoptions flag list. This list will contain the identities for the OSPFv3 options that are set for the OSPFv3 prefix."; } description "Prefix options."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 3.1"; } reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 3"; } grouping external-prefix-tlv { container external-prefix-tlv { description"External Prefix LSA TLV";"External-Prefix TLV."; container flags { leaf-list ospfv3-e-external-prefix-bits { type identityref { base ospfv3-e-external-prefix-option; } description "OSPFv3external-prefixExternal-Prefix TLV bits list."; } description "ExternalPrefix Flags";prefix flags."; } leaf metric { type ospf:ospf-metric; description "ExternalPrefix Metric";prefix metric."; } uses ospfv3-lsa-prefix; list sub-tlvs { description"External Prefix"External-Prefix TLVSub-TLVs";sub-TLVs."; container ipv6-fwd-addr-sub-tlv { description"IPv6 Forwarding address Sub-TLV"IPv6-Forwarding-Address sub-TLV forE-AS-ExternalE-AS-External-LSAs andE-NSSA LSAsE-NSSA-LSAs for the IPv6 address family."; leaf forwarding-address { type inet:ipv6-address; description "IPv6Forwarding Address";forwarding address."; } reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 3.10"; } container ipv4-fwd-addr-sub-tlv { description"IPv4 Forwarding address Sub-TLV"IPv4-Forwarding-Address sub-TLV forE-AS-ExternalE-AS-External-LSAs andE-NSSA LSAsE-NSSA-LSAs for the IPv4 address family."; leaf forwarding-address { type inet:ipv4-address; description "IPv4Forwarding Address";forwarding address."; } reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 3.11"; } container route-tag-sub-tlv { description"Route Tag Sub-TLV";"Route-Tag sub-TLV."; leaf route-tag { type uint32; description "RouteTag";tag."; } reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 3.12"; } uses unknown-sub-tlv; } } description"External Prefix"External-Prefix TLVGrouping";grouping."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 3.6"; } grouping intra-area-prefix-tlv { container intra-prefix-tlv { description"Intra-Area Prefix LSA TLV";"Intra-Area-Prefix-LSA TLV."; leaf metric { type ospf:ospf-metric; description "Intra-Area PrefixMetric";metric."; } uses ospfv3-lsa-prefix; list sub-tlvs { description"Intra-Area Prefix"Intra-Area-Prefix TLVSub-TLVs";sub-TLVs."; uses unknown-sub-tlv; } } description"Intra-Area Prefix"Intra-Area-Prefix TLVGrouping";grouping."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 3.7"; } groupingipv6-link-local-tlvipv6-link-local-addr-tlv { containeripv6-link-local-tlvipv6-link-local-addr-tlv { description "IPv6 Link-LocalLSA TLV";Address TLV."; leaf link-local-address { type inet:ipv6-address; description "IPv6Link Local address";Link-Local address."; } list sub-tlvs { description "IPv6Link LocalLink-Local Address TLVSub-TLVs";sub-TLVs."; uses unknown-sub-tlv; } } description "IPv6 Link-Local Address TLVGrouping";grouping."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 3.8"; } groupingipv4-link-local-tlvipv4-link-local-addr-tlv { containeripv4-link-local-tlvipv4-link-local-addr-tlv { description "IPv4 Link-LocalLSA TLV";Address TLV."; leaf link-local-address { type inet:ipv4-address; description "IPv4Link Local address";Link-Local address."; } list sub-tlvs { description "IPv4Link LocalLink-Local Address TLVSub-TLVs";sub-TLVs."; uses unknown-sub-tlv; } } description "IPv4 Link-Local Address TLVGrouping";grouping."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 3.9"; } /* Configuration */ augment "/rt:routing/rt:control-plane-protocols" + "/rt:control-plane-protocol/ospf:ospf" { when "../rt:type = 'ospf:ospfv3'" { description "This augments the OSPFv3 routing protocol when used."; } description "This augments the OSPFv3 protocol instance-level configuration with Extended LSA support. When enabled, OSPFv3 Extended LSAs will be advertised and OSPFv3 Legacy LSAs will not be advertised. When disabled, OSPFv3 Legacy LSAs will be advertised. However, OSPFv3 Extended LSAs could still be advertised in Extended LSASparse-ModeSparse Mode to supportincrementally-deployedincrementally deployed features as describedinsectionin Section 6.2 of RFC 8362."; leaf extended-lsa-support { type boolean; default "false"; description "Enable OSPFv3 Extended LSASupportsupport for the OSPFv3domain";domain."; reference "RFC8362 -8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Appendix A - Global Configuration Support"; } } augment "/rt:routing/rt:control-plane-protocols/" + "rt:control-plane-protocol/ospf:ospf/ospf:" + "areas/ospf:area" { when "../../../rt:type = 'ospf:ospfv3'" { description "This augments the OSPFv3 protocol area-level configuration when used."; } description "This augments the OSPFv3 protocol area-level configuration with Extended LSA support."; leaf extended-lsa-support { type boolean; must "derived-from(../ospf:area-type,'stub-nssa-area') or " + "(current() = 'true') or " + "(../../../extended-lsa-support = 'false')" { description "For regular areas, i.e., areas where AS-scoped LSAs are flooded, disabling AreaExtendedLSASupport at the area level is prohibited when ExtendedLSASupport is enabled at the instance level.AS-External LSAsE-AS-External-LSAs are flooded into all OSPFv3 regular areas (i.e., not a stub or anNSSA area)NSSA), and disabling support at the area level is not possible."; } description "This augments the OSPFv3 protocol area-level configuration with Extended LSA support. When enabled, OSPFv3 Extended LSAs will be advertised and OSPFv3 Legacy LSAs will not be advertised. When disabled, OSPFv3 Legacy LSAs will be advertised. However, OSPFv3 Extended LSAs could still be advertised in Extended LSASparse-ModeSparse Mode to supportincrementally-deployedincrementally deployed features as describedinsectionin Section 6.2 of RFC 8362. If not specified, Extended LSA support status is inherited from the instance-level configuration."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Appendix B - Area Configuration Support"; } } /* * Link State Database (LSDB) Augmentations */ augment "/rt:routing/" + "rt:control-plane-protocols/rt:control-plane-protocol/" + "ospf:ospf/ospf:areas/ospf:area/" + "ospf:interfaces/ospf:interface/ospf:database/" + "ospf:link-scope-lsa-type/ospf:link-scope-lsas/" + "ospf:link-scope-lsa/ospf:version/ospf:ospfv3/" + "ospf:ospfv3/ospf:body" { when "../../../../../../../../../../../" + "rt:type = 'ospf:ospfv3'" { description "This augmentation is only valid for OSPFv3."; } description "This augmentation adds OSPFv3Link-ScopedLink-scoped Extended LSAs to the operational state for an interface Link State Database (LSDB)."; container e-link { when "../../ospf:header/ospf:type = " + "'ospfv3-e-lsa:ospfv3-e-link-lsa'" { description "Only applies toExtended Link LSAs.";E-Link-LSAs."; } description"E-Link LSA";"E-Link-LSA contents."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 4.7"; leaf rtr-priority { type uint8; description "RouterPrioritypriority for the interface."; } uses ospf:ospfv3-lsa-options; list e-link-tlvs { description"E-Link LSA TLVs";"E-Link-LSA TLVs."; container unknown-tlv { uses ospf:tlv; description "Unknown E-LinkTLV";TLV."; } uses intra-area-prefix-tlv; usesipv6-link-local-tlv;ipv6-link-local-addr-tlv; usesipv4-link-local-tlv;ipv4-link-local-addr-tlv; } } } augment "/rt:routing/" + "rt:control-plane-protocols/rt:control-plane-protocol/" + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" + "ospf:ospfv3/ospf:body" { when "../../../../../../../../../" + "rt:type = 'ospf:ospfv3'" { description "This augmentation is only valid for OSPFv3."; } description "This augmentation adds OSPFv3Area-ScopedArea-scoped Extended LSAs to the operational state for an areaLink State Database (LSDB).";LSDB."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 4"; container e-router { when "../../ospf:header/ospf:type = " + "'ospfv3-e-lsa:ospfv3-e-router-lsa'" { description "Only valid for OSPFv3Extended-Router LSAs";E-Router-LSAs."; } description"OSPv3 Extended Router LSA";"OSPFv3 E-Router-LSA contents."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 4.1"; uses ospf:ospf-router-lsa-bits; uses ospf:ospfv3-lsa-options; list e-router-tlvs { description"E-Router LSA TLVs";"E-Router-LSA TLVs."; container unknown-tlv { uses ospf:tlv; description "Unknown E-RouterTLV";TLV."; } container link-tlv { description"E-Router LSA TLV";"E-Router-LSA TLV."; leaf interface-id { type uint32; description "Interface ID forlink";link."; } leaf neighbor-interface-id { type uint32; description "Neighbor's Interface ID forlink";link."; } leaf neighbor-router-id { type rt-types:router-id; description "Neighbor's Router ID forlink";link."; } leaf type { type ospf:router-link-type; description "Link type: 1 - Point-to-Point Link 2 - Transit Network Link 3 - Stub Network LinkLink4 - VirtualLink";Link."; } leaf metric { type ospf:ospf-link-metric; description "LinkMetric";metric."; } list sub-tlvs { description "Link TLVSub-TLVs";sub-TLVs."; uses unknown-sub-tlv; } } } } container e-network { when "../../ospf:header/ospf:type = " + "'ospfv3-e-lsa:ospfv3-e-network-lsa'" { description "Only applies toE-Network LSAs.";E-Network-LSAs."; } description"Extended Network LSA";"E-Network-LSA contents."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 4.2"; uses ospf:ospfv3-lsa-options; list e-network-tlvs { description"E-Network LSA TLVs";"E-Network-LSA TLVs."; container unknown-tlv { uses ospf:tlv; description "Unknown E-NetworkTLV";TLV."; } container attached-router-tlv { description"Attached Router TLV";"Attached-Routers TLV."; leaf-list adjacent-neighbor-router-id { type rt-types:router-id; description "AdjacentNeighbor'sneighbor's RouterID";ID."; } } } } container e-nssa { when "../../ospf:header/ospf:type = " + "'ospfv3-e-lsa:ospfv3-e-nssa-lsa'" { description "Only applies toE-NSSA LSAs.";E-NSSA-LSAs."; } description "E-NSSA-LSA contents."; list e-external-tlvs { description"E-NSSA LSA TLVs";"E-NSSA-LSA TLVs."; container unknown-tlv { uses ospf:tlv; description "Unknown E-ExternalTLV";TLV."; } uses external-prefix-tlv; }description "E-NSSA LSA.";reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 4.6"; } container e-inter-area-prefix { when "../../ospf:header/ospf:type = " + "'ospfv3-e-lsa:ospfv3-e-inter-area-prefix-lsa'" { description "Only applies toE-Inter-Area-Prefix LSAs.";E-Inter-Area-Prefix-LSAs."; } description"Extended Inter-Area Prefix LSA";"E-Inter-Area-Prefix-LSA contents."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 4.3"; list e-inter-prefix-tlvs { description"E-Inter-Area-Prefix LSA TLVs";"E-Inter-Area-Prefix-LSA TLVs."; container unknown-tlv { uses ospf:tlv; description "Unknown E-Inter-Area-PrefixTLV";TLV."; } container inter-prefix-tlv { description "UnknownE-Inter-Area-Prefix LSA TLV";E-Inter-Area-Prefix-LSA TLV."; leaf metric { type ospf:ospf-metric; description "Inter-Area PrefixMetric";metric."; } uses ospfv3-lsa-prefix; list sub-tlvs { description"Inter-Area Prefix"Inter-Area-Prefix TLVSub-TLVs";sub-TLVs."; uses unknown-sub-tlv; } } } } container e-inter-area-router { when "../../ospf:header/ospf:type = " + "'ospfv3-e-lsa:ospfv3-e-inter-area-router-lsa'" { description "Only applies toE-Inter-Area-Router LSAs.";E-Inter-Area-Router-LSAs."; } description"Extended Inter-Area Router LSA";"E-Inter-Area-Router-LSA contents."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 4.4"; list e-inter-router-tlvs { description"E-Inter-Area-Router LSA TLVs";"E-Inter-Area-Router-LSA TLVs."; container unknown-tlv { uses ospf:tlv; description "Unknown E-Inter-Area-RouterTLV";TLV."; } container inter-router-tlv { description "UnknownE-Inter-Area-Router LSA TLV";E-Inter-Area-Router-LSA TLV."; uses ospf:ospfv3-lsa-options; leaf metric { type ospf:ospf-metric; description "Inter-Area RouterMetric";metric."; } leaf destination-router-id { type rt-types:router-id; description "Destination RouterID";ID."; } list sub-tlvs { description"Inter-Area Router"Inter-Area-Router TLVSub-TLVs";sub-TLVs."; uses unknown-sub-tlv; } } } } container e-intra-area-prefix { when "../../ospf:header/ospf:type = " + "'ospfv3-e-lsa:ospfv3-e-intra-area-prefix-lsa'" { description "Only applies toE-Intra-Area-Prefix LSAs.";E-Intra-Area-Prefix-LSAs."; } description"E-Intra-Area-Prefix LSA";"E-Intra-Area-Prefix-LSA contents."; reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 4.8"; leaf referenced-ls-type { type uint16; description "Referenced Link Statetype";type."; } leaf referenced-link-state-id { type uint32; description "Referenced Link StateID";ID."; } leaf referenced-adv-router { type rt-types:router-id; description "ReferencedAdvertising Router";advertising router."; } list e-intra-prefix-tlvs { description"E-Intra-Area-Prefix LSA TLVs";"E-Intra-Area-Prefix-LSA TLVs."; container unknown-tlv { uses ospf:tlv; description "Unknown E-Intra-Area-PrefixTLV";TLV."; } uses intra-area-prefix-tlv; } } } augment "/rt:routing/" + "rt:control-plane-protocols/rt:control-plane-protocol/" + "ospf:ospf/ospf:database/" + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" + "ospf:ospfv3/ospf:body" { when "../../../../../../../" + "rt:type = 'ospf:ospfv3'" { description "This augmentation is only valid for OSPFv3."; } description "This augmentation adds OSPFv3AS-ScopedAS-scoped Extended LSAs to the operational state for an AS instance-levelLink State Database (LSDB).";LSDB."; container e-as-external { when "../../ospf:header/ospf:type = " + "'ospfv3-e-lsa:ospfv3-e-as-external-lsa'" { description "Only applies toE-AS-external LSAs.";E-AS-External-LSAs."; } description "E-AS-External-LSA contents."; list e-external-tlvs { description"E-External LSA TLVs";"E-AS-External-LSA TLVs."; container unknown-tlv { uses ospf:tlv; description "Unknown E-ExternalTLV";TLV."; } uses external-prefix-tlv; }description "E-AS-External LSA.";reference "RFC 8362: OSPFv3 Link State Advertisement (LSA) Extensibility, Section 4.5"; } } }<CODE ENDS> ]]></artwork>]]></sourcecode> </section> <section anchor="Security"> <name>Security Considerations</name> <!--Possibly a 'Contributors' section ...YANG security cons. boilerplate paragraph 1 --><section anchor="Security" title="Security Considerations"><t>The YANGmodulesmodule specified in this documentdefinedefines a schema for data that is designed to be accessed via network management protocols such as NETCONF <xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/>. The lowest NETCONF layer is the secure transport layer, and the mandatory-to-implement secure transport is Secure Shell (SSH) <xref target="RFC6242"/>. The lowest RESTCONF layer is HTTPS, and the mandatory-to-implement secure transport is TLS <xref target="RFC8446"/>.</t> <!-- YANG security cons. boilerplate paragraph 2 --> <t>TheNETCONF access control modelNetwork Configuration Access Control Model (NACM) <xref target="RFC8341"/> provides the means to restrict access for particular NETCONF or RESTCONF users to apre-configuredpreconfigured subset of all available NETCONF or RESTCONF protocol operations and content.</t><t> There<!-- YANG security cons. boilerplate paragraph 3 --> <t>There are a number of data nodes defined inietf-ospfv3-extended-lsa.yangthe "ietf-ospfv3-extended-lsa.yang" module that are writable/creatable/deletable (i.e., config true, which is the default). These data nodes may be considered sensitive or vulnerable in some network environments. Write operations (e.g., edit-config) to these data nodes without proper protection can have a negative effect on network operations.ThereThese are the subtrees and data nodes and theirsensitivity/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>sensitivity/vulnerability:</t> <t indent="3">/ospf:ospf/extended-lsa-support</t> <t indent="3">/ospf:ospf/ospf:areas/ospf:area/extended-lsa-support</t> <t> The ability to disable or enable OSPFv3 Extended LSA support can result in aDenial of ServiceDenial-of-Service (DoS)attackattack, since OSPFv3 routers will use solely OSPFv3 Extended LSAs or OSPFv3 Legacy LSAs for the OSPFv3 SPF computation. OSPFv3 routers using different types of LSAs will result in incomplete reachability and possiblepartioningpartitioning of the OSPFv3 routing domain. Refer tosection 6 of<xreftarget="RFC8362"/>target="RFC8362" sectionFormat="of" section="6"/> for more information on OSPFv3 Extended LSA compatibility. </t> <!-- YANG security cons. boilerplate paragraph 4. OK as is per AD --> <t>Some of the readable data nodes in theietf-ospfv3-extended-lsa.yang"ietf-ospfv3-extended-lsa.yang" module may be considered sensitive or vulnerable in some network environments. It is thus important to control read access (e.g., via get, get-config, or notification) to these datanodes. The exposure ofnodes.</t> <t>Exposing the Link State Database (LSDB) will in turn expose the detailed topology of the network. This includes topological information from other routers. This may be undesirable due to the fact that exposure may facilitate other attacks. Additionally, network operators may consider their topologies to be sensitive confidential data.</t> </section><section title="IANA Considerations"> <t> This document registers a<section> <name>IANA Considerations</name> <t>Per this document, IANA has registered the following URI in theIETF"IETF XMLregistryRegistry" <xreftarget="RFC3688"/>. Following the format in <xref target="RFC3688"/>, the following registration is requested to be made:target="RFC3688"/>: </t><artwork> URI: urn:ietf:params:xml:ns:yang:ietf-ospfv3-extended-lsa Registrant Contact: The IESG. XML: N/A,<dl spacing="compact"> <dt>URI:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-ospfv3-extended-lsa</dd> <dt>Registrant Contact:</dt><dd>The IESG.</dd> <dt>XML:</dt><dd>N/A; the requested URI is an XMLnamespace. </artwork>namespace.</dd> </dl> <t>This document registers aPer this document, IANA has registered the following YANG module in theYANG"YANG ModuleNamesNames" registry <xreftarget="RFC6020"/>.target="RFC6020"/>: </t><artwork> name: ietf-ospfv3-extended-lsa namespace: urn:ietf:params:xml:ns:yang:ietf-ospfv3-extended-lsa prefix: ospfv3-e-lsa reference: RFC XXXX </artwork> </section> <section anchor="Acknowledgements" title="Acknowledgements"> <t>The YANG model was developed using the suite of YANG tools written and maintained<dl spacing="compact"> <dt>Name:</dt><dd>ietf-ospfv3-extended-lsa</dd> <dt>Maintained bynumerous authors.</t> <t>Thanks much to Tom Petch, Mahesh Jethanandani, Renato Westphal, Victoria Pritchard, Reshad Rahman, and Chris Hopps for their review and comments.</t>IANA:</dt><dd>N</dd> <dt>Namespace:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-ospfv3-extended-lsa</dd> <dt>Prefix:</dt><dd>ospfv3-e-lsa</dd> <dt>Reference:</dt><dd>RFC 9587</dd> </dl> </section> </middle><!-- *****BACK MATTER ***** --><back><!-- References split into informative and normative --> <!-- There are 2 ways to insert reference entries from the citation libraries: 1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown) 2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml") Both are cited textually in the same manner: by using xref elements. If you use the PI option, xml2rfc will, by default, try to find included files in the same directory as the including file. You can also define the XML_LIBRARY environment variable with a value containing a set of directories to search. These can be either in the local filing system or remote ones accessed by http (http://domain/dir/... ).--> <references title="Normative References"> <!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?--> &RFC3688; &RFC5340; &RFC6020; &RFC6241; &RFC6242; &RFC6991; &RFC7950; &RFC8040; &RFC8294; &RFC8341; &RFC8342; &RFC8349; &RFC8362; &RFC8446; &RFC9129;<references> <name>References</name> <references> <name>Normative References</name> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3688.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5340.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6020.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6241.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6242.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6991.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7950.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8040.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8294.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8341.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8342.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8349.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8362.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8446.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9129.xml"/> <reference anchor="W3C.REC-xml-20081126" target="https://www.w3.org/TR/xml/"> <front> <title>Extensible Markup Language (XML) 1.0 (Fifth Edition)</title> <author initials="T." surname="Bray"/> <author initials="J." surname="Paoli"/> <author initials="C. M." surname="Sperberg-McQueen"/> <author initials="E." surname="Maler"/> <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.7951.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8340.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8792.xml"/> </references><references title="Informative References"> <!-- Here we use entities that we defined at the beginning. --> &RFC8340; &RFC8792;</references> <section> <name>Configuration Example</name> <t>The following is an XML example (per <xref target="W3C.REC-xml-20081126"/>) using the YANG data model for OSPFv3 ExtendedLSAs.</t> <t>Note:LSAs. (Line breaks are used per <xref target="RFC8792"/> and are for display purposes only.)</t> <sourcecode type="xml"><![CDATA[ Note: '\' line wrapping per<xref target="RFC8792" format="default"/>. </t> <artwork name="" type="" align="left" alt=""><![CDATA[RFC 8792. <?xml version='1.0' encoding='UTF-8'?> <routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> <router-id>192.0.2.1</router-id> <control-plane-protocols> <control-plane-protocol> <type xmlns:ospf="urn:ietf:params:xml:ns:yang:ietf-ospf">\ ospf:ospfv3</type> <name>"OSPFv3"</name> <ospf xmlns="urn:ietf:params:xml:ns:yang:ietf-ospf"> <extended-lsa-support xmlns="urn:ietf:params:xml:ns:yang:\ ietf-ospfv3-extended-lsa">true</extended-lsa-support> </ospf> </control-plane-protocol> </control-plane-protocols> </routing>]]></artwork>]]></sourcecode> <t>The following is the same example using JSONformat.</t> <artwork name="" type="" align="left" alt=""><![CDATA[format <xref target="RFC7951"/>.</t> <sourcecode type="json"><![CDATA[ { "routing": { "router-id": "192.0.2.1", "control-plane-protocols": { "control-plane-protocol": { "type": "ospf:ospfv3", "name": "\"OSPFv3\"", "ospf": { "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 suite of YANG tools written and maintained by numerous authors.</t> <t>Thanks much to <contact fullname="Tom Petch"/>, <contact fullname="Mahesh 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> </back> </rfc>