Internet-Draft | downref | October 2021 |
Kucherawy | Expires 20 April 2022 | [Page] |
IETF procedures generally require that a standards track RFC may not have a normative reference to another standards track document at a lower maturity level or to a non standards track specification (other than specifications from other standards bodies). For example, a standards track document may not have a normative reference to an informational RFC. Exceptions to this rule are sometimes needed as the IETF uses informational RFCs to describe non-IETF standards or IETF-specific modes of use of such standards. This document defines the procedure used in these circumstances.¶
This document merges and updates, and thus obsoletes, RFC 3967, RFC 4897, and RFC 8067.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 20 April 2022.¶
Copyright (c) 2021 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.¶
The Internet Standards Process [RFC2026] (BCP 9) Section 4.2.4 specifies the following:¶
Standards track specifications normally must not depend on other standards track specifications which are at a lower maturity level or on non standards track specifications other than referenced specifications from other standards bodies.¶
One intent is to avoid creating a perception that a standard is more mature than it actually is.¶
It should also be noted that Best Current Practice documents (BCPs; see [RFC2026]) have generally been considered similar to Standards Track documents in terms of what they can reference. For example, a normative reference from a BCP to an Experimental RFC has been considered an improper reference.¶
This document describes a process for allowing normative references to documents at lower maturity levels ("downrefs"), after due notice and consideration as the document progresses toward publication. The original process was defined in [RFC3967] and later amended by [RFC4897] and [RFC8067]. This document consolidates those, and presents further guidance regarding normative references to non-IETF documents.¶
Within an RFC, references to other documents fall into two general categories: "normative" and "informative". Broadly speaking, a normative reference specifies a document that must be read to fully understand or implement the subject matter in the RFC, or whose contents are effectively part of the RFC, as its omission would leave the RFC incompletely specified. An informative reference is not normative; rather, it provides only additional background information.¶
An exact and precise definition of what is (and is not) a normative reference has proven challenging in practice, as the details and implications can be subtle. Moreover, whether a reference needs to be normative can depend on the context in which a particular RFC is being published in the first place. For example, in the context of an IETF Standard, it is important that all dependent pieces be clearly specified and available in an archival form so that there is no disagreement over what constitutes a standard. This is not always the case for other documents.¶
The rest of this section provides guidance on what might (and might not) be considered normative in the context of the IETF standards process.¶
In the IETF, it is a basic assumption that implementers must have a clear understanding of what they need to implement in order to be fully compliant with a standard and to be able to interoperate with other implementations of that standard. For documents that are referenced, any document that includes key information an implementer needs would be normative. For example, if one needs to understand a packet format defined in another document in order to fully implement a specification, the reference to that format would be normative. Likewise, if a reference to a required algorithm is made, the reference would be normative.¶
Some specific examples:¶
There are a number of circumstances in which an IETF document may need to make a normative reference to a document at a lower maturity level, but such a reference conflicts with Section 4.2.4 of [RFC2026]. For example:¶
A reference involves two documents, the one in which the reference is embedded and the document referenced. Where needed for clarity, these documents are referred to as the "source document" and "target document", respectively.¶
The term "Standards-Track document", as used in this specification, is assumed to include only Standards-Track documents at any maturity level, plus BCPs, but not documents with any other status.¶
The following sections describe the procedures to be used by authors/editors and the IESG when handling downrefs.¶
When a Standards-Track or BCP document requires a normative reference to a document of lower maturity, the authors/editors should apply the following very simple procedure:¶
The Internet Engineering Steering Group (IESG) may, at its discretion, specify the exact text to be used, establish procedures regarding the text to use, or give guidance on this text. When establishing procedures, the IESG should seek appropriate community review.¶
These annotations are part of the source document. If members of the community consider either the downref or the annotation text to be inappropriate, those issues can be raised at any time during the document life cycle, just as with any other text in the document. There is no separate review of these references. For example, when the downref is to a document of a lower maturity level that is understood to be stable, the annotation can be omitted. Such decisions should be noted in the document shepherd writeup [RFC4858] so the IESG is aware at the time of its review why the annotation is absent.¶
At the option of the author/editor, similar notes may be attached to non-normative references.¶
With appropriate community review, the IESG may establish procedures for when normative downref should delay a document and when downrefs should be noted. Absent specific guidance, authors and reviewers should use their best judgment. It is assumed that, in a significant majority of cases, noting a downref is preferable to delaying publication.¶
When a document is presented to the IESG for publication that contains a downref not called out by the author/editor(s) as described in the previous section, it is strongly recommended that the normal IETF Last Call procedure will be issued, with the need for the downref explicitly documented in the Last Call itself. Any community comments on the appropriateness of downrefs will be considered by the IESG as part of its deliberations.¶
If, by oversight, the Last Call does not identify the downref, the IESG may choose to repeat the Last Call with the downref properly identified. If it elects not to do so, then any future downref to the same target document is subject again to the procedures described in this document. In making this decision, the IESG should take into account the general discussion in Section 2.¶
Once a specific downref to a particular document has been accepted by the community (e.g., has been mentioned in one or more Last Calls), an Area Director may waive subsequent notices in the Last Call of downrefs to it. This should only occur when the same document (and version) are being referenced and when the Area Director believes that the document's use is an accepted part of the community's understanding of the relevant technical area. For example, the use of MD5 [RFC1321] and HMAC [RFC2104] is well known among cryptographers. Such documents are added to the "Downref Registry".¶
In the case of a downref approved in this manner, the annotations described above should be added to the reference unless the IESG, after consideration of Last Call input, concludes it is inappropriate.¶
This procedure is not to be used if the proper step is to move the document to which the reference is being made into the appropriate category. It is not intended as an easy way out of normal process. Rather, the procedure is intended for dealing with specific cases where putting particular documents into the required category is problematic and unlikely ever to happen.¶
The "downward reference by annotation" model specified here is applicable only to published Standards-Track RFCs at lower maturity levels.¶
Obviously, such downward references are part of the relevant source document at IETF Last Call and subject to comments from the community.¶
Advancing documents, when appropriate, is still strongly preferred to the use of either this procedure or the one specified in Section 4.2. This specification does not impose a specific test or requirement to determine appropriateness. This is partially because it would be impossible to do so for the general case, but more so because the intention is to permit the IESG and the community to balance the importance of getting a source document published against the time and difficulty associated with upgrading a target document. That requirement is intended to be less stringent than the one of Section 4.2.¶
A reference to a non-IETF document provides a few challenges relative to the RFC series:¶
The IESG may, at its discretion, establish policies regarding external documents referenced normatively by Standards-Track RFCs in light of these challenges. Such policies are to be developed with solicitation of community input.¶
At a minimum, authors/editors of source documents need to secure freely available copies of the target documents for use by all anticipated reviewers during the source document's life cycle, which includes working group participants, any member of the community that chooses to participate in Last Call discussions, area review teams, IANA expert reviewers, and members of the IESG. The mechanism for acquiring access to those documents is to be be specified in the shepherd writeup.¶
The IETF has previously established a registry of downrefs to RFCs that have been previously waived by the IESG in the manner described in Section 4.2. The registry includes the name of the referenced RFC and the Internet-Draft whose publication resulted it its addition to the registry. The IESG is responsible for the maintenance of this registry, adding new entries to it as appropriate.¶
Going forward, new registry entries should also record the reason the registry addition was made, and the name of the Area Director making the new entry.¶
Note that there is currently no registry of downrefs to non-IETF documents.¶
This document is not known to create any new vulnerabilities for the Internet. On the other hand, inappropriate or excessive use of these processes might be considered a downgrade attack on the quality of IETF standards or, worse, on the rigorous review of security aspects of standards.¶
The following are the changes in this document relative to the current state of BCP 97:¶
This editor offers a salute to the authors of and contributors to RFC 3967, RFC 4897, and RFC 8067: Randy Bush, Thomas Narten, John Klensin, Sam Hartman, and Barry Leiba.¶
This revision benefited from contributions by Scott Bradner, Brian Campbell, Russ Housley, John Klensin, Michael Richardson, and Rich Salz.¶