RFC 7841

RFC Streams, Headers, and Boilerplates

πŸ“… published May 2016, from ietf

RFC 7841: RFC Streams, Headers, and Boilerplates πŸŽ€

Okay bestie, this is RFC 7841 πŸ¦‹ It's an Informational doc from the Internet Architecture Board (IAB), dated May 2016 (ISSN 2070-1721). The editors are J. Halpern, L. Daigle, and O. Kolkman, all marked "Ed." And it obsoletes RFC 5741 πŸ’…

Abstract

RFC documents have a bunch of fixed bits, like the title page header, standard boilerplates, and copyright/IPR statements πŸ“„ This doc describes them and introduces some updates so they match how RFCs are used and published today. The big goal is to make it super clear where an RFC came from and how it was reviewed πŸ” It obsoletes RFC 5741, moves the detailed content over to an IAB web page, and gets things ready for more flexible output formats ✨

Status of This Memo

This document is not an Internet Standards Track specification; it is published for informational purposes 🌸

This document is a product of the Internet Architecture Board (IAB) and represents information that the IAB has deemed valuable to provide for permanent record. It represents the consensus of the Internet Architecture Board (IAB). Documents approved for publication by the IAB are not a candidate for any level of Internet Standard; see Section 2 of RFC 5741. Not a candidate for any Internet Standard, periodt πŸ™ˆ

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc7841 🧚

Copyright (c) 2016 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) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Read the fine print, bestie 🫢

Table of Contents

1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
2.  RFC Streams and Internet Standards  . . . . . . . . . . . . .   3
3.  RFC Structural Elements . . . . . . . . . . . . . . . . . . .   3
  3.1.  The Title Page Header . . . . . . . . . . . . . . . . . .   4
  3.2.  The Status of This Memo . . . . . . . . . . . . . . . . .   5
  3.3.  Paragraph 1 . . . . . . . . . . . . . . . . . . . . . . .   5
  3.4.  Paragraph 2 . . . . . . . . . . . . . . . . . . . . . . .   5
  3.5.  Paragraph 3 . . . . . . . . . . . . . . . . . . . . . . .   6
  3.6.  Noteworthy  . . . . . . . . . . . . . . . . . . . . . . .   6
4.  Additional Notes  . . . . . . . . . . . . . . . . . . . . . .   6
5.  Other Structural Information in RFCs  . . . . . . . . . . . .   6
6.  Security Considerations . . . . . . . . . . . . . . . . . . .   7
7.  RFC Editor Considerations . . . . . . . . . . . . . . . . . .   7
8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   7
  8.1.  Normative References  . . . . . . . . . . . . . . . . . .   7
  8.2.  Informative References  . . . . . . . . . . . . . . . . .   7
Appendix A.  Initial Formatting Details . . . . . . . . . . . . .  10
  A.1.  RFC Title Page Header . . . . . . . . . . . . . . . . . .  10
  A.2.  Constructing a "Status of This Memo" Section  . . . . . .  10
    A.2.1.  First Paragraph . . . . . . . . . . . . . . . . . . .  11
    A.2.2.  Second Paragraph  . . . . . . . . . . . . . . . . . .  11
    A.2.3.  Third Paragraph . . . . . . . . . . . . . . . . . . .  13
IAB Members at Time of Approval . . . . . . . . . . . . . . . . .  13
Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . .  13
Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  14

1. Introduction ✨

Back in the day, RFCs (for example, [RFC4844]) had a bunch of elements that were there for historical, practical, and legal reasons πŸ“œ They also had boilerplate to make the document's status super clear, and sometimes they included "Notes" explaining how the doc interacts with IETF Standards-Track documents.

As the RFC Series has grown over the years, people have become more and more concerned about labeling. Each RFC's status, and the status of the work it describes, needs to be obvious πŸ‘€ The main thing is that RFCs published through the IETF's review process should not be easily confused with RFCs that had a very different review and approval process 🚫 Lots of little adjustments have been made over the years, including changes to the text of the "Notes" in published RFCs.

Now that the different RFC streams exist [RFC4844], it makes sense to formally define the pieces of standard RFC boilerplate and tweak things so the document status is clearer and lines up with the review and approval process for each stream πŸ’…

This memo identifies and describes the common elements of the RFC boilerplate structure. It describes the content required for each kind of information. The exact text and layout details are left to a web page maintained by the IAB, with due consultation with the community, because that's easier to maintain πŸ› οΈ This document obsoletes [RFC5741].

The changes in this memo should be implemented as soon as practically possible after the document has been approved for publication ⏰

2. RFC Streams and Internet Standards 🌈

Heads up, users of RFCs: all Internet Standards-related documents are published as RFCs, but not all RFCs are Internet Standards-related documents πŸ™ƒ

The IETF is responsible for maintaining the Internet Standards Process, which covers the requirements for developing, reviewing, and approving Standards Track and BCP RFCs. The IETF also produces non-Standards-Track documents (Informational, Experimental, and Historic). All documents published as part of the IETF Stream are reviewed by the appropriate IETF bodies πŸ”

Documents published in streams other than the IETF stream are not generally reviewed by the IETF for things like security, congestion control, or inappropriate interaction with deployed protocols. They also haven't been approved by the Internet Engineering Steering Group (IESG), including an IETF-wide last call. So, for any non-IETF stream document, the IETF disclaims any knowledge of whether that RFC is fit for any purpose. Not its problem, ngl πŸ™ˆ

For current details on the IETF process and RFC streams, refer to [RFC2026], [RFC5742], [RFC4844], [RFC6410], and [RFC7127] and their successors πŸ“š

3. RFC Structural Elements πŸ—οΈ

This section describes the elements that are commonly found in RFCs published today. This document specifies the information that is required in these publications. The exact textual values required in them are given by an IAB web page (https://www.iab.org/documents/headers-boilerplate) 🧚

As noted above, the IAB maintains this web page with due consultation with the community. If the IAB decides to change this material after that consultation, the changes will be announced the same way as other IAB statements πŸ“£ The initial text for that web page is included in Appendix A.

3.1. The Title Page Header πŸŽ€

The information at the front of the RFC includes the name and affiliation of the authors, plus the RFC publication month and year.

There's also some additional information that's needed at the front of the RFC. Historically, this was presented with the information below in a left-hand column, and the author-related information described above in the right-hand one πŸ‘ˆ

  • <document source>: This describes the area where the work originates. Historically, all RFCs were labeled "Network Working Group". Network Working Group refers to the original version of today's IETF, when people from the original set of ARPANET sites (and anyone else who was interested, since the meetings were open) got together to discuss, design, and document proposed protocols [RFC3]. Here, we obsolete the term "Network Working Group" in order to indicate the originating stream πŸͺ¦

The <document source> is the name of the RFC stream, as defined in [RFC4844] and its successors. At the time of this publication, the streams, and therefore the possible entries, are:

  • Internet Engineering Task Force
  • Internet Architecture Board
  • Internet Research Task Force
  • Independent Submission
  • Request for Comments: <RFC number>: This indicates the RFC number, assigned by the RFC Editor upon publication of the document. This element is unchanged πŸ”’
  • <subseries ID> <subseries number>: Some document categories are also labeled as a subseries of RFCs. These elements appear as appropriate for such categories, indicating the subseries and the document's number within that series. Currently, there are subseries for BCPs [RFC2026] and STDs [RFC1311]. These subseries numbers may appear in several RFCs. For example, when a new RFC obsoletes or updates an old one, the same subseries number is used. Also, several RFCs may be assigned the same subseries number: a single STD, for example, may be made up of several RFCs, each of which bears the same STD number. This element is unchanged 🧩
  • [<RFC relation>:<RFC number[s]>]: Some relations between RFCs in the series are explicitly noted in the RFC header. For example, a new RFC may update one or more earlier RFCs. Currently two relationships are defined: "Updates" and "Obsoletes" [RFC7322]. Variants like "Obsoleted by" are also used (e.g, in [RFC5143]). Other types of relationships may be defined by the RFC Editor and may appear in future RFCs πŸ”—
  • Category: <category>: This indicates the initial RFC document category of the publication. These are defined in [RFC2026]. Currently, this is always one of: Standards Track, Best Current Practice, Experimental, Informational, or Historic. This element is unchanged 🏷️

3.2. The Status of This Memo πŸ’–

The "Status of This Memo" describes the category of the RFC, including the distribution statement.

The "Status of This Memo" starts with a single sentence describing the status. It also includes a statement describing the stream-specific review of the material (which depends on the stream). This is an important part of the status, because it clarifies the breadth and depth of review and helps the reader understand how to consider the content 🧐

3.3. Paragraph 1 ✨

The first paragraph of the "Status of This Memo" section contains a single sentence that clearly stands out. The sentence clearly identifies the stream-specific status of the document. The text is defined by the stream, with a review for clarity by the IAB and RFC Series Editor πŸ‘‘

3.4. Paragraph 2 πŸ¦‹

The second paragraph of the "Status of This Memo" includes a paragraph describing the type of review and exposure the document has received. This is defined on a per-stream basis, subject to general review and oversight by the RFC Editor and IAB. The IAB defines a specific structure to ensure there's clarity about review processes and document types 🌸

3.5. Paragraph 3 πŸŽ€

okay so the boilerplate ends by pointing you to where the more relevant info lives πŸ” that info may include, at the RFC Editor's discretion, whether the RFC has been updated or obsoleted, where it came from, a list of possible errata, how to send feedback and suggestions, and how to submit errata as described in [ERRATA]. the exact wording and URL can change (again, at the RFC Editor's discretion), but the current text is:

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   http://www.rfc-editor.org/<static-path>/rfc<rfc-no>.

3.6. Noteworthy ✨

bestie, pay attention here πŸ‘€ paragraphs 1 and 2 of the boilerplate show a document's initial status. after that, documents can change status, for example to Historic πŸ•°οΈ the document itself can't reflect that, so it will need be reflected in the information referred to in Section 5. πŸ’…

4. Additional Notes πŸ“

exceptionally, a review and publication process may prescribe additional notes that show up as labeled notes after the "Abstract" πŸŽ€

this isn't a common thing in recent RFCs anymore πŸ™ˆ the goal of this document is to keep the overall RFC structure clear enough that these notes are unnecessary or (at the very least) truly exceptional 🌸

5. Other Structural Information in RFCs 🧚

RFCs have other structural info elements too πŸ’– the RFC Editor is responsible for where these go and how they're laid out. also, new elements may be introduced or obsoleted through a process consistent with [RFC4844], and those additions may or may not need documenting in an RFC.

right now, these are the structural info bits you can find in RFCs:

  • Copyright Notice: a copyright notice that references BCP 78 [BCP78], plus an Intellectual Property statement that refers to BCP 78 and BCP 79 [BCP79]. the content of these statements is defined by those BCPs πŸ“œ
  • ISSN: the International Standard Serial Number [ISO.3297.2007], shown as ISSN 2070-1721. the ISSN uniquely identifies the RFC series as a title, no matter the language or country it's published in. it has no significance beyond uniquely identifying a serial publication πŸ”’

6. Security Considerations 🚨

this document tries to clarify the descriptions of the status of an RFC πŸ”₯ misunderstanding the status of a memo could cause interoperability problems, and therefore security and stability problems πŸ’€ this is serious, bestie, don't skip it!

7. RFC Editor Considerations πŸ‘‘

the RFC Editor keeps the RFC series consistent πŸ’– to do that, they maintain an "RFC Style Guide" [RFC7322]. this memo mentions a few explicit structural elements the RFC Editor needs to maintain, and the conventions for the content and use of all current and future elements are written down in the style guide πŸ“–

putting a reference to the stream in the header of RFCs is only one way to show which stream an RFC came from ✨ the RFC Editor is encouraged to add that indication in other places too, for example in indices and interfaces πŸ¦‹

8. References πŸ“š

8.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>.

[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>.

8.2. Informative References πŸ’œ

[ISO.3297.2007]
           Technical Committee ISO/TC 46, Information and
           documentation, Subcommittee SC 9, Identification and
           description., "Information and documentation -
           International standard serial number (ISSN)", ISO Standard
           3297, 09 2007.

[RFC3]     Crocker, S., "Documentation conventions", RFC 3,
           DOI 10.17487/RFC0003, April 1969,
           <http://www.rfc-editor.org/info/rfc3>.

[RFC1311]  Postel, J., "Introduction to the STD Notes", RFC 1311,
           DOI 10.17487/RFC1311, March 1992,
           <http://www.rfc-editor.org/info/rfc1311>.

[RFC4844]  Daigle, L., Ed. and Internet Architecture Board, "The RFC
           Series and RFC Editor", RFC 4844, DOI 10.17487/RFC4844,
           July 2007, <http://www.rfc-editor.org/info/rfc4844>.

[RFC5143]  Malis, A., Brayley, J., Shirron, J., Martini, L., and S.
           Vogelsang, "Synchronous Optical Network/Synchronous
           Digital Hierarchy (SONET/SDH) Circuit Emulation Service
           over MPLS (CEM) Encapsulation", RFC 5143,
           DOI 10.17487/RFC5143, February 2008,
           <http://www.rfc-editor.org/info/rfc5143>.

[RFC5741]  Daigle, L., Ed., Kolkman, O., Ed., and IAB, "RFC Streams,
           Headers, and Boilerplates", RFC 5741,
           DOI 10.17487/RFC5741, December 2009,
           <http://www.rfc-editor.org/info/rfc5741>.

[RFC6410]  Housley, R., Crocker, D., and E. Burger, "Reducing the
           Standards Track to Two Maturity Levels", BCP 9, RFC 6410,
           DOI 10.17487/RFC6410, October 2011,
           <http://www.rfc-editor.org/info/rfc6410>.

[RFC7127]  Kolkman, O., Bradner, S., and S. Turner, "Characterization
           of Proposed Standards", BCP 9, RFC 7127,
           DOI 10.17487/RFC7127, January 2014,
           <http://www.rfc-editor.org/info/rfc7127>.

[RFC7322]  Flanagan, H. and S. Ginoza, "RFC Style Guide", RFC 7322,
           DOI 10.17487/RFC7322, September 2014,
           <http://www.rfc-editor.org/info/rfc7322>.

[ERRATA]   Hagens, A., Ginoza, S., and R. Braden, "RFC Editor
           Proposal for Handling RFC Errata", Work in Progress,
           draft-rfc-editor-errata-process-02, May 2008.

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

[BCP79]    Bradner, S., Ed., "Intellectual Property Rights in IETF
           Technology", BCP 79, RFC 3979, DOI 10.17487/RFC3979, March
           2005.

           Narten, T., "Clarification of the Third Party Disclosure
           Procedure in RFC 3979", BCP 79, RFC 4879,
           DOI 10.17487/RFC4879, April 2007.

           <http://www.rfc-editor.org/info/bcp79>

Appendix A. Initial Formatting Details 🌈

this section has the text the IAB originally used to fill in the web page they use to keep track of the required verbiage 🧁

A.1. RFC Title Page Header πŸŽ€

here's how an RFC title page header looks πŸ‘‡

------------------------------------------------------------------------
<document source>                                          <author name>
Request for Comments: <RFC number>                [<author affiliation>]
[<subseries ID> <subseries number>]    [more author info as appropriate]
[<RFC relation>:<RFC number[s]>]
Category: <category>
                                                            <month year>

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

and here's an example, the header for RFC 6410 πŸ¦‹

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

Internet Engineering Task Force (IETF)                        R. Housley
Request for Comments: 6410                                Vigil Security
BCP: 9                                                        D. Crocker
Updates: 2026                                Brandenburg InternetWorking
Category: Best Current Practice                                E. Burger
ISSN: 2070-1721                                    Georgetown University
                                                            October 2011

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

A.2. Constructing a "Status of This Memo" Section 🧩

the sections below describe the mandated text for specific parts of the "Status of This Memo" portion of an RFC πŸ’… for convenience, the RFC Editor keeps example expansions of every permutation of the paragraphs in this document (as of publication, at http://www.rfc-editor.org/materials/status-memos.txt). if they ever conflict, the sections below are the authority πŸ‘‘

A.2.1. First Paragraph ✨

these are the approved texts for the first paragraph of the "Status of This Memo" portion of an RFC. see Section 3.3 of RFC 7841 πŸŽ€

For 'Standards Track' documents: "This is an Internet Standards Track document."

For 'Best Current Practices' documents: "This memo documents an Internet Best Current Practice."

For other categories "This document is not an Internet Standards Track specification; <it is published for other purposes>."

For Informational, Experimental, Historic, and future categories of RFCs, the RFC Editor will maintain appropriate text for <it is published for other purposes>. the initial values are:

Informational: "it is published for informational purposes."

Historic: "it is published for the historical record."

Experimental: "it is published for examination, experimental implementation, and evaluation."

A.2.2. Second Paragraph ✨

See Section 3.4 of RFC 7841.

okay bestie, the second paragraph can carry some text that's specific to the document's category πŸŽ€ when a document is Experimental or Historic, it opens with one of these:

  • Experimental: "This document defines an Experimental Protocol for the Internet community."
  • Historic: "This document defines a Historic Document for the Internet community."

the text that follows is stream dependent 🌈 these are just starting values, and they can get updated by stream definition document updates and get recorded by the IAB on the web page. so it's less of a fixed script and more of a living list πŸ’…

  • IETF Stream: "This document is a product of the Internet Engineering Task Force (IETF)."
    • if there has been an IETF consensus call per IETF process, add this bit too: "It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG)." if there hasn't been one, it just reads: "It has been approved for publication by the Internet Engineering Steering Group (IESG)."
  • IAB Stream: "This document is a product of the Internet Architecture Board (IAB), and represents information that the IAB has deemed valuable to provide for permanent record."
    • if the document represents IAB consensus, this extra text should be added: "It represents the consensus of the Internet Architecture Board (IAB)."
  • IRTF Stream: "This document is a product of the Internet Research Task Force (IRTF). The IRTF publishes the results of Internet-related research and development activities. These results might not be suitable for deployment."
    • a sentence about the consensus base within the IRTF can also be added 🧚 either "This RFC represents the consensus of the <insert_name> Research Group of the Internet Research Task Force (IRTF)." or "This RFC represents the individual opinion(s) of one or more members of the <insert_name> Research Group of the Internet Research Task Force (IRTF)"
  • Independent Submission Stream: "This is a contribution to the RFC Series, independently of any other RFC stream. The RFC Editor has chosen to publish this document at its discretion and makes no statement about its value for implementation or deployment." πŸ¦‹

for non-IETF stream documents, there's a reference to Section 2 of this RFC, added with this sentence: "Documents approved for publication by the [stream approver -- currently, one of: "IAB", "IRSG", or "RFC Editor"] are not a candidate for any level of Internet Standard; see Section 2 of RFC 7841."

for IETF stream documents, a similar reference shows up. for BCP and Standard Track documents it's: "Further information on (BCPs or Internet Standards) is available in Section 2 of RFC 7841." and for all other categories it's: "Not all documents approved by the IESG are a candidate for any level of Internet Standards; see Section 2 of RFC 7841." 🫢


A.2.3. Third Paragraph

See Section 3.5 of RFC 7841.


IAB Members at Time of Approval

the IAB members at the time this memo was approved were (in alphabetical order) πŸ‘‘

  • Jari Arkko
  • Mary Barnes
  • Marc Blanchet
  • Ralph Droms
  • Ted Hardie
  • Joe Hildebrand
  • Russ Housley
  • Erik Nordmark
  • Robert Sparks
  • Andrew Sullivan
  • Dave Thaler
  • Brian Trammell
  • Suzanne Woolf

Acknowledgements

thanks to Bob Braden, Brian Carpenter, Steve Crocker, Sandy Ginoza, and John Klensin πŸ’– who provided background information and inspiration.

thanks to the members of the RFC Series Oversight Committee (RSOC) for assistance and review: Alexey Melnikov, Nevil Brownlee, Bob Hinden, Sarah Banks, Robert Sparks, Tony Hansen, and Joe Hildebrand. 🌸

various people made suggestions that improved the document. among them are: Lars Eggert, Alfred Hoenes, and Joe Touch. ✨


Authors' Addresses

Joel M. Halpern (editor)

  • Email: jmh@joelhalpern.com

Leslie Daigle (editor)

  • Email: ldaigle@thinkingcat.com

Olaf M. Kolkman (editor)

  • Email: kolkman@isoc.org πŸ¦‹
πŸ“¦ where this page comes from