<?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="info" docName="draft-lxm-rtgwg-apn-deployment-status-01"
     ipr="trust200902">
  <front>
    <title abbrev="APN Deployment Status">Application-aware Networking (APN)
    Implementation and Deployment Status</title>

    <author fullname="Ying Liu" initials="Y." surname="Liu">
      <organization>China Unicom</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country/>
        </postal>

        <phone/>

        <facsimile/>

        <email>liuy619@chinaunicom.cn</email>

        <uri/>
      </address>
    </author>

    <author fullname="Qingbang Xu" initials="Q." surname="Xu">
      <organization>Agricultural Bank of China</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country/>
        </postal>

        <phone/>

        <facsimile/>

        <email>michbang@163.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Jianwei Mao" initials="J." surname="Mao">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street/>

          <city>Beijing</city>

          <region/>

          <code>100095</code>

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

        <phone/>

        <facsimile/>

        <email>maojianwei@huawei.com</email>

        <uri/>
      </address>
    </author>

    <date day="19" month="March" year="2024"/>

    <abstract>
      <t>This draft provides an overview of Application-aware Networking (APN)
      deployment status. It lists various APN features that have been deployed
      in the production networks. It also provides an overview of APN
      implementation status.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>This draft provides an overview of Application-aware Networking (APN)
      deployment status. It lists various APN features that have been deployed
      in the production networks. It also provides an overview of APN
      implementation status.</t>
    </section>

    <section title="Requirements Language">
      <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> <xref target="RFC8174"> </xref> when,
      and only when, they appear in all capitals, as shown here.</t>
    </section>

    <section title="Deployment Status">
      <t/>

      <section title="Agricultural Bank of China (ABC)">
        <t>Agricultural Bank of China (ABC) has deployed APN at the load
        balancers of the product data center in Beijing, and has enabled APN
        at the PE nodes of the IP Backbone network.</t>

        <t>It decouples the IP address and the application on the network,
        that enables rapid network service provisioning for massive software
        upgrade and delivery services, and makes network rules stable to adapt
        to the changes in the IP addresses of thousands of applications.</t>

        <t>The APN option is carried by IPv6 packets of applications and
        traverses the network from the load balancer to the user terminals,
        e.g., PC and laptop.</t>

        <t>The APN ID in the APN option is first planned in the APN domain,
        and then configured to the network controller and the management plane
        of the applications. The network controller delivers the
        configurations of the APN ID to the network devices.</t>

        <t>To use the APN ID on the data plane, the management plane forms and
        maintains an APN ID policy after an APN ID is allocated to a specific
        application. The policy specifies the mapping from the current 5
        tuples of the application to the APN ID, and is similar to the
        APN-marking policy <xref target="I-D.li-rtgwg-apn-framework"/>.</t>

        <t>The APN-capable load balancer obtains APN ID policies and get
        updates from the management plane. After that, the load balancers
        initiate packets with APN option towards application clients in the
        user terminals. The packets enter the IP Backbone network from its PE
        nodes.</t>

        <t>The SRv6 TE tunnels have been deployed in the IP Backbone network,
        which provide different SLA levels and forwarding paths. The
        APN-capable PE nodes steer traffic in application granularity among
        the tunnels according to the APN ID carried in the APN option of IPv6
        extension header. Then the packets enter the Access network.</t>

        <t>The Access network has not enabled APN yet. According to the
        highest two bits of the option type field of APN option, the APN
        option is skipped over when the packets are processed. The packets are
        forwarded to the user terminals normally, and the APN option is
        transparently transmitted.</t>

        <t>By offloading APN from the application to the load balancer,
        thousands of applications can benefit from APN while they are not
        required to be upgraded, i.e., they can keep APN-uncapable or
        APN-unaware.</t>

        <t>The deployment case is shown in Figure 1.</t>

        <t/>

        <t><figure>
            <artwork><![CDATA[                  +-------------------------------+          +------------------+
                  |           Network             |          |   Application    |
                  |          Controller           |          | Management Plane |
                  +-------------------------------+          +------------------+
                     |                         |                           |
                     |                         |                           |
                     |                         |             +-------------|--------------+
                     v                         v             | Data Center |    +-------+ |
                                                             |             |    |  App  | |
+-------+                                   +----+           |             |    |Server1| |
|  App  |                               /---|B-P1|---\       |             |   /+-------+ |
|Client1|      /------------\          /    +----+    \      |             v  /           |
+-------+\    /              \        /                \     | +-------------+  +-------+ |
   PC     \+-----+        +-----+  +-----+    IP    +-----+  | | APN-capable |  |  App  | |
           |A-PE1| Access |A-PE2|--|B-PE1|          |B-PE2|----|Load Balancer|--|Server2| |
          /+-----+        +-----+  +-----+ Backbone +-----+  | +-------------+  +-------+ |
+-------+/    \              /        \                /     |                \           |
|  App  |      \------------/          \    +----+    /      |                 \+-------+ |
|Client2|                               \---|B-P2|---/       |                  |  App  | |
+-------+                                   +----+           |                  |Server3| |
 Laptop                                                      |                  +-------+ |
                                                             +----------------------------+

                 Skip over             Steer by APN ID
           <--  APN6 option   -->  <-- to SRv6 TE tunnel ->
               (transparency)

   <------ Packets with APN6 option, for the end-to-end connection ------>

            Figure 1: Agricultural Bank of China deployment case]]></artwork>
          </figure></t>

        <t/>

        <t>The following APN features have been deployed:</t>

        <t><list style="symbols">
            <t>An APN Header based data plane <xref
            target="I-D.li-apn-header"/> <xref
            target="I-D.li-apn-ipv6-encap"/>.</t>

            <t>APN-capable Application Server (AAS): initiation of the packet
            with APN option <xref
            target="I-D.li-rtgwg-apn-app-side-framework"/>.</t>

            <t>APN-Controller: planning and execution of how the APN attribute
            are allocated and maintained <xref
            target="I-D.li-rtgwg-apn-framework"/>.</t>

            <t>APN-Controller: processing the request from the AAS and
            allocating the APN resources of the controlled APN domain to the
            AAS <xref target="I-D.li-rtgwg-apn-app-side-framework"/>.</t>

            <t>APN-Head: APN ID based traffic steering for SRv6 TE <xref
            target="I-D.li-rtgwg-apn-app-side-framework"/>.</t>

            <t>APN-Endpoint: remove the outer tunnel header and keep the APN
            attribute in packets <xref target="I-D.li-rtgwg-apn-framework"/>
            <xref target="I-D.li-rtgwg-apn-app-side-framework"/>.</t>

            <t>END (PSP), END.X (PSP), and END.DT6 functions as per <xref
            target="RFC8986"/>.</t>

            <t>BGP EVPN SRv6 extensions <xref target="RFC9252"/>.</t>

            <t>IS-IS SRv6 extensions <xref target="RFC9352"/>.</t>
          </list></t>
      </section>

      <section title="Government Services and Data Management Bureau of Shenzhen Municipality">
        <t>Government Services and Data Management Bureau of Shenzhen
        Municipality has deployed APN to enable quality assurance for video
        conference service.</t>

        <t>The Bureau has deployed APN-capable terminals and servers of a
        video conference system in an office campus and a data center
        respectively, and has enabled APN at the PE nodes of the e-Government
        extranet in Shenzhen. The extranet is a wide area network, which is
        divided into three levels of global, province and city. Each level
        consists of two networks of access and backbone.</t>

        <t>For the video conference scenario, the APN option is initiated by
        the terminals and servers, and carried by IPv6 packets. It traverses
        the network from the terminals to the servers, and vice versa.</t>

        <t>The terminals and servers acquire the APN ID to be added from the
        controller of the video conference application on demand. The network
        controller delivers the configurations of the APN ID to the network
        devices in advance and on demand.</t>

        <t>The SRv6 TE tunnels and the network slices have been deployed in
        the e-Government extranet, which provide different forwarding paths,
        and enable resource isolation. The APN-capable PE nodes distinguish
        the traffic of common and important conferences according to the APN
        ID carried in the APN option, then steer the traffic to different
        tunnels and network slices. When the network quality is downgraded,
        the quality of important conferences can be assured.</t>

        <t>The deployment case is shown in Figure 2.</t>

        <t/>

        <t><figure>
            <artwork><![CDATA[                         +----------------------+       +----------------+
                         |       Network        |       |Video Conference|
                         |      Controller      |       |   Controller   |
                         +----------------------+       +----------------+
                             |              |                         |
                             |              |                         |
                             v              v                         |
                                                                      |
+----------------+       /----------------------\       +-------------|--+
| Office Campus  |      /                        \      | Data Center |  |
|                |     /                          \     |             |  |
| +------------+ |    +---+    +--+    +--+    +---+    |             |  |
| | Conference |------|PE1|----|P1|----|P3|----|PE3|    |             |  |
| | Terminal 1 | |    +---+    +--+    +--+    +---+    |             |  |
| +------------+ |     |           \  /           |     |             |  |
|                |     |            \/            |     |             |  |
|                |     |            /\            |     |             v  |
| +------------+ |     |           /  \           |     | +------------+ |
| | Conference | |    +---+    +--+    +--+    +---+    | | Conference | |
| | Terminal 2 |------|PE2|----|P2|----|P4|----|PE4|------|   Server   | |
| +------------+ |    +---+    +--+    +--+    +---+    | +------------+ |
+----------------+     \                          /     +----------------+
                        \  e-Government extranet /
                         \----------------------/

                         Steer to SRv6 tunnel and
                     <-- network slice by APN ID   ->

                         Packets with APN6 option,
                     <-- for surveillance scenario ->

     <------ Packets with APN6 option, for conference scenario ----->

Figure 2: Government Services and Data Management Bureau of Shenzhen
          Municipality deployment case]]></artwork>
          </figure></t>

        <t>The following APN features have been deployed:</t>

        <t><list style="symbols">
            <t>An APN Header based data plane <xref
            target="I-D.li-apn-header"/> <xref
            target="I-D.li-apn-ipv6-encap"/>.</t>

            <t>APN-capable Application Server (AAS): initiation of the packet
            with APN option <xref
            target="I-D.li-rtgwg-apn-app-side-framework"/>.</t>

            <t>APN-capable Application Client (AAC): initiation of the packet
            with APN option, and acquire APN attribute from AAS <xref
            target="I-D.li-rtgwg-apn-app-side-framework"/>.</t>

            <t>APN-Controller: planning and execution of how the APN attribute
            are allocated and maintained <xref
            target="I-D.li-rtgwg-apn-framework"/>.</t>

            <t>APN-Controller: processing the request from the AAS and
            allocating the APN resources of the controlled APN domain to the
            AAS <xref target="I-D.li-rtgwg-apn-app-side-framework"/>.</t>

            <t>APN-Head: APN ID based traffic steering for SRv6 TE <xref
            target="I-D.li-rtgwg-apn-app-side-framework"/>.</t>

            <t>APN-Endpoint: remove the outer tunnel header and keep the APN
            attribute in packets <xref target="I-D.li-rtgwg-apn-framework"/>
            <xref target="I-D.li-rtgwg-apn-app-side-framework"/>.</t>

            <t>END.X (PSP), END.DT6 functions as per <xref
            target="RFC8986"/>.</t>

            <t>BGP EVPN SRv6 extensions <xref target="RFC9252"/>.</t>

            <t>BGP-LS SRv6 extensions <xref target="RFC9514"/>.</t>

            <t>IS-IS SRv6 extensions <xref target="RFC9352"/>.</t>

            <t>NRP extensions for network slice services <xref
            target="I-D.ietf-6man-enhanced-vpn-vtn-id"/>.</t>
          </list></t>
      </section>

      <section title="China Unicom">
        <t>China Unicom has tested APN to enable acceleration for online
        courses services, which provides SLA assurance.</t>

        <t>The APN-capable PE nodes are deployed in the metro network in
        Beijing. The traffic from the customer terminals comes to the BRAS
        devices first, and is steered to the APN-capable PE nodes.</t>

        <t>The PE nodes identify the packets of the online course services,
        which are destined for the universities abroad, by some means (e.g.,
        five tuples). The PE nodes add the specific APN ID in the packets, and
        forward them back to the BRAS devices. The APN ID is carried by APN
        option.</t>

        <t>The BRAS devices steer the traffic to two different backbone
        networks according to the APN ID in the packets. The Backbone-1
        network is for common use to access internet, while the Backbone-2
        network is treated as an acceleration path to access internet and
        networks abroad.</t>

        <t>The SRv6 TE tunnels is also deployed in the metro network. The BRAS
        devices forward the traffic of the online course services to the
        corresponding border nodes (CR nodes) of the Backbone-2 network in the
        SRv6 TE tunnel, after removing the APN ID. The CR nodes remove the
        SRv6 TE tunnel and forward the traffic ahead. Then the traffic goes
        through the Backbone-2 network and reach the destination server, that
        reduces the RTT latency and packet loss rate significantly.</t>

        <t>The deployment case is shown in Figure 3.</t>

        <t><figure>
            <artwork><![CDATA[             +----+
             | PE |
             +----+
              ^  |                 /--------\
              |  |       +---+    /          \    +----+
              |  v   /---|CR1|---| Backbone-1 |---|POP1|
+--------+   +----+ /    +---+    \          /    +----+\
|Customer|   |    |/       |       \--------/            \+------+   +------+
|        |---|BRAS|        |                              |access|---|Server|
|Terminal|   |    |\       |       /--------\            /+------+   +------+
+--------+   +----+ \    +---+    /          \    +----+/
                     \---|CR2|---| Backbone-2 |---|POP2|
                         +---+    \          /    +----+
                                   \--------/

                    Figure 3: China Unicom deployment case]]></artwork>
          </figure></t>

        <t>The following APN features have been deployed:</t>

        <t><list style="symbols">
            <t>An APN Header based data plane <xref
            target="I-D.li-apn-header"/> <xref
            target="I-D.li-apn-ipv6-encap"/>.</t>

            <t>APN-Edge: add/remove the APN attributes to/from the packet
            <xref target="I-D.li-rtgwg-apn-framework"/>.</t>

            <t>APN-Head: APN ID based traffic steering for SRv6 TE <xref
            target="I-D.li-rtgwg-apn-framework"/>.</t>

            <t>END (PSP), END.X (PSP), END.DT6 functions as per <xref
            target="RFC8986"/>.</t>

            <t>BGP EVPN SRv6 extensions <xref target="RFC9252"/>.</t>

            <t>IS-IS SRv6 extensions <xref target="RFC9352"/>.</t>
          </list></t>
      </section>
    </section>

    <section title="Implementation Status of APN">
      <t/>

      <section title="Open-source platforms">
        <t>The following open source platforms supports APN6 including <xref
        target="I-D.li-apn-header"> </xref> and <xref
        target="I-D.li-apn-ipv6-encap"> </xref>:</t>

        <t><list style="symbols">
            <t>Wireshark (from 4.2.0 version): 32/64/128-bit APN ID, APN6
            option in the Hop-by-Hop Options Header (HBH) and Destination
            Options Header (DOH).<xref target="wireshark-release-notes">
            </xref></t>

            <t>Linux: enhanced sendmsg, sendto, and setsockopt API for APN
            option support, custom kernel module for APN option support <xref
            target="apn-srv6-demo"/>.</t>

            <t>P4 hardware switch: encapsulation action for APN option and all
            four kinds of APN parameters <xref target="apn-p4-demo-1"/> <xref
            target="apn-p4-demo-2"/>, steer traffic to SRv6 TE tunnel by APN
            option and APN parameters.</t>
          </list></t>
      </section>

      <section title="Additional Routing platforms">
        <t>To date, 7 publicly known hardware platforms support APN.
        Specifically, the following hardware platforms (in alphabetical order)
        supports APN including <xref target="I-D.li-apn-header"/> and <xref
        target="I-D.li-apn-ipv6-encap"/> :</t>

        <t>Huawei:</t>

        <t>Huawei hardware platforms supports APN with current status as
        follows:</t>

        <t><list style="symbols">
            <t>Huawei ATN with VRPV8 shipping code.</t>

            <t>Huawei CX600 with VRPV8 shipping code.</t>

            <t>Huawei NE40E with VRPV8 shipping code.</t>

            <t>Huawei ME60 with VRPV8 shipping code.</t>

            <t>Huawei NE5000E with VRPV8 shipping code.</t>

            <t>Huawei NE9000 with VRPV8 shipping code.</t>

            <t>Huawei NE8000 with VRPV8 shipping code.</t>
          </list></t>
      </section>
    </section>

    <section title="Interoperability Status of APN">
      <t>.</t>
    </section>

    <section title="Significant industry collaboration for APN standardization">
      <t>.</t>
    </section>

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

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

    <section title="Acknowledgements">
      <t>.</t>
    </section>

    <section title="Contributors">
      <t>.</t>
    </section>
  </middle>

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

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

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

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

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

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

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

      <?rfc include='reference.I-D.li-rtgwg-apn-app-side-framework'?>

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

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

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

    <references title="Informative References">
      <reference anchor="wireshark-release-notes"
                 target="https://www.wireshark.org/docs/relnotes/wireshark-4.2.0.html">
        <front>
          <title>Wireshark 4.2.0 Release Notes</title>

          <author>
            <organization>Wireshark</organization>
          </author>

          <date day="15" month="November" year="2023"/>
        </front>
      </reference>

      <reference anchor="apn-srv6-demo"
                 target="https://github.com/IETF-Hackathon/ietf110-project-presentations/blob/main/Application-aware_G-SRv6_networking__Demo_and_Test.pdf">
        <front>
          <title>Demo 1: Application-aware G-SRv6 networking on IETF 110
          Hackathon</title>

          <author>
            <organization>Wireshark</organization>
          </author>

          <date day="6" month="March" year="2021"/>
        </front>
      </reference>

      <reference anchor="apn-p4-demo-1"
                 target="https://github.com/IETF-Hackathon/ietf108-project-presentations/blob/master/IFIT%20and%20APN6%20Hackathon.pdf">
        <front>
          <title>Demo 2: APN implementation based on P4, on IETF 108
          Hackathon</title>

          <author>
            <organization>Wireshark</organization>
          </author>

          <date day="23" month="July" year="2020"/>
        </front>
      </reference>

      <reference anchor="apn-p4-demo-2"
                 target="https://github.com/IETF-Hackathon/ietf109-project-presentations/blob/master/Performance%20Evaluation%20of%20APN6.pdf">
        <front>
          <title>Demo 3: APN implementation based on P4, on IETF 109
          Hackathon</title>

          <author>
            <organization>Wireshark</organization>
          </author>

          <date day="12" month="November" year="2020"/>
        </front>
      </reference>
    </references>
  </back>
</rfc>
