RFC 8126

Guidelines for Writing an IANA Considerations Section in RFCs

πŸ“… published June 2017, from ietf

Guidelines for Writing an IANA Considerations Section in RFCs πŸ’–

okay bestie, this one is RFC 8126 πŸŽ€, a Best Current Practice (that's BCP 26) from the IETF, the group that writes the rules for how the internet talks to itself. It's in the Best Current Practice category with ISSN 2070-1721, and it was published in June 2017. The authors are M. Cotton (PTI), B. Leiba (Huawei Technologies), and T. Narten (IBM Corporation). The big plot twist is that it obsoletes RFC 5226, so this is the newer, third edition of the same guidance πŸ¦‹. Yes, it updates the IANA stuff, and no, it doesn't claim to update any other RFC, so that's all the title block says. 🧚

Abstract

okay so the abstract is giving "lots of protocols have spots where you can plug in extra stuff πŸ”Œ." Those spots use constants to label different protocol parameters. To keep those values from clashing and to keep everything interoperable (aka everyone's stuff works together 🫢), a central record keeper usually handles the assignments. For IETF protocols, that record keeper is the Internet Assigned Numbers Authority (IANA) πŸ’….

To assign values responsibly in a registry, you need guidance on when new values should be given out, and when and how existing values can be changed πŸ‘€. This document is the framework that specification authors use to write that guidance, so the IANA Considerations are clear and cover the stuff that's likely to come up when a registry is actually running 🌸.

This is the third edition of this document; it obsoletes RFC 5226. πŸŽ€

Status of This Memo

this memo documents an Internet Best Current Practice ✨.

this document is a product of the Internet Engineering Task Force (IETF). it represents the consensus of the IETF community, it got public review, and it was approved for publication by the Internet Engineering Steering Group (IESG) πŸ™Œ. want more info on BCPs? check Section 2 of RFC 7841 πŸ“š.

for the current status of this document, any errata, and how to send feedback on it, go to:

http://www.rfc-editor.org/info/rfc8126

Copyright (c) 2017 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 (http://trustee.ietf.org/license-info) as they stand on the date this document was published. read them carefully, bestie, because they spell out your rights and restrictions for this document 🧐. any Code Components pulled out of this document have to include the Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come with no warranty, as described in the Simplified BSD License πŸ’œ.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   4
     1.1.  Keep IANA Considerations for IANA . . . . . . . . . . . .   4
     1.2.  For Updated Information . . . . . . . . . . . . . . . . .   5
     1.3.  A Quick Checklist Upfront . . . . . . . . . . . . . . . .   5
   2.  Creating and Revising Registries  . . . . . . . . . . . . . .   7
     2.1.  Organization of Registries  . . . . . . . . . . . . . . .   8
     2.2.  Documentation Requirements for Registries . . . . . . . .   8
     2.3.  Specifying Change Control for a Registry  . . . . . . . .  11
     2.4.  Revising Existing Registries  . . . . . . . . . . . . . .  11
   3.  Registering New Values in an Existing Registry  . . . . . . .  12
     3.1.  Documentation Requirements for Registrations  . . . . . .  12
     3.2.  Updating Existing Registrations . . . . . . . . . . . . .  14
     3.3.  Overriding Registration Procedures  . . . . . . . . . . .  14
     3.4.  Early Allocations . . . . . . . . . . . . . . . . . . . .  15
   4.  Choosing a Registration Policy and Well-Known Policies  . . .  15
     4.1.  Private Use . . . . . . . . . . . . . . . . . . . . . . .  18
     4.2.  Experimental Use  . . . . . . . . . . . . . . . . . . . .  18
     4.3.  Hierarchical Allocation . . . . . . . . . . . . . . . . .  19
     4.4.  First Come First Served . . . . . . . . . . . . . . . . .  19
     4.5.  Expert Review . . . . . . . . . . . . . . . . . . . . . .  20
     4.6.  Specification Required  . . . . . . . . . . . . . . . . .  21
     4.7.  RFC Required  . . . . . . . . . . . . . . . . . . . . . .  22
     4.8.  IETF Review . . . . . . . . . . . . . . . . . . . . . . .  22
     4.9.  Standards Action  . . . . . . . . . . . . . . . . . . . .  23
     4.10. IESG Approval . . . . . . . . . . . . . . . . . . . . . .  23
     4.11. Using the Well-Known Registration Policies  . . . . . . .  24
     4.12. Using Multiple Policies in Combination  . . . . . . . . .  26
     4.13. Provisional Registrations . . . . . . . . . . . . . . . .  26

   5.  Designated Experts  . . . . . . . . . . . . . . . . . . . . .  27
     5.1.  The Motivation for Designated Experts . . . . . . . . . .  27
     5.2.  The Role of the Designated Expert . . . . . . . . . . . .  27
       5.2.1.  Managing Designated Experts in the IETF . . . . . . .  29
     5.3.  Designated Expert Reviews . . . . . . . . . . . . . . . .  29
     5.4.  Expert Reviews and the Document Lifecycle . . . . . . . .  31
   6.  Well-Known Registration Status Terminology  . . . . . . . . .  31
   7.  Documentation References in IANA Registries . . . . . . . . .  32
   8.  What to Do in "bis" Documents . . . . . . . . . . . . . . . .  33
   9.  Miscellaneous Issues  . . . . . . . . . . . . . . . . . . . .  34
     9.1.  When There Are No IANA Actions  . . . . . . . . . . . . .  34
     9.2.  Namespaces Lacking Documented Guidance  . . . . . . . . .  35
     9.3.  After-the-Fact Registrations  . . . . . . . . . . . . . .  35
     9.4.  Reclaiming Assigned Values  . . . . . . . . . . . . . . .  35
     9.5.  Contact Person vs Assignee or Owner . . . . . . . . . . .  36
     9.6.  Closing or Obsoleting a Registry/Registrations  . . . . .  37
   10. Appeals . . . . . . . . . . . . . . . . . . . . . . . . . . .  37
   11. Mailing Lists . . . . . . . . . . . . . . . . . . . . . . . .  37
   12. Security Considerations . . . . . . . . . . . . . . . . . . .  37
   13. IANA Considerations . . . . . . . . . . . . . . . . . . . . .  38
   14. Changes Relative to Earlier Editions of BCP 26  . . . . . . .  38
     14.1.  2016: Changes in This Document Relative to RFC 5226  . .  38
     14.2.  2008: Changes in RFC 5226 Relative to RFC 2434 . . . . .  39
   15. References  . . . . . . . . . . . . . . . . . . . . . . . . .  40
     15.1.  Normative References . . . . . . . . . . . . . . . . . .  40
     15.2.  Informative References . . . . . . . . . . . . . . . . .  40
   Acknowledgments for This Document (2017)  . . . . . . . . . . . .  46
   Acknowledgments from the Second Edition (2008)  . . . . . . . . .  46
   Acknowledgments from the First Edition (1998) . . . . . . . . . .  46
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  47

1. Introduction ✨

okay so lots of protocols have "points of extensibility" πŸ”Œ, which just means spots where constants identify different protocol parameters. To make sure those values don't end up with conflicting uses, and to keep everything interoperable 🫢, their allocations usually get coordinated by a central record keeper. The Protocol field in the IP header [RFC791] and MIME media types [RFC6838] are two examples of this coordination, and they're iconic πŸ’€.

the IETF picks an IANA Functions Operator (IFO) for the protocol parameters the IETF defines. In the contract between the IETF and the current IFO (ICANN), that entity is called the IANA PROTOCOL PARAMETER SERVICES Operator, or IPPSO. For consistency with past practice, this document just calls the IFO or IPPSO "IANA" [RFC2860] πŸ’….

in this document, the full range of possible values for a field is called a "namespace" 🌈. Binding a specific value to a particular purpose inside a namespace is called an assignment. (You'll also see it called an assigned number, assigned value, code point, protocol constant, or protocol parameter, so don't panic πŸ™ˆ.) The act of assignment is called a registration, and it happens inside a registry. "assignment" and "registration" are used interchangeably throughout this document, so they mean the same thing πŸ’–.

to make assignments in a namespace responsibly, you need guidance on when new values should be assigned, and when and how existing values can be changed πŸ‘€. This document is the framework for specification authors to write that guidance, so the guidance for the IANA Considerations is clear and covers the issues that are likely to come up when a registry is running 🌸.

usually this info lives in a dedicated section of the specification, titled "IANA Considerations" πŸŽ€.

1.1. Keep IANA Considerations for IANA

the whole point of a dedicated IANA Considerations section is to have one place with clear, concise info and instructions for IANA πŸ“‹. Technical docs should live in other parts of the document, and the IANA Considerations should just point to those sections by reference (only when needed) πŸ¦‹. If you use the IANA Considerations as your main technical documentation, it gets hidden from the document's target audience, and it also gets in the way of IANA reviewing the actions they need to take 😭. not it πŸ™…β€β™€οΈ.

an ideal IANA Considerations section clearly lists and specifies each IANA action being requested πŸ’―. It includes all the info IANA needs, like the full names of every applicable registry, and it has clear references to other parts of the document for everything else 🧚.

IANA actions are normally phrased as requests to IANA, like this: IANA is asked to assign the value TBD1 from the Frobozz Registry.... Then the RFC Editor changes those sentences to reflect what actually happened, like this: IANA has assigned the value 83 from the Frobozz Registry... ✨. the glow-up is real πŸ”₯.

1.2. For Updated Information

IANA keeps a web page with extra clarification info beyond what's written here, like minor updates and summary guidance 🌟. Document authors should check that page πŸ‘€. Any significant updates to the best current practice will have to feed into updates to BCP 26 (this document), which is the definitive one πŸ‘‘. here's where to find it:

<https://iana.org/help/protocol-registration>

1.3. A Quick Checklist Upfront πŸ“

okay bestie, reading this whole doc is giving main character energy, but when you come back for a quick peek, these checklists have you covered for the common stuff, with pointers for the rarer bits πŸ’–

In general...

  1. Put all the information that IANA will need to know into the "IANA Considerations" section of your document (see Section 1.1).
  2. Try to keep that section only for information to IANA and to designated expert reviewers; put significant technical information in the appropriate technical sections of the document (see Section 1.1).
  3. Note that the IESG has the authority to resolve issues with IANA registrations. If you have any questions or problems, you should consult your document shepherd and/or working group chair, who may ultimately involve an Area Director (see Section 3.3).

If you are creating a new registry... 🌈

  1. Give the registry a descriptive name and provide a brief description of its use (see Section 2.2).
  2. Identify any registry grouping that it should be part of (see Section 2.1).
  3. Clearly specify what information is required in order to register new items (see Section 2.2). Be sure to specify data types, lengths, and valid ranges for fields.
  4. Specify the initial set of items for the registry, if applicable (see Section 2.2).
  5. Make sure the change control policy for the registry is clear to IANA, in case changes to the format or policies need to be made later (see Sections 2.3 and 9.5).
  6. Select a registration policy -- or a set of policies -- to use for future registrations (see Section 4, and especially note Sections 4.11 and 4.12).
  7. If you're using a policy that requires a designated expert (Expert Review or Specification Required), understand Section 5 and provide review guidance to the designated expert (see Section 5.3).
  8. If any items or ranges in your registry need to be reserved for special use or are otherwise unavailable for assignment, see Section 6.

If you are registering into an existing registry... ✨

  1. Clearly identify the registry by its exact name and optionally by its URL (see Section 3.1).
  2. If the registry has multiple ranges from which assignments can be made, make it clear which range is requested (see Section 3.1).
  3. Avoid using specific values for numeric or bit assignments, and let IANA pick a suitable value at registration time (see Section 3.1). This will avoid registration conflicts among multiple documents.
  4. For "reference" fields, use the document that provides the best and most current documentation for the item being registered. Include section numbers to make it easier for readers to locate the relevant documentation (see Sections 3.1 and 7).
  5. Look up (in the registry's reference document) what information is required for the registry and accurately provide all the necessary information (see Section 3.1).
  6. Look up (in the registry's reference document) any special rules or processes there may be for the registry, such as posting to a particular mailing list for comment, and be sure to follow the process (see Section 3.1).
  7. If the registration policy for the registry does not already dictate the change control policy, make sure it's clear to IANA what the change control policy is for the item, in case changes to the registration need to be made later (see Section 9.5).

If you're writing a "bis" document or otherwise making older documents obsolete, see Section 8.

If you need to make an early registration, such as for supporting test implementations during document development, rather than waiting for your document to be finished and approved, see [RFC7120].

If you need to change the format/contents or policies for an existing registry, see Section 2.4.

If you need to update an existing registration, see Section 3.2.

If you need to close down a registry because it is no longer needed, see Section 9.6.


2. Creating and Revising Registries πŸŽ€

Defining a registry involves describing the namespaces to be created, listing an initial set of assignments (if applicable), and documenting guidelines on how future assignments are to be made.

When defining a registry, consider structuring the namespace in such a way that only top-level assignments need to be made with central coordination, and those assignments can delegate lower-level assignments so coordination for them can be distributed. This lessens the burden on IANA for dealing with assignments, and is particularly useful in situations where distributed coordinators have better knowledge of their portion of the namespace and are better suited to handling those assignments. 🧚

2.1. Organization of Registries 🌸

All registries are anchored from the IANA "Protocol Registries" page:

<https://www.iana.org/protocols>

That page lists registries in protocol category groups, placing related registries together and making it easier for users of the registries to find the necessary information. Clicking on the title of one of the registries on the IANA Protocol Registries page will take the reader to the details page for that registry.

Unfortunately, we have been inconsistent in how we refer to these entities πŸ™ˆ The group names, as they are referred to here, have been variously called "protocol category groups", "groups", "top-level registries", or just "registries". The registries under them have been called "registries" or "sub-registries".

Regardless of the terminology used, document authors should pay attention to the registry groupings, should request that related registries be grouped together to make related registries easier to find, and, when creating a new registry, should check whether that registry might best be included in an existing group. That grouping information should be clearly communicated to IANA in the registry creation request.

2.2. Documentation Requirements for Registries πŸ’…

Documents that create a new namespace (or modify the definition of an existing space) and that expect IANA to play a role in maintaining that space (serving as a repository for registered values) must provide clear instructions on details of the namespace, either in the IANA Considerations section or referenced from it.

In particular, such instructions must include:

The name of the registry

This name will appear on the IANA web page and will be referred to in future documents that need to allocate a value from the new space. The full name (and abbreviation, if appropriate) should be provided. It is highly desirable that the chosen name not be easily confused with the name of another registry.

When creating a registry, the group that it is a part of must be identified using its full name, exactly as it appears in the Protocol Registries list.

Providing a URL to precisely identify the registry helps IANA understand the request. Such URLs can be removed from the RFC prior to final publication or left in the document for reference. If you include iana.org URLs, IANA will provide corrections, if necessary, during their review.

Required information for registrations

This tells registrants what information they have to include in their registration requests. Some registries require only the requested value and a reference to a document where use of the value is defined. Other registries require a more detailed registration template that describes relevant security considerations, internationalization considerations, and other such information.

Applicable registration policy

The policy that will apply to all future requests for registration. See Section 4.

Size, format, and syntax of registry entries

What fields to record in the registry, any technical requirements on registry entries (valid ranges for integers, length limitations on strings, and such), and the exact format in which registry values should be displayed. For numeric assignments, one should specify whether values are to be recorded in decimal, in hexadecimal, or in some other format.

Strings are expected to be ASCII, and it should be clearly specified whether case matters, and whether, for example, strings should be shown in the registry in uppercase or lowercase.

Strings that represent protocol parameters will rarely, if ever, need to contain non-ASCII characters. If non-ASCII characters are really necessary, instructions should make it very clear that they are allowed and that the non-ASCII characters should be represented as Unicode characters using the "(U+XXXX)" convention. Anyone creating such a registry should think carefully about this and consider internationalization advice such as that in [RFC7564], Section 10.

Initial assignments and reservations

Any initial assignments or registrations to be included. In addition, any ranges that are to be reserved for "Private Use", "Reserved", "Unassigned", etc. (see Section 6) should be indicated.

For example, a document might specify a new registry by including:

---------------------------------------------------------------

X. IANA Considerations

This document defines a new DHCP option, entitled "FooBar" (see
Section y), and assigns a value of TBD1 from the DHCP Option space
<https://www.iana.org/assignments/bootp-dhcp-parameters>
[RFC2132] [RFC2939]:
                               Data
      Tag     Name            Length      Meaning
      ----    ----            ------      -------
      TBD1    FooBar          N           FooBar server

The FooBar option also defines an 8-bit FooType field, for which
IANA is to create and maintain a new registry entitled
"FooType values" used by the FooBar option.  Initial values for the
DHCP FooBar FooType registry are given below; future assignments
are to be made through Expert Review [BCP26].  Assignments consist
of a DHCP FooBar FooType name and its associated value.

      Value    DHCP FooBar FooType Name   Definition
      ----     ------------------------   ----------
      0        Reserved
      1        Frobnitz                   RFCXXXX, Section y.1
      2        NitzFrob                   RFCXXXX, Section y.2
      3-254    Unassigned
      255      Reserved
---------------------------------------------------------------

For examples of documents that establish registries, consult [RFC3575], [RFC3968], and [RFC4520].

Any time IANA includes names and contact information in the public registry, some individuals might prefer that their contact information not be made public. In such cases, arrangements can be made with IANA to keep the contact information private. 🫢

2.3. Specifying Change Control for a Registry πŸ’…

okay so registry definitions and the registrations inside them usually need changing after they're made πŸ”„. Figuring out those changes gets messy fast when nobody knows who's actually allowed to make them 😭. For registries created by RFCs in the IETF stream, change control is the IETF's by default, through the IESG πŸ›οΈ. Same deal for value registrations made in IETF-stream RFCs πŸ’œ.

Registries can also be created and registrations made outside the IETF stream, so sometimes it makes sense for change control to live outside the IETF and IESG 🌸. Either way, clearly spelling out your change control policies is always a good look ✨.

So, it's advised that every registry you create clearly specifies a change control policy and a change controller πŸŽ€. It's also advised that registries letting people register from outside the IETF stream name a change controller for each value 🫢. Why? If a registered value's definition or reference ever needs to change, or a value needs to be deprecated, IANA absolutely has to know who's authorized to make that call 🚨. Like, the Media Types registry [RFC6838] has a "Change Controller" field in its registration template πŸ“‹. See also Section 9.5 πŸ¦‹.

2.4. Revising Existing Registries πŸ”§

Updating the registration process, or changing the format of an already existing registry (whether it was created explicitly or implicitly), follows a process kinda like making a new registry 🧁. Basically, you write a document that references the existing namespace, then gives detailed guidance for handling assignments in the registry, or detailed instructions about the changes needed πŸ“.

If a change requires a new column, the instructions need to be super clear about how to fill that column in for the existing entries πŸ’•. Other changes may need similar clarity πŸ’….

These documents are normally processed with the same document status as the document that created the registry πŸ“œ. In some situations, like a straightforward change that's clearly needed (such as adding a "status" column), or when an earlier error needs to be corrected, the IESG may approve an update to a registry without requiring a new document πŸ‘‘.

Example documents that updated the guidelines for assignments in pre-existing registries include: [RFC6895], [RFC3228], and [RFC3575] πŸ“š.

3. Registering New Values in an Existing Registry πŸŽ€

3.1. Documentation Requirements for Registrations πŸ“

Often, documents request an assignment in an existing registry (one created by a previously published document) πŸ™Œ.

Such documents should clearly identify the registry each value is to be registered into. Use the exact registry name as listed on the IANA web page, and cite the RFC where the registry is defined πŸ”. When you're referring to an existing registry, a URL that pinpoints it precisely is helpful (see Section 2.2) πŸ”—.

There's no need to mention the assignment policy when making new assignments in existing registries, since it should be clear from the references πŸ’. However, if multiple assignment policies might apply, as in registries with different ranges that have different policies, it's important to make clear which range is being requested. That way IANA knows which policy applies and can assign a value in the correct range 🎯.

Be sure to provide all the information required for a registration, and follow any special processes set out for the registry πŸ“‹. Registries sometimes require a registration template to be completed, or ask registrants to post their request to a particular mailing list for discussion before registering πŸ’Œ. Look up the registry's reference document, because the required information and special processes should be documented there πŸ“–.

Normally, numeric values are chosen by IANA when the document is approved, so drafts should not specify final values πŸ”’. Instead, placeholders such as "TBD1" and "TBD2" should be used consistently throughout the document, with each item to be registered getting its own placeholder 🧩. The IANA Considerations should ask the RFC Editor to replace the placeholder names with the IANA-assigned values βœ…. When drafts need to specify numeric values for testing or early implementations, they'll either request early allocation (see Section 3.4) or use values already set aside for testing or experimentation (if the registry allows that without explicit assignment) πŸ§ͺ. It's important that drafts don't choose their own values, lest IANA assign one of those values to another document in the meantime 😬. A draft can request a specific value in the IANA Considerations section, and IANA will accommodate such requests when possible, but the proposed number might have been assigned to some other use by the time the draft is approved πŸ™ƒ.

Normally, text-string values are specified in the document, since collisions are less likely with text strings πŸ’¬. IANA will consult with the authors if there is, in fact, a collision and a different value has to be used 🀝. When drafts need to specify string values for testing or early implementations, they sometimes use the expected final value. But it's often useful to use a draft value instead, possibly including the draft version number 🏷️. This lets early implementations be distinguished from those implementing the final version πŸ•΅οΈ. A document that intends to use "foobar" in the final version might use "foobar-testing-draft-05" for the -05 version of the draft, for example 🌈.

For some registries, there's a long-standing policy prohibiting assignment of names or codes on a vanity or organization-name basis 🚫. For example, codes might always be assigned sequentially unless there's a strong reason to make an exception πŸ”. Nothing in this document is intended to change those policies or prevent their future application πŸ›‘οΈ.

As an example, the following text could be used to request assignment of a DHCPv6 option number:

      IANA is asked to assign an option code value of TBD1 to the DNS
      Recursive Name Server option and an option code value of TBD2 to
      the Domain Search List option from the DHCP option code space
      defined in Section 24.3 of RFC 3315.

The IANA Considerations section should summarize all of the IANA actions, with pointers to the relevant sections elsewhere in the document as appropriate. Including section numbers is especially useful when the reference document is large, since the section numbers make it easier for anyone searching the reference document to find the relevant information πŸ—ΊοΈ.

When multiple values are requested, it's generally helpful to include a summary table of the additions/changes πŸ“Š. It's also helpful for this table to be in the same format as it appears (or will appear) on the IANA web site. For example:

     Value     Description          Reference
     --------  -------------------  ---------
     TBD1      Foobar               this RFC, Section 3.2
     TBD2      Gumbo                this RFC, Section 3.3
     TBD3      Banana               this RFC, Section 3.4
Note: In cases where authors feel that including the full table of changes is too verbose or repetitive, authors should still include the table in the draft, but may include a note asking that the table be removed prior to publication of the final RFC πŸ™ˆ.

3.2. Updating Existing Registrations πŸ”„

Even after a number has been assigned, some types of registrations contain additional information that may need to be updated over time ⏰.

For example, MIME media types, character sets, and language tags typically include more information than just the registered value itself, and may need updates to items such as point-of-contact information, security issues, pointers to updates, and literature references πŸ“š.

In such cases, the document defining the namespace must clearly state who is responsible for maintaining and updating a registration. Depending on the registry, it may be appropriate to specify one or more of:

  • Letting registrants and/or nominated change controllers update their own registrations, subject to the same constraints and review as with new registrations.
  • Allowing attachment of comments to the registration. This can be useful in cases where others have significant objections to a registration, but the author does not agree to change the registration.
  • Designating the IESG, a designated expert, or another entity as having the right to change the registrant associated with a registration, and any requirements or conditions on doing so. This is mainly to get around the problem when a registrant cannot be reached in order to make necessary updates.

3.3. Overriding Registration Procedures 🦸

Experience has shown that the documented IANA considerations for individual protocols don't always cover the reality of registry operation, or aren't sufficiently clear. Also, documented IANA considerations are sometimes found to be too stringent to allow even working group documents (for which there is strong consensus) to perform a registration in advance of actual RFC publication 😀.

To allow assignments in such cases, the IESG is granted authority to override registration procedures and approve assignments on a case-by-case basis πŸ‘‘.

The intention here isn't to overrule properly documented procedures, or to obviate the need for protocols to properly document their IANA considerations πŸ™…β€β™€οΈ. Rather, it's to permit assignments in specific cases where it's obvious the assignment should just be made, but updating the IANA process beforehand is too onerous πŸ₯Ή.

When the IESG is required to take action as described above, it's a strong indicator that the applicable registration procedures should be updated, possibly in parallel with the work that instigated it 🚩.

IANA always has the discretion to ask the IESG for advice or intervention when they feel it's needed, such as where policies or procedures are unclear to them, where they encounter issues or questions they're unable to resolve, or where registration requests or patterns of requests appear to be unusual or abusive πŸ•΅οΈβ€β™€οΈ.

3.4. Early Allocations ⏩

IANA normally takes its actions when a document is approved for publication. There are times, though, when early allocation of a value is important for the development of a technology, for example when early implementations are created while the document is still under development πŸ› οΈ.

IANA has a mechanism for handling such early allocations in some cases. See [RFC7120] for details. It's usually not necessary to explicitly mark a registry as allowing early allocation, because the general rules will apply 🌟.

4. Choosing a Registration Policy and Well-Known Policies ✨

okay bestie, so a registration policy is basically the rulebook for how new stuff gets accepted into a registry πŸ“–πŸ’… there are a bunch of things to think about when you're writing one, so let's get into it πŸ¦‹

If the registry's namespace is limited, assignments need to be made carefully so nothing runs out πŸ“

Even when the space is basically unlimited, it's still often a good idea to have at least a minimal review before assignment, in order to:

  • prevent the hoarding of or unnecessary wasting of values. like, if the space is text strings, it may be a good idea to stop entities from grabbing a whole pile of desirable names (existing company names, for example) πŸ’€
  • provide a sanity check that the request actually makes sense and is necessary. experience has shown that some minimal review from a subject matter expert is useful to prevent assignments where the request is malformed or not actually needed (for example, an existing assignment for an essentially equivalent service already exists) πŸ™ˆ

Perhaps most importantly, unreviewed extensions can impact interoperability and security. See [RFC6709]. 😭 this is the scary part, no cap πŸ‘‘

When the namespace is essentially unlimited and there are no potential interoperability or security issues, assigned numbers can usually be handed out to anyone without any subjective review ✨ In that case, IANA can make assignments directly, as long as IANA gets detailed instructions on what types of requests it should grant, and it can do that without using subjective judgment πŸŽ€

When that's not the case, some level of review is required. However, it's important to balance adequate review and ease of registration 🫢 In lots of cases, the people making registrations won't be IETF participants. requests often come from other standards organizations, from organizations not directly involved in standards, from ad-hoc community work (from an open-source project, for example), and so on 🌈 Registration must not be unnecessarily difficult, unnecessarily costly (in terms of time and other resources), nor unnecessarily subject to denial. the vibe is not gatekeeping πŸ™…β€β™€οΈ

While it's sometimes necessary to restrict what gets registered (e.g., for limited resources such as bits in a byte, or for items for which unsupported values can be damaging to protocol operation), in many cases having what's in use represented in the registry is more important πŸ’œ Overly strict review criteria and excessive cost (in time and effort) discourage people from even attempting to make a registration. If a registry fails to reflect the protocol elements actually in use, it can adversely affect deployment of protocols on the Internet, and the registry itself is devalued πŸ’€ nobody wants a registry that's giving "outdated" energy

Therefore, it is important to think specifically about the registration policy, and not just pick one arbitrarily nor copy text from another document 🧚 Working groups and other document developers should use care in selecting appropriate registration policies when their documents create registries. they should select the least strict policy that suits a registry's needs, and look for specific justification for policies that require significant community involvement (those stricter than Expert Review or Specification Required, in terms of the well-known policies). The needs here will vary from registry to registry, and, indeed, over time, and this BCP will not be the last word on the subject 🌸

The following policies are defined for common usage. These cover a range of typical policies that have been used to describe the procedures for assigning new values in a namespace. It is not strictly required that documents use these terms; the actual requirement is that the instructions to IANA be clear and unambiguous. However, use of these terms is strongly recommended because their meanings are widely understood. Newly minted policies, including ones that combine the elements of procedures associated with these terms in novel ways, may be used if none of these policies are suitable; it will help the review process if an explanation is included as to why that is the case. The terms are fully explained in the following subsections πŸ“š

  1. Private Use
  2. Experimental Use
  3. Hierarchical Allocation
  4. First Come First Served
  5. Expert Review
  6. Specification Required
  7. RFC Required
  8. IETF Review
  9. Standards Action
  10. IESG Approval

It should be noted that it often makes sense to partition a namespace into multiple categories, with assignments within each category handled differently 🍰 Many protocols now partition namespaces into two or more parts, with one range reserved for Private or Experimental Use while other ranges are reserved for globally unique assignments assigned following some review process. Dividing a namespace into ranges makes it possible to have different policies in place for different ranges and different use cases πŸ¦‹

Similarly, it will often be useful to specify multiple policies in parallel, with each policy being used under different circumstances. For more discussion of that topic, see Section 4.12 🫧

Examples of RFCs that specify multiple policies in parallel:

  • LDAP [RFC4520]
  • TLS ClientCertificateType Identifiers [RFC5246] (as detailed in the subsections below)
  • MPLS Pseudowire Types Registry [RFC4446]

4.1. Private Use 🏠

Private Use is for private or local use only, with the type and purpose defined by the local site. No attempt is made to prevent multiple sites from using the same value in different (and incompatible) ways. IANA does not record assignments from registries or ranges with this policy (and therefore there is no need for IANA to review them) and assignments are not generally useful for broad interoperability. It is the responsibility of the sites making use of the Private Use range to ensure that no conflicts occur (within the intended scope of use) πŸ”’

Examples:

  • Site-specific options in DHCP [RFC2939]
  • Fibre Channel Port Type Registry [RFC4044]
  • TLS ClientCertificateType Identifiers 224-255 [RFC5246]

4.2. Experimental Use πŸ§ͺ

Experimental Use is similar to Private Use, but with the purpose being to facilitate experimentation. See [RFC3692] for details. IANA does not record assignments from registries or ranges with this policy (and therefore there is no need for IANA to review them) and assignments are not generally useful for broad interoperability. Unless the registry explicitly allows it, it is not appropriate for documents to select explicit values from registries or ranges with this policy. Specific experiments will select a value to use during the experiment πŸ”¬

When code points are set aside for Experimental Use, it's important to make clear any expected restrictions on experimental scope. For example, say whether it's acceptable to run experiments using those code points over the open Internet or whether such experiments should be confined to more closed environments. See [RFC6994] for an example of such considerations 🌐

Example:

  • Experimental Values in IPv4, IPv6, ICMPv4, ICMPv6, UDP, and TCP Headers [RFC4727]

4.3. Hierarchical Allocation 🌳

With Hierarchical Allocation, delegated administrators are given control over part of the namespace and can assign values in that part of the namespace. IANA makes allocations in the higher levels of the namespace according to one of the other policies πŸͺœ

Examples:

  • DNS names - IANA manages the top-level domains (TLDs), and, as [RFC1591] says:
Under each TLD may be created a hierarchy of names.  Generally,
under the generic TLDs the structure is very flat.  That is,
many organizations are registered directly under the TLD, and
any further structure is up to the individual organizations.
  • Object Identifiers - defined by ITU-T recommendation X.208. According to <http://www.alvestrand.no/objectid/>, some registries include
    • IANA, which hands out OIDs under the "Private Enterprises" branch,
    • ANSI, which hands out OIDs under the "US Organizations" branch, and
    • BSI, which hands out OIDs under the "UK Organizations" branch.
  • URN namespaces - IANA registers URN Namespace IDs (NIDs [RFC8141]), and the organization registering an NID is responsible for allocations of URNs within that namespace 🧩

4.4. First Come First Served πŸƒβ€β™€οΈπŸ’¨

For the First Come First Served policy, assignments are made to anyone on a first come, first served basis. There is no substantive review of the request, other than to ensure that it is well-formed and doesn't duplicate an existing assignment. However, requests must include a minimal amount of clerical information, such as a point of contact (including an email address, and sometimes a postal address) and a brief description of how the value will be used. Additional information specific to the type of value requested may also need to be provided, as defined by the namespace. For numbers, IANA generally assigns the next in-sequence unallocated value, but other values may be requested and assigned if an extenuating circumstance exists. With names, specific text strings can usually be requested 🎟️

When creating a new registry with First Come First Served as the registration policy, in addition to the contact person field or reference, the registry should contain a field for change controller. Having a change controller for each entry for these types of registrations makes authorization of future modifications more clear. See Section 2.3 πŸ“

It is important that changes to the registration of a First Come First Served code point retain compatibility with the current usage of that code point, so changes need to be made with care. The change controller should not, in most cases, be requesting incompatible changes nor repurposing a registered code point. See also Sections 9.4 and 9.5 ⚠️

A working group or any other entity that is developing a protocol based on a First Come First Served code point has to be extremely careful that the protocol retains wire compatibility with current use of the code point. Once that is no longer true, the new work needs to change to a different code point (and register that use at the appropriate time) πŸ’…

It is also important to understand that First Come First Served really has no filtering. Essentially, any well-formed request is accepted 🫠

Examples:

  • SASL mechanism names [RFC4422]
  • LDAP Protocol Mechanisms and LDAP Syntax [RFC4520]

4.5. Expert Review πŸ’…

Okay bestie, so Expert Review means a designated expert (see Section 5) is required to review and approve each request 🫢. It doesn't necessarily need formal documentation, but the expert still needs info to evaluate, and the registry's definition has to make it crystal clear what info that is ✨. IANA runs the actual request process, so check Section 1.2 for the details πŸ“‹.

(Fun fact: this policy used to be called "Designated Expert" in earlier editions of this document. The current term is "Expert Review" πŸŽ€.)

The required documentation and review criteria should be provided when the registry is defined, giving the expert clear guidance 🌸. It's especially important to spell out what should be considered during an evaluation and the reasons for rejecting a request πŸ™ˆ. It's also a good idea to say whether lots of registrations are expected over time, or whether the registry will only get updated now and then, or only in exceptional circumstances πŸ¦‹.

Thorough understanding of Section 5 is important when you're picking an Expert Review policy and writing guidance for the designated expert 🧚.

Good examples of guidance to designated experts:

      Extensible Authentication Protocol (EAP) [RFC3748], Sections 6 and
      7.2
      North-Bound Distribution of Link-State and TE Information Using
      BGP [RFC7752], Section 5.1

When you create a new registry with Expert Review as the registration policy, the registry should contain a field for a change controller, on top of the contact person field or reference πŸ‘‘. Giving each entry a change controller for these kinds of registrations makes it way more clear who can authorize future changes, so see Section 2.3 πŸ”₯.

Examples:

      EAP Method Types [RFC3748]
      HTTP Digest AKA algorithm versions [RFC4169]
      URI schemes [RFC7595]
      GEOPRIV Location Types [RFC4589]

4.6. Specification Required πŸ“œ

For Specification Required, a designated expert (see Section 5) is required to review and approve, and the values and their meanings must be documented in a permanent and readily available public specification 🌈. That spec needs enough detail that independent implementations can actually interoperate, which is the whole point 🫢. This policy is basically Expert Review with an extra demand: a formal public specification ✨. On top of the usual review, the designated expert will check the public spec to see if it's stable and permanent, and whether it's clear and technically sound enough for interoperable implementations 🧐.

So the idea behind "permanent and readily available" is that a document can reasonably be found and retrieved long after IANA assigns the requested value πŸ’–. Publishing an RFC is the ideal way to hit that bar, but Specification Required also covers documents published outside the RFC path, including informal documentation πŸ“.

For RFC publication, the designated expert still does a formal review, but the normal RFC review process is expected to cover the interoperability review πŸ’…. The expert's review still matters, but here's the twist: when there's IETF consensus, the expert can sometimes be "in the rough" (see also the last paragraph of Section 5.4) πŸ™ˆ.

Just like Expert Review (Section 4.5), clear guidance should be provided to the designated expert when the registry is defined, and thorough understanding of Section 5 is important πŸŽ€.

When you specify this policy, just use the term "Specification Required" πŸ’œ. Some specs have called it "Expert Review with Specification Required", but that only causes confusion 😭.

Examples:

      Diffserv-aware TE Bandwidth Constraints Model Identifiers
      [RFC4124]
      TLS ClientCertificateType Identifiers 64-223 [RFC5246]
      ROHC Profile Identifiers [RFC5795]

4.7. RFC Required πŸ“š

With RFC Required, the registration request, along with its associated documentation, must be published in an RFC πŸ’–. That RFC doesn't have to be in the IETF stream, though. It can be in any RFC stream (currently an RFC may be in the IETF, IRTF, IAB, or Independent Submission streams [RFC5742]) 🌸.

Unless otherwise specified, any type of RFC is sufficient (currently Standards Track, BCP, Informational, Experimental, or Historic) πŸ¦‹.

Examples:

      DNSSEC DNS Security Algorithm Numbers [RFC6014]
      Media Control Channel Framework registries [RFC6230]
      DANE TLSA Certificate Usages [RFC6698]

4.8. IETF Review πŸ›οΈ

(Formerly called "IETF Consensus" in the first edition of this document. Iconic glow-up πŸ‘‘.) With IETF Review, new values are only assigned through RFCs in the IETF Stream -- the ones that have been shepherded through the IESG as AD-Sponsored or IETF working group documents [RFC2026] [RFC5378], gone through IETF Last Call, and been approved by the IESG as having IETF consensus πŸ”₯.

The goal is that the document and the proposed assignment get reviewed by the IETF community (including appropriate IETF working groups, directorates, and other experts) and by the IESG 🧠. That way, the proposed assignment won't negatively affect interoperability or otherwise extend IETF protocols in an inappropriate or damaging way πŸ›‘οΈ.

Unless otherwise specified, any type of RFC is sufficient (currently Standards Track, BCP, Informational, Experimental, or Historic) ✨.

Examples:

      IPSECKEY Algorithm Types [RFC4025]
      TLS Extension Types [RFC5246]

4.9. Standards Action πŸš€

For Standards Action, values are only assigned through Standards Track or Best Current Practice RFCs in the IETF Stream πŸ’…. That's the strictest vibe on the list, bestie 😀.

Examples:

      BGP message types [RFC4271]
      Mobile Node Identifier option types [RFC4283]
      TLS ClientCertificateType Identifiers 0-63 [RFC5246]
      DCCP Packet Types [RFC4340]

4.10. IESG Approval 🫑

New assignments may be approved by the IESG πŸ’œ. There's no requirement that the request be documented in an RFC, but the IESG has the discretion to ask for documents or other supporting materials on a case-by-case basis 🧐.

IESG Approval is not meant to be used often or as a "common case"; honestly, it has seldom been used in practice πŸ™ˆ. It's more of a fall-back mechanism to pair with other policies, for when one of the other allowable approval mechanisms can't be used in a timely way or there's some other compelling reason πŸŽ€. IESG Approval is not meant to sidestep the public review processes implied by other policies that could have been used for a particular assignment 🚫. It would be appropriate, though, when expediency is wanted and there's strong consensus (such as from a working group) for making the assignment πŸ’–.

Before approving a request, the IESG might consider consulting the community via a "call for comments" that gives as much information as is reasonably possible about the request πŸ“£.

Examples:

      IPv4 Multicast address assignments [RFC5771]
      IPv4 IGMP Type and Code values [RFC3228]
      Mobile IPv6 Mobility Header Type and Option values [RFC6275]

4.11. Using the Well-Known Registration Policies 🌟

The well-known policies have both community experience and wide understanding behind them, so their use is encouraged 🫢. Creating new policies needs to come with reasonable justification πŸ’….

It's also fine to cite one or more well-known policies and add extra guidelines about the kinds of considerations the review process should take into account ✨.

For example, media-type registrations [RFC6838] cover a bunch of different situations that involve IETF Review and Specification Required, and they also include specific extra criteria the designated expert should follow πŸ¦‹. This isn't meant to be a registration procedure itself, just an example of what can be done when special circumstances need covering 🧚.

The well-known policies from "First Come First Served" to "Standards Action" specify a range of policies in increasing order of strictness (using the numbering from the full list in Section 4):

   4. First Come First Served
      No review, minimal documentation.

   5 and 6  (of equal strictness).

      5. Expert Review
         Expert review with sufficient documentation for review.

      6. Specification Required
         Significant stable public documentation sufficient for
         interoperability.

   7. RFC Required
      Any RFC publication, IETF or a non-IETF Stream.

   8. IETF Review

      RFC publication, IETF Stream only, but need not be Standards
      Track.

   9. Standards Action
      RFC publication, IETF Stream, Standards Track or BCP only.

Examples of situations that might merit IETF Review or Standards Action include the following:

  • When a resource is limited, such as bits in a byte (or in two bytes, or four), or numbers in a limited range. In these cases, allowing registrations that haven't been carefully reviewed and agreed to by community consensus could too quickly deplete the allowable values 😱.
  • When thorough community review is necessary to avoid extending or modifying the protocol in ways that could be damaging. One example is defining new command codes, as opposed to options that use existing command codes: the former might require a strict policy, where a more relaxed policy could be adequate for the latter. Another example is defining protocol elements that change the semantics of existing operations πŸ”.
  • When there are security implications with respect to the resource, and thorough review is needed to make sure the new usage is sound. Examples of this include lists of acceptable hashing and cryptographic algorithms, and assignment of transport ports in the system range πŸ”.
When reviewing a document that asks IANA to create a new registry or change a registration policy to any policy more stringent than Expert Review or Specification Required, the IESG should ask for justification. This makes sure more relaxed policies were considered and that the stricter one is actually the right one πŸ§πŸ’….

So document developers need to anticipate this and document their considerations for selecting the specified policy (ideally in the document itself; failing that, in the shepherd writeup) πŸ“. Likewise, the document shepherd should make sure the selected policies have been justified before the document goes to the IESG 🫢.

When specifications are revised, registration policies should be reviewed in light of experience since the policies were set 🌈✨.

4.12. Using Multiple Policies in Combination ✨

Sometimes one registration policy just isn't enough 🫠 Like, requests that come through the normal IETF process might get one policy, while requests from outside the process get a totally different one. It's giving mix-and-match, and honestly it works πŸ’…

So a registry might want to use something like "RFC Required" or "IETF Review" sometimes, and then have a designated expert checking a "Specification Required" policy at other times πŸ¦‹

The alternative is kinda messy 😭 It would mean either that every single request has to come through an RFC, or that requests already in RFCs have to go through designated expert review even though they've already had IETF review and consensus. Why re-review something that's already been reviewed? πŸ’€

You can document this in the IANA Considerations section when the registry is created. Here's an example:

      IANA is asked to create the registry "Fruit Access Flags" under
      the "Fruit Parameters" group.  New registrations will be permitted
      through either the IETF Review policy or the Specification
      Required policy [BCP26].  The latter should be used only for
      registrations requested by SDOs outside the IETF.  Registrations
      requested in IETF documents will be subject to IETF review.

Combos like this will commonly pair one of {Standards Action, IETF Review, RFC Required} with one of {Specification Required, Expert Review} πŸŽ€ Make sure you include guidance about when each policy is the right one, just like in the example above, so nobody's left guessing 🫢

4.13. Provisional Registrations

Some existing registries allow provisional registration. Check out URI Schemes [RFC7595] and Email Header Fields [RFC3864] πŸ‘€ Provisional registrations are usually defined as being easier to create, change, reassign, move to another status, or remove entirely 🌸 URI Schemes, for example, lets provisional registrations be made with incomplete information.

This is the clever part ✨ Allowing provisional registration keeps the main goal of a registry, which is avoiding collisions between incompatible semantics, without the side effect of "endorsing" the protocol mechanism the provisional value is used for. Provisional registrations for codepoints that eventually get standardized can be promoted to permanent status πŸ¦‹ The criteria for that promotion will likely be stricter than the ones that allowed the provisional registration in the first place, so it's not a free pass πŸ’…

If your registry doesn't have a practical limit on codepoints, adding the option for provisional registrations might be the right move for that registry too 🌈


5. Designated Experts

5.1. The Motivation for Designated Experts

Mailing list discussions can give super valuable technical feedback πŸ’œ But opinions often vary, and those discussions can drag on for a while without a clear answer. Plus, IANA can't join all of these mailing lists and can't always tell if or when a discussion has reached consensus 😭 So IANA relies on a "designated expert" for advice on the specific question of whether an assignment should be made. The designated expert is an individual who carries out an appropriate evaluation and sends a recommendation back to IANA 🧚

A big reason for designated experts is that the IETF gets IANA a subject matter expert to hand the evaluation off to ✨ IANA forwards assignment requests to the expert, and the expert, after doing the evaluation, tells IANA whether or not to make the assignment or registration. In most cases, registrants don't work directly with the designated experts πŸ™ˆ The list of designated experts for a registry is listed in the registry itself.

It'll often be useful to use a designated expert only some of the time, as a supplement to other processes. For more on that, see Section 4.12 πŸŽ€

5.2. The Role of the Designated Expert

The designated expert is responsible for coordinating the right review of an assignment request πŸ‘‘ The review can be wide or narrow, depending on the situation and the expert's judgment. It might involve consulting a set of technology experts, discussing on a public mailing list, consulting a working group (or its mailing list if the working group has disbanded), and so on 🌸 Ideally, the designated expert follows specific review criteria documented with the protocol that creates or uses the namespace. See the IANA Considerations sections of [RFC3748] and [RFC3575] for specific examples πŸ“š

Designated experts are expected to be able to defend their decisions to the IETF community πŸ’… The evaluation process isn't meant to be secretive or hand unquestioned power to the expert. Experts should apply any documented review or vetting procedures. If there are no documented criteria, they should follow generally accepted norms, such as those in Section 5.3 🫢 Designated experts generally aren't supposed to be "gatekeepers" who try to make registrations hard to get, unless the guidance in the defining document says they should act that way πŸ™…β€β™€οΈ Without stronger guidance, experts should be checking registration requests for completeness, interoperability, and conflicts with existing protocols and options ✨

It's proven useful to have multiple designated experts for some registries πŸ¦‹ Sometimes the experts work together on a request, while other times extra experts act as backups and only step in when the primary expert is unavailable. In registries with a pool of experts, the pool often has a single chair who's responsible for defining how requests get assigned to and reviewed by experts πŸ’œ In other cases, IANA might assign requests to individual members in sequential or roughly random order. The document defining the registry can, where it fits the situation, specify how the group should work. For example, it might make sense to specify rough consensus on a mailing list, within a related working group, or among a pool of designated experts 🌈

If experts disagree, it's on those experts to give IANA one single clear recommendation 😀 It's not appropriate for IANA to settle disputes among experts. In extreme situations, like deadlock, the designating body may need to step in and fix the problem πŸ’€

If a designated expert has a conflict of interest for a particular review (for example, they're an author or a significant proponent of a specification related to the registration under review), that expert should recuse himself πŸ™ˆ If all the designated experts are conflicted, they should ask for a temporary expert to be designated for that review. The responsible AD may then appoint someone, or the AD may handle the review themselves πŸ‘‘

This document defines the designated expert mechanism only for documents in the IETF stream. If other streams want to use registration policies that require designated experts, it's up to those streams (or those documents) to specify how those experts are appointed and managed. What's described below, with management by the IESG, is only appropriate for the IETF stream πŸ’…

5.2.1. Managing Designated Experts in the IETF

Designated experts for registries created by the IETF are appointed by the IESG, normally on the recommendation of the relevant Area Director πŸŽ€ They can be appointed when the document creating or updating a namespace is approved by the IESG, or later, when the first registration request comes in. Experts who were originally appointed may become unavailable, so the IESG will appoint replacements as needed 🫢 The IESG may remove any designated expert it appointed, at its discretion 🌸

The normal appeals process, described in [RFC2026], Section 6.5.1, applies to issues that come up with the designated expert team 🧚 For this purpose, the designated expert team takes the place of the working group in that description πŸ¦‹

5.3. Designated Expert Reviews πŸŽ€

Okay so, the years since [RFC2434] got published and people started actually using it have taught us a few things. Let's dig in, bestie 🫢

  • A designated expert has to respond in a timely fashion, normally within a week for simple requests or a few weeks for more complex ones πŸ’…. Unreasonable delays cause real chaos for people who need assignments, like when products need code points to ship 😭. Not every review can be done under a firm deadline, BUT they must be started, and the requester and IANA should have some transparency into the process if an answer can't come quickly 🧚.
  • If a designated expert doesn't respond to IANA's requests within a reasonable period of time, either with a response or a reasonable explanation for the delay (some requests are just particularly complex πŸ™ˆ), and if this keeps happening, IANA MUST raise the issue with the IESG. Because delayed evaluations and assignments cause so many problems, the IESG SHOULD take appropriate actions to make sure the expert understands and accepts their responsibilities, or appoint a new expert πŸ‘‘.
  • The designated expert is NOT required to personally carry the burden of evaluating and deciding all requests 🌸. Instead they act as a shepherd for the request, enlisting help from others as appropriate 🫢. If a request gets denied and rejecting it is likely to be controversial, the expert SHOULD have the support of other subject matter experts. Basically, the expert MUST be able to defend a decision to the community as a whole ✨.

When a designated expert is used, the documentation SHOULD give clear guidance to the designated expert, laying out criteria for performing an evaluation and reasons for rejecting a request πŸ“. In the case where there are no specific documented criteria, the presumption SHOULD be that a code point is granted unless there is a compelling reason to the contrary (and see also Section 5.4) πŸ’œ. Reasons that have been used to deny requests include these:

  • Scarcity of code points, where the finite remaining code points should be prudently managed, or where a request for a large number of code points is made and a single code point is the norm πŸ₯Ί.
  • Documentation is not of sufficient clarity to evaluate or ensure interoperability πŸ’€.
  • The code point is needed for a protocol extension, but the extension is not consistent with the documented (or generally understood) architecture of the base protocol being extended and would be harmful to the protocol if widely deployed. It's not the intent that "inconsistencies" refer to minor differences "of a personal preference nature". Instead, they refer to significant differences such as inconsistencies with the underlying security model, implying a change to the semantics of an existing message type or operation, requiring unwarranted changes in deployed systems (compared with alternate ways of achieving a similar result), etc. πŸ”₯
  • The extension would cause problems with existing deployed systems 😬.
  • The extension would conflict with one under active development by the IETF, and having both would harm rather than foster interoperability πŸ¦‹.

Documents MUST NOT name the designated expert(s) in the document itself. Instead, any suggested names SHOULD be relayed to the appropriate Area Director at the time the document is sent to the IESG for approval. This is usually done in the document shepherd writeup πŸ§šβ€β™€οΈ.

If the request should also be reviewed on a specific public mailing list, its address should be specified πŸ“¬.

5.4. Expert Reviews and the Document Lifecycle πŸ¦‹

Review by the designated expert is necessarily done at a particular point in time and represents review of a particular version of the document. Reviews are generally done around the time of IETF Last Call, but deciding when the review should take place is a question of good judgment 🧠. And while rereviews might be done when it's acknowledged that the documentation of the registered item has changed substantially, making sure that rereview actually happens requires attention and care πŸ‘€.

It's possible, through carelessness, accident, inattentiveness, or even willful disregard, that changes get made after the designated expert's review and approval that would, if the document were rereviewed, cause the expert NOT to approve the registration 😳. It is up to the IESG, with the token held by the responsible Area Director, to stay alert to such situations and recognize that such changes need to be checked πŸ•΅οΈβ€β™€οΈ.

For registrations made from documents on the Standards Track, there is often expert review required (by the registration policy) in addition to IETF consensus (for approval as a Standards Track RFC) 🌈. In such cases, the review by the designated expert needs to be timely, submitted before the IESG evaluates the document. The IESG SHOULD NOT hold the document up waiting for a late review πŸ™…β€β™€οΈ. It is also NOT intended for the expert review to override IETF consensus: the IESG should consider the review in its own evaluation, just as it would for other Last Call reviews πŸ’–.

6. Well-Known Registration Status Terminology 🌸

The following labels describe the status of an assignment or range of assignments:

   Private Use:  Private use only (not assigned), as described in
         Section 4.1.

   Experimental:  Available for general experimental use as described
         in [RFC3692].  IANA does not record specific assignments for
         any particular use.

   Unassigned:  Not currently assigned, and available for assignment
         via documented procedures.  While it's generally clear that
         any values that are not registered are unassigned and
         available for assignment, it is sometimes useful to
         explicitly specify that situation.  Note that this is
         distinctly different from "Reserved".

   Reserved:  Not assigned and not available for assignment.
         Reserved values are held for special uses, such as to extend
         the namespace when it becomes exhausted.  "Reserved" is also
         sometimes used to designate values that had been assigned
         but are no longer in use, keeping them set aside as long as
         other unassigned values are available.  Note that this is
         distinctly different from "Unassigned".

         Reserved values can be released for assignment by the change
         controller for the registry (this is often the IESG, for
         registries created by RFCs in the IETF stream).

   Known Unregistered Use:  It's known that the assignment or range
         is in use without having been defined in accordance with
         reasonable practice.  Documentation for use of the
         assignment or range may be unavailable, inadequate, or
         conflicting.  This is a warning against use, as well as an
         alert to network operators who might see these values in use
         on their networks.

7. Documentation References in IANA Registries πŸ“š

Usually, registries and registry entries include references to documentation (RFCs or other documents). The purpose of these references is to provide pointers for implementors to find details necessary for implementation, NOT to simply note what document created the registry or entry πŸ’…. Therefore:

  • If a document registers an item that is defined and explained elsewhere, the registered reference SHOULD be to the document containing the definition, not to the document that is merely performing the registration 🧚.
  • If the registered item is defined and explained in the current document, it is important to include sufficient information to enable implementors to understand the item and to create a proper implementation πŸ”₯.
  • If the registered item is explained primarily in a specific section of the reference document, it is useful to include a section reference. For example, "[RFC4637], Section 3.2", rather than just "[RFC4637]" 🎯.
  • For documentation of a new registry, the reference should provide information about the registry itself, not just a pointer to the creation of it. Useful information includes the purpose of the registry, a rationale for its creation, documentation of the process and policy for new registrations, guidelines for new registrants or designated experts, and other such related information. But note that, while it's important to include this information in the document, it needn't all be in the IANA Considerations section. See Section 1.1 πŸ¦‹.

8. What to Do in "bis" Documents ✨

okay so sometimes an RFC comes out that replaces an older edition of the same doc. 🧚 People call these "bis" documents. The example in the text is RFC 4637 getting obsoleted by draft-ietf-foo-rfc4637bis. πŸ’… When the original doc made registries or registered stuff, you have to figure out how the IANA Considerations section in the "bis" doc should handle it. πŸŽ€

If the registrations point at the original document as their reference, those registrations should get updated to point at the current (not obsolete) documentation for those items. Usually that just means swapping the reference over to the "bis" document. πŸ¦‹

There will also be times when a document updates another one without obsoleting it, and the definitive reference changes for some items but not others. 🌸 Double-check that every reference points at the correct, current documentation for each item. No skipping this part bestie πŸ™ˆ

Here's an example. Say RFC 4637 registered the "BANANA" flag in the "Fruit Access Flags" registry, and the docs for that flag live in Section 3.2. πŸ“

The current registry might look something like this, in part:

Name      Description          Reference
--------  -------------------  ---------
BANANA    Flag for bananas     [RFC4637], Section 3.2

Now imagine draft-ietf-foo-rfc4637bis obsoletes RFC 4637 and, after some rearranging, documents the flag in Section 4.1.2 instead. Then the IANA Considerations of the bis doc might have text like this:

IANA is asked to change the registration information for the
BANANA flag in the "Fruit Access Flags" registry to the
following:

Name      Description          Reference
--------  -------------------  ---------
BANANA    Flag for bananas     [[this RFC]], Section 4.2.1
⚠️ In plenty of cases, if there are a bunch of registered references to the original RFC and the section numbering hasn't changed much, it can be perfectly reasonable to just say this:
Because this document obsoletes RFC 4637, IANA is asked to change
all registration information that references [RFC4637] to instead
reference [[this RFC]].

If the info for registered items has been moved (or is being moved) into other documents, the registration info should be changed to point at those other documents. 🫢 In most cases, doc references shouldn't be left pointing at an obsoleted document for registries or items that are still in current use. For registries or items that are no longer in current use, it will usually make sense to leave the references pointing at the old document, which is the last current reference for those obsolete items. πŸ•°οΈ The main goal is making sure the reference pointers are as useful and current as is reasonable. Authors should think about that while writing the IANA Considerations for the new document. As always: do the right thing, and there's flexibility to allow for that. πŸ’–

It is extremely important to be clear in your instructions about updating references, especially when some references need to be updated and others don't. πŸ”₯


9. Miscellaneous Issues 🌈

9.1. When There Are No IANA Actions πŸ’€

Before an Internet-Draft can be published as an RFC, IANA needs to know what actions (if any) it has to perform. πŸ™„ Experience has shown that it isn't always obvious whether a document has no IANA actions unless you read the whole thing in detail. So to make it crystal clear to IANA that there's nothing to do (and that the author actually made that call on purpose), these documents should, after the authors confirm that's the case, include an IANA Considerations section that says:

This document has no IANA actions.

IANA prefers that these "empty" IANA Considerations sections stay in the document for the record. πŸ“ That way it's clear later on that the document explicitly said no IANA actions were needed, and it wasn't just left out. This is a change from the old practice of asking the RFC Editor to remove such sections, so authors are asked to go along with the new way. 🫢

9.2. Namespaces Lacking Documented Guidance 🧐

For all existing RFCs that explicitly or implicitly rely on IANA to make assignments without specifying a precise assignment policy, IANA will work with the IESG to decide what policy is appropriate. 🌸 Changes to existing policies can always be started through the normal IETF consensus process, or through the IESG when that's appropriate. ✨

All future RFCs that explicitly or implicitly rely on IANA to register or otherwise administer namespace assignments must provide guidelines for administering the namespace. πŸ‘‘ No vibes-only namespaces, periodt πŸ’…

9.3. After-the-Fact Registrations πŸ•΅οΈβ€β™€οΈ

Sometimes the IETF finds out that an unassigned value from a namespace is in use on the Internet, or that an assigned value is being used for something other than what it was registered for. 😳 The IETF does not condone that kind of misuse. Procedures like the ones described in this document still need to be applied to those cases, and it might not always be possible to formally assign the value someone wants. In the absence of specs saying otherwise, values may only be reassigned for a different purpose with the consent of the original assignee (when that's possible) and with due consideration of the impact of the reassignment. βš–οΈ In cases that are likely to be controversial, consulting the IESG is advised.

This is part of the reason for the advice in Section 3.1 about using placeholder values, like "TBD1", during document development. 🧩 Problems often happen when well-meant early implementations keep using unregistered values, which means developmental code points that never made it to a final IANA assignment end up staying in use. 😭 Lesson learned, bestie.

9.4. Reclaiming Assigned Values ♻️

Reclaiming previously assigned values for reuse is tricky, because it can cause interoperability problems with deployed systems that are still using those values. 😬 It can also be extremely hard to figure out how far a particular value has been deployed. Still, in cases where a namespace is running out of unassigned values and more are needed, it may be desirable to try reclaiming unused values. When reclaiming unused values, the following (at a minimum) should be considered:

  • Attempts should be made to contact the original party to which a value is assigned, to find out if the value was ever used and, if so, how far it's been deployed. (Sometimes products were never shipped or stopped being used a long time ago. Other times it may be known that a value was never actually used at all.) πŸ•΅οΈ
  • Reassignments should not normally be made without the concurrence of the original requester. Reclamation under those conditions should only happen where there is strong evidence that a value isn't widely used, and the need to reclaim it outweighs the cost of a hostile reclamation. IESG Approval is needed in this case. 🚫
  • It may be appropriate to write up the proposed action and ask relevant user communities for comments. In some cases, it may be appropriate to write an RFC that goes through a formal IETF process (including IETF Last Call), as was done when DHCP reclaimed some of its "Private Use" options [RFC3942]. πŸ“£
  • It may be useful to tell apart revocation, release, and transfer. Revocation happens when IANA removes an assignment, release happens when the assignee starts that removal, and transfer happens when either revocation or release is coupled with immediate reassignment. It may be useful to specify procedures for each of these, or to explicitly prohibit combinations that aren't desired. πŸ”„

9.5. Contact Person vs Assignee or Owner πŸ€”

Lots of registries include a technical or administrative contact for each entry. Often that's recorded as contact info for an individual. πŸ§‘β€πŸ’» It's unclear, though, what role that individual has with respect to the registration. Is the item registered on behalf of the individual, the company the individual worked for, or maybe some other organization the individual was acting for? Big question, no cap.

This matters because later on, the individual may have changed jobs or roles and maybe can't be contacted anymore, and someone might want to update the registration. 😩 IANA has no way to know which company, organization, or individual should be allowed to take over the registration. For registrations rooted in RFCs, the stream owner (such as the IESG or the IAB) can make an overriding decision. But in other cases, there's no recourse. πŸ’”

So registries can include, in addition to a "Contact" field, an "Assignee" or "Owner" field (also called "Change Controller"). That helps address this situation by giving IANA clear guidance on who the actual owner of the registration is. 🎯 This is strongly advised, especially for registries that don't require RFCs to manage their information (for example, registries with policies such as First Come First Served (Section 4.4), Expert Review (Section 4.5), and Specification Required (Section 4.6)). Alternatively, organizations can put an organizational role into the "Contact" field to make their ownership clear. 🏒

9.6. Closing or Obsoleting a Registry/Registrations πŸšͺ

Sometimes there's a request to "close" a registry to further registrations. When a registry is closed, no further registrations will be accepted. πŸ”’ The info in the registry will still be valid, and registrations already in it can still be updated.

A closed registry can also be marked as "obsolete", which indicates that the information in the registry is no longer in current use. πŸ•°οΈ

Specific entries in a registry can be marked as "obsolete" (no longer in use) or "deprecated" (use is not recommended). πŸ™…β€β™€οΈ

Changes like these to registries and registered values are subject to normal change controls (see Section 2.3). Any closure, obsolescence, or deprecation just annotates the registry involved. The info stays there for informational and historic purposes. πŸ“š


10. Appeals βš–οΈ

Appeals of protocol parameter registration decisions can be made using the normal IETF appeals process described in [RFC2026], Section 6.5. πŸ™Œ So an initial appeal goes to the IESG, and then, if necessary, an appeal can go to the IAB.


11. Mailing Lists πŸ“¬

All IETF mailing lists associated with evaluating or discussing assignment requests, as described in this document, are subject to whatever rules of conduct and methods of list management are currently defined by best current practices or by IESG decision. 🫧

12. Security Considerations πŸ”βœ¨

Okay bestie, this part is serious, so brace yourself πŸ’… Info that creates or updates a registration needs to be authenticated and authorized πŸ”’. IANA updates registries based on instructions in published RFCs and from the IESG. It may also accept clarifications from document authors, relevant working group chairs, designated experts, and mail list participants 🫢.

Info about possible security vulnerabilities of a protocol can change over time 😭. The same goes for security vulnerabilities about how an assigned number gets used. As new vulnerabilities are discovered, info about them may need to be attached to existing registrations so that users aren't misled about the true security issues around using a registered number πŸ™ˆ. Nobody wants that!

Security needs to be considered when picking a registration policy 🧐. For some protocols, registering certain parameters has security implications, and registration policies for those registries must ensure that requests get appropriate review with those implications in mind πŸ”₯.

An analysis of security issues is generally required for all protocols that use parameters (data types, operation codes, keywords, etc.) documented in IETF protocols or registered by IANA. These security considerations usually live in the protocol document [BCP72] πŸ“–. It's the job of the IANA considerations for a particular registry to say whether value-specific security considerations must be provided when new values are assigned, and to describe the process for reviewing those claims πŸ‘‘.


13. IANA Considerations πŸŽ€

Sitewide, IANA has swapped out references to RFC 5226 for references to this document πŸ’–.


14. Changes Relative to Earlier Editions of BCP 26 πŸ¦‹

14.1. 2016: Changes in This Document Relative to RFC 5226 ✨

Okay, the big glow-up additions 🌈:

  • Removed RFC 2119 key words, boilerplate, and reference, preferring plain English -- this is not a protocol specification.
  • Added Section 1.1, Keep IANA Considerations for IANA
  • Added Section 1.2, For Updated Information
  • Added Section 2.1, Organization of Registries
  • Added best practice for selecting an appropriate policy into Section 4.
  • Added Section 4.12, Using Multiple Policies in Combination
  • Added Section 2.3, Specifying Change Control for a Registry
  • Added Section 3.4, Early Allocations
  • Moved each well-known policy into a separate subsection of Section 4.
  • Added Section 5.4, Expert Reviews and the Document Lifecycle
  • Added Section 7, Documentation References in IANA Registries
  • Added Section 8, What to Do in "bis" Documents
  • Added Section 9.5, Contact Person vs Assignee or Owner
  • Added Section 9.6, Closing or Obsoleting a Registry/Registrations

Clarifications and such πŸ’…:

  • Some reorganization. Text got moved around for clarity and easier reading 🧚.
  • Made clarifications about identification of IANA registries and use of URLs for them πŸ”—.
  • Clarified the distinction between "Unassigned" and "Reserved" 🫧.
  • Made some clarifications in "Expert Review" about instructions to the designated expert 🧐.
  • Made some clarifications in "Specification Required" about how to declare this policy πŸ“.
  • Assorted minor clarifications and editorial changes throughout ✨.

14.2. 2008: Changes in RFC 5226 Relative to RFC 2434 🌸

Here's what changed in RFC 5226 πŸ“:

  • Major reordering of text to expand descriptions and to better group topics such as "updating registries" vs. "creating new registries", so authors can find the text that fits their needs faster πŸ—ΊοΈ.
  • Numerous editorial changes to improve readability πŸ“–.
  • Changed the term "IETF Consensus" to "IETF Review" and added more clarifications. History has shown that people see the words "IETF Consensus" (without consulting the actual definition) and are quick to make incorrect assumptions about what the term means in the context of IANA Considerations πŸ™ƒ.
  • Added "RFC Required" to the list of defined policies πŸ“œ.
  • Added much more explicit directions and examples of "what to put in RFCs" 🎯.
  • "Specification Required" now implies use of a designated expert to evaluate specs for sufficient clarity πŸ”.
  • Added a section describing provisional registrations πŸ—‚οΈ.
  • Significantly changed the wording in the "Designated Experts" section. The main purpose is to make clear that Expert Reviewers are accountable to the community, and to give some guidance on review criteria in the default case πŸ‘©β€πŸ’».
  • Changed the wording to remove any special appeals path. The normal RFC 2026 appeals path is used βš–οΈ.
  • Added a section about reclaiming unused values ♻️.
  • Added a section on after-the-fact registrations πŸ•°οΈ.
  • Added a section indicating that mailing lists used to evaluate possible assignments (such as by a designated expert) are subject to normal IETF rules πŸ“¬.

15. References πŸ“š

15.1. Normative References

[RFC2026]  Bradner, S., "The Internet Standards Process -- Revision
           3", BCP 9, RFC 2026, DOI 10.17487/RFC2026, October 1996,
           <http://www.rfc-editor.org/info/rfc2026>.
15.2.  Informative References

Okay bestie, these are the informative refs and they're giving a lot of history πŸ“šβœ¨ Every single one is listed with its exact title, authors, BCP number (if it has one), RFC number, DOI, and link, so you can go find any of them. Let's go! πŸ¦‹

[BCP72] Rescorla, E. and B. Korver, "Guidelines for Writing RFC Text on Security Considerations", BCP 72, RFC 3552, July 2003, <http://www.rfc-editor.org/info/bcp72>.

[RFC791] Postel, J., "Internet Protocol", STD 5, RFC 791, DOI 10.17487/RFC0791, September 1981, <http://www.rfc-editor.org/info/rfc791>.

[RFC1591] Postel, J., "Domain Name System Structure and Delegation", RFC 1591, DOI 10.17487/RFC1591, March 1994, <http://www.rfc-editor.org/info/rfc1591>.

[RFC2434] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", RFC 2434, DOI 10.17487/RFC2434, October 1998, <http://www.rfc-editor.org/info/rfc2434>.

[RFC2860] Carpenter, B., Baker, F., and M. Roberts, "Memorandum of Understanding Concerning the Technical Work of the Internet Assigned Numbers Authority", RFC 2860, DOI 10.17487/RFC2860, June 2000, <http://www.rfc-editor.org/info/rfc2860>.

[RFC2939] Droms, R., "Procedures and IANA Guidelines for Definition of New DHCP Options and Message Types", BCP 43, RFC 2939, DOI 10.17487/RFC2939, September 2000, <http://www.rfc-editor.org/info/rfc2939>.

[RFC3228] Fenner, B., "IANA Considerations for IPv4 Internet Group Management Protocol (IGMP)", BCP 57, RFC 3228, DOI 10.17487/RFC3228, February 2002, <http://www.rfc-editor.org/info/rfc3228>.

[RFC3575] Aboba, B., "IANA Considerations for RADIUS (Remote Authentication Dial In User Service)", RFC 3575, DOI 10.17487/RFC3575, July 2003, <http://www.rfc-editor.org/info/rfc3575>.

[RFC3692] Narten, T., "Assigning Experimental and Testing Numbers Considered Useful", BCP 82, RFC 3692, DOI 10.17487/RFC3692, January 2004, <http://www.rfc-editor.org/info/rfc3692>.

[RFC3748] Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and H. Levkowetz, Ed., "Extensible Authentication Protocol (EAP)", RFC 3748, DOI 10.17487/RFC3748, June 2004, <http://www.rfc-editor.org/info/rfc3748>.

[RFC3864] Klyne, G., Nottingham, M., and J. Mogul, "Registration Procedures for Message Header Fields", BCP 90, RFC 3864, DOI 10.17487/RFC3864, September 2004, <http://www.rfc-editor.org/info/rfc3864>.

[RFC3942] Volz, B., "Reclassifying Dynamic Host Configuration Protocol version 4 (DHCPv4) Options", RFC 3942, DOI 10.17487/RFC3942, November 2004, <http://www.rfc-editor.org/info/rfc3942>.

[RFC3968] Camarillo, G., "The Internet Assigned Number Authority (IANA) Header Field Parameter Registry for the Session Initiation Protocol (SIP)", BCP 98, RFC 3968, DOI 10.17487/RFC3968, December 2004, <http://www.rfc-editor.org/info/rfc3968>.

[RFC4025] Richardson, M., "A Method for Storing IPsec Keying Material in DNS", RFC 4025, DOI 10.17487/RFC4025, March 2005, <http://www.rfc-editor.org/info/rfc4025>.

[RFC4044] McCloghrie, K., "Fibre Channel Management MIB", RFC 4044, DOI 10.17487/RFC4044, May 2005, <http://www.rfc-editor.org/info/rfc4044>.

[RFC4124] Le Faucheur, F., Ed., "Protocol Extensions for Support of Diffserv-aware MPLS Traffic Engineering", RFC 4124, DOI 10.17487/RFC4124, June 2005, <http://www.rfc-editor.org/info/rfc4124>.

[RFC4169] Torvinen, V., Arkko, J., and M. Naslund, "Hypertext Transfer Protocol (HTTP) Digest Authentication Using Authentication and Key Agreement (AKA) Version-2", RFC 4169, DOI 10.17487/RFC4169, November 2005, <http://www.rfc-editor.org/info/rfc4169>.

[RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A Border Gateway Protocol 4 (BGP-4)", RFC 4271, DOI 10.17487/RFC4271, January 2006, <http://www.rfc-editor.org/info/rfc4271>.

[RFC4283] Patel, A., Leung, K., Khalil, M., Akhtar, H., and K. Chowdhury, "Mobile Node Identifier Option for Mobile IPv6 (MIPv6)", RFC 4283, DOI 10.17487/RFC4283, November 2005, <http://www.rfc-editor.org/info/rfc4283>.

[RFC4340] Kohler, E., Handley, M., and S. Floyd, "Datagram Congestion Control Protocol (DCCP)", RFC 4340, DOI 10.17487/RFC4340, March 2006, <http://www.rfc-editor.org/info/rfc4340>.

[RFC4422] Melnikov, A., Ed. and K. Zeilenga, Ed., "Simple Authentication and Security Layer (SASL)", RFC 4422, DOI 10.17487/RFC4422, June 2006, <http://www.rfc-editor.org/info/rfc4422>.

[RFC4446] Martini, L., "IANA Allocations for Pseudowire Edge to Edge Emulation (PWE3)", BCP 116, RFC 4446, DOI 10.17487/RFC4446, April 2006, <http://www.rfc-editor.org/info/rfc4446>.

[RFC4520] Zeilenga, K., "Internet Assigned Numbers Authority (IANA) Considerations for the Lightweight Directory Access Protocol (LDAP)", BCP 64, RFC 4520, DOI 10.17487/RFC4520, June 2006, <http://www.rfc-editor.org/info/rfc4520>.

[RFC4589] Schulzrinne, H. and H. Tschofenig, "Location Types Registry", RFC 4589, DOI 10.17487/RFC4589, July 2006, <http://www.rfc-editor.org/info/rfc4589>.

[RFC4727] Fenner, B., "Experimental Values In IPv4, IPv6, ICMPv4, ICMPv6, UDP, and TCP Headers", RFC 4727, DOI 10.17487/RFC4727, November 2006, <http://www.rfc-editor.org/info/rfc4727>.

[RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security (TLS) Protocol Version 1.2", RFC 5246, DOI 10.17487/RFC5246, August 2008, <http://www.rfc-editor.org/info/rfc5246>.

[RFC5378] Bradner, S., Ed. and J. Contreras, Ed., "Rights Contributors Provide to the IETF Trust", BCP 78, RFC 5378, DOI 10.17487/RFC5378, November 2008, <http://www.rfc-editor.org/info/rfc5378>.

[RFC5742] Alvestrand, H. and R. Housley, "IESG Procedures for Handling of Independent and IRTF Stream Submissions", BCP 92, RFC 5742, DOI 10.17487/RFC5742, December 2009, <http://www.rfc-editor.org/info/rfc5742>.

[RFC5771] Cotton, M., Vegoda, L., and D. Meyer, "IANA Guidelines for IPv4 Multicast Address Assignments", BCP 51, RFC 5771, DOI 10.17487/RFC5771, March 2010, <http://www.rfc-editor.org/info/rfc5771>.

[RFC5795] Sandlund, K., Pelletier, G., and L-E. Jonsson, "The RObust Header Compression (ROHC) Framework", RFC 5795, DOI 10.17487/RFC5795, March 2010, <http://www.rfc-editor.org/info/rfc5795>.

[RFC6014] Hoffman, P., "Cryptographic Algorithm Identifier Allocation for DNSSEC", RFC 6014, DOI 10.17487/RFC6014, November 2010, <http://www.rfc-editor.org/info/rfc6014>.

[RFC6230] Boulton, C., Melanchuk, T., and S. McGlashan, "Media Control Channel Framework", RFC 6230, DOI 10.17487/RFC6230, May 2011, <http://www.rfc-editor.org/info/rfc6230>.

[RFC6275] Perkins, C., Ed., Johnson, D., and J. Arkko, "Mobility Support in IPv6", RFC 6275, DOI 10.17487/RFC6275, July 2011, <http://www.rfc-editor.org/info/rfc6275>.

[RFC6698] Hoffman, P. and J. Schlyter, "The DNS-Based Authentication of Named Entities (DANE) Transport Layer Security (TLS) Protocol: TLSA", RFC 6698, DOI 10.17487/RFC6698, August 2012, <http://www.rfc-editor.org/info/rfc6698>.

[RFC6709] Carpenter, B., Aboba, B., Ed., and S. Cheshire, "Design Considerations for Protocol Extensions", RFC 6709, DOI 10.17487/RFC6709, September 2012, <http://www.rfc-editor.org/info/rfc6709>.

[RFC6838] Freed, N., Klensin, J., and T. Hansen, "Media Type Specifications and Registration Procedures", BCP 13, RFC 6838, DOI 10.17487/RFC6838, January 2013, <http://www.rfc-editor.org/info/rfc6838>.

[RFC6895] Eastlake 3rd, D., "Domain Name System (DNS) IANA Considerations", BCP 42, RFC 6895, DOI 10.17487/RFC6895, April 2013, <http://www.rfc-editor.org/info/rfc6895>.

[RFC6994] Touch, J., "Shared Use of Experimental TCP Options", RFC 6994, DOI 10.17487/RFC6994, August 2013, <http://www.rfc-editor.org/info/rfc6994>.

[RFC7120] Cotton, M., "Early IANA Allocation of Standards Track Code Points", BCP 100, RFC 7120, DOI 10.17487/RFC7120, January 2014, <http://www.rfc-editor.org/info/rfc7120>.

[RFC7564] Saint-Andre, P. and M. Blanchet, "PRECIS Framework: Preparation, Enforcement, and Comparison of Internationalized Strings in Application Protocols", RFC 7564, DOI 10.17487/RFC7564, May 2015, <http://www.rfc-editor.org/info/rfc7564>.

[RFC7595] Thaler, D., Ed., Hansen, T., and T. Hardie, "Guidelines and Registration Procedures for URI Schemes", BCP 35, RFC 7595, DOI 10.17487/RFC7595, June 2015, <http://www.rfc-editor.org/info/rfc7595>.

[RFC7752] Gredler, H., Ed., Medved, J., Previdi, S., Farrel, A., and S. Ray, "North-Bound Distribution of Link-State and Traffic Engineering (TE) Information Using BGP", RFC 7752, DOI 10.17487/RFC7752, March 2016, <http://www.rfc-editor.org/info/rfc7752>.

[RFC8141] Saint-Andre, P. and J. Klensin, "Uniform Resource Names (URNs)", RFC 8141, DOI 10.17487/RFC8141, April 2017, <http://www.rfc-editor.org/info/rfc8141>.

Acknowledgments for This Document (2017)

Thomas Narten and Harald Tveit Alvestrand edited the two earlier editions of this document (RFCs 2434 and 5226), and Thomas continues his role in this third edition. Much of the text from RFC 5226 remains in this edition.

Thank you to Amanda Baber and Pearl Liang for their multiple reviews and suggestions for making this document as thorough as possible.

This document has benefited from thorough review and comments by many people, including Benoit Claise, Alissa Cooper, Adrian Farrel, Stephen Farrell, Tony Hansen, John Klensin, Kathleen Moriarty, Mark Nottingham, Pete Resnick, and Joe Touch.

Special thanks to Mark Nottingham for reorganizing some of the text for better organization and readability, to Tony Hansen for acting as document shepherd, and to Brian Haberman and Terry Manderson for acting as sponsoring ADs. 🫢

Acknowledgments from the Second Edition (2008)

The original acknowledgments section in RFC 5226 was:

This document has benefited from specific feedback from Jari Arkko, Marcelo Bagnulo Braun, Brian Carpenter, Michelle Cotton, Spencer Dawkins, Barbara Denny, Miguel Garcia, Paul Hoffman, Russ Housley, John Klensin, Allison Mankin, Blake Ramsdell, Mark Townsley, Magnus Westerlund, and Bert Wijnen. πŸ’œ

Acknowledgments from the First Edition (1998) ✨

okay bestie, the original thank-you list lived in RFC 2434 πŸŽ€ and it's giving "the people who made this possible." Jon Postel and Joyce Reynolds explained what IANA actually needs to manage assignments efficiently, and they were so patient πŸ₯Ή with comments on multiple versions of this doc. Brian Carpenter also left super helpful notes on earlier drafts πŸ’œ. And one paragraph in the Security Considerations section was borrowed from RFC 4288 πŸ”’, so credit where it's due, periodt πŸ’….


Authors' Addresses

these are the three legends who wrote the thing πŸ‘‘ and yes, their contact info is right here, exactly as it was written:

Michelle Cotton πŸ¦‹

Michelle Cotton
PTI, an affiliate of ICANN
12025 Waterfront Drive, Suite 300
Los Angeles, CA  90094-2536
United States of America

Phone: +1-424-254-5300
Email: michelle.cotton@iana.org
URI:   https://www.iana.org/

Barry Leiba 🌸

Barry Leiba
Huawei Technologies

Phone: +1 646 827 0648
Email: barryleiba@computer.org
URI:   http://internetmessagingtechnology.org/

Thomas Narten 🧚

Thomas Narten
IBM Corporation
3039 Cornwallis Ave., PO Box 12195 - BRQA/502
Research Triangle Park, NC  27709-2195
United States of America

Phone: +1 919 254 7798
Email: narten@us.ibm.com

that's the whole doc, bestie 🫢 you made it through the registries, the policies and all the security stuff 😭🌈

πŸ“¦ where this page comes from