<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes" ?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="4"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="no"?>
<?rfc rfcedstyle="yes"?>
<?rfc subcompact="no"?>
<?rfc compact="yes" ?>
<?rfc iprnotified="Yes" ?>
<?rfc strict="no" ?>
<rfc category="std" docName="draft-li-rtgwg-apn-app-side-framework-01"
     ipr="trust200902" obsoletes="" submissionType="IETF" updates=""
     xml:lang="en">
  <front>
    <title abbrev="APN Framework for App Side">Extension of Application-aware
    Networking (APN) Framework for Application Side</title>

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

      <address>
        <postal>
          <street/>

          <city/>

          <code/>

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

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

    <author fullname="Nan Geng" initials="N. " surname="Geng">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <code/>

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

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

    <date day="10" month="Nov" year="2025"/>

    <abstract>
      <t>The Application-aware Networking (APN) framework defines that
      application-aware information (i.e. APN attribute) including APN
      identification (ID) and/or APN parameters (e.g. network performance
      requirements) is encapsulated at network edge devices and carried in
      packets traversing an APN domain in order to facilitate service
      provisioning, perform fine-granularity traffic steering and network
      resource adjustment. This document defines the extension of the APN
      framework for the application side. In this extension, the APN resources
      of an APN domain is allocated to applications which compose and
      encapsulate the APN attribute in packets. When the network devices in
      the APN domain receive the packets carrying APN attribute, they can
      directly provide fine-granular traffic operations according to these APN
      attributes in the packets.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>A multitude of applications are carried over the network, which have
      varying needs for network bandwidth, latency, jitter, and packet loss,
      etc. Some applications such as online gaming and live video streaming
      have very demanding network requirements and therefore require special
      treatment in the network. However, in current networks, the network and
      applications are decoupled, that is, the network is not aware of the
      applications' requirements in a fine granularity. Therefore, it is
      difficult to provide truly fine-granularity traffic operations for the
      applications and guarantee their SLA requirements accordingly. <xref
      target="I-D.li-apn-problem-statement-usecases"/> describes the
      challenges of traditional differentiated service provisioning methods,
      such as five tuples used for ACL/PBR causing coarse granularity as well
      as orchestration and SDN-based solution causing long control loops.</t>

      <t><xref target="I-D.li-apn-framework"/> proposes the framework of
      Application-aware Networking (APN), where application-aware information
      (APN attribute) including application-aware identification (APN ID) and
      application-aware parameters (APN Parameters), is encapsulated at
      network edge devices and carried along with the encapsulation of the
      tunnel used by the packet when traversing an APN domain. By APN domain
      we intend the operator infrastructure where APN is used from edge to
      edge (ingress to egress) and where packets are encapsulated using an
      outer header incorporating the APN information. The APN attribute will
      facilitate service provisioning and provide fine-granular services in
      the APN domain.</t>

      <t>In the APN framework the APN attribute is acquired at the ingress of
      the APN domain based on the existing information in the incoming packet
      header (i.e. source and destination addresses, incoming L2 (or) MPLS
      encapsulation, incoming physical/virtual port information, the other
      fields of the 5-tuple if they are not encrypted) in the edge devices.
      The APN information is then added to the data packets along with the
      tunnel encapsulation. The packet traverses the domain and, when exiting
      the domain, the outer header along with the APN information is
      removed.</t>

      <t>This document defines the extensions of the APN framework for
      application side. In this extension, the APN resources of the APN domain
      is allocated to applications which compose and encapsulate the APN
      attribute in packets. When network devices in the APN domain receives
      packets carrying APN attribute, they can directly apply policies for
      these traffic flows according to the APN attribute encapsulated by
      applications.</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">RFC 2119</xref> <xref target="RFC8174">RFC
      8174</xref> when, and only when, they appear in all capitals, as shown
      here.</t>
    </section>

    <section title="Terminology">
      <t>ACL: Access Control List</t>

      <t>APN: Application-aware Networking</t>

      <t>APN6: Application-aware Networking for IPv6/SRv6</t>

      <t>MPLS: Multiprotocol Label Switching</t>

      <t>PBR: Policy Based Routing</t>

      <t>QoE: Quality of Experience</t>

      <t>SDN: Software Defined Networking</t>

      <t>SLA: Service Level Agreement</t>
    </section>

    <section title="APN Framework for Application Side">
      <t>The APN framework is shown in <xref target="FRAMEWORKFIG"/>. The key
      components include App-aware Edge Device (APN-Edge), App-aware-process
      Head-End (APN-Head), App-aware-process Mid-Point (APN-Midpoint),
      App-aware-process End-Point (APN-Endpoint), and APN-Controller.</t>

      <t>Packets carry application characteristic information (i.e. APN
      attribute) which includes the following information:</t>

      <t><list style="symbols">
          <t>Application-aware identification (APN ID): identifies the set of
          attributes, indicating that all packets belonging to the same flow
          will be given the same treatment by the network. APN ID is
          mandatory.</t>

          <t>Application-aware parameters (APN parameters): The typical
          application-aware parameters are the network performance requirement
          parameters including bandwidth, delay, delay variation, packet loss
          ratio, etc. APN parameters are optional.</t>
        </list><figure align="center" anchor="FRAMEWORKFIG"
          title="APN Framework for Application Side">
          <artwork><![CDATA[
                          +------------------+
                          |   APN-Customer   |
                          +------------------+
                                   | 
                                   | NBI
                          +------------------+
                          |                  |----------------------
                          |  APN-Controller  |                      \
                     -----|                  |-------                \
                   /      +------------------+       \                \
Client            /      /         |          \        \               | Server
+-----+         /       /          | SBI       \         \         +-----+
|App x|-\      |       |           |            |         |     /->|App x|
+-----+ |   +-----+ +-----+   +---------+   +--------+ +-----+  |  +-----+
         \->|APN  | |APN  |-A-|APN      |-A-|APN     | |APN  |->/        
User side   |-    |-|-    |-B-|-        |-B-|-       |-|-    |      
         /->|Edge | |Head |-C-|Midpoint |-C-|Endpoint| |Edge |->\        
+-----+ |   +-----+ +-----+   +---------+   +--------+ +-----+  |  +-----+
|App y|-/                                                       \->|App y|
+-----+     |---------------------APN Domain-----------------|     +-----+
   \__________________________________________________________________/


]]></artwork>
        </figure></t>

      <t>In the extension of the APN framework for application side, the new
      key components, APN-capable Application Server (AAS) and APN-capable
      Application Client (AAC), are introduced as follows:<list
          style="symbols">
          <t>APN-capable Application Server (AAS): The AAS requests the
          APN-Controller to allocate the APN resources of an controlled APN
          domain. And the AAS allocates the APN resources received from the
          APN-Controller to the AAC to compose APN attribute according to the
          requirement from the AAC. When the AAS sends packets to the AAC, it
          adds APN attribute in these packets. The request sent by the AAS to
          the APN-Controller includes the application information, network
          service requirement, etc. The APN resources allocated by the
          APN-controller to the AAS includes sets of APN IDs and corresponding
          network service attributes.</t>

          <t>APN-capable Application Client (AAC): The AAC requests the AAS to
          allocate the APN resources. The AAC composes the APN attribute
          according to the allocated APN resources from the AAS. When the AAC
          sends packets to the AAS, it adds the APN attribute in these
          packets. The APN resources allocated by the AAS to the AAC includes
          the unique APN ID and the corresponding network service
          attributes.</t>
        </list></t>

      <t>In the extension of the APN framework for the application side, the
      functionalities of the following key components are extended or changed:
      <list style="symbols">
          <t>APN-Edge: In the extension of APN framework for the application
          side, since the APN attribute is added by the application, the
          functionalities of the APN-Edge needs to be changed. The APN-Edge
          can directly transmit the packets without encapsulating tunnels for
          the purpose of carrying APN attribute. If the APN-Edge needs to
          encapsulate a tunnel for packets, it can directly obtain the APN
          attribute from these packets sent by the AAS/AAC and the APN
          attribute can be copied or be mapped into the outer tunnel
          header.</t>

          <t>APN-Head: The APN-Head can directly obtain the APN attribute from
          packets sent by the AAS/AAC to apply corresponding policies.</t>

          <t>APN-Midpoint: If policies need to be adjusted on the
          APN-Midpoint, the APN-Midpoint can also directly obtain the APN
          attribute from packets sent by the AAS/AAC.</t>

          <t>APN-Endpoint: The APN-Endpoint MUST keep the APN attribute in
          packets sent by the AAS/AAC without any change.</t>

          <t>APN-Controller: In the extension of APN framework for the
          application side, the APN-Controller is responsible for processing
          the request from the AAS and allocating the APN resources of the
          controlled APN domain to the AAS.</t>
        </list></t>

      <t>The APN attribute need to be transmitted among the AAS, AAC and APN
      domain. The security mechanism MUST be introduced to guarantee the
      security of the transmission. The details of the security mechanism will
      be proposed in future versions of the draft.</t>
    </section>

    <section anchor="REQUIREMENTS" title="Requirements ">
      <t>According to the extension of APN framework for the application side,
      there are following basic protocol extension requirements:</t>

      <t>[REQ01] Protocol extensions MUST be defined for the AAS to request
      the APN-Controller to allocated the APN resources of the APN domain.</t>

      <t>[REQ02] Protocol extensions MUST be defined for the APN-Controller to
      notify the allocated APN resources to the AAS.</t>

      <t>[REQ03] Protocol extensions MUST be defined for the AAC to request
      the AAS to allocate the APN resources.</t>

      <t>[REQ04] Protocol extensions MUST be defined for the AAS to notify the
      allocated APN resources to the AAC.</t>

      <t>[REQ05] Security mechanism MUST be defined to guarantee for that the
      APN attribute being securely transmitted among the AAS, AAC and the APN
      domain.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>This document does not include an IANA request.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>In the extension of the APN Framework for the application side, the
      security issues are proposed because the APN attributes need to be
      transmitted among the AAS, AAC and the APN domain. The security
      mechanism MUST be introduced to guarantee the secure transmission. The
      details of the security mechanism and the security consideration will be
      proposed in the future version of the draft or an independent draft.</t>
    </section>

  </middle>

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

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

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

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