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. |