<?xml version="1.0" encoding="us-ascii"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.2.12 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>

<rfc ipr="trust200902" docName="draft-piraux-quic-tunnel-00" category="exp">

  <front>
    <title abbrev="QUIC Tunnel">Tunneling Internet protocols inside QUIC</title>

    <author initials="M." surname="Piraux" fullname="Maxime Piraux" role="editor">
      <organization>UCLouvain</organization>
      <address>
        <email>maxime.piraux@uclouvain.be</email>
      </address>
    </author>
    <author initials="O." surname="Bonaventure" fullname="Olivier Bonaventure">
      <organization>UCLouvain</organization>
      <address>
        <email>olivier.bonaventure@uclouvain.be</email>
      </address>
    </author>

    <date year="2019" month="November" day="04"/>

    <area>Transport</area>
    <workgroup>QUIC Working Group</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>This document specifies methods for tunneling Internet protocols such
 as TCP, UDP, IP and QUIC inside a QUIC connection.</t>



    </abstract>


  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<t>Mobile devices such as laptops, smartphones or tablets have different
requirements than the traditional fixed devices. These mobile devices
often change their network attachment. They are often attached to
trusted networks, but sometimes they need to be connected to untrusted
networks where their communications can be eavesdropped, filtered or
modified. In these situations, the classical approach is to rely on VPN
protocols such as DTLS, TLS or IPSec. These VPN protocols provide the
encryption and authentication functions to protect those mobile clients
from malicious behaviors in untrusted networks.</t>

<t>On the other hand, these devices are often multihomed and many expect to
be able to perform seamless handovers from one access network to another
without breaking the established VPN sessions. In some situations it can
also be beneficial to combine two or more access networks together to
increase the available host bandwidth. A protocol such as Multipath TCP
supports those handovers and allows aggregating the bandwidth of
different access links. It could be combined with single-path VPN
protocols to support both seamless handovers and bandwidth aggregation
above VPN tunnels. Unfortunately, Multipath TCP is not yet deployed on most
Internet servers and thus few applications would benefit from such a use
case.</t>

<t>The QUIC protocol opens up a new way to find a clean solution to this
problem. First, QUIC includes the same encryption and authentication
techniques as deployed VPN protocols. Second, QUIC is intended to be
widely used to support web-based services, making it unlikely to be
filtered in many networks, in contrast with VPN protocols. Third, the
multipath extensions proposed for QUIC enable it to efficiently support
both seamless handovers and bandwidth aggregation.</t>

<t>In this document, we explore how (Multipath) QUIC could be used to
enable multi-homed mobile devices to communicate securely in untrusted
networks. <xref target="reference-environment"/> describes the reference environment of this
document. Then, we explore and compare two different designs.
The first, explained in <xref target="the-datagram-mode"/>, uses the recently proposed
datagram extension (<xref target="I-D.pauly-quic-datagram"/>) for QUIC to transport plain IP
packets over a Multipath QUIC connection. The second, explained in
<xref target="the-stream-mode"/>, uses the QUIC streams to transport TCP bytestreams over a
Multipath QUIC connection.</t>

<t><xref target="connection-establishment"/> specifies how a connection is established in
this document proposal. <xref target="messages-format"/> specifies the format of the messages
introduced by this document. <xref target="example-flows"/> contains example flows.</t>

<t>Our starting point for this work is Multipath QUIC that was initially
proposed in <xref target="CoNEXT"/>. A detailed specification of Multipath QUIC may be
found in <xref target="I-D.deconinck-quic-multipath"/>. Two implementations of different
versions of this protocol are available <xref target="CoNEXT"/>, <xref target="SIGCOMM19"/>.</t>

</section>
<section anchor="conventions-and-definitions" title="Conventions and Definitions">

<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/>
when, and only when, they appear in all capitals, as shown here.</t>

</section>
<section anchor="reference-environment" title="Reference environment">

<t>We consider a multihomed client that is attached to one or several
access networks. It establishes a Multipath QUIC
connection to a concentrator. This MPQUIC connection is used to carry
the UDP and TCP packets sent by the client. Thanks to the security
mechanisms used by the Multipath QUIC connection, the client data
is protected against attacks in one or both of the access networks. The client trusts
the concentrator. The concentrator decrypts the QUIC packets exchanged over
the Multipath QUIC connection and interacts with the remote hosts as a
VPN concentrator would do.</t>

<figure title="Example environment" anchor="fig-example-environment"><artwork><![CDATA[
            +---------+
       .----| Access  |----.
       |    | network |    |
       v    |    A    |    |
+--------+  +----------    v                           +-------------+
| Multi  |              +--------------+               | Final       |
| homed  |              | Concentrator |<===\ ... \===>| destination |
| client |              +--------------+               | server      |
+--------+  +---------+    ^                           +-------------+
       ^    | Access  |    |
       |    | network |    |            Legend:
       .----|    B    |----.              --- Multipath QUIC subflow
            +---------+                   === TCP/UDP flow
]]></artwork></figure>

<t><xref target="fig-example-environment"/> illustrates a client-initiated flow. We also
discuss inbound connections in this document in <xref target="connection-establishment"/>.</t>

</section>
<section anchor="the-datagram-mode" title="The datagram mode">

<t>Our first mode of operation, called the datagram mode in this document,
enables the client and the concentrator to exchange raw IP packets through
the Multipath QUIC connection. This is done by using the recently
proposed QUIC datagram extension <xref target="I-D.pauly-quic-datagram"/>.
In a nutshell, to send an IP packet to a remote host, the client simply
passes the entire packet as a datagram to the Multipath QUIC connection
established with the concentrator. The IP packet is encoded in a QUIC DATAGRAM
frame, then encrypted and authenticated in a QUIC packet. This transmission is
subject to congestion control, but the datagram that contains the packet is
not retransmitted in case of losses as specified in <xref target="I-D.pauly-quic-datagram"/>.
The datagram mode is intended to provide a similar service as the one
provided by IPSec tunnels or DTLS.</t>

<figure title="QUIC packet sent by the client when
tunneling a UDP packet" anchor="datagram-example"><artwork><![CDATA[
             ,->+----------+
             |  |    IP    |
 QUIC packet |  +----------+
 containing  |  |    UDP   |
 a DATAGRAM  |  +----------+
 frame       |  |   QUIC   |
             |  |..........|
             |  | DATAGRAM |
             |  |+--------+|<-.
             |  ||   IP   ||  |
             |  |+--------+|  | Tunneled
             |  ||   UDP  ||  | UDP packet
             |  |+--------+|  |
             |  |   ....   |<-.
             `->+----------+
]]></artwork></figure>

<t><xref target="datagram-example"/> illustrates how a UDP packet is tunneled using the datagram
mode.
The main advantage of the datagram mode is that it supports IP and any
protocol above the network layer. Any IP packet can be transported
using the datagram extension over a Multipath QUIC connection. However, this
advantage comes with a large per-packet overhead since each packet
contains both a network and a transport header. All these headers must be
transmitted in addition with the IP/UDP/QUIC headers of the Multipath
QUIC connection. For TCP connections for instance, the per-packet overhead can
be large.</t>

</section>
<section anchor="the-stream-mode" title="The stream mode">

<t>Since QUIC support multiple streams, another possibility to
carry the data exchanged over TCP connections between the client and the concentrator is to
transport the bytestream of each TCP connection as one of the bidirectional streams of the
Multipath QUIC connection. For this, we base our approach on the 0-RTT Converter
protocol <xref target="I-D.ietf-tcpm-converters"/> that was proposed to ease the
deployment of TCP extensions. In a nutshell, it is an application proxy that
converts TCP connections, allowing the use of new TCP extensions
through an intermediate relay.</t>

<t>We use a similar approach in our stream mode. When a client opens a stream, it sends at the beginning of the
bytestream one or more TLV messages indicating the IP address and
port number of the remote destination of the bytestream. Their format is
detailed in section <xref target="sec-format"/>. Upon reception of such a TLV message, the concentrator opens a TCP connection towards the specified destination and
connects the incoming bytestream of the Multipath QUIC connection to the
bytestream of the new TCP connection (and similarly in the opposite direction).</t>

<t><xref target="tcp-proxy-stream"/> summarizes how the new TCP connection is mapped to the
QUIC stream. Actions and events of a TCP connection are translated to action and
events of a QUIC stream, so that a state transition of one is translated to
the other.</t>

<figure title="TCP connection to QUIC stream mapping" anchor="tcp-proxy-stream"><artwork><![CDATA[
+------------------+-------------------------+
|        TCP       |      QUIC Stream        |
+------------------+-------------------------+
| SYN received     | Open Stream, send TLVs  |
| FIN received     | Send Stream FIN         |
| RST received     | Send STOP_SENDING       |
|                  | Send RESET_STREAM       |
| Data received    | Send Stream data        |
+------------------+-------------------------+

+-------------------------------+------------+
|         QUIC Stream           |    TCP     |
+-------------------------------+------------+
| Stream opened, TLVs received  | Send SYN   |
| Stream FIN received           | Send FIN   |
| STOP_SENDING received         | Send RST   |
| RESET_STREAM received         | Send RST   |
| Stream data received          | Send data  |
+-------------------------------+------------+
]]></artwork></figure>

<t>The QUIC stream-level flow control can be tuned to match the receive
window size of the corresponding TCP, so that no excessive
data needs to be buffered.</t>

</section>
<section anchor="connection-establishment" title="Connection establishment">

<t>The client MUST establish a connection using the Multipath Extensions defined
in <xref target="I-D.deconinck-quic-multipath"/>.</t>

<t>During connection establishment, the QUIC tunnel support is indicated by
setting the ALPN token "qt" in the TLS handshake. Draft-version implementations
MAY specify a particular draft version by suffixing the token, e.g. "qt-00"
refers to the first version of this document.</t>

<t>The concentrator can control the number of connections bytestreams that can be
opened initially by setting the initial_max_streams_bidi QUIC transport parameter
as defined in <xref target="I-D.ietf-quic-transport"/>.</t>

<t>After the QUIC connection is established, the client can start using the
datagram or the stream mode. The client may use PCP <xref target="RFC6887"/> to request the
concentrator to accept inbound connections on their behalf. After the negotiation
of such port mappings, the concentrator can start opening bidirectional streams
to forward inbound connections as well as sending IP packets containing inbound
UDP connections in QUIC datagrams.</t>

</section>
<section anchor="messages-format" title="Messages format">

<t>In the following sections, we specify the format of each message introduced in
this document. They are encoded as TLVs, i.e. (Type, Length, Value) tuples,
as illustrated in <xref target="tlv"/>. All TLV fields are encoded in network-byte order.</t>

<figure title="QUIC tunnel TLV Format" anchor="tlv"><artwork><![CDATA[
                     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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Type (8)   |   Length (8)  |          [Value (*)]        ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure>

<t>The Type field is encoded as a byte and identifies the type of the TLV. The Length
field is encoded as a byte and indicate the length of the Value field. A value
of zero indicates that no Value field is present. The Value field is a
type-specific value whose length is determined by the Length field.</t>

<section anchor="sec-format" title="QUIC tunnel stream TLVs">

<t>When using the stream mode, a one or more messages are used to trigger
and confirm the establishment of a connection towards the
final destination for a given stream. Those messages are exchanged on this given
QUIC stream before the TCP connection bytestream. This section describes the
format of these messages.</t>

<t>This document specifies the following QUIC tunnel stream TLVs:</t>

<figure title="QUIC tunnel stream TLVs" anchor="stream-tlvs"><artwork><![CDATA[
+------+----------+-----------------------------+
| Type |     Size | Name                        |
+------+----------+-----------------------------+
| 0x00 | 20 bytes | TCP Connect TLV             |
| 0x01 | 38 bytes | TCP Extended Connect TLV    |
| 0x02 |  2 bytes | TCP Connect OK TLV          |
| 0x03 | Variable | Error TLV                   |
| 0xff |  2 bytes | End TLV                     |
+------+----------+-----------------------------+
]]></artwork></figure>

<t>The TCP Connect TLV is used to establish a TCP connection through the
tunnel towards the final destination. The TCP Extended Connect TLV allows
indicating more information in the establishment request. The TCP Connect OK TLV
confirms the establishment of this TCP connection. The Error TLV is used to
indicate any out-of-band error that occurred during the TCP connection
establishment associated to the QUIC stream. Finally, the End TLV marks the end
of the series of TLVs and the start of the bytestream on a given QUIC stream.
These TLVs are detailed in the following sections.</t>

<figure title="Example of use of QUIC tunnel stream TLVs" anchor="tlvs-in-stream"><artwork><![CDATA[
      Offset 0         Offset 20   Offset 22
         |                 |         |
         v                 v         v
         +-----------------+---------+----------------
Stream 0 | TCP Connect TLV | End TLV | TCP bytestream ...
         +-----------------+---------+----------------
]]></artwork></figure>

<section anchor="sec-connect-tlv" title="TCP Connect TLV">

<t>The TCP Connect TLV indicates the final destination of the TCP
connection associated to a given QUIC
stream. The fields Remote Peer Port and Remote Peer IP Address contain the
destination port number and IP address of the final destination.</t>

<t>The Remote Peer IP Address MUST be encoded as an IPv6 address. IPv4 addresses
MUST be encoded using the IPv4-Mapped IPv6 Address format defined in
<xref target="RFC4291"/>.
Further, the Remote Peer IP address field MUST NOT include multicast,
broadcast, and host loopback addresses <xref target="RFC6890"/>.</t>

<t>A QUIC tunnel peer MUST NOT send more than one TCP Connect TLV per QUIC stream.
A QUIC tunnel peer MUST NOT send a TCP Connect TLV if a TCP Extended Connect
TLV was previously sent on a given stream. A QUIC tunnel peer MUST NOT send a
TCP Connect TLV on non-self initiated streams.</t>

<figure title="TCP Connect TLV" anchor="connect-tlv"><artwork><![CDATA[
                     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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Type (8)   |   Length (8)  |     Remote Peer Port (16)     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|                  Remote Peer IP Address (128)                 |
|                                                               |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure>

</section>
<section anchor="sec-extended-connect-tlv" title="TCP Extended Connect TLV">

<t>The TCP Extended Connect TLV is an extended version of the TCP Connect TLV.
It also indicates the source of the TCP connection.
The fields Remote Peer Port and Remote Peer IP Address contain the
destination port number and IP address of the final destination.
The fields Local Peer Port and Local Peer IP Address contain the source port
number and IP address of the source of the TCP connection.</t>

<t>The Remote (resp. Local) Peer IP Address MUST be encoded as an IPv6 address.
IPv4 addresses MUST be encoded using the IPv4-Mapped IPv6 Address format defined
in <xref target="RFC4291"/>.
Further, the Remote (resp. Local) Peer IP address field MUST NOT include multicast,
broadcast, and host loopback addresses <xref target="RFC6890"/>.</t>

<t>A QUIC tunnel peer MUST NOT send more than one TCP Extended Connect TLV per QUIC
stream. A QUIC tunnel peer MUST NOT send a TCP Extended Connect TLV if a TCP
Connect TLV was previously sent on a given stream. A QUIC tunnel peer MUST NOT
send a TCP Extended Connect TLV on non-self initiated streams.</t>

<figure title="TCP Extended Connect TLV" anchor="extended-connect-tlv"><artwork><![CDATA[
                     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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Type (8)   |   Length (8)  |     Remote Peer Port (16)     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|                  Remote Peer IP Address (128)                 |
|                                                               |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      Local Peer Port (16)     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|                   Local Peer IP Address (128)                 |
|                                                               |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork></figure>

</section>
<section anchor="tcp-connect-ok-tlv" title="TCP Connect OK TLV">

<t>The TCP Connect OK TLV does not contain a value. Its presence confirms
the successful establishment of connection to the final destination.
A QUIC peer MUST NOT send a TCP Connect OK TLV on self-initiated streams.</t>

</section>
<section anchor="sec-error-tlv" title="Error TLV">

<t>The Error TLV indicates out-of-band errors that occurred during the
establishment of the connection to the final destination. These errors can be
ICMP Destination Unreachable messages for instance. In this case the
ICMP packet received by the concentrator is
copied inside the Error Payload field.</t>

<figure title="Error TLV" anchor="error-tlv"><artwork><![CDATA[
                     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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Type (8)   |   Length (8)  |        Error Code (16)        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     [Error Payload (*)]                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure>

<t>The following bytestream-level error codes are defined in this document:</t>

<figure title="Bytestream-level Error Codes" anchor="error-tlv-codes"><artwork><![CDATA[
+------+---------------------------+
| Code | Name                      |
+------+---------------------------+
|  0x0 | Protocol Violation        |
|  0x1 | ICMP Packet Received      |
|  0x2 | Malformed TLV             |
|  0x3 | Network Failure           |
+------+---------------------------+
]]></artwork></figure>

<t><list style="symbols">
  <t>Protocol Violation (0x0): A general error code for all non-conforming
behaviors encountered. A QUIC tunnel peer SHOULD use a more specific error
code when possible.</t>
  <t>ICMP Packet Received (0x1): This code indicates that the concentrator
received an ICMP packet while trying to create the associated TCP
connection. The Error Payload contains the packet.</t>
  <t>Malformed TLV (0x2): This code indicates that a received TLV was not
successfully parsed or formed. A peer receiving a Connect TLV with
an invalid IP address MUST send an Error TLV with this error code.</t>
  <t>Network Failure (0x3): This codes indicates that a network failure
prevented the establishment of the connection.</t>
</list></t>

<t>After sending one or more Error TLVs, the sender MUST send an End TLV and
terminate the stream, i.e. set the FIN bit after the End TLV.</t>

</section>
<section anchor="end-tlv" title="End TLV">

<t>The End TLV does not contain a value. Its existence signals the end of
the series of TLVs. The next byte in the QUIC stream after this TLV is the start
of the tunneled bytestream.</t>

</section>
</section>
</section>
<section anchor="example-flows" title="Example flows">

<t>This section illustrates the different messages described previously and how
they are used in a QUIC tunnel connection. For QUIC STREAM frames, we use the
following syntax: STREAM[ID, Stream Data [, FIN]]. The first element is the
Stream ID, the second is the Stream Data contained in the frame and the last one
is optional and indicates that the FIN bit is set.</t>

<figure title="Example flow for the stream mode" anchor="example-stream-mode"><artwork><![CDATA[
Client                      Concentrator           Final Destination
 | STREAM[0, "TCP Connect, End"] ||                               |
 |------------------------------>||              SYN              |
 |                               ||==============================>|
 |                               ||            SYN+ACK            |
 |STREAM[0,"TCP Connect OK, End"]||<==============================|
 |<------------------------------||                               |
 | STREAM[0, "bytestream data"]  ||                               |
 |------------------------------>||     bytestream data, ACK      |
 |                               ||==============================>|
 |                               ||     bytestream data, ACK      |
 |  STREAM[0, "bytestream data"] ||<==============================|
 |<------------------------------||              FIN              |
 |      STREAM[0, "", FIN]       ||<==============================|
 |<------------------------------||              ACK              |
 |      STREAM[0, "", FIN]       ||==============================>|
 |------------------------------>||              FIN              |
 |                               ||==============================>|
 |                               ||              ACK              |
 |                               ||<==============================|

Legend:
   --- Multipath QUIC connection
   === TCP connection
]]></artwork></figure>

<t>On <xref target="example-stream-mode"/>, the Client is initiating a TCP connection in
stream mode to the Final Destination. A request and a response are exchanged,
then the connection is torn down gracefully.
A remote-initiated connection accepted by the concentrator on behalf of the
client would have the order and the direction of all messages reversed.</t>

</section>
<section anchor="security-considerations" title="Security Considerations">

<section anchor="privacy" title="Privacy">

<t>The Concentrator has access to all the packets it processes. It MUST be
protected as a core IP router, e.g. as specified in <xref target="RFC1812"/>.</t>

</section>
<section anchor="ingress-filtering" title="Ingress Filtering">

<t>Ingress filtering policies MUST be enforced at the network boundaries, i.e. as
specified in <xref target="RFC2827"/>.</t>

</section>
<section anchor="denial-of-service" title="Denial of Service">

<t>There is a risk of an amplification attack when the Concentrator sends a TCP SYN
in response of a TCP Connect TLV. When a TCP SYN is larger than the client
request, the Concentrator amplifies the client traffic. To mitigate such attacks,
the Concentrator SHOULD rate limit the number of pending TCP Connect from a
given client.</t>

</section>
</section>
<section anchor="iana-considerations" title="IANA Considerations">

<section anchor="registration-of-quic-tunnel-identification-string" title="Registration of QUIC tunnel Identification String">

<t>This document creates a new registration for the identification of the QUIC
tunnel protocol in the "Application Layer Protocol Negotiation (ALPN) Protocol
IDs" registry established in <xref target="RFC7301"/>.</t>

<t>The "qt" string identifies the QUIC tunnel protocol.</t>

<t>Protocol: QUIC tunnel</t>

<t>Identification Sequence: 0x71 0x74 ("qt")</t>

<t>Specification: This document</t>

</section>
<section anchor="quic-tunnel-stream-tlvs" title="QUIC tunnel stream TLVs">

<t>IANA is requested to create a new "QUIC tunnel stream Parameters" registry.</t>

<t>The following subsections detail new registries within "QUIC tunnel stream
Parameters" registry.</t>

<section anchor="quic-tunnel-stream-tlvs-types" title="QUIC tunnel stream TLVs Types">

<t>IANA is request to create the "QUIC tunnel stream TLVs Types" sub-registry. New
values are assigned via IETF Review (Section 4.8 of <xref target="RFC8126"/>).</t>

<t>The initial values to be assigned at the creation of the registry are as
follows:</t>

<figure><artwork><![CDATA[
+------+-----------------------------+------------+
| Code | Name                        | Reference  |
+------+-----------------------------+------------+
|    0 | TCP Connect TLV             | [This-Doc] |
|    1 | TCP Extended Connect TLV    | [This-Doc] |
|    2 | TCP Connect OK TLV          | [This-Doc] |
|    3 | Error TLV                   | [This-Doc] |
|  255 | End TLV                     | [This-Doc] |
+------+-----------------------------+------------+
]]></artwork></figure>

</section>
<section anchor="quic-tunnel-streams-tlvs-error-types" title="QUIC tunnel streams TLVs Error Types">

<t>IANA is request to create the "QUIC tunnel stream TLVs Error Types" sub-registry.
New values are assigned via IETF Review (Section 4.8 of <xref target="RFC8126"/>).</t>

<t>The initial values to be assigned at the creation of the registry are as
follows:</t>

<figure><artwork><![CDATA[
+------+---------------------------+------------+
| Code | Name                      | Reference  |
+------+---------------------------+------------+
|    0 | Protocol Violation        | [This-Doc] |
|    1 | ICMP packet received      | [This-Doc] |
|    2 | Malformed TLV             | [This-Doc] |
|    3 | Network Failure           | [This-Doc] |
+------+---------------------------+------------+
]]></artwork></figure>

</section>
</section>
</section>


  </middle>

  <back>

    <references title='Normative References'>





<reference  anchor="RFC2119" target='https://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author initials='S.' surname='Bradner' fullname='S. Bradner'><organization /></author>
<date year='1997' month='March' />
<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="RFC4291" target='https://www.rfc-editor.org/info/rfc4291'>
<front>
<title>IP Version 6 Addressing Architecture</title>
<author initials='R.' surname='Hinden' fullname='R. Hinden'><organization /></author>
<author initials='S.' surname='Deering' fullname='S. Deering'><organization /></author>
<date year='2006' month='February' />
<abstract><t>This specification defines the addressing architecture of the IP Version 6 (IPv6) protocol.  The document includes the IPv6 addressing model, text representations of IPv6 addresses, definition of IPv6 unicast addresses, anycast addresses, and multicast addresses, and an IPv6 node's required addresses.</t><t>This document obsoletes RFC 3513, &quot;IP Version 6 Addressing Architecture&quot;.   [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4291'/>
<seriesInfo name='DOI' value='10.17487/RFC4291'/>
</reference>



<reference  anchor="RFC6890" target='https://www.rfc-editor.org/info/rfc6890'>
<front>
<title>Special-Purpose IP Address Registries</title>
<author initials='M.' surname='Cotton' fullname='M. Cotton'><organization /></author>
<author initials='L.' surname='Vegoda' fullname='L. Vegoda'><organization /></author>
<author initials='R.' surname='Bonica' fullname='R. Bonica' role='editor'><organization /></author>
<author initials='B.' surname='Haberman' fullname='B. Haberman'><organization /></author>
<date year='2013' month='April' />
<abstract><t>This memo reiterates the assignment of an IPv4 address block (192.0.0.0/24) to IANA.  It also instructs IANA to restructure its IPv4 and IPv6 Special-Purpose Address Registries.  Upon restructuring, the aforementioned registries will record all special-purpose address blocks, maintaining a common set of information regarding each address block.</t></abstract>
</front>
<seriesInfo name='BCP' value='153'/>
<seriesInfo name='RFC' value='6890'/>
<seriesInfo name='DOI' value='10.17487/RFC6890'/>
</reference>



<reference  anchor="RFC8174" target='https://www.rfc-editor.org/info/rfc8174'>
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
<author initials='B.' surname='Leiba' fullname='B. Leiba'><organization /></author>
<date year='2017' month='May' />
<abstract><t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='8174'/>
<seriesInfo name='DOI' value='10.17487/RFC8174'/>
</reference>




    </references>

    <references title='Informative References'>





<reference anchor="I-D.ietf-lpwan-ipv6-static-context-hc">
<front>
<title>Static Context Header Compression (SCHC) and fragmentation for LPWAN, application to UDP/IPv6</title>

<author initials='A' surname='Minaburo' fullname='Ana Minaburo'>
    <organization />
</author>

<author initials='L' surname='Toutain' fullname='Laurent Toutain'>
    <organization />
</author>

<author initials='C' surname='Gomez' fullname='Carles Gomez'>
    <organization />
</author>

<author initials='D' surname='Barthel' fullname='Dominique Barthel'>
    <organization />
</author>

<author initials='J' surname='Zuniga' fullname='Juan Zuniga'>
    <organization />
</author>

<date month='October' day='31' year='2019' />

<abstract><t>This document defines the Static Context Header Compression (SCHC) framework, which provides both header compression and fragmentation functionalities.  SCHC has been designed for Low Power Wide Area Networks (LPWAN).  SCHC compression is based on a common static context stored both in the LPWAN device and in the network infrastructure side.  This document defines a header compression mechanism and its application to compress IPv6/UDP headers.  This document also specifies a fragmentation and reassembly mechanism that is used to support the IPv6 MTU requirement over the LPWAN technologies.  Fragmentation is needed for IPv6 datagrams that, after SCHC compression or when such compression was not possible, still exceed the layer-2 maximum payload size.  The SCHC header compression and fragmentation mechanisms are independent of the specific LPWAN technology over which they are used.  This document defines generic functionalities and offers flexibility with regard to parameter settings and mechanism choices. This document standardizes the exchange over the LPWAN between two SCHC entities.  Settings and choices specific to a technology or a product are expected to be grouped into profiles, which are specified in other documents.  Data models for the context and profiles are out of scope.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-lpwan-ipv6-static-context-hc-22' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-lpwan-ipv6-static-context-hc-22.txt' />
</reference>



<reference anchor="I-D.pauly-quic-datagram">
<front>
<title>An Unreliable Datagram Extension to QUIC</title>

<author initials='T' surname='Pauly' fullname='Tommy Pauly'>
    <organization />
</author>

<author initials='E' surname='Kinnear' fullname='Eric Kinnear'>
    <organization />
</author>

<author initials='D' surname='Schinazi' fullname='David Schinazi'>
    <organization />
</author>

<date month='October' day='22' year='2019' />

<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='Internet-Draft' value='draft-pauly-quic-datagram-04' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-pauly-quic-datagram-04.txt' />
</reference>



<reference anchor="I-D.deconinck-quic-multipath">
<front>
<title>Multipath Extensions for QUIC (MP-QUIC)</title>

<author initials='Q' surname='Coninck' fullname='Quentin Coninck'>
    <organization />
</author>

<author initials='O' surname='Bonaventure' fullname='Olivier Bonaventure'>
    <organization />
</author>

<date month='August' day='29' year='2019' />

<abstract><t>This document specifies extensions to the QUIC protocol to enable, other than connection migration, simultaneous usage of multiple paths for a single connection.  Those extensions remain compliant with the current single-path QUIC design.  They allow devices to benefit from multiple network paths while preserving the privacy features of QUIC.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-deconinck-quic-multipath-03' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-deconinck-quic-multipath-03.txt' />
</reference>



<reference anchor="I-D.ietf-tcpm-converters">
<front>
<title>0-RTT TCP Convert Protocol</title>

<author initials='O' surname='Bonaventure' fullname='Olivier Bonaventure'>
    <organization />
</author>

<author initials='M' surname='Boucadair' fullname='Mohamed Boucadair'>
    <organization />
</author>

<author initials='S' surname='Gundavelli' fullname='Sri Gundavelli'>
    <organization />
</author>

<author initials='S' surname='Seo' fullname='SungHoon Seo'>
    <organization />
</author>

<author initials='B' surname='Hesmans' fullname='Benjamin Hesmans'>
    <organization />
</author>

<date month='October' day='22' year='2019' />

<abstract><t>This document specifies an application proxy, called Transport Converter, to assist the deployment of TCP extensions such as Multipath TCP.  This proxy is designed to avoid inducing extra delay when involved in a network-assisted connection (that is, 0-RTT).  This specification assumes an explicit model, where the proxy is explicitly configured on hosts.  -- Editorial Note (To be removed by RFC Editor)  Please update these statements with the RFC number to be assigned to this document: [This-RFC]  Please update TBA statements with the port number to be assigned to the 0-RTT TCP Convert Protocol.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-tcpm-converters-13' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-tcpm-converters-13.txt' />
</reference>



<reference anchor="I-D.ietf-quic-transport">
<front>
<title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>

<author initials='J' surname='Iyengar' fullname='Jana Iyengar'>
    <organization />
</author>

<author initials='M' surname='Thomson' fullname='Martin Thomson'>
    <organization />
</author>

<date month='September' day='11' year='2019' />

<abstract><t>This document defines the core of the QUIC transport protocol. Accompanying documents describe QUIC's loss detection and congestion control and the use of TLS for key negotiation.  Note to Readers  Discussion of this draft takes place on the QUIC working group mailing list (quic@ietf.org), which is archived at &lt;https://mailarchive.ietf.org/arch/search/?email_list=quic>.  Working Group information can be found at &lt;https://github.com/ quicwg>; source code and issues list for this draft can be found at &lt;https://github.com/quicwg/base-drafts/labels/-transport>.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-quic-transport-23' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-quic-transport-23.txt' />
</reference>



<reference  anchor="RFC1812" target='https://www.rfc-editor.org/info/rfc1812'>
<front>
<title>Requirements for IP Version 4 Routers</title>
<author initials='F.' surname='Baker' fullname='F. Baker' role='editor'><organization /></author>
<date year='1995' month='June' />
<abstract><t>This memo defines and discusses requirements for devices that perform the network layer forwarding function of the Internet protocol suite. [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='1812'/>
<seriesInfo name='DOI' value='10.17487/RFC1812'/>
</reference>



<reference  anchor="RFC2827" target='https://www.rfc-editor.org/info/rfc2827'>
<front>
<title>Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing</title>
<author initials='P.' surname='Ferguson' fullname='P. Ferguson'><organization /></author>
<author initials='D.' surname='Senie' fullname='D. Senie'><organization /></author>
<date year='2000' month='May' />
<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="RFC3095" target='https://www.rfc-editor.org/info/rfc3095'>
<front>
<title>RObust Header Compression (ROHC): Framework and four profiles: RTP, UDP, ESP, and uncompressed</title>
<author initials='C.' surname='Bormann' fullname='C. Bormann'><organization /></author>
<author initials='C.' surname='Burmeister' fullname='C. Burmeister'><organization /></author>
<author initials='M.' surname='Degermark' fullname='M. Degermark'><organization /></author>
<author initials='H.' surname='Fukushima' fullname='H. Fukushima'><organization /></author>
<author initials='H.' surname='Hannu' fullname='H. Hannu'><organization /></author>
<author initials='L-E.' surname='Jonsson' fullname='L-E. Jonsson'><organization /></author>
<author initials='R.' surname='Hakenberg' fullname='R. Hakenberg'><organization /></author>
<author initials='T.' surname='Koren' fullname='T. Koren'><organization /></author>
<author initials='K.' surname='Le' fullname='K. Le'><organization /></author>
<author initials='Z.' surname='Liu' fullname='Z. Liu'><organization /></author>
<author initials='A.' surname='Martensson' fullname='A. Martensson'><organization /></author>
<author initials='A.' surname='Miyazaki' fullname='A. Miyazaki'><organization /></author>
<author initials='K.' surname='Svanbro' fullname='K. Svanbro'><organization /></author>
<author initials='T.' surname='Wiebke' fullname='T. Wiebke'><organization /></author>
<author initials='T.' surname='Yoshimura' fullname='T. Yoshimura'><organization /></author>
<author initials='H.' surname='Zheng' fullname='H. Zheng'><organization /></author>
<date year='2001' month='July' />
<abstract><t>This document specifies a highly robust and efficient header compression scheme for RTP/UDP/IP (Real-Time Transport Protocol, User Datagram Protocol, Internet Protocol), UDP/IP, and ESP/IP (Encapsulating Security Payload) headers.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='3095'/>
<seriesInfo name='DOI' value='10.17487/RFC3095'/>
</reference>



<reference  anchor="RFC3843" target='https://www.rfc-editor.org/info/rfc3843'>
<front>
<title>RObust Header Compression (ROHC): A Compression Profile for IP</title>
<author initials='L-E.' surname='Jonsson' fullname='L-E. Jonsson'><organization /></author>
<author initials='G.' surname='Pelletier' fullname='G. Pelletier'><organization /></author>
<date year='2004' month='June' />
<abstract><t>The original RObust Header Compression (ROHC) RFC (RFC 3095) defines a framework for header compression, along with compression protocols (profiles) for IP/UDP/RTP, IP/ESP (Encapsulating Security Payload), IP/UDP, and also a profile for uncompressed packet streams.  However, no profile was defined for compression of IP only, which has been identified as a missing piece in RFC 3095.  This document defines a ROHC compression profile for IP, similar to the IP/UDP profile defined by RFC 3095, but simplified to exclude UDP, and enhanced to compress IP header chains of arbitrary length.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='3843'/>
<seriesInfo name='DOI' value='10.17487/RFC3843'/>
</reference>



<reference  anchor="RFC4019" target='https://www.rfc-editor.org/info/rfc4019'>
<front>
<title>RObust Header Compression (ROHC): Profiles for User Datagram Protocol (UDP) Lite</title>
<author initials='G.' surname='Pelletier' fullname='G. Pelletier'><organization /></author>
<date year='2005' month='April' />
<abstract><t>This document defines Robust Header Compression (ROHC) profiles for compression of Real-Time Transport Protocol, User Datagram Protocol-Lite, and Internet Protocol (RTP/UDP-Lite/IP) packets and UDP-Lite/IP.  These profiles are defined based on their differences with the profiles for UDP as specified in RFC 3095.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4019'/>
<seriesInfo name='DOI' value='10.17487/RFC4019'/>
</reference>



<reference  anchor="RFC4815" target='https://www.rfc-editor.org/info/rfc4815'>
<front>
<title>RObust Header Compression (ROHC): Corrections and Clarifications to RFC 3095</title>
<author initials='L-E.' surname='Jonsson' fullname='L-E. Jonsson'><organization /></author>
<author initials='K.' surname='Sandlund' fullname='K. Sandlund'><organization /></author>
<author initials='G.' surname='Pelletier' fullname='G. Pelletier'><organization /></author>
<author initials='P.' surname='Kremer' fullname='P. Kremer'><organization /></author>
<date year='2007' month='February' />
<abstract><t>RFC 3095 defines the RObust Header Compression (ROHC) framework and profiles for IP (Internet Protocol), UDP (User Datagram Protocol), RTP (Real-Time Transport Protocol), and ESP (Encapsulating Security Payload).  Some parts of the specification are unclear or contain errors that may lead to misinterpretations that may impair interoperability between different implementations.  This document provides corrections, additions, and clarifications to RFC 3095; this document thus updates RFC 3095.  In addition, other clarifications related to RFC 3241 (ROHC over PPP), RFC 3843 (ROHC IP profile) and RFC 4109 (ROHC UDP-Lite profiles) are also provided.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4815'/>
<seriesInfo name='DOI' value='10.17487/RFC4815'/>
</reference>



<reference  anchor="RFC6846" target='https://www.rfc-editor.org/info/rfc6846'>
<front>
<title>RObust Header Compression (ROHC): A Profile for TCP/IP (ROHC-TCP)</title>
<author initials='G.' surname='Pelletier' fullname='G. Pelletier'><organization /></author>
<author initials='K.' surname='Sandlund' fullname='K. Sandlund'><organization /></author>
<author initials='L-E.' surname='Jonsson' fullname='L-E. Jonsson'><organization /></author>
<author initials='M.' surname='West' fullname='M. West'><organization /></author>
<date year='2013' month='January' />
<abstract><t>This document specifies a RObust Header Compression (ROHC) profile for compression of TCP/IP packets.  The profile, called ROHC-TCP, provides efficient and robust compression of TCP headers, including frequently used TCP options such as selective acknowledgments (SACKs) and Timestamps.</t><t>ROHC-TCP works well when used over links with significant error rates and long round-trip times.  For many bandwidth-limited links where header compression is essential, such characteristics are common.</t><t>This specification obsoletes RFC 4996.  It fixes a technical issue with the SACK compression and clarifies other compression methods used.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='6846'/>
<seriesInfo name='DOI' value='10.17487/RFC6846'/>
</reference>



<reference  anchor="RFC6887" target='https://www.rfc-editor.org/info/rfc6887'>
<front>
<title>Port Control Protocol (PCP)</title>
<author initials='D.' surname='Wing' fullname='D. Wing' role='editor'><organization /></author>
<author initials='S.' surname='Cheshire' fullname='S. Cheshire'><organization /></author>
<author initials='M.' surname='Boucadair' fullname='M. Boucadair'><organization /></author>
<author initials='R.' surname='Penno' fullname='R. Penno'><organization /></author>
<author initials='P.' surname='Selkirk' fullname='P. Selkirk'><organization /></author>
<date year='2013' month='April' />
<abstract><t>The Port Control Protocol allows an IPv6 or IPv4 host to control how incoming IPv6 or IPv4 packets are translated and forwarded by a Network Address Translator (NAT) or simple firewall, and also allows a host to optimize its outgoing NAT keepalive messages.</t></abstract>
</front>
<seriesInfo name='RFC' value='6887'/>
<seriesInfo name='DOI' value='10.17487/RFC6887'/>
</reference>



<reference  anchor="RFC7301" target='https://www.rfc-editor.org/info/rfc7301'>
<front>
<title>Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension</title>
<author initials='S.' surname='Friedl' fullname='S. Friedl'><organization /></author>
<author initials='A.' surname='Popov' fullname='A. Popov'><organization /></author>
<author initials='A.' surname='Langley' fullname='A. Langley'><organization /></author>
<author initials='E.' surname='Stephan' fullname='E. Stephan'><organization /></author>
<date year='2014' month='July' />
<abstract><t>This document describes a Transport Layer Security (TLS) extension for application-layer protocol negotiation within the TLS handshake. For instances in which multiple application protocols are supported on the same TCP or UDP port, this extension allows the application layer to negotiate which protocol will be used within the TLS connection.</t></abstract>
</front>
<seriesInfo name='RFC' value='7301'/>
<seriesInfo name='DOI' value='10.17487/RFC7301'/>
</reference>



<reference  anchor="RFC8126" target='https://www.rfc-editor.org/info/rfc8126'>
<front>
<title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
<author initials='M.' surname='Cotton' fullname='M. Cotton'><organization /></author>
<author initials='B.' surname='Leiba' fullname='B. Leiba'><organization /></author>
<author initials='T.' surname='Narten' fullname='T. Narten'><organization /></author>
<date year='2017' month='June' />
<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>


<reference anchor="CoNEXT" >
  <front>
    <title>Multipath QUIC: Design and Evaluation</title>
    <author initials="Q." surname="De Coninck">
      <organization></organization>
    </author>
    <author initials="O." surname="Bonaventure">
      <organization></organization>
    </author>
    <date year="2017" month="December"/>
  </front>
  <seriesInfo name="Proceedings of the 13th International Conference on emerging Networking EXperiments and Technologies (CoNEXT 2017)" value=""/>
</reference>
<reference anchor="SIGCOMM19" >
  <front>
    <title>Pluginizing QUIC</title>
    <author initials="Q." surname="De Coninck">
      <organization></organization>
    </author>
    <author initials="F." surname="Michel">
      <organization></organization>
    </author>
    <author initials="M." surname="Piraux">
      <organization></organization>
    </author>
    <author initials="T." surname="Given-Wilson">
      <organization></organization>
    </author>
    <author initials="A." surname="Legay">
      <organization></organization>
    </author>
    <author initials="O." surname="Pereira">
      <organization></organization>
    </author>
    <author initials="O." surname="Bonaventure">
      <organization></organization>
    </author>
    <date year="2019" month="August"/>
  </front>
  <seriesInfo name="Proceedings of the ACM Special Interest Group on Data Communication" value=""/>
</reference>


    </references>


<section numbered="false" anchor="acknowledgments" title="Acknowledgments">

<t>Thanks to Quentin De Coninck and Francois Michel for their comments and
the proofreading of the first version of this document.
Thanks to Gregory Vander Schueren for his comments on the first version of
this document.</t>

</section>


  </back>

<!-- ##markdown-source:
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

-->

</rfc>

