<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
     which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
     please see http://xml.resource.org/authoring/README.html. -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="3"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space 
     (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="std" docName="draft-li-rtgwg-gip6-for-quic-00"
     ipr="trust200902">
  <front>
    <title abbrev="Generalized IPv6 Tunnel for QUIC">Generalized IPv6 Tunnel
    (GIP6) for QUIC</title>

    <author fullname="Zhenbin Li" initials="Z." surname="Li">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street>156 Beiqing Road</street>

          <city>Beijing,100095</city>

          <country>P.R. China</country>
        </postal>

        <email>lizhenbin@huawei.com</email>
      </address>
    </author>

    <author fullname="Shuanglong Chen" initials="S." surname="Chen">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street>156 Beiqing Road</street>

          <city>Beijing, 100095</city>

          <country>P.R. China</country>
        </postal>

        <email>chenshuanglong@huawei.com</email>
      </address>
    </author>

    <author fullname="Hang Shi" initials="H." surname="Shi">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street>156 Beiqing Road</street>

          <city>Beijing, 100095</city>

          <country>P.R. China</country>
        </postal>

        <email>shihang9@huawei.com</email>
      </address>
    </author>

    <date day="24" month="October" year="2022"/>

    <!---->

    <abstract>
      <t>This document defines a new encapsulation method for QUIC packet
      transmission based on IPv6 extension headers. This method enables QUIC
      packet transmission to easily inherit the extended functions of
      IPv6.</t>
    </abstract>

    <note title="Requirements Language">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
      document are to be interpreted as described in <xref
      target="RFC2119"/>.</t>
    </note>
  </front>

  <middle>
    <section title="Introduction">
      <t>The draft <xref target="I-D.li-rtgwg-generalized-ipv6-tunnel"/>
      proposes why the Generalize IPv6 Tunnel is introduced to unify the IP
      tunnels to remove the duplicate functions and support new features.
      QUIC, as a general-purpose transport layer network protocol, is
      gradually being applied on the network side, such as DNS over QUIC <xref
      target="RFC9250"/> and QUIC tunnel <xref
      target="I-D.piraux-quic-tunnel"/>. QUIC tunnel-based packet transmission
      also faces the issues to be extended to support new features.</t>

      <t>This document defines encapsulation of QUIC headers into the GIP6
      tunnel encapsulation and attempts to solve these issues.</t>
    </section>

    <section title="Terminology">
      <t>APN: Application-aware Networking</t>

      <t>IPv4: Internet Protocol version 4</t>

      <t>IPv6: Internet Protocol version 6</t>

      <t>IOAM: In-situ Operations, Administration, and Maintenance</t>
    </section>

    <section title="Problem Statement">
      <t>As mentioned in the draft <xref
      target="I-D.li-rtgwg-generalized-ipv6-tunnel"/>, many new features, such
      as Alternate Marking <xref target="I-D.ietf-6man-ipv6-alt-mark"/> , IOAM
      <xref target="I-D.ietf-ippm-ioam-ipv6-options"/>, resource
      isolation<xref target="I-D.ietf-6man-enhanced-vpn-vtn-id"/> , and
      APN<xref target="I-D.li-apn-ipv6-encap"/> , are emerging and the
      corresponding encapsulations over the IPv6 are defined. Since there are
      all kinds of existing IP tunnels (including UDP-based tunnels), if these
      new features need to be supported over these tunnels, it is very
      difficult to extend for these tunnels. If QUIC is used as a tunnel for
      transmission of data packets in the network, it will also face the
      challenge to support these new features.</t>
    </section>

    <section title="Encapsulated of GIP6 for QUIC">
      <t>The draft <xref target="I-D.li-rtgwg-generalized-ipv6-tunnel"/>
      defined the GIP6 tunnel which use the IPv6 header and IPv6 extension
      header to support both functions of existing IP tunnels and new
      features. The GIP6 tunnel is to unify the IP tunnels to remove the
      duplicate functions and support new features. This can greatly reduce
      the repeated effort to extend the exiting IP tunnels to support the new
      features.</t>

      <t>To support existing QUIC functions, the GIP6 tunnel is extended as
      follows:</t>

      <t>1. Definition of the QUIC Option: A new option called QUIC Option is
      defined to carry the QUIC header information. The QUIC Option MUST only
      be encapsulated in the Destination Options Header (DOH).</t>

      <t>The following figure shows the data fields format of the QUIC
      option:</t>

      <t><figure>
          <artwork><![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 
                              +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                              |  Option Type  |  Opt Data Len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+     
|                                                             |
|                QUIC Header (Variable Bytes)                 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                      Figure 1. QUIC Option]]></artwork>
        </figure></t>

      <t>The QUIC Option contains the following fields:</t>

      <t>* Option Type: 8-bit selector. QUIC option. Value TBD by IANA.</t>

      <t>* Opt Data Len: 8-bit unsigned integer. Length of the option, in
      octets, excluding the Option Type and Option Length fields.</t>

      <t>* Option Data: variable. QUIC Header Information. For the detailed
      definition of the QUIC headers, please refer to <xref
      target="RFC8999"/>.</t>

      <t>2. The function of the UDP header for ECMP can replaced by the flow
      label of the IPv6 header in the GIP6 tunnel. To ensure compatibility,
      the value of the flow label calculated for the purpose of ECMP SHOULD be
      the same as that of the source port of the UDP.</t>
    </section>

    <section title="Security Considerations">
      <t>TBD.</t>
    </section>

    <section title="IANA Considerations">
      <t>The Option Type should be assigned in IANA's "Destination Options"
      registry.</t>

      <t>This draft requests the following IPv6 Option Type assignment from
      the Destination Options sub-registry of Internet Protocol Version 6
      (IPv6) Parameters
      (https://www.iana.org/assignments/ipv6-parameters/).</t>

      <t><figure>
          <artwork><![CDATA[Hex Value     Binary Value        Description           Reference
             act  chg  rest
----------------------------------------------------------------
 TBD         00    0   TBD          QUIC               [This draft] 
                  Figure 2. IANA Considerations]]></artwork>
        </figure></t>
    </section>
  </middle>

  <back>
    <references title="References">
      <?rfc include='reference.RFC.2119'?>

      <?rfc include='reference.RFC.9250'?>

      <?rfc include='reference.RFC.8999'?>

      <?rfc include='reference.I-D.ietf-6man-ipv6-alt-mark'?>

      <?rfc include='reference.I-D.ietf-nvo3-vxlan-gpe'?>

      <?rfc include='reference.I-D.ietf-ippm-ioam-ipv6-options'?>

      <?rfc include='reference.I-D.piraux-quic-tunnel'?>

      <?rfc include='reference.I-D.li-apn-ipv6-encap'?>

      <?rfc include='reference.I-D.li-rtgwg-generalized-ipv6-tunnel'?>

      <?rfc include='reference.I-D.ietf-6man-enhanced-vpn-vtn-id'?>
    </references>
  </back>
</rfc>
