<?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" [
<!-- One method to get references from the online citation libraries.
     There has to be one entity for each item to be referenced.
     An alternate method (rfc include) is described in the references. -->
<!ENTITY I-D.eckert-intarea-flow-metadata-framework SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.eckert-intarea-flow-metadata-framework.xml">
]>
<?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. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
     (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?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="4"?>
<!-- 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="info" docName="draft-eckel-aeon-use-cases-00" ipr="trust200902">
  <!--  category values: std, bcp
, info, exp, and historic
     ipr values: full3667, noModification3667, noDerivatives3667
     you can add the attributes updates="NNNN" and obsoletes="NNNN"
     they will automatically be output with "(if approved)" -->

  <!-- ***** FRONT MATTER ***** -->

  <front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the
         full title is longer than 39 characters -->

    <title abbrev="AEON Use Cases">Application Enabled Open Networking Use
    Cases</title>

    <!-- add 'role="editor"' below for the editors if appropriate -->

    <!-- Another author who claims to be an editor -->

    <author fullname="Charles Eckel" initials="C." surname="Eckel">
      <organization>Cisco Systems, Inc.</organization>

      <address>
        <postal>
          <street>170 West Tasman Drive</street>

          <city>San Jose</city>

          <region>CA</region>

          <code>95134</code>

          <country>US</country>
        </postal>

        <email>eckelcu@cisco.com</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

    <author fullname="Tirumaleswar Reddy" initials="T." surname="Reddy">
      <organization>Cisco Systems, Inc.</organization>

      <address>
        <postal>
          <street>Cessna Business Park, Varthur Hobli</street>

          <street>Sarjapur Marathalli Outer Ring Road</street>

          <city>Bangalore</city>

          <region>Karnataka</region>

          <code>560103</code>

          <country>India</country>
        </postal>

        <email>tireddy@cisco.com</email>
      </address>
    </author>

    <date/>

    <!-- If the month and year are both specified and are the current ones, xml2rfc will fill
         in the current day for you. If only the current year is specified, xml2rfc will fill
	 in the current day and month for you. If the year is not the current one, it is
	 necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the
	 purpose of calculating the expiry date).  With drafts it is normally sufficient to
	 specify just the year. -->

    <!-- Meta-data Declarations -->

    <area>General</area>

    <workgroup>Internet Engineering Task Force</workgroup>

    <!-- WG name at the upperleft corner of the doc,
         IETF is fine for individual submissions.
	 If this element is not present, the default is "Network Working Group",
         which is used by the RFC Editor as a nod to the history of the IETF. -->

    <keyword>aeon flow metadata use cases</keyword>

    <!-- Keywords will be incorporated into HTML output
         files in a meta tag but they have no effect on text or nroff
         output. If you submit your draft to the RFC Editor, the
         keywords will be used for the search engine. -->

    <abstract>
      <t>This document describes application enabled open networking use
      cases. Application enabled open networking (AEON) is a framework in
      which applications explicitly signal their flow characteristics to the
      network. This provides network nodes with visibility of the application
      flow characteristics, which enables them to apply the correct flow
      treatment and provide feedback to applications.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>Identification and treatment of application flows are critical for
      the successful deployment and operation of applications based on a wide
      range of signaling protocols. Historically, this functionality has been
      accomplished to the extent possible using heuristics, which inspect and
      infer flow characteristics. Heuristics may be based on port ranges, IP
      subnetting, or deep packet inspection (DPI), e.g. application level
      gateway (ALG). Port based solutions suffer from port overloading and
      inconsistent port usage. IP subnetting solutions are error prone and
      result in network management hassle. DPI is computationally expensive
      and becomes a challenge with the wider adoption of encrypted signaling
      and secured traffic. An additional drawback of DPI is that the resulting
      insights are not available, or need to be recomputed, at network nodes
      further down the application flow path.</t>

      <t>Application enabled open networking (AEON) allows applications to
      explicitly signal their flow characteristics to the network. This
      provides network nodes with visibility of the application flow
      characteristics. These network nodes may take action based on this
      visibility and/or contribute to the flow description. The resulting flow
      description may be communicated as feedback from the network to
      applications.</t>

      <t>This document describes a set of use cases addressable by AEON.
      Additional details on the AEON are provided in <xref
      target="I-D.eckert-intarea-flow-metadata-framework"/></t>
    </section>

    <section title="Use Cases">
      <t>The following use cases have been identified.<list counter="1"
          style="numbers">
          <t>Traffic Prioritization: Consistent experience of video
          conferencing with competing traffic. </t>

          <t>Firewall Traversal: Identification of new applications.</t>

          <t>Load Balancing: Identification of application for better load
          balancing without solely relying on inspection techniques.</t>

          <t>Scavenger class: Creation of a scavenger class. Use metadata to
          shift high-bandwidth, low priority traffic to off-peak hours. TODO:
          That drifts from a use-case to a solution ("use metadata to ...").
          Also, it appears to mix two things: (a) scavenger class and (b)
          time-shifting traffic. This is confusing.</t>

          <t>Video Adaptation: Use client metadata to help video bit rate
          selection.</t>

          <t>Mobile Host/App Metadata: Use metadata for troubleshooting and
          network planning.</t>

          <t>Multi-interface selection: Use metadata to help interface
          selection or prioritization.</t>
        </list></t>

      <t>In describing each use case, the following information is
      provided.<list style="symbols">
          <t>description of the problem</t>

          <t>proposed solution</t>

          <t>user benefit</t>

          <t>operator benefit</t>

          <t>flow characteristics provided by application</t>

          <t>action taken by network as result of receiving flow
          characteristics</t>

          <t>feedback provided by network</t>
        </list></t>

      <section title="Traffic Prioritization: Consistent experience of video conferencing with competing traffic">
        <section title="Description of Problem"/>

        <section title="Proposed Solution"/>

        <section title="User Benefit"/>

        <section title="Operator Benefit"/>

        <section title="Flow characteristics provided by application"/>

        <section title="Action taken by network as result of receiving flow characteristics"/>

        <section title="Feedback provided by network"/>
      </section>

      <section title="Firewall Traversal: Identification of new applications">
        <section title="Description of Problem">
          <t>Modern firewalls use application-layer gateways (ALGs) to perform
          policy enforcement. For example firewalls implement SIP-aware
          Application Layer Gateway function, which examines the SIP signaling
          and opens the appropriate pinholes for the RTP media. In particular
          firewall extracts media transport addresses, transport protocol and
          ports from session description and creates a dynamic mapping for
          media to flow through. This model will not work in the following
          cases: <list style="numbers">
              <t>Session signaling is end-to-end encrypted (say, using
              TLS).</t>

              <t>Firewall does not understand the session signaling protocol,
              or extensions to the protocol, used by the endpoints (e.g.
              WebRTC signaling protocols).</t>

              <t>Session signaling and media traverse different firewalls
              (e.g., signaling exits a network via one firewall whereas media
              exits a network via a different firewall).</t>
            </list></t>

          <t>Enterprise networks that use firewalls with restrictive policies
          block new applications like WebRTC and delay deployment of killer
          applications.</t>
        </section>

        <section title="Proposed Solution">
          <t>The above problems can be addressed by the host getting
          authorization from the Application Server trusted by the network in
          order to install flows and associated actions (e.g., policies). PCP
          third party authorization (draft-wing-pcp-third-party-authz-01)
          solves this problem by associating the media session with the
          signaling session. This is done by sending a cryptographic token in
          the signaling which authorizes the firewall mapping for the media
          session.</t>
        </section>

        <section title="User Benefit">
          <t>Enterprise networks that use firewalls with restrictive policies
          can deploy new applications at a faster rate for user benefit.</t>
        </section>

        <section title="Operator Benefit">
          <t>Enterprise firewalls can enforce restrictive policies without the
          need to be enhanced to perform ALG on new applications. For example
          Enterprise firewall could have granular policies to permit
          peer-to-peer UDP media session only when the call is initiated using
          the selected WebRTC server (Dr. Good) it trusts and block others
          (Dr. Evil). PCP-aware firewalls can enforce such granular security
          policies without performing ALG on the session signaling protocols.
          This mechanism can be used by any other Application Function trusted
          by the network to permit time-bound, encrypted, peer-to-peer
          traffic.</t>
        </section>

        <section title="Flow characteristics provided by application">
          <t>The client requests dynamic mappings to permit flows required by
          the application. This request includes a cryptographic token and
          characteristics of the flow, such as the anticipated bandwidth needs
          as well as the tolerance to delay, loss, and jitter.</t>
        </section>

        <section title="Action taken by firewall as result of receiving flow characteristics">
          <t>The firewall uses the client request to permit and prioritize the
          traffic associated with those flows. The cryptographic token
          provides authorization for the flows and their prioritization.</t>
        </section>

        <section title="Feedback provided by firewall">
          <t>Firewall matches the authorization data with what is requested in
          the request sent by the client. If the authorization sets match, the
          firewall processes the request made by the client. If the token is
          invalid or the request exceeds what is authorized by the token then
          firewall rejects the request.</t>
        </section>
      </section>

      <section title="Load Balancing: Identification of application for better load balancing without solely relying on inspection techniques">
        <section title="Description of Problem"/>

        <section title="Proposed Solution"/>

        <section title="User Benefit"/>

        <section title="Operator Benefit"/>

        <section title="Flow characteristics provided by application"/>

        <section title="Action taken by network as result of receiving flow characteristics"/>

        <section title="Feedback provided by network"/>
      </section>

      <section title="Scavenger class: Creation of a scavenger class. Use metadata to shift high-bandwidth, low priority traffic to off-peak hours">
        <section title="Description of Problem"/>

        <section title="Proposed Solution"/>

        <section title="User Benefit"/>

        <section title="Operator Benefit"/>

        <section title="Flow characteristics provided by application"/>

        <section title="Action taken by network as result of receiving flow characteristics"/>

        <section title="Feedback provided by network"/>
      </section>

      <section title="Video Adaptation: Use client metadata to help video bit rate selection">
        <t>HTTP Adaptive Streaming (HAS) is an umbrella term for various
        HTTP-based streaming technologies that allow a client to adaptively
        switch between multiple bitrates, depending on current network
        conditions. HAS client first requests and receives a Manifest File,
        and then, after parsing the information in the Manifest File, proceeds
        with sequentially requesting the chunks listed in the Manifest
        File.</t>

        <section title="Description of Problem">
          <t>The problems with HAS are:</t>

          <t><list style="symbols">
              <t>HAS client selects the initial bitrate without knowing the
              current network conditions which could cause start-up delay and
              frame freezes while a lower bitrate chunk is being retrieved.
              HAS client does not have a mechanism to signal the flow
              characteristics and flow priority to the network.</t>

              <t>HAS server can mark the packets appropriately but setting
              DSCP has limitations. DSCP value may not be preserved or honored
              over the Internet and OS may not allow to set DSCP values.</t>

              <t>Content Providers may have agreements with ISPs and need a
              mechanism to convey the flow characteristics and flow priority
              to the ISP. Existing mechanisms and the associated limitations
              are:<list style="numbers">
                  <t>ISP can be configured with the IP addresses of content
                  providers to prioritize the traffic originating from those
                  servers. The limitations with this approach are ISP has to
                  keep track of content providers IP addresses. With CDNI
                  (Content Delivery Network InterConnection) content could be
                  served either from uCDN (upstream CDN) or any of a number of
                  dCDNs (downstream CDN) and it will not be possible to
                  manually track the IP addresses of all the CDN surrogates.
                  There is also no way to differentiate content which could be
                  available in different bitrates.</t>

                  <t>If HAS client is behind NAT and content provider uses
                  RESTful API (OneAPI) to install differentiated QoS then ISP
                  will struggle to find the pre-NAT information. Content
                  provider also needs to be aware of the ISP to which the
                  client is attached and the IP address of the Policy Decision
                  Point (PDP) in the ISP to which it needs to signal the flow
                  characteristics.</t>
                </list></t>

              <t>ISP can use DPI to prioritize one-way video streaming content
              but is expensive and fails if the traffic is encrypted.</t>
            </list></t>
        </section>

        <section title="Proposed Solution">
          <t>If ISP has agreement with content provider then HAS client can
          use third party authorization to request network resources. At a
          high level, this authorization works by the client first obtaining a
          cryptographic token from the authorizing network element, then
          including that token in the request along with relevant flow
          characteristics. ISP validates the token and grants the request.</t>
        </section>

        <section title="User Benefit">
          <t>AEON helps increase the average play quality, reduces the
          start-up delay and frame freezes by avoiding attempt to retrieve a
          too high-bit rate chunk etc thus improving the quality of experience
          for end user.</t>
        </section>

        <section title="Operator Benefit">
          <t>Network Operators can recognize and prioritize one-way video
          streaming content.</t>
        </section>

        <section title="Flow characteristics provided by application">
          <t>HAS client signals the flow characteristics such as the
          anticipated bandwidth needs as well as the tolerance to delay, loss,
          and jitter.</t>
        </section>

        <section title="Action taken by network as result of receiving flow characteristics">
          <t>Subject to local policies, a network node might perform bandwidth
          counting, or reconfigure the underlying network so that additional
          bandwidth is made available for this particular flow, or might
          perform other actions.</t>
        </section>

        <section title="Feedback provided by network">
          <t>The network responds that the client request can be fully or
          partially accommodated. It also notifies the client when conditions
          change.</t>
        </section>
      </section>

      <section title="Mobile Host/App Metadata: Use metadata for troubleshooting and network planning">
        <section title="Description of Problem"/>

        <section title="User Benefit"/>

        <section title="Operator Benefit"/>

        <section title="Flow characteristics provided by application"/>

        <section title="Action taken by network as result of receiving flow characteristics"/>

        <section title="Feedback provided by network"/>
      </section>

      <section title="Multi-interface selection: Use metadata to help interface selection or prioritization">
        <section title="Description of Problem">
          <t>An increasing number of hosts are operating in multiple-interface
          environments and a host with multiple interfaces needs to choose the
          best interface for communication. Oftentimes, this decision is based
          on a static configuration and does not consider the link
          characteristics of that interface, which may affect the user
          experience. The network interfaces may have different link
          characteristics, but that will not be known without the awareness of
          the upstream and downstream characteristics of the access link.</t>
        </section>

        <section title="Proposed Solution">
          <t>TODO</t>
        </section>

        <section title="User Benefit">
          <t>Applications can choose the best interface for communication
          using AEON.</t>
        </section>

        <section title="Operator Benefit">
          <t>The network that can provide the requested flow characteristics
          will be selected by the application thus increasing the subscriber
          base of the operator.</t>
        </section>

        <section title="Flow characteristics provided by application">
          <t>Application signals flow characteristics over multiple interfaces
          and based on the response from its various interfaces sorts the
          source addresses according to the link capacity characteristics.
          Source addresses from the interface which best fulfills the desired
          flow characteristics are assigned the highest priority and would be
          tried first to communicate with the server or remote peer. For
          example draft-reddy-mmusic-ice-best-interface-pcp-00 explains the
          mechanism where Interactive Connectivity Establishment (ICE) agent
          on a host with multiple interfaces uses AEON to determine the link
          characteristics of the host's interfaces, which influences the ICE
          candidate priority. Similarly draft-wing-mptcp-pcp-00 explains how
          Multipath TCP (MPTCP) can select the best path when multiple paths
          are available.</t>
        </section>
      </section>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>The authors thank the attendees of the Bar BoF for contributing
      towards this set of use cases.</t>
    </section>
  </middle>

  <!--  *****BACK MATTER ***** -->

  <back>
    <!-- References split into informative and normative -->

    <!-- There are 2 ways to insert reference entries from the citation libraries:
     1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
     2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
        (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

     Both are cited textually in the same manner: by using xref elements.
     If you use the PI option, xml2rfc will, by default, try to find included files in the same
     directory as the including file. You can also define the XML_LIBRARY environment variable
     with a value containing a set of directories to search.  These can be either in the local
     filing system or remote ones accessed by http (http://domain/dir/... ).-->

    <references title="Informative References">
      <!-- Here we use entities that we defined at the beginning. -->

      &I-D.eckert-intarea-flow-metadata-framework;

      <!-- A reference written by by an organization not a person. -->
    </references>
  </back>
</rfc>
