<?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-westerlund-masque-connect-udp-ecn-dscp-01" category="std" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title>ECN and DSCP support for HTTPS's Connect-UDP</title>
    <seriesInfo name="Internet-Draft" value="draft-westerlund-masque-connect-udp-ecn-dscp-01"/>
    <author initials="M." surname="Westerlund" fullname="Magnus Westerlund">
      <organization>Ericsson</organization>
      <address>
        <email>magnus.westerlund@ericsson.com</email>
      </address>
    </author>
    <author initials="M." surname="Seemann" fullname="Marten Seemann">
      <organization>Smallstep</organization>
      <address>
        <email>martenseemann@gmail.com</email>
      </address>
    </author>
    <author fullname="Mirja Kühlewind">
      <organization>Ericsson</organization>
      <address>
        <email>mirja.kuehlewind@ericsson.com</email>
      </address>
    </author>
    <author fullname="Marcus Ihlar">
      <organization>Ericsson</organization>
      <address>
        <email>marcus.ihlar@ericsson.com</email>
      </address>
    </author>
    <date year="2025" month="October" day="20"/>
    <area>WIT</area>
    <workgroup>MASQUE</workgroup>
    <keyword>quic</keyword>
    <keyword>http</keyword>
    <keyword>datagram</keyword>
    <keyword>udp</keyword>
    <keyword>proxy</keyword>
    <keyword>tunnels</keyword>
    <keyword>quic in quic</keyword>
    <keyword>turtles all the way down</keyword>
    <keyword>masque</keyword>
    <keyword>http-ng</keyword>
    <abstract>
      <?line 75?>

<t>HTTP's Extended Connect's Connect-UDP protocol enables a client to
proxy a UDP flow from the HTTP server towards a specified target IP
address and UDP port. QUIC and Real-time transport protocol (RTP) are examples
of transport protocols that use UDP and support Explicit Congestion
Notification (ECN) and provide the necessary feedback. This document specifies
how ECN and DSCP can be supported through an extension to the Connect-UDP
protocol for HTTP.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://gloinul.github.io/masque-ecn/#go.draft-westerlund-masque-connect-udp-ecn.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-westerlund-masque-connect-udp-ecn-dscp/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        MASQUE Working Group mailing list (<eref target="mailto:masque@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/masque/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/masque/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/gloinul/masque-ecn"/>.</t>
    </note>
  </front>
  <middle>
    <?line 86?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Connect-UDP, as currently defined, limits the Explicit Congestion Notification
(ECN) <xref target="RFC3168"/> exchange between the HTTP server and the target. There is no
support for carrying the ECN bits between the HTTP Connect-UDP client and the
HTTP server proxying the UDP flow. Thus, it is not possible to establish the
end-to-end ECN information flow necessary to support either classic ECN
<xref target="RFC3168"/> or L4S <xref target="RFC9330"/>, <xref target="RFC9331"/>.</t>
      <t>Diffserv <xref target="RFC2475"/> enables differential network treatment of packets.
Connect-UDP, as currently defined, lacks support for carrying the DSCP
field <xref target="RFC2474"/> through the tunnel.</t>
      <t>This document specifies two Connect-UDP extensions that enable end-to-end ECN
and DSCP for proxied connections: an ECN-zero-bytes extension, which adds no
overhead by encoding the ECN value directly into the Context ID; and an
ECN/DSCP extension, which carries both DSCP and ECN in the HTTP Datagram
payload. For these two extensions, this document specifies negotiation and
defines a new Datagram context that carries the DSCP and ECN bits and the UDP
payload, replacing the context defined in <xref target="RFC9298"/>.</t>
      <t>An alternative to this extension is Connect-IP <xref target="RFC9484"/>; however, it carries
a full IP header between the HTTP client and server, resulting in significantly
more overhead than this extension, which requires zero or one byte to carry
both the DSCP and ECN bits.</t>
      <t>To define a solution that can be combined with other extensions, and thus other
contexts, without redefining each combination, the extensions defined in this
document indicate not only the ECN and DSCP values but also the next Context ID.
The ECN-zero-bytes extension defines three additional Context ID values that are
bound to an HTTP Datagram payload identifying the Context ID and indicate whether
the packet was marked with ECT(0), ECT(1), or CE, respectively.</t>
      <t>The extensions are defined such that they allow clients to optimistically start
sending UDP packets in HTTP Datagrams, i.e. before receiving the response to its
UDP proxying request, as described in <xref section="5" sectionFormat="of" target="RFC9298"/>.</t>
      <t>An endpoint should not enable both extensions defined in this document, as that
would lead to confusion if both extensions indicate different ECN values.</t>
    </section>
    <section anchor="conventions">
      <name>Conventions</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" 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.
<?line -6?>
      </t>
    </section>
    <section anchor="sec-CONTEXT-ECN">
      <name>ECN-zero-byte Extension</name>
      <t>For a zero-overhead encoding, the ECN bits can be indicated by using different
Context IDs. At the same time, the Context ID indicates which Context ID would
otherwise have been used to identify the structure of the rest of the HTTP
payload, which we call the payload-identifying context ID, or short payload
ID. Often this is the basic UDP-payload context (Context ID 0) as defined by
<xref target="RFC9298"/>.</t>
      <t>The core of this solution is to define additional Context IDs (A, B, and C) for
a Connect-UDP stream that indicate ECN values other than Not-ECT, i.e., ECT(1),
ECT(0), or CE <xref target="RFC3168"/>. This idea is shown in <xref target="ECN-Encoding-Table"/>.</t>
      <table anchor="ECN-Encoding-Table">
        <name>ECN Encoding Table</name>
        <thead>
          <tr>
            <th align="right">Context ID Value</th>
            <th align="left">ECN bit</th>
            <th align="left">ECN Value</th>
            <th align="left">Payload ID</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="right">0</td>
            <td align="left">0b00</td>
            <td align="left">Not-ECT</td>
            <td align="left">0</td>
          </tr>
          <tr>
            <td align="right">A</td>
            <td align="left">0b01</td>
            <td align="left">ECT(1)</td>
            <td align="left">0</td>
          </tr>
          <tr>
            <td align="right">B</td>
            <td align="left">0b10</td>
            <td align="left">ECT(0)</td>
            <td align="left">0</td>
          </tr>
          <tr>
            <td align="right">C</td>
            <td align="left">0b11</td>
            <td align="left">CE</td>
            <td align="left">0</td>
          </tr>
        </tbody>
      </table>
      <t>No new Context ID value is defined to represent Not-ECT, since using a Context
ID without this extension would, by default, imply Not-ECT. Additionally,
Context IDs are defined to represent the combination of an ECN value other than
Not-ECT and the payload-identifying Context ID. If an application uses more
Context ID values than just zero, additional Context IDs must be defined.</t>
      <t>This extension results in four times as many Context IDs within a single
Connect-UDP stream. We expect that this is acceptable in most cases, as a total
of 31 client initiated Context IDs can be encoded in a single byte, thus resulting in no packet
expansion. However, for applications that have more than 8 original Context IDs
(including zero), it is recommended to use the ECN/DSCP extension
<xref target="sec-DSCP-ECN"/>, which only doubles the number of Context IDs but requires an
additional byte in the payload.</t>
      <t>An endpoint enabling this extension MUST define all three ECN values, even if
the ECN-enabled application expects that only one ECT value (and CE) is used.
This is because of transmission errors or erroneous remarking in the network,
where the other ECT codepoint, as well as Not-ECT, may be observed.</t>
      <t>Negotiation of the conetxt ID values is defined using both
HTTP headers and capsulses in <xref target="sec-neg-ECN-Zero"/>.</t>
    </section>
    <section anchor="sec-DSCP-ECN">
      <name>DSCP plus ECN Extension</name>
      <t>The HTTP Datagram Payload format is defined in <xref target="RFC9484"/> as depicted below.</t>
      <figure anchor="dgram-format">
        <name>ECN enabled UDP Proxying HTTP Datagram Format</name>
        <artwork type="ascii-art"><![CDATA[
UDP Proxying HTTP Datagram Payload {
  Context ID (i),
  UDP Proxying Payload (..)
}
]]></artwork>
      </figure>
      <t>For the DSCP plus ECN extension, the DSCP plus ECN UDP Proxying Payload is defined in the following way:</t>
      <figure anchor="UDP-Proxying-Payload">
        <name>DSCP plus ECN UDP Proxying Payload</name>
        <artwork type="ascii-art"><![CDATA[
ECN/DSCP UDP Proxying Payload {
  DSCP(6),
  ECN(2),
  UDP Proxying Payload (..) # Payload per another Context ID definition
}
]]></artwork>
      </figure>
      <t>DSCP: A six bit field carrying the Differentiated Service Code Point
    as defined by <xref target="RFC2474"/> associated with this UDP Proxying Payload.</t>
      <t>ECN: A two bit field carrying the IP ECN bits as defined by Section 5
    of <xref target="RFC3168"/> to be set or as received on the IP/UDP packet
    carrying the UDP Datagram payload included.</t>
      <t>UDP Proxying Payload: Another UDP Proxying Payload following the ECN
    carrying byte. This uses another Context ID as negotiated,
    e.g. Context ID 0.  Thus enabling this byte to be combined with
    any other payload.</t>
      <t>This format used a negotiated context ID that MUST be non-zero. It
MUST also negotiate the payload-identifying context ID.</t>
    </section>
    <section anchor="sec-neg-ECN">
      <name>Negotiating Extensions Usage</name>
      <t>This section defines capability negotation and Context ID
configuration for the two defined extensions.</t>
      <t>Note that Context Identifiers are defined as QUIC varints (see Section 16 of
<xref target="RFC9000"/>) and support values up to 4,611,686,018,427,387,903 (2^62-1), which is
larger than what a Structure Header Integer supports (limited to
999,999,999,999,999). We foresee no issues with this limitation, as Context
Identifiers should primarily use the single-byte representation for efficiency,
i.e., they should rarely exceed 63.</t>
      <section anchor="sec-neg-ECN-Zero">
        <name>ECN-zero-byte Extension</name>
        <t>To use the ECN-zero-byte extension three Context IDs need to be configured
relative to the Context ID that identifies the actual HTTP Datagram payload.</t>
        <t>A configuration of ECN signaling is represented by a four-tuple with the
following format:</t>
        <figure anchor="ECN-CAP-CONTEXT-Format">
          <name>ECN CONTEXT ASSIGNMENT Format</name>
          <artwork type="ascii-art"><![CDATA[
ECN_CONTEXT_ASSIGNMENT {
  ECT_1_CONTEXT (i),
  ECT_0_CONTEXT (i),
  CE_CONTEXT (i),
  PAYLOAD_CONTEXT (i)
}
]]></artwork>
        </figure>
        <dl>
          <dt>ECT_1_CONTEXT:</dt>
          <dd>
            <t>The Context ID used to indicate the payload was marked with ECN value ECT(1).</t>
          </dd>
          <dt>ECT_0_CONTEXT:</dt>
          <dd>
            <t>The Context ID used to indicate the payload was marked with ECN value ECT(0).</t>
          </dd>
          <dt>CE_CONTEXT:</dt>
          <dd>
            <t>The Context ID used to indicate the payload was marked with ECN value CE.</t>
          </dd>
          <dt>PAYLOAD_CONTEXT:</dt>
          <dd>
            <t>The payload-identifiying context ID indicating the actual encoding of the
start of the HTTP Datagram payload.</t>
          </dd>
        </dl>
        <section anchor="http-structured-field">
          <name>HTTP Structured field</name>
          <t>ECN-Context-ID is a Structured Header Field <xref target="RFC9651"/>. Its value is a List
consisting of zero or more Inner Lists, where the Inner List contains four
Integer Items. The Integer Items MUST be non-negative, as they are context
identifiers defined in <xref target="RFC9298"/>. The four Context IDs are those defined in
<xref target="ECN-CAP-CONTEXT-Format"/>, in that order.</t>
          <t>When the header is included in an Extended Connect request, it indicates, first
of all, support for this ECN extension. Secondly, it may define one or more
4-item inner lists of Context IDs for the requestor-to-responder direction.
If no 4-item inner lists of Context IDs are included, then this header only
indicates support for the extension, and the Context IDs MAY be signaled using
capsules.</t>
          <t>When the request includes the ECN-Context-ID header, the responder MAY include
this header in the response. If included with one or more 4-item inner lists, it
defines Context ID defined by the server, usable in either direction.</t>
          <t>The following example indicates support for ECN-zero-byte-extension and defines
two sets of client initiated Context IDs: ID=10, 12, 14 (ECT(1), ECT(0), CE)
combined with Context ID 8; and ID=2, 4, 6 combined with the default ID=0 as
defined in <xref target="RFC9298"/>, i.e., a plain UDP payload.</t>
          <figure anchor="ECN-Context-ID-example">
            <name>Example of ECN-Context-ID header</name>
            <artwork type="ascii-art"><![CDATA[
ECN-Context-ID: (10,12,14,8), (2,4,6,0)
]]></artwork>
          </figure>
        </section>
        <section anchor="ecn-context-id-assignment-capsule">
          <name>ECN Context ID Assignment Capsule</name>
          <t>The ECN_CONTEXT_ASSIGN capsule is used to assign Context ID values to the
ECN-zero-byte extension.</t>
          <figure anchor="ECN-CAP-Format">
            <name>ECN_CONTEXT_ASSIGN Capsule Format</name>
            <artwork type="ascii-art"><![CDATA[
ECN_CONTEXT_ASSIGN Capsule {
  Type (i) = TBA_2
  Length (i),
  ECN_CONTEXT_ASSIGNMENT (..) ...,
}
]]></artwork>
          </figure>
          <t>Type and Length as defined by Section 3.2 of the HTTP Capsule specification
<xref target="RFC9297"/>. The capsule value is the ECN_CONTEXT_ASSIGNMENT defined above in
<xref target="ECN-CAP-CONTEXT-Format"/>. Thus, the capsule value consists of zero or more
ECN_CONTEXT_ASSIGNMENT four-tuples.</t>
        </section>
      </section>
      <section anchor="dscp-plus-ecn-extension">
        <name>DSCP plus ECN extension</name>
        <t>This section defines the negotiation of the DSCP plus ECN extension defined in
<xref target="sec-DSCP-ECN"/>. It defines both an HTTP header field (DSCP-ECN-Context-ID)
that can be included in the Extended Connect request, and a capsule.</t>
        <section anchor="http-structured-header">
          <name>HTTP Structured Header</name>
          <t>DSCP-ECN-Context-ID is a Structured Header Field <xref target="RFC9651"/>. Its
value is a List of zero or more Inner Lists, where each Inner List
contains two Integer Items. The Integer Items MUST be non-negative, as
they are context identifiers defined by <xref target="RFC9298"/>. The first Integer
Item is the Context ID being defined, and the second Integer Item is
the Context ID for the payload following the DSCP plus ECN byte.</t>
          <t>When the header is included in an Extended Connect request, it indicates, first
of all, support for the DSCP plus ECN extension. Secondly, it may define one or
more context ID pairs define by the client. If no context ID pairs are included,
then this header only indicates support for the extension, and it may be
configured using capsules.</t>
          <t>When the request includes the DSCP-ECN-Context-ID header, the responder MAY
include this header in the response. If included, it defines server initated
Context ID(s) if one or more Inner Lists are included.</t>
          <t>The following example indicates supoprt of the ECN/DSCP extension and defines
three Context IDs: Context ID 10 combined with Context ID 8, Context ID 6
combined with Context ID 4, and Context ID 2 combined with the default Context
ID 0 as defined in <xref target="RFC9298"/>, i.e., a plain UDP payload.</t>
          <figure anchor="DSCP-ECN-Context-ID-example">
            <name>Example of ECN-Context-ID header</name>
            <artwork type="ascii-art"><![CDATA[
DSCP-ECN-Conext-ID: (10,8), (6,4), (2,0)
]]></artwork>
          </figure>
        </section>
        <section anchor="dscp-plus-ecn-context-id-assignment-capsule">
          <name>DSCP plus ECN Context ID Assignment Capsule</name>
          <t>The DSCP_ECN_CONTEXT_ASSIGN capsule is used to assign context ID values for the
DSCP/ECN extension.</t>
          <figure anchor="DSCP-ECN-CAP-Format">
            <name>DSCP_ECN_CONTEXT_ASSIGN Capsule Format</name>
            <artwork type="ascii-art"><![CDATA[
DSCP_ECN_CONTEXT_ASSIGN Capsule {
  Type (i) = TBA_2
  Length (i),
  CONTEXT ASSIGNMENT (..) ...,
}
]]></artwork>
          </figure>
          <t>Type and Length as defined by the HTTP Capsule specification in <xref section="3.2" sectionFormat="of" target="RFC9297"/>. The capsule value is defined below.</t>
          <figure anchor="DSCP-ECN-CAP-CONTEXT-Format">
            <name>CONTEXT ASSIGNMENT Format</name>
            <artwork type="ascii-art"><![CDATA[
CONTEXT ASSIGNMENT {
  ASSIGNED_CONTEXT (i),
  NEXT_PAYLOAD_CONTEXT (i)
}
]]></artwork>
          </figure>
          <t>The capsule value consists of zero or more CONTEXT ASSIGNMENT pair values.
Each pair consists of these two fields:</t>
          <t>ASSIGNED_CONTEXT: : The context ID identifying that the indicated HTTP datagram
payload starts with the DSCP plus ECN UDP Proxying Payload.</t>
          <dl>
            <dt>NEXT_PAYLOAD_CONTEXT:</dt>
            <dd>
              <t>The context ID identifying the following payload in each
HTTP datagram after the DSCP plus ECN UDP Proxying Payload.</t>
            </dd>
          </dl>
          <t>This capsule is sent by either endpoints to configure or extend the
configuration of context IDs.</t>
        </section>
      </section>
    </section>
    <section anchor="tunnels-and-dscp-and-ecn-marking-interactions">
      <name>Tunnels and DSCP and ECN marking interactions</name>
      <section anchor="tunnel-endpoint-marking">
        <name>Tunnel Endpoint Marking</name>
        <t>The Tunnel Endpoint, when receiving an IP/UDP packet belonging to a Connect-UDP
request with the DSCP plus ECN extension enabled, copies the six DSCP bits and the
two ECN bits from the IP header into the DSCP and ECN fields, respectively, in
the HTTP Datagram payload using the relevant Context ID. When using the ECN-zero-byte
extension, the two ECN bits in the incoming IP/UDP packet are used to select the
appropriate Context ID.</t>
        <t>For the DSCP plus ECN extension, the Tunnel Endpoint on egress copies the DSCP and
ECN extension field values into the IP/UDP packet it creates for this UDP
Proxying payload. For the ECN-zero-byte extension, the Context ID value is used to
determine which value to write in the outgoing IP/UDP packet’s ECN field.</t>
        <t>A Tunnel endpoint which is unable to read or set the ECN Field SHALL NOT
enable the ECN extension.</t>
      </section>
      <section anchor="dscp-remarking-considerations">
        <name>DSCP Remarking Considerations</name>
        <t>The tunnel may interconnect two different administrative domains that use
DSCP values differently. Thus, the endpoints likely need to perform remarking
of DSCP field values, similar to what an inter-domain router would. Depending on
use cases and deployment, the HTTP client can be in different network domains
with different DSCP usages. An HTTP server that, based on user identification,
connects the HTTP client to different network domains behind it may also need
to support multiple external domains.</t>
        <t>The above complications in handling DSCP make it impossible to provide a
standardized remarking instruction. Instead, the deployment will have to define
whether remarking is handled by the HTTP server, the HTTP client, or both,
considering the tunnel a specific network domain in itself.</t>
      </section>
      <section anchor="tunnel-transport-connection-ecn-interactions-and-congestion-control">
        <name>Tunnel Transport Connection ECN Interactions and Congestion Control</name>
        <t>The primary goal of the ECN extension is to enable ECN usage between the proxy
and the target and to have the end-to-end transport react to that ECN. However,
different potential models exist for providing ECN interactions for the tunnel,
i.e., between the HTTP client and server. The choice depends on how the tunnel
is configured and what additional support has been implemented for the
Connect-UDP protocol.</t>
        <t>The default deployment would be to use congestion controlled transport protocols
between the HTTP endpoints or proxies for the tunneled ECN enabled packets. This
include all HTTP versions before HTTP/3 <xref target="RFC9114"/>, as well as HTTP/3 sending
packets over reliable streams as well as over congestion controlled datagrams.
In this deployment on the ingress to each congestion controlled transport an
Active Queue Management (AQM) is recommend that can mark the tunneled packet's
ECN field (or drop them) in case there is sufficient queue build up.</t>
        <t>For tunnels using HTTP/3 with datagrams, where the QUIC connection disables
congestion control on packets containing HTTP datagrams as discussed in Section
6 of <xref target="RFC9298"/>, the ECN marking on tunneled packets can be propagated between
the IP packet of the transport connection and the end-to-end packet. This
represents a specific implementation of IP-in-IP tunnels with tightly coupled
shim headers as discussed in <xref target="RFC9601"/>. It is implemented as
Feed-Forward-and-Up as discussed in <xref target="RFC9599"/>, and MUST use the normal mode on
tunnel ingress and follow the specified default behavior on egress as defined in
<xref target="RFC6040"/>.</t>
      </section>
      <section anchor="tunnel-transport-connection-dscp-interactions">
        <name>Tunnel Transport Connection DSCP Interactions</name>
        <t>For HTTP tunnels not using HTTP/3 <xref target="RFC9114"/>, HTTP/3 using reliable streams, or
HTTP/3 with datagrams but without disabling congestion control, the tunnel will
consist of one or possibly several chained congestion-controlled transport
connections. These transport connections can use only a single DSCP code point
to avoid inconsistent network treatment that might confuse the congestion
controller and retransmission mechanism. Thus, even if the tunneled packets use
different DSCP values, the transport connection must settle on a single,
suitable DSCP value. However, if the QUIC multipath extension
<xref target="I-D.ietf-quic-multipath"/> is used, each path can have a different DSCP value.
In this latter case, packets with different DSCP values can be mapped to
different paths with the appropriate network treatment as indicated by their
DSCP values.</t>
        <t>For tunnels using HTTP/3 with datagrams and where the QUIC connection disables
congestion control on packets containing HTTP datagrams, as discussed in
Section 6 of <xref target="RFC9298"/>, the QUIC packets can be marked using the most
suitable DSCP value based on the encapsulated packet. In cases where the tunnel
connection is sent into a different network domain than the one on which the
tunneled packet was received, a suitable remapping must occur for the domain to
which the tunnel packet will be sent. The HTTP tunnel MUST NOT coalesce
different tunneled payloads that are not mapped to the same DSCP in a single
QUIC packet.</t>
      </section>
      <section anchor="quic-aware-forwarding">
        <name>QUIC Aware Forwarding</name>
        <t>An HTTP endpoint that supports this extension and QUIC Aware Forwarding
<xref target="I-D.ietf-masque-quic-proxy"/> MUST preserve ECN markings on forwarded packets
in both directions to ensure end-to-end ECN functionality. Using this extension
in combination with QUIC Aware Forwarding, rather than relying solely on the
latter, also ensures that ECN black holes do not occur, for example, on
long-header packets or packets sent before the QUIC Aware Forwarding path is
established for short-header packets. Thus, supporting both provides a
consistent ECN experience.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="http-field-names">
        <name>HTTP Field Names</name>
        <t>IANA is request to register two new permanent Field name in the
Hypertext Transfer Protocol (HTTP) Field Name Registry (At time of
writing residing at:
https://www.iana.org/assignments/http-fields/http-fields.xhtml).</t>
        <section anchor="ecn-context-id">
          <name>ECN-Context-ID</name>
          <t>Field Name: ECN-Context-ID</t>
          <t>Status: Permanent</t>
          <t>Structured Type: List</t>
          <t>Reference: [RFC-TO-BE]</t>
        </section>
        <section anchor="dscp-ecn-context-id">
          <name>DSCP-ECN-Context-ID</name>
          <t>Field Name: DSCP-ECN-Context-ID</t>
          <t>Status: Permanent</t>
          <t>Structured Type: List</t>
          <t>Reference: [RFC-TO-BE]</t>
        </section>
      </section>
      <section anchor="http-capsule-type">
        <name>HTTP Capsule Type</name>
        <t>IANA is reqeusted ot register two new HTTP Capsule Types in the
permanent range (0x00-0x3f).</t>
        <section anchor="ecncontextassign">
          <name>ECN_CONTEXT_ASSIGN</name>
          <dl>
            <dt>Value:</dt>
            <dd>
              <t>TBA_1</t>
            </dd>
            <dt>Capsule Type:</dt>
            <dd>
              <t>ECN_CONTEXT_ASSIGN</t>
            </dd>
            <dt>Status:</dt>
            <dd>
              <t>permanent</t>
            </dd>
            <dt>Reference:</dt>
            <dd>
              <t>RFC-TO-BE</t>
            </dd>
            <dt>Change Controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Contact:</dt>
            <dd>
              <t>MASQUE Working Group masque@ietf.org</t>
            </dd>
            <dt>Notes:</dt>
            <dd>
              <t>None</t>
            </dd>
          </dl>
        </section>
        <section anchor="dscpecncontextassign">
          <name>DSCP_ECN_CONTEXT_ASSIGN</name>
          <dl>
            <dt>Value:</dt>
            <dd>
              <t>TBA_2</t>
            </dd>
            <dt>Capsule Type:</dt>
            <dd>
              <t>DSCP_ECN_CONTEXT_ASSIGN</t>
            </dd>
            <dt>Status:</dt>
            <dd>
              <t>permanent</t>
            </dd>
            <dt>Reference:</dt>
            <dd>
              <t>RFC-TO-BE</t>
            </dd>
            <dt>Change Controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Contact:</dt>
            <dd>
              <t>MASQUE Working Group masque@ietf.org</t>
            </dd>
            <dt>Notes:</dt>
            <dd>
              <t>None</t>
            </dd>
          </dl>
        </section>
      </section>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This draft takes insperation from David Schinazi's An ECN Extension to
Connect-UDP <xref target="I-D.schinazi-masque-connect-udp-ecn"/>.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="I-D.ietf-masque-quic-proxy">
          <front>
            <title>QUIC-Aware Proxying Using HTTP</title>
            <author fullname="Tommy Pauly" initials="T." surname="Pauly">
              <organization>Apple Inc.</organization>
            </author>
            <author fullname="Eric Rosenberg" initials="E." surname="Rosenberg">
              <organization>Apple Inc.</organization>
            </author>
            <author fullname="David Schinazi" initials="D." surname="Schinazi">
              <organization>Google LLC</organization>
            </author>
            <date day="8" month="October" year="2025"/>
            <abstract>
              <t>   This document extends UDP Proxying over HTTP to add optimizations for
   proxied QUIC connections.  Specifically, it allows a proxy to reuse
   UDP 4-tuples for multiple proxied connections, and adds a mode of
   proxying in which QUIC short header packets can be forwarded and
   transformed through a HTTP/3 proxy rather than being fully re-
   encapsulated and re-encrypted.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-masque-quic-proxy-07"/>
        </reference>
        <reference anchor="RFC2474">
          <front>
            <title>Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers</title>
            <author fullname="K. Nichols" initials="K." surname="Nichols"/>
            <author fullname="S. Blake" initials="S." surname="Blake"/>
            <author fullname="F. Baker" initials="F." surname="Baker"/>
            <author fullname="D. Black" initials="D." surname="Black"/>
            <date month="December" year="1998"/>
            <abstract>
              <t>This document defines the IP header field, called the DS (for differentiated services) field. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2474"/>
          <seriesInfo name="DOI" value="10.17487/RFC2474"/>
        </reference>
        <reference anchor="RFC3168">
          <front>
            <title>The Addition of Explicit Congestion Notification (ECN) to IP</title>
            <author fullname="K. Ramakrishnan" initials="K." surname="Ramakrishnan"/>
            <author fullname="S. Floyd" initials="S." surname="Floyd"/>
            <author fullname="D. Black" initials="D." surname="Black"/>
            <date month="September" year="2001"/>
            <abstract>
              <t>This memo specifies the incorporation of ECN (Explicit Congestion Notification) to TCP and IP, including ECN's use of two bits in the IP header. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3168"/>
          <seriesInfo name="DOI" value="10.17487/RFC3168"/>
        </reference>
        <reference anchor="RFC6040">
          <front>
            <title>Tunnelling of Explicit Congestion Notification</title>
            <author fullname="B. Briscoe" initials="B." surname="Briscoe"/>
            <date month="November" year="2010"/>
            <abstract>
              <t>This document redefines how the explicit congestion notification (ECN) field of the IP header should be constructed on entry to and exit from any IP-in-IP tunnel. On encapsulation, it updates RFC 3168 to bring all IP-in-IP tunnels (v4 or v6) into line with RFC 4301 IPsec ECN processing. On decapsulation, it updates both RFC 3168 and RFC 4301 to add new behaviours for previously unused combinations of inner and outer headers. The new rules ensure the ECN field is correctly propagated across a tunnel whether it is used to signal one or two severity levels of congestion; whereas before, only one severity level was supported. Tunnel endpoints can be updated in any order without affecting pre-existing uses of the ECN field, thus ensuring backward compatibility. Nonetheless, operators wanting to support two severity levels (e.g., for pre-congestion notification -- PCN) can require compliance with this new specification. A thorough analysis of the reasoning for these changes and the implications is included. In the unlikely event that the new rules do not meet a specific need, RFC 4774 gives guidance on designing alternate ECN semantics, and this document extends that to include tunnelling issues. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6040"/>
          <seriesInfo name="DOI" value="10.17487/RFC6040"/>
        </reference>
        <reference anchor="RFC9000">
          <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="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="RFC9298">
          <front>
            <title>Proxying UDP in HTTP</title>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document describes how to proxy UDP in HTTP, similar to how the HTTP CONNECT method allows proxying TCP in HTTP. More specifically, this document defines a protocol that allows an HTTP client to create a tunnel for UDP communications through an HTTP server that acts as a proxy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9298"/>
          <seriesInfo name="DOI" value="10.17487/RFC9298"/>
        </reference>
        <reference anchor="RFC9297">
          <front>
            <title>HTTP Datagrams and the Capsule Protocol</title>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <author fullname="L. Pardue" initials="L." surname="Pardue"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document describes HTTP Datagrams, a convention for conveying multiplexed, potentially unreliable datagrams inside an HTTP connection.</t>
              <t>In HTTP/3, HTTP Datagrams can be sent unreliably using the QUIC DATAGRAM extension. When the QUIC DATAGRAM frame is unavailable or undesirable, HTTP Datagrams can be sent using the Capsule Protocol, which is a more general convention for conveying data in HTTP connections.</t>
              <t>HTTP Datagrams and the Capsule Protocol are intended for use by HTTP extensions, not applications.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9297"/>
          <seriesInfo name="DOI" value="10.17487/RFC9297"/>
        </reference>
        <reference anchor="RFC9331">
          <front>
            <title>The Explicit Congestion Notification (ECN) Protocol for Low Latency, Low Loss, and Scalable Throughput (L4S)</title>
            <author fullname="K. De Schepper" initials="K." surname="De Schepper"/>
            <author fullname="B. Briscoe" initials="B." role="editor" surname="Briscoe"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>This specification defines the protocol to be used for a new network service called Low Latency, Low Loss, and Scalable throughput (L4S). L4S uses an Explicit Congestion Notification (ECN) scheme at the IP layer that is similar to the original (or 'Classic') ECN approach, except as specified within. L4S uses 'Scalable' congestion control, which induces much more frequent control signals from the network, and it responds to them with much more fine-grained adjustments so that very low (typically sub-millisecond on average) and consistently low queuing delay becomes possible for L4S traffic without compromising link utilization. Thus, even capacity-seeking (TCP-like) traffic can have high bandwidth and very low delay at the same time, even during periods of high traffic load.</t>
              <t>The L4S identifier defined in this document distinguishes L4S from 'Classic' (e.g., TCP-Reno-friendly) traffic. Then, network bottlenecks can be incrementally modified to distinguish and isolate existing traffic that still follows the Classic behaviour, to prevent it from degrading the low queuing delay and low loss of L4S traffic. This Experimental specification defines the rules that L4S transports and network elements need to follow, with the intention that L4S flows neither harm each other's performance nor that of Classic traffic. It also suggests open questions to be investigated during experimentation. Examples of new Active Queue Management (AQM) marking algorithms and new transports (whether TCP-like or real time) are specified separately.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9331"/>
          <seriesInfo name="DOI" value="10.17487/RFC9331"/>
        </reference>
        <reference anchor="RFC9599">
          <front>
            <title>Guidelines for Adding Congestion Notification to Protocols that Encapsulate IP</title>
            <author fullname="B. Briscoe" initials="B." surname="Briscoe"/>
            <author fullname="J. Kaippallimalil" initials="J." surname="Kaippallimalil"/>
            <date month="August" year="2024"/>
            <abstract>
              <t>The purpose of this document is to guide the design of congestion notification in any lower-layer or tunnelling protocol that encapsulates IP. The aim is for explicit congestion signals to propagate consistently from lower-layer protocols into IP. Then, the IP internetwork layer can act as a portability layer to carry congestion notification from non-IP-aware congested nodes up to the transport layer (L4). Specifications that follow these guidelines, whether produced by the IETF or other standards bodies, should assure interworking among IP-layer and lower-layer congestion notification mechanisms. This document is included in BCP 89 and updates the single paragraph of advice to subnetwork designers about Explicit Congestion Notification (ECN) in Section 13 of RFC 3819 by replacing it with a reference to this document.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="89"/>
          <seriesInfo name="RFC" value="9599"/>
          <seriesInfo name="DOI" value="10.17487/RFC9599"/>
        </reference>
        <reference anchor="RFC9601">
          <front>
            <title>Propagating Explicit Congestion Notification across IP Tunnel Headers Separated by a Shim</title>
            <author fullname="B. Briscoe" initials="B." surname="Briscoe"/>
            <date month="August" year="2024"/>
            <abstract>
              <t>RFC 6040 on "Tunnelling of Explicit Congestion Notification" made the rules for propagation of Explicit Congestion Notification (ECN) consistent for all forms of IP-in-IP tunnel. This specification updates RFC 6040 to clarify that its scope includes tunnels where two IP headers are separated by at least one shim header that is not sufficient on its own for wide-area packet forwarding. It surveys widely deployed IP tunnelling protocols that use such shim headers and updates the specifications of those that do not mention ECN propagation (including RFCs 2661, 3931, 2784, 4380 and 7450, which specify L2TPv2, L2TPv3, Generic Routing Encapsulation (GRE), Teredo, and Automatic Multicast Tunneling (AMT), respectively). This specification also updates RFC 6040 with configuration requirements needed to make any legacy tunnel ingress safe.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9601"/>
          <seriesInfo name="DOI" value="10.17487/RFC9601"/>
        </reference>
        <reference anchor="RFC9651">
          <front>
            <title>Structured Field Values for HTTP</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="P-H. Kamp" surname="P-H. Kamp"/>
            <date month="September" year="2024"/>
            <abstract>
              <t>This document describes a set of data types and associated algorithms that are intended to make it easier and safer to define and handle HTTP header and trailer fields, known as "Structured Fields", "Structured Headers", or "Structured Trailers". It is intended for use by specifications of new HTTP fields.</t>
              <t>This document obsoletes RFC 8941.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9651"/>
          <seriesInfo name="DOI" value="10.17487/RFC9651"/>
        </reference>
        <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="RFC2475">
          <front>
            <title>An Architecture for Differentiated Services</title>
            <author fullname="S. Blake" initials="S." surname="Blake"/>
            <author fullname="D. Black" initials="D." surname="Black"/>
            <author fullname="M. Carlson" initials="M." surname="Carlson"/>
            <author fullname="E. Davies" initials="E." surname="Davies"/>
            <author fullname="Z. Wang" initials="Z." surname="Wang"/>
            <author fullname="W. Weiss" initials="W." surname="Weiss"/>
            <date month="December" year="1998"/>
            <abstract>
              <t>This document defines an architecture for implementing scalable service differentiation in the Internet. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2475"/>
          <seriesInfo name="DOI" value="10.17487/RFC2475"/>
        </reference>
        <reference anchor="RFC8311">
          <front>
            <title>Relaxing Restrictions on Explicit Congestion Notification (ECN) Experimentation</title>
            <author fullname="D. Black" initials="D." surname="Black"/>
            <date month="January" year="2018"/>
            <abstract>
              <t>This memo updates RFC 3168, which specifies Explicit Congestion Notification (ECN) as an alternative to packet drops for indicating network congestion to endpoints. It relaxes restrictions in RFC 3168 that hinder experimentation towards benefits beyond just removal of loss. This memo summarizes the anticipated areas of experimentation and updates RFC 3168 to enable experimentation in these areas. An Experimental RFC in the IETF document stream is required to take advantage of any of these enabling updates. In addition, this memo makes related updates to the ECN specifications for RTP in RFC 6679 and for the Datagram Congestion Control Protocol (DCCP) in RFCs 4341, 4342, and 5622. This memo also records the conclusion of the ECN nonce experiment in RFC 3540 and provides the rationale for reclassification of RFC 3540 from Experimental to Historic; this reclassification enables new experimental use of the ECT(1) codepoint.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8311"/>
          <seriesInfo name="DOI" value="10.17487/RFC8311"/>
        </reference>
        <reference anchor="RFC9330">
          <front>
            <title>Low Latency, Low Loss, and Scalable Throughput (L4S) Internet Service: Architecture</title>
            <author fullname="B. Briscoe" initials="B." role="editor" surname="Briscoe"/>
            <author fullname="K. De Schepper" initials="K." surname="De Schepper"/>
            <author fullname="M. Bagnulo" initials="M." surname="Bagnulo"/>
            <author fullname="G. White" initials="G." surname="White"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>This document describes the L4S architecture, which enables Internet applications to achieve low queuing latency, low congestion loss, and scalable throughput control. L4S is based on the insight that the root cause of queuing delay is in the capacity-seeking congestion controllers of senders, not in the queue itself. With the L4S architecture, all Internet applications could (but do not have to) transition away from congestion control algorithms that cause substantial queuing delay and instead adopt a new class of congestion controls that can seek capacity with very little queuing. These are aided by a modified form of Explicit Congestion Notification (ECN) from the network. With this new architecture, applications can have both low latency and high throughput.</t>
              <t>The architecture primarily concerns incremental deployment. It defines mechanisms that allow the new class of L4S congestion controls to coexist with 'Classic' congestion controls in a shared network. The aim is for L4S latency and throughput to be usually much better (and rarely worse) while typically not impacting Classic performance.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9330"/>
          <seriesInfo name="DOI" value="10.17487/RFC9330"/>
        </reference>
        <reference anchor="RFC9484">
          <front>
            <title>Proxying IP in HTTP</title>
            <author fullname="T. Pauly" initials="T." role="editor" surname="Pauly"/>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <author fullname="A. Chernyakhovsky" initials="A." surname="Chernyakhovsky"/>
            <author fullname="M. Kühlewind" initials="M." surname="Kühlewind"/>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <date month="October" year="2023"/>
            <abstract>
              <t>This document describes how to proxy IP packets in HTTP. This protocol is similar to UDP proxying in HTTP but allows transmitting arbitrary IP packets. More specifically, this document defines a protocol that allows an HTTP client to create an IP tunnel through an HTTP server that acts as an IP proxy. This document updates RFC 9298.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9484"/>
          <seriesInfo name="DOI" value="10.17487/RFC9484"/>
        </reference>
        <reference anchor="I-D.schinazi-masque-connect-udp-ecn">
          <front>
            <title>An ECN Extension to CONNECT-UDP</title>
            <author fullname="David Schinazi" initials="D." surname="Schinazi">
              <organization>Google LLC</organization>
            </author>
            <date day="28" month="March" year="2022"/>
            <abstract>
              <t>   CONNECT-UDP allows proxying UDP packets over HTTP.  This document
   describes an extension to CONNECT-UDP that allows conveying ECN
   information on proxied UDP packets.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Source for this draft and an issue tracker can be found at
   https://github.com/DavidSchinazi/draft-connect-udp-ecn.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-schinazi-masque-connect-udp-ecn-02"/>
        </reference>
        <reference anchor="I-D.ietf-quic-multipath">
          <front>
            <title>Managing multiple paths for a QUIC connection</title>
            <author fullname="Yanmei Liu" initials="Y." surname="Liu">
              <organization>Alibaba Inc.</organization>
            </author>
            <author fullname="Yunfei Ma" initials="Y." surname="Ma">
              <organization>Uber Technologies Inc.</organization>
            </author>
            <author fullname="Quentin De Coninck" initials="Q." surname="De Coninck">
              <organization>University of Mons (UMONS)</organization>
            </author>
            <author fullname="Olivier Bonaventure" initials="O." surname="Bonaventure">
              <organization>UCLouvain and Tessares</organization>
            </author>
            <author fullname="Christian Huitema" initials="C." surname="Huitema">
              <organization>Private Octopus Inc.</organization>
            </author>
            <author fullname="Mirja Kühlewind" initials="M." surname="Kühlewind">
              <organization>Ericsson</organization>
            </author>
            <date day="20" month="October" year="2025"/>
            <abstract>
              <t>   This document specifies a multipath extension for the QUIC protocol
   to enable the simultaneous usage of multiple paths for a single
   connection.  It proposes a standard way to create, delete, and manage
   paths using identifiers.  It does not specify address discovery or
   management, nor how applications using QUIC schedule traffic over
   multiple paths.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-quic-multipath-17"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
xxsmXdj/fOYzahT+4Geq8DtZ4n8AUeMFb7NRAAA=

-->

</rfc>
