Internet-Draft | Early IANA Allocation | October 2024 |
Baber & Tanamal | Expires 21 April 2025 | [Page] |
This memo describes the requirements for securing IANA code point assignments before RFC publication. In particular, it describes the "early allocation" process that allows for temporary but renewable allocations from registries that would ordinarily require an IESG-approved Internet-Draft: namely, registries maintained in accordance with the "Standards Action," "IETF Review," "RFC Required," and, in some cases, "Specification Required" policies. This process can be used when code point allocation is needed to facilitate desired or required implementation and deployment experience prior to publication. The procedures in this document are intended to apply only to IETF Stream documents.¶
This document obsoletes RFC 7120.¶
This Internet-Draft is submitted in full conformance with the 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 and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 21 April 2025.¶
Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
In protocol specifications documented in RFCs, there is often a need to allocate code points for various objects, messages, or other protocol entities so that implementations can interoperate. Many of these code point spaces have registries handled by the Internet Assigned Number Authority (IANA). Several IETF policies for IANA allocation of protocol parameters are described in RFC 8126 [RFC8126]. Some of them, such as "First Come First Served" and "Expert Review," do not require a formal IETF action before the IANA performs allocation.¶
However, in situations where code points are a scarce resource and/or the IETF community has consensus to retain tight control of registry content, policies such as "IETF Review" (formerly "IETF Consensus") or "Standards Action" have been used. Such allocation policies present a problem in situations where implementation and/or deployment experience are desired or required before the document becomes an RFC.¶
To break the deadlock, document authors often choose some "seemingly unused" code points, often by selecting the next available value from the registry; this is problematic because these may turn out to be different from those later assigned by IANA. To make this problem worse, "pre-RFC" implementations are often developed and deployed based on these code point selections. This creates several potential interoperability problems between early implementations and implementations of the final standard, as described below:¶
IANA allocates code points different from those that early implementations assumed would be allocated. Early implementations won't interoperate with standard ones.¶
IANA allocates code points for one extension while a "pre-RFC" implementation of a different extension chooses the same code point. The different extensions will collide on the same code point in the field.¶
This gets in the way of the main purpose of standards; namely, to facilitate interoperable implementations.¶
It is easy to say that pre-RFC implementations should be kept private and should not be deployed; however, both the length of the standards process and the immense value of early implementations and early deployments suggest that finding a better solution is worthwhile. As an example, in the case of documents produced by Working Groups in the Routing Area, a pre-RFC implementation is highly desirable and sometimes even required [RFC4794], and early deployments provide useful feedback on the technical and operational quality of the specification.¶
This memo outlines the process for the early allocation of code points from IANA registries that require RFC publication. The early allocation mechanisms are available only to IETF Stream documents, and they apply only to spaces whose allocation policy is "Specification Required" (where an RFC is used as the stable reference), "RFC Required," "IETF Review," or "Standards Action." For a detailed explanation of these allocation policies, see [RFC8126], Section 4.¶
A policy for IANA early allocations was previously described in [RFC7120]. This document, which obsoletes RFC 7120, extends the early allocation term to two years and clarifies. The procedures in this document are intended to apply only to IETF Stream documents.¶
If the desired code points come from a "First Come First Served" or "Expert Review" space, authors can request permanent registration at any time, regardless of document status. (Registration in an "Expert Review" space is, however, subject to expert approval.)¶
The following conditions must hold before IANA can process a request for early allocation of code points from other spaces:¶
The code points must come from a space designated as "RFC Required," "IETF Review," or "Standards Action." Additionally, requests for early assignment of code points from a "Specification Required" registry are allowed if the specification will be published as an RFC and if IANA can obtain expert approval.¶
The format, semantics, processing, and other rules related to handling the protocol entities defined by the code points (henceforth called "specifications") must be adequately described in an IETF Stream Internet-Draft.¶
The specifications of these code points must be stable; i.e., if there is a change, implementations based on the earlier and later specifications must be seamlessly interoperable.¶
The Working Group chairs and Area Directors (ADs) must determine that there is sufficient interest in the community for early (pre-RFC) implementation and deployment, or that failure to make an early allocation might lead to contention for the code point in the field.¶
There are three processes associated with early allocation: making the request for code points, following up on the request, and revoking an early allocation.¶
The processes described below assume that the document in question is the product of an IETF Working Group (WG). If this is not the case, replace "WG chairs" below with "Shepherding Area Director."¶
The process for requesting and obtaining early allocation of code points is as follows:¶
The authors (editors) of the document submit a request for early allocation to the Working Group chairs, specifying which code points require early allocation and to which document they should be assigned.¶
The WG chairs determine whether the conditions for early allocations described in Section 2 are met, particularly conditions (c) and (d).¶
The WG chairs gauge whether there is consensus within the WG that early allocation is appropriate for the given document.¶
If steps 2) and 3) are satisfied, the WG chairs request approval from the Area Director(s). The Area Director(s) may apply judgment to the request, especially if there is a risk of registry depletion.¶
If the Area Directors approve step 4), the WG chairs contact IANA to request an early allocation.¶
If the allocation comes from a "Specification Required" registry, or another registry that requires both RFC publication and review by an IESG-designated expert, IANA asks the expert(s) to approve the request.¶
IANA makes an allocation from the appropriate registry, marking the allocation as "Temporary," valid for a period of two years from the date of allocation. The date of first allocation and the date of expiry are also recorded in the registry and made visible to the public.¶
Note that Internet-Drafts should not include a specific value of a code point until IANA has completed the early allocation for this value. If a desired value must be named in the document before IANA can allocate the code point, it should be clearly labeled as, e.g., "(suggested)" or "(TBD)."¶
It is the responsibility of the document authors and the Working Group chairs to review changes in the document, and especially in the specifications of the code points for which early allocation was requested, to ensure that the changes are backward compatible.¶
If at some point changes that are not backward compatible are nonetheless required, a decision needs to be made as to whether previously allocated code points must be deprecated (see Section 3.3 for more information on code point deprecation). The considerations include aspects such as the possibility of existing deployments of the older implementations and, hence, the possibility for a collision between older and newer implementations in the field.¶
If the document progresses to the point at which IANA normally makes code point allocations, it is the responsibility of the authors and the WG chairs to remind IANA that there were early allocations and of the code point values allocated in the IANA Considerations section of the RFC-to-be. Allocation is then just a matter of removing the "Temporary" tag from the allocation description.¶
As described in Section 3.1, each temporary assignment is recorded in the registry with the date of expiry of the assignment. If an early allocation will expire before the IESG approves the document for publication, IANA will contact the WG chairs and AD to ask whether they wish to renew the code points for an additional two-year period.¶
After the first extension, any further renewal requests must also be approved by the IESG. The renewal request to the IESG must include the reason(s) another renewal is necessary and the WG's plans for the specification.¶
If an extension is not approved, IANA will ask the WG chairs whether they wish to deprecate the code point; completely de-allocate it, making it available for assignment again; or leave the allocation in place, but with its "temporary" marker, and an expiration date indicating that it is no longer valid.¶
A deprecated code point is not marked as allocated for use as described in any document (that is, it is not allocated) and is not available for allocation in a future document. The WG chairs may inform IANA that a deprecated code point can be completely de-allocated at any time after it has been deprecated. Factors influencing this decision will include whether there may be implementations using the previous temporary allocation and the availability of other unallocated code points in the registry.¶
Implementers and deployers need to be aware that deprecation and de-allocation could take place at any time after expiry; therefore, an expired early allocation is best considered as deprecated.¶
Note that if a document is submitted for review to the IESG, and at the time of submission some early allocations are valid (not expired), these allocations must not be considered to have expired while the document is under IESG consideration.¶
This document defines procedures for early allocation of code points in the registries with the "Specification Required," "RFC Required," "IETF Review," and "Standards Action" policies and as such directly affects IANA.¶
In addition to implementing approved early allocation requests and initiating any required expert reviews, IANA will track early allocation expiration dates and initiate renewal requests for expiring allocations.¶
It is important to keep in mind that denial-of-service attacks on IANA are possible as a result of the processes defined in this memo. There are two that are immediately obvious: depletion of code space by early allocations and process overloading of IANA itself. The processes described here attempt to alleviate both of these potential attacks, but they are subject to scrutiny by IANA to ensure that they work. IANA may at any time request that the IESG suspend the procedures described in this document.¶
There is a significant concern that the procedures in this document could be used as an end-run around the IETF process to achieve code point allocation when an RFC will not be published. For example, a WG or a WG chair might be pressured to obtain an early allocation for a protocol extension for a particular company or for another Standards Development Organization even though it might be predicted that an IETF LC or IESG Evaluation would reject the approach that is documented. The requirement for AD consent of early review is an important safeguard, and ADs with any concern are strongly recommended to escalate the issue for IESG-wide discussion.¶
Thank you to Kireeti Kompella, Alex Zinin, and Michelle Cotton for authoring RFC 4020 and RFC 7120.¶