<?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-02" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.4 -->
  <front>
    <title>Maintaining Protocols Using Grease and Variability</title>
    <seriesInfo name="Internet-Draft" value="draft-edm-protocol-greasing-02"/>
    <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 techniques such as greasing
or protocol variability as a means to exercise 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 49?>

<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 231?>

<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:
H4sIAAAAAAAAA7Va23LcOJJ9x1dg5ZfuDVXJsr1jt3ZmejSy3K0I39aSp7dj
Yx9QJKoKI5KoJkiVywr/y37LftmekwBIliR3+2Ufuq3iBUjk5eTJTM5mM9W5
rrIn+uCNcU2H/1yz0u9b3/nCV0F/DPz9U2tNsNo0pf6HaZ1ZuMp1uwNVmM6u
fLs70a5ZeqVKXzSmxmpla5bdzJb1bJOWmq24BhabPX6iQr+oXQjON91ug8cv
zq9eaf1Imyp4iOKa0m4s/td0B4f64OL07/jHt/jrw9WrA9X09cK2J6rE7ieq
8E2wTejDie7a3qqbE/1UYSlsd6JPP5yf4sfWt9er1vebE/3LT/oX/IqnwhV1
bXe4XZ4oPdON/dTplW1sazoIx0t94wrfyp9hY9rrim+WLnStW/SdLXVly5Vt
1Y1tekjzSOthI/6I59vfEZdr4yo+8jf7ydSbys4LX/O6aYv1iV533SacHB1N
bh5hOSztunW/EA11fHThTVseRWXfU/QBXqigotDhhbzk9MV5XG7u/NeWOPod
O87XXV0dKGX6bu1bqg/7ab3sqyr6wOu+MEG/x0awCm/5dmUa91lUe6LPKt+X
ywp2kps2quSg4lsbeWn+5Nn8+d9WvEEVYK/GtzVev4GiFT1u+KX1h1dnPxwf
PzuRxWCfTWXglj9fXb0/eqrUbDbTZgGjmaJT6rWHG3a2reG2+MdvYO/o0tov
9WZwfhfg8trVG992poFneFPxiW5t4SodvUoF3CkhbuB7hQ1hziN3fAyKqtxn
2r0aNsyLa3h45Xc1XFyHvuCL2E5x5SxK53Fnw711sTbNys71mfyrC0jV2t96
1+Lp8p996LhO4EJrDZ3DixERdGCswSXzroe69qVb7ihTHwyW2pgOcjVBb+EL
rpGni75tKVd+S0IMqoOygsShwe7Qb2Hr6WNzfbWGxoABfbpuA//l265MIRU0
rKYmWghuhXALgi2O3s535cLC9502m00l4na2WDfut96Ox8yeqCDSsOLNiE98
xujaGuwKRdhPti0cYKzmSWxjmsJSuMJuujBXKnpJ7cqysgrBeNF0rS/7QpDg
/9dn9O3tj29OL95enb89fXt2/hc687Pjp1++fJszqQecCStefjw7O7+85Gr/
9uT4xZcvFO6bPEx9s4fpP/Iw9S0epr/Rw5T6KdmcR/GNHd0C65ouHycek4rS
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
2oL6/h8mRoGJHCwAAA==

-->

</rfc>
