summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc9587.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc9587.txt')
-rw-r--r--doc/rfc/rfc9587.txt1387
1 files changed, 1387 insertions, 0 deletions
diff --git a/doc/rfc/rfc9587.txt b/doc/rfc/rfc9587.txt
new file mode 100644
index 0000000..b590615
--- /dev/null
+++ b/doc/rfc/rfc9587.txt
@@ -0,0 +1,1387 @@
+
+
+
+
+Internet Engineering Task Force (IETF) A. Lindem
+Request for Comments: 9587 LabN Consulting, L.L.C.
+Category: Standards Track S. Palani
+ISSN: 2070-1721 Microsoft
+ Y. Qu
+ Futurewei Technologies
+ June 2024
+
+
+ YANG Data Model for OSPFv3 Extended Link State Advertisements (LSAs)
+
+Abstract
+
+ 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.
+
+Status of This Memo
+
+ This is an Internet Standards Track document.
+
+ This document is a product of the Internet Engineering Task Force
+ (IETF). It represents the consensus of the IETF community. It has
+ received public review and has been approved for publication by the
+ Internet Engineering Steering Group (IESG). Further information on
+ Internet Standards is available in Section 2 of RFC 7841.
+
+ Information about the current status of this document, any errata,
+ and how to provide feedback on it may be obtained at
+ https://www.rfc-editor.org/info/rfc9587.
+
+Copyright Notice
+
+ Copyright (c) 2024 IETF Trust and the persons identified as the
+ document authors. All rights reserved.
+
+ This document is subject to BCP 78 and the IETF Trust's Legal
+ Provisions Relating to IETF Documents
+ (https://trustee.ietf.org/license-info) in effect on the date of
+ publication of this document. Please review these documents
+ carefully, as they describe your rights and restrictions with respect
+ to this document. Code Components extracted from this document must
+ include Revised BSD License text as described in Section 4.e of the
+ Trust Legal Provisions and are provided without warranty as described
+ in the Revised BSD License.
+
+Table of Contents
+
+ 1. Overview
+ 2. Tree Diagrams
+ 3. OSPFv3 Extended LSAs
+ 4. OSPFv3 Extended LSA YANG Module
+ 5. Security Considerations
+ 6. IANA Considerations
+ 7. References
+ 7.1. Normative References
+ 7.2. Informative References
+ Appendix A. Configuration Example
+ Acknowledgements
+ Authors' Addresses
+
+1. Overview
+
+ YANG [RFC7950] is a data definition language used to define the
+ contents of a conceptual datastore that allows networked devices to
+ be managed using NETCONF [RFC6241]. YANG is proving relevant beyond
+ its initial confines as bindings to other interfaces (e.g., RESTCONF
+ [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 as Command-Line Interfaces
+ (CLIs) and programmatic APIs.
+
+ This document defines a YANG data model augmenting the IETF OSPF YANG
+ data model [RFC9129], which itself augments [RFC8349], to provide
+ support for configuration and operational state for OSPFv3 Extended
+ Link State Advertisements (LSAs) as defined in [RFC8362].
+
+ The YANG module specified in this document conforms to the Network
+ Management Datastore Architecture (NMDA) [RFC8342].
+
+2. Tree Diagrams
+
+ This document uses the graphical representation of data models
+ defined in [RFC8340].
+
+3. OSPFv3 Extended LSAs
+
+ This document defines a YANG data model for the OSPFv3 Extended LSA
+ feature. It is an augmentation of the OSPF base model [RFC9129] to
+ provide support for OSPFv3 LSA Extensibility [RFC8362]. OSPFv3
+ Extended LSAs provide extensible TLV-based LSAs for the base LSA
+ types defined in [RFC5340].
+
+ The OSPFv3 Extended LSA YANG module requires support for the OSPF
+ base model, which defines basic OSPF configuration and state. The
+ OSPF YANG data model augments the "ietf-routing" YANG data model
+ defined in [RFC8349]. The augmentations defined in the "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.
+
+ 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
+ +--ro ipv6-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
+ +--ro ipv4-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
+
+4. OSPFv3 Extended LSA YANG Module
+
+ The following RFCs are not referenced in the document text but are
+ referenced in the "ietf-ospfv3-extended-lsa.yang" module: [RFC6991]
+ and [RFC8294].
+
+ <CODE BEGINS> file "ietf-ospfv3-extended-lsa@2024-06-07.yang"
+ 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: YANG 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 all
+ vendor 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 RFC 9587; see the
+ RFC itself for full legal notices.";
+
+ reference
+ "RFC 9587: YANG Data Model for OSPFv3 Extended Link State
+ Advertisements (LSAs)";
+
+ revision 2024-06-07 {
+ description
+ "Initial revision.";
+ reference
+ "RFC 9587: YANG Data Model for OSPFv3 Extended Link State
+ Advertisements (LSAs)";
+ }
+
+ /*
+ * OSPFv3 Extended LSA Type Identities
+ */
+
+ identity ospfv3-e-router-lsa {
+ base ospf:ospfv3-lsa-type;
+ description
+ "OSPFv3 E-Router-LSA - Type 0xA021.";
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 4.1";
+ }
+
+ identity ospfv3-e-network-lsa {
+ base ospf:ospfv3-lsa-type;
+ description
+ "OSPFv3 E-Network-LSA - Type 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 LSA types:
+ E-Inter-Area-Prefix-LSA and E-Inter-Area-Router-LSA.";
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Sections 4.3 and 4.4";
+ }
+
+ identity ospfv3-e-inter-area-prefix-lsa {
+ base ospfv3-e-summary-lsa-type;
+ description
+ "OSPFv3 E-Inter-Area-Prefix-LSA - Type 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
+ "OSPFv3 E-Inter-Area-Router-LSA - Type 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 LSA 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, Sections 4.5 and 4.6";
+ }
+
+ identity ospfv3-e-as-external-lsa {
+ base ospfv3-e-external-lsa-type;
+ description
+ "OSPFv3 E-AS-External-LSA - Type 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
+ "OSPFv3 E-NSSA-LSA - Type 0xA027.";
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 4.6";
+ }
+
+ identity ospfv3-e-link-lsa {
+ base ospf:ospfv3-lsa-type;
+ description
+ "OSPFv3 E-Link-LSA - Type 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
+ "OSPFv3 E-Intra-Area-Prefix-LSA - Type 0xA029.";
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 4.8";
+ }
+
+ identity ospfv3-e-prefix-option {
+ description
+ "Base identity for OSPFv3 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 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 p-bit {
+ base ospfv3-e-prefix-option;
+ description
+ "When set, the NSSA prefix should be translated to an
+ E-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, the E-Inter-Area-Prefix-LSA or
+ E-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 OSPFv3 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 in Router-LSAs).";
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 3.6";
+ }
+
+ grouping unknown-sub-tlv {
+ description
+ "Unknown TLV grouping.";
+ container unknown-sub-tlv {
+ uses ospf:tlv;
+ description
+ "Unknown External TLV sub-TLV.";
+ }
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 6.3";
+ }
+
+ grouping ospfv3-lsa-prefix {
+ description
+ "OSPFv3 LSA prefix.";
+ leaf prefix {
+ type inet:ip-prefix;
+ description
+ "LSA prefix.";
+ }
+ container prefix-options {
+ leaf-list prefix-options {
+ type identityref {
+ base ospfv3-e-prefix-option;
+ }
+ description
+ "OSPFv3 prefix options 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 TLV.";
+ container flags {
+ leaf-list ospfv3-e-external-prefix-bits {
+ type identityref {
+ base ospfv3-e-external-prefix-option;
+ }
+ description
+ "OSPFv3 External-Prefix TLV bits list.";
+ }
+ description
+ "External prefix flags.";
+ }
+ leaf metric {
+ type ospf:ospf-metric;
+ description
+ "External prefix metric.";
+ }
+ uses ospfv3-lsa-prefix;
+ list sub-tlvs {
+ description
+ "External-Prefix TLV sub-TLVs.";
+ container ipv6-fwd-addr-sub-tlv {
+ description
+ "IPv6-Forwarding-Address sub-TLV for
+ E-AS-External-LSAs and E-NSSA-LSAs for the IPv6
+ address family.";
+ leaf forwarding-address {
+ type inet:ipv6-address;
+ description
+ "IPv6 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 for
+ E-AS-External-LSAs and E-NSSA-LSAs for the IPv4
+ address family.";
+ leaf forwarding-address {
+ type inet:ipv4-address;
+ description
+ "IPv4 forwarding address.";
+ }
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 3.11";
+ }
+ container route-tag-sub-tlv {
+ description
+ "Route-Tag sub-TLV.";
+ leaf route-tag {
+ type uint32;
+ description
+ "Route tag.";
+ }
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 3.12";
+ }
+ uses unknown-sub-tlv;
+ }
+ }
+ description
+ "External-Prefix TLV 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.";
+ leaf metric {
+ type ospf:ospf-metric;
+ description
+ "Intra-Area Prefix metric.";
+ }
+ uses ospfv3-lsa-prefix;
+ list sub-tlvs {
+ description
+ "Intra-Area-Prefix TLV sub-TLVs.";
+ uses unknown-sub-tlv;
+ }
+ }
+ description
+ "Intra-Area-Prefix TLV grouping.";
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 3.7";
+ }
+
+ grouping ipv6-link-local-addr-tlv {
+ container ipv6-link-local-addr-tlv {
+ description
+ "IPv6 Link-Local Address TLV.";
+ leaf link-local-address {
+ type inet:ipv6-address;
+ description
+ "IPv6 Link-Local address.";
+ }
+ list sub-tlvs {
+ description
+ "IPv6 Link-Local Address TLV sub-TLVs.";
+ uses unknown-sub-tlv;
+ }
+ }
+ description
+ "IPv6 Link-Local Address TLV grouping.";
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 3.8";
+ }
+
+ grouping ipv4-link-local-addr-tlv {
+ container ipv4-link-local-addr-tlv {
+ description
+ "IPv4 Link-Local Address TLV.";
+ leaf link-local-address {
+ type inet:ipv4-address;
+ description
+ "IPv4 Link-Local address.";
+ }
+ list sub-tlvs {
+ description
+ "IPv4 Link-Local Address TLV sub-TLVs.";
+ uses unknown-sub-tlv;
+ }
+ }
+ description
+ "IPv4 Link-Local Address TLV 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 LSA Sparse Mode to
+ support incrementally deployed features as described in
+ Section 6.2 of RFC 8362.";
+ leaf extended-lsa-support {
+ type boolean;
+ default "false";
+ description
+ "Enable OSPFv3 Extended LSA support for the OSPFv3
+ domain.";
+ reference
+ "RFC 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. E-AS-External-LSAs
+ are flooded into all OSPFv3 regular areas (i.e., not
+ a stub or an 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 LSA Sparse
+ Mode to support incrementally deployed features as
+ described in 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 OSPFv3 Link-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 to E-Link-LSAs.";
+ }
+ description
+ "E-Link-LSA contents.";
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 4.7";
+ leaf rtr-priority {
+ type uint8;
+ description
+ "Router priority for the interface.";
+ }
+ uses ospf:ospfv3-lsa-options;
+ list e-link-tlvs {
+ description
+ "E-Link-LSA TLVs.";
+ container unknown-tlv {
+ uses ospf:tlv;
+ description
+ "Unknown E-Link TLV.";
+ }
+ uses intra-area-prefix-tlv;
+ uses ipv6-link-local-addr-tlv;
+ uses 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 OSPFv3 Area-scoped Extended LSAs
+ to the operational state for an area 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 OSPFv3 E-Router-LSAs.";
+ }
+ description
+ "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.";
+ container unknown-tlv {
+ uses ospf:tlv;
+ description
+ "Unknown E-Router TLV.";
+ }
+ container link-tlv {
+ description
+ "E-Router-LSA TLV.";
+ leaf interface-id {
+ type uint32;
+ description
+ "Interface ID for link.";
+ }
+ leaf neighbor-interface-id {
+ type uint32;
+ description
+ "Neighbor's Interface ID for link.";
+ }
+ leaf neighbor-router-id {
+ type rt-types:router-id;
+ description
+ "Neighbor's Router ID for link.";
+ }
+ leaf type {
+ type ospf:router-link-type;
+ description
+ "Link type: 1 - Point-to-Point Link
+ 2 - Transit Network Link
+ 3 - Stub Network Link
+ 4 - Virtual Link.";
+ }
+ leaf metric {
+ type ospf:ospf-link-metric;
+ description
+ "Link metric.";
+ }
+ list sub-tlvs {
+ description
+ "Link TLV sub-TLVs.";
+ uses unknown-sub-tlv;
+ }
+ }
+ }
+ }
+ container e-network {
+ when "../../ospf:header/ospf:type = "
+ + "'ospfv3-e-lsa:ospfv3-e-network-lsa'" {
+ description
+ "Only applies to E-Network-LSAs.";
+ }
+ description
+ "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.";
+ container unknown-tlv {
+ uses ospf:tlv;
+ description
+ "Unknown E-Network TLV.";
+ }
+ container attached-router-tlv {
+ description
+ "Attached-Routers TLV.";
+ leaf-list adjacent-neighbor-router-id {
+ type rt-types:router-id;
+ description
+ "Adjacent neighbor's Router ID.";
+ }
+ }
+ }
+ }
+ container e-nssa {
+ when "../../ospf:header/ospf:type = "
+ + "'ospfv3-e-lsa:ospfv3-e-nssa-lsa'" {
+ description
+ "Only applies to E-NSSA-LSAs.";
+ }
+ description
+ "E-NSSA-LSA contents.";
+ list e-external-tlvs {
+ description
+ "E-NSSA-LSA TLVs.";
+ container unknown-tlv {
+ uses ospf:tlv;
+ description
+ "Unknown E-External TLV.";
+ }
+ uses external-prefix-tlv;
+ }
+ 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 to E-Inter-Area-Prefix-LSAs.";
+ }
+ description
+ "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.";
+ container unknown-tlv {
+ uses ospf:tlv;
+ description
+ "Unknown E-Inter-Area-Prefix TLV.";
+ }
+ container inter-prefix-tlv {
+ description
+ "Unknown E-Inter-Area-Prefix-LSA TLV.";
+ leaf metric {
+ type ospf:ospf-metric;
+ description
+ "Inter-Area Prefix metric.";
+ }
+ uses ospfv3-lsa-prefix;
+ list sub-tlvs {
+ description
+ "Inter-Area-Prefix TLV 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 to E-Inter-Area-Router-LSAs.";
+ }
+ description
+ "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.";
+ container unknown-tlv {
+ uses ospf:tlv;
+ description
+ "Unknown E-Inter-Area-Router TLV.";
+ }
+ container inter-router-tlv {
+ description
+ "Unknown E-Inter-Area-Router-LSA TLV.";
+ uses ospf:ospfv3-lsa-options;
+ leaf metric {
+ type ospf:ospf-metric;
+ description
+ "Inter-Area Router metric.";
+ }
+ leaf destination-router-id {
+ type rt-types:router-id;
+ description
+ "Destination Router ID.";
+ }
+ list sub-tlvs {
+ description
+ "Inter-Area-Router TLV 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 to E-Intra-Area-Prefix-LSAs.";
+ }
+ description
+ "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 State type.";
+ }
+ leaf referenced-link-state-id {
+ type uint32;
+ description
+ "Referenced Link State ID.";
+ }
+ leaf referenced-adv-router {
+ type rt-types:router-id;
+ description
+ "Referenced advertising router.";
+ }
+ list e-intra-prefix-tlvs {
+ description
+ "E-Intra-Area-Prefix-LSA TLVs.";
+ container unknown-tlv {
+ uses ospf:tlv;
+ description
+ "Unknown E-Intra-Area-Prefix 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 OSPFv3 AS-scoped Extended LSAs to
+ the operational state for an AS instance-level LSDB.";
+ container e-as-external {
+ when "../../ospf:header/ospf:type = "
+ + "'ospfv3-e-lsa:ospfv3-e-as-external-lsa'" {
+ description
+ "Only applies to E-AS-External-LSAs.";
+ }
+ description
+ "E-AS-External-LSA contents.";
+ list e-external-tlvs {
+ description
+ "E-AS-External-LSA TLVs.";
+ container unknown-tlv {
+ uses ospf:tlv;
+ description
+ "Unknown E-External TLV.";
+ }
+ uses external-prefix-tlv;
+ }
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 4.5";
+ }
+ }
+ }
+ <CODE ENDS>
+
+5. Security Considerations
+
+ The YANG module specified in this document defines a schema for data
+ that is designed to be accessed via network management protocols such
+ as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer
+ is the secure transport layer, and the mandatory-to-implement secure
+ transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer
+ is HTTPS, and the mandatory-to-implement secure transport is TLS
+ [RFC8446].
+
+ The Network Configuration Access Control Model (NACM) [RFC8341]
+ 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.
+
+ There are a number of data nodes defined in the "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.
+ These are the subtrees and data nodes and their sensitivity/
+ vulnerability:
+
+ /ospf:ospf/extended-lsa-support
+
+ /ospf:ospf/ospf:areas/ospf:area/extended-lsa-support
+
+ The ability to disable or enable OSPFv3 Extended LSA support can
+ result in a Denial-of-Service (DoS) attack, 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 possible partitioning of the
+ OSPFv3 routing domain. Refer to Section 6 of [RFC8362] for more
+ information on OSPFv3 Extended LSA compatibility.
+
+ 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 is thus important to control read access
+ (e.g., via get, get-config, or notification) to these data nodes.
+
+ 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.
+
+6. IANA Considerations
+
+ Per this document, IANA has registered the following URI in the "IETF
+ XML Registry" [RFC3688]:
+
+ URI: urn:ietf:params:xml:ns:yang:ietf-ospfv3-extended-lsa
+ Registrant Contact: The IESG.
+ XML: N/A; the requested URI is an XML namespace.
+
+ Per this document, IANA has registered the following YANG module in
+ the "YANG Module Names" registry [RFC6020]:
+
+ Name: ietf-ospfv3-extended-lsa
+ Maintained by IANA: N
+ Namespace: urn:ietf:params:xml:ns:yang:ietf-ospfv3-extended-lsa
+ Prefix: ospfv3-e-lsa
+ Reference: RFC 9587
+
+7. References
+
+7.1. Normative References
+
+ [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
+ DOI 10.17487/RFC3688, January 2004,
+ <https://www.rfc-editor.org/info/rfc3688>.
+
+ [RFC5340] Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF
+ for IPv6", RFC 5340, DOI 10.17487/RFC5340, July 2008,
+ <https://www.rfc-editor.org/info/rfc5340>.
+
+ [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for
+ the Network Configuration Protocol (NETCONF)", RFC 6020,
+ DOI 10.17487/RFC6020, October 2010,
+ <https://www.rfc-editor.org/info/rfc6020>.
+
+ [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
+ and A. Bierman, Ed., "Network Configuration Protocol
+ (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
+ <https://www.rfc-editor.org/info/rfc6241>.
+
+ [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure
+ Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011,
+ <https://www.rfc-editor.org/info/rfc6242>.
+
+ [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types",
+ RFC 6991, DOI 10.17487/RFC6991, July 2013,
+ <https://www.rfc-editor.org/info/rfc6991>.
+
+ [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
+ RFC 7950, DOI 10.17487/RFC7950, August 2016,
+ <https://www.rfc-editor.org/info/rfc7950>.
+
+ [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
+ Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017,
+ <https://www.rfc-editor.org/info/rfc8040>.
+
+ [RFC8294] Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger,
+ "Common YANG Data Types for the Routing Area", RFC 8294,
+ DOI 10.17487/RFC8294, December 2017,
+ <https://www.rfc-editor.org/info/rfc8294>.
+
+ [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration
+ Access Control Model", STD 91, RFC 8341,
+ DOI 10.17487/RFC8341, March 2018,
+ <https://www.rfc-editor.org/info/rfc8341>.
+
+ [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
+ and R. Wilton, "Network Management Datastore Architecture
+ (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018,
+ <https://www.rfc-editor.org/info/rfc8342>.
+
+ [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for
+ Routing Management (NMDA Version)", RFC 8349,
+ DOI 10.17487/RFC8349, March 2018,
+ <https://www.rfc-editor.org/info/rfc8349>.
+
+ [RFC8362] Lindem, A., Roy, A., Goethals, D., Reddy Vallem, V., and
+ F. Baker, "OSPFv3 Link State Advertisement (LSA)
+ Extensibility", RFC 8362, DOI 10.17487/RFC8362, April
+ 2018, <https://www.rfc-editor.org/info/rfc8362>.
+
+ [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol
+ Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
+ <https://www.rfc-editor.org/info/rfc8446>.
+
+ [RFC9129] Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem,
+ "YANG Data Model for the OSPF Protocol", RFC 9129,
+ DOI 10.17487/RFC9129, October 2022,
+ <https://www.rfc-editor.org/info/rfc9129>.
+
+ [W3C.REC-xml-20081126]
+ Bray, T., Paoli, J., Sperberg-McQueen, C. M., Maler, E.,
+ and F. Yergeau, "Extensible Markup Language (XML) 1.0
+ (Fifth Edition)", W3C Recommendation REC-xml-20081126,
+ November 2008, <https://www.w3.org/TR/xml/>.
+
+7.2. Informative References
+
+ [RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG",
+ RFC 7951, DOI 10.17487/RFC7951, August 2016,
+ <https://www.rfc-editor.org/info/rfc7951>.
+
+ [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
+ BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
+ <https://www.rfc-editor.org/info/rfc8340>.
+
+ [RFC8792] Watsen, K., Auerswald, E., Farrel, A., and Q. Wu,
+ "Handling Long Lines in Content of Internet-Drafts and
+ RFCs", RFC 8792, DOI 10.17487/RFC8792, June 2020,
+ <https://www.rfc-editor.org/info/rfc8792>.
+
+Appendix A. Configuration Example
+
+ The following is an XML example (per [W3C.REC-xml-20081126]) using
+ the YANG data model for OSPFv3 Extended LSAs. (Line breaks are used
+ per [RFC8792] and are for display purposes only.)
+
+ Note: '\' line wrapping per 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>
+
+ The following is the same example using JSON format [RFC7951].
+
+ {
+ "routing": {
+ "router-id": "192.0.2.1",
+ "control-plane-protocols": {
+ "control-plane-protocol": {
+ "type": "ospf:ospfv3",
+ "name": "\"OSPFv3\"",
+ "ospf": {
+ "extended-lsa-support": true
+ }
+ }
+ }
+ }
+ }
+
+Acknowledgements
+
+ The YANG data model defined in this document was developed using the
+ suite of YANG tools written and maintained by numerous authors.
+
+ Thanks much to Tom Petch, Mahesh Jethanandani, Renato Westphal,
+ Victoria Pritchard, Reshad Rahman, and Chris Hopps for their review
+ and comments.
+
+Authors' Addresses
+
+ Acee Lindem
+ LabN Consulting, L.L.C.
+ 301 Midenhall Way
+ Cary, NC 27513
+ United States of America
+ Email: acee.ietf@gmail.com
+
+
+ Sharmila Palani
+ Microsoft
+ 1 Microsoft Way
+ Redmond, WA 98052
+ United States of America
+ Email: sharmila.palani@microsoft.com
+
+
+ Yingzhen Qu
+ Futurewei Technologies
+ 2330 Central Expressway
+ Santa Clara, CA 95050
+ United States of America
+ Email: yingzhen.ietf@gmail.com