| rfc9587v1.txt | rfc9587.txt | |||
|---|---|---|---|---|
| skipping to change at line 69 ¶ | skipping to change at line 69 ¶ | |||
| 7.2. Informative References | 7.2. Informative References | |||
| Appendix A. Configuration Example | Appendix A. Configuration Example | |||
| Acknowledgements | Acknowledgements | |||
| Authors' Addresses | Authors' Addresses | |||
| 1. Overview | 1. Overview | |||
| YANG [RFC7950] is a data definition language used to define the | YANG [RFC7950] is a data definition language used to define the | |||
| contents of a conceptual datastore that allows networked devices to | contents of a conceptual datastore that allows networked devices to | |||
| be managed using NETCONF [RFC6241]. YANG is proving relevant beyond | be managed using NETCONF [RFC6241]. YANG is proving relevant beyond | |||
| its initial confines as bindings to other interfaces (e.g., ReST) and | its initial confines as bindings to other interfaces (e.g., RESTCONF | |||
| encodings other than XML (e.g., JSON) are being defined. | [RFC8040]) and encodings other than XML (e.g., JSON) are being | |||
| Furthermore, YANG data models can be used as the basis for | defined. Furthermore, YANG data models can be used as the basis for | |||
| implementation of other interfaces, such as Command-Line Interfaces | implementation of other interfaces, such as Command-Line Interfaces | |||
| (CLIs) and programmatic APIs. | (CLIs) and programmatic APIs. | |||
| This document defines a YANG data model augmenting the IETF OSPF YANG | This document defines a YANG data model augmenting the IETF OSPF YANG | |||
| data model [RFC9129], which itself augments [RFC8349], to provide | data model [RFC9129], which itself augments [RFC8349], to provide | |||
| support for configuration and operational state for OSPFv3 Extended | support for configuration and operational state for OSPFv3 Extended | |||
| Link State Advertisements (LSAs) as defined in [RFC8362]. | Link State Advertisements (LSAs) as defined in [RFC8362]. | |||
| The YANG module specified in this document conforms to the Network | The YANG module specified in this document conforms to the Network | |||
| Management Datastore Architecture (NMDA) [RFC8342]. | Management Datastore Architecture (NMDA) [RFC8342]. | |||
| skipping to change at line 138 ¶ | skipping to change at line 138 ¶ | |||
| +--ro intra-prefix-tlv | +--ro intra-prefix-tlv | |||
| | +--ro metric? ospf:ospf-metric | | +--ro metric? ospf:ospf-metric | |||
| | +--ro prefix? inet:ip-prefix | | +--ro prefix? inet:ip-prefix | |||
| | +--ro prefix-options | | +--ro prefix-options | |||
| | | +--ro prefix-options* identityref | | | +--ro prefix-options* identityref | |||
| | +--ro sub-tlvs* [] | | +--ro sub-tlvs* [] | |||
| | +--ro unknown-sub-tlv | | +--ro unknown-sub-tlv | |||
| | +--ro type? uint16 | | +--ro type? uint16 | |||
| | +--ro length? uint16 | | +--ro length? uint16 | |||
| | +--ro value? yang:hex-string | | +--ro value? yang:hex-string | |||
| +--ro ipv6-link-local-tlv | +--ro ipv6-link-local-addr-tlv | |||
| | +--ro link-local-address? inet:ipv6-address | | +--ro link-local-address? inet:ipv6-address | |||
| | +--ro sub-tlvs* [] | | +--ro sub-tlvs* [] | |||
| | +--ro unknown-sub-tlv | | +--ro unknown-sub-tlv | |||
| | +--ro type? uint16 | | +--ro type? uint16 | |||
| | +--ro length? uint16 | | +--ro length? uint16 | |||
| | +--ro value? yang:hex-string | | +--ro value? yang:hex-string | |||
| +--ro ipv4-link-local-tlv | +--ro ipv4-link-local-addr-tlv | |||
| +--ro link-local-address? inet:ipv4-address | +--ro link-local-address? inet:ipv4-address | |||
| +--ro sub-tlvs* [] | +--ro sub-tlvs* [] | |||
| +--ro unknown-sub-tlv | +--ro unknown-sub-tlv | |||
| +--ro type? uint16 | +--ro type? uint16 | |||
| +--ro length? uint16 | +--ro length? uint16 | |||
| +--ro value? yang:hex-string | +--ro value? yang:hex-string | |||
| augment /rt:routing/rt:control-plane-protocols | augment /rt:routing/rt:control-plane-protocols | |||
| /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | |||
| /ospf:database/ospf:area-scope-lsa-type | /ospf:database/ospf:area-scope-lsa-type | |||
| /ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version | /ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version | |||
| skipping to change at line 295 ¶ | skipping to change at line 295 ¶ | |||
| | +--ro forwarding-address? inet:ipv4-address | | +--ro forwarding-address? inet:ipv4-address | |||
| +--ro route-tag-sub-tlv | +--ro route-tag-sub-tlv | |||
| | +--ro route-tag? uint32 | | +--ro route-tag? uint32 | |||
| +--ro unknown-sub-tlv | +--ro unknown-sub-tlv | |||
| +--ro type? uint16 | +--ro type? uint16 | |||
| +--ro length? uint16 | +--ro length? uint16 | |||
| +--ro value? yang:hex-string | +--ro value? yang:hex-string | |||
| 4. OSPFv3 Extended LSA YANG Module | 4. OSPFv3 Extended LSA YANG Module | |||
| The "ietf-ospfv3-extended-lsa.yang" module defined in this document | The following RFCs are not referenced in the document text but are | |||
| imports typedefs from [RFC8294] and [RFC6991] (which are not | referenced in the "ietf-ospfv3-extended-lsa.yang" module: [RFC6991] | |||
| otherwise referenced in the document text) and from [RFC8349] and | and [RFC8294]. | |||
| [RFC9129]. This document also references [RFC8362] and [RFC5340]. | ||||
| <CODE BEGINS> file "ietf-ospfv3-extended-lsa@2024-05-16.yang" | <CODE BEGINS> file "ietf-ospfv3-extended-lsa@2024-05-16.yang" | |||
| module ietf-ospfv3-extended-lsa { | module ietf-ospfv3-extended-lsa { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-ospfv3-extended-lsa"; | namespace "urn:ietf:params:xml:ns:yang:ietf-ospfv3-extended-lsa"; | |||
| prefix ospfv3-e-lsa; | prefix ospfv3-e-lsa; | |||
| import ietf-routing-types { | import ietf-routing-types { | |||
| prefix rt-types; | prefix rt-types; | |||
| reference | reference | |||
| skipping to change at line 383 ¶ | skipping to change at line 382 ¶ | |||
| Advertisements (LSAs)"; | Advertisements (LSAs)"; | |||
| } | } | |||
| /* | /* | |||
| * OSPFv3 Extended LSA Type Identities | * OSPFv3 Extended LSA Type Identities | |||
| */ | */ | |||
| identity ospfv3-e-router-lsa { | identity ospfv3-e-router-lsa { | |||
| base ospf:ospfv3-lsa-type; | base ospf:ospfv3-lsa-type; | |||
| description | description | |||
| "OSPFv3 Extended Router-LSA - Type 0xA021."; | "OSPFv3 E-Router-LSA - Type 0xA021."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.1"; | Extensibility, Section 4.1"; | |||
| } | } | |||
| identity ospfv3-e-network-lsa { | identity ospfv3-e-network-lsa { | |||
| base ospf:ospfv3-lsa-type; | base ospf:ospfv3-lsa-type; | |||
| description | description | |||
| "OSPFv3 Extended Network-LSA - Type 0xA022."; | "OSPFv3 E-Network-LSA - Type 0xA022."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.2"; | Extensibility, Section 4.2"; | |||
| } | } | |||
| identity ospfv3-e-summary-lsa-type { | identity ospfv3-e-summary-lsa-type { | |||
| base ospf:ospfv3-lsa-type; | base ospf:ospfv3-lsa-type; | |||
| description | description | |||
| "OSPFv3 Extended Summary LSA types."; | "OSPFv3 Extended Summary LSA types: | |||
| E-Inter-Area-Prefix-LSA and E-Inter-Area-Router-LSA."; | ||||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Sections 4.3 and 4.4"; | Extensibility, Sections 4.3 and 4.4"; | |||
| } | } | |||
| identity ospfv3-e-inter-area-prefix-lsa { | identity ospfv3-e-inter-area-prefix-lsa { | |||
| base ospfv3-e-summary-lsa-type; | base ospfv3-e-summary-lsa-type; | |||
| description | description | |||
| "OSPFv3 Extended Inter-Area-Prefix-LSA - Type 0xA023."; | "OSPFv3 E-Inter-Area-Prefix-LSA - Type 0xA023."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.3"; | Extensibility, Section 4.3"; | |||
| } | } | |||
| identity ospfv3-e-inter-area-router-lsa { | identity ospfv3-e-inter-area-router-lsa { | |||
| base ospfv3-e-summary-lsa-type; | base ospfv3-e-summary-lsa-type; | |||
| description | description | |||
| "OSPFv3 Extended Inter-Area-Router-LSA - Type 0xA024."; | "OSPFv3 E-Inter-Area-Router-LSA - Type 0xA024."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.4"; | Extensibility, Section 4.4"; | |||
| } | } | |||
| identity ospfv3-e-external-lsa-type { | identity ospfv3-e-external-lsa-type { | |||
| base ospf:ospfv3-lsa-type; | base ospf:ospfv3-lsa-type; | |||
| description | description | |||
| "OSPFv3 Extended External LSA types."; | "OSPFv3 Extended External LSA types: | |||
| E-AS-External-LSA and E-NSSA-LSA (where | ||||
| NSSA expands to Not-So-Stubby-Area)."; | ||||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Sections 4.5 and 4.6"; | Extensibility, Sections 4.5 and 4.6"; | |||
| } | } | |||
| identity ospfv3-e-as-external-lsa { | identity ospfv3-e-as-external-lsa { | |||
| base ospfv3-e-external-lsa-type; | base ospfv3-e-external-lsa-type; | |||
| description | description | |||
| "OSPFv3 Extended AS-External-LSA - Type 0xC025."; | "OSPFv3 E-AS-External-LSA - Type 0xC025."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.5"; | Extensibility, Section 4.5"; | |||
| } | } | |||
| identity ospfv3-e-nssa-lsa { | identity ospfv3-e-nssa-lsa { | |||
| base ospfv3-e-external-lsa-type; | base ospfv3-e-external-lsa-type; | |||
| description | description | |||
| "OSPFv3 Extended Not-So-Stubby Area (NSSA) LSA - | "OSPFv3 E-NSSA-LSA - Type 0xA027."; | |||
| Type 0xA027."; | ||||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.6"; | Extensibility, Section 4.6"; | |||
| } | } | |||
| identity ospfv3-e-link-lsa { | identity ospfv3-e-link-lsa { | |||
| base ospf:ospfv3-lsa-type; | base ospf:ospfv3-lsa-type; | |||
| description | description | |||
| "OSPFv3 Extended Link LSA - Type 0x8028."; | "OSPFv3 E-Link-LSA - Type 0x8028."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.7"; | Extensibility, Section 4.7"; | |||
| } | } | |||
| identity ospfv3-e-intra-area-prefix-lsa { | identity ospfv3-e-intra-area-prefix-lsa { | |||
| base ospf:ospfv3-lsa-type; | base ospf:ospfv3-lsa-type; | |||
| description | description | |||
| "OSPFv3 Extended Intra-Area-Prefix-LSA - Type 0xA029."; | "OSPFv3 E-Intra-Area-Prefix-LSA - Type 0xA029."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.8"; | Extensibility, Section 4.8"; | |||
| } | } | |||
| identity ospfv3-e-prefix-option { | identity ospfv3-e-prefix-option { | |||
| description | description | |||
| "Base identity for OSPFv3 prefix options."; | "Base identity for OSPFv3 prefix options."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| skipping to change at line 494 ¶ | skipping to change at line 495 ¶ | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.1 | Extensibility, Section 3.1 | |||
| RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; | RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; | |||
| } | } | |||
| identity la-bit { | identity la-bit { | |||
| base ospfv3-e-prefix-option; | base ospfv3-e-prefix-option; | |||
| description | description | |||
| "When set, the prefix is actually an IPv6 interface | "When set, the prefix is actually an IPv6 interface | |||
| address of the Advertising Router."; | address of the advertising router."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.1 | Extensibility, Section 3.1 | |||
| RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; | RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; | |||
| } | } | |||
| identity p-bit { | identity p-bit { | |||
| base ospfv3-e-prefix-option; | base ospfv3-e-prefix-option; | |||
| description | description | |||
| "When set, the NSSA area prefix should be | "When set, the NSSA prefix should be translated to an | |||
| translated to an AS-External-LSA and advertised | E-AS-External-LSA and advertised by the translating | |||
| by the translating NSSA Border Router."; | NSSA Border Router."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.1 | Extensibility, Section 3.1 | |||
| RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; | RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; | |||
| } | } | |||
| identity dn-bit { | identity dn-bit { | |||
| base ospfv3-e-prefix-option; | base ospfv3-e-prefix-option; | |||
| description | description | |||
| "When set, the Inter-Area-Prefix-LSA or | "When set, the E-Inter-Area-Prefix-LSA or | |||
| AS-External-LSA prefix has been advertised as an | E-AS-External-LSA prefix has been advertised as an | |||
| L3VPN prefix."; | L3VPN prefix."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.1 | Extensibility, Section 3.1 | |||
| RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; | RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; | |||
| } | } | |||
| identity n-bit { | identity n-bit { | |||
| base ospfv3-e-prefix-option; | base ospfv3-e-prefix-option; | |||
| description | description | |||
| skipping to change at line 697 ¶ | skipping to change at line 698 ¶ | |||
| uses unknown-sub-tlv; | uses unknown-sub-tlv; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "Intra-Area-Prefix TLV grouping."; | "Intra-Area-Prefix TLV grouping."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.7"; | Extensibility, Section 3.7"; | |||
| } | } | |||
| grouping ipv6-link-local-tlv { | grouping ipv6-link-local-addr-tlv { | |||
| container ipv6-link-local-tlv { | container ipv6-link-local-addr-tlv { | |||
| description | description | |||
| "IPv6 Link-Local LSA TLV."; | "IPv6 Link-Local Address LSA TLV."; | |||
| leaf link-local-address { | leaf link-local-address { | |||
| type inet:ipv6-address; | type inet:ipv6-address; | |||
| description | description | |||
| "IPv6 Link-Local address."; | "IPv6 Link-Local address."; | |||
| } | } | |||
| list sub-tlvs { | list sub-tlvs { | |||
| description | description | |||
| "IPv6 Link-Local TLV sub-TLVs."; | "IPv6 Link-Local Address TLV sub-TLVs."; | |||
| uses unknown-sub-tlv; | uses unknown-sub-tlv; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "IPv6 Link-Local TLV grouping."; | "IPv6 Link-Local Address TLV grouping."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.8"; | Extensibility, Section 3.8"; | |||
| } | } | |||
| grouping ipv4-link-local-tlv { | grouping ipv4-link-local-addr-tlv { | |||
| container ipv4-link-local-tlv { | container ipv4-link-local-addr-tlv { | |||
| description | description | |||
| "IPv4 Link-Local LSA TLV."; | "IPv4 Link-Local Address LSA TLV."; | |||
| leaf link-local-address { | leaf link-local-address { | |||
| type inet:ipv4-address; | type inet:ipv4-address; | |||
| description | description | |||
| "IPv4 Link-Local address."; | "IPv4 Link-Local address."; | |||
| } | } | |||
| list sub-tlvs { | list sub-tlvs { | |||
| description | description | |||
| "IPv4 Link-Local TLV sub-TLVs."; | "IPv4 Link-Local Address TLV sub-TLVs."; | |||
| uses unknown-sub-tlv; | uses unknown-sub-tlv; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "IPv4 Link-Local TLV grouping."; | "IPv4 Link-Local Address TLV grouping."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.9"; | Extensibility, Section 3.9"; | |||
| } | } | |||
| /* Configuration */ | /* Configuration */ | |||
| augment "/rt:routing/rt:control-plane-protocols" | augment "/rt:routing/rt:control-plane-protocols" | |||
| + "/rt:control-plane-protocol/ospf:ospf" { | + "/rt:control-plane-protocol/ospf:ospf" { | |||
| when "../rt:type = 'ospf:ospfv3'" { | when "../rt:type = 'ospf:ospfv3'" { | |||
| skipping to change at line 790 ¶ | skipping to change at line 791 ¶ | |||
| configuration with Extended LSA support."; | configuration with Extended LSA support."; | |||
| leaf extended-lsa-support { | leaf extended-lsa-support { | |||
| type boolean; | type boolean; | |||
| must "derived-from(../ospf:area-type,'stub-nssa-area') or " | must "derived-from(../ospf:area-type,'stub-nssa-area') or " | |||
| + "(current() = 'true') or " | + "(current() = 'true') or " | |||
| + "(../../../extended-lsa-support = 'false')" { | + "(../../../extended-lsa-support = 'false')" { | |||
| description | description | |||
| "For regular areas, i.e., areas where AS-scoped LSAs | "For regular areas, i.e., areas where AS-scoped LSAs | |||
| are flooded, disabling AreaExtendedLSASupport at the | are flooded, disabling AreaExtendedLSASupport at the | |||
| area level is prohibited when ExtendedLSASupport is | area level is prohibited when ExtendedLSASupport is | |||
| enabled at the instance level. AS-External-LSAs | enabled at the instance level. E-AS-External-LSAs | |||
| are flooded into all OSPFv3 regular areas (i.e., not | are flooded into all OSPFv3 regular areas (i.e., not | |||
| a stub or an NSSA), and disabling support at the | a stub or an NSSA), and disabling support at the | |||
| area level is not possible."; | area level is not possible."; | |||
| } | } | |||
| description | description | |||
| "This augments the OSPFv3 protocol area-level | "This augments the OSPFv3 protocol area-level | |||
| configuration with Extended LSA support. When enabled, | configuration with Extended LSA support. When enabled, | |||
| OSPFv3 Extended LSAs will be advertised and OSPFv3 Legacy | OSPFv3 Extended LSAs will be advertised and OSPFv3 Legacy | |||
| LSAs will not be advertised. When disabled, OSPFv3 | LSAs will not be advertised. When disabled, OSPFv3 | |||
| Legacy LSAs will be advertised. However, OSPFv3 Extended | Legacy LSAs will be advertised. However, OSPFv3 Extended | |||
| skipping to change at line 836 ¶ | skipping to change at line 837 ¶ | |||
| "This augmentation is only valid for OSPFv3."; | "This augmentation is only valid for OSPFv3."; | |||
| } | } | |||
| description | description | |||
| "This augmentation adds OSPFv3 Link-scoped Extended LSAs | "This augmentation adds OSPFv3 Link-scoped Extended LSAs | |||
| to the operational state for an interface Link State | to the operational state for an interface Link State | |||
| Database (LSDB)."; | Database (LSDB)."; | |||
| container e-link { | container e-link { | |||
| when "../../ospf:header/ospf:type = " | when "../../ospf:header/ospf:type = " | |||
| + "'ospfv3-e-lsa:ospfv3-e-link-lsa'" { | + "'ospfv3-e-lsa:ospfv3-e-link-lsa'" { | |||
| description | description | |||
| "Only applies to Extended Link LSAs."; | "Only applies to E-Link-LSAs."; | |||
| } | } | |||
| description | description | |||
| "E-Link-LSA."; | "E-Link-LSA contents."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.7"; | Extensibility, Section 4.7"; | |||
| leaf rtr-priority { | leaf rtr-priority { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "Router priority for the interface."; | "Router priority for the interface."; | |||
| } | } | |||
| uses ospf:ospfv3-lsa-options; | uses ospf:ospfv3-lsa-options; | |||
| list e-link-tlvs { | list e-link-tlvs { | |||
| description | description | |||
| "E-Link-LSA TLVs."; | "E-Link-LSA TLVs."; | |||
| container unknown-tlv { | container unknown-tlv { | |||
| uses ospf:tlv; | uses ospf:tlv; | |||
| description | description | |||
| "Unknown E-Link TLV."; | "Unknown E-Link TLV."; | |||
| } | } | |||
| uses intra-area-prefix-tlv; | uses intra-area-prefix-tlv; | |||
| uses ipv6-link-local-tlv; | uses ipv6-link-local-addr-tlv; | |||
| uses ipv4-link-local-tlv; | uses ipv4-link-local-addr-tlv; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| augment "/rt:routing/" | augment "/rt:routing/" | |||
| + "rt:control-plane-protocols/rt:control-plane-protocol/" | + "rt:control-plane-protocols/rt:control-plane-protocol/" | |||
| + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" | + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" | |||
| + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" | + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" | |||
| + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" | + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" | |||
| + "ospf:ospfv3/ospf:body" { | + "ospf:ospfv3/ospf:body" { | |||
| skipping to change at line 885 ¶ | skipping to change at line 886 ¶ | |||
| description | description | |||
| "This augmentation adds OSPFv3 Area-scoped Extended LSAs | "This augmentation adds OSPFv3 Area-scoped Extended LSAs | |||
| to the operational state for an area LSDB."; | to the operational state for an area LSDB."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4"; | Extensibility, Section 4"; | |||
| container e-router { | container e-router { | |||
| when "../../ospf:header/ospf:type = " | when "../../ospf:header/ospf:type = " | |||
| + "'ospfv3-e-lsa:ospfv3-e-router-lsa'" { | + "'ospfv3-e-lsa:ospfv3-e-router-lsa'" { | |||
| description | description | |||
| "Only valid for OSPFv3 Extended-Router-LSAs."; | "Only valid for OSPFv3 E-Router-LSAs."; | |||
| } | } | |||
| description | description | |||
| "OSPFv3 Extended Router-LSA."; | "OSPFv3 E-Router-LSA contents."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.1"; | Extensibility, Section 4.1"; | |||
| uses ospf:ospf-router-lsa-bits; | uses ospf:ospf-router-lsa-bits; | |||
| uses ospf:ospfv3-lsa-options; | uses ospf:ospfv3-lsa-options; | |||
| list e-router-tlvs { | list e-router-tlvs { | |||
| description | description | |||
| "E-Router-LSA TLVs."; | "E-Router-LSA TLVs."; | |||
| container unknown-tlv { | container unknown-tlv { | |||
| uses ospf:tlv; | uses ospf:tlv; | |||
| skipping to change at line 948 ¶ | skipping to change at line 949 ¶ | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container e-network { | container e-network { | |||
| when "../../ospf:header/ospf:type = " | when "../../ospf:header/ospf:type = " | |||
| + "'ospfv3-e-lsa:ospfv3-e-network-lsa'" { | + "'ospfv3-e-lsa:ospfv3-e-network-lsa'" { | |||
| description | description | |||
| "Only applies to E-Network-LSAs."; | "Only applies to E-Network-LSAs."; | |||
| } | } | |||
| description | description | |||
| "Extended Network-LSA."; | "E-Network-LSA contents."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.2"; | Extensibility, Section 4.2"; | |||
| uses ospf:ospfv3-lsa-options; | uses ospf:ospfv3-lsa-options; | |||
| list e-network-tlvs { | list e-network-tlvs { | |||
| description | description | |||
| "E-Network-LSA TLVs."; | "E-Network-LSA TLVs."; | |||
| container unknown-tlv { | container unknown-tlv { | |||
| uses ospf:tlv; | uses ospf:tlv; | |||
| description | description | |||
| skipping to change at line 978 ¶ | skipping to change at line 979 ¶ | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container e-nssa { | container e-nssa { | |||
| when "../../ospf:header/ospf:type = " | when "../../ospf:header/ospf:type = " | |||
| + "'ospfv3-e-lsa:ospfv3-e-nssa-lsa'" { | + "'ospfv3-e-lsa:ospfv3-e-nssa-lsa'" { | |||
| description | description | |||
| "Only applies to E-NSSA-LSAs."; | "Only applies to E-NSSA-LSAs."; | |||
| } | } | |||
| description | ||||
| "E-NSSA-LSA contents."; | ||||
| list e-external-tlvs { | list e-external-tlvs { | |||
| description | description | |||
| "E-NSSA-LSA TLVs."; | "E-NSSA-LSA TLVs."; | |||
| container unknown-tlv { | container unknown-tlv { | |||
| uses ospf:tlv; | uses ospf:tlv; | |||
| description | description | |||
| "Unknown E-External TLV."; | "Unknown E-External TLV."; | |||
| } | } | |||
| uses external-prefix-tlv; | uses external-prefix-tlv; | |||
| } | } | |||
| description | ||||
| "E-NSSA-LSA."; | ||||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.6"; | Extensibility, Section 4.6"; | |||
| } | } | |||
| container e-inter-area-prefix { | container e-inter-area-prefix { | |||
| when "../../ospf:header/ospf:type = " | when "../../ospf:header/ospf:type = " | |||
| + "'ospfv3-e-lsa:ospfv3-e-inter-area-prefix-lsa'" { | + "'ospfv3-e-lsa:ospfv3-e-inter-area-prefix-lsa'" { | |||
| description | description | |||
| "Only applies to E-Inter-Area-Prefix-LSAs."; | "Only applies to E-Inter-Area-Prefix-LSAs."; | |||
| } | } | |||
| description | description | |||
| "Extended Inter-Area-Prefix-LSA."; | "E-Inter-Area-Prefix-LSA contents."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.3"; | Extensibility, Section 4.3"; | |||
| list e-inter-prefix-tlvs { | list e-inter-prefix-tlvs { | |||
| description | description | |||
| "E-Inter-Area-Prefix-LSA TLVs."; | "E-Inter-Area-Prefix-LSA TLVs."; | |||
| container unknown-tlv { | container unknown-tlv { | |||
| uses ospf:tlv; | uses ospf:tlv; | |||
| description | description | |||
| "Unknown E-Inter-Area-Prefix TLV."; | "Unknown E-Inter-Area-Prefix TLV."; | |||
| skipping to change at line 1037 ¶ | skipping to change at line 1038 ¶ | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container e-inter-area-router { | container e-inter-area-router { | |||
| when "../../ospf:header/ospf:type = " | when "../../ospf:header/ospf:type = " | |||
| + "'ospfv3-e-lsa:ospfv3-e-inter-area-router-lsa'" { | + "'ospfv3-e-lsa:ospfv3-e-inter-area-router-lsa'" { | |||
| description | description | |||
| "Only applies to E-Inter-Area-Router-LSAs."; | "Only applies to E-Inter-Area-Router-LSAs."; | |||
| } | } | |||
| description | description | |||
| "Extended Inter-Area-Router-LSA."; | "E-Inter-Area-Router-LSA contents."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.4"; | Extensibility, Section 4.4"; | |||
| list e-inter-router-tlvs { | list e-inter-router-tlvs { | |||
| description | description | |||
| "E-Inter-Area-Router-LSA TLVs."; | "E-Inter-Area-Router-LSA TLVs."; | |||
| container unknown-tlv { | container unknown-tlv { | |||
| uses ospf:tlv; | uses ospf:tlv; | |||
| description | description | |||
| "Unknown E-Inter-Area-Router TLV."; | "Unknown E-Inter-Area-Router TLV."; | |||
| skipping to change at line 1078 ¶ | skipping to change at line 1079 ¶ | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container e-intra-area-prefix { | container e-intra-area-prefix { | |||
| when "../../ospf:header/ospf:type = " | when "../../ospf:header/ospf:type = " | |||
| + "'ospfv3-e-lsa:ospfv3-e-intra-area-prefix-lsa'" { | + "'ospfv3-e-lsa:ospfv3-e-intra-area-prefix-lsa'" { | |||
| description | description | |||
| "Only applies to E-Intra-Area-Prefix-LSAs."; | "Only applies to E-Intra-Area-Prefix-LSAs."; | |||
| } | } | |||
| description | description | |||
| "E-Intra-Area-Prefix-LSA."; | "E-Intra-Area-Prefix-LSA contents."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.8"; | Extensibility, Section 4.8"; | |||
| leaf referenced-ls-type { | leaf referenced-ls-type { | |||
| type uint16; | type uint16; | |||
| description | description | |||
| "Referenced Link State type."; | "Referenced Link State type."; | |||
| } | } | |||
| leaf referenced-link-state-id { | leaf referenced-link-state-id { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Referenced Link State ID."; | "Referenced Link State ID."; | |||
| } | } | |||
| leaf referenced-adv-router { | leaf referenced-adv-router { | |||
| type rt-types:router-id; | type rt-types:router-id; | |||
| description | description | |||
| "Referenced Advertising Router."; | "Referenced advertising router."; | |||
| } | } | |||
| list e-intra-prefix-tlvs { | list e-intra-prefix-tlvs { | |||
| description | description | |||
| "E-Intra-Area-Prefix-LSA TLVs."; | "E-Intra-Area-Prefix-LSA TLVs."; | |||
| container unknown-tlv { | container unknown-tlv { | |||
| uses ospf:tlv; | uses ospf:tlv; | |||
| description | description | |||
| "Unknown E-Intra-Area-Prefix TLV."; | "Unknown E-Intra-Area-Prefix TLV."; | |||
| } | } | |||
| uses intra-area-prefix-tlv; | uses intra-area-prefix-tlv; | |||
| skipping to change at line 1130 ¶ | skipping to change at line 1131 ¶ | |||
| } | } | |||
| description | description | |||
| "This augmentation adds OSPFv3 AS-scoped Extended LSAs to | "This augmentation adds OSPFv3 AS-scoped Extended LSAs to | |||
| the operational state for an AS instance-level LSDB."; | the operational state for an AS instance-level LSDB."; | |||
| container e-as-external { | container e-as-external { | |||
| when "../../ospf:header/ospf:type = " | when "../../ospf:header/ospf:type = " | |||
| + "'ospfv3-e-lsa:ospfv3-e-as-external-lsa'" { | + "'ospfv3-e-lsa:ospfv3-e-as-external-lsa'" { | |||
| description | description | |||
| "Only applies to E-AS-External-LSAs."; | "Only applies to E-AS-External-LSAs."; | |||
| } | } | |||
| description | ||||
| "E-AS-External-LSA contents."; | ||||
| list e-external-tlvs { | list e-external-tlvs { | |||
| description | description | |||
| "E-External LSA TLVs."; | "E-External LSA TLVs."; | |||
| container unknown-tlv { | container unknown-tlv { | |||
| uses ospf:tlv; | uses ospf:tlv; | |||
| description | description | |||
| "Unknown E-External TLV."; | "Unknown E-External TLV."; | |||
| } | } | |||
| uses external-prefix-tlv; | uses external-prefix-tlv; | |||
| } | } | |||
| description | ||||
| "E-AS-External-LSA."; | ||||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.5"; | Extensibility, Section 4.5"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 5. Security Considerations | 5. Security Considerations | |||
| skipping to change at line 1190 ¶ | skipping to change at line 1191 ¶ | |||
| use solely OSPFv3 Extended LSAs or OSPFv3 Legacy LSAs for the OSPFv3 | use solely OSPFv3 Extended LSAs or OSPFv3 Legacy LSAs for the OSPFv3 | |||
| SPF computation. OSPFv3 routers using different types of LSAs will | SPF computation. OSPFv3 routers using different types of LSAs will | |||
| result in incomplete reachability and possible partitioning of the | result in incomplete reachability and possible partitioning of the | |||
| OSPFv3 routing domain. Refer to Section 6 of [RFC8362] for more | OSPFv3 routing domain. Refer to Section 6 of [RFC8362] for more | |||
| information on OSPFv3 Extended LSA compatibility. | information on OSPFv3 Extended LSA compatibility. | |||
| Some of the readable data nodes in the "ietf-ospfv3-extended- | Some of the readable data nodes in the "ietf-ospfv3-extended- | |||
| lsa.yang" module may be considered sensitive or vulnerable in some | lsa.yang" module may be considered sensitive or vulnerable in some | |||
| network environments. It is thus important to control read access | network environments. It is thus important to control read access | |||
| (e.g., via get, get-config, or notification) to these data nodes. | (e.g., via get, get-config, or notification) to these data nodes. | |||
| These are the subtrees and data nodes and their sensitivity/ | ||||
| vulnerability: | ||||
| Exposing the Link State Database (LSDB) will in turn expose the | Exposing the Link State Database (LSDB) will in turn expose the | |||
| detailed topology of the network. This includes topological | detailed topology of the network. This includes topological | |||
| information from other routers. This may be undesirable due to the | information from other routers. This may be undesirable due to the | |||
| fact that exposure may facilitate other attacks. Additionally, | fact that exposure may facilitate other attacks. Additionally, | |||
| network operators may consider their topologies to be sensitive | network operators may consider their topologies to be sensitive | |||
| confidential data. | confidential data. | |||
| 6. IANA Considerations | 6. IANA Considerations | |||
| End of changes. 41 change blocks. | ||||
| 54 lines changed or deleted | 53 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||