<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.39 (Ruby 3.2.2) -->
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-wing-cidfi-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.5 -->
  <front>
    <title abbrev="CIDFI">CID Flow Indicator (CIDFI)</title>
    <seriesInfo name="Internet-Draft" value="draft-wing-cidfi-00"/>
    <author fullname="Dan Wing">
      <organization abbrev="Cloud Software Group">Cloud Software Group, Inc.</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>danwing@gmail.com</email>
      </address>
    </author>
    <author fullname="Tirumaleswar Reddy">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>Bangalore</city>
          <region>Karnataka</region>
          <country>India</country>
        </postal>
        <email>kondtir@gmail.com</email>
      </address>
    </author>
    <author fullname="Mohamed Boucadair">
      <organization>Orange</organization>
      <address>
        <postal>
          <street>Rennes</street>
          <code>35000</code>
          <country>France</country>
        </postal>
        <email>mohamed.boucadair@orange.com</email>
      </address>
    </author>
    <date year="2023" month="August" day="17"/>
    <area>Network</area>
    <workgroup>Network Working Group</workgroup>
    <keyword>user experience</keyword>
    <keyword>bandwidth</keyword>
    <keyword>priority</keyword>
    <keyword>enriched feedback</keyword>
    <keyword>media streaming</keyword>
    <keyword>realtime media</keyword>
    <keyword>QoS</keyword>
    <keyword>5G</keyword>
    <keyword>Wi-Fi</keyword>
    <keyword>WiFi</keyword>
    <keyword>DTLS Connection Identifier</keyword>
    <keyword>DTLS-SRTP</keyword>
    <keyword>QUIC Connection Identifier</keyword>
    <keyword>QUIC</keyword>
    <abstract>
      <?line 115?>

<t>Conveying metadata about network conditions and metadata about
individual packets can improve the user experience especially on
wireless networks which suffer bandwidth and delay variability.</t>
      <t>This document describes how clients and servers can cooperate with
network elements so their QUIC and DTLS streams can be augmented with
information about network conditions and packet importance.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://danwing.github.io/cidfi/draft-wing-cidfi.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-wing-cidfi/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        ART Area Working Group Working Group mailing list (<eref target="mailto:art@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/art/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/art/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/danwing/cidfi"/>.</t>
    </note>
  </front>
  <middle>
    <?line 125?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Senders rely on ramping up their transmission rate until they encounter
packet loss or see <xref target="ECN"/> indicating they should level off or
slow down their transmission rate.  This feedback takes time and contributes
to poor user experience when the sender over- or under-shoots the actual
available bandwidth, especially if the sender changes fidelity of the
content (e.g., improves video quality which consumes more bandwidth which
then gets dropped by the network).</t>
      <t>Due to network constraints a network element will need to drop or even
prioritize a packet ahead of other packets.  The decision of which packet
to drop or prioritize is improved if the network element knows the
importance of the packet.  Metadata carried in each packet can influence
that decision to improve the user experience.</t>
      <t>This document defines CIDFI (pronounced "sid fye") which is a system
of several protocols that allow communicating about a <xref target="QUIC"/>
connection or a DTLS connection <xref target="DTLS-CID"/> from the network to the
server and the server to the network.  The information exchanged
allows the server to know about network conditions and allows the
server to signal packet importance.</t>
      <t><xref target="fig-arch"/> provides a sample network diagram of a CIDFI system showing two
bandwidth-constrained networks (or links) depicted by "B" and
CIDFI-aware devices immediately upstream of those links, and another
bandwidth-constrained link between a smartphone handset and its Radio
Access Newwork (RAN).  This diagram shows the same protocol and same mechanism
can operate with or without 5G, and can operate with different administrative
domains such as Wi-Fi, an ISP edge router, and a 5G RAN.</t>
      <figure anchor="fig-arch">
        <name>Network Diagram</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="320" width="528" viewBox="0 0 528 320" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,48 L 8,112" fill="none" stroke="black"/>
              <path d="M 8,176 L 8,256" fill="none" stroke="black"/>
              <path d="M 64,48 L 64,112" fill="none" stroke="black"/>
              <path d="M 88,176 L 88,256" fill="none" stroke="black"/>
              <path d="M 96,48 L 96,80" fill="none" stroke="black"/>
              <path d="M 96,112 L 96,144" fill="none" stroke="black"/>
              <path d="M 152,48 L 152,80" fill="none" stroke="black"/>
              <path d="M 152,112 L 152,144" fill="none" stroke="black"/>
              <path d="M 168,32 L 168,216" fill="none" stroke="black"/>
              <path d="M 168,232 L 168,304" fill="none" stroke="black"/>
              <path d="M 184,48 L 184,80" fill="none" stroke="black"/>
              <path d="M 184,112 L 184,128" fill="none" stroke="black"/>
              <path d="M 184,176 L 184,256" fill="none" stroke="black"/>
              <path d="M 240,48 L 240,80" fill="none" stroke="black"/>
              <path d="M 240,112 L 240,128" fill="none" stroke="black"/>
              <path d="M 240,176 L 240,256" fill="none" stroke="black"/>
              <path d="M 264,208 L 264,240" fill="none" stroke="black"/>
              <path d="M 320,208 L 320,240" fill="none" stroke="black"/>
              <path d="M 344,32 L 344,88" fill="none" stroke="black"/>
              <path d="M 344,104 L 344,216" fill="none" stroke="black"/>
              <path d="M 344,232 L 344,304" fill="none" stroke="black"/>
              <path d="M 360,144 L 360,176" fill="none" stroke="black"/>
              <path d="M 376,104 L 376,144" fill="none" stroke="black"/>
              <path d="M 376,176 L 376,224" fill="none" stroke="black"/>
              <path d="M 416,144 L 416,176" fill="none" stroke="black"/>
              <path d="M 432,32 L 432,80" fill="none" stroke="black"/>
              <path d="M 432,112 L 432,152" fill="none" stroke="black"/>
              <path d="M 432,168 L 432,304" fill="none" stroke="black"/>
              <path d="M 448,96 L 448,208" fill="none" stroke="black"/>
              <path d="M 520,112 L 520,208" fill="none" stroke="black"/>
              <path d="M 8,48 L 64,48" fill="none" stroke="black"/>
              <path d="M 96,48 L 152,48" fill="none" stroke="black"/>
              <path d="M 184,48 L 240,48" fill="none" stroke="black"/>
              <path d="M 272,80 L 320,80" fill="none" stroke="black"/>
              <path d="M 72,96 L 88,96" fill="none" stroke="black"/>
              <path d="M 256,96 L 280,96" fill="none" stroke="black"/>
              <path d="M 336,96 L 392,96" fill="none" stroke="black"/>
              <path d="M 8,112 L 64,112" fill="none" stroke="black"/>
              <path d="M 272,112 L 320,112" fill="none" stroke="black"/>
              <path d="M 448,112 L 520,112" fill="none" stroke="black"/>
              <path d="M 184,128 L 240,128" fill="none" stroke="black"/>
              <path d="M 96,144 L 152,144" fill="none" stroke="black"/>
              <path d="M 360,144 L 416,144" fill="none" stroke="black"/>
              <path d="M 416,160 L 448,160" fill="none" stroke="black"/>
              <path d="M 8,176 L 88,176" fill="none" stroke="black"/>
              <path d="M 184,176 L 240,176" fill="none" stroke="black"/>
              <path d="M 360,176 L 416,176" fill="none" stroke="black"/>
              <path d="M 264,208 L 320,208" fill="none" stroke="black"/>
              <path d="M 448,208 L 520,208" fill="none" stroke="black"/>
              <path d="M 96,224 L 128,224" fill="none" stroke="black"/>
              <path d="M 144,224 L 184,224" fill="none" stroke="black"/>
              <path d="M 240,224 L 264,224" fill="none" stroke="black"/>
              <path d="M 320,224 L 376,224" fill="none" stroke="black"/>
              <path d="M 264,240 L 320,240" fill="none" stroke="black"/>
              <path d="M 8,256 L 88,256" fill="none" stroke="black"/>
              <path d="M 184,256 L 240,256" fill="none" stroke="black"/>
              <path d="M 272,80 C 263.16936,80 256,87.16936 256,96" fill="none" stroke="black"/>
              <path d="M 272,112 C 263.16936,112 256,104.83064 256,96" fill="none" stroke="black"/>
              <g class="text">
                <text x="36" y="68">CIDFI-</text>
                <text x="124" y="68">CIDFI-</text>
                <text x="212" y="68">CIDFI-</text>
                <text x="32" y="84">aware</text>
                <text x="120" y="84">aware</text>
                <text x="208" y="84">aware</text>
                <text x="36" y="100">client</text>
                <text x="124" y="100">B-+Wi-Fi</text>
                <text x="204" y="100">-B-+edge</text>
                <text x="308" y="100">router</text>
                <text x="124" y="116">access</text>
                <text x="212" y="116">router</text>
                <text x="120" y="132">point</text>
                <text x="484" y="132">CIDFI-</text>
                <text x="480" y="148">aware</text>
                <text x="388" y="164">router</text>
                <text x="476" y="164">QUIC</text>
                <text x="508" y="164">or</text>
                <text x="476" y="180">DTLS</text>
                <text x="44" y="196">CIDFI-</text>
                <text x="212" y="196">CIDFI-</text>
                <text x="484" y="196">server</text>
                <text x="40" y="212">aware</text>
                <text x="208" y="212">aware</text>
                <text x="44" y="228">client</text>
                <text x="136" y="228">B</text>
                <text x="200" y="228">RAN</text>
                <text x="292" y="228">router</text>
                <text x="48" y="244">(handset)</text>
                <text x="212" y="244">router</text>
                <text x="384" y="292">transit</text>
                <text x="476" y="292">server</text>
                <text x="44" y="308">user</text>
                <text x="96" y="308">network</text>
                <text x="216" y="308">ISP</text>
                <text x="264" y="308">network</text>
                <text x="384" y="308">network</text>
                <text x="480" y="308">network</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
                    |                     |          |
+------+   +------+ | +------+            |          |
|CIDFI-|   |CIDFI-| | |CIDFI-|            |          |
|aware |   |aware | | |aware |  +------+  |          |
|client|-+-B-+Wi-Fi +-B-+edge  +--+router+------+      |
+------+   |access| | |router|  +------+  |   |      | +--------+
           |point | | +------+            |   |      | | CIDFI- |
           +------+ |                     | +-+----+ | | aware  |
                    |                     | |router+---+ QUIC or|
+---------+         | +------+            | +-+----+ | | DTLS   |
| CIDFI-  |         | |CIDFI-|            |   |      | | server |
| aware   |         | |aware |  +------+  |   |      | +--------+
| client  +-----B-----+RAN   +--+router+------+      |
|(handset)|         | |router|  +------+  |          |
+---------+         | +------+            |          |
                    |                     |          |
                    |                     | transit  |  server
   user network     |    ISP network      | network  |  network
]]></artwork>
        </artset>
      </figure>
      <t>The CIDFI-aware client establishes a TLS connection with the
CIDFI-aware network elements (Wi-Fi access point, edge router, and RAN
router in the above diagram).  Over this connection it receives
network performance information and it sends mapping of (QUIC or DTLS) Destination CIDs
to packet importance.</t>
      <t>The design creates new state in the CIDFI-aware network elements for
mapping from the QUIC Destination CID or DTLS Destination CID to the
packet importance, bandwidth information for that connection towards
the client, and for the TLS-encrypted communication with the client.</t>
      <t>In <xref target="network-to-server"/> this document describes network-to-server signaling
similar to the use-case described in <xref section="2" sectionFormat="of" target="I-D.joras-sadcdn"/>, with metadata
relaying through the client.</t>
      <t>In <xref target="server-to-network"/> this document describes server-to-network
metadata signaling similar to the use-cases described in <xref section="3" sectionFormat="of" target="I-D.joras-sadcdn"/>.  The server-to-network metadata signaling can
also benefit <xref target="I-D.ietf-avtcore-rtp-over-quic"/> and <xref target="DTLS-CID"/>.</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?>

<dl>
        <dt>CID:</dt>
        <dd>
          <t>Connection Identifier used by <xref target="QUIC"/> or by <xref target="DTLS-CID"/>.</t>
        </dd>
        <dt>CNE:</dt>
        <dd>
          <t>CIDFI-aware Network Element, a network element that
supports this CIDFI specification.  This is usually a router.</t>
        </dd>
      </dl>
    </section>
    <section anchor="design-goals">
      <name>Design Goals</name>
      <t>This section highlights the design goals of this specification.</t>
      <dl>
        <dt>Client Authorization:</dt>
        <dd>
          <t>The client authorizes each CIDFI-aware network element (CNE) to participate in CIDFI
for each QUIC flow or each DTLS flow.</t>
        </dd>
        <dt>Same Server:</dt>
        <dd>
          <t>Communication about the network metadata arrives over the primary QUIC or
DTLS connection which ensures it arrives at the same server even through
local network translators (NAT) or server-side load balancers.</t>
        </dd>
        <dt>Privacy:</dt>
        <dd>
          <t>The packet importance is only known by CIDFI-aware network
elements (CNE).  The network performance data is protected by TLS.</t>
        </dd>
        <dt>Integrity:</dt>
        <dd>
          <t>The packet importance is mapped to Destination CIDs which are
integrity protected by QUIC or DTLS itself and cannot be modified by on-path
network elements.  The communication between client, server, and
network element are protected by TLS.</t>
        </dd>
        <dt>Internet Survival:</dt>
        <dd>
          <t>The QUIC communications and DTLS communications between the client
and server are not changed so CIDFI is expected to work wherever QUIC
(or DTLS) work.  The elements involved are only the QUIC (or DTLS)
client and server and with the participating CIDFI network elements.</t>
        </dd>
      </dl>
    </section>
    <section anchor="network-preparation-dns-svcb-records">
      <name>Network Preparation: DNS SVCB Records</name>
      <t>This document defines a new DNS Service Binding "cidfi-aware" in
<xref target="iana-svcb"/> and a new Special-Use Domain Name "cifi.arpa" in
<xref target="iana-sudn"/>.</t>
      <t>The local network is configured to respond to DNS SVCB
<xref target="I-D.ietf-dnsop-svcb-https"/> queries with ServiceMode (<xref section="2.4.3" sectionFormat="of" target="I-D.ietf-dnsop-svcb-https"/>) for _cidfi-aware.cidfi.arpa with
the DNS names of that network's and upstream network's CIDFI-aware
network elements (CNEs).  If upstream networks also support CIDFI (e.g., the
ISP network) those SVCB records are aggregated into the local DNS
server's response by the local network's recursive DNS resolvers.  For
example, a query for _cidfi-aware.cidfi.arpa might return two answers
for the two CNE on the local network, one belonging
to the local ISP (exmaple.net) and the other belonging to the local
Wi-Fi network (example.com),</t>
      <artwork><![CDATA[
_cidfi-aware.cidfi.arpa. 7200 IN SVCB 0 service-cidfi.example.net. (
    alpn=h3 cidfipathauth=/path-auth-query {?cidfi}
    cidfimetadata=/cidfi-metadata
    )
_cidfi-aware.cidfi.arpa. 7200 IN SVCB 0 wifi.example.com. (
    alpn=h3 cidfipathauth=/path-auth-query {?cidfi}
    cidfimetadata=/cidfi-metadata
    )
]]></artwork>
      <t>When multihoming, the multihome-capable CPE aggregates all upstream
networks' _cidfi-aware.cidfi.arpa responses into the response sent to
its locally-connected clients.</t>
    </section>
    <section anchor="attach">
      <name>Client Operation on Network Attach or Topology Change</name>
      <t>On initial network attach topology change (see <xref target="topology"/>),
the client learns if the network supports CIDFI (<xref target="discovery"/>) and
authorizes those network elements (<xref target="client-authorizes"/>).</t>
      <section anchor="discovery">
        <name>Client Learns Local Network Supports CIDFI</name>
        <t>The client determines if the local network provides CIDFI service by
issuing a query to the local DNS server for
_cidfi-aware.cidfi.arpa. with the SVCB resource record type (64)
<xref target="I-D.ietf-dnsop-svcb-https"/>.  If this succeeds, processing skips to
<xref target="client-authorizes"/>.</t>
        <t>If discovery failed it indicates the local network does not support
CIDFI and processing stops.</t>
      </section>
      <section anchor="client-authorizes">
        <name>Client Authorizes CIDFI Network Elements</name>
        <t>The SVCB response from the previous step in <xref target="discovery"/> will contain one or more
CNE.</t>
        <t>The client authorizes each of the CNE using
its local policy.  This policy is implementation specific.  An example
implementation might have the user authorize their ISP's CIDFI server
(e.g., allow cidfi.example.net if the user's ISP is configured as
example.net).  Similarly, if none of the CNE are recognized the client
might silently avoid using CIDFI on that network.</t>
        <t>After authorizing that subset of CNE, the
client makes a new HTTPS connection to each of those CNE
and performs PKIX validation of their certificates.
The client <bcp14>MAY</bcp14> have to authenticate itself to the CIDFI network
element.</t>
        <t>The client then obtains the CIDFI nonce and CIDFI HMAC
secret from each network element used later in <xref target="ownership"/> to prove
the client owns its UDP 4-tuple.</t>
        <t>For discussion purposes, JSON is shown below to give a flavor of the
data the client retrieves from the CIDFI network element.  The authors
anticipate using a more efficient encoding such as <xref target="CBOR"/>.</t>
        <artwork><![CDATA[
  {"cidfi-path-authentication":[
    {"nonce":"ddqwohxGZysgy0BySNh7sNHV5IH9RbE7rqXmg9wb9Npo",
     "hmac-secret":"jLNsCvuU59mt3F4/ePD9jbZ932TfsLSOP2Nx3XnUqc8v"}]}
]]></artwork>
      </section>
    </section>
    <section anchor="client-operation-on-each-connection-to-a-quic-server">
      <name>Client Operation on Each Connection to a QUIC Server</name>
      <t>When a QUIC client or {DTLS-CID} client connects to a QUIC or {DTLS-CID} server, the client:</t>
      <ol spacing="normal" type="1"><li>learns the server supports CIDFI
and obtains its mapping of transmitted destinations CID to metadata.</li>
        <li>proves ownership of its UDP 4-tuple to
the on-path network elements.</li>
        <li>performs initial metadata exchange
with the CIDFI network element and server, and server and network element.</li>
        <li>continually updates the server and the CIDFI network element whenever
new information is received from the other party.</li>
      </ol>
      <t>These steps are described in more detail below.</t>
      <ul empty="true">
        <li>
          <t>Note: the client is also a sender, and can also perform all these
functions in its direction.  This functionality will be expanded in
later versions of this document.  For example, a mobile device
connected to Wi-Fi with 5G backhaul might be running an interactive
audio/video application and want to indicate to its internal Wi-Fi
driver and to the 5G modem its mapping from its transmitted QUIC
Destination CID to per-packet metadata and the application can benefit
from receiving network performance metrics.</t>
        </li>
      </ul>
      <section anchor="server-supports-cidfi">
        <name>Client Learns Server Supports CIDFI</name>
        <t>On initial connection to a QUIC server, the client includes a new QUIC
transport parameter CIDFI (<xref target="iana-tp"/>) which is remembered for 0-RTT.</t>
        <t>If the server does not indicate CIDFI support, CIDFI processing stops.</t>
        <t>If the server indicates CIDFI support, then the server creates a
new Server-Initiated, Bidirectional QUIC stream which is dedicated to
CIDFI communication.  This stream number is communicated in the
CIDFI transport response during the QUIC handshake.  TODO: specify
how CIDFI stream number is communicated to client.</t>
        <t>The QUIC client and QUIC server exchange CIDFI information over
this CIDFI-dedicated stream as described in <xref target="initial-metadata-exchange"/>.</t>
      </section>
      <section anchor="ownership">
        <name>Client Proves Ownership of its UDP 4-Tuple</name>
        <t>To ensure the client messages to the CNE
pertain only to the client's own UDP 4-tuple, the client sends the
CIDFI nonce protected by the HMAC secret it obtained from
<xref target="client-authorizes"/> over the QUIC UDP 4-tuple it is using with the
QUIC server.  The ability to transmit that packet on the same UDP
4-tuple as the QUIC connection indicates ownership of that IP address
and UDP port.  The nonce and HMAC are sent in a <xref target="STUN"/> indication (STUN
class of 0b01) containing one or more CIDFI-NONCE attributes
(<xref target="iana-stun"/>).  If there are multiple CNE
the single STUN indication contains a CIDFI-NONCE attribute from each of
them.  This message is discarded by the QUIC server.</t>
        <t>The figure below shows a summarized message flow obtaining
the nonce and HMAC secret from the CNE then later
sending the nonce and HMAC in the same UDP 4-tuple towards the QUIC server:</t>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="416" width="512" viewBox="0 0 512 416" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 24,64 L 24,144" fill="none" stroke="black"/>
              <path d="M 24,176 L 24,400" fill="none" stroke="black"/>
              <path d="M 320,96 L 320,144" fill="none" stroke="black"/>
              <path d="M 320,248 L 320,272" fill="none" stroke="black"/>
              <path d="M 320,376 L 320,400" fill="none" stroke="black"/>
              <path d="M 472,64 L 472,144" fill="none" stroke="black"/>
              <path d="M 472,176 L 472,240" fill="none" stroke="black"/>
              <path d="M 472,272 L 472,400" fill="none" stroke="black"/>
              <path d="M 24,96 L 312,96" fill="none" stroke="black"/>
              <path d="M 32,128 L 320,128" fill="none" stroke="black"/>
              <path d="M 24,208 L 464,208" fill="none" stroke="black"/>
              <path d="M 24,240 L 464,240" fill="none" stroke="black"/>
              <path d="M 24,336 L 312,336" fill="none" stroke="black"/>
              <path d="M 32,368 L 472,368" fill="none" stroke="black"/>
              <path d="M 32,400 L 320,400" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="472,240 460,234.4 460,245.6" fill="black" transform="rotate(0,464,240)"/>
              <polygon class="arrowhead" points="472,208 460,202.4 460,213.6" fill="black" transform="rotate(0,464,208)"/>
              <polygon class="arrowhead" points="320,336 308,330.4 308,341.6" fill="black" transform="rotate(0,312,336)"/>
              <polygon class="arrowhead" points="320,96 308,90.4 308,101.6" fill="black" transform="rotate(0,312,96)"/>
              <polygon class="arrowhead" points="40,400 28,394.4 28,405.6" fill="black" transform="rotate(180,32,400)"/>
              <polygon class="arrowhead" points="40,368 28,362.4 28,373.6" fill="black" transform="rotate(180,32,368)"/>
              <polygon class="arrowhead" points="40,128 28,122.4 28,133.6" fill="black" transform="rotate(180,32,128)"/>
              <g class="text">
                <text x="28" y="36">QUIC</text>
                <text x="312" y="36">CIDFI-aware</text>
                <text x="468" y="36">QUIC</text>
                <text x="28" y="52">client</text>
                <text x="284" y="52">edge</text>
                <text x="332" y="52">router</text>
                <text x="468" y="52">server</text>
                <text x="320" y="68">|</text>
                <text x="68" y="84">HTTPS:</text>
                <text x="124" y="84">Enroll</text>
                <text x="176" y="84">CIDFI</text>
                <text x="228" y="84">router</text>
                <text x="268" y="84">to</text>
                <text x="320" y="84">partipate</text>
                <text x="68" y="116">HTTPS:</text>
                <text x="112" y="116">Ok.</text>
                <text x="184" y="116">nonce=12345</text>
                <text x="24" y="164">:</text>
                <text x="320" y="164">:</text>
                <text x="472" y="164">:</text>
                <text x="320" y="180">|</text>
                <text x="60" y="196">QUIC</text>
                <text x="116" y="196">Initial,</text>
                <text x="192" y="196">transport</text>
                <text x="296" y="196">parameter=CIDFI</text>
                <text x="60" y="228">STUN</text>
                <text x="128" y="228">Indication,</text>
                <text x="228" y="228">nonce=12345,</text>
                <text x="324" y="228">hmac=e8FEc</text>
                <text x="472" y="260">discarded</text>
                <text x="196" y="292">"I</text>
                <text x="224" y="292">saw</text>
                <text x="252" y="292">my</text>
                <text x="292" y="292">nonce,</text>
                <text x="340" y="292">HMAC</text>
                <text x="372" y="292">is</text>
                <text x="412" y="292">valid"</text>
                <text x="320" y="308">|</text>
                <text x="68" y="324">HTTPS:</text>
                <text x="116" y="324">"Map</text>
                <text x="172" y="324">DCID=xyz</text>
                <text x="220" y="324">as</text>
                <text x="252" y="324">high</text>
                <text x="320" y="324">importance"</text>
                <text x="320" y="340">|</text>
                <text x="60" y="356">QUIC</text>
                <text x="116" y="356">Initial,</text>
                <text x="192" y="356">transport</text>
                <text x="296" y="356">parameter=CIDFI</text>
                <text x="68" y="388">HTTPS:</text>
                <text x="108" y="388">Ok</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
 QUIC                            CIDFI-aware            QUIC
client                           edge router           server
  |                                    |                  |
  |  HTTPS: Enroll CIDFI router to partipate              |
  +----------------------------------->|                  |
  |  HTTPS: Ok.  nonce=12345           |                  |
  |<-----------------------------------+                  |
  |                                    |                  |
  :                                    :                  :
  |                                    |                  |
  |  QUIC Initial, transport parameter=CIDFI              |
  +------------------------------------------------------>|
  |  STUN Indication, nonce=12345, hmac=e8FEc             |
  +------------------------------------------------------>|
  |                                    |              discarded
  |                                    |                  |
  |                    "I saw my nonce, HMAC is valid"    |
  |                                    |                  |
  |  HTTPS: "Map DCID=xyz as high importance"             |
  +----------------------------------->|                  |
  |  QUIC Initial, transport parameter=CIDFI              |
  |<------------------------------------------------------+
  |  HTTPS: Ok                         |                  |
  |<-----------------------------------+                  |
]]></artwork>
        </artset>
        <t>Because multiple QUIC clients will use the same incoming Destination
CID on their own UDP 4-tuple, the STUN Indication message also allows
the CIDFI network element to distinguish which UDP 4-tuple belongs to
each CIDFI client.</t>
        <t>To reduce CIDFI set-up time the client STUN Indication <bcp14>MAY</bcp14> be sent at
the same time as the QUIC Initial packet, which is encouraged
if the client remembers the server supports CIDFI (0-RTT).</t>
        <t>To prevent replay attacks, the Nonce is usable only for authenticating
one UDP 4-tuple.  When the connection is migrated (<xref section="9" sectionFormat="of" target="QUIC"/>) the CIDFI network element won't apply any CIDFI behavior to
that newly-migrated connection.  The client will have to restart
CIDFI procedures at the beginning (<xref target="attach"/>).</t>
        <section anchor="stun-cidfi-nonce-attribute">
          <name>STUN CIDFI-NONCE Attribute</name>
          <t>The format of the STUN CIDFI-NONCE attribute is:</t>
          <figure anchor="fig-stun-cidfi-nonce">
            <name>Format of CIDFI-NONCE Attribute</name>
            <artset>
              <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="304" width="528" viewBox="0 0 528 304" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,64 L 8,288" fill="none" stroke="black"/>
                  <path d="M 520,64 L 520,288" fill="none" stroke="black"/>
                  <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                  <path d="M 8,144 L 520,144" fill="none" stroke="black"/>
                  <path d="M 8,288 L 520,288" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="16" y="36">0</text>
                    <text x="176" y="36">1</text>
                    <text x="336" y="36">2</text>
                    <text x="496" y="36">3</text>
                    <text x="16" y="52">0</text>
                    <text x="32" y="52">1</text>
                    <text x="48" y="52">2</text>
                    <text x="64" y="52">3</text>
                    <text x="80" y="52">4</text>
                    <text x="96" y="52">5</text>
                    <text x="112" y="52">6</text>
                    <text x="128" y="52">7</text>
                    <text x="144" y="52">8</text>
                    <text x="160" y="52">9</text>
                    <text x="176" y="52">0</text>
                    <text x="192" y="52">1</text>
                    <text x="208" y="52">2</text>
                    <text x="224" y="52">3</text>
                    <text x="240" y="52">4</text>
                    <text x="256" y="52">5</text>
                    <text x="272" y="52">6</text>
                    <text x="288" y="52">7</text>
                    <text x="304" y="52">8</text>
                    <text x="320" y="52">9</text>
                    <text x="336" y="52">0</text>
                    <text x="352" y="52">1</text>
                    <text x="368" y="52">2</text>
                    <text x="384" y="52">3</text>
                    <text x="400" y="52">4</text>
                    <text x="416" y="52">5</text>
                    <text x="432" y="52">6</text>
                    <text x="448" y="52">7</text>
                    <text x="464" y="52">8</text>
                    <text x="480" y="52">9</text>
                    <text x="496" y="52">0</text>
                    <text x="512" y="52">1</text>
                    <text x="216" y="100">Nonce</text>
                    <text x="260" y="100">(128</text>
                    <text x="304" y="100">bits)</text>
                    <text x="224" y="212">HMAC-output</text>
                    <text x="292" y="212">(256</text>
                    <text x="336" y="212">bits)</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="center"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|                       Nonce (128 bits)                        |
|                                                               |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|                                                               |
|                                                               |
|                     HMAC-output (256 bits)                    |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
            </artset>
          </figure>
          <t>The nonce is 128 bits obtained from the CIDFI network element.  The
HMAC-output field is computed per <xref target="RFC5869"/> using the CIDFI network
element-provided HMAC secret, and the CIDFI network element-provided
Nonce concatenated with the fixed string "cidfi" (without quotes),
shown below with "|" denoting concatenation.</t>
          <artwork><![CDATA[
  HMAC-output = HMAC-SHA256( hmac-secret, nonce | "cidfi" )
]]></artwork>
        </section>
      </section>
      <section anchor="initial-metadata-exchange">
        <name>Initial Metadata Exchange</name>
        <t>Using its HTTPS channel with each of the CIDFI network elements it
previously authorized for CIDFI participation, the client signals the
mapping of the server's transmitted short Destination Connection ID
and its length to the CNE.  As server support
of the QUIC CIDFI transport parameter is remembered for 0-RTT, the
client can immediately send the nonce.</t>
        <t>The primary purpose of a second Connection ID is connection migration
(<xref section="9" sectionFormat="of" target="QUIC"/>).  With CIDFI, additional Connection IDs are
necessary to:
  * maintain CIDFI operation when topology remains the same.
  * use Destination Connection ID to indicate packet importance</t>
        <t>To maintain CIDFI operation when topology remains the same, the
CIDFI client signals the CNEs of that 'next'
Destination CID.  When QUIC detects a topology change, however, that
Destination CID <bcp14>MUST NOT</bcp14> be used by the peer, otherwise it links
the communication on the old topology to the new topology (<xref section="9.5" sectionFormat="of" target="QUIC"/>).
Thus, an additional Connection ID is purposefully not communicated
from the CIDFI client to its CNEs, so that
Connection ID can be immediately used by the peer during connection
migration when the topology changes.</t>
        <t>Note the source IP address and source UDP port number are not signaled
by design.  This is because NATs (<xref target="NAPT"/>,
<xref target="NAT"/>), multiple NATs on the path, IPv6/IPv4 translation,
similar technologies, and QUIC connection migration all complicate
accurate signaling of the source IP address and source UDP port
number.</t>
        <t>If the CNE receives the HTTPS map request but has not
yet seen the STUN nonce message it rejects the mapping request with a
403 and provides a new nonce.  The new nonce avoids the problem of an
attacker seeing the previous nonce and using that nonce on its own UDP
4-tuple.  The client then sends a new STUN message with that new nonce
value and send a new HTTPS mapping request(s).  This interaction is
highlighted in the simplified message flow, below.</t>
        <figure>
          <name>Client re-transmtting lost nonce</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="496" width="512" viewBox="0 0 512 496" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,64 L 24,144" fill="none" stroke="black"/>
                <path d="M 24,176 L 24,480" fill="none" stroke="black"/>
                <path d="M 320,96 L 320,144" fill="none" stroke="black"/>
                <path d="M 320,240 L 320,256" fill="none" stroke="black"/>
                <path d="M 320,288 L 320,320" fill="none" stroke="black"/>
                <path d="M 320,360 L 320,384" fill="none" stroke="black"/>
                <path d="M 320,448 L 320,480" fill="none" stroke="black"/>
                <path d="M 472,64 L 472,144" fill="none" stroke="black"/>
                <path d="M 472,176 L 472,352" fill="none" stroke="black"/>
                <path d="M 472,384 L 472,480" fill="none" stroke="black"/>
                <path d="M 24,96 L 312,96" fill="none" stroke="black"/>
                <path d="M 32,128 L 320,128" fill="none" stroke="black"/>
                <path d="M 24,208 L 464,208" fill="none" stroke="black"/>
                <path d="M 24,240 L 192,240" fill="none" stroke="black"/>
                <path d="M 24,288 L 312,288" fill="none" stroke="black"/>
                <path d="M 32,320 L 312,320" fill="none" stroke="black"/>
                <path d="M 24,352 L 464,352" fill="none" stroke="black"/>
                <path d="M 24,448 L 312,448" fill="none" stroke="black"/>
                <path d="M 32,480 L 320,480" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="472,352 460,346.4 460,357.6" fill="black" transform="rotate(0,464,352)"/>
                <polygon class="arrowhead" points="472,208 460,202.4 460,213.6" fill="black" transform="rotate(0,464,208)"/>
                <polygon class="arrowhead" points="320,448 308,442.4 308,453.6" fill="black" transform="rotate(0,312,448)"/>
                <polygon class="arrowhead" points="320,288 308,282.4 308,293.6" fill="black" transform="rotate(0,312,288)"/>
                <polygon class="arrowhead" points="320,96 308,90.4 308,101.6" fill="black" transform="rotate(0,312,96)"/>
                <polygon class="arrowhead" points="200,240 188,234.4 188,245.6" fill="black" transform="rotate(0,192,240)"/>
                <polygon class="arrowhead" points="40,480 28,474.4 28,485.6" fill="black" transform="rotate(180,32,480)"/>
                <polygon class="arrowhead" points="40,320 28,314.4 28,325.6" fill="black" transform="rotate(180,32,320)"/>
                <polygon class="arrowhead" points="40,128 28,122.4 28,133.6" fill="black" transform="rotate(180,32,128)"/>
                <g class="text">
                  <text x="312" y="36">CIDFI-aware</text>
                  <text x="468" y="36">QUIC</text>
                  <text x="28" y="52">client</text>
                  <text x="284" y="52">edge</text>
                  <text x="332" y="52">router</text>
                  <text x="468" y="52">server</text>
                  <text x="320" y="68">|</text>
                  <text x="68" y="84">HTTPS:</text>
                  <text x="124" y="84">Enroll</text>
                  <text x="176" y="84">CIDFI</text>
                  <text x="228" y="84">router</text>
                  <text x="268" y="84">to</text>
                  <text x="320" y="84">partipate</text>
                  <text x="68" y="116">HTTPS:</text>
                  <text x="112" y="116">Ok.</text>
                  <text x="184" y="116">nonce=12345</text>
                  <text x="24" y="164">:</text>
                  <text x="320" y="164">:</text>
                  <text x="472" y="164">:</text>
                  <text x="320" y="180">|</text>
                  <text x="60" y="196">QUIC</text>
                  <text x="116" y="196">Initial,</text>
                  <text x="192" y="196">transport</text>
                  <text x="296" y="196">parameter=CIDFI</text>
                  <text x="60" y="228">STUN</text>
                  <text x="128" y="228">Indication,</text>
                  <text x="228" y="228">nonce=12345,</text>
                  <text x="324" y="228">HMAC=8f93e</text>
                  <text x="208" y="244">X</text>
                  <text x="244" y="244">(lost)</text>
                  <text x="68" y="276">HTTPS:</text>
                  <text x="116" y="276">"Map</text>
                  <text x="172" y="276">DCID=xyz</text>
                  <text x="220" y="276">as</text>
                  <text x="252" y="276">high</text>
                  <text x="320" y="276">importance"</text>
                  <text x="68" y="308">HTTPS:</text>
                  <text x="116" y="308">403,</text>
                  <text x="152" y="308">new</text>
                  <text x="212" y="308">Nonce=5678</text>
                  <text x="60" y="340">STUN</text>
                  <text x="120" y="340">Indicate,</text>
                  <text x="208" y="340">nonce=5678,</text>
                  <text x="300" y="340">HMAC=aaf3c</text>
                  <text x="472" y="372">discarded</text>
                  <text x="196" y="404">"I</text>
                  <text x="224" y="404">saw</text>
                  <text x="252" y="404">my</text>
                  <text x="292" y="404">nonce,</text>
                  <text x="340" y="404">HMAC</text>
                  <text x="372" y="404">is</text>
                  <text x="412" y="404">valid"</text>
                  <text x="320" y="420">|</text>
                  <text x="68" y="436">HTTPS:</text>
                  <text x="116" y="436">"Map</text>
                  <text x="172" y="436">DCID=xyz</text>
                  <text x="220" y="436">as</text>
                  <text x="252" y="436">high</text>
                  <text x="320" y="436">importance"</text>
                  <text x="52" y="468">Ok</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
                                 CIDFI-aware            QUIC
client                           edge router           server
  |                                    |                  |
  |  HTTPS: Enroll CIDFI router to partipate              |
  +----------------------------------->|                  |
  |  HTTPS: Ok.  nonce=12345           |                  |
  |<-----------------------------------+                  |
  |                                    |                  |
  :                                    :                  :
  |                                    |                  |
  |  QUIC Initial, transport parameter=CIDFI              |
  +------------------------------------------------------>|
  |  STUN Indication, nonce=12345, HMAC=8f93e             |
  +--------------------> X (lost)      |                  |
  |                                    |                  |
  |  HTTPS: "Map DCID=xyz as high importance"             |
  +----------------------------------->|                  |
  |  HTTPS: 403, new Nonce=5678        |                  |
  |<-----------------------------------|                  |
  |  STUN Indicate, nonce=5678, HMAC=aaf3c                |
  +------------------------------------------------------>|
  |                                    |              discarded
  |                                    |                  |
  |                    "I saw my nonce, HMAC is valid"    |
  |                                    |                  |
  |  HTTPS: "Map DCID=xyz as high importance"             |
  +----------------------------------->|                  |
  |  Ok                                |                  |
  |<-----------------------------------+                  |
]]></artwork>
          </artset>
        </figure>
        <t>There are two types of metadata exchanged, described in the following sub-sections.</t>
        <section anchor="server-to-network">
          <name>Server to Network Elements</name>
          <t>The server communicates to network elements via the client which then
communicates with the network element(s).  While this adds
communication delay, it allows the user at the client to authorize
the metadata communication about its own incoming (and outgoing) traffic.</t>
          <t>The communication from the client to the server are using a CIDFI-dedicated
QUIC stream over the same QUIC connection as their primary communication.</t>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="288" width="496" viewBox="0 0 496 288" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,64 L 24,272" fill="none" stroke="black"/>
                <path d="M 176,128 L 176,144" fill="none" stroke="black"/>
                <path d="M 176,184 L 176,232" fill="none" stroke="black"/>
                <path d="M 320,104 L 320,264" fill="none" stroke="black"/>
                <path d="M 472,64 L 472,272" fill="none" stroke="black"/>
                <path d="M 32,96 L 472,96" fill="none" stroke="black"/>
                <path d="M 24,144 L 168,144" fill="none" stroke="black"/>
                <path d="M 24,176 L 312,176" fill="none" stroke="black"/>
                <path d="M 32,208 L 176,208" fill="none" stroke="black"/>
                <path d="M 32,240 L 320,240" fill="none" stroke="black"/>
                <path d="M 24,272 L 464,272" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="472,272 460,266.4 460,277.6" fill="black" transform="rotate(0,464,272)"/>
                <polygon class="arrowhead" points="320,176 308,170.4 308,181.6" fill="black" transform="rotate(0,312,176)"/>
                <polygon class="arrowhead" points="176,144 164,138.4 164,149.6" fill="black" transform="rotate(0,168,144)"/>
                <polygon class="arrowhead" points="40,240 28,234.4 28,245.6" fill="black" transform="rotate(180,32,240)"/>
                <polygon class="arrowhead" points="40,208 28,202.4 28,213.6" fill="black" transform="rotate(180,32,208)"/>
                <polygon class="arrowhead" points="40,96 28,90.4 28,101.6" fill="black" transform="rotate(180,32,96)"/>
                <g class="text">
                  <text x="168" y="36">CIDFI-aware</text>
                  <text x="312" y="36">CIDFI-aware</text>
                  <text x="28" y="52">client</text>
                  <text x="112" y="52">Wi-Fi</text>
                  <text x="164" y="52">Access</text>
                  <text x="216" y="52">Point</text>
                  <text x="284" y="52">edge</text>
                  <text x="332" y="52">router</text>
                  <text x="468" y="52">server</text>
                  <text x="176" y="68">|</text>
                  <text x="320" y="68">|</text>
                  <text x="60" y="84">QUIC</text>
                  <text x="104" y="84">CIDFI</text>
                  <text x="160" y="84">stream:</text>
                  <text x="212" y="84">"Map</text>
                  <text x="268" y="84">DCID=xyz</text>
                  <text x="316" y="84">as</text>
                  <text x="348" y="84">high</text>
                  <text x="416" y="84">importance"</text>
                  <text x="60" y="116">"Map</text>
                  <text x="116" y="116">DCID=xyz</text>
                  <text x="164" y="116">as</text>
                  <text x="60" y="132">high</text>
                  <text x="128" y="132">importance"</text>
                  <text x="60" y="164">"Map</text>
                  <text x="116" y="164">DCID=xyz</text>
                  <text x="164" y="164">as</text>
                  <text x="196" y="164">high</text>
                  <text x="264" y="164">importance"</text>
                  <text x="52" y="196">Ok</text>
                  <text x="52" y="228">Ok</text>
                  <text x="60" y="260">QUIC</text>
                  <text x="104" y="260">CIDFI</text>
                  <text x="160" y="260">stream:</text>
                  <text x="204" y="260">Ok</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
               CIDFI-aware       CIDFI-aware
client     Wi-Fi Access Point    edge router           server
  |                  |                 |                  |
  |  QUIC CIDFI stream: "Map DCID=xyz as high importance" |
  |<------------------------------------------------------+
  |  "Map DCID=xyz as                  |                  |
  |  high importance"|                 |                  |
  +----------------->|                 |                  |
  |  "Map DCID=xyz as high importance" |                  |
  +----------------------------------->|                  |
  |  Ok              |                 |                  |
  |<-----------------+                 |                  |
  |  Ok              |                 |                  |
  |<-----------------------------------+                  |
  |  QUIC CIDFI stream: Ok             |                  |
  +------------------------------------------------------>|
]]></artwork>
          </artset>
          <t>To each of the network elements authorized by the client, the client
sends the mappings of the server's transmitted Destination CIDs to
packet metadata (see {#packet-metadata}).</t>
        </section>
        <section anchor="network-to-server">
          <name>Network Element to Server</name>
          <t>The network element send network performance information to the server
which is intended to influence the sender'ss traffic rate (such as
improving or reducing fidelity of the audio or video).  In the figure below
the CNE informs the client of reduced bandwidth and the
client informs the server using CIDFI.</t>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="448" viewBox="0 0 448 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,64 L 24,192" fill="none" stroke="black"/>
                <path d="M 320,64 L 320,96" fill="none" stroke="black"/>
                <path d="M 320,168 L 320,192" fill="none" stroke="black"/>
                <path d="M 424,64 L 424,192" fill="none" stroke="black"/>
                <path d="M 32,96 L 320,96" fill="none" stroke="black"/>
                <path d="M 24,128 L 416,128" fill="none" stroke="black"/>
                <path d="M 32,160 L 424,160" fill="none" stroke="black"/>
                <path d="M 24,192 L 312,192" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="424,128 412,122.4 412,133.6" fill="black" transform="rotate(0,416,128)"/>
                <polygon class="arrowhead" points="320,192 308,186.4 308,197.6" fill="black" transform="rotate(0,312,192)"/>
                <polygon class="arrowhead" points="40,160 28,154.4 28,165.6" fill="black" transform="rotate(180,32,160)"/>
                <polygon class="arrowhead" points="40,96 28,90.4 28,101.6" fill="black" transform="rotate(180,32,96)"/>
                <g class="text">
                  <text x="168" y="36">CIDFI-aware</text>
                  <text x="312" y="36">CIDFI-aware</text>
                  <text x="28" y="52">client</text>
                  <text x="112" y="52">Wi-Fi</text>
                  <text x="164" y="52">Access</text>
                  <text x="216" y="52">Point</text>
                  <text x="284" y="52">edge</text>
                  <text x="332" y="52">router</text>
                  <text x="420" y="52">server</text>
                  <text x="176" y="68">|</text>
                  <text x="84" y="84">"bandwidth</text>
                  <text x="144" y="84">now</text>
                  <text x="188" y="84">1Mbps"</text>
                  <text x="60" y="116">QUIC</text>
                  <text x="104" y="116">CIDFI</text>
                  <text x="160" y="116">stream:</text>
                  <text x="236" y="116">"bandwidth</text>
                  <text x="296" y="116">now</text>
                  <text x="340" y="116">1Mbps"</text>
                  <text x="60" y="148">QUIC</text>
                  <text x="104" y="148">CIDFI</text>
                  <text x="160" y="148">stream:</text>
                  <text x="204" y="148">Ok</text>
                  <text x="320" y="148">|</text>
                  <text x="52" y="180">Ok</text>
                  <text x="176" y="180">|</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
               CIDFI-aware       CIDFI-aware
client     Wi-Fi Access Point    edge router     server
  |                  |                 |            |
  |  "bandwidth now 1Mbps"             |            |
  |<-----------------------------------+            |
  |  QUIC CIDFI stream: "bandwidth now 1Mbps"       |
  +------------------------------------------------>|
  |  QUIC CIDFI stream: Ok             |            |
  |<------------------------------------------------+
  |  Ok              |                 |            |
  +----------------------------------->|            |
]]></artwork>
          </artset>
          <t>The communication from the client to the server are using a CIDFI-dedicated
QUIC stream over the same QUIC connection as their primary communication.</t>
          <t>The CNE can update the client with whenever
the metadata about the connection changes significantly, but <bcp14>MUST NOT</bcp14>
update more frequently than once every second.</t>
          <t>The metadata exchanged over this channel is described in <xref target="metadata-exchanged"/>.</t>
        </section>
      </section>
      <section anchor="ongoing-metadata-exchange">
        <name>Ongoing Metadata Exchange</name>
        <t>For the duration of the primary QUIC connection between the QUIC client and
QUIC server, the client relays network element metadata changes to the server, and server's
transmitted QUIC Destination CID to the network elements.</t>
      </section>
    </section>
    <section anchor="load-balancers">
      <name>Interaction with Load Balancers</name>
      <t>HTTPS servers, including QUIC servers, are frequently behind load balancers.</t>
      <t>With CIDFI, all the communication to the load-balanaced QUIC server are over the same UDP 4-tuple
as the primary QUIC connection but in a different QUIC stream.  This means
no changes are required to ECMP load balancers or to CID-aware load balancers
when using a CIDFI-aware back-end QUIC server.</t>
      <t>Load balancers providing QUIC-to-TCP interworking is incompatible with
CIDFI because TCP lacks QUIC's stream identification.</t>
    </section>
    <section anchor="topology">
      <name>Topology Change</name>
      <t>When topology changes the client will transmit from a new IP address
-- such as switching to a backup WAN connection, or such as switching
from Wi-Fi to 5G.  If using QUIC, QUIC server will consider this a
connection migration and will issue a PATH_CHALLENGE.  If the client
is aware of the topology change (such as attaching to a different
network), the client would also change its QUIC Destination CID (<xref section="9" sectionFormat="of" target="QUIC"/>).</t>
      <t>If the QUIC CIDFI-aware client is otherwise unaware of a topology change
and receives a QUIC PATH_CHALLENGE then the CIDFI-aware client <bcp14>SHOULD</bcp14>
re-discover its CIDFI network elements <xref target="discovery"/>.  If that
set of network elements differs from the previous set, the client
<bcp14>SHOULD</bcp14> continue with normal CIDFI processing.</t>
      <ul empty="true">
        <li>
          <t>todo: include discussion of <xref target="DTLS-CID"/> client and discussion
of its ICE interaction, if any?</t>
        </li>
      </ul>
    </section>
    <section anchor="metadata-exchanged">
      <name>Details of Metadata Exchanged</name>
      <t>This section describes the metadata that can be exchanged from the
CNE to the server (generally network
performance information) and from the server to the CNE.</t>
      <section anchor="server-to-cidfi-aware-network-element">
        <name>Server to CIDFI-aware Network Element</name>
        <t>Because there is no direct communications from the server to
the network element the communications are relayed through the client.</t>
        <t>The communication from server to network element do not occur directly,
but rather through the client.</t>
        <t>Two types of mapping metadata are described below: metadata parameters
and DSCP code points.</t>
        <section anchor="mapping-parameters">
          <name>Mapping Metadata Parameters to DCIDs</name>
          <t>Several of metadata parameters can be mapped to Destination CID:</t>
          <dl>
            <dt>Importance:</dt>
            <dd>
              <t>Low/Medium/High importance, relative to other CIDs within this
same UDP 4-tuple.</t>
            </dd>
            <dt>Delay budget:</dt>
            <dd>
              <t>Time in milliseconds until this packet is worthless to the receiver.
This is counted from when the packet arrives at the CNE
to when it is transmitted; other delays may occur
before or after that event occurs.  The receiver knows its own jitter
(playout) buffer length and the client and server can calculate the
one-way delay using timestamps.  With that information, the client can
adjust the server's signaled delay budget with the client's own
knowledge.  TODO: provide enough details to create interoperable
implementations.</t>
            </dd>
          </dl>
          <t>Over the CIDFI-dedicated QUIC stream, the server sends mapping
information to the client when then propagates that information
to each of the CNEs.</t>
          <t>For discussion purposes, JSON is shown below to give a flavor
of the data exchanged.  The authors anticipate a more efficient
encoding such as <xref target="CBOR"/>.</t>
          <artwork><![CDATA[
  {"metadata-parameters":[{"quicversion":1,
    "dcidlength":3,
       "map":[
       {"import":17,"burst":83,"delaybudget":71,"dcids":[551,381]},
       {"import":3,"burst":888,"delaybudget":180,"dcids":[89,983]},
       {"import":7,"burst":37,"delaybudget":55,"dcids":[33]}]}]}
]]></artwork>
        </section>
        <section anchor="mapping-dscp">
          <name>Mapping DiffServ Code Point (DSCP) to DCIDs</name>
          <t>A mapping from Destination CID to DiffServ code point
<xref target="RFC2474"/> leverages existing DiffServ handling that may already
exist in the CIDFI network element.  If there are downstream network
elements configured with the same DiffServ code point the CIDFI
network element could mark the packet with that code point as well.</t>
          <t>Signaling the DiffServ values for different QUIC Destination CID
increases the edge network's confidence the sender's DiffServ intent
is preserved into the edge network, even if the DSCP bits were
modified en route to the edge network (e.g., <xref target="pathologies"/>).</t>
          <t>Over the CIDFI-dedicated QUIC stream, the server sends mapping
information to the client when then propagates that information
to each of the CNEs.</t>
          <t>For discussion purposes, JSON is shown below to give a flavor
of the data exchanged.  The authors anticipate using a more efficient
encoding such as <xref target="CBOR"/>.</t>
          <figure anchor="fig-dscp-json">
            <name>Example JSON for DSCP Mapping</name>
            <artwork align="left"><![CDATA[
  {"dscp":[{"quicversion":1,
    "dcidlength":3,
    "map":[
      {"dscp":10,"dcids":[123,456]},
      {"dscp":46,"dcids":[998,183]}]}]}
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="cidfi-aware-network-element-to-server">
        <name>CIDFI-aware Network Element to Server</name>
        <t>The CIDFI-aware client informs the network element of the client's
received Destination CIDs.  As bandwidth availability to that client
changes, the CNE updates the client with new
metadata.</t>
        <t>For discussion purposes, JSON is shown below to give a flavor of the
data sent from the CNE to the client.  The
authors anticipate using a more efficient encoding such as <xref target="CBOR"/>.</t>
        <artwork><![CDATA[
  {"dcid":123,
   "bandwidth":"1Mbps"}
]]></artwork>
        <t>The client then sends that information to the server in the CIDFI-dedicated
QUIC stream associated with that same Connection ID.</t>
      </section>
    </section>
    <section anchor="discussion-points">
      <name>Discussion Points</name>
      <t>This section discusses known issues that would benefit from wider discussion.</t>
      <section anchor="client-versus-server-signaling-cid-to-importance-mapping">
        <name>Client versus Server Signaling CID-to-importance Mapping</name>
        <t>Need to evaluate number of round trips (and other overhead) of client
signaling CID-to-importance mapping or server signaling CID-to-importance
mapping.</t>
      </section>
      <section anchor="overhead-of-quic-dcid-packet-examination">
        <name>Overhead of QUIC DCID Packet Examination</name>
        <t>If CID-to-importance metadata was signaled by the server as described
in <xref target="server-to-network"/>, the CNE have to
examine the UDP payload of each packet for a matching Destination CID
for the lifetime of the connection.  This is somewhat assuaged by
the STUN nonce transmitted which may well be an easier signal to
identify.</t>
      </section>
      <section anchor="interaction-with-wi-fi-packet-aggregation">
        <name>Interaction with Wi-Fi Packet Aggregation</name>
        <t>Per-packet metadata influences transmission of that packet but may
well conflict with some Wi-Fi optimizations (e.g., <xref target="wifi-aggregation"/>)
and similar 5G optimizations.</t>
        <t>This impact needs further study.</t>
      </section>
      <section anchor="overhead-of-mapping-cid-to-packet-metadata">
        <name>Overhead of Mapping CID to packet metadata</name>
        <t>Network Elements have to maintain a mapping between each UDP 4-tuple
and QUIC CID and its DSCP code point.  This also needs updating
whenever sender changes its CID.  This is awkward.</t>
        <t>An alternative is a fixed mapping of QUIC CIDs to their meanings,
as proposed in <xref target="I-D.zmlk-quic-te"/>.  However, this will ossify
the meaning of those QUIC CIDs.  It also requires all networks to
agree on the meaning of those QUIC CIDs.</t>
      </section>
      <section anchor="improve-cidfi-initialization-time">
        <name>Improve CIDFI Initialization time</name>
        <t>Find approaches to further reduce network communications to start CIDFI.</t>
      </section>
      <section anchor="primary-quic-channel-cid-change-primary-cid-change">
        <name>Primary QUIC Channel CID Change {#primary-cid-change}:</name>
        <t>Because the CIDFI network element, QUIC server, and QUIC client all
cooperate to share the primary QUIC connection's Destination CID,
when a new CIDFI network element is involved (e.g., due to client
attaching to a different network), a new Destination CID <bcp14>SHOULD</bcp14>
be used for the reasons discussed in <xref section="9.5" sectionFormat="of" target="QUIC"/>}.</t>
        <t>We need clear way to signal which DCIDs can be used for 'this'
network attach and which DCIDs are for a migrated connection.  Probably
belongs in the QUIC transport parameter signaling?</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Because the sender's QUIC Destination Connection ID is mapped to
packet importance, and the DCID remains the same for many packets, an
attacker could determine which DCIDs are important by causing
interference on the bandwidth-constrained link (by creating other
legitimate traffic or creating radio interference) and observing which
DCIDs are transmitted versus which DCIDs are dropped.  This is a side-
effect of using fixed identifier (DCIDs) rather than encrypting
the packet importance.  This was a design trade-off to reduce the
CPU effort on the CNEs.  A mitigation is using
several DCIDs for every packet importance.</t>
      <t>Communications are relayed through the client because only the
client and server knows the identity of the server and can validate
its certificate.  The protocol in this specification does not disclose
the server's identity to the CIDFI network element.</t>
      <t>For an attacker to succeed with the nonce challenge against a victim's
UDP 4-tuple the attacker has to send a STUN CIDFI-NONCE packet using
the victim's source IP address and a valid HMAC.  A valid HMAC can
only be obtained by the attacker making its own connection to the
CIDFI server and spoofing the source IP address and UDP port of the
victim.  Such spoofing of a victim's IP address is prevented by the
network using network ingress filtering (<xref target="RFC2827"/>, <xref target="RFC7513"/>,
<xref target="RFC6105"/>, and/or <xref target="RFC6620"/>).  In the event network ingress
filtering is not configured or configured improperly, the CIDFI
network element can detect an attack if the client implements CIDFI.
The CIDFI network element receive two HTTPS connections describing the
same DCID (one connection from the attacker, another from the victim).
The CIDFI network element will issue unique Nonces and HMACs to both
the attacker and victim, and the attacker and victim will both send
the STUN indication on that same UDP 4-tuple.  This should never
normally occur and should generate an alarm on the CIDFI network
element.  In this situation, it is recommended both attack and victim
be denied CIDFI access.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="iana-tp">
        <name>New QUIC Transport Parameter</name>
        <t>This document requests IANA to register the following new permanent QUIC transport parameter
in the "QUIC Transport Parameters" registry under the "QUIC" registry group available at <xref target="IANA-QUIC"/>:</t>
        <table>
          <name>New QUIC Transport Parameter</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Parameter Name</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBD1</td>
              <td align="left">CIDFI</td>
              <td align="left">This-Document</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="iana-uri">
        <name>New Well-known URI "cidfi-aware"</name>
        <t>This document requests IANA to register the new well-known URI "cidfi" in the
"Well-Known URIs" registry available at <xref target="IANA-WKU"/>.</t>
      </section>
      <section anchor="iana-sudn">
        <name>New Special-use Domain Name</name>
        <t>Register new special-use domain name cidfi.arpa for DNS SVCB discovery.</t>
      </section>
      <section anchor="iana-svcb">
        <name>New DNS Service Binding (SVCB)</name>
        <t>This document requests IANA to register the new DNS SVCB "_cidfi-aware" in
the "DNS Service Bindings (SVCB)" registry available at <xref target="IANA-SVCB"/>.</t>
      </section>
      <section anchor="iana-stun">
        <name>New STUN Attribute</name>
        <t>This document requests IANA to register the new STUN attribute "CIDFI-NONCE"
in the "STUN Attributes" registry available at <xref target="IANA-STUN"/>.</t>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <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="DTLS-CID">
          <front>
            <title>Connection Identifier for DTLS 1.2</title>
            <author fullname="E. Rescorla" initials="E." role="editor" surname="Rescorla"/>
            <author fullname="H. Tschofenig" initials="H." role="editor" surname="Tschofenig"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <author fullname="A. Kraus" initials="A." surname="Kraus"/>
            <date month="March" year="2022"/>
            <abstract>
              <t>This document specifies the Connection ID (CID) construct for the Datagram Transport Layer Security (DTLS) protocol version 1.2.</t>
              <t>A CID is an identifier carried in the record layer header that gives the recipient additional information for selecting the appropriate security association. In "classical" DTLS, selecting a security association of an incoming DTLS record is accomplished with the help of the 5-tuple. If the source IP address and/or source port changes during the lifetime of an ongoing DTLS session, then the receiver will be unable to locate the correct security context.</t>
              <t>The new ciphertext record format with the CID also provides content type encryption and record layer padding.</t>
              <t>This document updates RFC 6347.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9146"/>
          <seriesInfo name="DOI" value="10.17487/RFC9146"/>
        </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>
        <reference anchor="I-D.ietf-dnsop-svcb-https">
          <front>
            <title>Service binding and parameter specification via the DNS (DNS SVCB and HTTPS RRs)</title>
            <author fullname="Benjamin M. Schwartz" initials="B. M." surname="Schwartz">
              <organization>Google</organization>
            </author>
            <author fullname="Mike Bishop" initials="M." surname="Bishop">
              <organization>Akamai Technologies</organization>
            </author>
            <author fullname="Erik Nygren" initials="E." surname="Nygren">
              <organization>Akamai Technologies</organization>
            </author>
            <date day="11" month="March" year="2023"/>
            <abstract>
              <t>   This document specifies the "SVCB" and "HTTPS" DNS resource record
   (RR) types to facilitate the lookup of information needed to make
   connections to network services, such as for HTTP origins.  SVCB
   records allow a service to be provided from multiple alternative
   endpoints, each with associated parameters (such as transport
   protocol configuration), and are extensible to support future uses
   (such as keys for encrypting the TLS ClientHello).  They also enable
   aliasing of apex domains, which is not possible with CNAME.  The
   HTTPS RR is a variation of SVCB for use with HTTP [HTTP].  By
   providing more information to the client before it attempts to
   establish a connection, these records offer potential benefits to
   both performance and privacy.

   TO BE REMOVED: This document is being collaborated on in Github at:
   https://github.com/MikeBishop/dns-alt-svc
   (https://github.com/MikeBishop/dns-alt-svc).  The most recent working
   version of the document, open issues, etc. should all be available
   there.  The authors (gratefully) accept pull requests.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-dnsop-svcb-https-12"/>
        </reference>
        <reference anchor="CBOR">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="STUN">
          <front>
            <title>Session Traversal Utilities for NAT (STUN)</title>
            <author fullname="J. Rosenberg" initials="J." surname="Rosenberg"/>
            <author fullname="R. Mahy" initials="R." surname="Mahy"/>
            <author fullname="P. Matthews" initials="P." surname="Matthews"/>
            <author fullname="D. Wing" initials="D." surname="Wing"/>
            <date month="October" year="2008"/>
            <abstract>
              <t>Session Traversal Utilities for NAT (STUN) is a protocol that serves as a tool for other protocols in dealing with Network Address Translator (NAT) traversal. It can be used by an endpoint to determine the IP address and port allocated to it by a NAT. It can also be used to check connectivity between two endpoints, and as a keep-alive protocol to maintain NAT bindings. STUN works with many existing NATs, and does not require any special behavior from them.</t>
              <t>STUN is not a NAT traversal solution by itself. Rather, it is a tool to be used in the context of a NAT traversal solution. This is an important change from the previous version of this specification (RFC 3489), which presented STUN as a complete solution.</t>
              <t>This document obsoletes RFC 3489. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5389"/>
          <seriesInfo name="DOI" value="10.17487/RFC5389"/>
        </reference>
        <reference anchor="RFC5869">
          <front>
            <title>HMAC-based Extract-and-Expand Key Derivation Function (HKDF)</title>
            <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
            <author fullname="P. Eronen" initials="P." surname="Eronen"/>
            <date month="May" year="2010"/>
            <abstract>
              <t>This document specifies a simple Hashed Message Authentication Code (HMAC)-based key derivation function (HKDF), which can be used as a building block in various protocols and applications. The key derivation function (KDF) is intended to support a wide range of applications and requirements, and is conservative in its use of cryptographic hash functions. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5869"/>
          <seriesInfo name="DOI" value="10.17487/RFC5869"/>
        </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>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="pathologies" target="https://www.sciencedirect.com/science/article/pii/S0140366417312835">
          <front>
            <title>Exploring DSCP modification pathologies in the Internet</title>
            <author initials="A." surname="Custura" fullname="Ana Custura">
              <organization/>
            </author>
            <author initials="R." surname="Secchi" fullname="Raffaello Secchi">
              <organization/>
            </author>
            <author initials="G." surname="Fairhurst" fullname="Gorry Fairhurst">
              <organization/>
            </author>
            <date year="2018" month="May"/>
          </front>
        </reference>
        <reference anchor="wifi-aggregation" target="https://www.usenix.org/conference/atc17/technical-sessions/presentation/hoilan-jorgesen">
          <front>
            <title>Ending the Anomaly: Achieving Low Latency and Airtime Fairness in WiFi</title>
            <author initials="T." surname="Høiland-Jørgensen" fullname="Toke Høiland-Jørgensen">
              <organization/>
            </author>
            <author initials="M." surname="Kazior" fullname="Michał Kazior">
              <organization/>
            </author>
            <author initials="D." surname="Täht" fullname="Dave Täht">
              <organization/>
            </author>
            <author initials="P." surname="Hurtig" fullname="Per Hurtig">
              <organization/>
            </author>
            <author initials="A." surname="Brunstrom" fullname="Anna Brunstrom">
              <organization/>
            </author>
            <date year="2017" month="May" day="22"/>
          </front>
        </reference>
        <reference anchor="IANA-QUIC" target="https://www.iana.org/assignments/quic/quic.xhtml">
          <front>
            <title>QUIC</title>
            <author>
              <organization/>
            </author>
            <date year="2023" month="July" day="26"/>
          </front>
        </reference>
        <reference anchor="IANA-WKU" target="https://www.iana.org/assignments/well-known-uris/well-known-uris.xhtml">
          <front>
            <title>Well-known URIs</title>
            <author>
              <organization/>
            </author>
            <date year="2023" month="June" day="20"/>
          </front>
        </reference>
        <reference anchor="IANA-SVCB" target="https://www.iana.org/assignments/dns-svcb/dns-svcb.xhtml">
          <front>
            <title>DNS Service Bindings (SVCB)</title>
            <author>
              <organization/>
            </author>
            <date year="2023" month="June" day="13"/>
          </front>
        </reference>
        <reference anchor="IANA-STUN" target="https://www.iana.org/assignments/stun-parameters/stun-parameters.xhtml">
          <front>
            <title>STUN Attributes</title>
            <author>
              <organization/>
            </author>
            <date year="2023" month="March" day="20"/>
          </front>
        </reference>
        <reference anchor="ECN">
          <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="I-D.joras-sadcdn">
          <front>
            <title>Securing Ancillary Data for Communicating with Devices in the Network</title>
            <author fullname="Matt Joras" initials="M." surname="Joras">
              <organization>Meta Platforms, Inc.</organization>
            </author>
            <date day="10" month="July" year="2023"/>
            <abstract>
              <t>   There is increasing need for application endpoints to exchange rich
   information with devices in the network and secure that information
   from on-path observers.  This document presents some current problems
   and the broad strokes of potential solutions.

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/mjoras/sadcdn.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-joras-sadcdn-01"/>
        </reference>
        <reference anchor="I-D.ietf-avtcore-rtp-over-quic">
          <front>
            <title>RTP over QUIC (RoQ)</title>
            <author fullname="Joerg Ott" initials="J." surname="Ott">
              <organization>Technical University Munich</organization>
            </author>
            <author fullname="Mathis Engelbart" initials="M." surname="Engelbart">
              <organization>Technical University Munich</organization>
            </author>
            <author fullname="Spencer Dawkins" initials="S." surname="Dawkins">
              <organization>Tencent America LLC</organization>
            </author>
            <date day="26" month="July" year="2023"/>
            <abstract>
              <t>   This document specifies a minimal mapping for encapsulating Real-time
   Transport Protocol (RTP) and RTP Control Protocol (RTCP) packets
   within the QUIC protocol.  This mapping is called RTP over QUIC
   (RoQ).  It also discusses how to leverage state from the QUIC
   implementation in the endpoints, in order to reduce the need to
   exchange RTCP packets and how to implement congestion control and
   rate adaptation without relying on RTCP feedback.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-avtcore-rtp-over-quic-05"/>
        </reference>
        <reference anchor="NAPT">
          <front>
            <title>Traditional IP Network Address Translator (Traditional NAT)</title>
            <author fullname="P. Srisuresh" initials="P." surname="Srisuresh"/>
            <author fullname="K. Egevang" initials="K." surname="Egevang"/>
            <date month="January" year="2001"/>
            <abstract>
              <t>The NAT operation described in this document extends address translation introduced in RFC 1631 and includes a new type of network address and TCP/UDP port translation. In addition, this document corrects the Checksum adjustment algorithm published in RFC 1631 and attempts to discuss NAT operation and limitations in detail. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3022"/>
          <seriesInfo name="DOI" value="10.17487/RFC3022"/>
        </reference>
        <reference anchor="NAT">
          <front>
            <title>IP Network Address Translator (NAT) Terminology and Considerations</title>
            <author fullname="P. Srisuresh" initials="P." surname="Srisuresh"/>
            <author fullname="M. Holdrege" initials="M." surname="Holdrege"/>
            <date month="August" year="1999"/>
            <abstract>
              <t>This document attempts to describe the operation of NAT devices and the associated considerations in general, and to define the terminology used to identify various flavors of NAT. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2663"/>
          <seriesInfo name="DOI" value="10.17487/RFC2663"/>
        </reference>
        <reference anchor="I-D.zmlk-quic-te">
          <front>
            <title>QUIC-enabled Service Differentiation for Traffic Engineering</title>
            <author fullname="Zhilong Zheng" initials="Z." surname="Zheng">
              <organization>Alibaba Inc.</organization>
            </author>
            <author fullname="Yunfei Ma" initials="Y." surname="Ma">
              <organization>Alibaba Inc.</organization>
            </author>
            <author fullname="Yanmei Liu" initials="Y." surname="Liu">
              <organization>Alibaba Inc.</organization>
            </author>
            <author fullname="Mirja Kühlewind" initials="M." surname="Kühlewind">
              <organization>Ericsson</organization>
            </author>
            <date day="5" month="May" year="2023"/>
            <abstract>
              <t>   This document defines a method for supporting QUIC-enabled service
   differentiation for traffic engineering through multipath and QUIC
   connection identifier (CID) encoding.  This approach enables end-host
   networking stacks and applications to select packet routing paths in
   a wide area network (WAN), potentially improving the end-to-end
   performance, cost, and reliability.  The proposed method can be used
   in conjunction with segment routing traffic engineering technologies,
   such as SRv6 TE.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-zmlk-quic-te-00"/>
        </reference>
        <reference anchor="RFC2827">
          <front>
            <title>Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing</title>
            <author fullname="P. Ferguson" initials="P." surname="Ferguson"/>
            <author fullname="D. Senie" initials="D." surname="Senie"/>
            <date month="May" year="2000"/>
            <abstract>
              <t>This paper discusses a simple, effective, and straightforward method for using ingress traffic filtering to prohibit DoS (Denial of Service) attacks which use forged IP addresses to be propagated from 'behind' an Internet Service Provider's (ISP) aggregation point. 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="38"/>
          <seriesInfo name="RFC" value="2827"/>
          <seriesInfo name="DOI" value="10.17487/RFC2827"/>
        </reference>
        <reference anchor="RFC7513">
          <front>
            <title>Source Address Validation Improvement (SAVI) Solution for DHCP</title>
            <author fullname="J. Bi" initials="J." surname="Bi"/>
            <author fullname="J. Wu" initials="J." surname="Wu"/>
            <author fullname="G. Yao" initials="G." surname="Yao"/>
            <author fullname="F. Baker" initials="F." surname="Baker"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>This document specifies the procedure for creating a binding between a DHCPv4/DHCPv6-assigned IP address and a binding anchor on a Source Address Validation Improvement (SAVI) device. The bindings set up by this procedure are used to filter packets with forged source IP addresses. This mechanism complements BCP 38 (RFC 2827) ingress filtering, providing finer-grained source IP address validation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7513"/>
          <seriesInfo name="DOI" value="10.17487/RFC7513"/>
        </reference>
        <reference anchor="RFC6105">
          <front>
            <title>IPv6 Router Advertisement Guard</title>
            <author fullname="E. Levy-Abegnoli" initials="E." surname="Levy-Abegnoli"/>
            <author fullname="G. Van de Velde" initials="G." surname="Van de Velde"/>
            <author fullname="C. Popoviciu" initials="C." surname="Popoviciu"/>
            <author fullname="J. Mohacsi" initials="J." surname="Mohacsi"/>
            <date month="February" year="2011"/>
            <abstract>
              <t>Routed protocols are often susceptible to spoof attacks. The canonical solution for IPv6 is Secure Neighbor Discovery (SEND), a solution that is non-trivial to deploy. This document proposes a light-weight alternative and complement to SEND based on filtering in the layer-2 network fabric, using a variety of filtering criteria, including, for example, SEND status. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6105"/>
          <seriesInfo name="DOI" value="10.17487/RFC6105"/>
        </reference>
        <reference anchor="RFC6620">
          <front>
            <title>FCFS SAVI: First-Come, First-Served Source Address Validation Improvement for Locally Assigned IPv6 Addresses</title>
            <author fullname="E. Nordmark" initials="E." surname="Nordmark"/>
            <author fullname="M. Bagnulo" initials="M." surname="Bagnulo"/>
            <author fullname="E. Levy-Abegnoli" initials="E." surname="Levy-Abegnoli"/>
            <date month="May" year="2012"/>
            <abstract>
              <t>This memo describes First-Come, First-Served Source Address Validation Improvement (FCFS SAVI), a mechanism that provides source address validation for IPv6 networks using the FCFS principle. The proposed mechanism is intended to complement ingress filtering techniques to help detect and prevent source address spoofing. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6620"/>
          <seriesInfo name="DOI" value="10.17487/RFC6620"/>
        </reference>
      </references>
    </references>
    <?line 918?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to Dave Täht, Magnus Westerlund, Christian Huitema, Gorry Fairhurst,
and Tom Herbert for hallway discussions and feedback at TSVWG that encouraged
the authors to consider the approach described in this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
OmYTqWaczt7Nd/NrsgMQ/j+zPW75QJAAAA==

-->

</rfc>
