<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY RFC6973 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6973.xml">
  <!ENTITY RFC8126 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8126.xml">
  <!ENTITY RFC2026 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2026.xml">
  <!ENTITY RFC3692 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3692.xml">
  <!ENTITY RFC3933 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3933.xml">
  <!ENTITY RFC8799 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8799.xml">
  <!ENTITY RFC9837 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.9837.xml">
  <!ENTITY RFC9840 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.9840.xml">
  <!ENTITY RFC9871 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.9871.xml">
  <!ENTITY RFC9891 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.9891.xml">

  <!ENTITY I-D.opsarea-rfc5706bis SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.opsarea-rfc5706bis">
  <!ENTITY I-D.fz-spring-srv6-alt-mark SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.fz-spring-srv6-alt-mark">

]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<?rfc tocompact="yes"?>
<?rfc tocindent="yes"?>
<?rfc compact="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bonica-gendispatch-exp-07" category="bcp" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <front>
    <title abbrev="IETF Experiments">IETF Experiments</title>
    <seriesInfo name="Internet-Draft" value="draft-bonica-gendispatch-exp-07"/>
    <author initials="R." surname="Bonica" fullname="Ron Bonica">
      <organization>Hewlett Packard Enterprise</organization>
      <address>
        <postal>
          <city>Herndon</city>
          <region>Virginia</region>
          <country>USA</country>
        </postal>
        <email>rbonica@juniper.net</email>
      </address>
    </author>
    <author initials="A." surname="Farrel" fullname="Adrian Farrel">
      <organization>Old Dog Consulting</organization>
      <address>
        <postal>
          <country>UK</country>
        </postal>
        <email>adrian@olddog.co.uk</email>
      </address>
    </author>
    <date year="2026"/>
    <area>General</area>
    <workgroup>GenDispatch Working Group</workgroup>
    <keyword>experiment</keyword>
    <abstract>
       <t>This document describes IETF protocol experiments and provides guidelines for the publication of Experimental RFCs.</t>
    </abstract>
  </front>
  <middle>

    <section anchor="introduction">
      <name>Introduction</name>

      <t>According to <xref target="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.</t>

      <t>Experimental RFCs in the IETF Stream describe IETF experiments. IETF process experiments are described in <xref target="RFC3933"/>,
         but this document is concerned with protocol experiments.</t>

      <t>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.</t>

      <t>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 <xref target="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.</t>

      <t>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 RFC.</t>

      <t>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.</t>
    </section>

    <section anchor="requirements-on-experimental-rfcs">
      <name>Requirements on Experimental RFCs</name>

      <t>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.</t>

      <t>An Experimental RFC should:</t>
      <ul spacing="normal">
        <li>
          <t>Explain why the specification is presented as Experimental and not for publication on the Standards Track.</t>
        </li>
        <li>
          <t>Describe the experiment in detail, so that it can be replicated by non-collaborating parties and recognized when it is seen in
             deployments.</t>
        </li>
        <li>
          <t>Describe how the experiment is safeguarded so that it does not harm the Internet or interfere with its established operations.
          </t>
          <ul spacing="normal">
            <li>
              <t>It should indicate how messages or protocol data units are identified and associated with the experiment.</t>
            </li>
            <li>
              <t>It should describe how backward compatibility is ensured by non-participating deployments using pre-existing standardized
                 mechanisms to discard or ignore the experiment.</t>
            </li>
            <li>
              <t>It should explain how the experiment is controlled so that it does not "leak out" into the wider Internet. Thus, while the
                 experiment may be run between consenting implementations over the Internet (for example, application layer experiments), this
                 does not require the nodes within the Internet infrastructure being exposed to the experiment. The required control, therefore,
                 is that the experiment needs to ensure that the protocol elements of the experiment are not accidentally received and processed by
                 parts of the Internet that could be disrupted by that activity.</t>
              <t>In later stages of experimentation it may be desirable to determine the value of the experiment in very large-scale deployments. This
                 might only be possible by deployment within significant parts of the Internet. In these cases, it is extremely important that the
                 Experimental RFC describe how controlled and gradual roll-out is achieved, how disruption caused by the experiment can be prevented,
                 how disruption resulting from the experiment can be detected and traced back to the experiment, and how the experiment can be
                 rapidly and safely turned off if problems arise.</t>
              <t>While an objective of an experiment might be, "To determine whether this new approach causes disruption to the Internet," it must
                 be clearly understood that it is not appropriate to unduly risk such disruption. Thus, any such experiment must be carefully planned
                 to mitigate disruption if it does arise.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>List what configuration knobs should be provided on experimental implementations</t>
        </li>
        <li>
          <t>Include a date at which the experiment will be terminated.</t>
          <t>If it is intended that the experiment should be long-lasting or open-ended, this needs to be explicitly stated, and the reasoning
             given. This is important because the Experimental RFC should not be used to produce a de facto protocol specification by-passing
             full IETF review.</t>
        </li>
        <li>
          <t>Include metrics and observations that will be collected during the experiment, and contrast the behavior with pre-existing IETF protocol solutions.</t>
        </li>
        <li>
          <t>Include criteria by which success of the experiment will be determined.</t>
        </li>
        <li>
          <t>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 <xref target="reports"/>), and possibly suggest a template for reporting experimental results.</t>
        </li>
        <li>
          <t>Suggest planned next steps if the experiment is fully or partially successful.</t>
        </li>
      </ul>
      <t>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.</t>

      <section anchor="iana-assign">
        <name>Codepoints in Experimental RFCs</name>

        <t><xref target="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. The rules exist for a number of reasons including the preservation
           of scarce resources in small codepoint spaces, the avoidance of standardisation-by-default without proper review and cooperation,
           and the "baking in" of codepoints into deployed equipment.</t>

        <t>Experimental RFCs cannot obtain codepoints from registries or parts of registries that are managed under the following assignment
           policies:</t>
        <ul spacing="normal">
          <li>
            <t>Standards Action</t>
          </li>
          <li>
            <t>Hierarchical Allocation</t>
          </li>
        </ul>

        <t>An Experimental RFC may request and be granted codepoints from registries or parts of registries that are managed under the following
           assignment policies:</t>
        <ul spacing="normal">
          <li>
            <t>First Come First Served</t>
          </li>
          <li>
            <t>Expert Review</t>
          </li>
          <li>
            <t>Specification Required</t>
          </li>
          <li>
            <t>RFC Required</t>
          </li>
          <li>
            <t>IETF Review</t>
          </li>
          <li>
            <t>IESG Approval</t>
          </li>
        </ul>

        <t>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.</t>

        <t>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 <xref target="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.</t>

        <t>Experiments may additionally use codepoints from Private Use ranges, but these codepoints are also not recorded</t>

        <t>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.</t>
      </section>

      <section anchor="requirements-level-language-and-keywords">
        <name>Requirements Level Language and Keywords</name>

        <t>An Experimental RFC describing a protocol experiment may use requirements level language and keywords <xref target="BCP14"/>
           to help clarify the description of the protocol or protocol extension and the expected behavior of implementations.</t>
      </section>

    </section>

    <section anchor="reports">
      <name>Experimental Reports</name>

      <t>Experimental Reports may be viewed as reports from individual implementers or experimenters, and a more general collection of all
         experimental results.</t>

      <t>Individual Experimental Reports should include the following information:</t>
      <ul spacing="normal">
        <li>
          <t>Scale of deployment</t>
        </li>
        <li>
          <t>Effort required to deploy
          </t>
          <ul spacing="normal">
            <li>
              <t>Was deployment incremental or network-wide?</t>
            </li>
            <li>
              <t>Was there a need to synchronize configurations at each node or could nodes be configured independently</t>
            </li>
            <li>
              <t>Did the deployment require hardware upgrade?</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Effort required to secure</t>
        </li>
        <li>
          <t>Performance impact of risk mitigation</t>
        </li>
        <li>
          <t>Effectiveness of risk mitigation</t>
        </li>
        <li>
          <t>Cost of risk mitigation</t>
        </li>
        <li>
          <t>Interoperability</t>
        </li>
        <li>
          <t>Did you deploy two inter-operable implementations?</t>
        </li>
        <li>
          <t>Did you experience interoperability problems?</t>
        </li>
        <li>
          <t>Effectiveness and sufficiency of OAM mechanism</t>
        </li>
      </ul>

      <t>Aggregated reports may be written up as the experimental period continues, and should be produced when the IETF protocol experiment
         concludes. Such reporting may be tracked through a wiki or via github (for example, on the working group&apos;s IETF-hosted wiki or git repository),
         or shared through an Internet-Draft. The final report might or might not end up published as an Informational RFC depending on its lasting
         value (especially in the case of the 'failure' of the experiment), but archiving the results in the Internet-Draft or through a web page may
         be sufficient if work progresses to promote a successful experiment to a Standards Track specification.</t>

    </section>

    <section anchor="stds">
      <name>Progression to Standards Track</name>

      <t>If, after successful completion of an experiment, there is IETF consensus to progress the work for publication on the Standards
         Track, the completed RFC should include:</t>
      <ul spacing="normal">
        <li>
          <t>Notes indicating any changes from the experimental version of the protocol.</t>
        </li>
        <li>
          <t>Advice for network operators on how to migrate from Experimental deployments to Standards Track deployments.</t>
        </li>
      </ul>
    </section>

    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document does not make any requests of IANA, but see <xref target="iana-assign"/> for details of the use of codepoints
         in Experimental RFCs.</t>
    </section>

    <section anchor="ops-considerations">
      <name>Operational Considerations</name>

      <t>As this document does not introduce any new protocols or operational procedures, nor define any architectures of protocol
         requirements, there are no new operations or manageability requirements introduced by this document.</t>

      <t>Authors of Experimental RFCs that describe protocols or protocol extensions need to pay particular attention to:</t>
      <ul spacing="normal">
        <li>
          <t>How the protocol will be operated and managed.</t>
        </li>
        <li>
          <t>How the experiment will be configured and managed so that it can be distinguished from normal network operations
             and from other experiments.</t>
        </li>
        <li>
          <t>How the experiment will interact with operations and management of other deployed protocols.</t>
        </li>
      </ul>

      <t>This material should normally be included in a dedicated "Operational Considerations" section of the Experimental RFC.
         Advice and guidance about the content of this section can be found in <xref target="I-D.opsarea-rfc5706bis"/>.</t>
    </section>

    <section anchor="security-considerations">
      <name>Security Considerations</name>

      <t>As this document does not introduce any new protocols or operational procedures, it does not introduce any new security
         considerations.</t>

      <t>Per <xref target="BCP72" />, Experimental RFCs must include security considerations as with any other RFC. Additionally,
         <xref target="RFC6973" /> offers guidance on writing privacy considerations, and while it is not mandatory to include
         such material in Experimental RFCs, it is best practice to do so.</t>

      <t>Note that additional boilerplate material for RFCs containing YANG modules also exists and applies to Experimental RFCs.
         See <xref target="YANG-SEC" /> for up-to-date details.</t>

      <t>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/over the Internet.</t>

      <t>There may also be security issues with running an experimental protocol a long time after an experiment has ended. This
         might cause clashes with re-use of experimental code points or have other unpredicted results. A good approach is to
         ensure that implementations require active configuration to enable the use of experimental protocols (i.e., the
         experimental protocol features require the setting of a configuration option that is off by default).</t>

    </section>

    <section anchor="acknowledgements">
      <name>Acknowledgements</name>

      <t>The authors wish to acknowledge Dhruv Dhody, Amanda Barber, and Murray Kucherawy for helpful discussions of experimental code points.</t>

      <t>Thanks to Brian Carpenter, Michael Richardson, Paul Hoffmann, Alan DeKoK, and Colin Perkins for review and comments.</t>
    </section>

  </middle>

  <back>

    <references anchor="sec-combined-references">
      <name>References</name>

      <references anchor="sec-normative-references">
        <name>Normative References</name>

        &RFC6973;
        &RFC8126;

        <referencegroup anchor="BCP14" target="https://www.rfc-editor.org/info/bcp14">
          <xi:include
             href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
          <xi:include
             href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        </referencegroup>

        <referencegroup anchor="BCP72" target="https://www.rfc-editor.org/info/bcp72">
          <xi:include
             href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3552.xml"/>
          <xi:include
             href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9416.xml"/>
        </referencegroup>

        &I-D.opsarea-rfc5706bis;

      </references>

      <references anchor="sec-informative-references">
        <name>Informative References</name>

        &RFC2026;
        &RFC3692;
        &RFC3933;
        &RFC8799;

        &RFC9837;
        &RFC9840;
        &RFC9871;
        &RFC9891;

        &I-D.fz-spring-srv6-alt-mark;

        <reference anchor="YANG-SEC" target="https://wiki.ietf.org/en/group/ops/yang-security-guidelines">
          <front>
            <title>YANG module security considerations</title>
            <author>
              <organization>IETF Operations and Management Area</organization>
            </author>
            <date month="May" year="2013"/>
          </front>
          <seriesInfo name="Wiki" value="IETF Operations and Management Area Wiki"/>
        </reference>

      </references>

    </references>

    <section anchor="examples" title="Some Recent Examples">

      <t>This appendix lists a few recent examples of Experimental documents and provides a little
         commentary on how those documents address the issues raised in this document. This commentary
         is not intended as any criticism of the authors or of the publication process, but it is
         hoped that these examples will help explain the guidance in the body of this document.</t>


      <section anchor="A1" title="RFC 9837">
         <t><xref target="RFC9837" /> is an Experimental RFC that defines an IPv6 VPN Service Destination Option. It
            was published on the IETF Stream.</t>

         <t>The RFC is flagged as Experimental and includes the appropriate boilerplate. It introduces the main purposes
            of the experiment in the Abstract and the Introduction.</t>

         <t>The document describes the use of an Experimental code point and indicates how other protocol fields must be
            set to be consistent with the experiment.</t>

         <t>A separate section on "Deployment Considerations" (section 7) discusses how operators must configure their network to
            enable the experiment.</t>

         <t>An additional section on "Experimental Results" (section 8) describes the intended duration of the experiment and
            lists the topics that should be studied in the experiment and then be reported in a publication.</t>
      </section>

      <section anchor="A2" title="RFC 9840">
         <t><xref target="RFC9840" /> is an Experimental RFC describing "Receiver-Driven Low Extra Delay Background Transport
            for TCP (rLEDBAT)". It was published on the IRTF Stream.</t>

         <t>The document is flagged as Experimental and includes the appropriate boilerplate, but there is no discussion of this
            in the Abstract. The Introduction explains why the IRTF decided to publish this as experimental.</t>

         <t>A brief note of additional required experimentation is made in Section 4.1.2, and a whole section on "Experiment Considerations"
            (section 6) sets out the topics that should be considered in the experiment.</t>

         <t>There is no end date or follow-up given for the experiment, but a subsection indicates the status of the experiment at
            the time the RFC was written.</t>
      </section>

      <section anchor="A3" title="RFC 9871">
         <t><xref target="RFC9871" /> is an Experimental RFC that defines "BGP Color-Aware Routing (CAR)". It was published on
            the IETF Stream.</t>

         <t>The document is flagged as Experimental and includes the appropriate boilerplate, but there is no discussion of this
            in the Abstract or Introduction. Indeed, there is no further mention of experimentation in the whole document and so
            no guidance for how the experiment should be conducted, what information should be collected, or when the experiment
            ends.</t>

         <t>Three non-experimental codepoints have been assigned for use by the protocol described in the document, but these come from
            "first-come, first-served" ranges in their registries. The document also defines two new registries and gives detailed advice
            to Designated Experts tasked to monitor the new registries.</t>
      </section>

      <section anchor="A4" title="RFC 9891">
         <t><xref target="RFC9891" /> is an Experimental RFC describing "Automated Certificate Management Environment (ACME) Delay-Tolerant
            Networking (DTN) Node ID Validation Extension". It was published on the IETF Stream.</t>

         <t>The document is flagged as Experimental and includes the appropriate boilerplate. The Abstract and early parts of the
            Introduction make no mention of experimentation, but a subsection (section 1.5) on the "Experiment Scope". That section
            explains why the document is experimental, what issues are to be investigated in the experiment, how to judge the
            success of the experiment, and how the results of the experiment might be used. No end date for the experiment is
            indicated.</t>
      </section>

      <section anchor="A5" title="draft-fz-spring-srv6-alt-mark" >
         <t><xref target="I-D.fz-spring-srv6-alt-mark" /> is an Internet-Draft currently in the RFC Editor&apos;s Queue pending
            publication. It is on the Independent Submissions Stream.</t>

         <t>The document is flagged as Experimental and will include the appropriate boilerplate when it is published as an RFC.
            The Abstract clearly indicates that the document describes an experiment and states the purpose of the experiment.
            Similar text is present in the Introduction.</t>

         <t>There is a short description of how the experiment should be deployed and controlled (section 2.1), and the experiment
            uses a code point from an experimental range in a registry with clear text about how that code point should be
            selected by implementations/deployments (section 3).</t>

         <t>A dedicated section (section 5) presents the "Experimentation Overview" with a subsection on the "Objective of the Experiment"
            following the guidance in this document which is shown as an Informative reference.</t>
      </section>

    </section>

  </back>
</rfc>
