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

<t>Active use and maintenance of network protocols is an important way to
ensure that protocols remain interoperable and extensible over time.
Techniques such as intentionally exercising extension points with
non-meaningful values (referred to as "grease") or adding variability
to how protocol elements are used help generate this active use.</t>
      <t>Grease and variability are used across various protocols developed
by the IETF. This document discusses considerations when designing
and deploying grease and variability mechanisms, and provides
advice for making them as effective as possible.</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 55?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><xref section="3" sectionFormat="of" target="VIABILITY"/> discusses "active use" as a category
of techniques that protocol designers and implementers employ to ensure
that protocol extension mechanisms are exercised and can be used in the
future. This ability to change (to handle protocol updates and extensions)
is an important factor in the success of protocol deployment, as discussed
in <xref target="SUCCESS"/>.</t>
      <t>Active use of protocol features and extensions often requires intentional
efforts beyond what would organically occur in deployments. Some extension
points do not frequently see new values being used, but are still important
to be usable in the future. Some patterns of protocol usage might be
relatively static without specific efforts to ensure that they can change
in the future.</t>
      <t>One key techique for intentional use is "grease", or "greasing".
Greasing was initially designed for TLS <xref target="GREASE"/> and was later
adopted by other protocols such as QUIC <xref target="QUIC"/>. In these protocols,
extension codepoints are reserved only for greasing and must be ignored
upon receipt. Greasing is suitable for many protocols but not all; <xref section="3.3" sectionFormat="of" target="VIABILITY"/> discusses the applicability and limitations of greasing.</t>
      <t>While it is becoming more common, designing and applying grease is not
necessarily trivial. There are best practices, and some common pitfalls to
avoid, that have been developed by the protocols using grease thus far.
<xref target="grease-considerations"/> takes these learnings and provides considerations
for new protocol design and deployment.</t>
      <t>Separate from greasing using reserved values, protocol deployments can
intentionally add variability to ensure that network endpoints and
middleboxes do not end up ossifying certain patterns. 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 Greasing Protocols</name>
      <t>Greasing can take many forms, depending on the protocol and the nature of its
extension points. The common pattern across forms of greasing is that values
are generated that have no useful meaning to the protocol and are meant to
be ignored upon receipt. Such values used for the purpose of greasing are
referred to as "grease values" within this document.</t>
      <t>More background to this approach is given in <xref section="3.3" sectionFormat="of" target="VIABILITY"/>.</t>
      <t>This section provides some practical considerations for how to define and
use greasing, and avoid possible pitfalls.</t>
      <section anchor="define">
        <name>Define and Register Grease Value Ranges</name>
        <t>Many protocols that use greasing have a limited set of possible values or
codepoints that can be used in a particular extension point. A common
approach is to reserve a subset of the registrable space for greasing.</t>
        <t>The following are some examples of protocols that have reserved codepoints for grease values:</t>
        <ul spacing="normal">
          <li>
            <t>TLS (<xref target="GREASE"/>)</t>
          </li>
          <li>
            <t>QUIC (<xref section="18.1" sectionFormat="of" target="QUIC"/>)</t>
          </li>
          <li>
            <t>HTTP/3 (<xref section="7.2.8" sectionFormat="of" target="RFC9114"/>)</t>
          </li>
          <li>
            <t>Privacy Pass (<xref target="PRIVACYPASS"/>)</t>
          </li>
        </ul>
        <t>The specifics of how to reserve values depends on the nature of the
available space. For protocols with large possible spaces, it is useful
to have a large set of grease values to increase the chance that
receiver greasing requirements are exercised. 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 such limitations.</t>
        <t>It is recommended to use an algorithm to reserving large sets of values.
For example, <xref target="QUIC"/> uses and algorithm of <tt>31 * N + 27</tt> to allocate
transport parameters grease values.</t>
        <t>One possible problem with some algorithms is how they will spread out
values over the space, and impact the ability to use or reserve contiguous
blocks of non-grease values. It is common for protocol extension designers
to want to reserve contiguous blocks of codepoints in order to aid
iteration and experimentation. Reserved grease values can end up being
in spaces that would otherwise be used for such contiguous blocks.</t>
        <t>Codepoints being used for new reservations, or experimentation, need
to be careful to not unintentionally use grease values. Doing so could
lead to interoperability failures.</t>
        <section anchor="iana-tips">
          <name>Recommendations for IANA Considerations</name>
          <t>IANA registries that contain reserved grease values must indicate that
the values are reserved. The specifics of how to represent the reservations
is up to the documents that define the registries.</t>
          <t>Some registries list out the reserved grease values specifically, marked as
"Reserved". For example, the TLS registry uses this approach
(https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml).</t>
          <t>If an algorithm or pattern is used to define grease values, it is recommended
when possible to instead only define a single entry for the entire grease value
set. This entry should include the pattern or algorithm. This approach is used by
the QUIC registry (https://www.iana.org/assignments/quic/quic.xhtml) and the
HTTP/3 registry (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. This is in
contrast to other potentially "reserved" values that might be reused or
claimed for a new purpose in the future. To avoid confusion, it is recommended
to label the reservation with a clear identifier, such as "reserved for greasing".</t>
        </section>
      </section>
      <section anchor="use-unpredictable-grease-values">
        <name>Use Unpredictable Grease Values</name>
        <t>In order to gain the benefits of active use and avoid ossification, grease values
need to be sent in ways that won't become a predictable pattern that implementations
and deployments ossify around.</t>
        <t>Implementations that generate grease values should pick unpredictable entries
from the set of reserved grease values. It is most important that values be
unpredictable across the set of all protocol participants for particular deployments.
This can be achieved in multiple ways: for example, an individual client device
might pick random values from the grease value space on each interaction;
alternatively, a single client could pick a specific grease value to use, while
other clients pick other values.</t>
        <t>In order to support picking unpredictable values, the set of reserved values
should be large, when possible. See <xref target="define"/> for a discussion of how to allocate
grease values.</t>
      </section>
      <section anchor="use-grease-values-unpredictably">
        <name>Use Grease Values Unpredictably</name>
        <t>In addition to selecting unpredictable values, the inclusion of grease itself
can be made unpredictable. Implementations can vary their behavior by including
no grease values, one grease value, or multiple grease values for a given protocol
extension point.</t>
        <t>How consistently an frequently to use grease values is a choice that implementations
and deployments need to consider and weigh against several factors.</t>
        <t>Deployments of greasing should consider how they expect errors exposed by
using grease values to be noticed and measured.</t>
        <t>If grease values are sent too infrequently, so that errors due to sending
grease values blend in with the noise of other errors, it is likely that
no one will notice failures, thus defeating the purpose of greasing.
When grease values are sent more frequently, they will be noticed more.
However, if grease values are sent too consistently, receiver implementations
might end up special-casing grease values.</t>
        <t>The patterns for sending grease values can be made more effective by
coordinating between devices sending the values. One example of coordination
is having a "flag day" where implementations start sending grease values
broadly, and measure to see where errors occur.</t>
      </section>
      <section anchor="dont-handle-grease-values-as-a-special-case">
        <name>Don't Handle Grease Values as a Special Case</name>
        <t>Implementations that read and process grease values must ignore the values.
"Ignoring" a value upon receipt can have multiple dimensions, however.
Simply not performing any protocol action based on the grease value isn't
enough to ensure that the protocol will remain extensible. The ignoring
must be handled as a general case of "unknown" or "unhandled" values,
not as a special case for ignored grease values.</t>
        <t>This means that grease values can only meaningfully be used for protocol elements
where all unknown values are ignored by default. (Protocols may have ways
to indicate that some specific values are "mandatory" or "critical" in order
to have the protocol interaction succeed, but these must not be marked
for any grease values.)</t>
        <t>One pitfall that implementations may encounter when building logic to
handle the receipt of grease values is related to cases where some recognized
non-grease values need to be handled as errors. Consider the following abstract
example:</t>
        <ol spacing="normal" type="1"><li>
            <t>A protocol element has values 1, 2, 3, and 4 defined and registered for
use. The values 13 and 42 are reserved as grease values.</t>
          </li>
          <li>
            <t>In a specific scenario, only the known values 1 and 2 are valid; 3 and 4
are considered errors.</t>
          </li>
          <li>
            <t>An implementation might naively choose to check for the value being 1 or 2, handle
those cases, and send an error otherwise.</t>
          </li>
          <li>
            <t>When grease values are used, the previous logic will flag an error for the grease value.
If this is detected, implementations might choose to work around this by updating
the logic to check for the value being 1 or 2, then check for grease values to ignore,
and then send an error otherwise. This logic is also incorrect since it doesn't
allow for new extensibility.</t>
          </li>
        </ol>
        <t>The correct logic for the above scenario would be to check for the value being 1 or 2,
then explicitly check for the value being 3 or 4 (to handle the error), with a
catch-all for ignored values.</t>
        <t>In pseudo-code, the correct logic would work like this, where the grease values
would fall into the final <tt>else</tt> case as ignored values.</t>
        <artwork><![CDATA[
if is_valid_case_one(value):
  handle_case_one()
else if is_valid_case_two(value):
  handle_case_two()
else if is_known_invalid_case(value):
  handle_error()
else:
  ignore_value()
]]></artwork>
        <t>Implementations need to take care when implementing such logic. Protocol specification
designers should emphasize that grease values must not be special-cased. It is also
recommended to provide example logic or pseudocode in specifications, similar to the example
above, as guidance to implementers on how to correctly process protocol elements like these.
Documents can also provide test vectors, when applicable, that include grease values
to ensure they are processed correctly.</t>
      </section>
    </section>
    <section anchor="deployment-considerations-and-incentives-for-greasing">
      <name>Deployment Considerations and Incentives for Greasing</name>
      <t>Greasing can be used as a tool to improve the active use of existing protocol
elements (which weren't necessarily designed with greasing to begin with, or
weren't deployed with greasing); or as part of new protocol design and deployments.</t>
      <t>When greasing isn't used from the beginning of protocol deployment, starting to use
greasing comes with the risk of triggering failures or anomalies. These failures might be innocuous,
but they also might be very impactful and visible to users. This risk creates a
disincentive to deploy greasing in existing systems, since generally the change that
triggers failures is often blamed for the failure. The risk is highest when
adding greasing to a particular protocol flow that doesn't require any
change of behavior or adoption to hit the greasing behavior. For example,
if a service migrates to use a new web server implementation that enables
greasing, while the previous server didn't, some new failures may be hit
if clients react poorly to greasing.</t>
      <t>Some approaches to avoid failures due to greasing include:</t>
      <ul spacing="normal">
        <li>
          <t>Designing, implementing, and using greasing very early on in protocol development
and deployment. This avoids the aforementioned risk of adding greasing late in a deployment.</t>
        </li>
        <li>
          <t>Enabling greasing along with other major protocol feature changes or deployment changes.
For example, when upgrading to a new protocol version that requires implementation updates
on multiple systems, greasing can be added for the new version specifically. This approach
works well for situations where the protocol participants are known and already need
to cooperate (such as within an encrypted protocol between two endpoints). This approach
applies less well for situations where non-cooperating entities (such as middleboxes)
are the source of ossification.</t>
        </li>
        <li>
          <t>Using heuristics to disable greasing when errors are encountered. For example,
if a client-initiated protocol operation fails multiple times when grease values are used, it can be retried
without any grease values. Alternatively, if a server recognizes a property of a client that always fails
when greasing is used, it could choose to disable greasing when that client is detected.
This reduces the effectiveness of grease values in removing
existing ossification, but can still have benefits for flagging issues in new implementations
when they receive grease values.</t>
        </li>
      </ul>
    </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 <xref target="PRIVCON"/>. 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 itself. Guidance on how other documents can effectively
instruct IANA about protocol greasing is provided in <xref target="iana-tips"/></t>
    </section>
  </middle>
  <back>
    <displayreference target="RFC9114" to="HTTP/3"/>
    <references anchor="sec-combined-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="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="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="PRIVACYPASS">
          <front>
            <title>The Privacy Pass HTTP Authentication Scheme</title>
            <author fullname="T. Pauly" initials="T." surname="Pauly"/>
            <author fullname="S. Valdez" initials="S." surname="Valdez"/>
            <author fullname="C. A. Wood" initials="C. A." surname="Wood"/>
            <date month="June" year="2024"/>
            <abstract>
              <t>This document defines an HTTP authentication scheme for Privacy Pass, a privacy-preserving authentication mechanism used for authorization. The authentication scheme specified in this document can be used by Clients to redeem Privacy Pass tokens with an Origin. It can also be used by Origins to challenge Clients to present Privacy Pass tokens.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9577"/>
          <seriesInfo name="DOI" value="10.17487/RFC9577"/>
        </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>
        <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="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="PRIVCON">
          <front>
            <title>Privacy Considerations for Internet Protocols</title>
            <author fullname="A. Cooper" initials="A." surname="Cooper"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="J. Peterson" initials="J." surname="Peterson"/>
            <author fullname="J. Morris" initials="J." surname="Morris"/>
            <author fullname="M. Hansen" initials="M." surname="Hansen"/>
            <author fullname="R. Smith" initials="R." surname="Smith"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document offers guidance for developing privacy considerations for inclusion in protocol specifications. It aims to make designers, implementers, and users of Internet protocols aware of privacy-related design choices. It suggests that whether any individual RFC warrants a specific privacy considerations section will depend on the document's content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6973"/>
          <seriesInfo name="DOI" value="10.17487/RFC6973"/>
        </reference>
      </references>
    </references>
    <?line 397?>

<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:
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
D2/ONMvw+R+ePuWbss0QKcumTIYC3+x41Fy0wViMtoGZlfQ6LcqRkwqzR+aI
h8ehIWwfTl1ehBnSyEyVXtJ5Jizyth3XhHWkzWCiwBsBa5mGCk6Un2nKQfgs
HzJmBYc0kRqwsHXXFr+o3A9Jd4ERKixGQSOJIgWFNBKZiFyumUXvBiNFzYRo
qZn8SrIGbUcq53cpyrPFClxYF75krAGYA8XKyZiurjFVy+yKKHVOdG5WfMKT
Obwqw9zHj2QqLPjHJ/zkbFLuuyw+eJ0oWFrJHESRM2T+Qk6jYZwMjuVqCzXj
DB+9QQDRXW1H6SCDh5MS4VF6lm4SZ93eqvxyJkVD41wY89Pjk+T3yevk35NH
T38SvkLpuFMXRUuIOrde8oOTnVuaZrRmGoqoyIm+DktJRlyEm3mfG6aiWoAa
RDMAfi5YIclxX5l8zkN2EiZXw7kxQpUgrxnUBEeOcKSv+9atQP0H4QaT3FNy
E+Wwuc11pCaRRRuSo1SIEHYeL5SMC0W2piD2zbkLMLLIHWxuM8afjBWbgtqg
WBVW3szVVMloei2clkwek2Oqsiq3lj0kar+BMg1mmjsSuToiEyd1PlI5pgeT
kHvQDaooSirtgNa5KJ4lDTOINGFCp5F/X03jyMH/jIx/XnPFttYwyoUw9jCW
QQxYlAzHxR/eA39MFyIve3H2+uwQnd3eK9IqXXTFjtBL3jAPUwSekSXMRjR3
s1ySa9B8VXIxZxoDy69xdm5quaZG28Ibc3EjR5myxmEanAr4xSgzvBC5xUIY
IEnYaBslPlBbotmPthHI4jnMYauaDxo1zIKkzQ6yMJyLrtDW2auVmGAodz/U
FW9ubpZk9LJuNg/h2qAnso+HXdkuRiNx8HX5M4uID2jg1lNTRgU07FoYTBzx
04GNLQ6No5OwfrA9Ik1ATKlFOgGFJXRE+B10NvsBhVJam+kaDlbUyhP6LqIg
qhncXdnnej6BWkanYRehpBEBH9nJai8SJKBi4O5vsxIOM5P/GNtCQOAMe/w/
puILj+NzOXygS9w7fLxY89OCVe32wVCkixXF8giarGuMJt+YPaGHtES5gn1j
Ef+pGPnDs7RiVu2tWqyH2I5ZEOzZgDioI0NWp/G2qMvKFObJVtT8qYUWB8WM
d7Whbqy87ltNsB1JE6gBiPLloe6qM0uTrJRoOSelcOzNfMj9DyRPMOxMIf17
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
/g+docZPv0oAAA==

-->

</rfc>
