<?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.7.11 (Ruby 3.2.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-edm-protocol-greasing-03" category="info" consensus="true" submissionType="IAB" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.21.0 -->
  <front>
    <title abbrev="Protocol Greasing">Maintaining Protocols Using Grease and Variability</title>
    <seriesInfo name="Internet-Draft" value="draft-edm-protocol-greasing-03"/>
    <author fullname="Lucas Pardue">
      <organization>Cloudflare</organization>
      <address>
        <email>lucas@lucaspardue.com</email>
      </address>
    </author>
    <date year="2024" month="May" day="07"/>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 38?>

<t>Long-term interoperability of protocols is an important goal of the network
standards process. Deployment success can depend on supporting change, which
can include modifying how the protocol is used, extending the protocol, or
replacing the protocol. This document presents concepts, considerations, and
techniques related to protocol maintenance, such as greasing or variability. The
intended audience is protocol designers and implementers.</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 48?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Long-term interoperability of protocols is an important goal of the network
standards process <xref target="MAINTENANCE"/>. Protocol deployment success
<xref target="SUCCESS"/> can depend on supporting change, which
can include modifying how the protocol is used, extending the protocol, or
replacing the protocol.</t>
      <t>Greasing, a technique initially designed for TLS <xref target="GREASE"/> and later
adopted by other protocols such as QUIC <xref target="QUIC"/>, can help support the
long-term viability of protocol extension points. 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-considerations"/> provides
additional protocol maintenance considerations.</t>
      <t>Applications are built with the intent of serving user needs <xref target="END-USERS"/>, which might only
require support for a subset of protocol features. Adapting to changing user
needs is a maintenance activity. For example, an HTTP deployment focused on
downloads might want to add support for uploads. Changing use of the application
and transport protocol features can affect the deployment's network traffic
profile. If expectations have been formed around historical patterns of use
i.e., ossification, introducing change might lead to deployment problems. <xref target="variability"/> presents
considerations about how intentionally increasing the variability of protocols
can mitigate some of these concerns.</t>
      <t>Protocol extensions can provide longevity in the face of changing needs or
environment. However, a replacment protocol might be preferred when extensions
are not adequate or feasible. A protocol replacement could aggregate common
extensions and possibly make them mandatory, effectively defining a new baseline
that can simplify deployment and interoperability. 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-considerations">
      <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>Many protocols register values, codepoints, or numbers in a limited space. A
common approach that has developed in more recent protocols is to reserve a subset of the space for greasing (see
<xref target="GREASE"/>, <xref section="18.1" sectionFormat="of" target="QUIC"/>, or <xref section="7.2.8" sectionFormat="of" target="RFC9114"/>). Values
reserved for the purpose of greasing are herein referred to as grease values.
Implementations that receive grease values are required to ignore them. More
background to this approach is given in <xref section="3.3" sectionFormat="of" target="VIABILITY"/>.
This section provides concrete suggestions for its usage.</t>
      <t>It is assumed that endpoints should implement robust and broad extension
handling. A receiver or a parser implementation should not treat grease values
as individually special. Instead of identifying each grease value explicitly,
it is better to have a "catch all" mechanism that can handle receipt of unknown
extensions, whether grease values or not, gracefully or without error.</t>
      <t>It is recommended that senders pick an unpredictable grease value to include in
relevant protocol elements. This ensures that receiver greasing requirements are
exercised. Using predictable grease values risks ossification. To increase the
variety of grease values, it is advised to reserve a large range. However, the
specific size and distribution of the grease range needs to accommodate the
protocol constraints. For instance, protocols that use 8-bit fields may find it
too costly to dedicate many grease values, while 32-bit or 64-bit fields are
likely to have no limitations.</t>
      <t>It is recommended that senders use grease values at unpredictable times or
sequence points during protocol interactions. This avoids receivers
unintentionally ossifying on the occurrence of greasing in the temporal or
spatial domain.</t>
      <t>It is recommended that large grease value sets are allocated in protocol
documents by defining a unique algorithm, to increase the chance that
receiver greasing requirements are exercised. However, the choice of algorithm
needs to consider the spread of values and the size of contiguous blocks between
grease values. It is common for protocol extension designers to want to reserve
a contiguous block of code points in order to aid iteration and experimentation.
Small contiguous blocks increase the chance that such reservations might
unintentionally use grease values, which could lead to interoperability
failures.</t>
      <t>Protocols might ask IANA to create new registries for their extension points.
When greasing, it is recommended that only a single entry for the entire grease
value set is registered. When an algorithm has been used, it should be included
in the entry; see for example
https://www.iana.org/assignments/http3-parameters/http3-parameters.xhtml#http3-parameters-frame-types.</t>
      <t>Grease values must not be used or registered for any other purpose. Registries
should include a label to identify the protected grease value range; a label of
"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.</t>
    </section>
    <section anchor="variability">
      <name>Considerations for Increasing Protocol Variability</name>
      <t>Greasing can maintain protocol extensibility by falsifying active use of its
extension points. However, greasing alone does not ensure positive use of extension mechanisms. A protocol may
define a wide-ranging extension capability that remains unused in the absence of
real use cases. This can lead to ossification that does not expect extensions,
leading to interoperability problems later on.</t>
      <t>Long-term maintenance and interoperability can be ensured by exercising
extension points positively. To some extent this can be thought of as protocol
fuzzing. This might be difficult to exercise because varying the protocol
elements might change the outcome of interactions, leading to real errors.
However, some protocols allow elements to be be safely changed, as shown in the
following examples.</t>
      <section anchor="example-quic-frames">
        <name>Example: QUIC frames</name>
        <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.</t>
        <t>A QUIC stream is 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, which could arrive in any order, into an ordered reliable
byte stream that is readable by applications.</t>
        <t>A form of positive testing is for a sender to unpredictably order the STREAM
frames that it transmits. For example, varying the sequence order of offset
values. This allows to exercise the QUIC reassembly features of the receiver
with the expectation that no failure would occur. However, doing this may
introduce delay or stream head-of-line blocking that affects the performance
aspects of a transmission, which may not be acceptable for a given use case. As
such, positive testing might be most appropriate to use in a subset of
connections, or phases within a connection.</t>
      </section>
    </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 anchor="sec-normative-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 anchor="sec-informative-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 224?>

<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:
H4sIAAAAAAAAA81a3XIbOXa+x1Mg9EWyKZKyLGet0ezuLFfWzqjKsh1LnslU
KhdgN5pEqbvRC3STw3HpXfZZ9snynQOgf0g5k5tUpWpnTTYbwPn5zjnfOdBi
sRCtaUt9JWd3ytQt/jP1Rn50trWZLb387On7904rr6Wqc/mjckatTWnaw0yo
9drpHRanBeFNLJmJTLV6Y93hSpq6sELkNqtVhZNyp4p2ofNq0cRVi01ctXh5
IXy3roz3xtbtocHrt6u/iLqr1tpdiRx7XonM1l7XvvNXsnWdFhDgQryQCptc
ydWnmxW+7K173DjbNVfyp+/lT/gW9MAT8agP+Dm/EnIha/1LKze61k61OJIe
dbXJrOOPvlHusaSVufGtM+uu1bksdb7RTux03UGaF1L2B9GXIPX0RDyulCnp
lT/rX1TVlHqZ2YqeK5dtr+S2bRt/dXY2+vEM22Fr0267NSxMzsGra6tcfhZM
eGK+GRaUMJFvsSBtOV64DNstjf3aFmf/g3eW27YqZ0Kort1aR+bDeVIWXVkG
z77rMuXlRxwEr9BP1m1UbX5l017J69J2eVHCT/yjDiaZlbTqz/z/DS8l7XFM
bV2FlTvYWBCE+m9Sfvrr9Tfn56+veB+4pikVcPbDw8PHswshFouFVGv4S2Wt
EO8scNVqVwGH+Mc2cHXAr7SFbHqkGw98S1M11rWqBiisKumNdquBkpYAJTx+
ySGjp3WZ9n4p3+qmtIdKY4XvMnomM+yT60YjWmyNpw1tSWDItqre6Lncb022
FfSaqbOyy7WsbG6KA72ztXs+MglGcnVe53MJpGJLemf8+xxGFg5CqOz4p6V8
2GI1Aq9j+RqnETctBLR1ppvWz+mTN3kEP75DPdHqbFubv3XaS6cJTrls7SBP
RXlC1wpbzEnlrYTPE0QgjNwNGYIk0ILfz7GN6nKjsY506vfLtTcbxJ/n9GII
/iQtHixF8GVl8rzUAtFyW7fO5l3Gofp/61n55ct3d6vb9w8371fvr2/+SJB7
fX7x9LTssyM5+cj3AqvuP19f39zf04p/e3V++fT0/wcQQqT8DFfL3tE41bRG
leUheSOXiDf58O6ezPA9Uuo9W+Dyzctz6EOOImA4oXLbEEDWMDlOciOrJ2j8
++fba9qF/mUrvnz58ulpzkbZ6rJJ9iBJRdm7dGee8WVQmWqDbCycjvhLCpFZ
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
7gsOicrB0MEGItogHNuG2xO0Iv7oImccaoMleTPIEewlEisNXQRh3U/itvdv
b73DcDcT/Z8IuOgvwUagDmKiXYpFT+7Z2tx+jOpAboOoJtTRdNNCFz5lmHVH
Y29h5IUtFjwXZKIaFlKZ5zm+D7lFO/5LBegsRhGkkrX4D1v6i7dhBo+eVDfD
5aWKg6CU/BFPIDSo0fNTR/YZsLI0oKFhEngGx5flDXjI18/haNZe65TPiJRs
qbowtPnN4fflV4r6UMnjKJ/KeJrq80SdmIXjYTWyg0ebTqGy12W5SL0XFTzv
j/7IIKkUNxPjuf74zilwVLrV/I+Hm/f3t8Nc7PdvXn4Tb6j7CZqXr5bnfC9w
sXxF+/STNLrNn0zQ9gYdyZqBpJiYh4DPdyaOLYce8qt/tjC6UKMgHoaonOzS
9RyZFvKhxUb5nNo43EkcXYnwSHD0BwlhUjqemvY3vPSVtP3yZaQoj/UpOxxi
SsU/jcl8f8udn9w6LIMgkQKdXJHOx+SCrZAwEC5PS8pLhxDcAsxoQ/cWhi9u
iOUe5OgPTQLLDfV3VA9SVtyrwzwSeYLHumv5+ikNrlkhGu9+XZf5+EL3RBh4
UyNycZYqD97EDMOjbNho6KHwGs1Kyb100Z6BAgXmy63hqRfHVzi0CdIRv5mG
KPEPXGgmTLusMpox0p+XcZ0TX67CnF7nf5wR0dWzp7grXz/zzbrvqgoJN+XE
E6fGIc7N2ztQV036+vBXOUQTeF5mHQ+FggXTO+HGCQ55RFsp/htuzD/fKCgA
AA==

-->

</rfc>
