| rfc9825.original | rfc9825.txt | |||
|---|---|---|---|---|
| Link State Routing (LSR) Working Group A. Lindem, Ed. | Internet Engineering Task Force (IETF) A. Lindem, Ed. | |||
| Internet-Draft LabN Consulting, L.L.C. | Request for Comments: 9825 LabN Consulting, L.L.C. | |||
| Intended status: Standards Track P. Psenak | Category: Standards Track P. Psenak | |||
| Expires: 23 August 2025 Cisco Systems | ISSN: 2070-1721 Cisco Systems | |||
| Y. Qu | Y. Qu | |||
| Futurewei Technologies | Futurewei Technologies | |||
| 19 February 2025 | July 2025 | |||
| Extensions to OSPF for Advertising Prefix Administrative Tags | Extensions to OSPF for Advertising Prefix Administrative Tags | |||
| draft-ietf-lsr-ospf-admin-tags-29 | ||||
| Abstract | Abstract | |||
| It is useful for routers in OSPFv2 and OSPFv3 routing domains to be | It is useful for routers in OSPFv2 and OSPFv3 routing domains to be | |||
| able to associate tags with prefixes. Previously, OSPFv2 and OSPFv3 | able to associate tags with prefixes. Previously, OSPFv2 and OSPFv3 | |||
| were relegated to a single tag and only for Autonomous System (AS) | were relegated to a single tag and only for Autonomous System (AS) | |||
| External and Not-So-Stubby-Area (NSSA) prefixes. With the flexible | External and Not-So-Stubby-Area (NSSA) prefixes. With the flexible | |||
| encodings provided by OSPFv2 Prefix/Link Attribute Advertisement and | encodings provided by OSPFv2 Prefix/Link Attribute Advertisement and | |||
| OSPFv3 Extended Link State Advertisements (LSAs), multiple | OSPFv3 Extended Link State Advertisements (LSAs), multiple | |||
| administrative tags may be advertised for all types of prefixes. | administrative tags may be advertised for all types of prefixes. | |||
| These administrative tags can be used for many applications including | These administrative tags can be used for many applications including | |||
| route redistribution policy, selective prefix prioritization, | route redistribution policy, selective prefix prioritization, | |||
| selective IP Fast-ReRoute (IPFRR) prefix protection, and many others. | selective IP Fast Reroute (IPFRR) prefix protection, and many others. | |||
| 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 23 August 2025. | 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/rfc9825. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2025 IETF Trust and the persons identified as the | Copyright (c) 2025 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. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
| 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | 1.1. Requirements Language | |||
| 2. Administrative Tag Sub-TLV . . . . . . . . . . . . . . . . . 3 | 2. Administrative Tag Sub-TLV | |||
| 3. Administrative Tag Applicability . . . . . . . . . . . . . . 4 | 3. Administrative Tag Applicability | |||
| 4. Protocol Operation . . . . . . . . . . . . . . . . . . . . . 5 | 4. Protocol Operation | |||
| 4.1. Equal-Cost Multipath Applicability . . . . . . . . . . . 6 | 4.1. Equal-Cost Multipath Applicability | |||
| 5. BGP-LS Advertisement . . . . . . . . . . . . . . . . . . . . 6 | 5. BGP-LS Advertisement | |||
| 6. Management Considerations . . . . . . . . . . . . . . . . . . 6 | 6. Management Considerations | |||
| 7. YANG Data Model . . . . . . . . . . . . . . . . . . . . . . . 7 | 7. YANG Data Model | |||
| 7.1. Tree for the YANG Data Model . . . . . . . . . . . . . . 7 | 7.1. Tree for the YANG Data Model | |||
| 7.2. YANG Data Model for OSPF Prefix Administrative Tags . . . 9 | 7.2. YANG Data Model for OSPF Prefix Administrative Tags | |||
| 8. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | 8. Security Considerations | |||
| 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | 9. IANA Considerations | |||
| 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 17 | 10. References | |||
| 11. Normative References . . . . . . . . . . . . . . . . . . . . 18 | 10.1. Normative References | |||
| 12. Informative References . . . . . . . . . . . . . . . . . . . 20 | 10.2. Informative References | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20 | Acknowledgments | |||
| Authors' Addresses | ||||
| 1. Introduction | 1. Introduction | |||
| It is useful for routers in OSPFv2 [RFC2328] and OSPFv3 [RFC5340] | It is useful for routers in OSPFv2 [RFC2328] and OSPFv3 [RFC5340] | |||
| routing domains to be able to associate tags with prefixes. | routing domains to be able to associate tags with prefixes. | |||
| Previously, OSPFv2 and OSPFv3 were relegated to a single tag and only | Previously, OSPFv2 and OSPFv3 were relegated to a single tag and only | |||
| for Autonomous System (AS) External and Not-So-Stubby-Area (NSSA) | for Autonomous System (AS) External and Not-So-Stubby-Area (NSSA) | |||
| prefixes. With the flexible encodings provided by OSPFv2 Prefix/Link | prefixes. With the flexible encodings provided by OSPFv2 Prefix/Link | |||
| Attribute Advertisement ([RFC7684]) and OSPFv3 Extended Link State | Attribute Advertisement [RFC7684] and OSPFv3 Extended Link State | |||
| Advertisement (LSA) ([RFC8362]), multiple administrative tags may be | Advertisement (LSA) [RFC8362], multiple administrative tags may be | |||
| advertised for all types of prefixes. These administrative tags can | advertised for all types of prefixes. These administrative tags can | |||
| be used in many applications including (but not limited to): | be used in many applications including (but not limited to): | |||
| 1. Controlling which routes are redistributed into other protocols | 1. Controlling which routes are redistributed into other protocols | |||
| for re-advertisement. | for re-advertisement. | |||
| 2. Prioritizing selected prefixes for faster convergence and | 2. Prioritizing selected prefixes for faster convergence and | |||
| installation in the forwarding plane. | installation in the forwarding plane. | |||
| 3. Identifying selected prefixes for Loop-Free Alternative (LFA) | 3. Identifying selected prefixes for Loop-Free Alternative (LFA) | |||
| protection. | protection. | |||
| Throughout this document, OSPF is used when the text applies to both | Throughout this document, "OSPF" is used when the text applies to | |||
| OSPFv2 and OSPFv3. OSPFv2 or OSPFv3 is used when the text is | both OSPFv2 and OSPFv3. "OSPFv2" or "OSPFv3" is used when the text | |||
| specific to one version of the OSPF protocol. | is specific to one version of the OSPF protocol. | |||
| The definition of the 64-bit tag was considered but discard given | The definition of the 64-bit tag was considered but discarded, given | |||
| that there is no strong requirement or use case. | that there is no strong requirement or use case. | |||
| The IS-IS protocol supports a similar mechanism that is described in | The IS-IS protocol supports a similar mechanism that is described in | |||
| RFC 5130 [RFC5130]. | [RFC5130]. | |||
| 1.1. Requirements Language | 1.1. Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 2. Administrative Tag Sub-TLV | 2. Administrative Tag Sub-TLV | |||
| This document creates a new Administrative Tag Sub-TLV for OSPFv2 and | This document creates a new Administrative Tag Sub-TLV for OSPFv2 and | |||
| OSPFv3. This Sub-TLV specifies one or more 32-bit unsigned integers | OSPFv3. This sub-TLV specifies one or more 32-bit unsigned integers | |||
| that may be associated with an OSPF advertised prefix. The precise | that may be associated with an OSPF advertised prefix. The precise | |||
| usage of these tags is beyond the scope of this document. | usage of these tags is beyond the scope of this document. | |||
| The format of the Administrative Tag TLV is as follows: | The format of the Administrative Tag Sub-TLV is as follows: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | First Administrative Tag | | | First Administrative Tag | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | o | | | o | | |||
| o | o | |||
| | o | | | o | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Last Administrative Tag | | | Last Administrative Tag | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type A 16-bit field set to: | Figure 1: Administrative Tag Sub-TLV | |||
| TBD1: "OSPFv2 Extended Prefix TLV Sub-TLV" Registry | ||||
| TBD2: "OSPFv3 Extended-LSA Sub-TLV" Registry | ||||
| TBD3: "OSPFv3 SRv6 Locator LSA Sub-TLVs" Registry | ||||
| Length A 16-bit field that indicates the length of the value | Type: A 16-bit field set to: | |||
| portion in octets and MUST be a multiple of 4 octets | ||||
| dependent on the number of administrative tags | ||||
| advertised. At least one administrative tag MUST be | ||||
| advertised. | ||||
| Value A variable length list of one or more administrative | 13: "OSPFv2 Extended Prefix TLV Sub-TLVs" registry | |||
| tags. | ||||
| Figure 1: Administrative Tag Sub-TLV | 39: "OSPFv3 Extended-LSA Sub-TLVs" registry | |||
| 6: "OSPFv3 SRv6 Locator LSA Sub-TLVs" registry | ||||
| Length: A 16-bit field that indicates the length of the value | ||||
| portion in octets and MUST be a multiple of 4 octets dependent on | ||||
| the number of administrative tags advertised. At least one | ||||
| administrative tag MUST be advertised. | ||||
| Value: A variable length list of one or more administrative tags. | ||||
| This sub-TLV will carry one or more 32-bit unsigned integer values | This sub-TLV will carry one or more 32-bit unsigned integer values | |||
| that will be used as administrative tags. If the length is 0 or not | that will be used as administrative tags. If the length is 0 or not | |||
| a multiple of 4 octets, the sub-TLV MUST be ignored and the reception | a multiple of 4 octets, the sub-TLV MUST be ignored, and the | |||
| SHOULD be logged for further analysis (subject to rate-limiting). | reception SHOULD be logged for further analysis (subject to rate- | |||
| limiting). | ||||
| 3. Administrative Tag Applicability | 3. Administrative Tag Applicability | |||
| The administrative tag TLV specified herein will be valid as a sub- | The Administrative Tag Sub-TLV specified herein will be valid as a | |||
| TLV of the following TLVs specified in [RFC7684]: | sub-TLV of the following TLVs specified in [RFC7684]: | |||
| 1. Extended Prefix TLV advertised in the OSPFv2 Extended Prefix LSA | * Extended Prefix TLV advertised in the OSPFv2 Extended Prefix | |||
| Opaque LSA | ||||
| The administrative tag TLV specified herein will be valid as a sub- | The Administrative Tag Sub-TLV specified herein will be valid as a | |||
| TLV of the following TLVs specified in [RFC8362]: | sub-TLV of the following TLVs specified in [RFC8362]: | |||
| 1. Inter-Area-Prefix TLV advertised in the E-Inter-Area-Prefix-LSA | * Inter-Area-Prefix TLV advertised in the E-Inter-Area-Prefix-LSA | |||
| 2. Intra-Area-Prefix TLV advertised in the E-Intra-Area-Prefix-LSA. | ||||
| 3. External-Prefix TLV advertised in the E-AS-External-LSA and the | * Intra-Area-Prefix TLV advertised in the E-Intra-Area-Prefix-LSA | |||
| E-NSSA-LSA | ||||
| The administrative tag TLV specified herein will be valid as a sub- | * External-Prefix TLV advertised in the E-AS-External-LSA and the E- | |||
| TLV of the following TLVs specified in [RFC9513]: | NSSA-LSA | |||
| 1. SRv6 Locator TLV advertised in the SRv6 Locator LSA | The Administrative Tag Sub-TLV specified herein will be valid as a | |||
| sub-TLV of the following TLVs specified in [RFC9513]: | ||||
| * SRv6 Locator TLV advertised in the SRv6 Locator LSA | ||||
| 4. Protocol Operation | 4. Protocol Operation | |||
| An OSPF router supporting this specification MUST be able to | An OSPF router supporting this specification MUST be able to | |||
| advertise and interpret at least one tag for all type of prefixes. | advertise and interpret at least one tag for all types of prefixes. | |||
| An OSPF router supporting this specification MAY be able to advertise | An OSPF router supporting this specification MAY be able to advertise | |||
| prefixes with multiple tags and propagate prefixes with multiple tags | prefixes with multiple tags and propagate prefixes with multiple tags | |||
| between areas. The maximum tags that an implementation supports is a | between areas. The maximum tags that an implementation supports is a | |||
| local matter depending upon supported applications using prefix tags. | local matter depending upon supported applications using prefix tags. | |||
| Depending on the application, the number of tags supported by the | Depending on the application, the number of tags supported by the | |||
| OSPF routers in the OSPF routing domain may limit deployment of that | OSPF routers in the OSPF routing domain may limit the deployment of | |||
| application. | that application. | |||
| When tags are advertised for AS External or NSSA LSA prefixes, the | When tags are advertised for AS External or NSSA LSA prefixes, the | |||
| existing tag in the OSPFv2 and OSPFv3 AS-External-LSA and NSSA-LSA | existing tag in the OSPFv2 and OSPFv3 AS-External-LSA and NSSA-LSA | |||
| encodings MUST be utilized for the first tag. Additional tags MAY be | encodings MUST be utilized for the first tag. Additional tags MAY be | |||
| advertised using the Administrative Tag Sub-TLV specified in this | advertised using the Administrative Tag Sub-TLV specified in this | |||
| document. This will facilitate backward compatibility with | document. This will facilitate backward compatibility with | |||
| implementations that do not support this specification. | implementations that do not support this specification. | |||
| An OSPF router supporting this specification SHOULD propagate | An OSPF router supporting this specification SHOULD propagate | |||
| administrative tags when acting as an Area Border Router and | administrative tags when acting as an Area Border Router (ABR) and | |||
| originating summary advertisements into other areas (unless inhibited | when originating summary advertisements into other areas (unless | |||
| by local policy Section 6). Similarly, an OSPF router supporting | inhibited by local policy (Section 6)). Similarly, an OSPF router | |||
| this specification and acting as an ABR for a Not-So-Stubby Area | supporting this specification and acting as an ABR for a NSSA SHOULD | |||
| (NSSA) SHOULD propagate tags when translating NSSA routes to AS | propagate tags when translating NSSA routes to AS External | |||
| External advertisements [RFC3101] (also subject to local policy | advertisements [RFC3101] (also subject to local policy (Section 6)). | |||
| Section 6). | ||||
| There is no implied meaning to the ordering of the tags that | There is no implied meaning to the ordering of the tags that | |||
| indicates a certain operation or set of operations need be performed | indicates a certain operation or set of operations need to be | |||
| based on the order of the tags. Each tag SHOULD be treated as an | performed based on the order of the tags. Each tag SHOULD be treated | |||
| autonomous identifier that MAY be used in policy to perform a policy | as an autonomous identifier that MAY be used in policy to perform a | |||
| action. Whether or not tag A precedes or succeeds tag B SHOULD NOT | policy action. Whether or not tag A precedes or succeeds, tag B | |||
| change the meaning of the tags The number of tags supported by an | SHOULD NOT change the meaning of the tags. The number of tags | |||
| Area Border Router (ABR) MAY limit the number of tags that are | supported by an ABR MAY limit the number of tags that are propagated. | |||
| propagated. When propagating multiple tags between areas as | When propagating multiple tags between areas as previously described, | |||
| previously described, the order of the tags MUST be preserved so that | the order of the tags MUST be preserved so that implementations | |||
| implementations supporting fewer tags will have a consistent view | supporting fewer tags will have a consistent view across areas. | |||
| across areas. | ||||
| For configured area ranges, NSSA ranges, and configured aggregation | For configured area ranges, NSSA ranges, and configured aggregation | |||
| of redistributed routes, tags from component routes SHOULD NOT be | of redistributed routes, tags from component routes SHOULD NOT be | |||
| propagated to the summary. Implementations SHOULD provide a | propagated to the summary. Implementations SHOULD provide a | |||
| mechanism to configure multiple tags for area ranges, NSSA ranges, | mechanism to configure multiple tags for area ranges, NSSA ranges, | |||
| and redistributed route summaries. | and redistributed route summaries. | |||
| 4.1. Equal-Cost Multipath Applicability | 4.1. Equal-Cost Multipath Applicability | |||
| When multiple LSAs contribute to an OSPF route, it is possible that | When multiple LSAs contribute to an OSPF route, it is possible that | |||
| these LSAs will all have different tags. In this situation, the OSPF | these LSAs will all have different tags. In this situation, the OSPF | |||
| ABR propagating the route to other areas with inter-area LSAs MUST | ABR propagating the route to other areas with inter-area LSAs MUST | |||
| associate the tags from one of the LSAs contributing a path and, if | associate the tags from one of the LSAs contributing a path and, if | |||
| the implementation supports multiple tags, MAY associate tags from | the implementation supports multiple tags, MAY associate tags from | |||
| multiple contributing LSAs up to the maximum number of tags | multiple contributing LSAs up to the maximum number of tags | |||
| supported. It is RECOMMENDED that tags from LSAs are added to the | supported. It is RECOMMENDED that tags from LSAs are added to the | |||
| path in ascending order of LSA originator Router-ID. | path in ascending order of the LSA originator Router-ID. | |||
| 5. BGP-LS Advertisement | 5. BGP-LS Advertisement | |||
| BGP-LS [RFC9552] introduced the support for advertising | Border Gateway Protocol - Link State (BGP-LS) [RFC9552] introduced | |||
| administrative tags associated with prefixes using the BGP-LS IGP | the support for advertising administrative tags associated with | |||
| Route Tag TLV (TLV 1153). This BGP-LS TLV is used to advertise the | prefixes using the BGP-LS IGP Route Tag TLV (TLV 1153). This BGP-LS | |||
| OSPF Administrative Tags specified in this document. | TLV is used to advertise the OSPF Administrative Tags specified in | |||
| this document. | ||||
| 6. Management Considerations | 6. Management Considerations | |||
| Implementations MAY include configuration of policies to modify the | Implementations MAY include configuration of policies to modify the | |||
| advertisement of tags for redistributed prefixes. Implementations | advertisement of tags for redistributed prefixes. Implementations | |||
| MAY also include configuration of policies to modify the propagation | MAY also include configuration of policies to modify the propagation | |||
| of admin-tags between areas (OSPFv2 Extended Prefix LSAs, OSPFv3 E- | of administrative tags between areas (OSPFv2 Extended Prefix Opaque | |||
| Inter-Area-Prefix-LSAs, and translated OSPFv3 E-AS-External-LSAs). | LSAs, OSPFv3 E-Inter-Area-Prefix-LSAs, and translated OSPFv3 E-AS- | |||
| However, the default behavior SHOULD be to advertise or propagate the | External-LSAs). However, the default behavior SHOULD be to advertise | |||
| lesser number of all the tags associated with the prefix or the | or propagate the lesser number of all the tags associated with the | |||
| maximum number of tags supported by the implementation. | prefix or the maximum number of tags supported by the implementation. | |||
| Both the support of this specification and the number of tags | Both the support of this specification and the number of tags | |||
| supported by OSPF routers within an OSPF routing domain will limit | supported by OSPF routers within an OSPF routing domain will limit | |||
| the usefulness and deployment of applications utilizing tags. | the usefulness and deployment of applications utilizing tags. | |||
| 7. YANG Data Model | 7. YANG Data Model | |||
| 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 data store that allows networked devices to | |||
| be managed using NETCONF [RFC6241] or RESTCONF [RFC8040]. | be managed using Network Configuration Protocol (NETCONF) [RFC6241] | |||
| or RESTCONF [RFC8040]. | ||||
| This section defines a YANG data model that can be used to configure | This section defines a YANG data model that can be used to configure | |||
| and manage the prefix administrative tags defined in this document, | and manage the prefix administrative tags defined in this document, | |||
| which augments the OSPF YANG data model [RFC9129], the OSPFv3 | which augments the OSPF YANG data model [RFC9129], the OSPFv3 | |||
| Extended LSA YANG data model [RFC9587], and the YANG Data Model for | Extended LSA YANG data model [RFC9587], and the Routing Management | |||
| Routing Management [RFC8349]. Additionally, the YANG data models | YANG data model [RFC8349]. Additionally, the YANG data models | |||
| defined in [RFC6991] is imported. | defined in [RFC6991] are imported. | |||
| 7.1. Tree for the YANG Data Model | 7.1. Tree for the YANG Data Model | |||
| This document uses the graphical representation of data models per | This document uses the graphical representation of data models per | |||
| [RFC8340]. | [RFC8340]. | |||
| The following show the tree diagram of the module: | The following shows the tree diagram of the module: | |||
| module: ietf-ospf-admin-tags | module: ietf-ospf-admin-tags | |||
| 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:ranges/ospf:range: | /ospf:ranges/ospf:range: | |||
| +--rw admin-tags | +--rw admin-tags | |||
| +--rw admin-tag* uint32 | +--rw admin-tag* uint32 | |||
| 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:interfaces/ospf:interface: | /ospf:interfaces/ospf:interface: | |||
| +--rw local-prefix-admin-tags | +--rw local-prefix-admin-tags | |||
| +--rw default-admin-tag* uint32 | +--rw default-admin-tag* uint32 | |||
| +--rw specific-prefix-admin-tag* [prefix] | +--rw specific-prefix-admin-tag* [prefix] | |||
| +--rw prefix inet:ip-prefix | +--rw prefix inet:ip-prefix | |||
| +--rw admin-tag* uint32 | +--rw admin-tag* uint32 | |||
| augment /rt:routing/rt:control-plane-protocols | augment /rt:routing/rt:control-plane-protocols | |||
| /rt:control-plane-protocol/ospf:ospf/ospf:local-rib | /rt:control-plane-protocol/ospf:ospf/ospf:local-rib | |||
| /ospf:route/ospf:next-hops/ospf:next-hop: | /ospf:route/ospf:next-hops/ospf:next-hop: | |||
| +--ro admin-tag* uint32 | +--ro admin-tag* uint32 | |||
| 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: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:ospfv2/ospf:ospfv2 | /ospf:link-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2 | |||
| /ospf:body/ospf:opaque/ospf:extended-prefix-opaque | /ospf:body/ospf:opaque/ospf:extended-prefix-opaque | |||
| /ospf:extended-prefix-tlv: | /ospf:extended-prefix-tlv: | |||
| +--ro prefix-admin-tag-sub-tlv | +--ro prefix-admin-tag-sub-tlv | |||
| +--ro admin-tag* uint32 | +--ro admin-tag* uint32 | |||
| 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:area-scope-lsas | /ospf:database/ospf:area-scope-lsa-type | |||
| /ospf:area-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2 | /ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version | |||
| /ospf:body/ospf:opaque/ospf:extended-prefix-opaque | /ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque | |||
| /ospf:extended-prefix-tlv: | /ospf:extended-prefix-opaque/ospf:extended-prefix-tlv: | |||
| +--ro prefix-admin-tag-sub-tlv | +--ro prefix-admin-tag-sub-tlv | |||
| +--ro admin-tag* uint32 | +--ro admin-tag* uint32 | |||
| augment /rt:routing/rt:control-plane-protocols | augment /rt:routing/rt:control-plane-protocols | |||
| /rt:control-plane-protocol/ospf:ospf/ospf:database | /rt:control-plane-protocol/ospf:ospf/ospf:database | |||
| /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa | /ospf:as-scope-lsa-type/ospf:as-scope-lsas | |||
| /ospf:version/ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque | /ospf:as-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2 | |||
| /ospf:extended-prefix-opaque/ospf:extended-prefix-tlv: | /ospf:body/ospf:opaque/ospf:extended-prefix-opaque | |||
| +--ro prefix-admin-tag-sub-tlv | /ospf:extended-prefix-tlv: | |||
| +--ro admin-tag* uint32 | +--ro prefix-admin-tag-sub-tlv | |||
| augment /rt:routing/rt:control-plane-protocols | +--ro admin-tag* uint32 | |||
| /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | augment /rt:routing/rt:control-plane-protocols | |||
| /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | |||
| /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | /ospf:database/ospf:area-scope-lsa-type | |||
| /ospf:body/ospfv3-e-lsa:e-inter-area-prefix | /ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version | |||
| /ospfv3-e-lsa:e-inter-prefix-tlvs | /ospf:ospfv3/ospf:ospfv3/ospf:body | |||
| /ospfv3-e-lsa:inter-prefix-tlv: | /ospfv3-e-lsa:e-inter-area-prefix | |||
| +--ro prefix-admin-tag-sub-tlv | /ospfv3-e-lsa:e-inter-prefix-tlvs | |||
| +--ro admin-tag* uint32 | /ospfv3-e-lsa:inter-prefix-tlv: | |||
| augment /rt:routing/rt:control-plane-protocols | +--ro prefix-admin-tag-sub-tlv | |||
| /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | +--ro admin-tag* uint32 | |||
| /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | augment /rt:routing/rt:control-plane-protocols | |||
| /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | |||
| /ospf:body/ospfv3-e-lsa:e-intra-area-prefix | /ospf:database/ospf:area-scope-lsa-type | |||
| /ospfv3-e-lsa:e-intra-prefix-tlvs | /ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version | |||
| /ospfv3-e-lsa:intra-prefix-tlv: | /ospf:ospfv3/ospf:ospfv3/ospf:body | |||
| +--ro prefix-admin-tag-sub-tlv | /ospfv3-e-lsa:e-intra-area-prefix | |||
| +--ro admin-tag* uint32 | /ospfv3-e-lsa:e-intra-prefix-tlvs | |||
| augment /rt:routing/rt:control-plane-protocols | /ospfv3-e-lsa:intra-prefix-tlv: | |||
| /rt:control-plane-protocol/ospf:ospf/ospf:database | +--ro prefix-admin-tag-sub-tlv | |||
| /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa | +--ro admin-tag* uint32 | |||
| /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body | augment /rt:routing/rt:control-plane-protocols | |||
| /ospfv3-e-lsa:e-as-external/ospfv3-e-lsa:e-external-tlvs | /rt:control-plane-protocol/ospf:ospf/ospf:database | |||
| /ospfv3-e-lsa:external-prefix-tlv: | /ospf:as-scope-lsa-type/ospf:as-scope-lsas | |||
| +--ro prefix-admin-tag-sub-tlv | /ospf:as-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | |||
| +--ro admin-tag* uint32 | /ospf:body/ospfv3-e-lsa:e-as-external | |||
| augment /rt:routing/rt:control-plane-protocols | /ospfv3-e-lsa:e-external-tlvs | |||
| /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | /ospfv3-e-lsa:external-prefix-tlv: | |||
| /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | +--ro prefix-admin-tag-sub-tlv | |||
| /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | +--ro admin-tag* uint32 | |||
| /ospf:body/ospfv3-e-lsa:e-nssa/ospfv3-e-lsa:e-external-tlvs | augment /rt:routing/rt:control-plane-protocols | |||
| /ospfv3-e-lsa:external-prefix-tlv: | /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | |||
| +--ro prefix-admin-tag-sub-tlv | /ospf:database/ospf:area-scope-lsa-type | |||
| +--ro admin-tag* uint32 | /ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version | |||
| /ospf:ospfv3/ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-nssa | ||||
| /ospfv3-e-lsa:e-external-tlvs | ||||
| /ospfv3-e-lsa:external-prefix-tlv: | ||||
| +--ro prefix-admin-tag-sub-tlv | ||||
| +--ro admin-tag* uint32 | ||||
| 7.2. YANG Data Model for OSPF Prefix Administrative Tags | 7.2. YANG Data Model for OSPF Prefix Administrative Tags | |||
| The following is the YANG module: | The following is the YANG module: | |||
| <CODE BEGINS> file "ietf-ospf-admin-tags@2025-02-18.yang" | <CODE BEGINS> file "ietf-ospf-admin-tags@2025-07-17.yang" | |||
| module ietf-ospf-admin-tags { | module ietf-ospf-admin-tags { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-ospf-admin-tags"; | namespace "urn:ietf:params:xml:ns:yang:ietf-ospf-admin-tags"; | |||
| prefix ospf-admin-tags; | prefix ospf-admin-tags; | |||
| 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)"; | |||
| skipping to change at page 10, line 11 ¶ | skipping to change at line 414 ¶ | |||
| Author: Yingzhen Qu | Author: Yingzhen Qu | |||
| <mailto:yingzhen.ietf@gmail.com> | <mailto:yingzhen.ietf@gmail.com> | |||
| Author: Acee Lindem | Author: Acee Lindem | |||
| <mailto:acee.ietf@gmail.com> | <mailto:acee.ietf@gmail.com> | |||
| Author: Peter Psenak | Author: Peter Psenak | |||
| <mailto:ppsenak@cisco.com>"; | <mailto:ppsenak@cisco.com>"; | |||
| description | description | |||
| "This YANG module defines the configuration | "This YANG module defines the configuration | |||
| and operational state for OSPF administrative tags. | and operational state for OSPF administrative tags. | |||
| 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) 2025 IETF Trust and the persons identified as | Copyright (c) 2025 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 9825; | |||
| see the RFC itself for full legal notices. | see the RFC itself for full legal notices."; | |||
| The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | ||||
| NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', | ||||
| 'MAY', and 'OPTIONAL' in this document are to be interpreted as | ||||
| described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, | ||||
| they appear in all capitals, as shown here."; | ||||
| reference | reference | |||
| "RFC XXXX: Extensions to OSPF for Advertising Prefix | "RFC 9825: Extensions to OSPF for Advertising Prefix | |||
| Administrative Tags."; | Administrative Tags."; | |||
| revision 2025-02-18 { | revision 2025-07-17 { | |||
| description | description | |||
| "Initial revision."; | "Initial revision."; | |||
| reference | reference | |||
| "RFC XXXX: Extensions to OSPF for Advertising Prefix | "RFC 9825: Extensions to OSPF for Advertising Prefix | |||
| Administrative Tags."; | Administrative Tags."; | |||
| } | } | |||
| grouping prefix-admin-tag-sub-tlv { | grouping prefix-admin-tag-sub-tlv { | |||
| description | description | |||
| "Prefix Administrative Tag sub-TLVs."; | "Prefix Administrative Tag Sub-TLVs."; | |||
| container prefix-admin-tag-sub-tlv { | container prefix-admin-tag-sub-tlv { | |||
| config false; | config false; | |||
| description | description | |||
| "Prefix admin tag sub-TLV."; | "Prefix Administrative Tag Sub-TLV."; | |||
| leaf-list admin-tag { | leaf-list admin-tag { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Administrative tags."; | "Administrative tags."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| /* 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" | |||
| + "ospf:areas/ospf:area/ospf:ranges/ospf:range" { | + "/ospf:areas/ospf:area/ospf:ranges/ospf:range" { | |||
| when "derived-from-or-self(../../../../../" | when "derived-from-or-self(../../../../.." | |||
| + "rt:type, 'ospf:ospf')" { | + "/rt:type, 'ospf:ospf')" { | |||
| description | description | |||
| "This augments the OSPF routing protocol area range | "This augments the OSPF routing protocol area range | |||
| configuration."; | configuration."; | |||
| } | } | |||
| description | description | |||
| "This augments the OSPF protocol area range configuration | "This augments the OSPF protocol area range configuration | |||
| with administrative tags. The configured tags will be | with administrative tags. The configured tags will be | |||
| advertised with summary prefix when it is active."; | advertised with summary prefix when it is active."; | |||
| container admin-tags { | container admin-tags { | |||
| when "../ospf:advertise = 'true'"; | when "../ospf:advertise = 'true'"; | |||
| leaf-list admin-tag { | leaf-list admin-tag { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Administrative tags."; | "Administrative tags."; | |||
| } | } | |||
| description | description | |||
| "OSPF prefix administrative tags."; | "OSPF prefix administrative tags."; | |||
| } | } | |||
| } | } | |||
| 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" | |||
| + "ospf:areas/ospf:area/ospf:interfaces/ospf:interface" { | + "/ospf:areas/ospf:area/ospf:interfaces/ospf:interface" { | |||
| when "derived-from-or-self(../../../../../" | when "derived-from-or-self(../../../../.." | |||
| + "rt:type, 'ospf:ospf')" { | + "/rt:type, 'ospf:ospf')" { | |||
| description | description | |||
| "This augments the OSPF routing protocol interface | "This augments the OSPF routing protocol interface | |||
| configuration."; | configuration."; | |||
| } | } | |||
| description | description | |||
| "This augments the OSPF protocol interface configuration | "This augments the OSPF protocol interface configuration | |||
| with Administrative Tags. The configured tags will be | with Administrative Tags. The configured tags will be | |||
| advertised with local prefixes configured for the interface."; | advertised with local prefixes configured for the interface."; | |||
| container local-prefix-admin-tags { | container local-prefix-admin-tags { | |||
| leaf-list default-admin-tag { | leaf-list default-admin-tag { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Administrative tags that will be associated with | "Administrative tags that will be associated with | |||
| local prefixes if the prefix is not specified explicitly. | local prefixes if the prefix is not specified explicitly. | |||
| If omitted, no admin tags are associated with local | If omitted, no administrative tags are associated with | |||
| prefixes by default."; | local prefixes by default."; | |||
| } | } | |||
| list specific-prefix-admin-tag { | list specific-prefix-admin-tag { | |||
| key "prefix"; | key "prefix"; | |||
| leaf prefix { | leaf prefix { | |||
| type inet:ip-prefix; | type inet:ip-prefix; | |||
| description | description | |||
| "IPv4 or IPv6 prefix"; | "IPv4 or IPv6 prefix."; | |||
| } | } | |||
| leaf-list admin-tag { | leaf-list admin-tag { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Administrative tags that will be associated with | "Administrative tags that will be associated with | |||
| the specified local prefix. If omitted, no admin tags | the specified local prefix. If omitted, no | |||
| are associated with the specified local prefix."; | administrative tags are associated with the specified | |||
| local prefix."; | ||||
| } | } | |||
| description | description | |||
| "Admin tags that are explicitly associated with | "Administrative tags that are explicitly associated with | |||
| the specified prefix."; | the specified prefix."; | |||
| } | } | |||
| description | description | |||
| "List of administrative tags that are to be advertised | "List of administrative tags that are to be advertised | |||
| with interface local prefixes."; | with interface local prefixes."; | |||
| } | } | |||
| } | } | |||
| /* Local-RIB */ | /* Local-RIB */ | |||
| augment "/rt:routing/" | ||||
| + "rt:control-plane-protocols/rt:control-plane-protocol/" | augment "/rt:routing" | |||
| + "ospf:ospf/ospf:local-rib/ospf:route/ospf:next-hops/" | + "/rt:control-plane-protocols/rt:control-plane-protocol" | |||
| + "ospf:next-hop" { | + "/ospf:ospf/ospf:local-rib/ospf:route/ospf:next-hops" | |||
| + "/ospf:next-hop" { | ||||
| description | description | |||
| "This augments local-rib next-hop with administrative tags."; | "This augments local-rib next-hop with administrative tags."; | |||
| leaf-list admin-tag { | leaf-list admin-tag { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Administrative tags."; | "Administrative tags."; | |||
| } | } | |||
| } | } | |||
| /* Database */ | /* Database */ | |||
| augment "/rt:routing/" | ||||
| + "rt:control-plane-protocols/rt:control-plane-protocol/" | augment "/rt:routing" | |||
| + "ospf:ospf/ospf:areas/ospf:area/" | + "/rt:control-plane-protocols/rt:control-plane-protocol" | |||
| + "ospf:interfaces/ospf:interface/ospf:database/" | + "/ospf:ospf/ospf:areas/ospf:area" | |||
| + "ospf:link-scope-lsa-type/ospf:link-scope-lsas/" | + "/ospf:interfaces/ospf:interface/ospf:database" | |||
| + "ospf:link-scope-lsa/ospf:version/ospf:ospfv2/" | + "/ospf:link-scope-lsa-type/ospf:link-scope-lsas" | |||
| + "ospf:ospfv2/ospf:body/ospf:opaque/" | + "/ospf:link-scope-lsa/ospf:version/ospf:ospfv2" | |||
| + "ospf:extended-prefix-opaque/ospf:extended-prefix-tlv" { | + "/ospf:ospfv2/ospf:body/ospf:opaque" | |||
| when "derived-from-or-self(../../../../../../../../../../" | + "/ospf:extended-prefix-opaque/ospf:extended-prefix-tlv" { | |||
| + "../../../../rt:type, 'ospf:ospfv2')" { | when "derived-from-or-self(../../../../../../../../../.." | |||
| + "/../../../../rt:type, 'ospf:ospfv2')" { | ||||
| description | description | |||
| "This augmentation is only valid for OSPFv2."; | "This augmentation is only valid for OSPFv2."; | |||
| } | } | |||
| description | description | |||
| "Prefix Administrative Tag Sub-TLVs for OSPFv2 extended prefix | "Prefix Administrative Tag Sub-TLVs for OSPFv2 extended prefix | |||
| TLV in type 9 opaque LSA."; | TLV in type 9 opaque LSA."; | |||
| uses prefix-admin-tag-sub-tlv; | uses prefix-admin-tag-sub-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:ospf/ospf:areas" | |||
| + "ospf:area/ospf:database/" | + "/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:ospfv2/" | + "/ospf:area-scope-lsa/ospf:version/ospf:ospfv2" | |||
| + "ospf:ospfv2/ospf:body/ospf:opaque/" | + "/ospf:ospfv2/ospf:body/ospf:opaque" | |||
| + "ospf:extended-prefix-opaque/ospf:extended-prefix-tlv" { | + "/ospf:extended-prefix-opaque/ospf:extended-prefix-tlv" { | |||
| when "derived-from-or-self(../../../../../../../../../../" | when "derived-from-or-self(../../../../../../../../../.." | |||
| + "../../rt:type, 'ospf:ospfv2')" { | + "/../../rt:type, 'ospf:ospfv2')" { | |||
| description | description | |||
| "This augmentation is only valid for OSPFv2."; | "This augmentation is only valid for OSPFv2."; | |||
| } | } | |||
| description | description | |||
| "Prefix Administrative Tag Sub-TLVs for OSPFv2 extended prefix | "Prefix Administrative Tag Sub-TLVs for OSPFv2 extended prefix | |||
| TLV in type 10 opaque LSA."; | TLV in type 10 opaque LSA."; | |||
| uses prefix-admin-tag-sub-tlv; | uses prefix-admin-tag-sub-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:ospfv2/" | + "/ospf:as-scope-lsa/ospf:version/ospf:ospfv2" | |||
| + "ospf:ospfv2/ospf:body/ospf:opaque/" | + "/ospf:ospfv2/ospf:body/ospf:opaque" | |||
| + "ospf:extended-prefix-opaque/ospf:extended-prefix-tlv" { | + "/ospf:extended-prefix-opaque/ospf:extended-prefix-tlv" { | |||
| when "derived-from-or-self(../../../../../../../../" | when "derived-from-or-self(../../../../../../../.." | |||
| + "../../rt:type, 'ospf:ospfv2')" { | + "/../../rt:type, 'ospf:ospfv2')" { | |||
| description | description | |||
| "This augmentation is only valid for OSPFv2."; | "This augmentation is only valid for OSPFv2."; | |||
| } | } | |||
| description | description | |||
| "Prefix Administrative Tag Sub-TLVs for OSPFv2 extended prefix | "Prefix Administrative Tag Sub-TLVs for OSPFv2 extended prefix | |||
| TLV in type 11 opaque LSA."; | TLV in type 11 opaque LSA."; | |||
| uses prefix-admin-tag-sub-tlv; | uses prefix-admin-tag-sub-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/ospfv3-e-lsa:e-inter-area-prefix/" | + "/ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-inter-area-prefix" | |||
| + "ospfv3-e-lsa:e-inter-prefix-tlvs/" | + "/ospfv3-e-lsa:e-inter-prefix-tlvs" | |||
| + "ospfv3-e-lsa:inter-prefix-tlv" { | + "/ospfv3-e-lsa:inter-prefix-tlv" { | |||
| when "derived-from-or-self(../../../../../../../../../../" | when "derived-from-or-self(../../../../../../../../../.." | |||
| + "../../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 | |||
| "Augment OSPFv3 Inter-Area-Prefix TLV in the | "Augment OSPFv3 Inter-Area-Prefix TLV in the | |||
| E-Inter-Area-Prefix LSA."; | E-Inter-Area-Prefix-LSA."; | |||
| uses prefix-admin-tag-sub-tlv; | uses prefix-admin-tag-sub-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/ospfv3-e-lsa:e-intra-area-prefix/" | + "/ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-intra-area-prefix" | |||
| + "ospfv3-e-lsa:e-intra-prefix-tlvs/" | + "/ospfv3-e-lsa:e-intra-prefix-tlvs" | |||
| + "ospfv3-e-lsa:intra-prefix-tlv" { | + "/ospfv3-e-lsa:intra-prefix-tlv" { | |||
| when "/rt:routing/rt:control-plane-protocols" | when "/rt:routing/rt:control-plane-protocols" | |||
| + "/rt:control-plane-protocol/rt:type = 'ospf:ospfv3'" { | + "/rt:control-plane-protocol/rt:type = 'ospf:ospfv3'" { | |||
| description | description | |||
| "This augmentation is only valid for OSPFv3."; | "This augmentation is only valid for OSPFv3."; | |||
| } | } | |||
| description | description | |||
| "Augment OSPFv3 Intra-Area-Prefix TLV in the | "Augment OSPFv3 Intra-Area-Prefix TLV in the | |||
| E-Intra-Area-Prefix LSA."; | E-Intra-Area-Prefix-LSA."; | |||
| uses prefix-admin-tag-sub-tlv; | uses prefix-admin-tag-sub-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/ospfv3-e-lsa:e-as-external/" | + "/ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-as-external" | |||
| + "ospfv3-e-lsa:e-external-tlvs/" | + "/ospfv3-e-lsa:e-external-tlvs" | |||
| + "ospfv3-e-lsa:external-prefix-tlv" { | + "/ospfv3-e-lsa:external-prefix-tlv" { | |||
| when "derived-from-or-self(../../../../../../../../" | when "derived-from-or-self(../../../../../../../.." | |||
| + "../../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 | |||
| "Augment OSPFv3 External-Prefix TLV in the E-AS-External-LSA."; | "Augment OSPFv3 External-Prefix TLV in the E-AS-External-LSA."; | |||
| uses prefix-admin-tag-sub-tlv; | uses prefix-admin-tag-sub-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/ospfv3-e-lsa:e-nssa/" | + "/ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-nssa" | |||
| + "ospfv3-e-lsa:e-external-tlvs/" | + "/ospfv3-e-lsa:e-external-tlvs" | |||
| + "ospfv3-e-lsa:external-prefix-tlv" { | + "/ospfv3-e-lsa:external-prefix-tlv" { | |||
| when "/rt:routing/rt:control-plane-protocols" | when "/rt:routing/rt:control-plane-protocols" | |||
| + "/rt:control-plane-protocol/rt:type = 'ospf:ospfv3'" { | + "/rt:control-plane-protocol/rt:type = 'ospf:ospfv3'" { | |||
| description | description | |||
| "This augmentation is only valid for OSPFv3."; | "This augmentation is only valid for OSPFv3."; | |||
| } | } | |||
| description | description | |||
| "Augment OSPFv3 External-Prefix TLV in the E-NSSA-LSA."; | "Augment OSPFv3 External-Prefix TLV in the E-NSSA-LSA."; | |||
| uses prefix-admin-tag-sub-tlv; | uses prefix-admin-tag-sub-tlv; | |||
| } | } | |||
| } | } | |||
| skipping to change at page 15, line 49 ¶ | skipping to change at line 688 ¶ | |||
| 8. Security Considerations | 8. Security Considerations | |||
| This document describes a generic mechanism for advertising | This document describes a generic mechanism for advertising | |||
| administrative tags for OSPF prefixes. The administrative tags are | administrative tags for OSPF prefixes. The administrative tags are | |||
| generally less critical than the topology information currently | generally less critical than the topology information currently | |||
| advertised by the base OSPF protocol. The security considerations | advertised by the base OSPF protocol. The security considerations | |||
| for the generic mechanism are dependent on their application. One | for the generic mechanism are dependent on their application. One | |||
| such application is to control leaking of OSPF routes to other | such application is to control leaking of OSPF routes to other | |||
| protocols (e.g., BGP [RFC4271]). If an attacker were able to modify | protocols (e.g., BGP [RFC4271]). If an attacker were able to modify | |||
| the admin tags associated with OSPF routes and they were being used | the administrative tags associated with OSPF routes, and they were | |||
| for this application, such routes could be prevented from being | being used for this application, such routes could be prevented from | |||
| advertised in routing domains where they are required (subtle denial | being advertised in routing domains where they are required (subtle | |||
| of service) or they could be advertised into routing domains where | denial of service) or they could be advertised into routing domains | |||
| they shouldn't be advertised (routing vulnerability). Security | where they shouldn't be advertised (routing vulnerability). Security | |||
| considerations for the base OSPF protocol are covered in [RFC2328] | considerations for the base OSPF protocol are covered in [RFC2328] | |||
| and [RFC5340]. | and [RFC5340]. | |||
| The ietf-ospf-admin-tag YANG module defines a data model that is | The "ietf-ospf-admin-tag" YANG module defines a data model that is | |||
| designed to be accessed via YANG-based management protocols, such as | designed to be accessed via YANG-based management protocols, such as | |||
| NETCONF [RFC6241] and RESTCONF [RFC8040]. These protocols have to | NETCONF [RFC6241] and RESTCONF [RFC8040]. These YANG-based | |||
| use a secure transport layer (e.g., SSH [RFC4252], TLS [RFC8446], and | management protocols (1) have to use a secure transport layer (e.g., | |||
| QUIC [RFC9000]) and have to use mutual authentication. | SSH [RFC4252], TLS [RFC8446], and QUIC [RFC9000]) and (2) have to use | |||
| mutual authentication. | ||||
| The NETCONF Access Control Model (NACM) [RFC8341] provides the means | The Network Configuration Access Control Model (NACM) [RFC8341] | |||
| to 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. | |||
| The following data nodes defined in the YANG module that are | There are a number of data nodes defined in this YANG module that are | |||
| writable/creatable/deletable (i.e., config true, which is the | writable/creatable/deletable (i.e., "config true", which is the | |||
| default). The modifications to these data nodes without proper | default). All writable data nodes are likely to be sensitive or | |||
| protection can have a negative effect on network operations. | vulnerable in some network environments. Write operations (e.g., | |||
| edit-config) and delete operations to these data nodes without proper | ||||
| protection or authentication can have a negative effect on network | ||||
| operations. The following subtrees and data nodes have particular | ||||
| sensitivities/vulnerabilities: | ||||
| /ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ | * /ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ | |||
| local-prefix-admin-tags | local-prefix-admin-tags | |||
| /ospf:ospf/ospf:areas/ospf:area/ospf:ranges/ospf:range/admin-tags | * /ospf:ospf/ospf:areas/ospf:area/ospf:ranges/ospf:range/admin-tags | |||
| Some of the readable data nodes in this YANG module may be considered | Some of the readable data nodes in this YANG module may be considered | |||
| sensitive or vulnerable in some network environments. Exposure of | sensitive or vulnerable in some network environments. Thus, it is | |||
| the OSPF link state database may be useful in mounting a Denial-of- | important to control read access (e.g., via get, get-config, or | |||
| Service (DoS) attacks. These are the readable data nodes: | notification) to these data nodes. Exposure of the OSPF link state | |||
| database may be useful in mounting a Denial-of-Service (DoS) attack. | ||||
| Specifically, the following subtrees and data nodes have particular | ||||
| sensitivities: | ||||
| /ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ | * /ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ | |||
| local-prefix-admin-tags | local-prefix-admin-tags | |||
| /ospf:ospf/ospf:areas/ospf:area/ospf:ranges/ospf:range/admin-tags | * /ospf:ospf/ospf:areas/ospf:area/ospf:ranges/ospf:range/admin-tags | |||
| /prefix-admin-tag-sub-tlv | * /prefix-admin-tag-sub-tlv | |||
| 9. IANA Considerations | 9. IANA Considerations | |||
| The following values should be allocated from the "OSPFv2 Extended | The following value has been allocated in the "OSPFv2 Extended Prefix | |||
| Prefix TLV Sub-TLV" Registry [RFC7684] in the "Open Shortest Path | TLV Sub-TLVs" registry [RFC7684] in the "Open Shortest Path First v2 | |||
| First v2 (OSPFv2) Parameters" group: | (OSPFv2) Parameters" registry group: | |||
| * TBD1 - Administrative Tag | ||||
| The following values should be allocated from the "OSPFv3 Extended- | ||||
| LSA Sub-TLV" Registry [RFC8362] in the "Open Shortest Path First v3 | ||||
| (OSPFv3) Parameters" group: | ||||
| * TBD2 - Administrative Tag. Since this sub-TLV only applies to | ||||
| prefixes and not links, the value of the Layer-2 Bundle Member | ||||
| (L2BM) field will be "X". | ||||
| The following values should be allocated from the "OSPFv3 SRv6 | ||||
| Locator LSA Sub-TLVs" Registry [RFC9513] in the "Open Shortest Path | ||||
| First v3 (OSPFv3) Parameters" group: | ||||
| * TBD3 - Administrative Tag | ||||
| The IANA is requested to assign one new URI from the IETF XML | ||||
| registry ([RFC3688]). Authors are suggesting the following URI: | ||||
| URI: urn:ietf:params:xml:ns:yang:ietf-ospf-admin-tags | ||||
| Registrant Contact: The IESG. | ||||
| XML: N/A, the requested URI is an XML namespace | ||||
| This document also requests one new YANG module name in the YANG | ||||
| Module Names registry ([RFC6020]) with the following suggestion : | ||||
| name: ietf-ospf-admin-tags | ||||
| namespace: urn:ietf:params:xml:ns:yang:ietf-ospf-admin-tags | ||||
| prefix: ospf-admin-tags | ||||
| reference: RFC XXXX | ||||
| 10. Acknowledgments | 13: Administrative Tag | |||
| The authors of RFC 5130 [RFC5130] are acknowledged since this | The following value has been allocated in the "OSPFv3 Extended-LSA | |||
| document draws upon both the IS-IS specification and deployment | Sub-TLVs" registry [RFC8362] in the "Open Shortest Path First v3 | |||
| experience. The text in Section 4 is adopted from RFC 5130. | (OSPFv3) Parameters" registry group: | |||
| Thanks to Donnie Savage for his comments and questions. | 39: Administrative Tag | |||
| Thanks to Ketan Talaulikar for his comments and providing the BGP-LS | Since this sub-TLV only applies to prefixes and not links, the | |||
| text. | value of the Layer-2 Bundle Member (L2BM) field will be "X". | |||
| Thanks to Tony Przygienda and Les Ginsberg for discussions on tag | The following value has been allocated in the "OSPFv3 SRv6 Locator | |||
| selection. | LSA Sub-TLVs" registry [RFC9513] in the "Open Shortest Path First v3 | |||
| (OSPFv3) Parameters" registry group: | ||||
| Thanks to Russ White for his Routing Directorate review. | 6: Administrative Tag | |||
| Thanks to Bruno Decraene and Changwang Lin for working group last | IANA has assigned one new URI in the "IETF XML Registry" [RFC3688]: | |||
| call comments. | ||||
| Thanks to Gunter van de Velde for has AD review and comments. | URI: urn:ietf:params:xml:ns:yang:ietf-ospf-admin-tags | |||
| Registrant Contact: The IESG. | ||||
| XML: N/A; the requested URI is an XML namespace. | ||||
| Thanks to David Dong for IANA review and comments. | This document also registers one new YANG module name in the "YANG | |||
| Module Names" registry [RFC6020] with the following: | ||||
| Thanks to Deb Cooley, Roman Danyliw, and John Scudder for IESG review | Name: ietf-ospf-admin-tags | |||
| and comments. | Namespace: urn:ietf:params:xml:ns:yang:ietf-ospf-admin-tags | |||
| Prefix: ospf-admin-tags | ||||
| Reference: RFC 9825 | ||||
| Thanks to Mahesh Jethanandani for an extensive IESG review of the | 10. References | |||
| YANG model. | ||||
| 11. Normative References | 10.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, | [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, | |||
| DOI 10.17487/RFC2328, April 1998, | DOI 10.17487/RFC2328, April 1998, | |||
| <https://www.rfc-editor.org/info/rfc2328>. | <https://www.rfc-editor.org/info/rfc2328>. | |||
| skipping to change at page 18, line 39 ¶ | skipping to change at line 800 ¶ | |||
| [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 | |||
| the Network Configuration Protocol (NETCONF)", RFC 6020, | the Network Configuration Protocol (NETCONF)", RFC 6020, | |||
| DOI 10.17487/RFC6020, October 2010, | DOI 10.17487/RFC6020, October 2010, | |||
| <https://www.rfc-editor.org/info/rfc6020>. | <https://www.rfc-editor.org/info/rfc6020>. | |||
| [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | ||||
| and A. Bierman, Ed., "Network Configuration Protocol | ||||
| (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | ||||
| <https://www.rfc-editor.org/info/rfc6241>. | ||||
| [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", | [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", | |||
| RFC 6991, DOI 10.17487/RFC6991, July 2013, | RFC 6991, DOI 10.17487/RFC6991, July 2013, | |||
| <https://www.rfc-editor.org/info/rfc6991>. | <https://www.rfc-editor.org/info/rfc6991>. | |||
| [RFC7684] Psenak, P., Gredler, H., Shakir, R., Henderickx, W., | [RFC7684] Psenak, P., Gredler, H., Shakir, R., Henderickx, W., | |||
| Tantsura, J., and A. Lindem, "OSPFv2 Prefix/Link Attribute | Tantsura, J., and A. Lindem, "OSPFv2 Prefix/Link Attribute | |||
| Advertisement", RFC 7684, DOI 10.17487/RFC7684, November | Advertisement", RFC 7684, DOI 10.17487/RFC7684, November | |||
| 2015, <https://www.rfc-editor.org/info/rfc7684>. | 2015, <https://www.rfc-editor.org/info/rfc7684>. | |||
| [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | |||
| RFC 7950, DOI 10.17487/RFC7950, August 2016, | RFC 7950, DOI 10.17487/RFC7950, August 2016, | |||
| <https://www.rfc-editor.org/info/rfc7950>. | <https://www.rfc-editor.org/info/rfc7950>. | |||
| [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | ||||
| Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | ||||
| <https://www.rfc-editor.org/info/rfc8040>. | ||||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration | [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration | |||
| Access Control Model", STD 91, RFC 8341, | Access Control Model", STD 91, RFC 8341, | |||
| DOI 10.17487/RFC8341, March 2018, | DOI 10.17487/RFC8341, March 2018, | |||
| <https://www.rfc-editor.org/info/rfc8341>. | <https://www.rfc-editor.org/info/rfc8341>. | |||
| [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for | [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for | |||
| Routing Management (NMDA Version)", RFC 8349, | Routing Management (NMDA Version)", RFC 8349, | |||
| DOI 10.17487/RFC8349, March 2018, | DOI 10.17487/RFC8349, March 2018, | |||
| <https://www.rfc-editor.org/info/rfc8349>. | <https://www.rfc-editor.org/info/rfc8349>. | |||
| [RFC8362] Lindem, A., Roy, A., Goethals, D., Reddy Vallem, V., and | [RFC8362] Lindem, A., Roy, A., Goethals, D., Reddy Vallem, V., and | |||
| F. Baker, "OSPFv3 Link State Advertisement (LSA) | F. Baker, "OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility", RFC 8362, DOI 10.17487/RFC8362, April | Extensibility", RFC 8362, DOI 10.17487/RFC8362, April | |||
| 2018, <https://www.rfc-editor.org/info/rfc8362>. | 2018, <https://www.rfc-editor.org/info/rfc8362>. | |||
| [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | ||||
| Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | ||||
| <https://www.rfc-editor.org/info/rfc8446>. | ||||
| [RFC9000] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based | ||||
| Multiplexed and Secure Transport", RFC 9000, | ||||
| DOI 10.17487/RFC9000, May 2021, | ||||
| <https://www.rfc-editor.org/info/rfc9000>. | ||||
| [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>. | |||
| [RFC9513] Li, Z., Hu, Z., Talaulikar, K., Ed., and P. Psenak, | [RFC9513] Li, Z., Hu, Z., Talaulikar, K., Ed., and P. Psenak, | |||
| "OSPFv3 Extensions for Segment Routing over IPv6 (SRv6)", | "OSPFv3 Extensions for Segment Routing over IPv6 (SRv6)", | |||
| RFC 9513, DOI 10.17487/RFC9513, December 2023, | RFC 9513, DOI 10.17487/RFC9513, December 2023, | |||
| <https://www.rfc-editor.org/info/rfc9513>. | <https://www.rfc-editor.org/info/rfc9513>. | |||
| [RFC9552] Talaulikar, K., Ed., "Distribution of Link-State and | [RFC9552] Talaulikar, K., Ed., "Distribution of Link-State and | |||
| Traffic Engineering Information Using BGP", RFC 9552, | Traffic Engineering Information Using BGP", RFC 9552, | |||
| DOI 10.17487/RFC9552, December 2023, | DOI 10.17487/RFC9552, December 2023, | |||
| <https://www.rfc-editor.org/info/rfc9552>. | <https://www.rfc-editor.org/info/rfc9552>. | |||
| [RFC9587] Lindem, A., Palani, S., and Y. Qu, "YANG Data Model for | [RFC9587] Lindem, A., Palani, S., and Y. Qu, "YANG Data Model for | |||
| OSPFv3 Extended Link State Advertisements (LSAs)", | OSPFv3 Extended Link State Advertisements (LSAs)", | |||
| RFC 9587, DOI 10.17487/RFC9587, June 2024, | RFC 9587, DOI 10.17487/RFC9587, June 2024, | |||
| <https://www.rfc-editor.org/info/rfc9587>. | <https://www.rfc-editor.org/info/rfc9587>. | |||
| 12. Informative References | 10.2. Informative References | |||
| [RFC3101] Murphy, P., "The OSPF Not-So-Stubby Area (NSSA) Option", | [RFC3101] Murphy, P., "The OSPF Not-So-Stubby Area (NSSA) Option", | |||
| RFC 3101, DOI 10.17487/RFC3101, January 2003, | RFC 3101, DOI 10.17487/RFC3101, January 2003, | |||
| <https://www.rfc-editor.org/info/rfc3101>. | <https://www.rfc-editor.org/info/rfc3101>. | |||
| [RFC4252] Ylonen, T. and C. Lonvick, Ed., "The Secure Shell (SSH) | [RFC4252] Ylonen, T. and C. Lonvick, Ed., "The Secure Shell (SSH) | |||
| Authentication Protocol", RFC 4252, DOI 10.17487/RFC4252, | Authentication Protocol", RFC 4252, DOI 10.17487/RFC4252, | |||
| January 2006, <https://www.rfc-editor.org/info/rfc4252>. | January 2006, <https://www.rfc-editor.org/info/rfc4252>. | |||
| [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A | [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A | |||
| Border Gateway Protocol 4 (BGP-4)", RFC 4271, | Border Gateway Protocol 4 (BGP-4)", RFC 4271, | |||
| DOI 10.17487/RFC4271, January 2006, | DOI 10.17487/RFC4271, January 2006, | |||
| <https://www.rfc-editor.org/info/rfc4271>. | <https://www.rfc-editor.org/info/rfc4271>. | |||
| [RFC5130] Previdi, S., Shand, M., Ed., and C. Martin, "A Policy | [RFC5130] Previdi, S., Shand, M., Ed., and C. Martin, "A Policy | |||
| Control Mechanism in IS-IS Using Administrative Tags", | Control Mechanism in IS-IS Using Administrative Tags", | |||
| RFC 5130, DOI 10.17487/RFC5130, February 2008, | RFC 5130, DOI 10.17487/RFC5130, February 2008, | |||
| <https://www.rfc-editor.org/info/rfc5130>. | <https://www.rfc-editor.org/info/rfc5130>. | |||
| [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | ||||
| and A. Bierman, Ed., "Network Configuration Protocol | ||||
| (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | ||||
| <https://www.rfc-editor.org/info/rfc6241>. | ||||
| [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | ||||
| Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | ||||
| <https://www.rfc-editor.org/info/rfc8040>. | ||||
| [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>. | |||
| [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | ||||
| Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | ||||
| <https://www.rfc-editor.org/info/rfc8446>. | ||||
| [RFC9000] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based | ||||
| Multiplexed and Secure Transport", RFC 9000, | ||||
| DOI 10.17487/RFC9000, May 2021, | ||||
| <https://www.rfc-editor.org/info/rfc9000>. | ||||
| Acknowledgments | ||||
| The authors of [RFC5130] are acknowledged, since this document draws | ||||
| upon both the IS-IS specification and deployment experience. The | ||||
| text in Section 4 is adopted from [RFC5130]. | ||||
| Thanks to Donnie Savage for his comments and questions. | ||||
| Thanks to Ketan Talaulikar for his comments and providing the BGP-LS | ||||
| text. | ||||
| Thanks to Tony Przygienda and Les Ginsberg for discussions on tag | ||||
| selection. | ||||
| Thanks to Russ White for his Routing Directorate review. | ||||
| Thanks to Bruno Decraene and Changwang Lin for working group last | ||||
| call comments. | ||||
| Thanks to Gunter Van de Velde for has AD review and comments. | ||||
| Thanks to David Dong for IANA review and comments. | ||||
| Thanks to Deb Cooley, Roman Danyliw, and John Scudder for IESG review | ||||
| and comments. | ||||
| Thanks to Mahesh Jethanandani for an extensive IESG review of the | ||||
| YANG data model. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Acee Lindem (editor) | Acee Lindem (editor) | |||
| 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 | United States of America | |||
| Email: acee.ietf@gmail.com | Email: acee.ietf@gmail.com | |||
| Peter Psenak | Peter Psenak | |||
| Cisco Systems | Cisco Systems | |||
| Apollo Business Center | Apollo Business Center | |||
| Mlynske nivy 43 | Mlynske nivy 43 | |||
| Bratislava 821 09 | 821 09 Bratislava | |||
| Slovakia | Slovakia | |||
| Email: ppsenak@cisco.com | Email: ppsenak@cisco.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. 98 change blocks. | ||||
| 396 lines changed or deleted | 412 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||