| rfc9792v1.txt | rfc9792.txt | |||
|---|---|---|---|---|
| Internet Engineering Task Force (IETF) R. Chen | Internet Engineering Task Force (IETF) R. Chen | |||
| Request for Comments: 9792 D. Zhao | Request for Comments: 9792 D. Zhao | |||
| Category: Standards Track ZTE Corporation | Category: Standards Track ZTE Corporation | |||
| ISSN: 2070-1721 P. Psenak | ISSN: 2070-1721 P. Psenak | |||
| K. Talaulikar | K. Talaulikar | |||
| Cisco Systems | Cisco Systems | |||
| L. Gong | L. Gong | |||
| China mobile | China mobile | |||
| May 2025 | June 2025 | |||
| 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 Extended Flag Field 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 Extended Flag Field 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-flag | for OSPFv2 and OSPFv3. The sub-TLV specifies the variable-length | |||
| fields to advertise additional attributes associated with OSPF | Prefix Extended Flags field to advertise additional attributes | |||
| prefixes. The advertisement and processing of the existing fixed- | associated with OSPF prefixes. The advertisement and processing of | |||
| 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. This indicates the length of the prefix | Extended Flags field. This indicates the length of the Prefix | |||
| attribute flags in octets. The length MUST be a multiple of 4 | Extended Flags field in octets. The length MUST be a multiple of | |||
| 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 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 6.3 of [RFC3630] and Section 2.3.2 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 Extended Flag Field Registry | 4.1.2. OSPFv2 Prefix Extended Flags Registry | |||
| IANA has created the "OSPFv2 Prefix Extended Flag Field" registry | IANA has created the "OSPFv2 Prefix Extended Flags" registry within | |||
| within the "Open Shortest Path First v2 (OSPFv2) Parameters" registry | the "Open Shortest Path First v2 (OSPFv2) Parameters" registry group. | |||
| group. The registry defines the bits in the Prefix Attribute Flags | The registry defines the bits in the Prefix Extended Flags field in | |||
| field in the OSPFv2 Prefix Attribute Flags sub-TLV as specified in | the OSPFv2 Prefix Extended Flags sub-TLV as specified in Section 2. | |||
| Section 2. The bits are to be allocated via IETF Review [RFC8126]. | The bits are to be allocated via IETF Review [RFC8126]. Each bit | |||
| 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 | |||
| 4.2.2. OSPFv3 Prefix Extended Flag Field Registry | 4.2.2. OSPFv3 Prefix Extended Flags Registry | |||
| IANA has created the "OSPFv3 Prefix Extended Flag Field" registry | IANA has created the "OSPFv3 Prefix Extended Flags" registry within | |||
| within the "Open Shortest Path First v3 (OSPFv3) Parameters" registry | the "Open Shortest Path First v3 (OSPFv3) Parameters" registry group. | |||
| group. The registry defines the bits in the Prefix Attribute Flags | The registry defines the bits in the Prefix Extended Flags field in | |||
| field in the OSPFv2 Prefix Attribute Flags sub-TLV as specified in | the OSPFv2 Prefix Extended Flags sub-TLV as specified in Section 2. | |||
| Section 2. The bits are to be allocated via IETF Review [RFC8126]. | The bits are to be allocated via IETF Review [RFC8126]. Each bit | |||
| 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 | |||
| End of changes. 32 change blocks. | ||||
| 58 lines changed or deleted | 58 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||