Internet-Draft | IETF Experiments | September 2024 |
Bonica & Farrel | Expires 19 March 2025 | [Page] |
This document describes IETF protocol experiments and provides guidelines for the publication of Experimental RFCs.¶
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 19 March 2025.¶
Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
According to [RFC2026], the "Experimental" designation for an RFC typically denotes a specification that is part of a research or development effort. An Experimental RFC may be published for information and as an archival record of the work. An Experimental RFC may be the output of an IRTF Research Group, an IETF Working Group, or it may be an individual contribution that is sponsored by an Area Director or published on the Independent Submission Stream.¶
Experimental RFCs in the IETF Stream describe IETF experiments. IETF process experiments are described in [RFC3933], but this document is concerned with protocol experiments.¶
An IETF protocol experiment is a procedure that is executed on the Internet for a bounded period of time. The experiment can, but does not always, include the deployment of a new protocol or protocol extension. For example, when two protocols are proposed to solve a single problem, the IETF can initiate an experiment in which each protocol is deployed. Operational experience obtained during the experiments can help to determine which, if either, of the protocols should be progressed to the standards track. Alternatively, when a new protocol or protocol extension has been developed, but the community is not confident that the approach will be effective or is safe, it may be published as an experiment with the specific purpose of determining how well it works.¶
All protocol experiments must take care to not harm the Internet or interfere with established network operations. They should be conducted in a carefully controlled manner (for example, using a limited domain [RFC8799]). Furthermore, they must use protocol identifiers and code points that do not conflict with deployments of standardized protocols or other experiments. This guidance applies specifically to experiments described in IETF Experimental RFCs.¶
When an IETF protocol experiment concludes, experimental results should be reported to the relevant working group usually via an Internet-Draft, and may be published in an Informational RFCs.¶
This document describes IETF protocol experiments and provides guidelines for the publication of Experimental RFCs. Experimental RFCs in the Independent Submissions Stream or published by the IRTF are out of scope of this document.¶
An Experimental RFC must describe the experimental nature of the specification or deployment that it documents. Authors of Experimental RFCs may find it helpful to present this material in a specific section of their document, such as "Experimental Considerations." Nevertheless, the Abstract and the Introduction of the document must make it clear that the specification is an experiment, and must give some overview of the purpose and scope of the experiment.¶
An Experimental RFC should:¶
Explain why the specification is presented as Experimental and not for publication on the Standards Track.¶
Describe the experiment in detail, so that it can be replicated by non-collaborating parties and recognized when it is seen in deployments.¶
Describe how the experiment is safeguarded so that it does not harm the Internet or interfere with its established operations.¶
It should indicate how messages or protocol data units are identified and associated with the experiment.¶
It should describe how backward compatibility is ensured by non-participating deployments using pre-existing standardized mechanisms to discard or ignore the experiment.¶
It should explain how the experiment is controlled so that it does not "leak out" into the wider Internet.¶
List what configuration knobs should be provided on experimental implementations¶
Include a date at which the experiment will be terminated.¶
Include metrics and observations that will be collected during the experiment.¶
Include criteria by which success of the experiment will be determined.¶
Explain how reports of the success or failure of the experiment will be brought to the IETF, what information should be collected and reported (see Section 3), and possibly suggest a template for reporting experimental results.¶
Suggest planned next steps if the experiment is fully or partially successful.¶
When two protocol mechanisms are proposed to solve a single problem, the IETF can initiate an experiment in which each protocol is deployed. In this case, the same metrics should be collected in each experiment.¶
[RFC8126] describes guidelines for writing IANA Considerations sections in RFCs. It lists a number of assignment policies that apply to codepoint registries maintained by IANA.¶
Experimental RFCs cannot obtain codepoints from registries or parts of registries that are managed under the following assignment policies:¶
An Experimental RFC may request and be granted codepoints from registries or parts of registries that are managed under the following assignment policies:¶
First Come First Served¶
Expert Review¶
Specification Required¶
RFC Required¶
IETF Review¶
IESG Approval¶
Consideration must be given to the fact that the experiment may be temporary in nature and the protocol or protocol extensions may be abandoned. If there is a scarcity of available codepoints in a registry, even more caution should be applied to any codepoint assignments.¶
Some registries or parts of registries are marked as "For Experimental Use: Not to be assigned." These ranges are specifically intended for use by protocol experiments, and this may be particularly valuable as described in [RFC3692]. But assignments are not made from these codepoint ranges, and Experimental RFCs must not document any codepoints from such ranges. Instead, protocol implementations should allow the codepoints to be configured so that all implementations participating in an experiment can interoperate and so that multiple experiments may co-exist in the same network. Where assignable codepoints are scarce, consideration should be given to using Experimental Use ranges rather than assigning new codepoints.¶
Experiments may additionally use codepoints from Private Use ranges, but these codepoints are also not recorded¶
IANA may be requested to create new registries specified in Experimental RFCs. Experimental RFCs that would otherwise ask for the creation of protocol registries may alternatively simply enumerate the codepoints within the RFC.¶
An Experimental RFC describing a protocol experiment may use BCP 14 requirements level language and keywords [RFC2119] [RFC8174] to help clarify the description of the protocol or protocol extension and the expected behavior of implementations.¶
Experimental Reports should include the following information:¶
Scale of deployment¶
Effort required to deploy¶
Effort required to secure¶
Performance impact of risk mitigation¶
Effectiveness of risk mitigation¶
Cost of risk mitigation¶
Interoperability¶
Did you deploy two inter-operable implementations?¶
Did you experience interoperability problems?¶
Effectiveness and sufficiency of OAM mechanism¶
This document does not make any requests of IANA, but see Section 2.1 for details of the use of codepoints in Experimental RFCs.¶
As this document does not introduce any new protocols or operational procedures, it does not introduce any new security considerations.¶
Experimental RFCs must include security and privacy considerations as with any other RFC. As well as considering the security and privacy implications of the protocol or protocol extensions, Experimental RFCs should examine the implications for security and privacy of running an experiment on the Internet.¶
The authors wish to acknowledge Dhruv Dhody, Amanda Barber, and Murray Kucherawy for helpful discussions of experimental code points.¶
Thanks to Brian Carpenter, Michael Richardson, and Paul Hoffmann for review and comments.¶