| rfc9587.original | rfc9587.txt | |||
|---|---|---|---|---|
| Internet A. Lindem | Internet Engineering Task Force (IETF) A. Lindem | |||
| Internet-Draft LabN Consulting, L.L.C. | Request for Comments: 9587 LabN Consulting, L.L.C. | |||
| Intended status: Standards Track S. Palani | Category: Standards Track S. Palani | |||
| Expires: 5 August 2024 Microsoft | ISSN: 2070-1721 Microsoft | |||
| Y. Qu | Y. Qu | |||
| Futurewei Technologies | Futurewei Technologies | |||
| 2 February 2024 | June 2024 | |||
| YANG Model for OSPFv3 Extended LSAs | YANG Data Model for OSPFv3 Extended Link State Advertisements (LSAs) | |||
| draft-ietf-lsr-ospfv3-extended-lsa-yang-29 | ||||
| Abstract | Abstract | |||
| This document defines a YANG data model augmenting the IETF OSPF YANG | This document defines a YANG data model augmenting the IETF OSPF YANG | |||
| model to provide support for OSPFv3 Link State Advertisement (LSA) | data model (RFC 9129) to provide support for OSPFv3 Link State | |||
| Extensibility as defined in RFC 8362. OSPFv3 Extended LSAs provide | Advertisement (LSA) Extensibility as defined in RFC 8362. OSPFv3 | |||
| extensible TLV-based LSAs for the base LSA types defined in RFC 5340. | Extended LSAs provide extensible TLV-based LSAs for the base LSA | |||
| types defined in RFC 5340. | ||||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
| provisions of BCP 78 and BCP 79. | ||||
| Internet-Drafts are working documents of the Internet Engineering | ||||
| Task Force (IETF). Note that other groups may also distribute | ||||
| working documents as Internet-Drafts. The list of current Internet- | ||||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
| Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
| and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
| time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
| material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | ||||
| This Internet-Draft will expire on 5 August 2024. | 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 Notice | |||
| Copyright (c) 2024 IETF Trust and the persons identified as the | Copyright (c) 2024 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
| license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
| and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
| extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
| described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
| provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
| in the Revised BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Overview | |||
| 2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . . . 2 | 2. Tree Diagrams | |||
| 3. OSPFv3 Extended LSAs . . . . . . . . . . . . . . . . . . . . 3 | 3. OSPFv3 Extended LSAs | |||
| 4. OSPFv3 Extended LSA Yang Module . . . . . . . . . . . . . . . 7 | 4. OSPFv3 Extended LSA YANG Module | |||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . . 25 | 5. Security Considerations | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 26 | 6. IANA Considerations | |||
| 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 26 | 7. References | |||
| 8. Normative References . . . . . . . . . . . . . . . . . . . . 26 | 7.1. Normative References | |||
| 9. Informative References . . . . . . . . . . . . . . . . . . . 28 | 7.2. Informative References | |||
| Appendix A. Configuration Example . . . . . . . . . . . . . . . 28 | Appendix A. Configuration Example | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 29 | Acknowledgements | |||
| 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 data store 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) | its initial confines as bindings to other interfaces (e.g., RESTCONF | |||
| and 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 CLI and programmatic | implementation of other interfaces, such as Command-Line Interfaces | |||
| 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 | |||
| model [RFC9129], which itself augments [RFC8349], to provide support | data model [RFC9129], which itself augments [RFC8349], to provide | |||
| for configuration and operational state for OSPFv3 Extended LSAs as | support for configuration and operational state for OSPFv3 Extended | |||
| defined in [RFC8362]. | Link State Advertisements (LSAs) as defined in [RFC8362]. | |||
| The YANG modules in this document conform to the Network Management | The YANG module specified in this document conforms to the Network | |||
| Datastore Architecture (NMDA) [RFC8342]. | Management Datastore Architecture (NMDA) [RFC8342]. | |||
| 2. Tree Diagrams | 2. Tree Diagrams | |||
| This document uses the graphical representation of data models | This document uses the graphical representation of data models | |||
| defined in [RFC8340]. | defined in [RFC8340]. | |||
| 3. OSPFv3 Extended LSAs | 3. OSPFv3 Extended LSAs | |||
| This document defines a model for the OSPFv3 Extended LSA feature. | This document defines a YANG data model for the OSPFv3 Extended LSA | |||
| It is an augmentation of the OSPF base model provided support for | feature. It is an augmentation of the OSPF base model [RFC9129] to | |||
| OSPFv3 Link State Advertisement (LSA) Extensibility [RFC8362]. | provide support for OSPFv3 LSA Extensibility [RFC8362]. OSPFv3 | |||
| OSPFv3 Extended LSAs provide extensible TLV-based LSAs for the base | Extended LSAs provide extensible TLV-based LSAs for the base LSA | |||
| LSA types defined in [RFC5340]. | types defined in [RFC5340]. | |||
| The OSPFv3 Extended LSA YANG module requires support for the OSPF | The OSPFv3 Extended LSA YANG module requires support for the OSPF | |||
| base model[RFC9129] which defines basic OSPF configuration and state. | base model, which defines basic OSPF configuration and state. The | |||
| The OSPF YANG model augments the ietf-routing YANG model defined in | OSPF YANG data model augments the "ietf-routing" YANG data model | |||
| [RFC8349]. The augmentations defined in the ietf-ospfv3-extended-lsa | defined in [RFC8349]. The augmentations defined in the "ietf-ospfv3- | |||
| YANG module provide global configuration, area configuration, and | extended-lsa" YANG module provide global configuration, area | |||
| addition of OSPFv3 Extended LSAs to the Link State Database (LSDB) | configuration, and the addition of OSPFv3 Extended LSAs to the Link | |||
| operational state. | State Database (LSDB) operational state. | |||
| module: ietf-ospfv3-extended-lsa | module: ietf-ospfv3-extended-lsa | |||
| augment /rt:routing/rt:control-plane-protocols | augment /rt:routing/rt:control-plane-protocols | |||
| /rt:control-plane-protocol/ospf:ospf: | /rt:control-plane-protocol/ospf:ospf: | |||
| +--rw extended-lsa-support? boolean | +--rw extended-lsa-support? boolean | |||
| augment /rt:routing/rt:control-plane-protocols | augment /rt:routing/rt:control-plane-protocols | |||
| /rt:control-plane-protocol/ospf:ospf/ospf:areas | /rt:control-plane-protocol/ospf:ospf/ospf:areas | |||
| /ospf:area: | /ospf:area: | |||
| +--rw extended-lsa-support? boolean | +--rw extended-lsa-support? boolean | |||
| skipping to change at page 4, line 6 ¶ | 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 page 7, line 17 ¶ | skipping to change at line 293 ¶ | |||
| | +--ro forwarding-address? inet:ipv6-address | | +--ro forwarding-address? inet:ipv6-address | |||
| +--ro ipv4-fwd-addr-sub-tlv | +--ro ipv4-fwd-addr-sub-tlv | |||
| | +--ro forwarding-address? inet:ipv4-address | | +--ro forwarding-address? inet:ipv4-address | |||
| +--ro route-tag-sub-tlv | +--ro route-tag-sub-tlv | |||
| | +--ro route-tag? uint32 | | +--ro route-tag? uint32 | |||
| +--ro unknown-sub-tlv | +--ro unknown-sub-tlv | |||
| +--ro type? uint16 | +--ro type? uint16 | |||
| +--ro length? uint16 | +--ro length? uint16 | |||
| +--ro value? yang:hex-string | +--ro value? yang:hex-string | |||
| 4. OSPFv3 Extended LSA Yang Module | 4. OSPFv3 Extended LSA YANG Module | |||
| The following RFCs and drafts are not referenced in the document text | The following RFCs are not referenced in the document text but are | |||
| but are referenced in the ietf-ospfv3-extended-lsa.yang module: | referenced in the "ietf-ospfv3-extended-lsa.yang" module: [RFC6991] | |||
| [RFC6991], [RFC8294]. | and [RFC8294]. | |||
| <CODE BEGINS> file "ietf-ospfv3-extended-lsa@2024-02-02.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 | |||
| "RFC 8294: Common YANG Data Types for the Routing Area"; | "RFC 8294: Common YANG Data Types for the Routing Area"; | |||
| } | } | |||
| skipping to change at page 7, line 48 ¶ | skipping to change at line 324 ¶ | |||
| } | } | |||
| import ietf-routing { | import ietf-routing { | |||
| prefix rt; | prefix rt; | |||
| reference | reference | |||
| "RFC 8349: A YANG Data Model for Routing | "RFC 8349: A YANG Data Model for Routing | |||
| Management (NMDA Version)"; | Management (NMDA Version)"; | |||
| } | } | |||
| import ietf-ospf { | import ietf-ospf { | |||
| prefix ospf; | prefix ospf; | |||
| reference | reference | |||
| "RFC 9129: A YANG Data Model for OSPF Protocol"; | "RFC 9129: YANG Data Model for the OSPF Protocol"; | |||
| } | } | |||
| organization | organization | |||
| "IETF LSR - Link State Routing Working Group"; | "IETF LSR - Link State Routing Working Group"; | |||
| contact | contact | |||
| "WG Web: <https://datatracker.ietf.org/wg/lsr/> | "WG Web: <https://datatracker.ietf.org/wg/lsr/> | |||
| WG List: <mailto:lsr@ietf.org> | WG List: <mailto:lsr@ietf.org> | |||
| Author: Acee Lindem | Author: Acee Lindem | |||
| <mailto:acee.ietf@gmail.com> | <mailto:acee.ietf@gmail.com> | |||
| Author: Sharmila Palani | Author: Sharmila Palani | |||
| <mailto:sharmila.palani@microsoft.com> | <mailto:sharmila.palani@microsoft.com> | |||
| Author: Yingzhen Qu | Author: Yingzhen Qu | |||
| <mailto:yingzhen.ietf@gmail.com>"; | <mailto:yingzhen.ietf@gmail.com>"; | |||
| description | description | |||
| "This YANG module defines the configuration | "This YANG module defines the configuration and operational | |||
| and operational state for OSPFv3 Extended LSAs, which is | state for OSPFv3 Extended LSAs, which is common across all | |||
| common across all of the vendor implementations. The | vendor implementations. The semantics and encodings for | |||
| semantics and encodings for OSPFv3 Extended LSAs are | OSPFv3 Extended LSAs are described in RFC 8362. OSPFv3 | |||
| described in RFC 8362. OSPFv3 Extended LSAs provide extensible | Extended LSAs provide extensible TLV-based LSAs for the base | |||
| TLV-based LSAs for the base LSA types defined in RFC 5340. | LSA types defined in RFC 5340. | |||
| This YANG model conforms to the Network Management | This YANG data model conforms to the Network Management | |||
| Datastore Architecture (NMDA) as described in RFC 8342. | Datastore Architecture (NMDA) as described in RFC 8342. | |||
| Copyright (c) 2024 IETF Trust and the persons identified as | Copyright (c) 2024 IETF Trust and the persons identified as | |||
| authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject to | without modification, is permitted pursuant to, and subject to | |||
| the license terms contained in, the Revised BSD License set | the license terms contained in, the Revised BSD License set | |||
| forth in Section 4.c of the IETF Trust's Legal Provisions | forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| Relating to IETF Documents | Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info). | (https://trustee.ietf.org/license-info). | |||
| This version of this YANG module is part of RFC XXXX | This version of this YANG module is part of RFC 9587; see the | |||
| (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself | RFC itself for full legal notices."; | |||
| for full legal notices."; | ||||
| reference | reference | |||
| "RFC XXXX - YANG Model for OSPFv3 Extended LSAs"; | "RFC 9587: YANG Data Model for OSPFv3 Extended Link State | |||
| Advertisements (LSAs)"; | ||||
| revision 2024-02-02 { | revision 2024-05-16 { | |||
| description | description | |||
| "Initial revision."; | "Initial revision."; | |||
| reference | reference | |||
| "RFC XXXX: YANG Data Model for OSPFv3 Extended LSAs."; | "RFC 9587: YANG Data Model for OSPFv3 Extended Link State | |||
| Advertisements (LSAs)"; | ||||
| } | } | |||
| /* | /* | |||
| * OSPFv3 Extended LSA Type Identities | * OSPFv3 Extended LSA Type Identities | |||
| */ | */ | |||
| identity ospfv3-e-router-lsa { | identity ospfv3-e-router-lsa { | |||
| base ospf:ospfv3-lsa-type; | base ospf:ospfv3-lsa-type; | |||
| description | description | |||
| "OSPFv3 Extended Router LSA - Type 0xA021"; | "OSPFv3 E-Router-LSA - Type 0xA021."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.1"; | Extensibility, Section 4.1"; | |||
| } | } | |||
| identity ospfv3-e-network-lsa { | identity ospfv3-e-network-lsa { | |||
| base ospf:ospfv3-lsa-type; | base ospf:ospfv3-lsa-type; | |||
| description | description | |||
| "OSPFv3 Extended Network LSA - Type 0xA022"; | "OSPFv3 E-Network-LSA - Type 0xA022."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.2"; | Extensibility, Section 4.2"; | |||
| } | } | |||
| identity ospfv3-e-summary-lsa-type { | identity ospfv3-e-summary-lsa-type { | |||
| base ospf:ospfv3-lsa-type; | base ospf:ospfv3-lsa-type; | |||
| description | description | |||
| "OSPFv3 Extended Summary LSA types"; | "OSPFv3 Extended Summary LSA types: | |||
| E-Inter-Area-Prefix-LSA and E-Inter-Area-Router-LSA."; | ||||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.3 and Section 4.4"; | Extensibility, Sections 4.3 and 4.4"; | |||
| } | } | |||
| identity ospfv3-e-inter-area-prefix-lsa { | identity ospfv3-e-inter-area-prefix-lsa { | |||
| base ospfv3-e-summary-lsa-type; | base ospfv3-e-summary-lsa-type; | |||
| description | description | |||
| "OSPFv3 Extended Inter-area Prefix LSA - Type 0xA023"; | "OSPFv3 E-Inter-Area-Prefix-LSA - Type 0xA023."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.3"; | Extensibility, Section 4.3"; | |||
| } | } | |||
| identity ospfv3-e-inter-area-router-lsa { | identity ospfv3-e-inter-area-router-lsa { | |||
| base ospfv3-e-summary-lsa-type; | base ospfv3-e-summary-lsa-type; | |||
| description | description | |||
| "OSPFv3 Extended Inter-area Router LSA - Type 0xA024"; | "OSPFv3 E-Inter-Area-Router-LSA - Type 0xA024."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.4"; | Extensibility, Section 4.4"; | |||
| } | } | |||
| identity ospfv3-e-external-lsa-type { | identity ospfv3-e-external-lsa-type { | |||
| base ospf:ospfv3-lsa-type; | base ospf:ospfv3-lsa-type; | |||
| description | description | |||
| "OSPFv3 Extended External LSA types"; | "OSPFv3 Extended External LSA types: | |||
| E-AS-External-LSA and E-NSSA-LSA (where | ||||
| NSSA expands to Not-So-Stubby-Area)."; | ||||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.5 and Section 4.6"; | Extensibility, Sections 4.5 and 4.6"; | |||
| } | } | |||
| identity ospfv3-e-as-external-lsa { | identity ospfv3-e-as-external-lsa { | |||
| base ospfv3-e-external-lsa-type; | base ospfv3-e-external-lsa-type; | |||
| description | description | |||
| "OSPFv3 Extended AS-External LSA - Type 0xC025"; | "OSPFv3 E-AS-External-LSA - Type 0xC025."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.5"; | Extensibility, Section 4.5"; | |||
| } | } | |||
| identity ospfv3-e-nssa-lsa { | identity ospfv3-e-nssa-lsa { | |||
| base ospfv3-e-external-lsa-type; | base ospfv3-e-external-lsa-type; | |||
| description | description | |||
| "OSPFv3 Extended Not-So-Stubby-Area (NSSA) LSA - | "OSPFv3 E-NSSA-LSA - Type 0xA027."; | |||
| Type 0xA027"; | ||||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.6"; | Extensibility, Section 4.6"; | |||
| } | } | |||
| identity ospfv3-e-link-lsa { | identity ospfv3-e-link-lsa { | |||
| base ospf:ospfv3-lsa-type; | base ospf:ospfv3-lsa-type; | |||
| description | description | |||
| "OSPFv3 Extended Link LSA - Type 0x8028"; | "OSPFv3 E-Link-LSA - Type 0x8028."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.7"; | Extensibility, Section 4.7"; | |||
| } | } | |||
| identity ospfv3-e-intra-area-prefix-lsa { | identity ospfv3-e-intra-area-prefix-lsa { | |||
| base ospf:ospfv3-lsa-type; | base ospf:ospfv3-lsa-type; | |||
| description | description | |||
| "OSPFv3 Extended Intra-area Prefix LSA - Type 0xA029"; | "OSPFv3 E-Intra-Area-Prefix-LSA - Type 0xA029."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.8"; | Extensibility, Section 4.8"; | |||
| } | } | |||
| identity ospfv3-e-prefix-option { | identity ospfv3-e-prefix-option { | |||
| description | description | |||
| "Base identity for OSPFv3 Prefix Options."; | "Base identity for OSPFv3 prefix options."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.1"; | Extensibility, Section 3.1"; | |||
| } | } | |||
| identity nu-bit { | identity nu-bit { | |||
| base ospfv3-e-prefix-option; | base ospfv3-e-prefix-option; | |||
| description | description | |||
| "When set, the prefix should be excluded | "When set, the prefix should be excluded | |||
| from IPv6 unicast calculations."; | from IPv6 unicast calculations."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.1 | Extensibility, Section 3.1 | |||
| RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; | RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; | |||
| } | } | |||
| identity la-bit { | identity la-bit { | |||
| base ospfv3-e-prefix-option; | base ospfv3-e-prefix-option; | |||
| description | description | |||
| "When set, the prefix is actually an IPv6 interface | "When set, the prefix is actually an IPv6 interface | |||
| address of the Advertising Router."; | address of the advertising router."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.1 | Extensibility, Section 3.1 | |||
| RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; | RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; | |||
| } | } | |||
| identity p-bit { | identity p-bit { | |||
| base ospfv3-e-prefix-option; | base ospfv3-e-prefix-option; | |||
| description | description | |||
| "When set, the NSSA area prefix should be | "When set, the NSSA prefix should be translated to an | |||
| translated to an AS External LSA and advertised | E-AS-External-LSA and advertised by the translating | |||
| by the translating NSSA Border Router."; | NSSA Border Router."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.1 | Extensibility, Section 3.1 | |||
| RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; | RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; | |||
| } | } | |||
| identity dn-bit { | identity dn-bit { | |||
| base ospfv3-e-prefix-option; | base ospfv3-e-prefix-option; | |||
| description | description | |||
| "When set, the inter-area-prefix LSA or | "When set, the E-Inter-Area-Prefix-LSA or | |||
| AS-external LSA prefix has been advertised as an | E-AS-External-LSA prefix has been advertised as an | |||
| L3VPN prefix."; | L3VPN prefix."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.1 | Extensibility, Section 3.1 | |||
| RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; | RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; | |||
| } | } | |||
| identity n-bit { | identity n-bit { | |||
| base ospfv3-e-prefix-option; | base ospfv3-e-prefix-option; | |||
| description | description | |||
| "When set, the prefix is a host address that identifies | "When set, the prefix is a host address that identifies | |||
| the advertising router."; | the advertising router."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.1 | Extensibility, Section 3.1 | |||
| RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; | RFC 5340: OSPF for IPv6, Appendix A.4.1.1"; | |||
| } | } | |||
| identity ospfv3-e-external-prefix-option { | identity ospfv3-e-external-prefix-option { | |||
| description | description | |||
| "Base identity for OSPFv3 External Prefix Options."; | "Base identity for OSPFv3 external prefix options."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.6"; | Extensibility, Section 3.6"; | |||
| } | } | |||
| identity e-bit { | identity e-bit { | |||
| base ospfv3-e-external-prefix-option; | base ospfv3-e-external-prefix-option; | |||
| description | description | |||
| "When the E-bit is set, the metric specified is a Type 2 | "When the E-bit is set, the metric specified is a Type 2 | |||
| external metric. This means the metric is considered larger | external metric. This means the metric is considered larger | |||
| than any intra-AS path. When the E-bit is clear, the | than any intra-AS path. When the E-bit is clear, the | |||
| specified metric is a Type 1 external metric. This means | specified metric is a Type 1 external metric. This means | |||
| that it is expressed in the same units as other LSAs (i.e., | that it is expressed in the same units as other LSAs (i.e., | |||
| the same units as the interface costs in router-LSAs)."; | the same units as the interface costs in Router-LSAs)."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.6"; | Extensibility, Section 3.6"; | |||
| } | } | |||
| grouping unknown-sub-tlv { | grouping unknown-sub-tlv { | |||
| description | description | |||
| "Unknown TLV grouping"; | "Unknown TLV grouping."; | |||
| container unknown-sub-tlv { | container unknown-sub-tlv { | |||
| uses ospf:tlv; | uses ospf:tlv; | |||
| description | description | |||
| "Unknown External TLV Sub-TLV"; | "Unknown External TLV sub-TLV."; | |||
| } | } | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 6.3"; | Extensibility, Section 6.3"; | |||
| } | } | |||
| grouping ospfv3-lsa-prefix { | grouping ospfv3-lsa-prefix { | |||
| description | description | |||
| "OSPFv3 LSA prefix"; | "OSPFv3 LSA prefix."; | |||
| leaf prefix { | leaf prefix { | |||
| type inet:ip-prefix; | type inet:ip-prefix; | |||
| description | description | |||
| "LSA Prefix"; | "LSA prefix."; | |||
| } | } | |||
| container prefix-options { | container prefix-options { | |||
| leaf-list prefix-options { | leaf-list prefix-options { | |||
| type identityref { | type identityref { | |||
| base ospfv3-e-prefix-option; | base ospfv3-e-prefix-option; | |||
| } | } | |||
| description | description | |||
| "OSPFv3 prefix option flag list. This list will | "OSPFv3 prefix options flag list. This list will | |||
| contain the identities for the OSPFv3 options | contain the identities for the OSPFv3 options | |||
| that are set for the OSPFv3 prefix."; | that are set for the OSPFv3 prefix."; | |||
| } | } | |||
| description | description | |||
| "Prefix options."; | "Prefix options."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.1"; | Extensibility, Section 3.1"; | |||
| } | } | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3"; | Extensibility, Section 3"; | |||
| } | } | |||
| grouping external-prefix-tlv { | grouping external-prefix-tlv { | |||
| container external-prefix-tlv { | container external-prefix-tlv { | |||
| description | description | |||
| "External Prefix LSA TLV"; | "External-Prefix TLV."; | |||
| container flags { | container flags { | |||
| leaf-list ospfv3-e-external-prefix-bits { | leaf-list ospfv3-e-external-prefix-bits { | |||
| type identityref { | type identityref { | |||
| base ospfv3-e-external-prefix-option; | base ospfv3-e-external-prefix-option; | |||
| } | } | |||
| description | description | |||
| "OSPFv3 external-prefix TLV bits list."; | "OSPFv3 External-Prefix TLV bits list."; | |||
| } | } | |||
| description | description | |||
| "External Prefix Flags"; | "External prefix flags."; | |||
| } | } | |||
| leaf metric { | leaf metric { | |||
| type ospf:ospf-metric; | type ospf:ospf-metric; | |||
| description | description | |||
| "External Prefix Metric"; | "External prefix metric."; | |||
| } | } | |||
| uses ospfv3-lsa-prefix; | uses ospfv3-lsa-prefix; | |||
| list sub-tlvs { | list sub-tlvs { | |||
| description | description | |||
| "External Prefix TLV Sub-TLVs"; | "External-Prefix TLV sub-TLVs."; | |||
| container ipv6-fwd-addr-sub-tlv { | container ipv6-fwd-addr-sub-tlv { | |||
| description | description | |||
| "IPv6 Forwarding address Sub-TLV for E-AS-External and | "IPv6-Forwarding-Address sub-TLV for | |||
| E-NSSA LSAs for the IPv6 address family."; | E-AS-External-LSAs and E-NSSA-LSAs for the IPv6 | |||
| address family."; | ||||
| leaf forwarding-address { | leaf forwarding-address { | |||
| type inet:ipv6-address; | type inet:ipv6-address; | |||
| description | description | |||
| "IPv6 Forwarding Address"; | "IPv6 forwarding address."; | |||
| } | } | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.10"; | Extensibility, Section 3.10"; | |||
| } | } | |||
| container ipv4-fwd-addr-sub-tlv { | container ipv4-fwd-addr-sub-tlv { | |||
| description | description | |||
| "IPv4 Forwarding address Sub-TLV for E-AS-External and | "IPv4-Forwarding-Address sub-TLV for | |||
| E-NSSA LSAs for the IPv4 address family."; | E-AS-External-LSAs and E-NSSA-LSAs for the IPv4 | |||
| address family."; | ||||
| leaf forwarding-address { | leaf forwarding-address { | |||
| type inet:ipv4-address; | type inet:ipv4-address; | |||
| description | description | |||
| "IPv4 Forwarding Address"; | "IPv4 forwarding address."; | |||
| } | } | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.11"; | Extensibility, Section 3.11"; | |||
| } | } | |||
| container route-tag-sub-tlv { | container route-tag-sub-tlv { | |||
| description | description | |||
| "Route Tag Sub-TLV"; | "Route-Tag sub-TLV."; | |||
| leaf route-tag { | leaf route-tag { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Route Tag"; | "Route tag."; | |||
| } | } | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.12"; | Extensibility, Section 3.12"; | |||
| } | } | |||
| uses unknown-sub-tlv; | uses unknown-sub-tlv; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "External Prefix TLV Grouping"; | "External-Prefix TLV grouping."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.6"; | Extensibility, Section 3.6"; | |||
| } | } | |||
| grouping intra-area-prefix-tlv { | grouping intra-area-prefix-tlv { | |||
| container intra-prefix-tlv { | container intra-prefix-tlv { | |||
| description | description | |||
| "Intra-Area Prefix LSA TLV"; | "Intra-Area-Prefix-LSA TLV."; | |||
| leaf metric { | leaf metric { | |||
| type ospf:ospf-metric; | type ospf:ospf-metric; | |||
| description | description | |||
| "Intra-Area Prefix Metric"; | "Intra-Area Prefix metric."; | |||
| } | } | |||
| uses ospfv3-lsa-prefix; | uses ospfv3-lsa-prefix; | |||
| list sub-tlvs { | list sub-tlvs { | |||
| description | description | |||
| "Intra-Area Prefix TLV Sub-TLVs"; | "Intra-Area-Prefix TLV sub-TLVs."; | |||
| uses unknown-sub-tlv; | uses unknown-sub-tlv; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "Intra-Area Prefix TLV Grouping"; | "Intra-Area-Prefix TLV grouping."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.7"; | Extensibility, Section 3.7"; | |||
| } | } | |||
| grouping ipv6-link-local-tlv { | grouping ipv6-link-local-addr-tlv { | |||
| container ipv6-link-local-tlv { | container ipv6-link-local-addr-tlv { | |||
| description | description | |||
| "IPv6 Link-Local LSA TLV"; | "IPv6 Link-Local Address TLV."; | |||
| leaf link-local-address { | leaf link-local-address { | |||
| type inet:ipv6-address; | type inet:ipv6-address; | |||
| description | description | |||
| "IPv6 Link Local address"; | "IPv6 Link-Local address."; | |||
| } | } | |||
| list sub-tlvs { | list sub-tlvs { | |||
| description | description | |||
| "IPv6 Link Local TLV Sub-TLVs"; | "IPv6 Link-Local Address TLV sub-TLVs."; | |||
| uses unknown-sub-tlv; | uses unknown-sub-tlv; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "IPv6 Link-Local TLV Grouping"; | "IPv6 Link-Local Address TLV grouping."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.8"; | Extensibility, Section 3.8"; | |||
| } | } | |||
| grouping ipv4-link-local-tlv { | grouping ipv4-link-local-addr-tlv { | |||
| container ipv4-link-local-tlv { | container ipv4-link-local-addr-tlv { | |||
| description | description | |||
| "IPv4 Link-Local LSA TLV"; | "IPv4 Link-Local Address TLV."; | |||
| leaf link-local-address { | leaf link-local-address { | |||
| type inet:ipv4-address; | type inet:ipv4-address; | |||
| description | description | |||
| "IPv4 Link Local address"; | "IPv4 Link-Local address."; | |||
| } | } | |||
| list sub-tlvs { | list sub-tlvs { | |||
| description | description | |||
| "IPv4 Link Local TLV Sub-TLVs"; | "IPv4 Link-Local Address TLV sub-TLVs."; | |||
| uses unknown-sub-tlv; | uses unknown-sub-tlv; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "IPv4 Link-Local TLV Grouping"; | "IPv4 Link-Local Address TLV grouping."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 3.9"; | Extensibility, Section 3.9"; | |||
| } | } | |||
| /* Configuration */ | /* Configuration */ | |||
| augment "/rt:routing/rt:control-plane-protocols" | augment "/rt:routing/rt:control-plane-protocols" | |||
| + "/rt:control-plane-protocol/ospf:ospf" { | + "/rt:control-plane-protocol/ospf:ospf" { | |||
| when "../rt:type = 'ospf:ospfv3'" { | when "../rt:type = 'ospf:ospfv3'" { | |||
| description | description | |||
| "This augments the OSPFv3 routing protocol when used."; | "This augments the OSPFv3 routing protocol when used."; | |||
| } | } | |||
| description | description | |||
| "This augments the OSPFv3 protocol instance-level configuration | "This augments the OSPFv3 protocol instance-level | |||
| with Extended LSA support. When enabled, OSPFv3 Extended LSAs | configuration with Extended LSA support. When enabled, | |||
| will be advertised and OSPFv3 Legacy LSAs will not be | OSPFv3 Extended LSAs will be advertised and OSPFv3 Legacy | |||
| advertised. When disabled, OSPFv3 Legacy LSAs will be | LSAs will not be advertised. When disabled, OSPFv3 Legacy | |||
| advertised. However, OSPFv3 Extended LSAs could still be | LSAs will be advertised. However, OSPFv3 Extended LSAs | |||
| advertised in Extended LSA Sparse-Mode to support | could still be advertised in Extended LSA Sparse Mode to | |||
| incrementally-deployed features as described insection 6.2 of | support incrementally deployed features as described in | |||
| RFC 8362."; | Section 6.2 of RFC 8362."; | |||
| leaf extended-lsa-support { | leaf extended-lsa-support { | |||
| type boolean; | type boolean; | |||
| default "false"; | default "false"; | |||
| description | description | |||
| "Enable OSPFv3 Extended LSA Support for the OSPFv3 | "Enable OSPFv3 Extended LSA support for the OSPFv3 | |||
| domain"; | domain."; | |||
| reference | reference | |||
| "RFC 8362 - OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Appendix A - Global Configuration Support"; | Extensibility, Appendix A - Global Configuration Support"; | |||
| } | } | |||
| } | } | |||
| augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
| + "rt:control-plane-protocol/ospf:ospf/ospf:" | + "rt:control-plane-protocol/ospf:ospf/ospf:" | |||
| + "areas/ospf:area" { | + "areas/ospf:area" { | |||
| when "../../../rt:type = 'ospf:ospfv3'" { | when "../../../rt:type = 'ospf:ospfv3'" { | |||
| description | description | |||
| "This augments the OSPFv3 protocol area-level configuration | "This augments the OSPFv3 protocol area-level | |||
| when used."; | configuration when used."; | |||
| } | } | |||
| description | description | |||
| "This augments the OSPFv3 protocol area-level | "This augments the OSPFv3 protocol area-level | |||
| configuration with Extended LSA support."; | configuration with Extended LSA support."; | |||
| leaf extended-lsa-support { | leaf extended-lsa-support { | |||
| type boolean; | type boolean; | |||
| must "derived-from(../ospf:area-type,'stub-nssa-area') or " | must "derived-from(../ospf:area-type,'stub-nssa-area') or " | |||
| + "(current() = 'true') or " | + "(current() = 'true') or " | |||
| + "(../../../extended-lsa-support = 'false')" { | + "(../../../extended-lsa-support = 'false')" { | |||
| description | description | |||
| "For regular areas, i.e., areas where AS-scoped LSAs | "For regular areas, i.e., areas where AS-scoped LSAs | |||
| are flooded, disabling AreaExtendedLSASupport at the | are flooded, disabling AreaExtendedLSASupport at the | |||
| area level is prohibited when ExtendedLSASupport is | area level is prohibited when ExtendedLSASupport is | |||
| enabled at the instance level. AS-External LSAs | enabled at the instance level. E-AS-External-LSAs | |||
| are flooded into all OSPFv3 regular areas (i.e., not | are flooded into all OSPFv3 regular areas (i.e., not | |||
| a stub or an NSSA area) and disabling support at the | a stub or an NSSA), and disabling support at the | |||
| area level is not possible."; | area level is not possible."; | |||
| } | } | |||
| description | description | |||
| "This augments the OSPFv3 protocol area-level configuration | "This augments the OSPFv3 protocol area-level | |||
| with Extended LSA support. When enabled, OSPFv3 Extended | configuration with Extended LSA support. When enabled, | |||
| LSAs will be advertised and OSPFv3 Legacy LSAs will not be | OSPFv3 Extended LSAs will be advertised and OSPFv3 Legacy | |||
| advertised. When disabled, OSPFv3 Legacy LSAs will be | LSAs will not be advertised. When disabled, OSPFv3 | |||
| advertised. However, OSPFv3 Extended LSAs could still be | Legacy LSAs will be advertised. However, OSPFv3 Extended | |||
| advertised in Extended LSA Sparse-Mode to support | LSAs could still be advertised in Extended LSA Sparse | |||
| incrementally-deployed features as described insection | Mode to support incrementally deployed features as | |||
| 6.2 of RFC 8362. If not specified, Extended LSA support | described in Section 6.2 of RFC 8362. If not specified, | |||
| status is inherited from the instance-level configuration."; | Extended LSA support status is inherited from the | |||
| instance-level configuration."; | ||||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Appendix B - Area Configuration Support"; | Extensibility, Appendix B - Area Configuration Support"; | |||
| } | } | |||
| } | } | |||
| /* | /* | |||
| * Link State Database (LSDB) Augmentations | * Link State Database (LSDB) Augmentations | |||
| */ | */ | |||
| 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:ospf/ospf:areas/ospf:area/" | |||
| + "ospf:interfaces/ospf:interface/ospf:database/" | + "ospf:interfaces/ospf:interface/ospf:database/" | |||
| + "ospf:link-scope-lsa-type/ospf:link-scope-lsas/" | + "ospf:link-scope-lsa-type/ospf:link-scope-lsas/" | |||
| + "ospf:link-scope-lsa/ospf:version/ospf:ospfv3/" | + "ospf:link-scope-lsa/ospf:version/ospf:ospfv3/" | |||
| + "ospf:ospfv3/ospf:body" { | + "ospf:ospfv3/ospf:body" { | |||
| when "../../../../../../../../../../../" | when "../../../../../../../../../../../" | |||
| + "rt:type = 'ospf:ospfv3'" { | + "rt:type = 'ospf:ospfv3'" { | |||
| description | description | |||
| "This augmentation is only valid for OSPFv3."; | "This augmentation is only valid for OSPFv3."; | |||
| } | } | |||
| description | description | |||
| "This augmentation adds OSPFv3 Link-Scoped Extended LSAs | "This augmentation adds OSPFv3 Link-scoped Extended LSAs | |||
| to the operational state for an interface Link State | to the operational state for an interface Link State | |||
| Database (LSDB)."; | Database (LSDB)."; | |||
| container e-link { | container e-link { | |||
| when "../../ospf:header/ospf:type = " | when "../../ospf:header/ospf:type = " | |||
| + "'ospfv3-e-lsa:ospfv3-e-link-lsa'" { | + "'ospfv3-e-lsa:ospfv3-e-link-lsa'" { | |||
| description | description | |||
| "Only applies to Extended Link LSAs."; | "Only applies to E-Link-LSAs."; | |||
| } | } | |||
| description | description | |||
| "E-Link LSA"; | "E-Link-LSA contents."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.7"; | Extensibility, Section 4.7"; | |||
| leaf rtr-priority { | leaf rtr-priority { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "Router Priority for the interface."; | "Router priority for the interface."; | |||
| } | } | |||
| uses ospf:ospfv3-lsa-options; | uses ospf:ospfv3-lsa-options; | |||
| list e-link-tlvs { | list e-link-tlvs { | |||
| description | description | |||
| "E-Link LSA TLVs"; | "E-Link-LSA TLVs."; | |||
| container unknown-tlv { | container unknown-tlv { | |||
| uses ospf:tlv; | uses ospf:tlv; | |||
| description | description | |||
| "Unknown E-Link TLV"; | "Unknown E-Link TLV."; | |||
| } | } | |||
| uses intra-area-prefix-tlv; | uses intra-area-prefix-tlv; | |||
| uses ipv6-link-local-tlv; | uses ipv6-link-local-addr-tlv; | |||
| uses ipv4-link-local-tlv; | uses ipv4-link-local-addr-tlv; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| augment "/rt:routing/" | augment "/rt:routing/" | |||
| + "rt:control-plane-protocols/rt:control-plane-protocol/" | + "rt:control-plane-protocols/rt:control-plane-protocol/" | |||
| + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" | + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" | |||
| + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" | + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" | |||
| + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" | + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" | |||
| + "ospf:ospfv3/ospf:body" { | + "ospf:ospfv3/ospf:body" { | |||
| when "../../../../../../../../../" | when "../../../../../../../../../" | |||
| + "rt:type = 'ospf:ospfv3'" { | + "rt:type = 'ospf:ospfv3'" { | |||
| description | description | |||
| "This augmentation is only valid for OSPFv3."; | "This augmentation is only valid for OSPFv3."; | |||
| } | } | |||
| description | description | |||
| "This augmentation adds OSPFv3 Area-Scoped Extended LSAs | "This augmentation adds OSPFv3 Area-scoped Extended LSAs | |||
| to the operational state for an area Link State | to the operational state for an area LSDB."; | |||
| Database (LSDB)."; | ||||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4"; | Extensibility, Section 4"; | |||
| container e-router { | container e-router { | |||
| when "../../ospf:header/ospf:type = " | when "../../ospf:header/ospf:type = " | |||
| + "'ospfv3-e-lsa:ospfv3-e-router-lsa'" { | + "'ospfv3-e-lsa:ospfv3-e-router-lsa'" { | |||
| description | description | |||
| "Only valid for OSPFv3 Extended-Router LSAs"; | "Only valid for OSPFv3 E-Router-LSAs."; | |||
| } | } | |||
| description | description | |||
| "OSPv3 Extended Router LSA"; | "OSPFv3 E-Router-LSA contents."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.1"; | Extensibility, Section 4.1"; | |||
| uses ospf:ospf-router-lsa-bits; | uses ospf:ospf-router-lsa-bits; | |||
| uses ospf:ospfv3-lsa-options; | uses ospf:ospfv3-lsa-options; | |||
| list e-router-tlvs { | list e-router-tlvs { | |||
| description | description | |||
| "E-Router LSA TLVs"; | "E-Router-LSA TLVs."; | |||
| container unknown-tlv { | container unknown-tlv { | |||
| uses ospf:tlv; | uses ospf:tlv; | |||
| description | description | |||
| "Unknown E-Router TLV"; | "Unknown E-Router TLV."; | |||
| } | } | |||
| container link-tlv { | container link-tlv { | |||
| description | description | |||
| "E-Router LSA TLV"; | "E-Router-LSA TLV."; | |||
| leaf interface-id { | leaf interface-id { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Interface ID for link"; | "Interface ID for link."; | |||
| } | } | |||
| leaf neighbor-interface-id { | leaf neighbor-interface-id { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Neighbor's Interface ID for link"; | "Neighbor's Interface ID for link."; | |||
| } | } | |||
| leaf neighbor-router-id { | leaf neighbor-router-id { | |||
| type rt-types:router-id; | type rt-types:router-id; | |||
| description | description | |||
| "Neighbor's Router ID for link"; | "Neighbor's Router ID for link."; | |||
| } | } | |||
| leaf type { | leaf type { | |||
| type ospf:router-link-type; | type ospf:router-link-type; | |||
| description | description | |||
| "Link type: 1 - Point-to-Point Link | "Link type: 1 - Point-to-Point Link | |||
| 2 - Transit Network Link | 2 - Transit Network Link | |||
| 3 - Stub Network Link Link | 3 - Stub Network Link | |||
| 4 - Virtual Link"; | 4 - Virtual Link."; | |||
| } | } | |||
| leaf metric { | leaf metric { | |||
| type ospf:ospf-link-metric; | type ospf:ospf-link-metric; | |||
| description | description | |||
| "Link Metric"; | "Link metric."; | |||
| } | } | |||
| list sub-tlvs { | list sub-tlvs { | |||
| description | description | |||
| "Link TLV Sub-TLVs"; | "Link TLV sub-TLVs."; | |||
| uses unknown-sub-tlv; | uses unknown-sub-tlv; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container e-network { | container e-network { | |||
| when "../../ospf:header/ospf:type = " | when "../../ospf:header/ospf:type = " | |||
| + "'ospfv3-e-lsa:ospfv3-e-network-lsa'" { | + "'ospfv3-e-lsa:ospfv3-e-network-lsa'" { | |||
| description | description | |||
| "Only applies to E-Network LSAs."; | "Only applies to E-Network-LSAs."; | |||
| } | } | |||
| description | description | |||
| "Extended Network LSA"; | "E-Network-LSA contents."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.2"; | Extensibility, Section 4.2"; | |||
| uses ospf:ospfv3-lsa-options; | uses ospf:ospfv3-lsa-options; | |||
| list e-network-tlvs { | list e-network-tlvs { | |||
| description | description | |||
| "E-Network LSA TLVs"; | "E-Network-LSA TLVs."; | |||
| container unknown-tlv { | container unknown-tlv { | |||
| uses ospf:tlv; | uses ospf:tlv; | |||
| description | description | |||
| "Unknown E-Network TLV"; | "Unknown E-Network TLV."; | |||
| } | } | |||
| container attached-router-tlv { | container attached-router-tlv { | |||
| description | description | |||
| "Attached Router TLV"; | "Attached-Routers TLV."; | |||
| leaf-list adjacent-neighbor-router-id { | leaf-list adjacent-neighbor-router-id { | |||
| type rt-types:router-id; | type rt-types:router-id; | |||
| description | description | |||
| "Adjacent Neighbor's Router ID"; | "Adjacent neighbor's Router ID."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container e-nssa { | container e-nssa { | |||
| when "../../ospf:header/ospf:type = " | when "../../ospf:header/ospf:type = " | |||
| + "'ospfv3-e-lsa:ospfv3-e-nssa-lsa'" { | + "'ospfv3-e-lsa:ospfv3-e-nssa-lsa'" { | |||
| description | description | |||
| "Only applies to E-NSSA LSAs."; | "Only applies to E-NSSA-LSAs."; | |||
| } | } | |||
| description | ||||
| "E-NSSA-LSA contents."; | ||||
| list e-external-tlvs { | list e-external-tlvs { | |||
| description | description | |||
| "E-NSSA LSA TLVs"; | "E-NSSA-LSA TLVs."; | |||
| container unknown-tlv { | container unknown-tlv { | |||
| uses ospf:tlv; | uses ospf:tlv; | |||
| description | description | |||
| "Unknown E-External TLV"; | "Unknown E-External TLV."; | |||
| } | } | |||
| uses external-prefix-tlv; | uses external-prefix-tlv; | |||
| } | } | |||
| description | ||||
| "E-NSSA LSA."; | ||||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.6"; | Extensibility, Section 4.6"; | |||
| } | } | |||
| container e-inter-area-prefix { | container e-inter-area-prefix { | |||
| when "../../ospf:header/ospf:type = " | when "../../ospf:header/ospf:type = " | |||
| + "'ospfv3-e-lsa:ospfv3-e-inter-area-prefix-lsa'" { | + "'ospfv3-e-lsa:ospfv3-e-inter-area-prefix-lsa'" { | |||
| description | description | |||
| "Only applies to E-Inter-Area-Prefix LSAs."; | "Only applies to E-Inter-Area-Prefix-LSAs."; | |||
| } | } | |||
| description | description | |||
| "Extended Inter-Area Prefix LSA"; | "E-Inter-Area-Prefix-LSA contents."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.3"; | Extensibility, Section 4.3"; | |||
| list e-inter-prefix-tlvs { | list e-inter-prefix-tlvs { | |||
| description | description | |||
| "E-Inter-Area-Prefix LSA TLVs"; | "E-Inter-Area-Prefix-LSA TLVs."; | |||
| container unknown-tlv { | container unknown-tlv { | |||
| uses ospf:tlv; | uses ospf:tlv; | |||
| description | description | |||
| "Unknown E-Inter-Area-Prefix TLV"; | "Unknown E-Inter-Area-Prefix TLV."; | |||
| } | } | |||
| container inter-prefix-tlv { | container inter-prefix-tlv { | |||
| description | description | |||
| "Unknown E-Inter-Area-Prefix LSA TLV"; | "Unknown E-Inter-Area-Prefix-LSA TLV."; | |||
| leaf metric { | leaf metric { | |||
| type ospf:ospf-metric; | type ospf:ospf-metric; | |||
| description | description | |||
| "Inter-Area Prefix Metric"; | "Inter-Area Prefix metric."; | |||
| } | } | |||
| uses ospfv3-lsa-prefix; | uses ospfv3-lsa-prefix; | |||
| list sub-tlvs { | list sub-tlvs { | |||
| description | description | |||
| "Inter-Area Prefix TLV Sub-TLVs"; | "Inter-Area-Prefix TLV sub-TLVs."; | |||
| uses unknown-sub-tlv; | uses unknown-sub-tlv; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container e-inter-area-router { | container e-inter-area-router { | |||
| when "../../ospf:header/ospf:type = " | when "../../ospf:header/ospf:type = " | |||
| + "'ospfv3-e-lsa:ospfv3-e-inter-area-router-lsa'" { | + "'ospfv3-e-lsa:ospfv3-e-inter-area-router-lsa'" { | |||
| description | description | |||
| "Only applies to E-Inter-Area-Router LSAs."; | "Only applies to E-Inter-Area-Router-LSAs."; | |||
| } | } | |||
| description | description | |||
| "Extended Inter-Area Router LSA"; | "E-Inter-Area-Router-LSA contents."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.4"; | Extensibility, Section 4.4"; | |||
| list e-inter-router-tlvs { | list e-inter-router-tlvs { | |||
| description | description | |||
| "E-Inter-Area-Router LSA TLVs"; | "E-Inter-Area-Router-LSA TLVs."; | |||
| container unknown-tlv { | container unknown-tlv { | |||
| uses ospf:tlv; | uses ospf:tlv; | |||
| description | description | |||
| "Unknown E-Inter-Area-Router TLV"; | "Unknown E-Inter-Area-Router TLV."; | |||
| } | } | |||
| container inter-router-tlv { | container inter-router-tlv { | |||
| description | description | |||
| "Unknown E-Inter-Area-Router LSA TLV"; | "Unknown E-Inter-Area-Router-LSA TLV."; | |||
| uses ospf:ospfv3-lsa-options; | uses ospf:ospfv3-lsa-options; | |||
| leaf metric { | leaf metric { | |||
| type ospf:ospf-metric; | type ospf:ospf-metric; | |||
| description | description | |||
| "Inter-Area Router Metric"; | "Inter-Area Router metric."; | |||
| } | } | |||
| leaf destination-router-id { | leaf destination-router-id { | |||
| type rt-types:router-id; | type rt-types:router-id; | |||
| description | description | |||
| "Destination Router ID"; | "Destination Router ID."; | |||
| } | } | |||
| list sub-tlvs { | list sub-tlvs { | |||
| description | description | |||
| "Inter-Area Router TLV Sub-TLVs"; | "Inter-Area-Router TLV sub-TLVs."; | |||
| uses unknown-sub-tlv; | uses unknown-sub-tlv; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container e-intra-area-prefix { | container e-intra-area-prefix { | |||
| when "../../ospf:header/ospf:type = " | when "../../ospf:header/ospf:type = " | |||
| + "'ospfv3-e-lsa:ospfv3-e-intra-area-prefix-lsa'" { | + "'ospfv3-e-lsa:ospfv3-e-intra-area-prefix-lsa'" { | |||
| description | description | |||
| "Only applies to E-Intra-Area-Prefix LSAs."; | "Only applies to E-Intra-Area-Prefix-LSAs."; | |||
| } | } | |||
| description | description | |||
| "E-Intra-Area-Prefix LSA"; | "E-Intra-Area-Prefix-LSA contents."; | |||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.8"; | Extensibility, Section 4.8"; | |||
| leaf referenced-ls-type { | leaf referenced-ls-type { | |||
| type uint16; | type uint16; | |||
| description | description | |||
| "Referenced Link State type"; | "Referenced Link State type."; | |||
| } | } | |||
| leaf referenced-link-state-id { | leaf referenced-link-state-id { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Referenced Link State ID"; | "Referenced Link State ID."; | |||
| } | } | |||
| leaf referenced-adv-router { | leaf referenced-adv-router { | |||
| type rt-types:router-id; | type rt-types:router-id; | |||
| description | description | |||
| "Referenced Advertising Router"; | "Referenced advertising router."; | |||
| } | } | |||
| list e-intra-prefix-tlvs { | list e-intra-prefix-tlvs { | |||
| description | description | |||
| "E-Intra-Area-Prefix LSA TLVs"; | "E-Intra-Area-Prefix-LSA TLVs."; | |||
| container unknown-tlv { | container unknown-tlv { | |||
| uses ospf:tlv; | uses ospf:tlv; | |||
| description | description | |||
| "Unknown E-Intra-Area-Prefix TLV"; | "Unknown E-Intra-Area-Prefix TLV."; | |||
| } | } | |||
| uses intra-area-prefix-tlv; | uses intra-area-prefix-tlv; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| augment "/rt:routing/" | augment "/rt:routing/" | |||
| + "rt:control-plane-protocols/rt:control-plane-protocol/" | + "rt:control-plane-protocols/rt:control-plane-protocol/" | |||
| + "ospf:ospf/ospf:database/" | + "ospf:ospf/ospf:database/" | |||
| + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" | + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" | |||
| + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" | + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" | |||
| + "ospf:ospfv3/ospf:body" { | + "ospf:ospfv3/ospf:body" { | |||
| when "../../../../../../../" | when "../../../../../../../" | |||
| + "rt:type = 'ospf:ospfv3'" { | + "rt:type = 'ospf:ospfv3'" { | |||
| description | description | |||
| "This augmentation is only valid for OSPFv3."; | "This augmentation is only valid for OSPFv3."; | |||
| } | } | |||
| description | description | |||
| "This augmentation adds OSPFv3 AS-Scoped Extended LSAs | "This augmentation adds OSPFv3 AS-scoped Extended LSAs to | |||
| to the operational state for an AS instance-level Link | the operational state for an AS instance-level LSDB."; | |||
| State Database (LSDB)."; | ||||
| container e-as-external { | container e-as-external { | |||
| when "../../ospf:header/ospf:type = " | when "../../ospf:header/ospf:type = " | |||
| + "'ospfv3-e-lsa:ospfv3-e-as-external-lsa'" { | + "'ospfv3-e-lsa:ospfv3-e-as-external-lsa'" { | |||
| description | description | |||
| "Only applies to E-AS-external LSAs."; | "Only applies to E-AS-External-LSAs."; | |||
| } | } | |||
| description | ||||
| "E-AS-External-LSA contents."; | ||||
| list e-external-tlvs { | list e-external-tlvs { | |||
| description | description | |||
| "E-External LSA TLVs"; | "E-AS-External-LSA TLVs."; | |||
| container unknown-tlv { | container unknown-tlv { | |||
| uses ospf:tlv; | uses ospf:tlv; | |||
| description | description | |||
| "Unknown E-External TLV"; | "Unknown E-External TLV."; | |||
| } | } | |||
| uses external-prefix-tlv; | uses external-prefix-tlv; | |||
| } | } | |||
| description | ||||
| "E-AS-External LSA."; | ||||
| reference | reference | |||
| "RFC 8362: OSPFv3 Link State Advertisement (LSA) | "RFC 8362: OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility, Section 4.5"; | Extensibility, Section 4.5"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 5. Security Considerations | 5. Security Considerations | |||
| The YANG modules specified in this document define a schema for data | The YANG module specified in this document defines a schema for data | |||
| that is designed to be accessed via network management protocols such | that is designed to be accessed via network management protocols such | |||
| as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer | as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer | |||
| is the secure transport layer, and the mandatory-to-implement secure | is the secure transport layer, and the mandatory-to-implement secure | |||
| transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer | transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer | |||
| is HTTPS, and the mandatory-to-implement secure transport is TLS | is HTTPS, and the mandatory-to-implement secure transport is TLS | |||
| [RFC8446]. | [RFC8446]. | |||
| The NETCONF access control model [RFC8341] provides the means to | The Network Configuration Access Control Model (NACM) [RFC8341] | |||
| restrict access for particular NETCONF or RESTCONF users to a pre- | provides the means to restrict access for particular NETCONF or | |||
| configured subset of all available NETCONF or RESTCONF protocol | RESTCONF users to a preconfigured subset of all available NETCONF or | |||
| operations and content. | RESTCONF protocol operations and content. | |||
| There are a number of data nodes defined in ietf-ospfv3-extended- | There are a number of data nodes defined in the "ietf-ospfv3- | |||
| lsa.yang module that are writable/creatable/deletable (i.e., config | extended-lsa.yang" module that are writable/creatable/deletable | |||
| true, which is the default). These data nodes may be considered | (i.e., config true, which is the default). These data nodes may be | |||
| sensitive or vulnerable in some network environments. Write | considered sensitive or vulnerable in some network environments. | |||
| operations (e.g., edit-config) to these data nodes without proper | Write operations (e.g., edit-config) to these data nodes without | |||
| protection can have a negative effect on network operations. There | proper protection can have a negative effect on network operations. | |||
| are the subtrees and data nodes and their sensitivity/vulnerability: | These are the subtrees and data nodes and their sensitivity/ | |||
| vulnerability: | ||||
| /ospf:ospf/extended-lsa-support | /ospf:ospf/extended-lsa-support | |||
| /ospf:ospf/ospf:areas/ospf:area/extended-lsa-support | /ospf:ospf/ospf:areas/ospf:area/extended-lsa-support | |||
| The ability to disable or enable OSPFv3 Extended LSA support can | The ability to disable or enable OSPFv3 Extended LSA support can | |||
| result in a Denial of Service (DoS) attack since OSPFv3 routers will | result in a Denial-of-Service (DoS) attack, since OSPFv3 routers will | |||
| 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 partioning 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-lsa.yang | Some of the readable data nodes in the "ietf-ospfv3-extended- | |||
| module may be considered sensitive or vulnerable in some network | lsa.yang" module may be considered sensitive or vulnerable in some | |||
| environments. It is thus important to control read access (e.g., via | network environments. It is thus important to control read access | |||
| get, get-config, or notification) to these data nodes. The exposure | (e.g., via get, get-config, or notification) to these data nodes. | |||
| of the Link State Database (LSDB) will 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 | ||||
| This document registers a URI in the IETF XML registry [RFC3688]. | Exposing the Link State Database (LSDB) will in turn expose the | |||
| Following the format in [RFC3688], the following registration is | detailed topology of the network. This includes topological | |||
| requested to be made: | 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. | ||||
| URI: urn:ietf:params:xml:ns:yang:ietf-ospfv3-extended-lsa | 6. IANA Considerations | |||
| Registrant Contact: The IESG. | ||||
| XML: N/A, the requested URI is an XML namespace. | ||||
| This document registers a YANG module in the YANG Module Names | Per this document, IANA has registered the following URI in the "IETF | |||
| registry [RFC6020]. | XML Registry" [RFC3688]: | |||
| name: ietf-ospfv3-extended-lsa | URI: urn:ietf:params:xml:ns:yang:ietf-ospfv3-extended-lsa | |||
| namespace: urn:ietf:params:xml:ns:yang:ietf-ospfv3-extended-lsa | Registrant Contact: The IESG. | |||
| prefix: ospfv3-e-lsa | XML: N/A; the requested URI is an XML namespace. | |||
| reference: RFC XXXX | ||||
| 7. Acknowledgements | Per this document, IANA has registered the following YANG module in | |||
| the "YANG Module Names" registry [RFC6020]: | ||||
| The YANG model was developed using the suite of YANG tools written | Name: ietf-ospfv3-extended-lsa | |||
| and maintained by numerous authors. | Maintained by IANA: N | |||
| Namespace: urn:ietf:params:xml:ns:yang:ietf-ospfv3-extended-lsa | ||||
| Prefix: ospfv3-e-lsa | ||||
| Reference: RFC 9587 | ||||
| Thanks much to Tom Petch, Mahesh Jethanandani, Renato Westphal, | 7. References | |||
| Victoria Pritchard, Reshad Rahman, and Chris Hopps for their review | ||||
| and comments. | ||||
| 8. Normative References | 7.1. Normative References | |||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
| DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, | |||
| <https://www.rfc-editor.org/info/rfc3688>. | <https://www.rfc-editor.org/info/rfc3688>. | |||
| [RFC5340] Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF | [RFC5340] Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF | |||
| for IPv6", RFC 5340, DOI 10.17487/RFC5340, July 2008, | for IPv6", RFC 5340, DOI 10.17487/RFC5340, July 2008, | |||
| <https://www.rfc-editor.org/info/rfc5340>. | <https://www.rfc-editor.org/info/rfc5340>. | |||
| [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | |||
| skipping to change at page 28, line 10 ¶ | skipping to change at line 1289 ¶ | |||
| [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | |||
| Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | |||
| <https://www.rfc-editor.org/info/rfc8446>. | <https://www.rfc-editor.org/info/rfc8446>. | |||
| [RFC9129] Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, | [RFC9129] Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, | |||
| "YANG Data Model for the OSPF Protocol", RFC 9129, | "YANG Data Model for the OSPF Protocol", RFC 9129, | |||
| DOI 10.17487/RFC9129, October 2022, | DOI 10.17487/RFC9129, October 2022, | |||
| <https://www.rfc-editor.org/info/rfc9129>. | <https://www.rfc-editor.org/info/rfc9129>. | |||
| 9. Informative References | [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", | [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", | |||
| BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | |||
| <https://www.rfc-editor.org/info/rfc8340>. | <https://www.rfc-editor.org/info/rfc8340>. | |||
| [RFC8792] Watsen, K., Auerswald, E., Farrel, A., and Q. Wu, | [RFC8792] Watsen, K., Auerswald, E., Farrel, A., and Q. Wu, | |||
| "Handling Long Lines in Content of Internet-Drafts and | "Handling Long Lines in Content of Internet-Drafts and | |||
| RFCs", RFC 8792, DOI 10.17487/RFC8792, June 2020, | RFCs", RFC 8792, DOI 10.17487/RFC8792, June 2020, | |||
| <https://www.rfc-editor.org/info/rfc8792>. | <https://www.rfc-editor.org/info/rfc8792>. | |||
| Appendix A. Configuration Example | Appendix A. Configuration Example | |||
| The following is an XML example using the YANG model for OSPFv3 | The following is an XML example (per [W3C.REC-xml-20081126]) using | |||
| Extended LSAs. | the YANG data model for OSPFv3 Extended LSAs. (Line breaks are used | |||
| per [RFC8792] and are for display purposes only.) | ||||
| Note: '\' line wrapping per [RFC8792]. | Note: '\' line wrapping per RFC 8792. | |||
| <?xml version='1.0' encoding='UTF-8'?> | <?xml version='1.0' encoding='UTF-8'?> | |||
| <routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> | <routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> | |||
| <router-id>192.0.2.1</router-id> | <router-id>192.0.2.1</router-id> | |||
| <control-plane-protocols> | <control-plane-protocols> | |||
| <control-plane-protocol> | <control-plane-protocol> | |||
| <type xmlns:ospf="urn:ietf:params:xml:ns:yang:ietf-ospf">\ | <type xmlns:ospf="urn:ietf:params:xml:ns:yang:ietf-ospf">\ | |||
| ospf:ospfv3</type> | ospf:ospfv3</type> | |||
| <name>"OSPFv3"</name> | <name>"OSPFv3"</name> | |||
| <ospf xmlns="urn:ietf:params:xml:ns:yang:ietf-ospf"> | <ospf xmlns="urn:ietf:params:xml:ns:yang:ietf-ospf"> | |||
| <extended-lsa-support xmlns="urn:ietf:params:xml:ns:yang:\ | <extended-lsa-support xmlns="urn:ietf:params:xml:ns:yang:\ | |||
| ietf-ospfv3-extended-lsa">true</extended-lsa-support> | ietf-ospfv3-extended-lsa">true</extended-lsa-support> | |||
| </ospf> | </ospf> | |||
| </control-plane-protocol> | </control-plane-protocol> | |||
| </control-plane-protocols> | </control-plane-protocols> | |||
| </routing> | </routing> | |||
| The following is the same example using JSON format. | The following is the same example using JSON format [RFC7951]. | |||
| { | { | |||
| "routing": { | "routing": { | |||
| "router-id": "192.0.2.1", | "router-id": "192.0.2.1", | |||
| "control-plane-protocols": { | "control-plane-protocols": { | |||
| "control-plane-protocol": { | "control-plane-protocol": { | |||
| "type": "ospf:ospfv3", | "type": "ospf:ospfv3", | |||
| "name": "\"OSPFv3\"", | "name": "\"OSPFv3\"", | |||
| "ospf": { | "ospf": { | |||
| "extended-lsa-support": true | "extended-lsa-support": true | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| 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 | Authors' Addresses | |||
| Acee Lindem | Acee Lindem | |||
| LabN Consulting, L.L.C. | LabN Consulting, L.L.C. | |||
| 301 Midenhall Way | 301 Midenhall Way | |||
| Cary, NC 27513 | Cary, NC 27513 | |||
| United States of America | ||||
| Email: acee.ietf@gmail.com | Email: acee.ietf@gmail.com | |||
| Sharmila Palani | Sharmila Palani | |||
| Microsoft | Microsoft | |||
| 1 Microsoft Way | 1 Microsoft Way | |||
| Redmond, WA 98052 | Redmond, WA 98052 | |||
| United States of America | ||||
| Email: sharmila.palani@microsoft.com | Email: sharmila.palani@microsoft.com | |||
| Yingzhen Qu | Yingzhen Qu | |||
| Futurewei Technologies | Futurewei Technologies | |||
| 2330 Central Expressway | 2330 Central Expressway | |||
| Santa Clara, CA 95050 | Santa Clara, CA 95050 | |||
| United States of America | United States of America | |||
| Email: yingzhen.ietf@gmail.com | Email: yingzhen.ietf@gmail.com | |||
| End of changes. 168 change blocks. | ||||
| 283 lines changed or deleted | 305 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||