rfc9792v2.txt | rfc9792.txt | |||
---|---|---|---|---|
skipping to change at line 22 ¶ | skipping to change at line 22 ¶ | |||
Prefix Flag Extension for OSPFv2 and OSPFv3 | Prefix Flag Extension for OSPFv2 and OSPFv3 | |||
Abstract | Abstract | |||
Each OSPF prefix can be advertised with an 8-bit field to indicate | Each OSPF prefix can be advertised with an 8-bit field to indicate | |||
specific properties of that prefix. However, all the OSPFv3 Prefix | specific properties of that prefix. However, all the OSPFv3 Prefix | |||
Options bits have already been assigned, and only a few bits remain | Options bits have already been assigned, and only a few bits remain | |||
unassigned in the Flags field of the OSPFv2 Extended Prefix TLV. | unassigned in the Flags field of the OSPFv2 Extended Prefix TLV. | |||
This document solves this problem by defining a variable-length | This document solves this problem by defining a variable-length | |||
Prefix Attribute Flags sub-TLV for OSPF. This sub-TLV is applicable | Prefix Extended Flags sub-TLV for OSPF. This sub-TLV is applicable | |||
to OSPFv2 and OSPFv3. | to OSPFv2 and OSPFv3. | |||
Status of This Memo | Status of This Memo | |||
This is an Internet Standards Track document. | This is an Internet Standards Track document. | |||
This document is a product of the Internet Engineering Task Force | This document is a product of the Internet Engineering Task Force | |||
(IETF). It represents the consensus of the IETF community. It has | (IETF). It represents the consensus of the IETF community. It has | |||
received public review and has been approved for publication by the | received public review and has been approved for publication by the | |||
Internet Engineering Steering Group (IESG). Further information on | Internet Engineering Steering Group (IESG). Further information on | |||
skipping to change at line 58 ¶ | skipping to change at line 58 ¶ | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Revised BSD License text as described in Section 4.e of the | include Revised BSD License text as described in Section 4.e of the | |||
Trust Legal Provisions and are provided without warranty as described | Trust Legal Provisions and are provided without warranty as described | |||
in the Revised BSD License. | in the Revised BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction | 1. Introduction | |||
1.1. Requirements Language | 1.1. Requirements Language | |||
2. Variable-Length Prefix Attribute Flags Sub-TLV | 2. Variable-Length Prefix Extended Flags Sub-TLV | |||
3. Backward Compatibility | 3. Backward Compatibility | |||
4. IANA Considerations | 4. IANA Considerations | |||
4.1. OSPFv2 | 4.1. OSPFv2 | |||
4.1.1. OSPFv2 Prefix Attribute Flags Sub-TLV | 4.1.1. OSPFv2 Prefix Extended Flags Sub-TLV | |||
4.1.2. OSPFv2 Prefix Attribute Flags Registry | 4.1.2. OSPFv2 Prefix Extended Flags Registry | |||
4.2. OSPFv3 | 4.2. OSPFv3 | |||
4.2.1. OSPFv3 Prefix Attribute Flags Sub-TLV | 4.2.1. OSPFv3 Prefix Extended Flags Sub-TLV | |||
4.2.2. OSPFv3 Prefix Attribute Flags Registry | 4.2.2. OSPFv3 Prefix Extended Flags Registry | |||
5. Security Considerations | 5. Security Considerations | |||
6. References | 6. References | |||
6.1. Normative References | 6.1. Normative References | |||
6.2. Informative References | 6.2. Informative References | |||
Acknowledgements | Acknowledgements | |||
Authors' Addresses | Authors' Addresses | |||
1. Introduction | 1. Introduction | |||
Each OSPF prefix can be advertised with an 8-bit field to indicate | Each OSPF prefix can be advertised with an 8-bit field to indicate | |||
specific properties of that prefix. This is done using the OSPFv3 | specific properties of that prefix. This is done using the OSPFv3 | |||
Prefix Options (Appendix A.4.1.1 of [RFC5340]) and the Flags field in | Prefix Options (Appendix A.4.1.1 of [RFC5340]) and the Flags field in | |||
the OSPFv2 Extended Prefix TLV (Section 2.1 of [RFC7684]). The rest | the OSPFv2 Extended Prefix TLV (Section 2.1 of [RFC7684]). The rest | |||
of this document refers to these 8-bit fields in both OSPFv2 and | of this document refers to these 8-bit fields in both OSPFv2 and | |||
OSPFv3 as the "existing fixed-size prefix attribute flags". | OSPFv3 as the "existing fixed-size prefix flags". | |||
However, all the OSPFv3 Prefix Options bits have already been | However, all the OSPFv3 Prefix Options bits have already been | |||
assigned (see the "OSPFv3 Prefix Options (8 bits)" IANA registry | assigned (see the "OSPFv3 Prefix Options (8 bits)" IANA registry | |||
[IANA-OSPFv3-PO]). Also, at the time of publication of this | [IANA-OSPFv3-PO]). Also, at the time of publication of this | |||
document, only 5 bits remain unassigned in the Flags field of the | document, only 5 bits remain unassigned in the Flags field of the | |||
OSPFv2 Extended Prefix TLV (see the "OSPFv2 Extended Prefix TLV | OSPFv2 Extended Prefix TLV (see the "OSPFv2 Extended Prefix TLV | |||
Flags" IANA registry [IANA-OSPFv2-EPF]). | Flags" IANA registry [IANA-OSPFv2-EPF]). | |||
This document solves the problem of insufficient flag bits for the | This document solves the problem of insufficient flag bits for the | |||
signaling of prefix properties in OSPF by defining a variable-length | signaling of prefix properties in OSPF by defining a variable-length | |||
Prefix Attribute Flags sub-TLV for OSPFv2 and OSPFv3. | Prefix Extended Flags sub-TLV for OSPFv2 and OSPFv3. | |||
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. Variable-Length Prefix Attribute Flags Sub-TLV | 2. Variable-Length Prefix Extended Flags Sub-TLV | |||
This document defines a variable-length Prefix Attribute Flags sub- | This document defines a variable-length Prefix Extended Flags sub-TLV | |||
TLV for OSPFv2 and OSPFv3. The sub-TLV specifies the variable-length | for OSPFv2 and OSPFv3. The sub-TLV specifies the variable-length | |||
Prefix Attribute Flags field to advertise additional attributes | Prefix Extended Flags field to advertise additional attributes | |||
associated with OSPF prefixes. The advertisement and processing of | associated with OSPF prefixes. The advertisement and processing of | |||
the existing fixed-size prefix attribute flags remain unchanged. | the existing fixed-size prefix flags remain unchanged. | |||
The format of the OSPFv2/OSPFv3 Prefix Attribute Flags sub-TLV is | The format of the OSPFv2/OSPFv3 Prefix Extended Flags sub-TLV is | |||
shown in Figure 1. | shown in Figure 1. | |||
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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
// Prefix Attribute Flags (Variable) // | // Prefix Extended Flags (Variable) // | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 1: Format of OSPFv2/OSPFv3 Prefix Attribute Flags Sub-TLV | Figure 1: Format of OSPFv2/OSPFv3 Prefix Extended Flags Sub-TLV | |||
where: | where: | |||
Type (2 octets): 11 for OSPFv2 and 37 for OSPFv3 | Type (2 octets): 11 for OSPFv2 and 37 for OSPFv3 | |||
Length (2 octets): Variable, dependent on the included Prefix | Length (2 octets): Variable, dependent on the included Prefix | |||
Attribute Flags field. This indicates the length of the Prefix | Extended Flags field. This indicates the length of the Prefix | |||
Attribute Flags field in octets. The length MUST be a multiple of | Extended Flags field in octets. The length MUST be a multiple of | |||
4 octets. If the length is not a multiple of 4 octets, the Link | 4 octets. If the length is not a multiple of 4 octets, the Link | |||
State Advertisement (LSA) is malformed and MUST be ignored. | State Advertisement (LSA) is malformed and MUST be ignored. | |||
Prefix Attribute Flags (Variable): The extended flag field. This | Prefix Extended Flags (Variable): The extended flag field. This | |||
field contains a variable number of flags, grouped in 4-octet | field contains a variable number of flags, grouped in 4-octet | |||
blocks. The bits are numbered starting from bit 0 as the most | blocks. The bits are numbered starting from bit 0 as the most | |||
significant bit of the first 32-bit block. If the length of the | significant bit of the first 32-bit block. If the length of the | |||
Prefix Attribute Flags field exceeds 4 octets, numbering for the | Prefix Extended Flags field exceeds 4 octets, numbering for the | |||
additional bits picks up where the previous 4-octet block left | additional bits picks up where the previous 4-octet block left | |||
off. For example, the most significant bit in the fifth octet of | off. For example, the most significant bit in the fifth octet of | |||
an 8-octet Prefix Attribute Flags field is referred to as bit 32. | an 8-octet Prefix Extended Flags field is referred to as bit 32. | |||
Currently, no bits are defined in this document. | Currently, no bits are defined in this document. | |||
Unassigned bits MUST be set to zero on transmission and MUST be | Unassigned bits MUST be set to zero on transmission and MUST be | |||
ignored on receipt. | ignored on receipt. | |||
An implementation MUST limit the length of the sub-TLV so as to | An implementation MUST limit the length of the sub-TLV so as to | |||
signal the bits that are set to 1. Defined prefix flags that are not | signal the bits that are set to 1. Defined prefix flags that are not | |||
transmitted due to being beyond the transmitted length MUST be | transmitted due to being beyond the transmitted length MUST be | |||
treated as being set to 0. | treated as being set to 0. | |||
The OSPFv2 Prefix Attribute Flags sub-TLV is advertised as a sub-TLV | The OSPFv2 Prefix Extended Flags sub-TLV is advertised as a sub-TLV | |||
of the OSPFv2 Extended Prefix TLV defined in [RFC7684]. Additional | of the OSPFv2 Extended Prefix TLV defined in [RFC7684]. Additional | |||
OSPFv2 prefix flags SHOULD be allocated from the unused bits in the | OSPFv2 prefix flags SHOULD be allocated from the unused bits in the | |||
Flags field of the OSPFv2 Extended Prefix TLV prior to allocating | Flags field of the OSPFv2 Extended Prefix TLV prior to allocating | |||
flags in the OSPFv2 Prefix Attribute Flags sub-TLV. | flags in the OSPFv2 Prefix Extended Flags sub-TLV. | |||
The OSPFv3 Prefix Attribute Flags sub-TLV is advertised as a sub-TLV | The OSPFv3 Prefix Extended Flags sub-TLV is advertised as a sub-TLV | |||
of the following OSPFv3 TLVs: | of the following OSPFv3 TLVs: | |||
* Inter-Area-Prefix TLV (Section 3.4 of [RFC8362]) | * Inter-Area-Prefix TLV (Section 3.4 of [RFC8362]) | |||
* External-Prefix TLV (Section 3.6 of [RFC8362]) | * External-Prefix TLV (Section 3.6 of [RFC8362]) | |||
* Intra-Area-Prefix TLV (Section 3.7 of [RFC8362]) | * Intra-Area-Prefix TLV (Section 3.7 of [RFC8362]) | |||
* SRv6 Locator TLV [RFC9513] | * SRv6 Locator TLV [RFC9513] | |||
When multiple instances of the OSPFv2/OSPFv3 Prefix Attribute Flags | When multiple instances of the OSPFv2/OSPFv3 Prefix Extended Flags | |||
sub-TLVs are received within the same TLV, an implementation MUST use | sub-TLVs are received within the same TLV, an implementation MUST use | |||
only the first occurrence of the sub-TLV and MUST ignore all | only the first occurrence of the sub-TLV and MUST ignore all | |||
subsequent instances of the sub-TLV. Errors SHOULD be logged subject | subsequent instances of the sub-TLV. Errors SHOULD be logged subject | |||
to rate limiting. | to rate limiting. | |||
3. Backward Compatibility | 3. Backward Compatibility | |||
The OSPFv2/OSPFv3 Prefix Attribute Flags sub-TLV does not introduce | The OSPFv2/OSPFv3 Prefix Extended Flags sub-TLV does not introduce | |||
any backward compatibility issues. An implementation that does not | any backward compatibility issues. An implementation that does not | |||
recognize the OSPFv2/OSPFv3 Prefix Attribute Flags sub-TLV would | recognize the OSPFv2/OSPFv3 Prefix Extended Flags sub-TLV would | |||
ignore the sub-TLV as per normal TLV processing operations (refer to | ignore the sub-TLV as per normal TLV processing operations (refer to | |||
Section 2.3.2 of [RFC3630] and Section 6.3 of [RFC8362]). | Section 2.3.2 of [RFC3630] and Section 6.3 of [RFC8362]). | |||
4. IANA Considerations | 4. IANA Considerations | |||
4.1. OSPFv2 | 4.1. OSPFv2 | |||
4.1.1. OSPFv2 Prefix Attribute Flags Sub-TLV | 4.1.1. OSPFv2 Prefix Extended Flags Sub-TLV | |||
IANA has allocated the following codepoint in the "OSPFv2 Extended | IANA has allocated the following codepoint in the "OSPFv2 Extended | |||
Prefix TLV Sub-TLVs" registry: | Prefix TLV Sub-TLVs" registry: | |||
+=======+===============================+===========+ | +=======+==============================+===========+ | |||
| Value | Description | Reference | | | Value | Description | Reference | | |||
+=======+===============================+===========+ | +=======+==============================+===========+ | |||
| 11 | OSPFv2 Prefix Attribute Flags | RFC 9792 | | | 11 | OSPFv2 Prefix Extended Flags | RFC 9792 | | |||
+-------+-------------------------------+-----------+ | +-------+------------------------------+-----------+ | |||
Table 1 | Table 1 | |||
4.1.2. OSPFv2 Prefix Attribute Flags Registry | 4.1.2. OSPFv2 Prefix Extended Flags Registry | |||
IANA has created the "OSPFv2 Prefix Attribute Flags" registry within | IANA has created the "OSPFv2 Prefix Extended Flags" registry within | |||
the "Open Shortest Path First v2 (OSPFv2) Parameters" registry group. | the "Open Shortest Path First v2 (OSPFv2) Parameters" registry group. | |||
The registry defines the bits in the Prefix Attribute Flags field in | The registry defines the bits in the Prefix Extended Flags field in | |||
the OSPFv2 Prefix Attribute Flags sub-TLV as specified in Section 2. | the OSPFv2 Prefix Extended Flags sub-TLV as specified in Section 2. | |||
The bits are to be allocated via IETF Review [RFC8126]. Each bit | The bits are to be allocated via IETF Review [RFC8126]. Each bit | |||
definition will include: | definition will include: | |||
* Bit number (counting from bit 0 as the most significant bit of the | * Bit number (counting from bit 0 as the most significant bit of the | |||
first block) | first block) | |||
* Description | * Description | |||
* Reference | * Reference | |||
No bits are currently defined. Bits 0-31 are to be initially marked | No bits are currently defined. Bits 0-31 are to be initially marked | |||
as "Unassigned". The flags defined in this document may use either a | as "Unassigned". The flags defined in this document may use either a | |||
single bit or multiple bits to represent a state, as determined by | single bit or multiple bits to represent a state, as determined by | |||
the specific requirements of the document defining them. IANA will | the specific requirements of the document defining them. IANA will | |||
add subsequent blocks of 32 bits upon exhaustion of the preceding | add subsequent blocks of 32 bits upon exhaustion of the preceding | |||
32-bit block. | 32-bit block. | |||
4.2. OSPFv3 | 4.2. OSPFv3 | |||
4.2.1. OSPFv3 Prefix Attribute Flags Sub-TLV | 4.2.1. OSPFv3 Prefix Extended Flags Sub-TLV | |||
IANA has allocated the following codepoint in the "OSPFv3 Extended- | IANA has allocated the following codepoint in the "OSPFv3 Extended- | |||
LSA Sub-TLVs" registry: | LSA Sub-TLVs" registry: | |||
+=======+===============================+===========+ | +=======+==============================+======+===========+ | |||
| Value | Description | Reference | | | Value | Description | L2BM | Reference | | |||
+=======+===============================+===========+ | +=======+==============================+======+===========+ | |||
| 37 | OSPFv3 Prefix Attribute Flags | RFC 9792 | | | 37 | OSPFv3 Prefix Extended Flags | X | RFC 9792 | | |||
+-------+-------------------------------+-----------+ | +-------+------------------------------+------+-----------+ | |||
Table 2 | Table 2 | |||
The entry in the "L2BM" field is "X". | 4.2.2. OSPFv3 Prefix Extended Flags Registry | |||
4.2.2. OSPFv3 Prefix Attribute Flags Registry | ||||
IANA has created the "OSPFv3 Prefix Attribute Flags" registry within | IANA has created the "OSPFv3 Prefix Extended Flags" registry within | |||
the "Open Shortest Path First v3 (OSPFv3) Parameters" registry group. | the "Open Shortest Path First v3 (OSPFv3) Parameters" registry group. | |||
The registry defines the bits in the Prefix Attribute Flags field in | The registry defines the bits in the Prefix Extended Flags field in | |||
the OSPFv2 Prefix Attribute Flags sub-TLV as specified in Section 2. | the OSPFv2 Prefix Extended Flags sub-TLV as specified in Section 2. | |||
The bits are to be allocated via IETF Review [RFC8126]. Each bit | The bits are to be allocated via IETF Review [RFC8126]. Each bit | |||
definition will include: | definition will include: | |||
* Bit number (counting from bit 0 as the most significant bit of the | * Bit number (counting from bit 0 as the most significant bit of the | |||
first block) | first block) | |||
* Description | * Description | |||
* Reference | * Reference | |||
End of changes. 33 change blocks. | ||||
50 lines changed or deleted | 48 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |