<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.4 (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-04" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.2 -->
  <front>
    <title abbrev="CIDFI">Framework for CID Flow Indicator (CIDFI)</title>
    <seriesInfo name="Internet-Draft" value="draft-wing-cidfi-04"/>
    <author fullname="Dan Wing">
      <organization abbrev="Cloud Software Group">Cloud Software Group Holdings, Inc.</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>danwing@gmail.com</email>
        <uri>https://www.cloud.com</uri>
      </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="December" day="15"/>
    <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 122?>

<t>Host-to-network signaling and network-to-host signaling can improve
the user experience to adapt to network's constraints and share expected application needs, and thus to provide
differentiated service to a flow and to packets within a flow. The differentiated service may be provided at the network (e.g., packet prioritization), the server (e.g., adaptive transmission), or both.</t>
      <t>This document describes how clients can communicate with their nearby
network elements so they can learn network constraints.  Optionally,
with QUIC server support their incoming QUIC packets can be mapped to
metadata about their contents so packet importance can influence both
intentional and reactive management policies.  The framework handles
both directions of a flow.</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
        TSV Area Working Group mailing list (<eref target="mailto:tsvwg@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/tsvwg/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/tsvwg/"/>.
      </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 135?>

<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).  This is also called an 'intentional
management policy'.</t>
      <t>Due to network constraints a network element will need to drop or even
prioritize a packet ahead of other packets within the same UDP 4-tuple. The decision of which packet
to drop or prioritize is improved if the network element knows the
importance of the packet.  By mapping packet metadata to a network-visible
field in each packet, the network element is better informed and better able
to improve the user experience.</t>
      <t>There are also exceptional cases (crisis) where "normal" network
resources cannot be used at maximum and, thus, a network would seek to
reduce or offload some of the traffic during these events -- often
called 'reactive traffic policy'. Network-to-host signals are
useful to put in place adequate traffic distribution policies (e.g.,
prefer the use of alternate paths, offload a network).</t>
      <t><xref target="design-approaches"/> depicts examples of approaches to establish channels to convey
and share metadata between hosts, networks, and servers. This document adheres to
the client-centric metadata sharing approach because it preserves privacy and also
takes advantage of clients having a full view on their available network attachments.
Metadata exchanges can occur in one single direction or both directions of a flows.</t>
      <figure anchor="design-approaches">
        <name>Candidate Design Approaches</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="672" width="552" viewBox="0 0 552 672" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,80 L 8,112" fill="none" stroke="black"/>
              <path d="M 8,272 L 8,304" fill="none" stroke="black"/>
              <path d="M 8,512 L 8,544" fill="none" stroke="black"/>
              <path d="M 40,112 L 40,192" fill="none" stroke="black"/>
              <path d="M 40,304 L 40,432" fill="none" stroke="black"/>
              <path d="M 40,544 L 40,656" fill="none" stroke="black"/>
              <path d="M 64,80 L 64,112" fill="none" stroke="black"/>
              <path d="M 64,272 L 64,304" fill="none" stroke="black"/>
              <path d="M 64,512 L 64,544" fill="none" stroke="black"/>
              <path d="M 184,64 L 184,88" fill="none" stroke="black"/>
              <path d="M 184,104 L 184,112" fill="none" stroke="black"/>
              <path d="M 192,256 L 192,280" fill="none" stroke="black"/>
              <path d="M 192,296 L 192,304" fill="none" stroke="black"/>
              <path d="M 208,496 L 208,520" fill="none" stroke="black"/>
              <path d="M 208,536 L 208,544" fill="none" stroke="black"/>
              <path d="M 256,128 L 256,192" fill="none" stroke="black"/>
              <path d="M 264,320 L 264,336" fill="none" stroke="black"/>
              <path d="M 264,368 L 264,432" fill="none" stroke="black"/>
              <path d="M 280,560 L 280,624" fill="none" stroke="black"/>
              <path d="M 320,64 L 320,88" fill="none" stroke="black"/>
              <path d="M 320,104 L 320,112" fill="none" stroke="black"/>
              <path d="M 328,256 L 328,280" fill="none" stroke="black"/>
              <path d="M 328,296 L 328,304" fill="none" stroke="black"/>
              <path d="M 344,496 L 344,520" fill="none" stroke="black"/>
              <path d="M 344,536 L 344,544" fill="none" stroke="black"/>
              <path d="M 440,80 L 440,112" fill="none" stroke="black"/>
              <path d="M 440,272 L 440,304" fill="none" stroke="black"/>
              <path d="M 456,64 L 456,80" fill="none" stroke="black"/>
              <path d="M 456,256 L 456,272" fill="none" stroke="black"/>
              <path d="M 456,512 L 456,544" fill="none" stroke="black"/>
              <path d="M 472,48 L 472,64" fill="none" stroke="black"/>
              <path d="M 472,112 L 472,192" fill="none" stroke="black"/>
              <path d="M 472,240 L 472,256" fill="none" stroke="black"/>
              <path d="M 472,304 L 472,432" fill="none" stroke="black"/>
              <path d="M 472,496 L 472,512" fill="none" stroke="black"/>
              <path d="M 488,480 L 488,496" fill="none" stroke="black"/>
              <path d="M 488,544 L 488,656" fill="none" stroke="black"/>
              <path d="M 496,80 L 496,112" fill="none" stroke="black"/>
              <path d="M 496,272 L 496,304" fill="none" stroke="black"/>
              <path d="M 512,64 L 512,96" fill="none" stroke="black"/>
              <path d="M 512,256 L 512,288" fill="none" stroke="black"/>
              <path d="M 512,512 L 512,544" fill="none" stroke="black"/>
              <path d="M 520,368 L 520,384" fill="none" stroke="black"/>
              <path d="M 528,48 L 528,80" fill="none" stroke="black"/>
              <path d="M 528,240 L 528,272" fill="none" stroke="black"/>
              <path d="M 528,496 L 528,528" fill="none" stroke="black"/>
              <path d="M 544,480 L 544,512" fill="none" stroke="black"/>
              <path d="M 200,48 L 304,48" fill="none" stroke="black"/>
              <path d="M 472,48 L 528,48" fill="none" stroke="black"/>
              <path d="M 456,64 L 512,64" fill="none" stroke="black"/>
              <path d="M 8,80 L 64,80" fill="none" stroke="black"/>
              <path d="M 440,80 L 496,80" fill="none" stroke="black"/>
              <path d="M 512,80 L 528,80" fill="none" stroke="black"/>
              <path d="M 64,96 L 440,96" fill="none" stroke="black"/>
              <path d="M 496,96 L 512,96" fill="none" stroke="black"/>
              <path d="M 8,112 L 64,112" fill="none" stroke="black"/>
              <path d="M 440,112 L 496,112" fill="none" stroke="black"/>
              <path d="M 200,128 L 304,128" fill="none" stroke="black"/>
              <path d="M 48,158 L 72,158" fill="none" stroke="black"/>
              <path d="M 48,162 L 72,162" fill="none" stroke="black"/>
              <path d="M 224,158 L 248,158" fill="none" stroke="black"/>
              <path d="M 224,162 L 248,162" fill="none" stroke="black"/>
              <path d="M 264,158 L 288,158" fill="none" stroke="black"/>
              <path d="M 264,162 L 288,162" fill="none" stroke="black"/>
              <path d="M 440,158 L 464,158" fill="none" stroke="black"/>
              <path d="M 440,162 L 464,162" fill="none" stroke="black"/>
              <path d="M 208,240 L 312,240" fill="none" stroke="black"/>
              <path d="M 472,240 L 528,240" fill="none" stroke="black"/>
              <path d="M 456,256 L 512,256" fill="none" stroke="black"/>
              <path d="M 8,272 L 64,272" fill="none" stroke="black"/>
              <path d="M 440,272 L 496,272" fill="none" stroke="black"/>
              <path d="M 512,272 L 528,272" fill="none" stroke="black"/>
              <path d="M 64,288 L 440,288" fill="none" stroke="black"/>
              <path d="M 496,288 L 512,288" fill="none" stroke="black"/>
              <path d="M 8,304 L 64,304" fill="none" stroke="black"/>
              <path d="M 440,304 L 496,304" fill="none" stroke="black"/>
              <path d="M 208,320 L 312,320" fill="none" stroke="black"/>
              <path d="M 48,352 L 88,352" fill="none" stroke="black"/>
              <path d="M 416,352 L 464,352" fill="none" stroke="black"/>
              <path d="M 480,352 L 504,352" fill="none" stroke="black"/>
              <path d="M 48,400 L 64,400" fill="none" stroke="black"/>
              <path d="M 240,400 L 256,400" fill="none" stroke="black"/>
              <path d="M 272,400 L 312,400" fill="none" stroke="black"/>
              <path d="M 400,400 L 464,400" fill="none" stroke="black"/>
              <path d="M 480,400 L 504,400" fill="none" stroke="black"/>
              <path d="M 224,480 L 328,480" fill="none" stroke="black"/>
              <path d="M 488,480 L 544,480" fill="none" stroke="black"/>
              <path d="M 472,496 L 528,496" fill="none" stroke="black"/>
              <path d="M 8,512 L 64,512" fill="none" stroke="black"/>
              <path d="M 456,512 L 512,512" fill="none" stroke="black"/>
              <path d="M 528,512 L 544,512" fill="none" stroke="black"/>
              <path d="M 64,528 L 456,528" fill="none" stroke="black"/>
              <path d="M 512,528 L 528,528" fill="none" stroke="black"/>
              <path d="M 8,544 L 64,544" fill="none" stroke="black"/>
              <path d="M 456,544 L 512,544" fill="none" stroke="black"/>
              <path d="M 224,560 L 328,560" fill="none" stroke="black"/>
              <path d="M 48,592 L 120,592" fill="none" stroke="black"/>
              <path d="M 208,592 L 272,592" fill="none" stroke="black"/>
              <path d="M 48,638 L 64,638" fill="none" stroke="black"/>
              <path d="M 48,642 L 64,642" fill="none" stroke="black"/>
              <path d="M 464,638 L 480,638" fill="none" stroke="black"/>
              <path d="M 464,642 L 480,642" fill="none" stroke="black"/>
              <path d="M 200,48 C 191.16936,48 184,55.16936 184,64" fill="none" stroke="black"/>
              <path d="M 304,48 C 312.83064,48 320,55.16936 320,64" fill="none" stroke="black"/>
              <path d="M 200,128 C 191.16936,128 184,120.83064 184,112" fill="none" stroke="black"/>
              <path d="M 304,128 C 312.83064,128 320,120.83064 320,112" fill="none" stroke="black"/>
              <path d="M 208,240 C 199.16936,240 192,247.16936 192,256" fill="none" stroke="black"/>
              <path d="M 312,240 C 320.83064,240 328,247.16936 328,256" fill="none" stroke="black"/>
              <path d="M 208,320 C 199.16936,320 192,312.83064 192,304" fill="none" stroke="black"/>
              <path d="M 312,320 C 320.83064,320 328,312.83064 328,304" fill="none" stroke="black"/>
              <path d="M 504,352 C 512.83064,352 520,359.16936 520,368" fill="none" stroke="black"/>
              <path d="M 504,400 C 512.83064,400 520,392.83064 520,384" fill="none" stroke="black"/>
              <path d="M 224,480 C 215.16936,480 208,487.16936 208,496" fill="none" stroke="black"/>
              <path d="M 328,480 C 336.83064,480 344,487.16936 344,496" fill="none" stroke="black"/>
              <path d="M 224,560 C 215.16936,560 208,552.83064 208,544" fill="none" stroke="black"/>
              <path d="M 328,560 C 336.83064,560 344,552.83064 344,544" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="488,640 476,634.4 476,645.6" fill="black" transform="rotate(0,480,640)"/>
              <polygon class="arrowhead" points="488,400 476,394.4 476,405.6" fill="black" transform="rotate(180,480,400)"/>
              <polygon class="arrowhead" points="488,352 476,346.4 476,357.6" fill="black" transform="rotate(180,480,352)"/>
              <polygon class="arrowhead" points="472,400 460,394.4 460,405.6" fill="black" transform="rotate(0,464,400)"/>
              <polygon class="arrowhead" points="472,352 460,346.4 460,357.6" fill="black" transform="rotate(0,464,352)"/>
              <polygon class="arrowhead" points="472,160 460,154.4 460,165.6" fill="black" transform="rotate(0,464,160)"/>
              <path class="jump" d="M 344,536 C 338,536 338,520 344,520" fill="none" stroke="black"/>
              <path class="jump" d="M 328,296 C 322,296 322,280 328,280" fill="none" stroke="black"/>
              <path class="jump" d="M 320,104 C 314,104 314,88 320,88" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="280,592 268,586.4 268,597.6" fill="black" transform="rotate(0,272,592)"/>
              <polygon class="arrowhead" points="280,400 268,394.4 268,405.6" fill="black" transform="rotate(180,272,400)"/>
              <polygon class="arrowhead" points="272,160 260,154.4 260,165.6" fill="black" transform="rotate(180,264,160)"/>
              <polygon class="arrowhead" points="264,400 252,394.4 252,405.6" fill="black" transform="rotate(0,256,400)"/>
              <polygon class="arrowhead" points="256,160 244,154.4 244,165.6" fill="black" transform="rotate(0,248,160)"/>
              <path class="jump" d="M 208,536 C 214,536 214,520 208,520" fill="none" stroke="black"/>
              <path class="jump" d="M 192,296 C 198,296 198,280 192,280" fill="none" stroke="black"/>
              <path class="jump" d="M 184,104 C 190,104 190,88 184,88" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="56,640 44,634.4 44,645.6" fill="black" transform="rotate(180,48,640)"/>
              <polygon class="arrowhead" points="56,592 44,586.4 44,597.6" fill="black" transform="rotate(180,48,592)"/>
              <polygon class="arrowhead" points="56,400 44,394.4 44,405.6" fill="black" transform="rotate(180,48,400)"/>
              <polygon class="arrowhead" points="56,352 44,346.4 44,357.6" fill="black" transform="rotate(180,48,352)"/>
              <polygon class="arrowhead" points="56,160 44,154.4 44,165.6" fill="black" transform="rotate(180,48,160)"/>
              <g class="text">
                <text x="16" y="36">(1)</text>
                <text x="72" y="36">Proxied</text>
                <text x="148" y="36">Connection</text>
                <text x="252" y="84">Network(s)</text>
                <text x="36" y="100">Client</text>
                <text x="468" y="100">Server</text>
                <text x="92" y="164">User</text>
                <text x="168" y="164">Data+Metadata</text>
                <text x="308" y="164">User</text>
                <text x="384" y="164">Data+Metadata</text>
                <text x="92" y="180">Secure</text>
                <text x="164" y="180">Connection</text>
                <text x="216" y="180">1</text>
                <text x="308" y="180">Secure</text>
                <text x="380" y="180">Connection</text>
                <text x="432" y="180">2</text>
                <text x="16" y="228">(2)</text>
                <text x="88" y="228">Out-of-band</text>
                <text x="172" y="228">Metadata</text>
                <text x="240" y="228">Sharing</text>
                <text x="260" y="276">Network(s)</text>
                <text x="36" y="292">Client</text>
                <text x="468" y="292">Server</text>
                <text x="132" y="356">End-to-End</text>
                <text x="204" y="356">Secure</text>
                <text x="276" y="356">Connection</text>
                <text x="328" y="356">+</text>
                <text x="356" y="356">User</text>
                <text x="396" y="356">Data</text>
                <text x="500" y="372">GLUE</text>
                <text x="496" y="388">CXs</text>
                <text x="108" y="404">Metadata</text>
                <text x="188" y="404">(Optional)</text>
                <text x="356" y="404">Metadata</text>
                <text x="100" y="420">Secure</text>
                <text x="172" y="420">Connection</text>
                <text x="224" y="420">1</text>
                <text x="324" y="420">Secure</text>
                <text x="396" y="420">Connection</text>
                <text x="448" y="420">2</text>
                <text x="16" y="468">(3)</text>
                <text x="100" y="468">Client-centric</text>
                <text x="196" y="468">Metadata</text>
                <text x="264" y="468">Sharing</text>
                <text x="276" y="516">Network(s)</text>
                <text x="36" y="532">Client</text>
                <text x="484" y="532">Server</text>
                <text x="164" y="596">Metadata</text>
                <text x="132" y="612">Secure</text>
                <text x="204" y="612">Connection</text>
                <text x="116" y="644">End-to-End</text>
                <text x="188" y="644">Secure</text>
                <text x="260" y="644">Connection</text>
                <text x="324" y="644">User</text>
                <text x="400" y="644">Data+Metadata</text>
                <text x="280" y="660">|</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
(1)  Proxied Connection
                       .--------------.                   +------+
                      |                |                +-+----+ |
+------+              |   Network(s)   |              +-+----+ +-+
|Client+--------------)----------------(--------------+Server+-+
+---+--+              |                |              +---+--+
    |                  '-------+------'                   |
    |                          |                          |
    +<===User Data+Metadata===>+<===User Data+Metadata===>+
    |   Secure Connection 1    |   Secure Connection 2    |
    |                          |                          |

(2)  Out-of-band Metadata Sharing
                        .--------------.                  +------+
                       |                |               +-+----+ |
+------+               |   Network(s)   |             +-+----+ +-+
|Client+---------------)----------------(-------------+Server+-+
+---+--+               |                |             +---+--+
    |                   '-------+------'                  |
    |                           |                         |
    +<-----End-to-End Secure Connection + User Data------>+<---.
    |                           |                         | GLUE|
    |                           |                         | CXs |
    +<-- Metadata (Optional) -->+<----- Metadata -------->+<---'
    |    Secure Connection 1    |    Secure Connection 2  |
    |                           |                         |

(3)  Client-centric Metadata Sharing
                          .--------------.                  +------+
                         |                |               +-+----+ |
+------+                 |   Network(s)   |             +-+----+ +-+
|Client+-----------------)----------------(-------------+Server+-+
+---+--+                 |                |             +---+--+
    |                     '-------+------'                  |
    |                             |                         |
    +<--------- Metadata -------->+                         |
    |        Secure Connection    |                         |
    |                             |                         |
    +<== End-to-End Secure Connection User Data+Metadata ==>+
    |                             |                         |
]]></artwork>
        </artset>
      </figure>
      <t>The document is a generic framework that would function in any network deployment. This framework can be leveraged by any transport protocol (see <xref target="extending"/>). To illustrate the framework's applicability this document focuses on QUIC transport.</t>
      <t>The design supports multiple CIDFI and QUIC implementations on one
host (i.e., by several applications), cellular devices providing IP
connectivity to other devices (see <xref section="3" sectionFormat="of" target="RFC7649"/>), multiple
CIDFI-aware network elements (e.g., Wi-Fi and an ISP network), DOCSIS and
5G networks, and hosts
behind one or more IPv4 NATs or other IP translation technologies.  A comprehensive list of such translation technologies is provided in <xref section="2.2" sectionFormat="of" target="RFC8512"/>.</t>
    </section>
    <section anchor="overview">
      <name>Overview</name>
      <t>This document defines CIDFI (pronounced "sid fye") which is a system
of several protocols that allow communicating about a <xref target="QUIC"/>
connection 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. The following main steps
are involved in CIDFI; some of them are optional:</t>
      <ul spacing="normal">
        <li>
          <t>CIDFI-awareness discovery between a host and a network.</t>
        </li>
        <li>
          <t>Establishment of a secure association with all or a subset of CIDFI-aware
networks.</t>
        </li>
        <li>
          <t>Negotiation of CIDFI support with remote servers.</t>
        </li>
        <li>
          <t>CIDFI-aware networks sharing of changes of network conditions.</t>
        </li>
        <li>
          <t>CIDFI-aware clients sharing of metadata with CIDFI-aware networks as hints
to help processing flows.</t>
        </li>
        <li>
          <t>CIDFI-aware clients sharing of metadata with CIDFI-aware server to adapt
to local network conditions.</t>
        </li>
      </ul>
      <t><strong>CIDFI does not require that all these steps are enabled</strong>. Incremental
deployments may be envisaged (e.g., network and client support, network, client,
and server support). Differentiated service can
be provided to a flow, packets within a flow, or a combination thereof as a function
of the CIDFI support by various involved entities. For example, a CIDFI-aware network
might share signals with clients that would then trigger locally connection migration or relay
the information to the server (if it is CIDFI-aware) to adjust its sending behavior
by avoiding aggressive use of local resources or using alternate paths. <xref target="metadata-exchanged"/>
further elaborates on the differentiated service that can be provided by enabling CIDFI.</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 Network (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. Readers may refer to Appendix C
of <xref target="I-D.ietf-teas-5g-ns-ip-mpls"/> for an overview of key 5G building blocks.</t>
      <t>For the sake of illustration, <xref target="fig-arch"/> simplifies the representation
of the various involved network segments. It also assumes that multiple
server instances are enabled in the server network but the document
does not make any assumption about the internal structure of the service
nor how a flow is processed by or steered to a service instance. However,
CIDFI includes provisions to ensure that the service instance that is
selected to service a client request is the same instance that will
receive CIDFI metadata for that client.</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="400" width="560" viewBox="0 0 560 400" 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 8,288 L 8,352" fill="none" stroke="black"/>
              <path d="M 48,256 L 48,288" 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 88,288 L 88,352" fill="none" stroke="black"/>
              <path d="M 96,48 L 96,144" fill="none" stroke="black"/>
              <path d="M 152,48 L 152,144" fill="none" stroke="black"/>
              <path d="M 168,32 L 168,80" fill="none" stroke="black"/>
              <path d="M 168,112 L 168,216" fill="none" stroke="black"/>
              <path d="M 168,232 L 168,384" fill="none" stroke="black"/>
              <path d="M 184,48 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,128" fill="none" stroke="black"/>
              <path d="M 240,176 L 240,256" fill="none" stroke="black"/>
              <path d="M 264,80 L 264,112" fill="none" stroke="black"/>
              <path d="M 264,208 L 264,240" fill="none" stroke="black"/>
              <path d="M 320,80 L 320,112" 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,384" fill="none" stroke="black"/>
              <path d="M 360,144 L 360,176" fill="none" stroke="black"/>
              <path d="M 376,96 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,152" fill="none" stroke="black"/>
              <path d="M 432,168 L 432,384" fill="none" stroke="black"/>
              <path d="M 448,112 L 448,192" fill="none" stroke="black"/>
              <path d="M 464,96 L 464,112" fill="none" stroke="black"/>
              <path d="M 480,80 L 480,96" fill="none" stroke="black"/>
              <path d="M 520,112 L 520,192" fill="none" stroke="black"/>
              <path d="M 536,96 L 536,160" fill="none" stroke="black"/>
              <path d="M 552,80 L 552,144" 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 264,80 L 320,80" fill="none" stroke="black"/>
              <path d="M 480,80 L 552,80" fill="none" stroke="black"/>
              <path d="M 240,96 L 264,96" fill="none" stroke="black"/>
              <path d="M 320,96 L 376,96" fill="none" stroke="black"/>
              <path d="M 464,96 L 536,96" fill="none" stroke="black"/>
              <path d="M 8,112 L 64,112" fill="none" stroke="black"/>
              <path d="M 264,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 536,144 L 552,144" fill="none" stroke="black"/>
              <path d="M 416,160 L 448,160" fill="none" stroke="black"/>
              <path d="M 520,160 L 536,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 448,192 L 520,192" fill="none" stroke="black"/>
              <path d="M 264,208 L 320,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 8,288 L 88,288" fill="none" stroke="black"/>
              <path d="M 8,352 L 88,352" 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="80" y="100">-B-</text>
                <text x="120" y="100">Wi-Fi</text>
                <text x="168" y="100">-B-</text>
                <text x="204" y="100">edge</text>
                <text x="292" 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="484" y="180">server</text>
                <text x="44" y="196">CIDFI-</text>
                <text x="212" y="196">CIDFI-</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="44" y="308">CIDFI-</text>
                <text x="40" y="324">aware</text>
                <text x="40" y="340">app</text>
                <text x="384" y="372">Transit</text>
                <text x="476" y="372">Server</text>
                <text x="44" y="388">User</text>
                <text x="96" y="388">Network</text>
                <text x="216" y="388">ISP</text>
                <text x="264" y="388">Network</text>
                <text x="384" y="388">Network</text>
                <text x="480" y="388">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   +-+
+---------+         | +------+            | +-+----+ | | server |
| CIDFI-  |         | |CIDFI-|            |   |      | +--------+
| aware   |         | |aware |  +------+  |   |      |
| client  +-----B-----+RAN   +--+router+------+      |
|(handset)|         | |router|  +------+  |          |
+----+----+         | +------+            |          |
     |              |                     |          |
+----+----+         |                     |          |
| CIDFI-  |         |                     |          |
| aware   |         |                     |          |
|  app    |         |                     |          |
+---------+         |                     |          |
                    |                     | 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 (n2h) and it sends mapping of QUIC
Destination CIDs to packet importance (h2n).</t>
      <t>The design creates new state in the CIDFI-aware network elements for
mapping from Destination CID to the packet metadata and maintaining
triggers to update the client if the network characteristics change,
and to maintain a TLS channel with the client.</t>
      <t><xref target="network-to-host"/> describes network-to-host 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><xref target="host-to-network"/> describes host-to-network
metadata signaling similar to the use cases described in <xref section="3" sectionFormat="of" target="I-D.joras-sadcdn"/>.  The host-to-network metadata signaling can
also benefit <xref target="I-D.ietf-avtcore-rtp-over-quic"/>.</t>
      <t>CIDFI brings benefits to QUIC as that protocol is of primary interest.
QUIC is quickly replacing HTTPS-over-TCP on many websites and content
delivery networks because of its advantages to both end users and
servers.  CIDFI can bring value to a system comprised solely of a
CIDFI-aware client and the CIDFI-aware network elements.  By adding a
CIDFI-aware server that supports QUIC unreliable datagrams
<xref target="RFC9221"/> and API integration (see <xref target="api-integration"/>), each
packet can receive differentiated service from the network.  This is
especially useful during user transitions from a high quality wireless
reception to lower quality reception (e.g., entering a building).
Additionally, CIDFI can be extended to other protocols as discussed in
<xref target="extending"/>.</t>
      <section anchor="operation-with-streaming-video">
        <name>Operation with Streaming Video</name>
        <dl>
          <dt>Incremental deployment:</dt>
          <dd>
            <t>Streaming video only needs to be transmitted slightly faster than the
video playout rate.  Sending the video significantly faster can waste
bandwidth, most notably if the user abandons the video early.  Worse, as discussed in <xref section="3.10" sectionFormat="of" target="RFC8517"/>, a fast download of a video that won't be viewed completely by the subscriber may lead to quick exhaustion of the user data quota. CIDFI
helps this use-case with its network-to-host signaling which informs
the client of available bandwidth allowing the client to choose
a compatible video stream.  This functionality does not need a CIDFI-
aware server.</t>
          </dd>
          <dt>Full system deployment:</dt>
          <dd>
            <t>With reliable transport such as TCP, the only purpose of
video key frames is the user scrolling forward/backward.  When
video streaming uses unreliable transport (<xref target="RFC9221"/>)
it is beneficial to differentiate keyframes from predictive
frames on the network especially when the network performs
reactive policy management.  When the server also supports CIDFI,
key frames can be differentiated which improves user experience
during linear playout.</t>
          </dd>
        </dl>
      </section>
      <section anchor="operation-with-interactive-audiovideoscreen-sharing">
        <name>Operation with Interactive Audio/Video/Screen sharing</name>
        <dl>
          <dt>Incremental deployment:</dt>
          <dd>
            <t>With interactive sessions CIDFI can help determine the bandwidth
available for the flow so the video (and screen sharing) quality and
size can be constrained to the available bandwidth.  This benefit
can be deployed locally with a CIDFI-aware client and CIDFI-aware
network.</t>
          </dd>
          <dt>Full system deployment:</dt>
          <dd>
            <t>When the remote peer also supports CIDFI, the remote peer can
differentiate packets containing audio, video, or screen sharing.  In
certain use-cases audio is the most important whereas in other
use-cases screen sharing is most important.  With CIDFI, the relative
importance of each packet can be differentiated as that relative
importance changes during a session.</t>
          </dd>
        </dl>
      </section>
    </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?>

<t>The document makes use of the following terms:</t>
      <dl>
        <dt>CID:</dt>
        <dd>
          <t>Connection Identifier used by <xref target="QUIC"/>.</t>
        </dd>
        <dt>CNE:</dt>
        <dd>
          <t>CIDFI-aware Network Element, a network element that
supports this CIDFI specification.  This is typically a router.</t>
        </dd>
        <dt>Differentiated service:</dt>
        <dd>
          <t>Refers to a differentiated processing that can be provided to a flow (or specific packets within a flow) by a network, client, or server.</t>
        </dd>
        <dt/>
        <dd>
          <t>Examples of differentiated service are: prioritization, adaptive transmission, or traffic steering.</t>
        </dd>
      </dl>
      <section anchor="notations">
        <name>Notations</name>
        <t>For discussion purposes, JSON is used in the examples to give a flavor of the
data that the client retrieves from a CNE.  The authors
anticipate using a more efficient encoding such as <xref target="CBOR"/>.</t>
      </section>
    </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.</t>
        </dd>
        <dt>Same Server Instance:</dt>
        <dd>
          <t>When the server also participates in CIDFI, the same QUIC connection is used for CIDFI
communication with that server,
which ensures it arrives at the same server instance even in the presence of
network translators (NAT) or server-side ECMP load balancers or server-side CID-aware
load balancers <xref target="I-D.ietf-quic-load-balancers"/>.</t>
        </dd>
        <dt>Privacy:</dt>
        <dd>
          <t>The host-to-network signaling of the mapping from packet metadata to CID is only sent to CIDFI-aware network
elements (CNEs) and is protected by TLS.  The network-to-host signaling of network metadata is protected by TLS.  For
CIDFI to operate, a CNE never needs the server's identity, and a CNE is never provided decryption keys for
the QUIC communication between the client and server.</t>
        </dd>
        <dt>Integrity:</dt>
        <dd>
          <t>Metadata sharing, including the mapping of packet importance to Destination CIDs, are
integrity protected by QUIC itself and cannot be modified by on-path
network elements.  The communication between client, server, and
network elements is protected by TLS.</t>
        </dd>
        <dt/>
        <dd>
          <t>Packet metadata is communicated over a
TLS-encrypted channel from the CIDFI client to its CIDFI-aware network elements,
and mapped to integrity-protected QUIC CIDs.</t>
        </dd>
        <dt>Internet Survival:</dt>
        <dd>
          <t>The QUIC communications between clients
and servers are not changed so CIDFI is expected to work wherever QUIC
works.  The elements involved are only the QUIC
client and server and with the participating CIDFI-aware network elements.</t>
        </dd>
        <dt/>
        <dd>
          <t>CIDFI can operate over IPv4, IPv6, IPv4/IPv4 translation (NAT), and IPv6/IPv4
translation (NAT64).</t>
        </dd>
        <dt>Fast Path Forwarding Support:</dt>
        <dd>
          <t>For some differentiated services (e.g., capacity awareness), CIDFI does not require specific
processing by on-path network devices. For others, once a state is programmed (CIDs, for example)
no other forwarding constraint is required at CNEs.</t>
        </dd>
        <dt>Single Encryption and No Nested Congestion Control:</dt>
        <dd>
          <t>CIDFI does not require any tunneling mechanism or any overhead
of multi-layer encryption schemes that would impact CNEs processing. CIDFI uses the
base connection to convey specific signals. Unlike tunneling mechanisms, CIDFI does not
suffer from nested congestion control.</t>
        </dd>
      </dl>
    </section>
    <section anchor="network-configuration-to-support-cidfi">
      <name>Network Configuration to Support CIDFI</name>
      <t>The network is configured to advertise its support for CIDFI.</t>
      <t>For this step, four mechanisms are described in this document: DNS
SVCB records <xref target="RFC9460"/>, IPv6 Provisioning Domains (PvD) <xref target="RFC8801"/>, DHCP <xref target="RFC2131"/><xref target="RFC8415"/>, and 3GPP PCO.
These are described in the following sub-sections.</t>
      <ul empty="true">
        <li>
          <t>Standardizing all or some of these mechanisms is for further discussion.</t>
        </li>
      </ul>
      <section anchor="dns-svcb-records">
        <name>DNS SVCB Records</name>
        <t>This document defines a new DNS Service Binding parameter "cidfi-aware" in
<xref target="iana-svcb"/> and a new Special-Use Domain Name "cidfi.arpa" in
<xref target="iana-sudn"/>.</t>
        <t>The local network is configured to respond to DNS SVCB
<xref target="RFC9460"/> queries with ServiceMode (<xref section="2.4.3" sectionFormat="of" target="RFC9460"/>) 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 CNEs on the local network, one belonging
to the local ISP (example.net) and the other belonging to the local
Wi-Fi network (example.com).</t>
        <figure anchor="svcb-ex">
          <name>Example of SVCB Records</name>
          <artwork align="center"><![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>
        </figure>
        <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="provisioning-domains">
        <name>Provisioning Domains</name>
        <t>The CIDFI networks are configured to set the H-flag so clients can
request PvD Additional Information (<xref section="4.1" sectionFormat="of" target="RFC8801"/>).</t>
        <t>The "application/pvd+json" returned looks like what is depicted in <xref target="pvd-ex"/> when there are two
CIDFI-aware network elements, service-cidfi and wi-fi.</t>
        <figure anchor="pvd-ex">
          <name>Example of PvD Information</name>
          <artwork align="center"><![CDATA[
{
   "cidfi":[
      {
         "cidfinode":"service-cidfi.example.net",
         "min-ttl":3,
         "cidfipathauth":"/path-auth-query{?cidfi}",
         "cidfimetadata":"/cidfi-metadata"
      },
      {
         "cidfinode":"wi-fi.example.net",
         "min-ttl":2,
         "cidfipathauth":"/path-auth-query{?cidfi}",
         "cidfimetadata":"/cidfi-metadata"
      }
   ]
}
]]></artwork>
        </figure>
        <t>Multiple CIDFI-aware network elements on a network path will require
propagating the Provisioning Domain Additional Information.  For
example, a CIDFI-aware Wi-Fi access point connected to a CIDFI-aware
5G network will require the information for both CIDFI networks be available
to the client, in a single Provisioning Domain Additional Information
request.  This means the Wi-Fi access point has to obtain that information
so the Wi-Fi access point can provide both the 5G network's information
and the Wi-Fi access point's information.</t>
      </section>
      <section anchor="dhcp-or-3gpp-pco">
        <name>DHCP or 3GPP PCO</name>
        <t>The network is configured to respond to DHCPv6, DHCPv4 sub-option,
or 3GPP PCO (Protocol Configuration Option) Information Element.</t>
      </section>
    </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 discovered network elements (<xref target="client-authorizes"/>).</t>
      <section anchor="discovery">
        <name>Client Learns Local Network Supports CIDFI</name>
        <t>For this step, four mechanisms are identified: DNS SVCB records, IPv6
PvD, DHCP, or 3GPP PCO.  These are described
in the following sub-sections.</t>
        <t>In all cases below,</t>
        <ul spacing="normal">
          <li>
            <t>if the discovery succeeds (i.e., the client concludes that the local
and/or ISP network support CIDFI) client processing proceeds to
<xref target="client-authorizes"/>.</t>
          </li>
          <li>
            <t>if the discovery failed (i.e., the client concludes that the local
network and ISP do not support CIDFI) client processing stops.</t>
          </li>
        </ul>
        <section anchor="client-learns-using-dns-svcb">
          <name>Client Learns Using DNS SVCB</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="RFC9460"/>.</t>
        </section>
        <section anchor="client-learns-using-provisioning-domain">
          <name>Client Learns Using Provisioning Domain</name>
          <t>The client determines if the local network supports CIDFI by
querying https://&lt;PvD-ID&gt;/.well-known/pvd as described in <xref section="4.1" sectionFormat="of" target="RFC8801"/>.</t>
        </section>
        <section anchor="client-learns-using-dhcp-or-3gpp-pco">
          <name>Client Learns Using DHCP or 3GPP PCO</name>
          <t>The client determines that a local network is CIDFI-capable if the
client receives an explicit signal from the network, e.g., via a
dedicated DHCP option or a 3GPP PCO (Protocol Configuration Option)
Information Element. An example of explicit signal would be a DHCPv6
option or DHCPv4 sub-option that that is returned as part of
<xref target="RFC7839"/>.</t>
        </section>
      </section>
      <section anchor="client-authorizes">
        <name>Client Authorizes CIDFI-aware Network Elements</name>
        <t>The response from the previous step in <xref target="discovery"/> will contain one or more
CNEs.</t>
        <t>The client authorizes each of the CNEs using
a local policy.  This policy is implementation-specific.  An
implementation example might have the users authorize their ISP's CIDFI server
(e.g., allow "cidfi.example.net" if a user's ISP is configured with
"example.net").  Similarly, if none of the CNEs are recognized by the client, the client
might silently avoid using CIDFI on that network.</t>
        <t>After authorizing that subset of CNEs, the
client makes a new HTTPS connection to each of those CNEs
and performs PKIX validation of their certificates.
The client <bcp14>MAY</bcp14> have to authenticate itself to the CNE.</t>
        <t>The client then obtains the CIDFI nonce and CIDFI HMAC
secret from each CNE used later in <xref target="ownership"/> to prove
the client owns its UDP 4-tuple.</t>
        <figure anchor="hmac-ex">
          <name>Example of CIDFI HMAC and Nonce</name>
          <artwork align="center"><![CDATA[
{
   "cidfi-path-authentication":[
      {
         "nonce":"ddqwohxGZysgy0BySNh7sNHV5IH9RbE7rqXmg9wb9Npo",
         "hmac-secret":"jLNsCvuU59mt3F4/ePD9jbZ932TfsLSOP2Nx3XnUqc8v"
      }
   ]
}
]]></artwork>
        </figure>
      </section>
    </section>
    <section anchor="client-operation-on-each-connection-to-a-server">
      <name>Client Operation on Each Connection to a Server</name>
      <t>When a QUIC client connects to a QUIC server, the client:</t>
      <ol spacing="normal" type="1"><li>
          <t>learns if the server supports CIDFI
and obtains its mapping of transmitted Destination CIDs to metadata, described
in <xref target="server-supports-cidfi"/>.</t>
        </li>
        <li>
          <t>proves ownership of its UDP 4-tuple to
the on-path CNEs, described in <xref target="ownership"/>.</t>
        </li>
        <li>
          <t>performs initial metadata exchange
with the CIDFI network element and server, and server and network element,
described in <xref target="initial-metadata-exchange"/>.</t>
        </li>
        <li>
          <t>for the duration of the connection, receives network-to-host and performs
host-to-network updates as network conditions or network requirements change,
described in <xref target="ongoing"/>. Some policies are provided to CNEs to control which network changes can trigger updating clients.</t>
        </li>
      </ol>
      <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 "enable_cidfi" (TBD1) (<xref target="iana-tp"/>) which is remembered for 0-RTT.</t>
        <t>If the server does not indicate CIDFI support by means of enable_cidfi transport parameter, the client can still
perform CIDFI -- but does not expect different CIDs to indicate
differentiated behavior.  The client can still signal to its CNE(s) about
the flow, because the client knows some characteristics of the flow it
is receiving.  For example, if the client requested streaming video of
a certain bandwidth from a server or participated in a WebRTC
offer/answer exchange, the client knows some connectivity expectation about the
incoming flow without the server supporting CIDFI.  Processing
continues with the next step.</t>
        <t>The QUIC client and server exchange CIDFI information using the new
CIDFI_NEW_CONNECTION_ID_MAPPING frame type as described in
<xref target="initial-metadata-exchange"/>.</t>
        <t>Processing continues with the next step.</t>
      </section>
      <section anchor="ownership">
        <name>Client Proves Ownership of its UDP 4-Tuple</name>
        <ul empty="true">
          <li>
            <t>Optimizations to this mechanism are being considered while
  maintaining support for multiple CIDFI and QUIC implementations on
  one host (i.e., by several applications) and support for cellular devices
  providing IP connectivity to other devices (see <xref section="3" sectionFormat="of" target="RFC7849"/>).</t>
          </li>
        </ul>
        <t>To ensure that the client messages to a 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 over the path that involves that CNE. 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 number.  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 CNEs
the single STUN indication contains a CIDFI-NONCE attribute from each of
them.  This message is discarded, if received, by the QUIC server.</t>
        <t>In order to avoid overloading servers, the client may set the TTL/Hop Limit
to a value that allows to cross the CNE, but then discarded before reaching the server.
For example, the host sets the TTL to "min-ttl" that is returned during CNE discovery.</t>
        <t><xref target="flow-diag-attach"/> shows a summarized message flow obtaining
the nonce and HMAC secret from the CNE (steps 1-2) which is performed
on network attach.  The CNE also sends active_cidfi_connection_id_limit
in step 2.</t>
        <figure anchor="flow-diag-attach">
          <name>Example of Flow Exchange</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="176" width="496" viewBox="0 0 496 176" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,64 L 24,160" fill="none" stroke="black"/>
                <path d="M 320,96 L 320,112" fill="none" stroke="black"/>
                <path d="M 320,144 L 320,160" fill="none" stroke="black"/>
                <path d="M 472,64 L 472,160" fill="none" stroke="black"/>
                <path d="M 24,96 L 312,96" fill="none" stroke="black"/>
                <path d="M 32,144 L 320,144" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="320,96 308,90.4 308,101.6" fill="black" transform="rotate(0,312,96)"/>
                <polygon class="arrowhead" points="40,144 28,138.4 28,149.6" fill="black" transform="rotate(180,32,144)"/>
                <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="52" y="84">1.</text>
                  <text x="92" y="84">HTTPS:</text>
                  <text x="148" y="84">Enroll</text>
                  <text x="200" y="84">CIDFI</text>
                  <text x="252" y="84">router</text>
                  <text x="292" y="84">to</text>
                  <text x="352" y="84">participate</text>
                  <text x="52" y="116">2.</text>
                  <text x="92" y="116">HTTPS:</text>
                  <text x="136" y="116">Ok.</text>
                  <text x="208" y="116">nonce=12345</text>
                  <text x="196" y="132">active_cidfi_connection_id_limit</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
 QUIC                            CIDFI-aware            QUIC
client                           edge router           server
  |                                    |                  |
  |  1. HTTPS: Enroll CIDFI router to participate         |
  +----------------------------------->|                  |
  |  2. HTTPS: Ok.  nonce=12345        |                  |
  |     active_cidfi_connection_id_limit                  |
  |<-----------------------------------+                  |
  |                                    |                  |
]]></artwork>
          </artset>
        </figure>
        <t>Later, when connecting to a new QUIC server, the client
determines if there are on-path CIDFI Network Elements by sending the
nonce and HMAC in the same UDP 4-tuple as the QUIC connect
(step 2).  This is necessary to deal with both IP address spoofing
and with multiple QUIC+CIDFI implementations running on the same
host; each QUIC+CIDFI implementation pair should only be able to
modify treatment of its own flows, not of other flows to other
UDP flows running on that same host.</t>
        <t>If a CIDFI Network Element is present on the path it processes the STUN
Indication and sends a response to the client over HTTP using the
HTTP channel established above.  It decrements the IPv4 TTL or IPv6
Hop Limit and forwards the STUN Indication along its normal path,
to accommodate another CIDFI Network Element farther away from the
client.</t>
        <figure anchor="flow-diag-connect">
          <name>Example of Flow to New Server</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="368" width="512" viewBox="0 0 512 368" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,64 L 24,352" fill="none" stroke="black"/>
                <path d="M 320,136 L 320,176" fill="none" stroke="black"/>
                <path d="M 320,208 L 320,256" fill="none" stroke="black"/>
                <path d="M 320,328 L 320,352" 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 24,96 L 464,96" fill="none" stroke="black"/>
                <path d="M 24,128 L 464,128" fill="none" stroke="black"/>
                <path d="M 32,240 L 320,240" fill="none" stroke="black"/>
                <path d="M 24,288 L 312,288" fill="none" stroke="black"/>
                <path d="M 32,320 L 472,320" fill="none" stroke="black"/>
                <path d="M 32,352 L 320,352" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="472,128 460,122.4 460,133.6" fill="black" transform="rotate(0,464,128)"/>
                <polygon class="arrowhead" points="472,96 460,90.4 460,101.6" fill="black" transform="rotate(0,464,96)"/>
                <polygon class="arrowhead" points="320,288 308,282.4 308,293.6" fill="black" transform="rotate(0,312,288)"/>
                <polygon class="arrowhead" points="40,352 28,346.4 28,357.6" fill="black" transform="rotate(180,32,352)"/>
                <polygon class="arrowhead" points="40,320 28,314.4 28,325.6" fill="black" transform="rotate(180,32,320)"/>
                <polygon class="arrowhead" points="40,240 28,234.4 28,245.6" fill="black" transform="rotate(180,32,240)"/>
                <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="52" y="84">1.</text>
                  <text x="84" y="84">QUIC</text>
                  <text x="140" y="84">Initial,</text>
                  <text x="216" y="84">transport</text>
                  <text x="348" y="84">parameter=enable_cidfi</text>
                  <text x="52" y="116">2.</text>
                  <text x="84" y="116">STUN</text>
                  <text x="152" y="116">Indication,</text>
                  <text x="252" y="116">nonce=12345,</text>
                  <text x="348" y="116">hmac=e8FEc</text>
                  <text x="420" y="164">3.</text>
                  <text x="472" y="164">discarded</text>
                  <text x="172" y="196">4.</text>
                  <text x="196" y="196">"I</text>
                  <text x="224" y="196">saw</text>
                  <text x="252" y="196">my</text>
                  <text x="292" y="196">nonce,</text>
                  <text x="340" y="196">HMAC</text>
                  <text x="372" y="196">is</text>
                  <text x="412" y="196">valid"</text>
                  <text x="52" y="228">5.</text>
                  <text x="88" y="228">Valid</text>
                  <text x="132" y="228">STUN</text>
                  <text x="196" y="228">Indication</text>
                  <text x="280" y="228">processed</text>
                  <text x="52" y="276">6.</text>
                  <text x="92" y="276">HTTPS:</text>
                  <text x="140" y="276">"Map</text>
                  <text x="196" y="276">DCID=xyz</text>
                  <text x="244" y="276">as</text>
                  <text x="276" y="276">high</text>
                  <text x="344" y="276">importance"</text>
                  <text x="320" y="292">|</text>
                  <text x="52" y="308">7.</text>
                  <text x="84" y="308">QUIC</text>
                  <text x="140" y="308">Initial,</text>
                  <text x="216" y="308">transport</text>
                  <text x="348" y="308">parameter=enable_cidfi</text>
                  <text x="52" y="340">8.</text>
                  <text x="92" y="340">HTTPS:</text>
                  <text x="132" y="340">Ok</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
 QUIC                            CIDFI-aware            QUIC
client                           edge router           server
  |                                    |                  |
  |  1. QUIC Initial, transport parameter=enable_cidfi    |
  +------------------------------------------------------>|
  |  2. STUN Indication, nonce=12345, hmac=e8FEc          |
  +------------------------------------------------------>|
  |                                    |                  |
  |                                    |           3. discarded
  |                                    |                  |
  |                 4. "I saw my nonce, HMAC is valid"    |
  |                                    |                  |
  |  5. Valid STUN Indication processed|                  |
  |<-----------------------------------+                  |
  |                                    |                  |
  |  6. HTTPS: "Map DCID=xyz as high importance"          |
  +----------------------------------->|                  |
  |  7. QUIC Initial, transport parameter=enable_cidfi    |
  |<------------------------------------------------------+
  |  8. HTTPS: Ok                      |                  |
  |<-----------------------------------+                  |
]]></artwork>
          </artset>
        </figure>
        <ul empty="true">
          <li>
            <t>Note the above message
flow shows an initial QUIC handshake for simplicity (steps 1 and 7)
but because of QUIC connection migration (<xref section="9" sectionFormat="of" target="QUIC"/>) the
QUIC messages might appear later.</t>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <t>Also, "Map DCID=xyz as high importance" refers to a CID chosen by
the client (for traffic destined towards the client) and not
the DCID used by the client to communicate with the server.</t>
          </li>
        </ul>
        <t>The short header's Destination Connection ID (DCID) can be 0 bytes or
as short as 8 bits, so multiple QUIC clients on the same host or
on different hosts behind a NAT are likely to use the
same incoming Destination CID on their own UDP 4-tuple (Birthday Paradox). The STUN
Indication message allows the CIDFI network element to distinguish
each QUIC client's UDP 4-tuple -- both between hosts and between QUIC+CIDFI
implementations on the same host (implemented within an application).</t>
        <t>To reduce CIDFI setup time the client STUN Indication <bcp14>MAY</bcp14> be sent at
the same time as it establishes connection with the QUIC server.</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 CNE 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>
        <t>After the CIDFI Network Element receives the STUN Indication it
informs the client by sending an HTTP message to the client.  Details TBD.</t>
        <t>As the proof of ownership of its UDP 4-tuple is only useful to CIDFI
Network Elements near the client, the client <bcp14>MAY</bcp14> reduce traffic to the
server by modulating the IPv4 TTL or IPv6 Hop Limit of its STUN Indication messages. The client <bcp14>SHOULD</bcp14> set TTL/Hop Limit to "min-ttl". The client <bcp14>MAY</bcp14> use other values (e.g., explicit configuration, inferred from probe messages).</t>
        <t>Processing continues with the next step.</t>
        <section anchor="stun-cidfi-nonce-attribute">
          <name>STUN CIDFI-NONCE Attribute</name>
          <t>The format of the STUN CIDFI-NONCE attribute is shown in <xref target="fig-stun-cidfi-nonce"/>.</t>
          <figure anchor="fig-stun-cidfi-nonce">
            <name>Format of STUN 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>
          <t>When there are multiple CIDFI Network Elements on the network,
multiple CIDFI-NONCE attributes are sent in a single STUN Indication
message.</t>
        </section>
      </section>
      <section anchor="initial-metadata-exchange">
        <name>Initial Metadata Exchange</name>
        <t>If the server indicated support for CIDFI during the QUIC handshake,
the client uses its HTTPS channel with each of the CNEs it
previously authorized for CIDFI participation to map client-chosen
Destination CIDs to metadata for that CID.  As server support
of the QUIC CIDFI transport parameter is remembered for 0-RTT, the
client can immediately send the nonce.</t>
        <t>Over the QUIC connection with the server, the client sends QUIC
CIDFI_NEW_CONNECTION_ID_MAPPING frames which map the destination CID
to its metadata (e.g., high priority), not to exceed active_cidfi_connection_id_limit.</t>
        <t>As with NEW_CONNECTION_ID, the client
should allocate additional connection IDs retain client privacy during
connection migration (<xref section="9.5" sectionFormat="of" target="QUIC"/>) and those additional
CIDs should also be communicated via CIDFI_NEW_CONNECTION_ID.  In
anticipation of connection migration those additional connection IDs
are not communicated to the existing network's CNEs, but only to the
new network's CNEs.</t>
        <t>Connection IDs which are communicated using NEW_CONNECTION_ID do
not receive per-packet CIDFI treatment.  But their contribution
to bandwidth consumption is considered by the CNE.</t>
        <t>Note that 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 in <xref target="ex-lost-nonce"/>.</t>
        <figure anchor="ex-lost-nonce">
          <name>Example of a Client Re-transmitting 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="328" y="84">participate</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="324" y="196">parameter=enable_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="128" y="340">Indication,</text>
                  <text x="224" y="340">nonce=5678,</text>
                  <text x="316" y="340">HMAC=8f93e</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 participate            |
  +----------------------------------->|                  |
  |  HTTPS: Ok.  nonce=12345           |                  |
  |<-----------------------------------+                  |
  |                                    |                  |
  :                                    :                  :
  |                                    |                  |
  |  QUIC Initial, transport parameter=enable_cidfi       |
  +------------------------------------------------------>|
  |  STUN Indication, nonce=12345, HMAC=8f93e             |
  +--------------------> X (lost)      |                  |
  |                                    |                  |
  |  HTTPS: "Map DCID=xyz as high importance"             |
  +----------------------------------->|                  |
  |  HTTPS: 403, new Nonce=5678        |                  |
  |<-----------------------------------|                  |
  |  STUN Indication, nonce=5678, HMAC=8f93e              |
  +------------------------------------------------------>|
  |                                    |              discarded
  |                                    |                  |
  |                    "I saw my nonce, HMAC is valid"    |
  |                                    |                  |
  |  HTTPS: "Map DCID=xyz as high importance"             |
  +----------------------------------->|                  |
  |  Ok                                |                  |
  |<-----------------------------------+                  |
]]></artwork>
          </artset>
        </figure>
        <t>After the initial metadata is exchanged, processing continues with
ongoing host-to-network and network-to-host updates as described in
<xref target="ongoing"/>.</t>
        <t>There are two types of metadata exchanged, described in the following sub-sections.</t>
        <section anchor="host-to-network">
          <name>Host to Network Signaling</name>
          <t>The server communicates to CNEs via the client which then
communicates with the CNE(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 (<xref target="ex-comm"/>).</t>
          <figure anchor="ex-comm">
            <name>Example of CIDFI Communication</name>
            <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>
          </figure>
          <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 <xref target="metadata-exchanged"/>).</t>
        </section>
        <section anchor="network-to-host">
          <name>Network to Host Signaling</name>
          <t>The CNE sends network performance information to the server
which is intended to influence the sender's traffic rate (such as
improving or reducing fidelity of the audio or video).  In <xref target="ex-comm-metadata"/>,
the CNE informs the client of reduced bandwidth and the
client informs the server using CIDFI.</t>
          <figure anchor="ex-comm-metadata">
            <name>Example of CIDFI Communication with Metadata Sharing</name>
            <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>
          </figure>
          <t>The communication from the client to the server is 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>
    <section anchor="ongoing">
      <name>Ongoing Signaling</name>
      <t>Throughout the life of the connection host-to-network and network-to-host
signaling is updated whenever characteristics change. Still, some policies are provided to control when these updates are triggers. Such policies are meant to preserve the connection stability.</t>
      <t>Typically, due to environmental changes on wireless networks or other user's
traffic patterns, a particular flow may be able to operate faster or
might need to operate slower.  The relevant CNE <bcp14>SHOULD</bcp14> signal
such conditions to the client (<xref target="network-to-host"/>), which can then
relay that information to the server using either CIDFI or via its
application.</t>
      <t>For example, a  streaming video client might be retrieving low quality
video because one of their invoked CNEs indicated constrained
bandwidth.  Later, after moving closer to an antenna, more bandwidth is
available which is signaled by the CNE to the client.
The client uses that signal to now request higher-quality video from
the server.</t>
      <t>Similarly, the CIDFI client may begin receiving traffic
with different characteristics which might be be signaled to the CNEs.</t>
      <t>For example, a client might be participating in an audio-only call
which is modified to audio and video, requiring additional bandwidth
and likely new CIDs to differentiate the video packets from the audio
packets.</t>
    </section>
    <section anchor="load-balancers">
      <name>Interaction with Load Balancers</name>
      <t>QUIC servers are likely to be behind CID-aware load balancers <xref target="I-D.ietf-quic-load-balancers"/>.</t>
      <t>With CIDFI, all the communications to the load-balanced 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 are incompatible with
CIDFI because TCP lacks QUIC's stream identification.</t>
    </section>
    <section anchor="topology">
      <name>Topology Change</name>
      <t>When the 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.  The server will consider
this as a connection migration (<xref section="9" sectionFormat="of" target="QUIC"/>) 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>When the CIDFI-aware client determines that it is connected to a new
network or has received a QUIC PATH_CHALLENGE, the CIDFI-aware client
<bcp14>MUST</bcp14> re-discover its CNEs (<xref target="discovery"/>) and continue with normal CIDFI
processing with any discovered CNEs.  This usually means repeating
the initial metadata exchange (<xref target="initial-metadata-exchange"/>) to prove
path ownership.</t>
    </section>
    <section anchor="flushing-mapping-state">
      <name>Flushing Mapping State</name>
      <t>When the server supports CIDFI the metadata mapping creates additional
state in the client, CIDFI Network Elements, and the
server.</t>
      <t>Between the QUIC client and server when a mapping is no longer
needed it can be cleaned up with RETIRE_CONNECTION_ID.  If that
connection ID was mapped in one or more CNEs, the client <bcp14>SHOULD</bcp14>
also remove that mapping state from the CNEs.  This allows the
mapping state to be used for other CIDFI implementations on the
same host or by other hosts (belonging to the same subscriber)
or by other subscribers.</t>
      <t>As a client can disappear from a network without informing its CNE and
are unlikely to voluntarily clean up CNE state even if they remain
connected to the network, the CNE should retire its CIDFI state after
3 minutes of bi-directional inactivity on that UDP 4-tuple or a more
convenient time such as when it normally flushes its UDP NAT binding
for bi-directional inactivity.</t>
    </section>
    <section anchor="metadata-exchanged">
      <name>Details of Metadata Exchanged</name>
      <t>This section describes the metadata that can be exchanged from a
CNE to a server (generally network
performance information) and from the server to a CNE.</t>
      <section anchor="server-to-cidfi-aware-network-element">
        <name>Server to CIDFI-aware Network Element</name>
        <t>Because there is no direct communication from the server to
a CNE, the communication is relayed through the client.</t>
        <t>The communications from servers to CNEs do not occur directly,
but rather through the client.</t>
        <t>Two types of mapping metadata are described in the following sub-sections: metadata parameters
and DSCP values.</t>
        <section anchor="mapping-parameters">
          <name>Mapping Metadata Parameters to DCIDs</name>
          <t>Several of metadata parameters can be mapped to Destination CIDs:</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.</t>
            </dd>
          </dl>
          <ul empty="true">
            <li>
              <t>TODO: provide enough details to create interoperable
implementations.</t>
            </li>
          </ul>
          <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. An example is shown in <xref target="fig-import"/>.</t>
          <figure anchor="fig-import">
            <name>Example JSON for Flow Importance</name>
            <artwork type="json" align="left"><![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>
          </figure>
          <ul empty="true">
            <li>
              <t>Note: <xref target="fig-import"/> lists sample attributes and they will be discussed in detail in a separate document.</t>
            </li>
          </ul>
        </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 DSCP the CIDFI
network element could mark the packet with that code point as well.</t>
          <t>Signaling the DSCP values for different QUIC Destination CIDs
increases the edge network's confidence that 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 the mapping
information to the client when then propagates that information
to each of the CNEs.</t>
          <t>An example is shown in <xref target="fig-dscp-json"/>.</t>
          <figure anchor="fig-dscp-json">
            <name>Example JSON for DSCP Mapping</name>
            <artwork type="json" 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 CNE of the client's
received Destination CIDs.  As bandwidth availability to that client
changes, the CNE updates the client with new
metadata.</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="privacy-considerations">
      <name>Privacy Considerations</name>
      <section anchor="privacy-aware-metadata-sharing-in-network-relationships">
        <name>Privacy-Aware Metadata Sharing in Network Relationships</name>
        <t>If the network operator and the server have a business relationship,
the server can sign or attest the metadata using, e.g., JSON Web Token (JWT) <xref target="RFC7519"/> or CBOR Web Token (CWT) <xref target="RFC8392"/>. The
attested metadata will be sent from the server to the client. The client
will decide whether to convey the attested metadata to the CNE, considering
privacy reasons, as it may reveal the identity of the server to the network.
The client may use any local policy or involve the end-user in the decision-making process regarding
whether to reveal the identity of the server to the network or not.
If the attested metadata is sent to the CNE from the client, the attestation
will be utilized by the CNE, acting as a Relying Party (e.g., <xref section="7.1" sectionFormat="of" target="RFC9334"/>), to determine the
level of trust it wishes to place in the attested metadata. The relying party
may choose to trust or not trust the attestation.</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="host-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-cids-to-packet-metadata">
        <name>Overhead of Mapping CIDs 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-cid-change">
        <name>Primary QUIC Channel 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>
        <ul empty="true">
          <li>
            <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>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="state-maintenance">
      <name>State Maintenance</name>
      <t>A CNE can safely remove state after UDP inactivity timeout <xref section="4.3" sectionFormat="of" target="RFC4787"/>.  The CIDFI client <bcp14>MUST</bcp14> re-signal its CNE(s) when it
receives a QUIC path validation message, as that indicates a NAT
rebinding occurred.  A CNE's state can also be cleared by signaling from
the CIDFI client, such as when closing the application; however, this
signal cannot be relied upon due to network disconnect, battery
depletion, and suchlike.</t>
      <ul empty="true">
        <li>
          <t>TODO: Probably want keepalives on client-&gt;CNE communication. To be assessed.</t>
        </li>
      </ul>
    </section>
    <section anchor="api-integration">
      <name>API Integration for QUIC Stream and Packet-Level Prioritization</name>
      <t>For each QUIC stream requiring differentiated service, the QUIC stack can
map that stream to a different Destination CID. The application-level code
would require an API to instruct the QUIC stack that a particular stream
needs differentiated service. Similarly, if the application-level code seeks
differentiated service for packets within a stream (e.g., prioritizing P-frames
over I-Frames in a video stream), it would need an API to inform the QUIC stack
that different packets within the QUIC stream require differentiated services
and to map these packets to different Destination CIDs.</t>
      <t><strong>Where packet-level differentiation is not desired, such API enhancements
are not needed</strong>.  In that situation, the CIDFI-aware client and CIDFI-aware
network elements can utilize bandwidth information to optimize their video
streaming usage and their interactive audio/video streams, without the
benefit of packet-level differentiation.</t>
    </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>Other than what can be inferred from a destination IP address, the server's identity is not disclosed to the CIDFI Network Elements,
thus maintaining the end user's privacy.  Communications are relayed through the client because only the
client knows the identity of the server and can validate
its certificate.</t>
      <dl>
        <dt>Spoofing Attacks:</dt>
        <dd>
          <t>For an attacker to succeed with the nonce challenge against a victim's UDP 4-tuple, an attacker has to send a STUN CIDFI-NONCE packet using the victim's source IP address and a valid HMAC. A valid HMAC can be obtained by the attacker making its own connection to the CIDFI-aware server and spoofing the source IP address and UDP port number of the victim.</t>
        </dd>
        <dt/>
        <dd>
          <t>If the client does not support CIDFI, the attacker can influence the packet treatment of the victim's UDP 4-tuple.</t>
        </dd>
        <dt/>
        <dd>
          <t>If the client implements CIDFI, a CIDFI network element can identify an IP address spoofing attack. Concretely, the CNE will receive two HTTPS connections describing the same DCID; one connection from the attacker and another one from the victim. The CNE will then issue unique Nonces and HMACs to both the attacker and victim, and both the attacker and victim should send the STUN Indication on that same UDP 4-tuple. Such an event should trigger an alarm on the CNE. In this scenario, it is recommended that both the attacker and the victim be denied CIDFI access.</t>
        </dd>
        <dt/>
        <dd>
          <t>The 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"/>).</t>
        </dd>
        <dt>On-Path Attacks:</dt>
        <dd>
          <t>An on-path attacker can observe the victim's Discovery Packet, block it, and then forward the packet within the attacker's 5-tuple. Subsequently, the on-path attacker can 'steal' the victim's CIDFI control from the victim's UDP 4-tuple, causing the victim's CIDFI signaling for that UDP 4-tuple to influence the attacker's UDP 4-tuple.</t>
        </dd>
        <dt/>
        <dd>
          <t>Although the on-path attacker can't directly observe the encrypted CIDFI signaling, this attack effectively disables the victim's CIDFI treatment, making it accessible to the attacker. The attacker can send NEW_CONNECTION_ID frames to the server with the victim's (observed) Destination CID, effectively claiming the victim's CIDFI signaling for themselves. An on-path attacker can do a lot more damage by blocking or rate-limiting the victim's traffic.</t>
        </dd>
      </dl>
    </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">enable_cidfi</td>
              <td align="left">This-Document</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sec-iana-new-frame">
        <name>New QUIC Frame Type</name>
        <t>This document requests IANA to register a new value in in the "QUIC Frame Types" registry under the "QUIC" registry group available at <xref target="IANA-QUIC"/>:</t>
        <dl>
          <dt>Value:</dt>
          <dd>
            <t>TBDF2</t>
          </dd>
          <dt>Frame Name:</dt>
          <dd>
            <t>CIDFI_NEW_CONNECTION_ID_MAPPING</t>
          </dd>
          <dt>Status:</dt>
          <dd>
            <t>permanent</t>
          </dd>
          <dt>Specification:</dt>
          <dd>
            <t>This-Document</t>
          </dd>
        </dl>
      </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>
        <t>The document also requests IANA to register the following service parameter
in the "Service Parameter Keys (SvcParamKeys)" registry <xref target="IANA-SVCB"/>:</t>
        <dl>
          <dt>Number:</dt>
          <dd>
            <t>TBD</t>
          </dd>
          <dt>Name:</dt>
          <dd>
            <t>min-ttl</t>
          </dd>
        </dl>
        <t>Meaning:
:The minimum IPv4 TTL or IPv6 Hop Limit to use for a connection.</t>
        <dl>
          <dt>Reference:</dt>
          <dd>
            <t>This-Document</t>
          </dd>
        </dl>
      </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 anchor="iana-pvd">
        <name>New Provisioning Domain Additional Information Key</name>
        <t>This document requests IANA to register a new JSON key in the
Provisioning Domains Additional Information registry at <xref target="IANA-PVD"/>:</t>
        <artwork><![CDATA[
JSON key: cidfi
Description: CID Flow Indicator
Type: array of cidfi details
Example: ["cidfinode": "service.example.net", "cidfipathauth":
          "/authpath", "cidfimetadata": "/meta"]
]]></artwork>
        <t>Additionally, this document requests creating a new registry, entitled "CIDFI JSON Keys" under
the Provisioning Domains Additional Information registry group <xref target="IANA-PVD"/>.
The policy for assigning new entries in this registry is Expert Review <xref section="4.5" sectionFormat="of" target="RFC8126"/>.
The structure of this registry is identical to the Provisioning Domains Additional Information registry group.
The initial content of this registry is provided below:</t>
        <artwork><![CDATA[
JSON key: cidfinode
Description: FQDN of CIDFI node
Type: string
Example: service.example.net

JSON key: min-ttl
Description: The minimum TTL or Hop Limit to reach a CNE
Type: Unsigned integer
Example: 5

JSON key: cidfipathauth
Description: authentication and authorization path for CIDFI
type: string
Example: "/authpath"

JSON key: cidfimetadata
Description: metadata path for CIDFI
type: string
example: "/metadata"
]]></artwork>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-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="RFC9221">
          <front>
            <title>An Unreliable Datagram Extension to QUIC</title>
            <author fullname="T. Pauly" initials="T." surname="Pauly"/>
            <author fullname="E. Kinnear" initials="E." surname="Kinnear"/>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <date month="March" year="2022"/>
            <abstract>
              <t>This document defines an extension to the QUIC transport protocol to add support for sending and receiving unreliable datagrams over a QUIC connection.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9221"/>
          <seriesInfo name="DOI" value="10.17487/RFC9221"/>
        </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="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="RFC9460">
          <front>
            <title>Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records)</title>
            <author fullname="B. Schwartz" initials="B." surname="Schwartz"/>
            <author fullname="M. Bishop" initials="M." surname="Bishop"/>
            <author fullname="E. Nygren" initials="E." surname="Nygren"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>This document specifies the "SVCB" ("Service Binding") 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 (see RFC 9110, "HTTP Semantics"). By providing more information to the client before it attempts to establish a connection, these records offer potential benefits to both performance and privacy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9460"/>
          <seriesInfo name="DOI" value="10.17487/RFC9460"/>
        </reference>
        <reference anchor="RFC8801">
          <front>
            <title>Discovering Provisioning Domain Names and Data</title>
            <author fullname="P. Pfister" initials="P." surname="Pfister"/>
            <author fullname="É. Vyncke" surname="É. Vyncke"/>
            <author fullname="T. Pauly" initials="T." surname="Pauly"/>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <author fullname="W. Shao" initials="W." surname="Shao"/>
            <date month="July" year="2020"/>
            <abstract>
              <t>Provisioning Domains (PvDs) are defined as consistent sets of network configuration information. PvDs allows hosts to manage connections to multiple networks and interfaces simultaneously, such as when a home router provides connectivity through both a broadband and cellular network provider.</t>
              <t>This document defines a mechanism for explicitly identifying PvDs through a Router Advertisement (RA) option. This RA option announces a PvD identifier, which hosts can compare to differentiate between PvDs. The option can directly carry some information about a PvD and can optionally point to PvD Additional Information that can be retrieved using HTTP over TLS.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8801"/>
          <seriesInfo name="DOI" value="10.17487/RFC8801"/>
        </reference>
        <reference anchor="RFC2131">
          <front>
            <title>Dynamic Host Configuration Protocol</title>
            <author fullname="R. Droms" initials="R." surname="Droms"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>The Dynamic Host Configuration Protocol (DHCP) provides a framework for passing configuration information to hosts on a TCPIP network. DHCP is based on the Bootstrap Protocol (BOOTP), adding the capability of automatic allocation of reusable network addresses and additional configuration options. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2131"/>
          <seriesInfo name="DOI" value="10.17487/RFC2131"/>
        </reference>
        <reference anchor="RFC8415">
          <front>
            <title>Dynamic Host Configuration Protocol for IPv6 (DHCPv6)</title>
            <author fullname="T. Mrugalski" initials="T." surname="Mrugalski"/>
            <author fullname="M. Siodelski" initials="M." surname="Siodelski"/>
            <author fullname="B. Volz" initials="B." surname="Volz"/>
            <author fullname="A. Yourtchenko" initials="A." surname="Yourtchenko"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="S. Jiang" initials="S." surname="Jiang"/>
            <author fullname="T. Lemon" initials="T." surname="Lemon"/>
            <author fullname="T. Winters" initials="T." surname="Winters"/>
            <date month="November" year="2018"/>
            <abstract>
              <t>This document describes the Dynamic Host Configuration Protocol for IPv6 (DHCPv6): an extensible mechanism for configuring nodes with network configuration parameters, IP addresses, and prefixes. Parameters can be provided statelessly, or in combination with stateful assignment of one or more IPv6 addresses and/or IPv6 prefixes. DHCPv6 can operate either in place of or in addition to stateless address autoconfiguration (SLAAC).</t>
              <t>This document updates the text from RFC 3315 (the original DHCPv6 specification) and incorporates prefix delegation (RFC 3633), stateless DHCPv6 (RFC 3736), an option to specify an upper bound for how long a client should wait before refreshing information (RFC 4242), a mechanism for throttling DHCPv6 clients when DHCPv6 service is not available (RFC 7083), and relay agent handling of unknown messages (RFC 7283). In addition, this document clarifies the interactions between models of operation (RFC 7550). As such, this document obsoletes RFC 3315, RFC 3633, RFC 3736, RFC 4242, RFC 7083, RFC 7283, and RFC 7550.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8415"/>
          <seriesInfo name="DOI" value="10.17487/RFC8415"/>
        </reference>
        <reference anchor="STUN">
          <front>
            <title>Session Traversal Utilities for NAT (STUN)</title>
            <author fullname="M. Petit-Huguenin" initials="M." surname="Petit-Huguenin"/>
            <author fullname="G. Salgueiro" initials="G." surname="Salgueiro"/>
            <author fullname="J. Rosenberg" initials="J." surname="Rosenberg"/>
            <author fullname="D. Wing" initials="D." surname="Wing"/>
            <author fullname="R. Mahy" initials="R." surname="Mahy"/>
            <author fullname="P. Matthews" initials="P." surname="Matthews"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>Session Traversal Utilities for NAT (STUN) is a protocol that serves as a tool for other protocols in dealing with 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.</t>
              <t>This document obsoletes RFC 5389.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8489"/>
          <seriesInfo name="DOI" value="10.17487/RFC8489"/>
        </reference>
        <reference anchor="RFC2474">
          <front>
            <title>Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers</title>
            <author fullname="K. Nichols" initials="K." surname="Nichols"/>
            <author fullname="S. Blake" initials="S." surname="Blake"/>
            <author fullname="F. Baker" initials="F." surname="Baker"/>
            <author fullname="D. Black" initials="D." surname="Black"/>
            <date month="December" year="1998"/>
            <abstract>
              <t>This document defines the IP header field, called the DS (for differentiated services) field. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2474"/>
          <seriesInfo name="DOI" value="10.17487/RFC2474"/>
        </reference>
        <reference anchor="RFC4787">
          <front>
            <title>Network Address Translation (NAT) Behavioral Requirements for Unicast UDP</title>
            <author fullname="F. Audet" initials="F." role="editor" surname="Audet"/>
            <author fullname="C. Jennings" initials="C." surname="Jennings"/>
            <date month="January" year="2007"/>
            <abstract>
              <t>This document defines basic terminology for describing different types of Network Address Translation (NAT) behavior when handling Unicast UDP and also defines a set of requirements that would allow many applications, such as multimedia communications or online gaming, to work consistently. Developing NATs that meet this set of requirements will greatly increase the likelihood that these applications will function properly. 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="127"/>
          <seriesInfo name="RFC" value="4787"/>
          <seriesInfo name="DOI" value="10.17487/RFC4787"/>
        </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="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>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
      </references>
      <references anchor="sec-informative-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="IANA-PVD" target="https://www.iana.org/assignments/pvds/pvds.xhtml#additional-information-pvd-keys">
          <front>
            <title>Provisioning Domains (PvDs)</title>
            <author>
              <organization/>
            </author>
            <date year="2020" month="August" day="13"/>
          </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="RFC7649">
          <front>
            <title>The Jabber Scribe Role at IETF Meetings</title>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <author fullname="D. York" initials="D." surname="York"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>During IETF meetings, individual volunteers often help sessions run more smoothly by relaying information back and forth between the physical meeting room and an associated textual chatroom. Such volunteers are commonly called "Jabber scribes". This document summarizes experience with the Jabber scribe role and provides some suggestions for fulfilling the role at IETF meetings.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7649"/>
          <seriesInfo name="DOI" value="10.17487/RFC7649"/>
        </reference>
        <reference anchor="RFC8512">
          <front>
            <title>A YANG Module for Network Address Translation (NAT) and Network Prefix Translation (NPT)</title>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="S. Sivakumar" initials="S." surname="Sivakumar"/>
            <author fullname="C. Jacquenet" initials="C." surname="Jacquenet"/>
            <author fullname="S. Vinapamula" initials="S." surname="Vinapamula"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="January" year="2019"/>
            <abstract>
              <t>This document defines a YANG module for the Network Address Translation (NAT) function.</t>
              <t>Network Address Translation from IPv4 to IPv4 (NAT44), Network Address and Protocol Translation from IPv6 Clients to IPv4 Servers (NAT64), customer-side translator (CLAT), Stateless IP/ICMP Translation (SIIT), Explicit Address Mappings (EAM) for SIIT, IPv6-to-IPv6 Network Prefix Translation (NPTv6), and Destination NAT are covered in this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8512"/>
          <seriesInfo name="DOI" value="10.17487/RFC8512"/>
        </reference>
        <reference anchor="I-D.ietf-teas-5g-ns-ip-mpls">
          <front>
            <title>A Realization of RFC XXXX Network Slices for 5G Networks Using Current IP/MPLS Technologies</title>
            <author fullname="Krzysztof Grzegorz Szarkowicz" initials="K. G." surname="Szarkowicz">
              <organization>Juniper Networks</organization>
            </author>
            <author fullname="Richard Roberts" initials="R." surname="Roberts">
              <organization>Juniper Networks</organization>
            </author>
            <author fullname="Julian Lucek" initials="J." surname="Lucek">
              <organization>Juniper Networks</organization>
            </author>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <author fullname="Luis M. Contreras" initials="L. M." surname="Contreras">
              <organization>Telefonica</organization>
            </author>
            <date day="30" month="November" year="2023"/>
            <abstract>
              <t>   5G slicing is a feature that was introduced by the 3rd Generation
   Partnership Project (3GPP) in mobile networks.  This feature covers
   slicing requirements for all mobile domains, including the Radio
   Access Network (RAN), Core Network (CN), and Transport Network (TN).

   This document describes a basic RFC XXXX Network Slice realization
   model in IP/MPLS networks with a focus on the Transport Network
   fulfilling 5G slicing connectivity requirements.  This realization
   model reuses many building blocks currently commonly used in service
   provider networks.

      Note to the RFC Editor: Please update "RFC XXXX Network Slice"
      with the RFC number assigned to I-D.ietf-teas-ietf-network-slices.

Discussion Venues

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

   Discussion of this document takes place on the Traffic Engineering
   Architecture and Signaling Working Group mailing list
   (teas@ietf.org), which is archived at
   https://mailarchive.ietf.org/arch/browse/teas/.

   Source for this draft and an issue tracker can be found at
   https://github.com/boucadair/5g-slice-realization.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teas-5g-ns-ip-mpls-02"/>
        </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="23" month="October" 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-07"/>
        </reference>
        <reference anchor="RFC8517">
          <front>
            <title>An Inventory of Transport-Centric Functions Provided by Middleboxes: An Operator Perspective</title>
            <author fullname="D. Dolson" initials="D." role="editor" surname="Dolson"/>
            <author fullname="J. Snellman" initials="J." surname="Snellman"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="C. Jacquenet" initials="C." surname="Jacquenet"/>
            <date month="February" year="2019"/>
            <abstract>
              <t>This document summarizes an operator's perception of the benefits that may be provided by intermediary devices that execute functions beyond normal IP forwarding. Such intermediary devices are often called "middleboxes".</t>
              <t>RFC 3234 defines a taxonomy of middleboxes and issues in the Internet. Most of those middleboxes utilize or modify application- layer data. This document primarily focuses on devices that observe and act on information carried in the transport layer, and especially information carried in TCP packets.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8517"/>
          <seriesInfo name="DOI" value="10.17487/RFC8517"/>
        </reference>
        <reference anchor="I-D.ietf-quic-load-balancers">
          <front>
            <title>QUIC-LB: Generating Routable QUIC Connection IDs</title>
            <author fullname="Martin Duke" initials="M." surname="Duke">
              <organization>Google</organization>
            </author>
            <author fullname="Nick Banks" initials="N." surname="Banks">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Christian Huitema" initials="C." surname="Huitema">
              <organization>Private Octopus Inc.</organization>
            </author>
            <date day="15" month="August" year="2023"/>
            <abstract>
              <t>   QUIC address migration allows clients to change their IP address
   while maintaining connection state.  To reduce the ability of an
   observer to link two IP addresses, clients and servers use new
   connection IDs when they communicate via different client addresses.
   This poses a problem for traditional "layer-4" load balancers that
   route packets via the IP address and port 4-tuple.  This
   specification provides a standardized means of securely encoding
   routing information in the server's connection IDs so that a properly
   configured load balancer can route packets with migrated addresses
   correctly.  As it proposes a structured connection ID format, it also
   provides a means of connection IDs self-encoding their length to aid
   some hardware offloads.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-quic-load-balancers-17"/>
        </reference>
        <reference anchor="RFC7839">
          <front>
            <title>Access-Network-Identifier Option in DHCP</title>
            <author fullname="S. Bhandari" initials="S." surname="Bhandari"/>
            <author fullname="S. Gundavelli" initials="S." surname="Gundavelli"/>
            <author fullname="M. Grayson" initials="M." surname="Grayson"/>
            <author fullname="B. Volz" initials="B." surname="Volz"/>
            <author fullname="J. Korhonen" initials="J." surname="Korhonen"/>
            <date month="June" year="2016"/>
            <abstract>
              <t>This document specifies the format and mechanism that is to be used for encoding Access-Network Identifiers in DHCPv4 and DHCPv6 messages by defining new Access-Network-Identifier options and sub-options.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7839"/>
          <seriesInfo name="DOI" value="10.17487/RFC7839"/>
        </reference>
        <reference anchor="RFC7849">
          <front>
            <title>An IPv6 Profile for 3GPP Mobile Devices</title>
            <author fullname="D. Binet" initials="D." surname="Binet"/>
            <author fullname="M. Boucadair" initials="M." surname="Boucadair"/>
            <author fullname="A. Vizdal" initials="A." surname="Vizdal"/>
            <author fullname="G. Chen" initials="G." surname="Chen"/>
            <author fullname="N. Heatley" initials="N." surname="Heatley"/>
            <author fullname="R. Chandler" initials="R." surname="Chandler"/>
            <author fullname="D. Michaud" initials="D." surname="Michaud"/>
            <author fullname="D. Lopez" initials="D." surname="Lopez"/>
            <author fullname="W. Haeffner" initials="W." surname="Haeffner"/>
            <date month="May" year="2016"/>
            <abstract>
              <t>This document defines a profile that is a superset of the connection to IPv6 cellular networks defined in the IPv6 for Third Generation Partnership Project (3GPP) Cellular Hosts document. This document defines a profile that is a superset of the connections to IPv6 cellular networks defined in "IPv6 for Third Generation Partnership Project (3GPP) Cellular Hosts" (RFC 7066).</t>
              <t>Both mobile hosts and mobile devices with the capability to share their 3GPP mobile connectivity are in scope.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7849"/>
          <seriesInfo name="DOI" value="10.17487/RFC7849"/>
        </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="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="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </reference>
        <reference anchor="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </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>Uber Technologies 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="8" month="November" 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 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-01"/>
        </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="RFC9146">
          <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="RTP">
          <front>
            <title>RTP: A Transport Protocol for Real-Time Applications</title>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"/>
            <author fullname="S. Casner" initials="S." surname="Casner"/>
            <author fullname="R. Frederick" initials="R." surname="Frederick"/>
            <author fullname="V. Jacobson" initials="V." surname="Jacobson"/>
            <date month="July" year="2003"/>
            <abstract>
              <t>This memorandum describes RTP, the real-time transport protocol. RTP provides end-to-end network transport functions suitable for applications transmitting real-time data, such as audio, video or simulation data, over multicast or unicast network services. RTP does not address resource reservation and does not guarantee quality-of- service for real-time services. The data transport is augmented by a control protocol (RTCP) to allow monitoring of the data delivery in a manner scalable to large multicast networks, and to provide minimal control and identification functionality. RTP and RTCP are designed to be independent of the underlying transport and network layers. The protocol supports the use of RTP-level translators and mixers. Most of the text in this memorandum is identical to RFC 1889 which it obsoletes. There are no changes in the packet formats on the wire, only changes to the rules and algorithms governing how the protocol is used. The biggest change is an enhancement to the scalable timer algorithm for calculating when to send RTCP packets in order to minimize transmission in excess of the intended rate when many participants join a session simultaneously. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="64"/>
          <seriesInfo name="RFC" value="3550"/>
          <seriesInfo name="DOI" value="10.17487/RFC3550"/>
        </reference>
        <reference anchor="SRTP">
          <front>
            <title>The Secure Real-time Transport Protocol (SRTP)</title>
            <author fullname="M. Baugher" initials="M." surname="Baugher"/>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <author fullname="M. Naslund" initials="M." surname="Naslund"/>
            <author fullname="E. Carrara" initials="E." surname="Carrara"/>
            <author fullname="K. Norrman" initials="K." surname="Norrman"/>
            <date month="March" year="2004"/>
            <abstract>
              <t>This document describes the Secure Real-time Transport Protocol (SRTP), a profile of the Real-time Transport Protocol (RTP), which can provide confidentiality, message authentication, and replay protection to the RTP traffic and to the control traffic for RTP, the Real-time Transport Control Protocol (RTCP). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3711"/>
          <seriesInfo name="DOI" value="10.17487/RFC3711"/>
        </reference>
        <reference anchor="cryptex">
          <front>
            <title>Completely Encrypting RTP Header Extensions and Contributing Sources</title>
            <author fullname="J. Uberti" initials="J." surname="Uberti"/>
            <author fullname="C. Jennings" initials="C." surname="Jennings"/>
            <author fullname="S. Murillo" initials="S." surname="Murillo"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>While the Secure Real-time Transport Protocol (SRTP) provides confidentiality for the contents of a media packet, a significant amount of metadata is left unprotected, including RTP header extensions and contributing sources (CSRCs). However, this data can be moderately sensitive in many applications. While there have been previous attempts to protect this data, they have had limited deployment, due to complexity as well as technical limitations.</t>
              <t>This document updates RFC 3711, the SRTP specification, and defines Cryptex as a new mechanism that completely encrypts header extensions and CSRCs and uses simpler Session Description Protocol (SDP) signaling with the goal of facilitating deployment.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9335"/>
          <seriesInfo name="DOI" value="10.17487/RFC9335"/>
        </reference>
        <reference anchor="I-D.ietf-moq-requirements">
          <front>
            <title>Media Over QUIC - Use Cases and Requirements for Media Transport Protocol Design</title>
            <author fullname="James Gruessing" initials="J." surname="Gruessing">
              <organization>Nederlandse Publieke Omroep</organization>
            </author>
            <author fullname="Spencer Dawkins" initials="S." surname="Dawkins">
              <organization>Tencent America LLC</organization>
            </author>
            <date day="29" month="September" year="2023"/>
            <abstract>
              <t>   This document describes use cases and requirements that guide the
   specification of a simple, low-latency media delivery solution for
   ingest and distribution, using either the QUIC protocol or
   WebTransport as transport protocols.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-moq-requirements-02"/>
        </reference>
      </references>
    </references>
    <?line 1456?>

<section anchor="extending">
      <name>Extending CIDFI to Other Protocols</name>
      <t>CIDFI can be extended to other protocols including TCP, SCTP, RTP, and SRTP,
and bespoke UDP protocols.</t>
      <t>An extension to each protocol is described below which retains the
ability of the client to prove its ownership of the 5-tuple to a CNE.</t>
      <section anchor="dtls">
        <name>DTLS</name>
        <t>DTLS is used by WebRTC and SIP for establishing interactive real-time audio,
video, and screen sharing, which benefit from knowing network characteristics
(n2h signaling) and benefit from prioritizing audio over video (h2n signaling).
<xref target="RFC9146"/> defines an extension to add a Connection ID (CID) to the
DTLS record layer. DTLS CID can be leveraged by CIDFI to communicate
per-connection information from endpoint to CNE and vice-versa.</t>
      </section>
      <section anchor="tcp">
        <name>TCP</name>
        <t>To prove ownership of the TCP 4-tuple, TCP can utilize a new TCP
option to carry the CNE's nonce and HMAC-output.  This TCP option can be carried
in both the TCP SYN and in some subsequent packets to avoid consuming the entire
TCP option space (40 bytes).  Sub-options can be defined to carry pieces of
the Nonce and HMAC output, with the first piece of the Nonce in the TCP SYN
so the CIDFI network element can be triggered to begin looking for the subsequent
TCP frames containing the rest of the CIDFI nonce and CIDFI HMAC-output.  For example,</t>
        <ol spacing="normal" type="1"><li>
            <t>send TCP SYN + CIDFI option (including Nonce bits 0-63)</t>
          </li>
          <li>
            <t>if received TCP SYNACK does not indicate CIDFI support, stop sending CIDFI option</t>
          </li>
          <li>
            <t>send next TCP packet + CIDFI option (including Nonce bytes 64-128)</t>
          </li>
          <li>
            <t>send next TCP packet + CIDFI option (including HMAC-output bits 0-127)</t>
          </li>
          <li>
            <t>send next TCP packet + CIDFI option (including HMAC-output bytes 128-256)</t>
          </li>
        </ol>
        <t>To shorten this further we might truncate the HMAC output and/or
truncate the Nonce after security evaluation.</t>
      </section>
      <section anchor="sctp">
        <name>SCTP</name>
        <t>If SCTP is sent directly over IP, proof of ownership of the
SCTP 4-tuple can be achieved using an extension to its INIT
packets, similar to what is described above for TCP SYN.</t>
        <t>If SCTP is run over UDP, the same proof of ownership of the UDP
4-tuple as described in <xref target="ownership"/> can be performed.</t>
      </section>
      <section anchor="rtp-and-srtp">
        <name>RTP and SRTP</name>
        <t>The RTP Synchronization Source (SSRC) is in the clear for <xref target="RTP"/>, <xref target="SRTP"/>,
and <xref target="cryptex"/>.  If the SSRC is signaled similarly to CID, RTP could also
benefit from CIDFI.  CIDFI network elements could be told the mapping of SSRC values to
importance and schedule those SSRCs accordingly.  However, SSRC is used in playout (jitter)
buffers and a new SSRC seen by a receiver will cause confusion.  Thus, overloading SSRC
to mean both 'packet importance' for CIDFI and 'synchronization source' will require
engineering work on the RTP receiver to treat all the signaled SSRCs as one source for
purposes of its playout buffer.</t>
        <t>RTP over QUIC <xref target="I-D.ietf-avtcore-rtp-over-quic"/> is another approach which exposes
QUIC headers to the network (which have CIDs) and does not overload the RTP SSRC.  The
Media over QUIC (MOQ) working group includes RTP over QUIC as one of its use cases
<xref section="3.1" sectionFormat="of" target="I-D.ietf-moq-requirements"/>.</t>
      </section>
      <section anchor="bespoke-udp-application-protocols">
        <name>Bespoke UDP Application Protocols</name>
        <t>To work with CIDFI, other UDP application protocols would have to
prove ownership of their UDP 4-tuple (<xref target="ownership"/>) and extend their
protocol to include a connection identifier in the first several bits
of each of their UDP packets.</t>
        <t>Alternatively, rather than modifying the application protocol it could be run
over <xref target="QUIC"/>.</t>
      </section>
    </section>
    <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.  Thanks to
Ben Schwartz for suggesting PvD as an alternative discovery mechanism.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
aTWjZf1/79CMv6wCAQA=

-->

</rfc>
