rfc9825v2.txt | rfc9825.txt | |||
---|---|---|---|---|
skipping to change at line 116 ¶ | skipping to change at line 116 ¶ | |||
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 | "OPTIONAL" in this document are to be interpreted as described in | |||
BCP 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 sub-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 | |||
skipping to change at line 162 ¶ | skipping to change at line 162 ¶ | |||
Value: A variable length list of one or more administrative tags. | 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 | a multiple of 4 octets, the sub-TLV MUST be ignored, and the | |||
reception SHOULD be logged for further analysis (subject to rate- | reception SHOULD be logged for further analysis (subject to rate- | |||
limiting). | limiting). | |||
3. Administrative Tag Applicability | 3. Administrative Tag Applicability | |||
The Administrative Tag sub-TLV specified herein will be valid as a | The Administrative Tag Sub-TLV specified herein will be valid as a | |||
sub-TLV of the following TLVs specified in [RFC7684]: | sub-TLV of the following TLVs specified in [RFC7684]: | |||
* Extended Prefix TLV advertised in the OSPFv2 Extended Prefix | * Extended Prefix TLV advertised in the OSPFv2 Extended Prefix | |||
Opaque LSA | Opaque LSA | |||
The Administrative Tag sub-TLV specified herein will be valid as a | The Administrative Tag Sub-TLV specified herein will be valid as a | |||
sub-TLV of the following TLVs specified in [RFC8362]: | sub-TLV of the following TLVs specified in [RFC8362]: | |||
* Inter-Area-Prefix TLV advertised in the E-Inter-Area-Prefix-LSA | * Inter-Area-Prefix TLV advertised in the E-Inter-Area-Prefix-LSA | |||
* Intra-Area-Prefix TLV advertised in the E-Intra-Area-Prefix-LSA | * Intra-Area-Prefix TLV advertised in the E-Intra-Area-Prefix-LSA | |||
* External-Prefix TLV advertised in the E-AS-External-LSA and the E- | * External-Prefix TLV advertised in the E-AS-External-LSA and the E- | |||
NSSA-LSA | NSSA-LSA | |||
The Administrative Tag sub-TLV specified herein will be valid as a | The Administrative Tag Sub-TLV specified herein will be valid as a | |||
sub-TLV of the following TLVs specified in [RFC9513]: | sub-TLV of the following TLVs specified in [RFC9513]: | |||
* 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 types 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 the deployment of | OSPF routers in the OSPF routing domain may limit the deployment of | |||
that 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 (ABR) and | administrative tags when acting as an Area Border Router (ABR) and | |||
when originating summary advertisements into other areas (unless | when originating summary advertisements into other areas (unless | |||
inhibited by local policy (Section 6)). Similarly, an OSPF router | inhibited by local policy (Section 6)). Similarly, an OSPF router | |||
supporting this specification and acting as an ABR for a NSSA SHOULD | supporting this specification and acting as an ABR for a NSSA SHOULD | |||
propagate tags when translating NSSA routes to AS External | propagate tags when translating NSSA routes to AS External | |||
advertisements [RFC3101] (also subject to local policy (Section 6)). | advertisements [RFC3101] (also subject to local policy (Section 6)). | |||
skipping to change at line 444 ¶ | skipping to change at line 444 ¶ | |||
revision 2025-07-17 { | revision 2025-07-17 { | |||
description | description | |||
"Initial revision."; | "Initial revision."; | |||
reference | reference | |||
"RFC 9825: 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 Administrative 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 */ | |||
skipping to change at line 562 ¶ | skipping to change at line 562 ¶ | |||
+ "/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:link-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 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" | |||
End of changes. 11 change blocks. | ||||
11 lines changed or deleted | 11 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |