One document matched: draft-ietf-dime-diameter-qos-14.xml


<?xml version="1.0" encoding="US-ASCII"?>
<?xml-stylesheet type='text/xsl' href='./rfc2629.xslt' ?>
<?rfc toc="yes"?>
<?rfc symrefs="no"?>
<?rfc compact="no" ?>
<?rfc sortrefs="yes" ?>
<?rfc strict="yes" ?>
<?rfc linkmailto="yes" ?>
<!DOCTYPE rfc PUBLIC "-//IETF//DTD RFC 2629//EN"
"http://xml.resource.org/authoring/rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC3588 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3588.xml">
<!ENTITY RFC4005 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4005.xml">
<!ENTITY I-D.ietf-dime-qos-attributes SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-dime-qos-attributes.xml">
<!ENTITY I-D.ietf-nsis-ntlp SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-nsis-ntlp.xml">
<!ENTITY RFC5624 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5624.xml">
<!ENTITY I-D.ietf-nsis-qos-nslp SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-nsis-qos-nslp.xml">
<!ENTITY RFC4566 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4566.xml">
<!ENTITY RFC2211 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2211.xml">
<!ENTITY RFC2212 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2212.xml">
<!ENTITY RFC2205 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2205.xml">
<!ENTITY RFC2753 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2753.xml">
<!ENTITY RFC2865 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2865.xml">
<!ENTITY RFC3521 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3521.xml">
<!ENTITY RFC3313 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3313.xml">
<!ENTITY RFC3520 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3520.xml">
<!ENTITY RFC2474 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2474.xml">
<!ENTITY RFC5246 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5246.xml">
<!ENTITY RFC4282 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4282.xml">
<!ENTITY RFC3261 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3261.xml">
]>
<?xml-stylesheet type='text/xsl' href='./rfc2629.xslt' ?>
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc strict="no"?>
<?rfc compact="no" ?>
<?rfc subcompact="yes" ?>
<?rfc sortrefs="yes" ?>
<rfc category="std" docName="draft-ietf-dime-diameter-qos-14.txt"
     ipr="trust200902">
  <front>
    <title abbrev="Diameter QoS Application">Diameter Quality of Service
    Application</title>

    <author fullname="Dong Sun" initials="D." role="editor" surname="Sun">
      <organization>Alcatel-Lucent</organization>

      <address>
        <postal>
          <street>600 Mountain Ave</street>

          <street></street>

          <city>Murray Hill</city>

          <region>NJ</region>

          <code>07974</code>

          <country>USA</country>
        </postal>

        <phone>+1 908 582 2617</phone>

        <email>d.sun@alcatel-lucent.com</email>
      </address>
    </author>

    <author fullname="Peter J. McCann" initials="P." surname="McCann">
      <organization abbrev="Motorola Labs">Motorola Labs</organization>

      <address>
        <postal>
          <street>1301 E. Algonquin Rd</street>

          <city>Schaumburg</city>

          <region>IL</region>

          <code>60196</code>

          <country>USA</country>
        </postal>

        <phone>+1 847 576 3440</phone>

        <email>pete.mccann@motorola.com</email>
      </address>
    </author>

    <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
      <organization>Nokia Siemens Networks</organization>

      <address>
        <postal>
          <street>Linnoitustie 6</street>

          <city>Espoo</city>

          <code>02600</code>

          <country>Finland</country>
        </postal>

        <phone>+358 (50) 4871445</phone>

        <email>Hannes.Tschofenig@gmx.net</email>

        <uri>http://www.tschofenig.priv.at</uri>
      </address>
    </author>

    <author fullname="Tina Tsou" initials="T." surname="Tsou">
      <organization abbrev="Huawei">Huawei</organization>

      <address>
        <postal>
          <street></street>

          <city>Shenzhen</city>

          <region></region>

          <code></code>

          <country>P.R.C</country>
        </postal>

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

    <author fullname="Avri Doria" initials="A." surname="Doria">
      <organization abbrev="Lulea University of Technology">Lulea University
      of Technology</organization>

      <address>
        <postal>
          <street>Arbetsvetenskap</street>

          <city>Lulea</city>

          <region></region>

          <code>SE-97187</code>

          <country>Sweden</country>
        </postal>

        <email>avri@ltu.se</email>
      </address>
    </author>

    <author fullname="Glen Zorn" initials="G.Z." role="editor" surname="Zorn">
      <organization>Network Zen</organization>

      <address>
        <postal>
          <street>1310 East Thomas Street</street>

          <street>#306</street>

          <city>Seattle</city>

          <region>Washington</region>

          <code>98102</code>

          <country>USA</country>
        </postal>

        <phone>+1 (206) 377-9035</phone>

        <email>gwz@net-zen.net</email>
      </address>
    </author>

    <date year="2010" />

    <area>Operations and Management</area>

    <workgroup>Diameter Maintenance and Extensions (DIME)</workgroup>

    <keyword>Diameter</keyword>

    <keyword>AAA</keyword>

    <keyword>QoS</keyword>

    <keyword>Policy</keyword>

    <keyword>VoIP</keyword>

    <keyword>SIP</keyword>

    <abstract>
      <t>   This document describes the framework, messages and procedures for
   the Diameter Quality of Service (QoS) application.  The Diameter QoS
   application allows network elements to interact with Diameter servers
   when allocating QoS resources in the network.  In particular, two
   modes of operation, namely "Pull" and "Push", are defined.</t>
    </abstract>
  </front>

  <middle>
    <!-- ====================================================================== -->

    <section anchor="introduction" title="Introduction">
      <t>This document describes the framework, messages and procedures for
      the Diameter <xref target="RFC3588"> </xref> Quality of Service (QoS)
      application. The Diameter QoS application allows Network Elements (NEs)
      to interact with Diameter servers when allocating QoS resources in the
      network.</t>

      <t>Two modes of operation are defined. In the first, called "Pull" mode,
      the network element requests QoS authorization from the Diameter server
      based on some trigger (such as a QoS signaling protocol) that arrives
      along the data path. In the second, called "Push" mode, the Diameter
      server pro-actively sends a command to the network element(s) to install
      QoS authorization state. This could be triggered, for instance, by
      off-path signaling, such as Session Initiation Protocol (SIP) <xref
      target="RFC3261"></xref> call control.</t>

      <t>A set of command codes is specified that allows a single Diameter QoS
      application server to support both Pull and Push modes based on the
      requirements of network technologies, deployment scenarios and end-host
      capabilities. In conjunction with Diameter AVPs defined in <xref
      target="I-D.ietf-dime-qos-attributes"></xref> and in <xref
      target="RFC5624"></xref>, this document depicts
      basic call flow procedures used to establish, modify and terminate a
      Diameter QoS application session.</t>
	  
	  <t>This document defines a number of Diameter-encoded Attribute Value Pairs
   (AVPs), which are described using a modified version of the Augmented
   Backus-Naur Form (ABNF), see <xref target="RFC3588"/>.</t>

    </section>

    <!-- ====================================================================== -->

    <section title="Terminology">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
      document are to be interpreted as described in RFC 2119 <xref
      target="RFC2119"></xref>.</t>

      <t>The following terms are used in this document:</t>

      <t><list style="hanging">
          <t hangText="AAA Cloud"><vspace blankLines="0" /> An infrastructure
          of Authentication, Authorization and Accounting (AAA) entities
          (clients, agents, servers) communicating via a AAA protocol over
          trusted, secure connections. It offers authentication, authorization
          and accounting services to applications in  local and
          roaming scenarios. Diameter and RADIUS <xref
          target="RFC2865"></xref> are both widely deployed AAA protocols.
          <vspace blankLines="1" /></t>

          <t hangText="Application Endpoint (AppE)"><vspace blankLines="0" />
          An Application Endpoint is an entity in an end-user device that
          exchanges signaling messages with Application Servers or
          directly with other Application Endpoints. Based on the result of
          this signaling, the Endpoint may make a request for QoS from the
          network. For example, a SIP User Agent is one kind of Application
          Endpoint. <vspace blankLines="1" /></t>

          <t hangText="Application Server (AppS)"><vspace blankLines="0" /> An
          Application Server is an entity that exchanges signaling messages
          with an Application Endpoint (see above). It may be a source of
          authorization for QoS-enhanced application flows. For example, a SIP
          server is one kind of Application Server.<vspace
          blankLines="1" /></t>

          <t hangText="Authorizing Entity (AE)"><vspace blankLines="0" /> The
          Authorizing Entity is a Diameter server that supports the QoS
          application. It is responsible for authorizing QoS requests for a
          particular application flow or aggregate. The Authorizing Entity may
          be a standalone entity or may be integrated with an Application
          Server and may be co-located with a subscriber database. This entity
          corresponds to the Policy Decision Point (PDP) <xref
          target="RFC2753"></xref>.<vspace blankLines="1" /></t>

          <t hangText="Network Element (NE)"><vspace blankLines="0" /> A QoS
          aware router that acts as a Diameter client for the QoS application.
          This entity triggers the protocol interaction for the Pull mode, and
          it is the recipient of QoS information in the Push mode. The
          Diameter Client at an Network Element corresponds to the Policy
          Enforcement Point (PEP) <xref target="RFC2753"></xref>.<vspace
          blankLines="1" /></t>

          <t hangText="Pull Mode"><vspace blankLines="0" />In this mode, the
          QoS authorization process is invoked by the QoS reservation request
          received from the Application Endpoint. The Network Element then
          requests the QoS authorization decision from the Authorizing
          Entity.<vspace blankLines="1" /></t>

          <t hangText="Push Mode"><vspace blankLines="0" />In this mode, the
          QoS authorization process is invoked by the request from Application
          Server or local policies in the Authorizing Entity. The Authorizing
          Entity then installs the QoS authorization decision to the Network
          Element directly. <vspace blankLines="1" /></t>

          <t hangText="Resource Requesting Entity (RRE)"><vspace
          blankLines="0" /> A Resource Requesting Entity is a logical entity
          that supports the protocol interaction for QoS resources. The RRE
          resides in the end-host and is able to communicate with peer logical
          entities in an Authorizing Entity or a Network Element to trigger
          the QoS authorization process.<vspace blankLines="1" /></t>
        </list></t>
		
    </section>

    <!-- ====================================================================== -->

    <section anchor="architecture" title="Framework">
      <t>The Diameter QoS application runs between a NE (acting as a Diameter
      client) and the resource AE (acting as a Diameter server). A high-level
      picture of the resulting architecture is shown in <xref
      target="fig-qos-aaa"></xref>.</t>

      <t><figure anchor="fig-qos-aaa"
          title="An Architecture Supporting QoS-AAA">
          <artwork><![CDATA[                                    
            +-------+---------+                                     
            |   Authorizing   |                                     
            |     Entity      |                                     
            |(Diameter Server)|                                     
            +-------+---------+                                     
                    |                                               
                    |                                               
             /\-----+-----/\                                        
         ////               \\\\                                    
       ||       AAA Cloud       ||                                  
      |   (Diameter application)  |                                 
       ||                       ||                                  
         \\\\               ////                                    
             \-------+-----/                                        
                     |                                              
    +---+--+   +-----+----+   +---+--+                              
    |      |   |    NE    |   |      |    Media                  
    +  NE  +===+(Diameter +===+  NE  +=============>>               
    |      |   |  Client) |   |      |    Flow                      
    +------+   +----------+   +------+                              
]]></artwork>
        </figure></t>

      <t><xref target="fig-qos-aaa"></xref> depicts NEs through which media
      flows need to pass, a cloud of AAA servers, and an AE. Note that there
      may be more than one router that needs to interact with the AAA cloud
      along the path of a given application flow, although the figure only
      depicts one for clarity.</t>

      <t>In some deployment scenarios, NEs may request authorization through
      the AAA cloud based on an incoming QoS reservation request. The NE will
      route the request to a designated AE. The AE will return the result of
      the authorization decision. In other deployment scenarios, the
      authorization will be initiated upon dynamic application state, so that
      the request must be authenticated and authorized based on information
      from one or more AppSs. After receiving the authorization request from
      the AppS or the NE, the AE decides the appropriate mode (i.e., Push or
      Pull). The usage Push or Pull mode can be determined by the authorizing
      entity either statically or dynamically. Static determination might be
      based on a configurable defined policy in the authorizing entity, while
      dynamic determination might be based on information received from an
      application server. For Push mode, the authorizing entity needs to
      identify the appropriate NE(s) to which QoS authorization information
      needs to be pushed. It might determine this based on information
      received from the AppS, such as the IP addresses of media flows.</t>

      <t>In some deployment scenarios, there is a mapping between access
      network type and the service logic (e.g., selection of the Push or Pull
      mode, and other differentiated handling of the resource admission and
      control). The access network type might be derived from the
      authorization request from the AppS or the NE, and in this case, the
      authorizing entity can identify the corresponding service logic based on
      the mapping.</t>

      <t>If the interface between the NEs and the AAA cloud is identical
      regardless of whether the AE communicates with an AppS or not, routers
      are insulated from the details of particular applications and need not
      know that Application Servers are involved. Also, the AAA cloud may also
      encompass business relationships such as those between network operators
      and third-party application providers. This enables flexible intra- or
      inter-domain authorization, accounting, and settlement.</t>

      <section anchor="router_model" title="Network Element Functional Model">
        <t><xref target="fig-ne-model"></xref> depicts a logical operational
        model of resource management in a router.</t>

        <t><figure anchor="fig-ne-model"
            title="Network Element Functional Model">
            <artwork><![CDATA[
            +-------------------------------------------------------+
            | DIAMETER Client                                       |
            | Functionality                                         |
            | +---------------++-----------------++---------------+ |
            | | User          || QoS Application || Accounting    | |
            | | Authentication|| Client          || Client (e.g., | |
            | | Client        || (Authorization  ||for QoS Traffic| |
            | +---------------+| of QoS Requests)|+---------------+ |
            |                  +-----------------+                  |
            +-------------------------------------------------------+
                                           ^
                                           v
         +--------------+            +----------+
         |QoS Signaling |            | Resource |
         |Msg Processing|<<<<<>>>>>>>|Management|
         +--------------+            +----------+
              .  ^   |              *      ^
              |  v   .            *        ^
         +-------------+        *          ^
         |Signaling msg|       *           ^
         | Processing  |       *           V
         +-------------+       *           V
              |      |         *           V
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
              .      .         *           V
              |      |         *     .............................
              .      .         *     .   Traffic Control         .
              |      |         *     .                +---------+.
              .      .         *     .                |Admission|.
              |      |         *     .                | Control |.
    +----------+    +------------+   .                +---------+.
<.->|  Input   |    | Outgoing   |<.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.->
    |  Packet  |    | Interface  |   .+----------+    +---------+.
===>|Processing|====| Selection  |===.|  Packet  |====| Packet  |.=>
    |          |    |(Forwarding)|   .|Classifier|     Scheduler|.
    +----------+    +------------+   .+----------+    +---------+.
                                     .............................
        <.-.-> = signaling flow
        =====> = data flow (sender --> receiver)
        <<<>>> = control and configuration operations
        ****** = routing table manipulation
]]></artwork>
          </figure></t>

        <t>Processing of incoming QoS reservation requests includes three
        actions: admission control, authorization and resource
        reservation.</t>

        <t>The admission control function provides information about available
        resources and determines whether there are enough resources to fulfill
        the request. Authorization is performed by the Diameter client, which
        involves contacting an authorization entity through the AAA cloud
        shown in <xref target="architecture"></xref>. If both checks are
        successful, the authorized QoS parameters are set in the packet
        classifier and the packet scheduler. Note that the parameters passed
        to the Traffic Control function may be different from the ones
        requested QoS (depending on the authorization decision). Once the
        requested resource is granted, the Resource Management function
        provides accounting information to the AE via the Diameter client.</t>
      </section>

      <!-- ====================================================================== -->

      <section anchor="Implication"
               title="Implications of Endpoint QoS Capabilities">
        <t></t>

        <section anchor="Categories" title="Endpoint Categories">
          <t>The QoS capabilities of Application Endpoints are varied, and can
          be categorized as follows: <vspace blankLines="1" /> <list
              style="hanging">
              <t hangText="Category 1"><vspace blankLines="0" /> A Category 1
              Application Endpoint has no QoS capability at either the
              application or the network level. This type of AppE may set up a
              connection through application signaling, but it is incapable of
              specifying resource/QoS requirements through either application
              or network-level signaling. <vspace blankLines="1" /></t>

              <t hangText="Category 2"><vspace blankLines="0" /> A Category 2
              Application Endpoint only has QoS capability at the application
              level. This type of AppE is able to set up a connection through
              application signaling with certain resource/QoS requirements
              (e.g., application attributes), but it is unable to signal any
              resource/QoS requirements at the network level. <vspace
              blankLines="1" /></t>

              <t hangText="Category 3"><vspace blankLines="0" /> A Category 3
              Application Endpoint has QoS capability at the network level.
              This type of AppE may set up a connection through application
              signaling, translate service characteristics into network
              resource/QoS requirements (e.g., network QoS class) locally, and
              request the resources through network signaling, e.g., Resource
              ReSerVation Protocol (RSVP) <xref target="RFC2205"></xref> or
              NSIS <xref target="I-D.ietf-nsis-qos-nslp"></xref>.</t>
            </list></t>
        </section>

        <section title="Interaction Modes Between the Authorizing Entity and Network Element">
          <t>Different QoS mechanisms are employed in packet networks. Those
          QoS mechanisms can be categorized into two schemes: IntServ <xref
          target="RFC2211"></xref>, <xref target="RFC2212"></xref> and
          DiffServ <xref target="RFC2474"></xref>. In the IntServ scheme,
          network signaling (e.g., RSVP, NSIS, or link specific signaling) is
          commonly used to initiate a request from an AppE for the desired QoS
          resource. In the DiffServ scheme, QoS resources are provisioned
          based upon some predefined QoS service classes rather than
          AppE-initiated, flow-based QoS requests.</t>

          <t>It is obvious that the eligible QoS scheme is correlated to the
          AppE's capability in the context of QoS authorization. Since
          Category 1 and 2 AppEs cannot initiate the QoS resource requests by
          means of network signaling, using the current mechanism of IntServ
          model to signal QoS information across the network is not applicable
          to them in general. Depending on network technology and operator
          requirements, a Category 3 AppE may either make use of network
          signaling for resource requests or not.</t>

          <t>The diversity of QoS capabilities of endpoints and QoS schemes of
          network technology leads to the distinction on the interaction mode
          between QoS authorization system and underlying NEs. When the
          IntServ scheme is employed by a Category 3 endpoint, the
          authorization process is typically initiated by a NE when a trigger
          is received from the endpoint such as network QoS signaling. In the
          DiffServ scheme, since the NE is unable to request the resource
          authorization on its own initiative, the authorization process is
          typically triggered by either the request of AppSs or policies
          defined by the operator.</t>

          <t>As a consequence, two interaction modes are needed in support of
          different combinations of QoS schemes and endpoint’s QoS
          capabilities: Push mode and Pull mode.</t>

          <t><list style="hanging">
              <t hangText="Push mode"><vspace blankLines="0" /> The QoS
              authorization process is triggered by AppSs or local network
              conditions (e.g., time of day on resource usage and QoS
              classes), and the authorization decisions are installed by the
              AE to the network element on its own initiative without explicit
              request. In order to support the push mode, the AE (i.e.,
              Diameter server) should be able to initiate a Diameter
              authorization session to communicate with the NE (i.e., Diameter
              client) without any pre-established connection from the network
              element. <vspace blankLines="1" /></t>

              <t hangText="Pull mode"><vspace blankLines="0" /> The QoS
              authorization process is triggered by the network signaling
              received from end-user equipment or by a local event in the NE
              according to pre-configured policies, and authorization
              decisions are produced upon the request of the NE. In order to
              support the pull mode, the NE (i.e., Diameter client) will
              initiate a Diameter authorization session to communicate with
              the authorizing entity (i.e., Diameter server).</t>
            </list></t>

          <t>For Category 1 and 2 Application Endpoints, Push mode is
          REQUIRED. For a Category 3 AppE, either Push mode or Pull mode MAY
          be used.</t>

          <t>Push mode is applicable to certain networks, for example, Cable
          network, DSL, Ethernet, and Diffserv-enabled IP/MPLS. The Pull mode
          is more appropriate to IntServ-enabled IP networks or certain
          wireless networks such as the GPRS networks defined by 3GPP. Some
          networks (for example, WiMAX) may require both Push and Pull
          modes.</t>
        </section>
      </section>

      <section title="Authorization Schemes">
        <t></t>

        <section anchor="authz_models" title="Pull Mode Schemes">
          <t>Three types of basic authorization schemes for Pull mode exist:
          one type of two-party scheme and two types of three-party schemes.
          The notation adopted here is in respect to the entity that performs
          the QoS authorization (QoS Authz). The authentication of the QoS
          requesting entity might be done at the NE as part of the QoS
          signaling protocol, or by an off-path protocol (on the application
          layer or for network access authentication) or the AE might be
          contacted with request for authentication and authorization of the
          QoS requesting entity. From the Diameter QoS application's point of
          view these schemes differ in type of information that need to be
          carried. Here we focus on the 'Basic Three Party Scheme' (see <xref
          target="fig-three-party-approach"></xref>) and the 'Token-based
          Three Party Scheme' (see <xref
          target="fig-three-party-token-approach"></xref>). In the 'Two Party
          Scheme', the QoS RRE is authenticated by the NE and the
          authorization decision is made either locally at the NE itself or
          offloaded to a trusted entity (most likely within the same
          administrative domain). In the two-party case no Diameter QoS
          protocol interaction is required.</t>

          <t><figure anchor="fig-three-party-approach"
              title="Three Party Scheme">
              <artwork><![CDATA[
                                     +--------------+                     
                                     | Authorizing  |
                                     | Entity       |                     
                                     | authorizing  | <......+            
                                     | resource     |        .            
                                     | request      |        .            
                                     +------------+-+        .            
                                     --^----------|--   .    .            
                                /////  |          |  \\\\\   .            
                              //       |          |       \\ .            
                             |     QoS | QoS AAA  | QoS     |.            
                             |    authz| protocol |authz    |.            
                             |     req.|          | res.    |.            
                              \\       |          |       // .            
                                \\\\\  |          |  /////   .            
                       QoS           --|----------v--   .    .            
    +-------------+    request       +-+------------+        .            
    |  Entity     |----------------->| NE           |        .            
    |  requesting |                  | performing   |        .            
    |  resource   |granted / rejected| QoS          |  <.....+            
    |             |<-----------------| reservation  | financial           
    +-------------+                  +--------------+ settlement
]]></artwork>
            </figure></t>

          <t>In the 'Basic Three Party Scheme' a QoS reservation request that
          arrives at the NE is forwarded to the Authorizing Entity (e.g., in
          the user's home network), where the authorization decision is made.
          As shown, financial settlement - a business relationship, such as a
          roaming agreement, between the visited network and the home network
          ensures that the visited network is compensated for the resources
          consumed by the user via the home network.</t>

          <t><figure anchor="fig-three-party-token-approach"
              title="Token-based Three Party Scheme">
              <artwork><![CDATA[
                            financial settlement                          
                             ...........................+                 
   Authorization             V             -------      .                 
   Token Request   +--------------+      / QoS AAA \    .                 
   +-------------->|              |     /  protocol \   .                 
   |               | Authorizing  +--------------+   \  .                 
   |               | Entity       |   |          |    | .                 
   |        +------+              |<--+----+     |    | .                 
   |        |      +--------------+  |QoS  |     |QoS  |.                 
   |        |                        |authz|     |authz|.                 
   |        |Authorization           |req.+|     |res. |.                 
   |        |Token                   |Token|     |     |.                 
   |        |                         |    |     | .  | .                 
   |        |                          \   |     | . /  .                 
   |        |                            \ |     | /    .                 
   |        |      QoS request             |-----V .    .                 
 +-------------+ + Authz. Token   +--------+-----+      .                 
 |  Entity     |----------------->| NE           |      .                 
 |  requesting |                  | performing   |      .                 
 |  resource   |granted / rejected| QoS          | <....+                 
 |             |<-----------------| reservation  |                        
 +-------------+                  +--------------+
]]></artwork>
            </figure></t>

          <t>The 'Token-based Three Party Scheme' is applicable to
          environments where a previous protocol interaction is used to
          request authorization tokens to assist the authorization process at
          the NE or the AE <xref target="RFC3521"></xref>.</t>

          <t>The QoS RRE may be involved in an application layer protocol
          interaction, for example using SIP <xref target="RFC3313"></xref>,
          with the AE. As part of this interaction, authentication and
          authorization at the application layer might take place. As a result
          of a successful authorization decision, which might involve the
          user's home AAA server, an authorization token is generated by the
          AE (e.g., the SIP proxy and an entity trusted by the SIP proxy) and
          returned to the end host for inclusion into the QoS signaling
          protocol. The authorization token will be used by a NE that receives
          the QoS signaling message to authorize the QoS request.
          Alternatively, the Diameter QoS application will be used to forward
          the authorization token to the user's home network. The
          authorization token allows that the authorization decision performed
          at the application layer can be associated with a corresponding QoS
          signaling session. Note that the authorization token might either
          refer to established state concerning the authorization decision or
          the token might itself carry the authorized parameters (protected by
          a digital signature or a keyed message digest to prevent tampering).
          In the latter case the authorization token may contain several
          pieces of information pertaining to the authorized application
          session, but at minimum it should contain: <list style="symbols">
              <t>An identifier for the AE (for example, an AppS) that issued
              the authorization token</t>

              <t>An identifier referring to a specific application protocol
              session for which the token was issued and</t>

              <t>A keyed message digest or digital signature protecting the
              content of the authorization token</t>
            </list></t>

          <t>A possible structure for the authorization token and the policy
          element carrying it are proposed in context of RSVP <xref
          target="RFC3520"></xref>.</t>

          <t>In the scenario mentioned above, where the QoS resource
          requesting entity is involved in an application layer protocol
          interaction with the AE, it may be worthwhile to consider a
          token-less binding mechanism also. The application layer protocol
          interaction may have indicated the transport port numbers at the QoS
          RRE where it might receive media streams (for example in SIP/SDP
          <xref target="RFC4566"></xref> signalling, these port numbers are
          advertised). The QoS RRE may also use these port numbers in some IP
          filter indications to the NE performing QoS reservation so that it
          may properly tunnel the inbound packets. The NE performing QoS
          reservation will forward the QoS resource requesting entity's IP
          address and the IP filter indications to the AE in the QoS
          authorization request. The AE will use the QoS RRE's IP address and
          the port numbers in the IP filter indication, which will match the
          port numbers advertised in the earlier application layer protocol
          interaction, to identify the right piece of policy information to be
          sent to the NE performing the QoS reservation in the QoS
          Authorization. response.</t>
        </section>

        <section title="Push Mode Schemes">
          <t>The push mode can be further divided into two types:
          endpoint-initiated and network-initiated. In the former case, the
          authorization process is triggered by AppS in response to an
          explicit QoS request from an endpoint through application signaling,
          e.g., SIP; in the latter case, the authorization process is triggered
          by the AppS without an explicit QoS request from an endpoint.</t>

          <t>In the endpoint-initiated scheme, the QoS RRE (i.e., the AppE)
          determines the required application level QoS and sends a QoS
          request through an application signaling message. The AppS will
          extract application-level QoS information and trigger the
          authorization process to the AE. In the network-initiated scheme,
          the AE and/or AppS should derive and determine the QoS requirements
          according to application attribute, subscription and endpoint's
          capability when the endpoint does not explicitly indicate the QoS
          attributes. The AE makes an authorization decision based on
          application level QoS information, network policies, end-user
          subscription, network resource availability, etc., and installs the
          decision to NE directly.</t>

          <t>A Category 1 AppE requires network-initiated Push mode and a
          Category 2 AppE may use either type of Push Mode.</t>

          <t><figure anchor="fig-three-party-push-approach"
              title="Scheme for Push Mode">
              <artwork><![CDATA[
                            financial settlement                          
                             ...........................+                 
   Application               V             -------      .                 
   signaling msg   +--------------+      / QoS AAA \    .                 
   +-------------->|              |     /  protocol \   .                 
   |               | Authorizing  +--------------+   \  .                 
   |               | Entity       |   |          |    | .                 
   |               +              |<--+----+     |    | .                 
   |               +--------------+  |QoS  |     |QoS  |.                 
   |                                install|     |install                 
   |                                 |rsp. |     |req. |.                 
   |                                 |     |     |     |.                 
   |                                  |    |     | .  | .                 
   |                                   \   |     | . /  .                 
   |                                     \ |     | /    .                 
   V                                       |-----V .    .                 
 +-------------+                  +--------+-----+      .                 
 |  Entity     |                  | NE           |      .                 
 |  requesting |                  | performing   |      .                 
 |  resource   |QoS rsrc granted  | QoS          | <....+                 
 |             |<-----------------| reservation  |                        
 +-------------+                  +--------------+
]]></artwork>
            </figure></t>
        </section>
      </section>

      <!-- ====================================================================== -->

      <section title="QoS Application Requirements">
        <t>A QoS application must meet a number of requirements applicable to
        a diverse set of networking environments and services. It should be
        compatible with different deployment scenarios having specific QoS
        signaling models and security issues. Satisfying the requirements
        listed below while interworking with QoS signaling protocols, a
        Diameter QoS application should accommodate the capabilities of the
        QoS signaling protocols rather than introducing functional
        requirements on them. A list of requirements for a QoS authorization
        application is provided here:</t>

        <t><list style="hanging">
            <t hangText="Identity-based Routing"><vspace blankLines="0" /> The
            Diameter QoS application MUST route AAA requests to the
            Authorizing Entity, based on the provided identity of the QoS
            requesting entity or the identity of the AE encoded in the
            provided authorization token.<vspace blankLines="1" /></t>

            <t hangText="Flexible Authentication Support"><vspace
            blankLines="0" /> The Diameter QoS application MUST support a
            variety of different authentication protocols for verification of
            authentication information present in QoS signaling messages. The
            support for these protocols MAY be provided indirectly by tying
            the signaling communication for QoS to a previous authentication
            protocol exchange (e.g., using network access
            authentication).<vspace blankLines="1" /></t>

            <t hangText="Making an Authorization Decision"><vspace
            blankLines="0" /> The Diameter QoS application MUST exchange
            sufficient information between the AE and the enforcing entity
            (and vice versa) to compute an authorization decision and to
            execute this decision.<vspace blankLines="1" /></t>

            <t hangText="Triggering an Authorization Process"><vspace
            blankLines="0" /> The Diameter QoS application MUST allow periodic
            and event triggered execution of the authorization process,
            originated at the enforcing entity or even at the AE.<vspace
            blankLines="1" /></t>

            <t
            hangText="Associating QoS Reservations and Application State"><vspace
            blankLines="0" /> The Diameter QoS application MUST carry
            information sufficient for an AppS to identify the appropriate
            application session and associate it with a particular QoS
            reservation.<vspace blankLines="1" /></t>

            <t hangText="Dynamic Authorization"><vspace blankLines="0" /> It
            MUST be possible for the Diameter QoS application to push updates
            towards the NE(s) from authorizing entities.<vspace
            blankLines="1" /></t>

            <t hangText="Bearer Gating"><vspace blankLines="0" /> The Diameter
            QoS application MUST allow the AE to gate (i.e., enable/disable)
            authorized application flows based on, e.g., application state
            transitions.<vspace blankLines="1" /></t>

            <t hangText="Accounting Records"><vspace blankLines="0" /> The
            Diameter QoS application MAY define QoS accounting records
            containing duration, volume (byte count) usage information and
            description of the QoS attributes (e.g., bandwidth, delay, loss
            rate) that were supported for the flow.<vspace
            blankLines="1" /></t>

            <t hangText="Sending Accounting Records"><vspace blankLines="0" />
            The NE SHOULD be able to send accounting records for a particular
            QoS reservation state to an accounting entity.<vspace
            blankLines="1" /></t>

            <t hangText="Failure Notification"><vspace blankLines="0" /> The
            Diameter QoS application MUST allow the NE to report failures,
            such as loss of connectivity due to movement of a mobile node or
            other reasons for packet loss, to the authorizing entity.<vspace
            blankLines="1" /></t>

            <t hangText="Accounting Correlation"><vspace blankLines="0" /> The
            Diameter QoS application MAY support the exchange of sufficient
            information to allow for correlation between accounting records
            generated by the NEs and accounting records generated by an
            AppS.<vspace blankLines="1" /></t>

            <t hangText="Interaction with other AAA Applications"><vspace
            blankLines="0" /> Interaction with other AAA applications, such as the
            Diameter Network Access (NASREQ) application <xref
            target="RFC4005"></xref>, may be required for exchange of
            authorization, authentication and accounting information.<vspace
            blankLines="1" /></t>
          </list></t>

        <t>In deployment scenarios where authentication of the QoS reservation
        requesting entity (e.g., the user) is done by means outside the
        Diameter QoS application protocol interaction, the AE is contacted
        only with a request for QoS authorization. Authentication might have
        taken place already via the interaction with the Diameter NASREQ
        application or as part of the QoS signaling protocol (e.g., Transport
        Layer Security (TLS) <xref target="RFC5246"></xref> in the General
        Internet Signaling Transport (GIST) protocol <xref
        target="I-D.ietf-nsis-ntlp"></xref>).</t>

        <t>Authentication of the QoS reservation requesting entity to the AE
        is necessary if a particular Diameter QoS application protocol cannot
        be related (or if there is no intention to relate it) to a prior
        authentication. In this case the AE MUST authenticate the QoS
        reservation requesting entity in order to authorize the QoS request as
        part of the Diameter QoS protocol interaction.</t>

        <t>The document refers to three types of sessions that need to be
        properly correlated.</t>

        <t><list style="hanging">
            <t hangText="QoS Signaling Session"><vspace blankLines="0" /> The
            time period during which a QoS signaling protocol establishes,
            maintains and deletes a QoS reservation state at the QoS network
            element is referred to as QoS signaling session. Different QoS
            signaling protocols use different ways to identify QoS signaling
            sessions. The same applies to different usage environments.
            Currently, this document supports three types of QoS session
            identifiers, namely a signaling session id (e.g., the Session
            Identifier used by the NSIS protocol suite), a flow id (e.g.,
            identifier assigned by an application to a certain flow as used in
            the 3GPP) and a flow description based on the IP parameters of the
            flow's end points.<vspace blankLines="1" /></t>

            <t hangText="Diameter Authorization Session"><vspace
            blankLines="0" /> The time period, for which a Diameter server
            authorizes a requested service (i.e., QoS resource reservation) is
            referred to as a Diameter authorization session. It is identified
            by a Session-Id included in all Diameter messages used for
            management of the authorized service (initial authorization,
            re-authorization, termination), see <xref
            target="RFC3588"></xref>.<vspace blankLines="1" /></t>

            <t hangText="Application-layer Session"><vspace blankLines="0" />
            The application layer session identifies the duration of an
            application layer service which requires provision of certain QoS.
            An application layer session identifier is provided by the QoS
            requesting entity in the QoS signaling messages, for example as
            part of the authorization token. In general, the application
            session identifier is opaque to the QoS aware NEs. It is included
            in the authorization request message sent to the AE and helps it
            to correlate the QoS authorization request to the application
            session state information. <vspace blankLines="1" /></t>
          </list></t>

        <t>Correlating these sessions is done at each of the three involved
        entities: The QoS requesting entity correlates the application with
        the QoS signaling sessions. The QoS NE correlates the QoS signaling
        session with the Diameter authorization sessions. The AE SHOULD bind
        the information about the three sessions together. Note that in
        certain scenarios not all of the sessions are present. For example,
        the application session might not be visible to QoS signaling protocol
        directly if there is no binding between the application session and
        the QoS requesting entity using the QoS signaling protocol.</t>
      </section>
    </section>

    <!-- ====================================================================== -->

    <section title="QoS Application Session Establishment and Management">
      <section title="Parties Involved">
        <t>Authorization models supported by this application include three
        parties: <list style="symbols">
            <t>Resource Requesting Entity</t>

            <t>Network Elements (Diameter QoS application (DQA) client)</t>

            <t>Authorizing Entity (Diameter QoS application (DQA) server)</t>
          </list></t>

        <t>Note that the QoS RRE is only indirectly involved in the message
        exchange. This entity provides the trigger to initiate the Diameter
        QoS protocol interaction by transmitting QoS signaling messages. The
        Diameter QoS application is only executed between the Network Element
        (i.e., DQA client) and the Authorizing Entity (i.e., DQA server).</t>

        <t>The QoS RRE may communicate with the AE using application layer
        signaling for negotiation of service parameters. As part of this
        application layer protocol interaction, for example using SIP,
        authentication and authorization might take place. This message
        exchange is, however, outside the scope of this document. The protocol
        communication between the QoS resource requesting entity and the QoS
        NE might be accomplished using the NSIS protocol suite, RSVP or a link
        layer signaling protocol. A description of these protocols is also
        outside the scope of this document.</t>
      </section>

      <section title="Session Establishment">
        <t>The Pull and Push modes use a different set of command codes for
        session establishment. For other operations, such as session
        modification and termination, they use the same set of command
        codes.</t>

        <t>The selection of Pull mode or Push mode operation is based on the
        trigger of the QoS Authorization session. When a
        QoS-Authorization-Request (QAR, see <xref target="QAR"></xref>)
        message with a new session ID is received, the AE operates in the Pull
        mode; when other triggers are received, the AE operates in the Push
        mode. Similarly, when a QoS-Install-Request (QIR, see <xref
        target="QIR"></xref>} with a new session ID is received, the NE
        operates in the Push mode; when other triggers are received, the NE
        operation in the Pull mode.</t>

        <t>The QoS authorization session is typically established per
        subscriber base (i.e., all requests with the same user ID), but it is
        also possible to be established on per node or per request base. The
        concurrent sessions between an NE and an AE are identified by
        different Session-ID.</t>

        <section title="Session Establishment for Pull Mode">
          <t>A request for a QoS reservation or local events received by a NE
          can trigger the initiation of a Diameter QoS authorization session.
          The NE converts the required objects from the QoS signaling message
          to Diameter AVPs and generates a QAR message.</t>

          <t><xref target="fig-initial-qos-request-pull"></xref> shows the
          protocol interaction between a Resource Requesting Entity, a Network
          Element and the Authorizing Entity.</t>

          <t>The AE's identity, information about the application session
          and/or identity and credentials of the QoS RRE, requested QoS
          parameters, signaling session identifier and/or QoS enabled data
          flows identifiers MAY be encapsulated into respective Diameter AVPs
          and included in the Diameter message sent to the AE. The QAR is sent
          to a Diameter server that can either be the home server of the QoS
          requesting entity or an AppS.</t>

          <texttable anchor="pull_mapping"
                     title="Mapping Input Data to QoS AVPs--Pull Mode">
            <ttcol align="left">QoS-specific Input Data</ttcol>

            <ttcol align="left">Diameter AVPs</ttcol>

            <c>Authorizing entity ID (e.g., Destination-Host taken from
            authorization token, Destination-Realm or derived from the NAI of
            the QoS requesting entity)</c>

            <c>Destination-Host Destination-Realm</c>

            <c>Authorization Token Credentials of the QoS requesting
            entity</c>

            <c>QoS-Authorization-Data User-Name</c>

            <c>QoS-Resources (including QoS parameters)</c>
          </texttable>

          <t></t>

          <t>Authorization processing starts at the Diameter QoS server when
          it receives the QAR. Based on the information in the
          QoS-Authentication-Data, User-Name and QoS-Resources AVPs the server
          determines the authorized QoS resources and flow state
          (enabled/disabled) from locally available information (e.g., policy
          information that may be previously established as part of an
          application layer signaling exchange, or the user's subscription
          profile). The QoS-Resources AVP is defined in <xref
          target="I-D.ietf-dime-qos-attributes"></xref>. The authorization
          decision is then reflected in the response returned to the Diameter
          client with the QoS-Authorization-Answer message (QAA).</t>

          <t><figure anchor="fig-initial-qos-request-pull"
              title="Initial QoS Request Authorization for Pull Mode">
              <artwork><![CDATA[
                                            Authorizing             
  End-Host         Network Element             Entity               
requesting QoS      ( Diameter              ( Diameter              
                     QoS Client)             QoS Server)            
    |                   |                         |                 
    +---QoS-Reserve---->|                         |                 
    |                   +- - - - - QAR - - - - - >|                 
    |                   |(QoS-Resources,          |                 
    |                   |   QoS-Auth-Data,User-ID)|                 
    |                   |                +--------+--------------+  
    |                   |                |  Authorize request    |  
    |                   |                |  Keep session data    |  
    |                   |                |/Authz-time,Session-Id/|  
    |                   |                +--------+--------------+  
    |                   |< - - - - QAA - - - - - -+                 
    |                   |(Result-Code,            |                 
    |                   |QoS-Resources,Authz-time)|                 
    |           +-------+---------+                                 
    |           |Install QoS state|                                 
    |           |       +         |                                 
    |           | Authz. session  |                                 
    |           | /Authz-time/    |                QoS Responder    
    |           |                 |                    Node         
    |           +-------+---------+                      |          
    |                   +----------QoS-Reserve---....--->|          
    |                   |                                |          
    |                   |<---------QoS-Response--....----|          
    |<--QoS-Response----+                                |          
    |                   |                                |          
    |=====================Data Flow==============....===>|
]]></artwork>
            </figure></t>

          <t>The Authorizing Entity keeps authorization session state and
          SHOULD save additional information for management of the session
          (e.g., Signaling-Session-Id, authentication data) as part of the
          session state information.</t>

          <t>The final result of the authorization request is provided in the
          Result-Code AVP of the QAA message sent by the Authorizing Entity.
          In case of successful authorization (i.e., Result-Code =
          DIAMETER_LIMITED_SUCCESS, (see <xref
          target="diameter-base-avps"></xref>)), information about the
          authorized QoS resources and the status of the authorized flow
          (enabled/disabled) is provided in the QoS-Resources AVP of the QAA
          message. The QoS information provided via the QAA is installed by
          the QoS Traffic Control function of the NE. The value
          DIAMETER_LIMITED_SUCCESS indicates that the AE expects confirmation
          via another QAR message for successful QoS resource reservation and
          for final reserved QoS resources (see below).</t>

          <t>One important piece of information returned from the Authorizing
          Entity is the authorization lifetime (carried inside the QAA). The
          authorization lifetime allows the NE to determine how long the
          authorization decision is valid for this particular QoS reservation.
          A number of factors may influence the authorized session duration,
          such as the user's subscription plan or currently available credits
          at the user's account (see <xref target="accounting"></xref>). The
          authorization duration is time-based, as specified in <xref
          target="RFC3588"></xref>. For an extension of the authorization
          period, a new QoS-Authorization-Request/Answer message exchange
          SHOULD be initiated. Further aspects of QoS authorization session
          maintenance is discussed in <xref target="re-authz"></xref>, <xref
          target="session-termination"></xref> and <xref
          target="accounting"></xref>.</t>

          <t>The indication of a successful QoS reservation and activation of
          the data flow is provided by the transmission of a QAR message,
          which reports the parameters of the established QoS state: reserved
          resources, duration of the reservation, and identification of the
          QoS enabled flow/QoS signaling session. The Diameter QoS server
          acknowledges the reserved QoS resources with the QA Answer (QAA)
          message where the Result-Code is set to 'DIAMETER_SUCCESS'. Note
          that the reserved QoS resources reported in this QAR message MAY be
          different than those authorized with the initial QAA message, due to
          the QoS signaling specific behavior (e.g., receiver-initiated
          reservations with One-Path-With-Advertisements) or specific process
          of QoS negotiation along the data path.</t>
        </section>

        <section anchor="push_setup"
                 title="Session Establishment for Push Mode">
          <t>The Diameter QoS server in the AE initiates a Diameter QoS
          authorization session upon the request for QoS reservation triggered
          by application layer signaling or by local events, and generates a
          QoS-Install-Request (QIR) message to Diameter QoS client in the NE
          in which it maps required objects to Diameter payload objects.</t>

          <t><xref target="fig-initial-qos-request-push"></xref> shows the
          protocol interaction between the AE, a Network Element and a
          RRE.</t>

          <t>The NE's identity, information about the application session
          and/or identity and credentials of the QoS resource requesting
          entity, requested QoS parameters, signaling session identifier
          and/or QoS enabled data flows identifiers MAY be encapsulated into
          respective Diameter AVPs and included into the Diameter message sent
          from a Diameter QoS server in the Authorizing Entity to a Diameter
          QoS client in the NE. This requires that the AE has knowledge of
          specific information for allocating and identifying the NE that
          should be contacted and the data flow for which the QoS reservation
          should be established. This information can be statically configured
          or dynamically discovered, see <xref target="peer_discovery"></xref>
          for details.</t>

          <texttable anchor="push_mapping"
                     title="Mapping Input Data to QoS AVPs--Push Mode">
            <ttcol align="left">QoS-specific Input Data</ttcol>

            <ttcol align="left">Diameter AVPs</ttcol>

            <c>Network Element ID</c>

            <c>Destination-Host Destination-Realm</c>

            <c>Authorization Token Credentials of the QoS requesting
            entity</c>

            <c>QoS-Authorization-Data User-Name</c>

            <c>QoS-Resources (including QoS parameters)</c>
          </texttable>

          <t></t>

          <t>Authorization processing starts at the Diameter QoS server when
          it receives a request from a RRE through an AppS (e.g., SIP Invite)
          or is triggered by a local event (e.g., pre-configured timer). Based
          on the received information the server determines the authorized QoS
          resources and flow state (enabled/disabled) from locally available
          information (e.g., policy information that may be previously
          established as part of an application layer signaling exchange, or
          the user's subscription profile). The authorization decision is then
          reflected in the QoS-Install-Request message (QIR) to the Diameter
          QoS client.</t>

          <t><figure anchor="fig-initial-qos-request-push"
              title="Initial QoS Request Authorization for Push Mode">
              <artwork><![CDATA[
                                            Authorizing             
  End-Host         Network Element             Entity               
requesting QoS      ( Diameter              ( Diameter              
                     QoS Client)             QoS Server)            
    |                   |                          |                 
    |                   |                          |<-- Trigger --                 
    |                   |                 +--------+--------------+  
    |                   |                 |  Authorize request    |  
    |                   |                 |  Keep session data    |  
    |                   |                 |/Authz-time,Session-Id/|  
    |                   |                 +--------+--------------+  
    |                   |                          |                 
    |                   |<-- - -- - QIR - - - - - -+                 
    |                   |(Initial Request,Decision |                 
    |                   |(QoS-Resources,Authz-time)|                 
    |           +-------+---------+                                 
    |           |Install QoS state|                                 
    |           |       +         |                                 
    |           | Authz. session  |                                 
    |           | /Authz-time/    |                 
    |           |                 |                            
    |           +-------+---------+                                
    |                   + - - - - QIA - - - - - ->|                 
    |                   |    (Result-Code,        |                 
    |                   |     QoS-Resources)      |                 
    |                   |                +--------+--------------+  
    |                   |                | Report for successful |  
    |                   |                |   QoS reservation     |  
    |                   |                |Update of reserved QoS |  
    |                   |                |      resources        |  
    |                   |                +--------+--------------+   
    |                   |                         QoS Responder    
    |                   |                               Node         
    |                   |                                |          
    |=====================Data Flow==============....===>| 
]]></artwork>
            </figure></t>

          <t>The AE keeps authorization session state and SHOULD save
          additional information for management of the session (e.g.,
          Signaling-Session-Id, authentication data) as part of the session
          state information.</t>

          <t>The final result of the authorization decision is provided in the
          QoS-Resources AVP of the QIR message sent by the AE. The QoS
          information provided via the QIR is installed by the QoS Traffic
          Control function of the NE.</t>

          <t>One important piece of information from the AE is the
          authorization lifetime (carried inside the QIR). The authorization
          lifetime allows the NE to determine how long the authorization
          decision is valid for this particular QoS reservation. A number of
          factors may influence the authorized session duration, such as the
          user's subscription plan or currently available credits at the
          user's account (see <xref target="accounting"></xref>). The
          authorization duration is time-based as specified in <xref
          target="RFC3588"></xref>. For an extension of the authorization
          period, a new QoS-Install-Request/Answer message or
          QoS-Authorization-Request/Answer message exchange SHOULD be
          initiated. Further aspects of QoS authorization session maintenance
          are discussed in <xref target="re-authz"></xref>, <xref
          target="session-termination"></xref> and <xref
          target="accounting"></xref>.</t>

          <t>The indication of QoS reservation and activation of the data flow
          can be provided by the QoS-Install-Answer message immediately. In
          the case of successful enforcement, the Result-Code (=
          DIAMETER_SUCCESS, (see <xref target="diameter-base-avps"></xref>))
          information is provided in the QIA message. Note that the reserved
          QoS resources reported in the QIA message may be different than
          those initially authorized with the QIR message, due to the QoS
          signaling specific behavior (e.g., receiver-initiated reservations
          with One-Path-With-Advertisements) or specific process of QoS
          negotiation along the data path. In the case Multiple AEs control
          the same NE, the NE should make the selection on the authorization
          decision to be enforced based on the priority of the request.</t>
        </section>

        <section anchor="peer_discovery"
                 title="Discovery and Selection of Peer Diameter QoS Application Node">

          <!-- <t>Discovery of Diameter QoS application nodes</t>
          --> 
          
          <t>The Diameter QoS application node may obtain information of its
          peer nodes (e.g., FQDN, IP address) through static configuration or
          dynamic discovery as described in Section 5.2 of <xref
          target="RFC3588"></xref>. In particular, the NE shall perform the
          relevant operation for Pull mode; the AE shall perform the relevant
          operations for Push mode.</t>

          <!-- 
          <t>Selection of peer Diameter QoS application node</t>
          --> 
          
          <t>Upon receipt of a trigger to initiate a new Diameter QoS
          authorization session, the Diameter QoS application node selects and
          retrieves the location information of the peer node that is
          associated with the affected user based on some index information
          provided by the RRE. For instance, it can be the Authorization
          Entity's ID stored in the authorization token, the end-user's
          identity (e.g., NAI <xref target="RFC4282"></xref>) or a globally
          routable IP address.</t>
        </section>
      </section>

      <section anchor="re-authz" title="Session Re-authorization">
        <t>Client and server-side initiated re-authorizations are considered
        in the design of the Diameter QoS application. Whether the
        re-authorization events are transparent for the resource requesting
        entity or result in specific actions in the QoS signaling protocol is
        outside the scope of the Diameter QoS application. It is directly
        dependent on the capabilities of the QoS signaling protocol.</t>

        <t>There are a number of options for policy rules according to which
        the NE (AAA client) contacts the AE for re-authorization. These rules
        depend on the semantics and contents of the QAA message sent by the
        AE:</t>

        <t><list style="letters">
            <t>The QAA message contains the authorized parameters of the flow
            and its QoS and sets their limits (presumably upper). With these
            parameters the AE specifies the services that the NE can provide
            and will be financially compensated for. Therefore, any change or
            request for change of the parameters of the flow and its QoS that
            do not conform to the authorized limits requires contacting the AE
            for authorization.</t>

            <t>The QAA message contains authorized parameters of the flow and
            its QoS. The rules that determine whether parameters’
            changes require re-authorization are agreed out of band, based on
            a Service Level Agreement (SLA) between the domains of the NE and
            the AE.</t>

            <t>The QAA message contains the authorized parameters of the flow
            and its QoS. Any change or request for change of these parameters
            requires contacting the AE for re-authorization.</t>

            <t>In addition to the authorized parameters of the flow and its
            QoS, the QAA message contains policy rules that determine the NEs
            actions in case of change or request for change in authorized
            parameters.</t>
          </list></t>

        <t>Provided options are not exhaustive. Elaborating on any of the
        listed approaches is deployment /solution specific and is not
        considered in the current document.</t>

        <t>In addition, the AE may use a RAR (Re-Authorization-Request) to
        perform re-authorization with the authorized parameters directly when
        the re-authorization is triggered by service request or local
        events/policy rules.</t>

        <section title="Client-Side Initiated Re-Authorization">
          <t>The AE provides the duration of the authorization session as part
          of the QoS-Authorization-Answer message (QAA). At any time before
          expiration of this period, a new QoS-Authorization-Request message
          (QAR) MAY be sent to the AE. The transmission of the QAR MAY be
          triggered when the NE receives a QoS signaling message that requires
          modification of the authorized parameters of an ongoing QoS session,
          or authorization lifetime expires.</t>

          <t><figure anchor="fig-qos-request-re-authz"
              title="Client-side Initiated QoS Re-Authorization">
              <artwork><![CDATA[
                                            Authorizing             
  End-Host         Network Element             Entity               
requesting QoS      ( Diameter              ( Diameter              
                     QoS Client)             QoS Server)            
    |                   |                         |                 
    |=====================Data Flow==========================>      
    |                   |                         |                 
    |           +-------+----------+              |                 
    |           |Authz-time/CC-Time|              |                 
    |           |    expires       |              |                 
    |           +-------+----------+              |                 
    |                   +- - - - - QAR - - - - - >|                 
    |                   |(QoS-Resources,          |                 
    |                   | QoS-Authorization-Data,User-ID) |                 
                        |                +--------+--------------+  
 NOTE:                  |                |  Authorize request    |  
 Re-authorization       |                | Update session data   |  
 is transparent to      |                |/Authz-time,Session-Id/|  
 the End-Host           |                +--------+--------------+  
                        |< - - - - QAA - - - - - -+                 
    |                   |(Result-Code,            |                 
    |                   |QoS-Resources,Authz-time)|                 
    |           +-------+---------+               |                 
    |           |Update QoS state |               |                 
    |           |       +         |               |                 
    |           | Authz. session  |               |                 
    |           | /Authz-time/    |               |                 
    |           |                 |               |                 
    |           +-------+---------+               |                 
    |                   |                         |                 
    |=====================Data Flow==========================>      
    |                   |                                           
]]></artwork>
            </figure></t>
        </section>

        <section title="Server-Side Initiated Re-Authorization">
          <t>The AE MAY initiate a QoS re-authorization by issuing a
          Re-Auth-Request message (RAR) as defined in the Diameter base
          protocol <xref target="RFC3588"></xref>, which may include the
          parameters of the re-authorized QoS state: reserved resources,
          duration of the reservation, identification of the QoS enabled
          flow/QoS signaling session for re-installation of the resource state
          by the QoS Traffic Control function of the NE.</t>

          <t>A NE that receives such a RAR message with Session-Id matching a
          currently active QoS session acknowledges the request by sending the
          Re-Auth-Answer (RAA) message towards the AE.</t>

          <t>If RAR does not include any parameters of the re-authorized QoS
          state, the NE MUST initiate a QoS re-authorization by sending a
          QoS-Authorization-Request (QAR) message towards the AE.</t>

          <t><figure anchor="fig-qos-re-auth-server-side"
              title="Server-side Initiated QoS Re-Authorization">
              <artwork><![CDATA[
                                            Authorizing             
  End-Host         Network Element             Entity               
requesting QoS      ( Diameter              ( Diameter              
                     QoS Client)             QoS Server)            
    |                   |                          |                 
    |                   |                          |<-- Trigger --                 
    |                   |                 +--------+--------------+  
    |                   |                 |  Authorize request    |  
    |                   |                 |  Keep session data    |  
    |                   |                 |/Authz-time,Session-Id/|  
    |                   |                 +--------+--------------+  
    |                   |                          |                 
    |                   |<-- - -- - RAR - - - - - -+                 
    |                   |(Request,Decision         |                 
    |                   |(QoS-Resources,Authz-time)|                 
    |           +-------+---------+                                 
    |           |Install QoS state|                                 
    |           |       +         |                                 
    |           | Authz. session  |                                 
    |           | /Authz-time/    |                 
    |           |                 |                            
    |           +-------+---------+                                
    |                   + - - - - RAA - - - - - ->|                 
    |                   |    (Result-Code,        |                 
    |                   |     QoS-Resources)      |                 
    |                   |                +--------+--------------+  
    |                   |                | Report for successful |  
    |                   |                |   QoS reservation     |  
    |                   |                |Update of reserved QoS |  
    |                   |                |      resources        |  
    |                   |                +--------+--------------+   
    |                   |                         |  
]]></artwork>
            </figure></t>
        </section>
      </section>

      <section anchor="session-termination" title="Session Termination">
        <section title="Client-Side Initiated Session Termination">
          <t>The authorization session for an installed QoS reservation state
          MAY be terminated by the Diameter client by sending a
          Session-Termination-Request message (STR) to the Diameter server
          with a response Session-Termination-Acknowledgement message (STA).
          This is a Diameter base protocol function and it is defined in <xref
          target="RFC3588"></xref>. Session termination can be caused by a QoS
          signaling messaging requesting deletion of the existing QoS
          reservation state or it can be caused as a result of a soft-state
          expiration of the QoS reservation state.</t>

          <t><figure anchor="fig-client-termination"
              title="Client-Side Initiated Session Termination">
              <artwork><![CDATA[
                                            Authorizing                   
  End-Host         Network Element             Entity                     
requesting QoS      ( Diameter              ( Diameter                    
                     QoS Client)             QoS Server)                  
    |                   |                         |                       
    |==Data Flow==>X /Stop of the data flow/      |                       
    |                   |                         |                       
    +---QoS-Reserve---->|                         |                       
    |  (Delete QoS      +- - - - - STR - - - - - >|                       
    |   reservation)    |                +--------+--------------+        
    |                   |                | Remove authorization  |        
    |                   |                | session state         |        
    |                   |                +--------+--------------+        
    |                   |< - - - - STA - - - - - -+                       
    |           +-------+--------+                |                       
    |           |Delete QoS state|                                        
    |           +-------+--------+                   QoS Responder        
    |                   |                                Node             
    |                   +----------QoS-Reserve-----....--->|              
    |                   |         (Delete QoS              |              
    |                   |          reservation)            |               
    |                   |<---------QoS-Response----....----+              
    |<--QoS-Response----+                                  |                      
]]></artwork>
            </figure></t>
        </section>

        <section title="Server-Side Initiated Session Termination">
          <t>At anytime during a session the AE MAY send an
          Abort-Session-Request message (ASR) to the NE. This is a Diameter
          base protocol function and it is defined in <xref
          target="RFC3588"></xref>. Possible reasons for initiating the ASR
          message to the NE are insufficient credits or session termination at
          the application layer. The ASR message results in termination of the
          authorized session, release of the reserved resources at the NE and
          transmission of an appropriate QoS signaling message indicating a
          notification to other Network Elements aware of the signaling
          session.</t>

          <t><figure anchor="fig-server-termination"
              title="Server-Side Initiated Session Termination">
              <artwork><![CDATA[
                                            Authorizing                   
  End-Host         Network Element             Entity                     
requesting QoS      ( Diameter              ( Diameter                    
                     QoS Client)             QoS Server)                  
    |                   |                         |                       
    |=====================Data Flow==========================>            
    |                   |                                                 
    |                   |< - - - - ASR - - - - - -+                       
    |                   |                         |                       
    |====Data Flow=====>X                         |  QoS Responder        
    |                   |                         |      Node             
    |<--QoS-Notify------+----------QoS-Reserve-----....--->|              
    |                   |         (Delete QoS     |        |              
                        |          reservation)   |                       
                +-------+--------+                |                       
                |Delete QoS state|                |                       
                +-------+--------+                |                       
                        +- - - - - ASA - - - - - >|                       
                        |                +--------+--------------+        
                        |                | Remove authorization  |        
                        |                |     session state     |        
                        |                +--------+--------------+        
                        |                            QoS Responder        
                        |                                Node             
                        |<---------QoS-Response----....----+              
                        |                                  |              
]]></artwork>
            </figure></t>
        </section>
      </section>
    </section>

    <!-- ====================================================================== -->

    <section anchor="qos_messages" title="QoS Application Messages">
      <t>The Diameter QoS application requires the definition of new mandatory
      AVPs and Command-codes (see Section 3 of <xref
      target="RFC3588"></xref>). Four new Diameter messages are defined along
      with Command-Codes whose values MUST be supported by all Diameter
      implementations that conform to this specification.</t>

      <texttable anchor="qos_commands" title="Diameter QoS Commands">
        <ttcol align="left">Command Name</ttcol>

        <ttcol align="center">Abbrev.</ttcol>

        <ttcol align="center">Code</ttcol>

        <ttcol align="left">Reference</ttcol>

        <c>QoS-Authorization-Request</c>

        <c>QAR</c>

        <c>[TBD1]</c>

        <c><xref target="QAR"></xref></c>

        <c>QoS-Authorization-Answer</c>

        <c>QAA</c>

        <c>[TBD2]</c>

        <c><xref target="QAA"></xref></c>

        <c>QoS-Install-Request</c>

        <c>QIR</c>

        <c>[TBD3]</c>

        <c><xref target="QIR"></xref></c>

        <c>QoS-Install-Answer</c>

        <c>QIA</c>

        <c>[TBD4]</c>

        <c><xref target="QIA"></xref></c>
      </texttable>

      <!--
      <t><figure>
          <artwork><![CDATA[
Command-Name                  Abbrev.        Code      Reference
QoS-Authorization-Request              QAR           [TBD1]    Section 5.1
QoS-Authorization-Answer               QAA           [TBD2]    Section 5.2
QoS-Install-Request            QIR           [TBD3]    Section 5.3
QoS-Install-Answer             QIA           [TBD4]    Section 5.4
]]></artwork>
        </figure></t>
-->

      <t>In addition, the following Diameter Base protocol messages are used
      in the Diameter QoS application:</t>

      <!--
      <t><figure>
          <artwork><![CDATA[
Command-Name                  Abbrev.        Code      Reference
Re-Auth-Request                RAR            258       RFC 3588
Re-Auth-Answer                 RAA            258       RFC 3588
Abort-Session-Request          ASR            274       RFC 3588
Abort-Session-Answer           ASA            274       RFC 3588
Session-Term-Request           STR            275       RFC 3588
Session-Term-Answer            STA            275       RFC 3588
]]></artwork>
        </figure></t>
-->

      <texttable anchor="base_messages" title="Diameter Base Commands">
        <ttcol align="left">Command-Name</ttcol>

        <ttcol align="center">Abbrev.</ttcol>

        <ttcol align="center">Code</ttcol>

        <ttcol align="left">Reference</ttcol>

        <c>Re-Auth-Request</c>

        <c>RAR</c>

        <c>258</c>

        <c><xref target="RFC3588"></xref></c>

        <c>Re-Auth-Answer</c>

        <c>RAA</c>

        <c>258</c>

        <c><xref target="RFC3588"></xref></c>

        <c>Abort-Session-Request</c>

        <c>ASR</c>

        <c>274</c>

        <c><xref target="RFC3588"></xref></c>

        <c>Abort-Session-Answer</c>

        <c>ASA</c>

        <c>274</c>

        <c><xref target="RFC3588"></xref></c>

        <c>Session-Term-Request</c>

        <c>STR</c>

        <c>275</c>

        <c><xref target="RFC3588"></xref></c>

        <c>Session-Term-Answer</c>

        <c>STA</c>

        <c>275</c>

        <c><xref target="RFC3588"></xref></c>
      </texttable>

      <t>Diameter nodes conforming to this specification MAY advertise support
      for the Diameter QoS application by including the value of [TBD5] in the
      Auth-Application-Id or the Acct-Application-Id AVP of the
      Capabilities-Exchange-Request and Capabilities-Exchange-Answer commands,
      see <xref target="RFC3588"></xref>.</t>

      <t>The value of {TBD5] MUST be used as the Application-Id in all QAR/QAA
      and QIR/QIA commands.</t>

      <t>The value of zero (0) SHOULD be used as the Application-Id in all
      STR/STA, ASR/ASA, and RAR/RAA commands.</t>

      <section anchor="QAR" title="QoS-Authorization Request (QAR)">
        <t>The QoS-Authorization-Request message (QAR) indicated by the
        Command-Code field (see Section 3 of <xref target="RFC3588"></xref>)
        set to [TBD1] and 'R' bit set in the Command Flags field is used by
        NEs to request quality of service related resource authorization for a
        given flow.</t>

        <t>The QAR message MUST carry information for signaling session
        identification, AE identification, information about the requested
        QoS, and the identity of the QoS requesting entity. In addition,
        depending on the deployment scenario, an authorization token and
        credentials of the QoS requesting entity SHOULD be included.</t>

        <t>The message format is defined as follows:</t>

        <t><figure>
            <artwork><![CDATA[
 <QoS-Request> ::= < Diameter Header: [TBD1], REQ, PXY >               
                      < Session-Id >                                
                      { Auth-Application-Id }                       
                      { Origin-Host }                               
                      { Origin-Realm }                              
                      { Destination-Realm }                         
                      { Auth-Request-Type }                         
                      [ Destination-Host ]                          
                      [ User-Name ]                                 
                   *  [ QoS-Resources ]      
                      [ QoS-Authorization-Data ]                   
                      [ Bound-Auth-Session-Id ]                     
                   *  [ AVP ]                                       
]]></artwork>
          </figure></t>
      </section>

      <section anchor="QAA" title="QoS-Authorization Answer (QAA)">
        <t>The QoS-Authorization-Answer message (QAA), indicated by the
        Command- Code field set to [TBD2] and 'R' bit cleared in the Command
        Flags field is sent in response to the QoS-Authorization-Request
        message (QAR). If the QoS authorization request is successfully
        authorized, the response will include the AVPs to allow authorization
        of the QoS resources and transport plane gating information.</t>

        <t>The message format is defined as follows:</t>

        <t><figure>
            <artwork><![CDATA[
 <QoS-Answer> ::= < Diameter Header: [TBD2], PXY >                     
                  < Session-Id >                                    
                  { Auth-Application-Id }                           
                  { Auth-Request-Type }                             
                  { Result-Code }                                   
                  { Origin-Host }                                   
                  { Origin-Realm }                                  
               *  [ QoS-Resources ]                   
                  [ Acct-Multisession-Id ]                           
                  [ Session-Timeout ]                               
                  [ Authorization-Session-Lifetime ]                        
                  [ Authorization-Grace-Period ]                            
               *  [ AVP ]                                           
]]></artwork>
          </figure></t>
      </section>

      <section anchor="QIR" title="QoS-Install Request (QIR)">
        <t>The QoS-Install Request message (QIR), indicated by the
        Command-Code field set to [TBD3] and 'R' bit set in the Command Flags
        field is used by AE to install or update the QoS parameters and the
        flow state of an authorized flow at the transport plane element.</t>

        <t>The message MUST carry information for signaling session
        identification or identification of the flow to which the provided QoS
        rules apply, identity of the transport plane element, description of
        provided QoS parameters, flow state and duration of the provided
        authorization.</t>

        <t>The message format is defined as follows:</t>

        <t><figure>
            <artwork><![CDATA[
 <QoS-Install-Request> ::= < Diameter Header: [TBD3], REQ, PXY >       
                           < Session-Id >                           
                           { Auth-Application-Id }                  
                           { Origin-Host }                          
                           { Origin-Realm }                         
                           { Destination-Realm }                    
                           { Auth-Request-Type }                    
                           [ Destination-Host ]                     
                        *  [ QoS-Resources ] 
                           [ Session-Timeout ]                      
                           [ Authorization-Session-Lifetime ]               
                           [ Authorization-Grace-Period ]                   
                           [ Authorization-Session-Volume ]                 
                        *  [ AVP ]                                  
]]></artwork>
          </figure></t>
      </section>

      <section anchor="QIA" title="QoS-Install Answer (QIA)">
        <t>The QoS-Install Answer message (QIA), indicated by the Command-Code
        field set to [TBD4] and 'R' bit cleared in the Command Flags field is
        sent in response to the QoS-Install Request message (QIR) for
        confirmation of the result of the installation of the provided QoS
        reservation instructions.</t>

        <t>The message format is defined as follows:</t>

        <t><figure>
            <artwork><![CDATA[
  <QoS-Install-Answer> ::= < Diameter Header: [TBD4], PXY >            
                           < Session-Id >                           
                           { Auth-Application-Id }                  
                           { Origin-Host }                          
                           { Origin-Realm }                         
                           { Result-Code }                          
                        *  [ QoS-Resources ]          
                        *  [ AVP ]                                  
]]></artwork>
          </figure></t>
      </section>

      <section anchor="RAR" title="Re-Auth-Request (RAR)">
        <t>The Re-Auth-Request message (RAR), indicated by the Command-Code
        field set to 258 and the 'R' bit set in the Command Flags field, is
        sent by the AE to the NE in order to initiate the QoS re-authorization
        from DQA server side.</t>

        <t>If the RAR command is received by the NE without any parameters of
        the re-authorized QoS state, the NE MUST initiate a QoS
        re-authorization by sending a QoS-Authorization-Request (QAR) message
        towards the AE.</t>

        <t>The message format is defined as follows:</t>

        <t><figure>
            <artwork><![CDATA[
      <RAR>  ::= < Diameter Header: 258, REQ, PXY >
                 < Session-Id >
                 { Origin-Host }
                 { Origin-Realm }
                 { Destination-Realm }
                 { Destination-Host }
                 { Auth-Application-Id }
                 { Re-Auth-Request-Type }
                 [ User-Name ]
                 [ Origin-State-Id ]
               * [ Proxy-Info ]
               * [ Route-Record ]
               * [ QoS-Resources ]   
                 [ Session-Timeout ]                      
                 [ Authorization-Session-Lifetime ]               
                 [ Authorization-Grace-Period ]                   
                 [ Authorization-Session-Volume ]                 
               * [ AVP ]
]]></artwork>
          </figure></t>
      </section>

      <section anchor="RAA" title="Re-Auth-Answer (RAA)">
        <t>The Re-Auth-Answer message (RAA), indicated by the Command-Code
        field set to 258 and the 'R' bit cleared in the Command Flags field,
        is sent by the NE to the AE in response to the RAR command.</t>

        <t>The message format is defined as follows:</t>

        <t><figure>
            <artwork><![CDATA[
      <RAA>  ::= < Diameter Header: 258, PXY >
                 < Session-Id >
                 { Result-Code }
                 { Origin-Host }
                 { Origin-Realm }
                 [ User-Name ]
                 [ Origin-State-Id ]
                 [ Error-Message ]
                 [ Error-Reporting-Host ]
               * [ Failed-AVP ]
               * [ Redirect-Host ]
                 [ Redirect-Host-Usage ]
                 [ Redirect-Host-Cache-Time ]
               * [ Proxy-Info ]
               * [ QoS-Resources ]          
               * [ AVP ]
]]></artwork>
          </figure></t>
      </section>
    </section>

    <!-- ====================================================================== -->

    <section anchor="QoS_state_machine" title="QoS Application State Machine">
      <t>The QoS application defines its own state machine that is based on
      the authorization state machine defined in Section 8.1 of the Base
      Protocol (<xref target="RFC3588"></xref>). The Qos state machine uses
      own messages as defined in <xref target="qos_messages"></xref> and QoS
      AVPs as defined in <xref target="avps"></xref>.</t>

      <section anchor="state_supplement"
               title="Supplemented States for Push Mode">
        <t>Using the Base Protocol state machine as a basis, the following
        states are supplemented to first 2 state machines in which the session
        state is maintained on the Server. These MUST be supported in any QoS
        application implementations in support of server initiated push mode
        (<xref target="push_setup">see</xref>).</t>

        <t>The following states are supplemented to the state machine on the
        Server when state is maintained on the client as defined in Section
        8.1 of the Base Protocol <xref target="RFC3588"></xref>:</t>

        <t><figure align="left">
            <artwork><![CDATA[                              SERVER, STATEFUL
      State     Event                          Action     New State
      -------------------------------------------------------------
      Idle      An application or local        Send       Pending
                event triggers an initial      QIR initial
                QoS request to the server      request

      Pending   Received QIA with a failed     Cleanup    Idle
                Result-Code

      Pending   Received QIA with Result-Code  Update     Open
                = SUCCESS                      session 
      Pending   Error in processing received   Send      Discon
                QIA with Result-Code = SUCCESS ASR

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

        <t>The following states are supplemented to the state machine on the
        client when state is maintained on the server as defined in Section
        8.1 of the Base Protocol <xref target="RFC3588"></xref>:</t>

        <t><figure align="left">
            <artwork><![CDATA[                              CLIENT, STATEFUL
      State     Event                          Action     New State
      -------------------------------------------------------------
      Idle      QIR initial request            Send       Open
                received and successfully      QIA initial
                processed                      answer,
                                               reserve resources

      Idle      QIR initial request            Send       Idle
                received but not               QIA initial
                successfully processed         answer with
                                               Result-Code
                                               != SUCCESS                                       
]]></artwork>
          </figure></t>
      </section>
    </section>

    <!-- ====================================================================== -->

    <section anchor="avps" title="QoS Application AVPs">
      <t>Each of the AVPs identified in the QoS-Authorization-Request/Answer
      and QoS-Install-Request/Answer messages and the assignment of their
      value(s) is given in this section.</t>

      <section anchor="diameter-base-avps" title="Reused Base Protocol AVPs">
        <t>The QoS application uses a number of session management AVPs,
        defined in the Base Protocol (<xref target="RFC3588"></xref>).</t>

        <t><figure>
            <artwork><![CDATA[
Attribute Name                AVP Code     Reference [RFC3588]
Origin-Host                   264          Section 6.3
Origin-Realm                  296          Section 6.4
Destination-Host              293          Section 6.5
Destination-Realm             283          Section 6.6
Auth-Application-Id           258          Section 6.8
Result-Code                   268          Section 7.1
Auth-Request-Type             274          Section 8.7
Session-Id                    263          Section 8.8
Authorization-Lifetime        291          Section 8.9
Authorization-Grace-Period    276          Section 8.10
Session-Timeout                27          Section 8.13
User-Name                       1          Section 8.14
]]></artwork>
          </figure></t>

        <t>The Auth-Application-Id AVP (AVP Code 258) is assigned by IANA to
        Diameter applications. The value of the Auth-Application-Id for the
        Diameter QoS application is TBD.</t>
      </section>

      <section anchor="qos-new-avps" title="QoS Application Defined AVPs">
        <t></t>

        <t>This document reuses the AVPs defined in Section 4 of <xref
        target="I-D.ietf-dime-qos-attributes"></xref>.</t>

        <t>This section lists the AVPs that are introduced specifically for
        the QoS application. The following new AVPs are defined:
        Bound-Auth-Session-Id and the QoS-Authorization-Data AVP.</t>

        <t>The following table describes the Diameter AVPs newly defined in
        this document for usage with the QoS Application, their AVP code
        values, types, possible flag values, and whether the AVP may be
        encrypted.</t>

        <t><figure>
            <artwork><![CDATA[
                                               +-------------------+
                                               |    AVP Flag rules |
+----------------------------------------------|----+--------+-----+
|                       AVP  Section           |    |    SHLD| MUST|
| Attribute Name        Code Defined Data Type |MUST|     NOT|  NOT|
+----------------------------------------------+----+--------+-----+
|QoS-Authorization-Data TBD    7.2  OctetString| M  |        |  V  |
|Bound-Auth-Session-Id  TBD    7.2  UTF8String | M  |        |  V  |
+----------------------------------------------+----+--------+-----+
|M - Mandatory bit. An AVP with "M" bit set and its value MUST be  |
|    supported and recognized by a Diameter entity in order the    |
|    message, which carries this AVP, to be accepted.              |
|V - Vendor specific bit that indicates whether the AVP belongs to |
|    a address space.                                              |
+------------------------------------------------------------------+
]]></artwork>
          </figure></t>

        <t></t>

        <t><list style="hanging">
            <t hangText="QoS-Authorization-Data"><vspace blankLines="0" /> The
            QoS-Authorization-Data AVP (AVP Code TBD) is of type OctetString.
            It is a container that carries application session or user
            specific data that has to be supplied to the AE as input to the
            computation of the authorization decision. <vspace
            blankLines="1" /></t>

            <t hangText="Bound-Authentication-Session-Id"><vspace
            blankLines="0" /> The Bound-Authentication-Session AVP (AVP Code
            TBD) is of type UTF8String. It carries the id of the Diameter
            authentication session that is used for the network access
            authentication (NASREQ authentication session). It is used to tie
            the QoS authorization request to a prior authentication of the end
            host done by a co-located application for network access
            authentication (Diameter NASREQ) at the QoS NE. <vspace
            blankLines="1" /></t>
          </list></t>
      </section>
    </section>

    <!-- ====================================================================== -->

    <section anchor="accounting" title="Accounting">
      <t>A NE MAY start an accounting session by sending an Accounting-Request
      message (ACR) after successful QoS reservation and activation of the
      data flow (see <xref target="fig-initial-qos-request-pull"></xref> and
      <xref target="fig-initial-qos-request-push"></xref>). After every
      successful re-authorization procedure (see <xref
      target="fig-qos-request-re-authz"></xref> and <xref
      target="fig-qos-re-auth-server-side"></xref>), the NE MAY initiate an
      interim accounting message exchange. After successful session
      termination (see <xref target="fig-client-termination"></xref> and <xref
      target="fig-server-termination"></xref>), the NE may initiate a final
      exchange of accounting messages for terminating of the accounting
      session and reporting final records for the usage of the QoS resources
      reserved. It should be noted that the two sessions (authorization and
      accounting) have independent management by the Diameter base protocol,
      which allows for finalizing the accounting session after the end of the
      authorization session.</t>

      <t>The detailed QoS accounting procedures are out of scope in this
      document.</t>
    </section>

    <!-- ====================================================================== -->

    <section anchor="examples" title="Examples">
      <section anchor="example_pull" title="Example Call Flow for Pull Mode">
        <t>This section presents an example of the interaction between the end
        host and Diameter QoS application entities using Pull mode. The
        application layer signaling is, in this example, provided using SIP.
        Signaling for a QoS resource reservation is done using the QoS NSLP.
        The authorization of the QoS reservation request is done by the
        Diameter QoS application (DQA).<figure anchor="fig-example-pull"
            title="QoS Authorization Example - Pull Mode">
            <artwork><![CDATA[
  End-Host                                 SIP Server  Correspondent
requesting QoS                            (DQA Server)        Node  
                                                                    
      |                                          |              |   
    ..|....Application layer SIP signaling.......|..............|.. 
    . |  Invite (SDP)                            |              | . 
    . +.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.->              | . 
    . |  100 Trying                              |              | . 
    . <.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-+  Invite (SDP)| . 
    . |                                          +-.-.-.....-.-.> . 
    . |                                          |  180 SDP'    | . 
    . |                                          <-.-.-.....-.-.+ . 
    . |                                 +--------+--------+     | . 
    . |                                 |Authorize session|     | . 
    . |                                 |   parameters    |     | . 
    . | 180 (Session parameters)        +--------+--------+     | . 
    . <.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-+              | . 
    ..|..........................................|... ..........|.. 
      |                                          |              |   
      |           +------------+                 |              |   
      |           |     NE     |                 |              |   
      |           |(DQA Client)|                 |              |   
      |           +------+-----+                 |              |   
      |                  |                       |              |   
      |QoS NSLP Reserve  |                       |              |   
      +------------------> QAR                   |              |   
      | (POLICY_DATA>v   +- - - - -<<AAA>>- - - ->              |   
      |  QSPEC)  v   >===>(Destination-Host,     |              |   
      |      v   >=======>QoS-Authorization-Data++------------+ |   
      |      >===========>QoS-Resources)        |Authorize    | |   
      |                  |                      |QoS resources| |   
      |                  |                      ++------------+ |   
      |                  | QAA                   |              |   
      |                  <- - - - -<<AAA>>- - - -+              |   
      |                  |(Result-Code,          |              |   
      |                  |QoS-Resources,         |              |   
      |                  |Authorization-Lifetime)|              |   
      |        +---------+--------+              |              |   
      |        |Install QoS state1|              |              |   
      |        |+ Authz. session  |              |              |   
      |        +---------+--------+              |              |   
      |                  |QoS NSLP Reserve                      |   
      |                  +---------------..............--------->   
      |                  |                                      |   
      |                  |                     QoS NSLP Response|   
      |QoS NSLP Response <---------------..............---------+   
      <------------------+                                      |   
      |                  |                        QoS NSLP Query|   
      |QoS NSLP Query    <---------------..............---------+   
      <------------------+                                      |   
      |QoS NSLP Reserve  |                                      |   
      +------------------> QAR                   |              |   
      |                  +- - - - -<<AAA>>- - - ->              |   
      |                  |                   +---+---------+    |   
      |                  |                   |Authorize    |    |   
      |                  |                   |QoS resources|    |   
      |                  | QAA               +---+---------+    |   
      |                  <- - - - -<<AAA>>- - - -+              |   
      |        +---------+--------+              |              |   
      |        |Install QoS state2|                             |   
      |        |+ Authz. session  |                             |   
      |        +---------+--------+                             |   
      |                  |  QoS NSLP Reserve                    |   
      |                  +---------------..............--------->   
      |                  |                     QoS NSLP Response|   
      |QoS NSLP Response <---------------..............---------+   
      <------------------+                                      |   
      |                  |                                      |   
      /------------------+--Data Flow---------------------------\   
      \------------------+--------------------------------------/   
      |                  |                                      |   
                                                                    
                                                                    
      .-.-.-.-.  SIP signaling                                      
      ---------  QoS NSLP signaling                                 
      - - - - -  Diameter QoS Application messages                  
      =========  Mapping of objects between QoS and AAA protocol    
]]></artwork>
          </figure></t>

        <t>The communication starts with SIP signaling between the two end
        points and the SIP server for negotiation and authorization of the
        requested service and its parameters (see <xref
        target="fig-example-pull"></xref>). As a part of the process, the SIP
        server verifies whether the user at Host A is authorized to use the
        requested service (and potentially the ability to be charged for the
        service usage). Negotiated session parameters are provided to the end
        host.</t>

        <t>Subsequently, Host A initiates a QoS signaling message towards Host
        B. It sends a QoS NSLP Reserve message, in which it includes
        description of the required QoS (QSPEC object) and authorization data
        for negotiated service session (part of the POLICY_DATA object).
        Authorization data includes, as a minimum, the identity of the AE
        (e.g., the SIP server) and an identifier of the application service
        session for which QoS resources are requested.</t>

        <t>A QoS NSLP Reserve message is intercepted and processed by the
        first QoS aware Network Element. The NE uses the Diameter QoS
        application to request authorization for the received QoS reservation
        request. The identity of the AE (in this case the SIP server that is
        co-located with a Diameter server) is put into the Destination-Host
        AVP, any additional session authorization data is encapsulated into
        the QoS-Authorization-Data AVP and the description of the QoS
        resources is included into QoS-Resources AVP. These AVPs are included
        into a QoS Authorization Request message, which is sent to the AE.</t>

        <t>A QAR message will be routed through the AAA network to the AE. The
        AE verifies the requested QoS against the QoS resources negotiated for
        the service session and replies with QoS-Authorization answer (QAA)
        message. It carries the authorization result (Result-Code AVP) and the
        description of the authorized QoS parameters (QoS-Resources AVP), as
        well as duration of the authorization session (Authorization-Lifetime
        AVP).</t>

        <t>The NE interacts with the traffic control function and installs the
        authorized QoS resources and forwards the QoS NSLP Reserve message
        further along the data path. Moreover, the NE may serve as a signaling
        proxy and process the QoS signaling (e.g., initiation or termination of
        QoS signaling) based on the QoS decision received from the authorizing
        entity.</t>
      </section>

      <section anchor="example_push" title="Example Call Flow for Push Mode">
        <t>This section presents an example of the interaction between the
        end-host and Diameter QoS application entities using Push mode. The
        application layer signaling is, in this example, provided using SIP.
        Signaling for a QoS resource reservation is done using the QoS NSLP.
        The authorization of the QoS reservation request is done by the
        Diameter QoS application (DQA).<figure anchor="fig-example-push"
            title="QoS Authorization Example - Push Mode">
            <artwork><![CDATA[
  End-Host              NE                  SIP Server  Correspondent
requesting QoS      (DQA Client)           (DQA Server)        Node  
                                                                  
      |                  |                          |              |   
    ..|....Application layer SIP signaling..........|..............|.. 
    . | Invite(SDP offer)|                          |              | . 
    . +.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.>              | . 
    . |  100 Trying      |                          |              | . 
    . <.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.+              | . 
    . |.............................................|..............| . 
      |                  |                +---------+-------------+|  
      |                  |                |  Authorize request    ||  
      |                  |                |  Keep session data    ||  
      |                  |                |/Authz-time,Session-Id/||  
      |                  |                +---------+-------------+|  
      |                  |                          |              |   
      |                  |<-- - -- - QIR - -- - -- -+              |   
      |                  |(Initial Request,Decision |              |   
      |                  |(QoS-Resources,Authz-time)|              |   
      |          +-------+---------+                |              |   
      |          |Install QoS state|                |              |   
      |          |       +         |                |              |   
      |          | Authz. session  |                |              |   
      |          | /Authz-time/    |                |              |
      |          +-------+---------+                |              |  
      |                  + - - -- - QIA - - - - - ->|              |    
      |                  |     (Result-Code,        |              |   
      |                  |      QoS-Resources)      |              |   
      |                  |               +----------+------------+ | 
      |                  |               | Report for successful | | 
      |                  |               |   QoS reservation     | | 
      |                  |               |Update of reserved QoS | | 
      |                  |               |      resources        | | 
      |                  |               +----------+------------+ |
    . |                  |                          | Invite (SDP) | .
    . |                  |                          +-.-.-.....-.-.> . 
    . | 180 (Ringing)                               |              | . 
    . <.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.<.-.-.-.-.-.-.-+ . 
    . |                  |                          |  200 OK (SDP)| . 
    . |                  |                          <-.-.-.....-.-.+ . 
      |                  |                 +--------+-----------+  |  
      |                  |                 |re-Authorize session|  |  
      |                  |                 |   parameters       |  | 
      |                  |                 +--------+-----------+  |  
      |                  <- - - - - - RAR - - - - - +              |   
      |        +---------+--------+                 |              |   
      |        |Activate QoS state|                 |              |   
      |        +---------+--------+                 |              |   
      |                  +- - - - - - RAA - - - - - >              |   
    . | 200 (SDP answer) |                          |              | . 
    . <.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.+              | . 
      |                  |                                         |   
      /------------------+-----Data Flow---------------------------\   
      \------------------+-----------------------------------------/   
      |                  |                                         |   
                                                                                                     
      .-.-.-.-.  SIP signaling                
      - - - - -  Diameter QoS Application messages                  
]]></artwork>
          </figure></t>

        <t>The communication starts with SIP signaling between the two end
        points and the SIP server for negotiation and authorization of the
        requested service and its parameters (see <xref
        target="fig-example-push"></xref>). As a part of the process, the SIP
        server verifies whether the user at Host A is authorized to use the
        requested service (and potentially the ability to be charged for the
        service usage). The DQA server is triggered to authorize the QoS
        request based on session parameters (i.e., SDP offer), initiate a
        Diameter QoS authorization session and install authorized QoS state to
        the Network Element via QIR message.</t>

        <t>The DQA server may obtain the info of peer DQA client from
        pre-configured information or query the DNS based on Host A's identity
        or IP address (In this case a DQA server is co-located with a SIP
        server and a DQA client is co-located with a NE). The identity of
        Network Element is put into the Destination-Host AVP, the description
        of the QoS resources is included into QoS-Resources AVP, as well as
        duration of the authorization session (Authorization-Lifetime AVP).
        The NE interacts with the traffic control function and reserves the
        authorized QoS resources accordingly, for instance, the NE may serve
        as a signaling proxy and process the QoS signaling (e.g., initiation or
        termination of QoS signaling) based on the QoS decision received from
        the authorizing entity.</t>

        <t>With successful QoS authorization, the SDP offer in SIP Invite is
        forwarded to Host B. Host B sends back a 18x (ringing) message towards
        Host A and processes the SDP. Once Host B accepts the call, it sends
        back a 200 OK, in which it includes description of the accepted
        session parameters (i.e., SDP answer).</t>

        <t>The DQA server may verify the accepted QoS against the
        pre-authorized QoS resources, and sends a Diameter RAR message to the
        DQA client in the NE for activating the installed policies and commit
        the resource allocation. With successful QoS enforcement, the 200 OK
        is forwarded towards Host A.</t>

        <t>Note that the examples above show a sender-initiated reservation
        from the end host towards the corresponding node and a
        receiver-initiated reservation from the correspondent node towards the
        end host.</t>
      </section>
    </section>

    <!-- ====================================================================== -->

    <section anchor="iana" title="IANA Considerations">
      <t>This section contains the namespaces that have either been created in
      this specification or had their values assigned to existing namespaces
      managed by IANA.</t>

      <section title="AVP Codes">
        <t>IANA is requested to allocate two AVP codes to the registry defined in <xref target="RFC3588"/>:</t>

        <t><figure>
            <artwork><![CDATA[       
Registry:
AVP Code         AVP Name                      Reference
-----------------------------------------------------------
to be assigned   QoS-Authorization-Data        Section 7.2
to be assigned   Bound-Auth-Session-Id         Section 7.2  
]]></artwork>
          </figure></t>
      </section>

	  <!-- 
      <section title="AVP Specific Values">
        <t>IANA is requested to allocate the following sub-registry
        values.</t>

        <t><figure>
            <artwork><![CDATA[       
Sub-registry: Auth-Application-Id  AVP Values (code 258)
Registry:
AVP Values          Attribute Name             Reference
-------------  -------------------------------------------
to be assigned     DIAMETER-QOS-NOSUPPORT      Section 5
to be assigned     DIAMETER-QOS-SUPPORT        Section 5
]]></artwork>
          </figure></t>

        <t><figure>
            <artwork><![CDATA[       
Sub-registry: Acct-Application-Id   AVP Values (code 259)
Registry:
AVP Values          Attribute Name             Reference
-------------  -------------------------------------------
to be assigned     DIAMETER-QOS-NOSUPPORT      Section 5
to be assigned     DIAMETER-QOS-SUPPORT        Section 5
]]></artwork>
          </figure></t>
      </section>
--> 
	  <!-- 
      <section title="AVP Flags">
        <t>There are no new AVP flags defined for either the
        QoS-Authorization-Data AVP or the Bound-Ath-Session-ID AVP.</t>
      </section>
--> 

      <section title="Application IDs">
        <t>IANA is requested to allocate the following application ID from the registry defined 
		in <xref target="RFC3588"/> (using
        the next available value from the 7-16777215 range). <figure>
            <artwork><![CDATA[     
Registry:
ID values           Name                         Reference
-----------------------------------------------------------
to be assigned      Diameter QoS application     Section 5
]]></artwork>
          </figure></t>
      </section>

      <section title="Command Codes">
        <t>IANA is requested to allocate command code values from the registry defined 
		in <xref target="RFC3588"/>.</t>

        <t><figure>
            <artwork><![CDATA[
Registry:
Code Value  Name                                Reference
-----------------------------------------------------------
TBD         QoS-Authorization-Request (QAR)     Section 5.1
TBD         QoS-Authorization-Answer  (QAA)     Section 5.2
TBD         QoS-Install-Request (QIR)           Section 5.3
TBD         QoS-Install-Answer (QIA)            Section 5.4
]]></artwork>
          </figure></t>
      </section>
    </section>

    <!-- ====================================================================== -->

    <section anchor="security" title="Security Considerations">
      <t>This document describes a mechanism for performing authorization of a
      QoS reservation at a third party entity. The Authorizing Entity needs sufficient information to make
      such an authorization decision. Information may come from various
      sources, including the application layer signaling, the Diameter
      protocol (with its security mechanisms), from policy information stored
      available with a AAA server and from a QoS signaling protocol.</t>

      <t>Below there is a discussion about considerations for the Diameter QoS
      interaction between an Authorizing Entity and a Network Element.
      Security between the Authorizing Entity and the Network Element has a
      number of components: authentication, authorization, integrity and
      confidentiality.</t>

      <t>Authentication refers to confirming the identity of an originator for
      all datagrams received from the originator. Lack of authentication of
      Diameter messages between the Authorizing Entity and the Network Element
      can seriously jeopardize the fundamental service rendered by the Network
      Element. A consequence of not authenticating the message sender by the
      Network Element would be that an attacker could spoof the identity of a
      "legitimate" Authorizing Entity in order to allocate resources, change
      resource assignments or free resources. The adversary can also
      manipulate the state at the Network Element in such a way that it leads
      to a denial of service attack by, for example, setting the allowed
      bandwidth to zero or allocating the entire bandwidth available to a
      single flow.</t>

      <t>A consequence of not authenticating the Network Element to an
      Authorizing Entity is that an attacker could impact the policy based
      admission control procedure operated by the Authorizing Entity that
      provides a wrong view of the resources used in the network. Failing to
      provide the required credentials should be subject to logging.</t>

      <t>Authorization refers to whether a particular Authorizing Entity is
      authorized to signal a Network Element with requests for one or more
      applications, adhering to a certain policy profile. Failing the
      authorization process might indicate a resource theft attempt or failure
      due to administrative and/or credential deficiencies. In either case,
      the Network Element should take the proper measures to log such
      attempts.</t>

      <t>Integrity is required to ensure that a Diameter message has not been
      maliciously altered. The result of a lack of data integrity enforcement
      in an untrusted environment could be that an imposter will alter the
      messages exchanged between a Network Entity and an Authorizing Entity
      potentially causing a denial of service.</t>

      <t>Confidentiality protection of Diameter messages ensures that the
      signaling data is accessible only to the authorized entities. When
      signaling messages from the Application Server, via the Authorizing
      Entity towards the Network Element traverse untrusted networks, lack of
      confidentiality will allow eavesdropping and traffic analysis.
      Additionally, Diamater QoS messages may carry authorization tokens that
      require confidentiality protection.</t>

      <t>Diameter offers security mechanisms to deal with the functionality
      demanded in the paragraphs above. In particular, Diameter offers
      communication security between neighboring Diameter peers using
      Transport Layer Security (TLS) or IPsec. Authorization capabilities are
      application specific and part of the overal implementation.</t>
    </section>

    <!-- ====================================================================== -->

    <section title="Acknowledgements">
      <t>The authors would like to thank John Loughney and Allison Mankin for
      their input to this document. In September 2005 Robert Hancock, Jukka
      Manner, Cornelia Kappler, Xiaoming Fu, Georgios Karagiannis and Elwyn
      Davies provided a detailed review. Robert also provided us with good
      feedback earlier in 2005. Jerry Ash provided us review comments late
      2005/early 2006. Rajith R provided some inputs to the document early
      2007.</t>
	  <t>We would also like to thanks Alexey Melnikov, Adrian Farrel, and 
	  Robert Sparks for their IESG reviews.</t>	  
    </section>

    <!-- ====================================================================== -->

    <section anchor="contributors" title="Contributors">
      <t>The authors would like to thank Tseno Tsenov and Frank Alfano for
      starting the Diameter Quality of Service work within the IETF, for your
      significant draft contributions and for being the driving force for the
      first few draft versions.</t>
    </section>
  </middle>

  <!-- ====================================================================== -->

  <back>
    <references title="Normative References">
      &RFC2119;


      &RFC3588;

      &RFC4005;

      &I-D.ietf-dime-qos-attributes;

      &RFC5624;
    </references>

    <references title="Informative References">
      &I-D.ietf-nsis-qos-nslp;

      &RFC4566;

      &RFC2211;

      &RFC2212;

      &RFC2205;

      &RFC2753;

      &RFC2865;

      &RFC3521;

      &RFC3313;

      &I-D.ietf-nsis-ntlp;

      &RFC3520;

      &RFC2474;

      &RFC5246;

      &RFC4282;

      &RFC3261;
    </references>

    <!-- ====================================================================== -->
  </back>
</rfc>

PAFTECH AB 2003-20262026-04-23 09:32:24