<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.36 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-edm-protocol-greasing-01" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.4 -->
  <front>
    <title>Considerations for Applying Protocol Maintenance Concepts</title>
    <seriesInfo name="Internet-Draft" value="draft-edm-protocol-greasing-01"/>
    <author fullname="Lucas Pardue">
      <organization>Cloudflare</organization>
      <address>
        <email>lucaspardue.24.7@gmail.com</email>
      </address>
    </author>
    <date year="2023" month="July" day="10"/>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 37?>

<t>Long-term interoperability of protocols is an important goal of the network
standards process. Part of realizing long-term protocol deployment success is
the ability to support change. Change can require adjustments such as extension
to the protocol, modifying usage patterns within the current protocol
constraints, or a replacement protocol. This document present considerations for
protocol designers and implementers about applying protocol maintenance concepts</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://intarchboard.github.io/draft-protocol-greasing/draft-edm-protocol-greasing.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-edm-protocol-greasing/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/intarchboard/draft-protocol-greasing"/>.</t>
    </note>
  </front>
  <middle>
    <?line 47?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Long-term interoperability of protocols is an important goal of the network
standards process <xref target="MAINTENANCE"/>. Part of realizing long-term protocol
deployment success <xref target="SUCCESS"/> is the ability to support change. Change
can require adjustments such as extension to the protocol, modifying usage
patterns within the current protocol constraints, or a replacement protocol.</t>
      <t>Greasing is one technique that supports the long term-viability of protocol
extension points. It was originally designed for TLS <xref target="GREASE"/> as a
later addition to help mitigate observed deployment issues. Subsequently, other
protocols such as QUIC <xref target="QUIC"/> and HTTP/3 <xref target="RFC9114"/> embedded
greasing capability into the protocol, along with policies and IANA registries,
in order to avoid ossification-related problems emerging in the first place.
Greasing is suitable for many protocols but not all. <xref section="3.3" sectionFormat="of" target="VIABILITY"/> discusses the applicability and limitations of greasing.
<xref target="grease"/> presents considerations for applying grease that help
to ensure it can most effectively reach its maintenance goals.</t>
      <t>Changing user needs <xref target="END-USERS"/> may require that applications modify
how they use a protocol without needing to change the protocol itself. For
example, a deployment that supported a download-oriented population might wish
to enable support for user uploads. This would change interactions and traffic
flows but still behave completely within the design constraints of the network
protocols. Implementations and deployments might discover ossification affects
this form of change because expectations form around patterns of usage.
<xref target="variability"/> presents considerations about how increasing the variability of
protocols can mitigate some of these concerns.</t>
      <t>Replacing a protocol may be required where the changing needs or environment
push protocol usage outside its original design parameters and extensions cannot
elegantly fill the gap. Replacing a protocol may also be desirable as a form of
baseline, a formal declaration of protocol and extension(s) combination that is
common, that may simplify deployment by reducing failures related to
combinatorial extensions problems. A replacement protocol version may or may not
be compatible with other versions. A protocol may or may not have a mechanism
for version selection or agility. <xref target="versions"/> presents considerations about
designing for and/or implementing version negotiation and migration.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="grease">
      <name>Considerations for Applying Greasing</name>
      <t>Greasing can take many forms, depending on the protocol and the nature of its
extension points.</t>
      <t>Where a protocol uses registered values (i.e. codepoints) or numbers in a well
defined range, a common approach (see <xref target="GREASE"/>, <xref section="18.1" sectionFormat="of" target="QUIC"/>, or
<xref section="7.2.8" sectionFormat="of" target="RFC9114"/>), is to reserve a subset of the range for the
purposes of greasing. Ths approach is detailed more thoroughly in <xref section="3.3" sectionFormat="of" target="VIABILITY"/>. However, protocol designers or implementers may find it
difficult to apply those suggestions in abstract. The likely success or
efficacy of this method can be improved by the following suggestions.</t>
      <t>It is assumed that endpoint should implement robust and broad extension
handling. When acting as a receiver or a parser, the implementation should not
treat codepoints reserved for the purposes of greasing as individually special.
In other words, rather than implementation looking specifically for reserved
values, it is better to have a "catch all" mechanism that can handle receipt of
unknown extensions gracefully or without error.</t>
      <t>In order to exercise receiver capability, it is advisable that senders send
values from the ranges reserved for greasing. However, picking a deterministic
value risks a value becoming ossified itself. One outcome of that is receivers
being written to handle a single expected value rather than the generic handling
described above. One way to help mitigate this is to reserve a sufficiently
large range of values for greasing, and ensure that senders chose values from
that range with diversity and non-determinism. The specific nature of size and
distribution of the grease range needs to accommodate the protocol constraints.
For instance, an 8-bit field can only represent a small range of values and it
may be too costly to dedicate many of them solely for the purpose of greasing.
However, protocols that use 32-bit or 64-bit fields are unlikely to have
restrictions.</t>
      <t>It is beneficial to have a large set of reserved numbers for the purpose of
greasing. However, protocol designers that wish to do so may encounter
difficulties in expressing the large range in their protocol documents and/or in
an IANA registry. One approach to this problem has been to define the set
algorithmically in the protocol definition and request that IANA reserve only a
single entry in the respective table that covers the entire range; see for
example
https://www.iana.org/assignments/http3-parameters/http3-parameters.xhtml#http3-parameters-frame-types.
This range should be protected from registering from any other purpose. Deciding
an appropriate label for this protected range is important. Labelling it simply
"reserved" may be confused with other ranges that are reserved for private or
experimental extensions. An implementer that conflates these two meanings may
cause a new class of interoperability failure. Therefore a label such as
"reserved for greasing" may help to avoid the confusion. If choosing to use an
algorithm to define the set, it is encourage to use unique algorithms. This
again improves the chances that receivers will build robust extension handling
rather that a simple special-case ignore list.</t>
      <t>Protocols that do reserve ranges for greasing introduce a new consideration for
real extensions. It is common to want to reserve a block of code points for
iteration and experimentation. Depending how the algorithm spreads numbers
through the full range, any single block of uninterrupted values may be too
small to be usable. This could lead to unintentional use of a greased value.</t>
      <t>Since it is intended for receivers to ignore values reserved for greasing,
designers and implementers need to remain aware that unintentional use of
greased values by a sender for a real extension may cause a failure.</t>
      <t>Receiver implementations may unintentionally build a reliance on the occurrence of
greasing in the temporal or spatial domain. Senders are advised to
implementation non-determinism of when they use grease in addition to what
values they send.</t>
    </section>
    <section anchor="variability">
      <name>Considerations for Increasing Protocol Variability</name>
      <t>While greasing is one method to deal with falsifying active use of a protocols
extensions points, it cannot address positive use. A protocol may define a
wide-ranging extension capability but if senders do not use it, then
interoperability problems may not arise, leading to ossification until a real
use case emerges.</t>
      <t>Variation of protocol extension points with positive use in mind can help
exercise protocols and ensure long-term maintenance and interoperability. This
can be thought of, to some extent, as protocol fuzzing. It can be a difficult
area to exercise because varying the protocol elements may change the actual
outcome of interactions, leading to real errors. However, some elements can be
safely changed and the following are some examples.</t>
      <t>QUIC packets contain frames. Receivers might build expectations on the
longitudinal aspects of packets or frames - size, ordering, frequency, etc. A
sender can quite often manipulate these parameters and stay compliant to the
requirements of the QUIC protocol. For example, QUIC streams are an ordered
reliable byte stream that is serialized as a sequence of STREAM frames with a
length and offset. Receivers are expected to reassemble frames into an ordered
reliable byte stream such that an application reading from a stream can be
abstracted from matters of the transport later. A sender that purposefully
reorders STREAM frames will help exercise the reassembly features of the
receiver. It is not expected that this would cause a functional failure in the
application layer. However, it may introduce delays or stream head-of-line
blocking that affect the performance aspects of a transmission, which may not be
acceptable for a given use case.</t>
    </section>
    <section anchor="versions">
      <name>Considerations for Protocol Versions</name>
      <t>There are intrinsic and well-documented issues related to testing version
negotiation of protocols; see <xref target="EXTENSIBILITY"/> and Sections <xref target="VIABILITY" section="2.1" sectionFormat="bare"/> and <xref target="VIABILITY" section="3.2" sectionFormat="bare"/> of <xref target="VIABILITY"/>. This section will be expanded with advice for protocol
designers and implementers about how to approach these problems.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The considerations in <xref target="MAINTENANCE"/>, <xref target="GREASE"/>, <xref target="END-USERS"/>, and
<xref target="VIABILITY"/> all apply to the topics discussed in this document.</t>
      <t>The use of protocol features, extensions, and versions can already allow
fingerprinting. Any techniques that change parameters  in any way, including but
not limited to those discussed in this document, can affect fingerprinting. A
deeper analysis of this topic has been deemed out of scope.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <displayreference target="RFC9114" to="HTTP/3"/>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC9114">
          <front>
            <title>HTTP/3</title>
            <author fullname="M. Bishop" initials="M." role="editor" surname="Bishop"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The QUIC transport protocol has several features that are desirable in a transport for HTTP, such as stream multiplexing, per-stream flow control, and low-latency connection establishment. This document describes a mapping of HTTP semantics over QUIC. This document also identifies HTTP/2 features that are subsumed by QUIC and describes how HTTP/2 extensions can be ported to HTTP/3.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9114"/>
          <seriesInfo name="DOI" value="10.17487/RFC9114"/>
        </reference>
        <reference anchor="MAINTENANCE">
          <front>
            <title>Maintaining Robust Protocols</title>
            <author fullname="M. Thomson" initials="M." surname="Thomson"/>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <date month="June" year="2023"/>
            <abstract>
              <t>The main goal of the networking standards process is to enable the long-term interoperability of protocols. This document describes active protocol maintenance, a means to accomplish that goal. By evolving specifications and implementations, it is possible to reduce ambiguity over time and create a healthy ecosystem.</t>
              <t>The robustness principle, often phrased as "be conservative in what you send, and liberal in what you accept", has long guided the design and implementation of Internet protocols. However, it has been interpreted in a variety of ways. While some interpretations help ensure the health of the Internet, others can negatively affect interoperability over time. When a protocol is actively maintained, protocol designers and implementers can avoid these pitfalls.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9413"/>
          <seriesInfo name="DOI" value="10.17487/RFC9413"/>
        </reference>
        <reference anchor="SUCCESS">
          <front>
            <title>What Makes for a Successful Protocol?</title>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <date month="July" year="2008"/>
            <abstract>
              <t>The Internet community has specified a large number of protocols to date, and these protocols have achieved varying degrees of success. Based on case studies, this document attempts to ascertain factors that contribute to or hinder a protocol's success. It is hoped that these observations can serve as guidance for future protocol work. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5218"/>
          <seriesInfo name="DOI" value="10.17487/RFC5218"/>
        </reference>
        <reference anchor="GREASE">
          <front>
            <title>Applying Generate Random Extensions And Sustain Extensibility (GREASE) to TLS Extensibility</title>
            <author fullname="D. Benjamin" initials="D." surname="Benjamin"/>
            <date month="January" year="2020"/>
            <abstract>
              <t>This document describes GREASE (Generate Random Extensions And Sustain Extensibility), a mechanism to prevent extensibility failures in the TLS ecosystem. It reserves a set of TLS protocol values that may be advertised to ensure peers correctly handle unknown values.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8701"/>
          <seriesInfo name="DOI" value="10.17487/RFC8701"/>
        </reference>
        <reference anchor="QUIC">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="VIABILITY">
          <front>
            <title>Long-Term Viability of Protocol Extension Mechanisms</title>
            <author fullname="M. Thomson" initials="M." surname="Thomson"/>
            <author fullname="T. Pauly" initials="T." surname="Pauly"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>The ability to change protocols depends on exercising the extension and version-negotiation mechanisms that support change. This document explores how regular use of new protocol features can ensure that it remains possible to deploy changes to a protocol. Examples are given where lack of use caused changes to be more difficult or costly.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9170"/>
          <seriesInfo name="DOI" value="10.17487/RFC9170"/>
        </reference>
        <reference anchor="END-USERS">
          <front>
            <title>The Internet is for End Users</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="August" year="2020"/>
            <abstract>
              <t>This document explains why the IAB believes that, when there is a conflict between the interests of end users of the Internet and other parties, IETF decisions should favor end users. It also explores how the IETF can more effectively achieve this.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8890"/>
          <seriesInfo name="DOI" value="10.17487/RFC8890"/>
        </reference>
        <reference anchor="EXTENSIBILITY">
          <front>
            <title>Design Considerations for Protocol Extensions</title>
            <author fullname="B. Carpenter" initials="B." surname="Carpenter"/>
            <author fullname="B. Aboba" initials="B." role="editor" surname="Aboba"/>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <date month="September" year="2012"/>
            <abstract>
              <t>This document discusses architectural issues related to the extensibility of Internet protocols, with a focus on design considerations. It is intended to assist designers of both base protocols and extensions. Case studies are included. A companion document, RFC 4775 (BCP 125), discusses procedures relating to the extensibility of IETF protocols. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6709"/>
          <seriesInfo name="DOI" value="10.17487/RFC6709"/>
        </reference>
      </references>
    </references>
    <?line 229?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This work is a summary of the topics discussed during EDM meetings. The
contributors at those meetings are thanked.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA7Va23LcOJJ9x1dg5ZfuDVXZsr1jt3ZmejS23K0I39aSp7dj
Yx9QJKoKI5KoJkiVywr/y37LftmekwBIlkru9su+2CpegEReTp7M5Gw2U53r
Knuqj174JrjStqZz+EsvfavPNptq55qVft/6zhe+0m+MazrbmKawGi8UdtOF
I1WYzq58uzvVrll6pUpfNKbGomVrlt3MlvVsk1aYrVprAtacPTpRoV/ULgTs
1+02ePzi/OqV1g+0qYKHRK4p7cbin6Y7OtZHF2d/x38Q6+jiw9WrI9X09cK2
p6rE7qeqgNC2CX041V3bW3Vzqp8oLIXtTvXZh/Mz/Nj69nrV+n5zqn/5Sf+C
XzzcT7yiru0Ot8tTpWe6sZ86vbJNUgYv9Y0rfCt/ho1pryu+WbrQtW7Rd7bU
lS1XtlU3tukhzQOth434I55vf0dcro2r+Mjf7CdTbyo7L3zN66Yt1qd63XWb
cPrw4eTmQyyHpV237heioY6PLrxpy4dR2QeKPsILFVQUOryQl5y+OI/LzZ3/
2hIPf8eO83VXV0dKmb5b+5bqw35aL/uqij7wui9M0O+xEazCW75dmcZ9FtWe
6heV78tlBTvJTRtVclTxrY28NH/8dP7sbyveoAqwV+PbGq/fQNGKHjf80vrD
qxc/nJw8PZXFYJ9NZeCWP19dvX/4RKnZbKbNAkYzRafUaw837Gxbazp16zew
98JVrttpv9T5pEG7oE2jXb3xbWcaeIY3FZ/o1hau0tGrVMCdEuIGvlfYEOY8
csfHoKjKfabdq2HDvLiGh1d+V8PFdegLvojtFFfOonQedzbcWxdr06zsXL+Q
/3UBqVr7W+9aPF3+sw8d1wlcaK2hc3gxIoIOjDW4ZN71WNe+dEsJ7T4YLLUx
HeRC2G/hC66Rp4u+bSlXfktCDKqDsoLEocHu0G9h6+ljc321hsaAAX26bgP/
Lw7wRU20ENwK4UZFl9R0JWvKhYXvO20yEg2v1BMkKhISqWjh2pVlZRUC6aLp
Wl/2hUTx/6+99e3tj2/OLt5enb89e/vi/C90xKcnT758+TZHUPc4Ala8/Pji
xfnlJVf7t8cnz798oXDf5B3qm71D/5F3qG/xDv2N3qHUTwk5eBTfWN3ZYt24
33r8tTZdPk48JhWlqajZjbvHVmo8xMZz57m+6PQWp/OtW7nGVNUuO1cpKe3q
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
I7zYO/R02S5pMD+jUxHRXFtQ3/8DFziAt98rAAA=

-->

</rfc>
