diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ospfv3-extended-lsa@2023-06-08.yang b/experimental/ietf-extracted-YANG-modules/ietf-ospfv3-extended-lsa@2023-06-26.yang
similarity index 60%
rename from experimental/ietf-extracted-YANG-modules/ietf-ospfv3-extended-lsa@2023-06-08.yang
rename to experimental/ietf-extracted-YANG-modules/ietf-ospfv3-extended-lsa@2023-06-26.yang
index 9c210f2b3..f2711a0d4 100644
--- a/experimental/ietf-extracted-YANG-modules/ietf-ospfv3-extended-lsa@2023-06-08.yang
+++ b/experimental/ietf-extracted-YANG-modules/ietf-ospfv3-extended-lsa@2023-06-26.yang
@@ -7,25 +7,27 @@ module ietf-ospfv3-extended-lsa {
import ietf-routing-types {
prefix "rt-types";
- reference "RFC 8294 - Common YANG Data Types for the
- Routing Area";
+ reference
+ "RFC 8294: Common YANG Data Types for the Routing Area";
}
import ietf-inet-types {
prefix "inet";
- reference "RFC 6991 - Common YANG Data Types";
+ reference
+ "RFC 6991: Common YANG Data Types";
}
import ietf-routing {
prefix "rt";
- reference "RFC 8349 - A YANG Data Model for Routing
- Management (NMDA Version)";
+ reference
+ "RFC 8349: A YANG Data Model for Routing
+ Management (NMDA Version)";
}
import ietf-ospf {
prefix "ospf";
- reference "RFC 9129 - A YANG Data Model for OSPF
- Protocol";
+ reference
+ "RFC 9129: A YANG Data Model for OSPF Protocol";
}
organization
@@ -34,6 +36,7 @@ module ietf-ospfv3-extended-lsa {
contact
"WG Web:
WG List:
+
Author: Acee Lindem
Author: Sharmila Palani
@@ -73,13 +76,12 @@ module ietf-ospfv3-extended-lsa {
reference "RFC XXXX - YANG Model for OSPFv3 Extended LSAs";
- revision 2023-06-08 {
+ revision 2023-06-26 {
description
"Initial revision.";
reference
- "RFC XXXX: A YANG Data Model for OSPFv3 Extended LSAs.";
+ "RFC XXXX: YANG Data Model for OSPFv3 Extended LSAs.";
}
-
/*
* OSPFv3 Extend LSA Type Identities
*/
@@ -87,55 +89,63 @@ module ietf-ospfv3-extended-lsa {
base ospf:ospfv3-lsa-type;
description
"OSPFv3 Extended Router LSA - Type 0xA021";
- reference "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Section 4.1";
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 4.1";
}
identity ospfv3-e-network-lsa {
base ospf:ospfv3-lsa-type;
description
"OSPFv3 Extended Network LSA - Type 0xA022";
- reference "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Section 4.2";
+ 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";
- reference "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Section 4.3 and Section 4.4";
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 4.3 and Section 4.4";
}
identity ospfv3-e-inter-area-prefix-lsa {
base ospfv3-e-summary-lsa-type;
description
"OSPFv3 Extended Inter-area Prefix LSA - Type 0xA023";
- reference "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Section 4.3";
+ 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 Extended Inter-area Router LSA - Type 0xA024";
- reference "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Section 4.3";
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 4.3";
}
identity ospfv3-e-external-lsa-type {
base ospf:ospfv3-lsa-type;
description
"OSPFv3 Extended External LSA types";
- reference "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Section 4.5 and Section 4.6";
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 4.5 and Section 4.6";
}
+
identity ospfv3-e-as-external-lsa {
base ospfv3-e-external-lsa-type;
description
"OSPFv3 Extended AS-External LSA - Type 0xC025";
- reference "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Section 4.5";
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 4.5";
}
identity ospfv3-e-nssa-lsa {
@@ -143,31 +153,35 @@ module ietf-ospfv3-extended-lsa {
description
"OSPFv3 Extended Not-So-Stubby-Area (NSSA) LSA -
Type 0xA027";
- reference "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Section 4.6";
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 4.6";
}
identity ospfv3-e-link-lsa {
base ospf:ospfv3-lsa-type;
description
"OSPFv3 Extended Link LSA - Type 0x8028";
- reference "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Section 4.7";
+ 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 Extended Intra-area Prefix LSA - Type 0xA029";
- reference "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Section 4.8";
+ 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";
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 3.1";
}
identity nu-bit {
@@ -175,16 +189,19 @@ module ietf-ospfv3-extended-lsa {
description
"When set, the prefix should be excluded
from IPv6 unicast calculations.";
- reference "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Section 3.1";
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 3.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";
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 3.1";
}
identity p-bit {
@@ -193,8 +210,9 @@ module ietf-ospfv3-extended-lsa {
"When set, the NSSA area prefix should be
translated to an AS External LSA and advertised
by the translating NSSA Border Router.";
- reference "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Section 3.1";
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 3.1";
}
identity dn-bit {
@@ -203,8 +221,9 @@ module ietf-ospfv3-extended-lsa {
"When set, the inter-area-prefix LSA or
AS-external LSA prefix has been advertised as an
L3VPN prefix.";
- reference "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Section 3.1";
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 3.1";
}
identity n-bit {
@@ -212,15 +231,17 @@ module ietf-ospfv3-extended-lsa {
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";
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 3.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";
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 3.6";
}
identity e-bit {
@@ -228,8 +249,9 @@ module ietf-ospfv3-extended-lsa {
description
"When set, the metric specified is a Type 2
external metric.";
- reference "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Section 3.6";
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 3.6";
}
grouping unknown-sub-tlv {
@@ -237,10 +259,12 @@ module ietf-ospfv3-extended-lsa {
"Unknown TLV grouping";
container unknown-sub-tlv {
uses ospf:tlv;
- description "Unknown External TLV Sub-TLV";
+ description
+ "Unknown External TLV Sub-TLV";
}
- reference "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Section 6.3";
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 6.3";
}
grouping ospfv3-lsa-prefix {
@@ -262,90 +286,30 @@ module ietf-ospfv3-extended-lsa {
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";
+ description
+ "Prefix options.";
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 3.1";
}
leaf prefix-length {
type uint8 {
range "0..128";
}
- description "Prefix length.";
- }
- reference "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Section 3";
- }
-
- grouping ipv6-fwd-addr-sub-tlv {
- container ipv6-fwd-addr-sub-tlv {
- description
- "IPv6 Forwarding Address Sub-TLV";
- leaf ipv6-fwd-addr-sub-tlv-length {
- type uint16;
- description
- "IPv6 Forwarding Addrss Sub-TLV Length - 16
- for IPv6 address";
- }
- leaf forwarding-address {
- type inet:ipv6-address;
- description
- "Forwarding address";
- }
- }
- description
- "IPv6 Forwarding Address Sub-TLV grouping";
- reference "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Section 3.10";
- }
-
- grouping ipv4-fwd-addr-sub-tlv {
- container ipv4-fwd-addr-sub-tlv {
- description
- "IPv4 Forwarding Address Sub-TLV";
- leaf ipv4-fwd-addr-sub-tlv-length {
- type uint16;
- description
- "IPv4 Forwarding Addrss Sub-TLV Length - 4
- for IPv4 address";
- }
- leaf forwarding-address {
- type inet:ipv4-address;
- description
- "Forwarding address";
- }
- }
- description
- "IPv4 Forwarding Address Sub-TLV grouping";
- reference "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Section 3.11";
- }
-
- grouping route-tag-sub-tlv {
- container route-tag-sub-tlv {
description
- "Route Tag Sub-TLV";
- leaf route-tag-sub-tlv-length {
- type uint16;
- description
- "Route Tag Sub-TLV Length - 4 for 32-bit tag";
- }
- leaf route-tag {
- type uint32;
- description
- "Route Tag";
- }
+ "Prefix length.";
}
- description
- "Route Tag Sub-TLV grouping";
- reference "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Section 3.12";
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 3";
}
grouping external-prefix-tlv {
container external-prefix-tlv {
- description "External Prefix LSA TLV";
- leaf external-prefix-tlv-length {
+ description
+ "External Prefix LSA TLV";
+ leaf length {
type uint16;
description
"External Prefix TLV Length - Variable dependent
@@ -356,32 +320,91 @@ module ietf-ospfv3-extended-lsa {
type identityref {
base ospfv3-e-external-prefix-option;
}
- description "OSPFv3 external-prefix TLV bits list.";
+ description
+ "OSPFv3 external-prefix TLV bits list.";
}
- description "External Prefix Flags";
+ description
+ "External Prefix Flags";
}
leaf metric {
type rt-types:uint24;
- description "External Prefix Metric";
+ description
+ "External Prefix Metric";
}
uses ospfv3-lsa-prefix;
list sub-tlvs {
- description "External Prefix TLV Sub-TLVs";
+ description
+ "External Prefix TLV Sub-TLVs";
+ container ipv6-fwd-addr-sub-tlv {
+ description
+ "IPv6 Forwarding address Sub-TLV for E-AS-External and
+ E-NSSA LSAs for the IPv6 address family.";
+ leaf length {
+ type uint16;
+ description
+ "IPv6 Forwarding Address Sub-TLV Length - 16
+ for IPv6 address";
+ }
+ 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 and
+ E-NSSA LSAs for the IPv4 address family.";
+ leaf length {
+ type uint16;
+ description
+ "IPv4 Forwarding Address Sub-TLV Length - 4
+ for IPv4 address";
+ }
+ 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 length {
+ type uint16;
+ description
+ "Route Tag Sub-TLV Length - 4 for 32-bit tag";
+ }
+ leaf route-tag {
+ type uint32;
+ description
+ "Route Tag";
+ }
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 3.12";
+ }
uses unknown-sub-tlv;
- uses ipv6-fwd-addr-sub-tlv;
- uses ipv4-fwd-addr-sub-tlv;
- uses route-tag-sub-tlv;
}
}
- description "External Prefix TLV Grouping";
- reference "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Section 3.6";
+ 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 intra-prefix-tlv-length {
+ description
+ "Intra-Area Prefix LSA TLV";
+ leaf length {
type uint16;
description
"Intra-Area Prefix TLV Length - Variable dependent
@@ -389,23 +412,28 @@ module ietf-ospfv3-extended-lsa {
}
leaf metric {
type rt-types:uint24;
- description "Intra-Area Prefix Metric";
+ description
+ "Intra-Area Prefix Metric";
}
uses ospfv3-lsa-prefix;
list sub-tlvs {
- description "Intra-Area Prefix TLV 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.4";
+ description
+ "Intra-Area Prefix TLV Grouping";
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 3.4";
}
grouping ipv6-link-local-tlv {
container ipv6-link-local-tlv {
- description "IPv6 Link-Local LSA TLV";
- leaf ipv6-link-local-tlv-length {
+ description
+ "IPv6 Link-Local LSA TLV";
+ leaf length {
type uint16;
description
"IPv6 Link-Local TLV Length - Variable dependent
@@ -417,19 +445,23 @@ module ietf-ospfv3-extended-lsa {
"IPv6 Link Local address";
}
list sub-tlvs {
- description "IPv6 Link Local TLV Sub-TLVs";
+ description
+ "IPv6 Link Local TLV Sub-TLVs";
uses unknown-sub-tlv;
}
}
- description "IPv6 Link-Local TLV Grouping";
- reference "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Section 3.8";
+ description
+ "IPv6 Link-Local TLV Grouping";
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 3.8";
}
grouping ipv4-link-local-tlv {
container ipv4-link-local-tlv {
- description "IPv4 Link-Local LSA TLV";
- leaf ipv4-link-local-tlv-length {
+ description
+ "IPv4 Link-Local LSA TLV";
+ leaf length {
type uint16;
description
"IPv4 Link-Local TLV Length - Variable dependent
@@ -441,69 +473,204 @@ module ietf-ospfv3-extended-lsa {
"IPv4 Link Local address";
}
list sub-tlvs {
- description "IPv4 Link Local TLV Sub-TLVs";
+ description
+ "IPv4 Link Local TLV Sub-TLVs";
uses unknown-sub-tlv;
}
}
- description "IPv4 Link-Local TLV Grouping";
- reference "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Section 3.9";
+ description
+ "IPv4 Link-Local TLV Grouping";
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 3.9";
}
- grouping ospfv3-e-lsa-area {
- description "Area scope OSPFv3 Extended LSAs.";
- reference "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Section 4";
+ /* 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.";
+ 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 B - ExtendedLSASupport";
+ }
+ }
+
+ 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
+ disabling AreaExtendedLSASupport for a regular
+ OSPFv3 area (not a Stub or NSSA area) when
+ ExtendedLSASupport is enabled is contradictory and
+ is prohibited.";
+ }
+ description
+ "Enable OSPFv3 Extended LSA Support for the OSPFv3
+ area. 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 - AreaExtendedLSASupport";
+ }
+ }
+ /*
+ * 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 Extended Link LSAs.";
+ }
+ description
+ "E-Link LSA";
+ 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-tlv;
+ uses ipv4-link-local-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 Link State
+ Database (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 Extended-Router LSAs";
+ description
+ "Only valid for OSPFv3 Extended-Router LSAs";
}
- description "OSPv3 Extended Router LSA";
- reference "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Section 4.1";
+ description
+ "OSPv3 Extended Router LSA";
+ 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";
+ description
+ "E-Router LSA TLVs";
container unknown-tlv {
uses ospf:tlv;
- description "Unknown E-Router TLV";
+ description
+ "Unknown E-Router TLV";
}
container link-tlv {
- description "E-Router LSA TLV";
- leaf link-tlv-length {
+ description
+ "E-Router LSA TLV";
+ leaf length {
type uint16;
description
"Link TLV Length - Variable dependent on sub-TLVs";
}
leaf interface-id {
type uint32;
- description "Interface ID for link";
+ description
+ "Interface ID for link";
}
leaf neighbor-interface-id {
type uint32;
- description "Neighbor's Interface ID for link";
+ description
+ "Neighbor's Interface ID for link";
}
leaf neighbor-router-id {
type rt-types:router-id;
- description "Neighbor's Router ID for link";
+ 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 Link
- 4 - Virtual Link";
+ description
+ "Link type: 1 - Point-to-Point Link
+ 2 - Transit Network Link
+ 3 - Stub Network Link Link
+ 4 - Virtual Link";
}
leaf metric {
type uint16;
- description "Link Metric";
+ description
+ "Link Metric";
}
list sub-tlvs {
- description "Link TLV Sub-TLVs";
+ description
+ "Link TLV Sub-TLVs";
uses unknown-sub-tlv;
}
}
@@ -516,19 +683,24 @@ module ietf-ospfv3-extended-lsa {
description
"Only applies to E-Network LSAs.";
}
- description "Extended Network LSA";
- reference "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Section 4.2";
+ description
+ "Extended Network LSA";
+ 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 {
+ description
+ "E-Network LSA TLVs";
+ container unknown-tlv {
uses ospf:tlv;
- description "Unknown E-Network TLV";
+ description
+ "Unknown E-Network TLV";
}
container attached-router-tlv {
- description "Attached Router TLV";
- leaf attached-router-tlv-length {
+ description
+ "Attached Router TLV";
+ leaf length {
type uint16;
description
"Attached Router TLV Length - Variable dependent
@@ -536,34 +708,64 @@ module ietf-ospfv3-extended-lsa {
}
leaf-list Adjacent-neighbor-router-id {
type rt-types:router-id;
- description "Adjacent Neighbor's Router ID";
+ description
+ "Adjacent Neighbor's Router ID";
}
list sub-tlvs {
- description "Attached Router TLV Sub-TLVs";
+ description
+ "Attached Router TLV Sub-TLVs";
uses unknown-sub-tlv;
}
}
}
}
+ container e-nssa {
+ when "../../ospf:header/ospf:type = "
+ + "'ospfv3-e-lsa:ospfv3-e-nssa-lsa'" {
+ description
+ "Only applies to E-NSSA LSAs.";
+ }
+ list e-external-tlvs {
+ description
+ "E-NSSA LSA TLVs";
+ container unknown-tlv {
+ uses ospf:tlv;
+ description
+ "Unknown E-External 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 to E-Inter-Area-Prefix LSAs.";
}
- description "Extended Inter-Area Prefix LSA";
- reference "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Section 4.3";
+ description
+ "Extended Inter-Area Prefix LSA";
+ 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 {
+ description
+ "E-Inter-Area-Prefix LSA TLVs";
+ container unknown-tlv {
uses ospf:tlv;
- description "Unknown E-Inter-Area-Prefix TLV";
+ description
+ "Unknown E-Inter-Area-Prefix TLV";
}
container inter-prefix-tlv {
- description "Unknown E-Inter-Area-Prefix LSA TLV";
- leaf inter-prefix-tlv-length {
+ description
+ "Unknown E-Inter-Area-Prefix LSA TLV";
+ leaf length {
type uint16;
description
"Inter-Area-Prefix TLV Length - Variable dependent
@@ -571,11 +773,13 @@ module ietf-ospfv3-extended-lsa {
}
leaf metric {
type rt-types:uint24;
- description "Inter-Area Prefix Metric";
+ description
+ "Inter-Area Prefix Metric";
}
uses ospfv3-lsa-prefix;
list sub-tlvs {
- description "Inter-Area Prefix TLV Sub-TLVs";
+ description
+ "Inter-Area Prefix TLV Sub-TLVs";
uses unknown-sub-tlv;
}
}
@@ -588,18 +792,23 @@ module ietf-ospfv3-extended-lsa {
description
"Only applies to E-Inter-Area-Router LSAs.";
}
- description "Extended Inter-Area Router LSA";
- reference "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Section 4.4";
+ description
+ "Extended Inter-Area Router LSA";
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 4.4";
list e-inter-router-tlvs {
- description "E-Inter-Area-Router LSA TLVs";
+ description
+ "E-Inter-Area-Router LSA TLVs";
container unknown-tlv {
uses ospf:tlv;
- description "Unknown E-Inter-Area-Router TLV";
+ description
+ "Unknown E-Inter-Area-Router TLV";
}
container inter-router-tlv {
- description "Unknown E-Inter-Area-Router LSA TLV";
- leaf inter-router-tlv-length {
+ description
+ "Unknown E-Inter-Area-Router LSA TLV";
+ leaf length {
type uint16;
description
"Inter-Area-Router TLV Length - Variable dependent
@@ -609,14 +818,17 @@ module ietf-ospfv3-extended-lsa {
uses ospf:ospfv3-lsa-options;
leaf metric {
type rt-types:uint24;
- description "Inter-Area Router Metric";
+ description
+ "Inter-Area Router Metric";
}
leaf destination-router-id {
type rt-types:router-id;
- description "Destination Router ID";
+ description
+ "Destination Router ID";
}
list sub-tlvs {
- description "Inter-Area Router TLV Sub-TLVs";
+ description
+ "Inter-Area Router TLV Sub-TLVs";
uses unknown-sub-tlv;
}
}
@@ -629,12 +841,15 @@ module ietf-ospfv3-extended-lsa {
description
"Only applies to E-Intra-Area-Prefix LSAs.";
}
- description "E-Intra-Area-Prefix LSA";
- reference "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Section 4.8";
+ description
+ "E-Intra-Area-Prefix LSA";
+ reference
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 4.8";
leaf referenced-ls-type {
type uint16;
- description "Referenced Link State type";
+ description
+ "Referenced Link State type";
}
leaf referenced-link-state-id {
type uint32;
@@ -647,18 +862,34 @@ module ietf-ospfv3-extended-lsa {
"Referenced Advertising Router";
}
list e-intra-prefix-tlvs {
- description "E-Intra-Area-Prefix LSA TLVs";
+ description
+ "E-Intra-Area-Prefix LSA TLVs";
container unknown-tlv {
uses ospf:tlv;
- description "Unknown E-Intra-Area-Prefix TLV";
+ description
+ "Unknown E-Intra-Area-Prefix TLV";
}
uses intra-area-prefix-tlv;
}
}
}
- grouping ospfv3-e-lsa-as {
- description "AS scope OSPFv3 Extended LSAs.";
+ 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 Link
+ State Database (LSDB).";
+
container e-as-external {
when "../../ospf:header/ospf:type = "
+ "'ospfv3-e-lsa:ospfv3-e-as-external-lsa'" {
@@ -666,173 +897,20 @@ module ietf-ospfv3-extended-lsa {
"Only applies to E-AS-external LSAs.";
}
list e-external-tlvs {
- description "E-External LSA TLVs";
- container unknown-tlv {
- uses ospf:tlv;
- description "Unknown E-External TLV";
- }
- uses external-prefix-tlv;
- }
- description "E-AS-External LSA.";
- reference "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Section 4.5";
- }
-
- container e-nssa {
- when "../../ospf:header/ospf:type = "
- + "'ospfv3-e-lsa:ospfv3-e-nssa-lsa'" {
description
- "Only applies to E-NSSA LSAs.";
- }
- list e-external-tlvs {
- description "E-NSSA LSA TLVs";
+ "E-External LSA TLVs";
container unknown-tlv {
uses ospf:tlv;
- description "Unknown E-External TLV";
+ description
+ "Unknown E-External TLV";
}
uses external-prefix-tlv;
}
- description "E-NSSA LSA.";
- reference "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Section 4.6";
- }
- }
-
- grouping ospfv3-e-lsa-link {
- description "Link scope OSPFv3 Extended LSAs.";
- container e-link {
- when "../../ospf:header/ospf:type = "
- + "'ospfv3-e-lsa:ospfv3-e-link-lsa'" {
- description
- "Only applies to Extended Link LSAs.";
- }
- description "E-Link LSA";
- 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-tlv;
- uses ipv4-link-local-tlv;
- }
- }
- }
-
- /* 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 configuration
- with extended LSA support.";
- 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 B - ExtendedLSASupport";
- }
- }
-
- 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 area configuration
- when used.";
- }
- description
- "This augments the OSPFv3 protocol area
- 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
- disabling AreaExtendedLSASupport for a regular
- OSPFv3 area (not a Stub or NSSA area) when
- ExtendedLSASupport is enabled is contradictory and
- is prohibited.";
- }
description
- "Enable OSPFv3 Extended LSA Support for the OSPFv3
- area. If not specified, Extended LSA support status
- is inherited from the instance level configuration.";
+ "E-AS-External LSA.";
reference
- "RFC 8362 - OSPFv3 Link State Advertisement (LSA)
- Extensibility, Appendix B - AreaExtendedLSASupport";
- }
- }
-
- /*
- * 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
- "OSPFv3 Link-Scoped Extended LSAs";
-
- uses ospfv3-e-lsa-link;
- }
-
- 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
- "OSPFv3 Area-Scoped Extended LSAs";
-
- uses ospfv3-e-lsa-area;
- }
-
- 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.";
+ "RFC 8362: OSPFv3 Link State Advertisement (LSA)
+ Extensibility, Section 4.5";
}
- description
- "OSPFv3 AS-Scoped Extended LSAs";
-
- uses ospfv3-e-lsa-as;
}
}