<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-du-apn6-auto-encapsulation-adjustment-02"
     ipr="trust200902">
  <front>
    <title abbrev="Auto-adjusted APN6 Encapsulation">Auto-adjustment of
    Encapsulation Information in APN6</title>

    <author fullname="Zongpeng Du" initials="Z." surname="Du">
      <organization>China Mobile</organization>

      <address>
        <postal>
          <street>No.32 XuanWuMen West Street</street>

          <city>Beijing</city>

          <code>100053</code>

          <country>China</country>
        </postal>

        <email>duzongpeng@foxmail.com</email>
      </address>
    </author>

    <author fullname="Peng Liu" initials="P." surname="Liu">
      <organization>China Mobile</organization>

      <address>
        <postal>
          <street>No.32 XuanWuMen West Street</street>

          <city>Beijing</city>

          <code>100053</code>

          <country>China</country>
        </postal>

        <email>liupengyjy@chinamobile.com</email>
      </address>
    </author>

    <date month="March" year="2022"/>

    <area>Routing Area</area>

    <workgroup>Network Working Group</workgroup>

    <keyword>APN6</keyword>

    <abstract>
      <t>This document introduces a method to adjust the encapsulation
      information in Application-aware IPv6 Networking.</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">RFC 2119</xref>.</t>
    </note>
  </front>

  <middle>
    <section title="Introduction">
      <t>As the development of 5G and the new emerging Internet services, such
      as live video streaming, the networks are facing a larger and larger SLA
      requirement difference. For better bearing of the user's traffic, the
      networks need to be intelligent and be aware of the user traffic's
      demand. An innovative method called APN6 is introduced in <xref
      target="I-D.li-apn6-problem-statement-usecases"/> and <xref
      target="I-D.li-apn-framework"/>.</t>

      <t>In the mechanism of APN6, the packet can carry the ID information and
      SLA requirements of the traffic, and a network equipment can get them in
      each packet and handle the packet accordingly. It is one kind of network
      programming mechanisms in the data plane.</t>

      <t>As the encapsulation information increases in an APN packet, some
      bandwidth is kindly wasted in APN6 which contains a larger overhead in
      every packet. On one aspect, it is believed that it is necessary for the
      evolution to an intelligent network; on the other aspect, it is
      recommended that after the network has known the requirements of the
      traffic and associated it with a proper policy, the traffic does not
      need to resend the same information in every packet again and again.
      This document describes the process of the later.</t>

      <t/>
    </section>

    <section title="Auto-adjustment of Encapsulation Information">
      <section title="Current Mechanism in APN6">
        <t>As shown in Figure 1, the APN framework <xref
        target="I-D.li-apn-framework"/> includes Service-aware App, App-aware
        Edge Device, App-aware-process Head-End, App-aware-process Mid-Point,
        and App-aware-process End-Point.</t>

        <t/>

        <figure>
          <artwork><![CDATA[              
Client                                                         Server
+-----+                                                        +-----+
|App x|-\                                                   /->|App x|
+-----+ |   +-----+ +---------+   +---------+   +---------+ |  +-----+
         \->|App- | |App-aware|-A-|App-aware|-A-|App-aware|-/
User side   |aware|-|process  |-B-|process  |-B-|process  |
         /->|Edge | |Head-End |-C-|Mid-Point|-C-|End-Point|-\
+-----+ |   +-----+ +---------+   +---------+   +---------+ |  +-----+
|App y|-/                                                   \->|App y|
+-----+           ---------  Uplink   ---------->              +-----+

             Figure 1: Framework and Key Components in APN6

]]></artwork>
        </figure>

        <t/>

        <t>The data-driven process of APN6 is described below.</t>

        <t>The APP or the APP-aware Edge will generate APN packets each
        carries the application characteristic information in the
        encapsulation.</t>

        <t>App-aware-process Head-End can read that information and steer the
        packets into a given policy which satisfies the application's SLA
        requirements. It is supposed that a set of paths, tunnels or SR
        policies, exist between the App-aware-process Head-End and the
        App-aware-process End-Point. App-aware-process Head-End can find one
        existing path or establish a new one for the traffic.</t>
      </section>

      <section title="Comparisons of Data Plane and Control Plane Programming">
        <t>We can realize the same traffic steering in the control plane. The
        control-plane based process, as described below, includes three key
        components: the identity of the traffic, policies in Head-End, and the
        interface to notify the user requirements.</t>

        <t>The APP or the Edge knowing the application characteristic
        information, needs to report that information to the controller of the
        Head-End by some means.</t>

        <t>The controller needs to know the traffic requirements and the
        status of the network, and generate a policy for the Head-End. The
        policy SHOULD include the identity of the traffic and the path that
        the traffic should follow.</t>

        <t>The Head-End needs to implement the policy, and steer the traffic
        to the proper path.</t>

        <t>In this mechanism, we do not need to carry extra information in
        each packet, but need to generate control messages between the Edge
        and the controller, and between the Head-End and the controller.</t>

        <t>In the situation that the traffic is small, and simple to handle, a
        control-layer decision-loop is not that necessary. By comparison, a
        date-driven method is more flexible. In this situation, the Head-End
        after steering the traffic needs to report the (summarized) change to
        the controller.</t>

        <t/>
      </section>

      <section title="Potential Solutions for Auto-adjustment">
        <t>We can find that after the Head-End has selected the policy, the
        extra information carried in the following APN6 packets has little
        use. Therefore, an auto-adjustment of encapsulation information
        mechanism may be helpful for the simplification of the following IPv6
        packets.</t>

        <t>According to <xref target="I-D.li-apn-framework"/>, the information
        may include application-aware identification, such as SLA level,
        application ID, user ID, flow ID, etc., and network performance
        requirements, such as bandwidth, latency, jitter, packet loss ratio,
        etc. Hence, at least, we can send only the application-aware
        identification information in the following APN6 packets without
        network performance requirements information.</t>

        <t>Two methods are described below.</t>

        <t>One straightforward method is that we firstly send full information
        in APN6 packets, and after several seconds, we send APN6 packets that
        only contain the necessary information, such as the application-aware
        identification information. In this method, we believe that the
        Head-End can handle the policy mapping process in the several seconds.
        For example, it can be three seconds. The number should be a parameter
        that can be adjusted according to the situation of each network.</t>

        <t>Another method is that after enabling the policy, the Head-End can
        notify the encapsulation point by some means. However, we do not have
        a notification mechanism between different nodes in the data-plane
        network programming now. We need to notify by using the control plane
        again. The control plane sends a message to the encapsulation point to
        adjust the encapsulation degree.</t>

        <t>This document suggests to enable a simple notification method for
        the data-plane network programming if the information is not that
        complicated. For example, we can send a "ping" message with a specific
        flag to the encapsulation point. The advantage is easy to
        inter-operate.</t>

        <t>In future, with the technical development of network equipments,
        the bandwidth may not be the bottleneck anymore, so that a full APN6
        encapsulation packet may be used widely to enable the data plane
        intelligence. However, the auto-adjustment of encapsulation
        information method can help the adoption of the APN6 mechanism by
        providing a transit solution. Meanwhile, this document also provides a
        feedback mechanism for the data plane programming to enable the
        coordination between two nodes.</t>
      </section>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>TBD.</t>
    </section>

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

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>TBD.</t>
    </section>
  </middle>

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

      <?rfc include='reference.I-D.li-apn-framework'?>
    </references>

    <references title="Informative References">
      <?rfc include='reference.I-D.li-apn6-problem-statement-usecases'?>
    </references>
  </back>
</rfc>
