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 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 TLV specified herein will be valid as a sub- | |||
TLV of the following TLVs specified in [RFC7684]: | 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 TLV specified herein will be valid as a sub- | |||
TLV of the following TLVs specified in [RFC8362]: | 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 | ||||
* External-Prefix TLV advertised in the E-AS-External-LSA and the E- | ||||
NSSA-LSA | ||||
The administrative tag TLV specified herein will be valid as a sub- | The administrative tag TLV specified herein will be valid as a sub- | |||
TLV of the following TLVs specified in [RFC9513]: | TLV of the following TLVs specified in [RFC9513]: | |||
1. SRv6 Locator TLV advertised in the SRv6 Locator LSA | * 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 admin-tags between areas (OSPFv2 Extended Prefix Opaque LSAs, | |||
Inter-Area-Prefix-LSAs, and translated OSPFv3 E-AS-External-LSAs). | OSPFv3 E-Inter-Area-Prefix-LSAs, and translated OSPFv3 E-AS-External- | |||
However, the default behavior SHOULD be to advertise or propagate the | LSAs). However, the default behavior SHOULD be to advertise or | |||
lesser number of all the tags associated with the prefix or the | 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]. NOTE: '\' line wrapping is per [RFC8792]. | |||
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-\ | |||
/ospf:area-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2 | lsas | |||
/ospf:body/ospf:opaque/ospf:extended-prefix-opaque | /ospf:area-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2 | |||
/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:database | augment /rt:routing/rt:control-plane-protocols | |||
/ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa | /rt:control-plane-protocol/ospf:ospf/ospf:database | |||
/ospf:version/ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque | /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-\ | |||
/ospf:extended-prefix-opaque/ospf:extended-prefix-tlv: | lsa | |||
+--ro prefix-admin-tag-sub-tlv | /ospf:version/ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque | |||
+--ro admin-tag* uint32 | /ospf:extended-prefix-opaque/ospf:extended-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-inter-area-prefix | /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-\ | |||
/ospfv3-e-lsa:e-inter-prefix-tlvs | lsas | |||
/ospfv3-e-lsa:inter-prefix-tlv: | /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | |||
+--ro prefix-admin-tag-sub-tlv | /ospf:body/ospfv3-e-lsa:e-inter-area-prefix | |||
+--ro admin-tag* uint32 | /ospfv3-e-lsa:e-inter-prefix-tlvs | |||
augment /rt:routing/rt:control-plane-protocols | /ospfv3-e-lsa:inter-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/ospf:area-scope-lsas | +--ro admin-tag* uint32 | |||
/ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | augment /rt:routing/rt:control-plane-protocols | |||
/ospf:body/ospfv3-e-lsa:e-intra-area-prefix | /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | |||
/ospfv3-e-lsa:e-intra-prefix-tlvs | /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-\ | |||
/ospfv3-e-lsa:intra-prefix-tlv: | 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-intra-area-prefix | |||
augment /rt:routing/rt:control-plane-protocols | /ospfv3-e-lsa:e-intra-prefix-tlvs | |||
/rt:control-plane-protocol/ospf:ospf/ospf:database | /ospfv3-e-lsa:intra-prefix-tlv: | |||
/ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa | +--ro prefix-admin-tag-sub-tlv | |||
/ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body | +--ro admin-tag* uint32 | |||
/ospfv3-e-lsa:e-as-external/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:database | |||
+--ro prefix-admin-tag-sub-tlv | /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-\ | |||
+--ro admin-tag* uint32 | lsa | |||
augment /rt:routing/rt:control-plane-protocols | /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body | |||
/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | /ospfv3-e-lsa:e-as-external/ospfv3-e-lsa:e-external-tlvs | |||
/ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | /ospfv3-e-lsa:external-prefix-tlv: | |||
/ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | +--ro prefix-admin-tag-sub-tlv | |||
/ospf:body/ospfv3-e-lsa:e-nssa/ospfv3-e-lsa:e-external-tlvs | +--ro admin-tag* uint32 | |||
/ospfv3-e-lsa:external-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 | ||||
/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 415 ¶ | |||
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 admin 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 admin tags are associated with local | |||
prefixes by default."; | 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 admin tags | |||
are associated with the specified local prefix."; | are associated with the specified local prefix."; | |||
} | } | |||
description | description | |||
"Admin tags that are explicitly associated with | "Admin 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 admin tags associated with OSPF routes, and they were being used | |||
for this application, such routes could be prevented from being | for this application, such routes could be prevented from being | |||
advertised in routing domains where they are required (subtle denial | advertised in routing domains where they are required (subtle denial | |||
of service) or they could be advertised into routing domains where | of service) or they could be advertised into routing domains where | |||
they shouldn't be advertised (routing vulnerability). Security | 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 protocols have to | |||
use a secure transport layer (e.g., SSH [RFC4252], TLS [RFC8446], and | use a secure transport layer (e.g., SSH [RFC4252], TLS [RFC8446], and | |||
QUIC [RFC9000]) and have to use mutual authentication. | QUIC [RFC9000]) and 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). Write operations (e.g., edit-config) and delete operations | |||
protection can have a negative effect on network operations. | to these data nodes without proper protection or authentication can | |||
have a negative effect on network operations. | ||||
/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. Exposure of | |||
the OSPF link state database may be useful in mounting a Denial-of- | the OSPF link state database may be useful in mounting a Denial-of- | |||
Service (DoS) attacks. These are the readable data nodes: | Service (DoS) attack. These are the readable data nodes: | |||
/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>. | |||
[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>. | |||
[RFC4252] Ylonen, T. and C. Lonvick, Ed., "The Secure Shell (SSH) | ||||
Authentication Protocol", RFC 4252, DOI 10.17487/RFC4252, | ||||
January 2006, <https://www.rfc-editor.org/info/rfc4252>. | ||||
[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., | [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | |||
skipping to change at page 20, line 15 ¶ | skipping to change at line 867 ¶ | |||
[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) | ||||
Authentication Protocol", RFC 4252, DOI 10.17487/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>. | |||
[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, | ||||
"Handling Long Lines in Content of Internet-Drafts and | ||||
RFCs", RFC 8792, DOI 10.17487/RFC8792, June 2020, | ||||
<https://www.rfc-editor.org/info/rfc8792>. | ||||
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. 90 change blocks. | ||||
364 lines changed or deleted | 378 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |