Internet DRAFT - draft-wing-pcp-flowdata

draft-wing-pcp-flowdata







PCP Working Group                                                D. Wing
Internet-Draft                                                  R. Penno
Intended status: Standards Track                                T. Reddy
Expires: January 04, 2014                                          Cisco
                                                           July 03, 2013


                          PCP Flowdata Option
                       draft-wing-pcp-flowdata-00

Abstract

   This document defines a mechanism for a host to signal flow
   characteristics to the network, and the network to signal its ability
   to accommodate that flow back to the host.  The mechanism defines a
   new PCP option for the existing MAP and PEER opcodes.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on January 04, 2014.

Copyright Notice

   Copyright (c) 2013 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.



Wing, et al.            Expires January 04, 2014                [Page 1]

Internet-Draft             PCP Flowdata Option                 July 2013


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   3
   3.  PCP FLOWDATA Option . . . . . . . . . . . . . . . . . . . . .   3
     3.1.  Usage and Processing  . . . . . . . . . . . . . . . . . .   4
     3.2.  Generating a PCP Request with FLOWDATA Option . . . . . .   5
     3.3.  Processing a Request with FLOWDATA Option . . . . . . . .   6
     3.4.  Processing a Response with FLOWDATA Option  . . . . . . .   7
     3.5.  Link or State Changes on PCP Server . . . . . . . . . . .   7
     3.6.  Conflict Resolution . . . . . . . . . . . . . . . . . . .   8
   4.  PCP FLOWDATA Option Data Fields . . . . . . . . . . . . . . .   9
   5.  FLOWDATA Interaction with PCP Proxy . . . . . . . . . . . . .  14
   6.  Network Authorization . . . . . . . . . . . . . . . . . . . .  15
   7.  Scaling Considerations  . . . . . . . . . . . . . . . . . . .  15
   8.  Security Considerations . . . . . . . . . . . . . . . . . . .  15
   9.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  15
   10. Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  15
   11. References  . . . . . . . . . . . . . . . . . . . . . . . . .  15
     11.1.  Normative References . . . . . . . . . . . . . . . . . .  15
     11.2.  Informative References . . . . . . . . . . . . . . . . .  16
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  16

1.  Introduction

   Access networks often have insufficient bandwidth or other
   characteristics that prevent some applications from functioning as
   well as desired.  Although the quality of wireless and wired access
   networks continue to improve, those access networks are often
   constrained for various reasons.  This document provides a mechanism
   to signal the application's network requirements to the access
   network, so that certain network flows can receive service that is
   differentiated from other network flows.  With this mechanism, a host
   can request the network provide certain characteristics for a flow in
   both the upstream and downstream directions.  The network authorizes
   the request and signals back to the host that it can (fully or
   partially) accommodate the flow.  This sort of signaling is useful
   for long-lived flows such as interactive audio/video, streaming
   video, and network control traffic (call signaling, routing
   protocols).

   In order to obtain such differentiated service from a network, many
   previous mechanisms have been created for hosts to convey flow
   information to the network.  The mechanism described in this document
   has several useful properties:

   o  Usable at the application level, without needing operating system
      support;



Wing, et al.            Expires January 04, 2014                [Page 2]

Internet-Draft             PCP Flowdata Option                 July 2013


   o  Abstracts layer 2 specifics, so host and applications can avoid
      layer 2-specific signaling;

   o  Robust metadata support, to convey sufficient information to the
      network about the flow;

   o  Differentiates service on the local network and the immediately
      adjacent access network, which is typically bandwidth constrained;

   o  Deployable on a local network and its adjacent access link,
      without needing support of the remote host's network or support of
      the remote host;

   o  Provides differentiated service for both directions of a flow,
      including flows that cross administrative boundaries (such as the
      Internet).

   The mechanism described in this specification defines an extension to
   Port Control Protocol (PCP [RFC6887]).  This may be surprising at
   first because PCP is considered as a protocol for managing mappings
   in NATs and firewalls.  However, PCP does not require the network
   implement a NAT or to implement a firewall.  This is an important
   point: this specification does not require the network operate a NAT,
   and does not require the network operate a firewall.  At a high
   level, PCP provides bi-directional communication a flow to the
   network.  PCP can recursively communicate flow information to a
   number of on-path devices using PCP itself
   ([I-D.cheshire-recursive-pcp], [I-D.ietf-pcp-proxy]) or using an SDN
   protocol.  Such recursion provides the flow information to more
   devices on the path, allowing each of them to optimize the flow over
   their respective links.

2.  Terminology

   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 [RFC2119].

3.  PCP FLOWDATA Option

   The FLOWDATA option described in this document allows a host to
   signal the bi-directional characteristics of a flow to its PCP
   server.  After signaling, the PCP server determines if it can
   accommodate that flow, making configuration changes if necessary to
   accommodate the flow, and returns information in the FLOWDATA option
   indicating its ability to accommodate the described flow.





Wing, et al.            Expires January 04, 2014                [Page 3]

Internet-Draft             PCP Flowdata Option                 July 2013


3.1.  Usage and Processing

   A host may want to indicate to the network the priority of a flow
   after the flow has been established (typical if the host is operating
   as a client) or before the flow has been established (typical if the
   host is operating as a server).  Both of these are supported and
   depicted in the following diagrams.

   The following diagram shows how a connection is first established and
   then the flow is prioritized.  This allows for the fastest connection
   setup time with the server.

   PCP client                               PCP server  UDP/TCP server
       |                                          |              |
       |-------------TCP SYN, SYNACK, ACK----------------------->|
       |                                          |              |
       |                (flow is not prioritized) |              |
       |                                          |              |
       |------- PCP PEER + FLOWDATA Option ------>|              |
       |<-----------------SUCCESS-----------------|              |
       |                                          |              |
       |                 (flow is prioritized)    |              |
       |                                          |              |

             Figure 1: Message diagram, client connects first

   The following diagram shows first asking the network to prioritize a
   flow, then establishing a flow.  This is useful if the priority of
   the flow is more important than establishing the flow quickly.

   PCP client                               PCP server  UDP/TCP server
       |                                          |              |
       |                                          |              |
       |------- PCP PEER + FLOWDATA Option ------>|              |
       |<-----------------SUCCESS-----------------|              |
       |                                          |              |
       |                 (flow is prioritized)    |              |
       |                                          |              |
       |-------------TCP SYN, SYNACK, ACK----------------------->|
       |                                          |              |

           Figure 2: Message diagram, client sets priority first

   The following diagram shows a PCP client getting a PCP MAP mapping
   for incoming flows with priority.  This ensures that the PCP client
   has a mapping and all packets associated with the incoming TCP
   connections matching that mapping are prioritized.  The PCP Client in
   this case could be a video server in a data center.



Wing, et al.            Expires January 04, 2014                [Page 4]

Internet-Draft             PCP Flowdata Option                 July 2013


   PCP client                             PCP server UDP/TCP client
       |                                       |              |
   (listening on port XYZ)                     |              |
       |                                       |              |
       |-------PCP MAP + FLOWDATA Option------>|              |
       |<-------------SUCCESS------------------|              |
       |                                       |              |
       |              (flow is prioritized)    |              |
      ...                                     ...            ...
       |                                       |              |
       |<------------TCP SYN, SYNACK, ACK---------------------|
       |                                       |              |

               Figure 3: Message diagram, operating a server

   The following diagram shows how two separate connections, where only
   one is active at a time, use the same instance identifier.

   PCP client                       PCP server  TCP srvr 1  TCP srvr 2
       |                                  |          |            |
       |-------------TCP SYN, SYNACK, ACK----------->|            |
       |                                  |          |            |
       |     (flow to server 1 is not prioritized)   |            |
       |                                  |          |            |
       |-PCP PEER+FLOWDATA instance=123-->|          |            |
       |<-----------------SUCCESS---------|          |            |
       |                                  |          |            |
       |     (flow to server 1 is prioritized)       |            |
       |                                  |          |            |
       |-------------TCP SYN, SYNACK, ACK------------------------>|
       |                                  |          |            |
       |     (flow to server 2 is not prioritized)   |            |
       |                                  |          |            |
       |-PCP PEER+FLOWDATA instance=123-->|          |            |
       |<-----------------SUCCESS---------|          |            |
       |                                  |          |            |
       |     (flow to server 2 is sharing            |            |
       |      characteristics with flow to server 1) |            |
       |                                  |          |            |

            Figure 4: Message diagram with Instance Identifier

3.2.  Generating a PCP Request with FLOWDATA Option

   The PCP client first does all the processing described in Sections
   8.1, 11.2, and 12.3 of [RFC6887] as appropriate for generating a MAP
   or PEER opcode request.  Included in that request is a FLOWDATA
   option formatted as described in this document.  For flows



Wing, et al.            Expires January 04, 2014                [Page 5]

Internet-Draft             PCP Flowdata Option                 July 2013


   established by the PCP client, the MAP or PEER request with FLOWDATA
   option can be sent before or after the PCP client has established any
   flows.  For flows terminated by the PCP client (that is, when
   operating a server), the FLOWDATA option can be received and
   processed by the PCP server together with a MAP request or later
   during a MAP refresh request as shown in Figure 3.

3.3.  Processing a Request with FLOWDATA Option

   The PCP server performs processing in the order of the paragraphs
   below.

   Upon receiving a PCP Request with FLOWDATA option first does the
   processing described in Section 8.2, 11.3, and 12.2 of [RFC6887], as
   appropriate for processing a MAP or PEER opcode request.  If the MAP
   or PEER request contains the FLOWDATA option, the PCP server
   determines if the flow characteristics described in the FLOWDATA
   option can be accommodated by the network element controlled by the
   PCP server (that is, the router, NAT, or firewall controlled by the
   PCP server).  To determine this, the PCP server might examine its
   static configuration and do bandwidth counting, or it might
   reconfigure the underlying network so that additional bandwidth is
   made available for this particular flow, or might perform other
   actions.  If the PCP server determines the flow can only be partially
   accommodated, it returns values in the FLOWDATA fields that it can
   accommodate or returns 0 in those FLOWDATA fields where it has no
   information.  In other words if the request indicated a low tolerance
   for delay but the PCP server and its controlled device determine that
   only high delay is available, the FLOWDATA response indicates high
   delay is available.  The same sort of processing occurs on all of the
   FLOWDATA fields of the response (upstream and downstream delay
   tolerance, loss tolerance, jitter tolerance, minimum bandwidth,
   maximum bandwidth).

   A PCP server that processes the FLOWDATA option is likely to create
   state for that flow (e.g., for bandwidth counting so that the
   bandwidth is returned to the bandwidth pool when the flow lifetime
   expires).  Because Memory and other resources limit how much state
   can be created, the PCP server MUST implement a policy limit so that
   all state is not consumed by one host.  It MAY also implement other
   limits, such as rate limits.  The PCP server can implement its own
   policy to remove flows from its memory, such as FIFO.  If a host has
   exceeded its quota, the existing error USER_EX_QUOTA SHOULD be
   returned.

   If the PCP server can accommodate the flow as described in the
   FLOWDATA option, and can create the mapping as described in the MAP
   or PEER opcode, it sends a PCP response with the SUCCESS response



Wing, et al.            Expires January 04, 2014                [Page 6]

Internet-Draft             PCP Flowdata Option                 July 2013


   code, and includes the FLOWDATA option filled in according to
   Section 4.

   After performing the above steps, the router creates state (if
   necessary for its implementation) and sends SUCCESS response code to
   the client with the data fields in the FLOWDATA option properly
   filled out.

3.4.  Processing a Response with FLOWDATA Option

   The PCP client performs processing in the order of the paragraphs
   below.

   Upon receiving a PCP response, the PCP client performs the normal
   processing described in Section 8.3 of [RFC6887].

   If the PCP response was SUCCESS (0), the PCP server has created a
   mapping.  If the PCP response contains the FLOWDATA option, the
   FLOWDATA fields indicate if the network could accommodate the
   requested flow characteristics.  The PCP client can use that
   information to influence the traffic it sends and receives on the
   network.  For example, if the FLOWDATA response indicates the network
   can accommodate a flow of a certain downstream bandwidth, the PCP
   client will likely achieve the best result if it does not initiate a
   flow that exceeds that bandwidth.

      Note to implementers: PCP allows the server to send multiple
      responses to a single request.  This means that after sending a
      request and receiving a (positive) response, a subsequent response
      might be sent updating the information about the flow, should the
      network conditions change.  The response could carry a FLOWDATA
      option where the data fields contain different values from the
      first response.  This might occur, for example, if a competing
      high-bandwidth flow has finished, more bandwidth is available for
      this host; the DSL line rate might have improved (or degraded);
      the link speed may have been dynamically increased (or decreased).
      Thus, a PCP client should expect these subsequent responses and
      react accordingly.

3.5.  Link or State Changes on PCP Server

   After the PCP server has sent a SUCCESS response code including the
   FLOWDATA option, link characteristics might change causing a flow to
   no longer be accommodated by the network (e.g., link speed degrades)
   or for the PCP server to flush a flow from its list of prioritized
   flows (e.g., due to memory constraints).  Whenever the network can no
   longer accommodate a flow, the PCP server MUST inform the PCP client
   by sending a mapping update response including an updated FLOWDATA



Wing, et al.            Expires January 04, 2014                [Page 7]

Internet-Draft             PCP Flowdata Option                 July 2013


   option, following the same procedure as a Mapping Update
   (Section 14.2 of [RFC6887]).  As with PCP without FLOWDATA, if the
   PCP server loses all its state it will alert the PCP clients using
   rapid recovery (Section 14 of [RFC6887]) which also indicates loss of
   FLOWDATA state in the network.

   Note: it is also possible that originally-requested flowdata could be
   accommodated (e.g., link speed improved).  We might want to signal to
   endpoints that they should ask again for their originally-requested
   flowdata.  This is for future study.

3.6.  Conflict Resolution

   It is possible that two hosts send requests with different thresholds
   for delay or jitter or different values for bandwidth in each
   direction, and their requests arrive at the same PCP server.  An
   example is a media streamer and a television within the same home
   where one indicates its sending bandwidth is higher than the other
   indicates its receiving bandwidth.  As another example, the indicated
   tolerance for delay might be different.

   If this occurs, it is RECOMMENDED that the PCP server use the smaller
   bandwidth and stricter delay/loss tolerance (that is, the lower
   tolerance to delay or jitter), and issue a FLOWDATA update so both
   PCP clients receive the same information.  The diagram below depicts
   a conflict message flow.

   media streamer       PCP server           television
       |                    |                    |
       |-7mbps, delay=med-->|                    |
       |<--OK---------------|                    |
       |                    |                    |
       |                    |<-5mbps, delay=hi---|
       |                    |                    |
       |                (conflict!)              |
       |                    |                    |
       |                    |--OK, 5mbps, d=m--->|
       |                    |                    |
       |      (send mapping update               |
       |       with FLOWDATA option)             |
       |                    |                    |
       |<--OK, 5mbps, d=m---|                    |
       |<--OK, 5mbps, d=m---|                    |
       |<--OK, 5mbps, d=m---|                    |

               Figure 5: Message diagram, resolving conflict





Wing, et al.            Expires January 04, 2014                [Page 8]

Internet-Draft             PCP Flowdata Option                 July 2013


   It is also possible for one PCP client to think two flows should use
   the same instance identifier but the other PCP client to use
   different instance identifiers for those two flows.  In this case,
   the operation of the PCP server (and the device it controls) is
   implementation specific.

4.  PCP FLOWDATA Option Data Fields

   The FLOWDATA option has the following characteristics:

      Option Name:  FLOWDATA
      Number:  (to be assigned by IANA)
      Purpose:  Describe flow characteristics to the network
      Valid for Opcodes:  MAP, PEER
      Length:  24 octets
      May appear in:  request.  May appear in response only if it
                      appeared in the associated request.
      Maximum occurrences:  1


   The FLOWDATA option request has the following format.

    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 Code=TBA|  Reserved     |   Option Length=24            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   |                    Instance Identifier                        |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | uDT | uLT | uJT |   RSVD1     | dDT | dLT | dJT |    RSVD2    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  Upstream Minimum Bandwidth                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                 Downstream Minimum Bandwidth                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  Upstream Maximum Bandwidth                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                 Downstream Maximum Bandwidth                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Figure 6: FLOWDATA Option

   Description of the fields:






Wing, et al.            Expires January 04, 2014                [Page 9]

Internet-Draft             PCP Flowdata Option                 July 2013


   Instance Identifier:  96 bit identifier, unique to each
      simultaneously-active flow.  This is a pseudo random number that
      MUST be generated following the procedures described in [RFC4086].

   uDT:  Upstream Delay Tolerance, 0=no information available, 1=very
      low, 2=low, 3=medium, 4=high.

   uLT:  Upstream Loss Tolerance, 0=no information available, 1=very
      low, 2=low, 3=medium, 4=high.

   uJT:  Upstream Jitter Tolerance, 0=no information available, 1=very
      low, 2=low, 3=medium, 4=high.

   RSVD1:  Reserved (7 bits), MUST be ignored on reception and MUST be 0
      on transmission.

   dDT:  Downstream Delay Tolerance, 0=no information available, 1=very
      low, 2=low, 3=medium, 4=high.

   dLT:  Downstream Loss Tolerance, 0=no information available, 1=very
      low, 2=low, 3=medium, 4=high.

   dJT:  Downstream Jitter Tolerance, 0=no information available, 1=very
      low, 2=low, 3=medium, 4=high.

   RSVD2:  Reserved (7 bits), MUST be ignored on reception and MUST be 0
      on transmission.

   Upstream Minimum Bandwidth  Measures bandwidth sent by the PCP
      client.  Value is in octets per second.  The value 0 means no
      information is available.

   Downstream Minimum Bandwidth  Measures bandwidth sent to the PCP
      client.  Value is in octets per second.  The value 0 means no
      information is available.

   Upstream Maximum Bandwidth:  Measures bandwidth sent by the PCP
      client.  Value is in octets per second.  The value 0 means no
      information is available.

   Downstream Maximum Bandwidth  Measures bandwidth sent to the PCP
      client.  Value is in octets per second.  The value 0 means no
      information is available.

   The instance identifier accommodates network traffic where multiple
   5-tuples exist for a particular data flow, but the bandwidth flows
   only over the aggregate of the multiple 5-tuples.  A use-case for
   this identifier is TCP video streaming which retrieves short pieces



Wing, et al.            Expires January 04, 2014               [Page 10]

Internet-Draft             PCP Flowdata Option                 July 2013


   of the movie, often over separate TCP connections for load balancing,
   which would use the same Instance Identifier for each TCP connection.
   An instance is considered unique if the combination of the PCP
   client's IP address and the instance identifier are unique.

      Discussion point: Minimum and maximum value of bandwidth is 1 byte
      per second to 4 gigaBYTES per second.  We probably need to express
      higher bandwidth, and maybe also lower bandwidth?

   Different applications have different needs for their flows.  The
   following table is derived from [RFC4594] to serve as a guideline for
   tolerance to loss, delay and jitter for some sample applications.







































Wing, et al.            Expires January 04, 2014               [Page 11]

Internet-Draft             PCP Flowdata Option                 July 2013


    -------------------------------------------------------------------
   |Service Class  |                              |    Tolerance to    |
   |    Name       |  Traffic Characteristics     | Loss |Delay |Jitter|
   |===============+==============================+======+======+======|
   |   Network     |Variable size packets, mostly |      |      |      |
   |   Control     |inelastic short messages, but |  Low |  Low | High |
   |               | traffic can also burst       |      |      |      |
   |               | (e.g., OSPF)                 |      |      |      |
   |---------------+------------------------------+------+------+------|
   |               | Fixed-size small packets,    | Very | Very | Very |
   |  Telephony    | constant emission rate,      |  Low |  Low |  Low |
   |               | inelastic and low-rate flows |      |      |      |
   |               | (e.g., G.711, G.729)         |      |      |      |
   |---------------+------------------------------+------+------+------|
   |   Signaling   | Variable size packets, some  | Low  | Low  | High |
   |               | what bursty short-lived flows|      |      |      |
   |---------------+------------------------------+------+------+------|
   |  Multimedia   | Variable size packets,       | Low  | Very |      |
   | Conferencing  | constant transmit interval,  |  -   | Low  | Low  |
   |               |rate adaptive, reacts to loss |Medium|      |      |
   |---------------+------------------------------+------+------+------|
   |   Real-Time   | RTP/UDP streams, inelastic,  | Low  | Very | Low  |
   |  Interactive  | mostly variable rate         |      | Low  |      |
   |---------------+------------------------------+------+------+------|
   |  Multimedia   |  Variable size packets,      |Low - |Medium| High |
   |   Streaming   | elastic with variable rate   |Medium|      |      |
   |---------------+------------------------------+------+------+------|
   |   Broadcast   | Constant and variable rate,  | Very |Medium| Low  |
   |     Video     | inelastic, non-bursty flows  |  Low |      |      |
   |---------------+------------------------------+------+------+------|
   |  Low-Latency  | Variable rate, bursty short- | Low  |Low - | High |
   |      Data     |  lived elastic flows         |      |Medium|      |
   |---------------+------------------------------+------+------+------|
   |      OAM      |  Variable size packets,      | Low  |Medium| High |
   |               |  elastic & inelastic flows   |      |      |      |
   |---------------+------------------------------+------+------+------|
   |High-Throughput| Variable rate, bursty long-  | Low  |Medium| High |
   |      Data     |   lived elastic flows        |      |- High|      |
   |---------------+------------------------------+------+------+------|
   |   Standard    | A bit of everything          |   0     0       0  |
   |---------------+------------------------------+------+------+------|
   | Low-Priority  | Non-real-time and elastic    | High | High | High |
   |      Data     | (e.g., network backup)       |      |      |      |
    -------------------------------------------------------------------


   The FLOWDATA Option response has the following format.  The fields
   indicate what the network can accommodate of the request.



Wing, et al.            Expires January 04, 2014               [Page 12]

Internet-Draft             PCP Flowdata Option                 July 2013


    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 Code=TBA|  Reserved     |       Option Length=24        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   |                        Reserved                               |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | AuDT| AuLT| AuJT|   RSVD1     | AdDT| AdLT| AdJT|    RSVD2    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            Accommodated Upstream Minimum Bandwidth            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Accommodated Downstream Minimum Bandwidth           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            Accommodated Upstream Maximum Bandwidth            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Accommodated Downstream Maximum Bandwidth           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Figure 7: FLOWDATA Option

   Description of the fields:

   Reserved:  96 bits, MUST be ignored on reception and MUST be 0 on
      transmission.

   AuDT:  Accommodated Upstream Delay Tolerance, 0=no information
      available, 1=able to accommodate very low, 2=able to accommodate
      low, 3=able to accommodate medium, 4=able to accommodate high.

   AuLT:  Accommodated Upstream Loss Tolerance, 0=no information
      available, 1=able to accommodate very low, 2=able to accommodate
      low, 3=able to accommodate medium, 4=able to accommodate high.

   AuJT:  Accommodated Upstream Jitter Tolerance, 0=no information
      available, 1=able to accommodate very low, 2=able to accommodate
      low, 3=able to accommodate medium, 4=able to accommodate high.

   RSVD1:  Reserved (7 bits), MUST be ignored on reception and MUST be 0
      on transmission.

   AdDT:  Accommodated Downstream Delay Tolerance, 0=no information
      available, 1=able to accommodate very low, 2=able to accommodate
      low, 3=able to accommodate medium, 4=able to accommodate high..






Wing, et al.            Expires January 04, 2014               [Page 13]

Internet-Draft             PCP Flowdata Option                 July 2013


   AdLT:  Accommodated Downstream Loss Tolerance, 0=no information
      available, 1=able to accommodate very low, 2=able to accommodate
      low, 3=able to accommodate medium, 4=able to accommodate high.

   AdJT:  Accommodated Downstream Jitter Tolerance, 0=no information
      available, 1=able to accommodate very low, 2=able to accommodate
      low, 3=able to accommodate medium, 4=able to accommodate high.

   RSVD2:  Reserved (7 bits), MUST be ignored on reception and MUST be 0
      on transmission.

   Accommodated Upstream Minimum Bandwidth  Bandwidth the network can
      accommodate for this flow, sent by the PCP client.  Value in bytes
      per second. 0 means no information is available.

   Accommodated Downstream Minimum Bandwidth  Bandwidth the network can
      accommodate for this flow, sent to the PCP client.  Value in bytes
      per second. 0 means no information is available.

   Accommodated Upstream Maximum Bandwidth:  Bandwidth the network can
      accommodate for this flow, sent by the PCP client.  Value in bytes
      per second. 0 means no information is available.

   Accommodated Downstream Maximum Bandwidth  Bandwidth the network can
      accommodate for this flow, sent to the PCP client.  Maximum
      Downstream bandwidth in bytes per second, 0 means no information
      is available.

5.  FLOWDATA Interaction with PCP Proxy

   The FLOWDATA option is optional to process.  A PCP Proxy performs the
   functions described in [I-D.ietf-pcp-proxy], and if the PCP request
   contains the FLOWDATA option it also performs the functions described
   in this section.

   The PCP request containing the FLOWDATA option SHOULD be proxied
   normally, so that the upstream PCP server can be aware of the entire
   request.  The PCP proxy MAY have its own policies specific to the
   FLOWDATA option which require it to modify the FLOWDATA values
   request (e.g., reduce bandwidth for a certain PCP client).

   After proxying the message containing FLOWDATA, when the PCP proxy
   receives the associated PCP response, the PCP proxy MAY reduce the
   bandwidth values or use worse (higher) values for delay, loss, or
   jitter tolerance.  It MUST NOT increase the bandwidth or use better
   (lower) values for the delay, loss, or jitter tolerance.





Wing, et al.            Expires January 04, 2014               [Page 14]

Internet-Draft             PCP Flowdata Option                 July 2013


6.  Network Authorization

   Oftentimes the endpoints themselves are not authorized to request
   network resources, but instead authorization has to first be obtained
   from a network element such as a call controller or policy element.
   To accommodate such deployments, third party authorization can be
   used with FLOWDATA . At a high level, this authorization works by the
   PCP client first obtaining a cryptographic token from the authorizing
   network element (e.g., call controller) and includes that token in
   the PCP request.  The PCP server in the network validates the token
   and grants access.

7.  Scaling Considerations

   The network elements need only act upon those flows explicitly
   signaled by a PCP client, instead of all possible flows that a host
   generates.

   Short lived flows (e.g., HTTP/1.0) or best-effort flows would receive
   little to no benefit from the signaling described in this document.
   As explained in Section 3.3, the PCP server will limit excessive
   flowdata requests, so hosts are encouraged to be conservative in how
   many flows are signaled with flowdata.

8.  Security Considerations

   On some networks, only certain users or certain applications are
   authorized to signal the priority of a flow.  This authorization can
   be achieved with PCP client authentication
   [I-D.ietf-pcp-authentication].

9.  IANA Considerations

   IANA is requested to assign a new PCP option called FLOWDATA from the
   optional to process range (128-255) in the [pcp-iana] registry.

10.  Acknowledgements

   Thanks to Anca Zamfir for review comments.

11.  References

11.1.  Normative References

   [I-D.ietf-pcp-authentication]
              Wasserman, M., Hartman, S., and D. Zhang, "Port Control
              Protocol (PCP) Authentication Mechanism", draft-ietf-pcp-
              authentication-01 (work in progress), October 2012.



Wing, et al.            Expires January 04, 2014               [Page 15]

Internet-Draft             PCP Flowdata Option                 July 2013


   [I-D.ietf-pcp-proxy]
              Boucadair, M., Penno, R., and D. Wing, "Port Control
              Protocol (PCP) Proxy Function", draft-ietf-pcp-proxy-03
              (work in progress), June 2013.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC4086]  Eastlake, D., Schiller, J., and S. Crocker, "Randomness
              Requirements for Security", BCP 106, RFC 4086, June 2005.

   [RFC6887]  Wing, D., Cheshire, S., Boucadair, M., Penno, R., and P.
              Selkirk, "Port Control Protocol (PCP)", RFC 6887, April
              2013.

11.2.  Informative References

   [I-D.cheshire-recursive-pcp]
              Cheshire, S., "Recursive PCP", draft-cheshire-recursive-
              pcp-02 (work in progress), March 2013.

   [RFC4594]  Babiarz, J., Chan, K., and F. Baker, "Configuration
              Guidelines for DiffServ Service Classes", RFC 4594, August
              2006.

   [pcp-iana]
              IANA, "Port Control Protocol (PCP) Parameters", May 2013,
              <http://www.iana.org/assignments/pcp-parameters/pcp-
              parameters.xml#options>.

Authors' Addresses

   Dan Wing
   Cisco Systems, Inc.
   170 West Tasman Drive
   San Jose, California  95134
   USA

   Email: dwing@cisco.com


   Reinaldo Penno
   Cisco Systems, Inc.
   170 West Tasman Drive
   San Jose  95134
   USA

   Email: repenno@cisco.com



Wing, et al.            Expires January 04, 2014               [Page 16]

Internet-Draft             PCP Flowdata Option                 July 2013


   Tirumaleswar Reddy
   Cisco Systems, Inc.
   Cessna Business Park, Varthur Hobli
   Sarjapur Marathalli Outer Ring Road
   Bangalore, Karnataka  560103
   India

   Email: tireddy@cisco.com











































Wing, et al.            Expires January 04, 2014               [Page 17]