One document matched: draft-ietf-dime-diameter-qos-04.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 RFC2234 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2234.xml">
<!ENTITY RFC3588 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3588.xml">
<!ENTITY RFC4006 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4006.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-dime-qos-parameters SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-dime-qos-parameters.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 RFC2749 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2749.xml">
<!ENTITY RFC2210 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2210.xml">
<!ENTITY RFC2753 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2753.xml">
<!ENTITY RFC4027 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4027.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 I-D.ietf-nsis-ntlp SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-nsis-ntlp.xml">
<!ENTITY RFC3520 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3520.xml">
<!ENTITY RFC2486 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2486.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-04.txt"
     ipr="full3978">
  <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-700 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>dongsun@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 initials="H." surname="Tschofenig" fullname="Hannes 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@nsn.com</email>
        <uri>http://www.tschofenig.com</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.W." surname="Zorn">
      <organization>Aruba Networks</organization>

      <address>
        <postal>
          <street>1322 Crossman Avenue</street>

          <city>Sunnyvale</city>

          <region>CA</region>

          <code>94089-1113</code>

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

        <email>gwz@arubanetworks.com</email>
      </address>
    </author>

    <date year="2008" />

    <area>Operations and Management Area</area>

    <keyword>AAA, QoS, VoIP, SIP</keyword>

    <abstract>
      <t>This document describes 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 - Pull and Push are defined.</t>
    </abstract>
  </front>

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

    <section anchor="introduction" title="Introduction">
      <t>This document describes framework, messages and procedures for the
      Diameter 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>In particular, two modes of operation are defined. In the first,
      called "Pull Mode", the network element pro-actively sends a command to
      the Diameter server for QoS authorization 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
      SIP-based (Session Initiation Protocol) call control.</t>

      <t>A set of command codes pertinent to this QoS application are
      specified that allows a single Diameter application to support both Pull
      and Push modes based on the requirements of network technologies,
      deployment scenarios and end-host's capabilities. In conjunction with
      parameters defined in <xref
      target="I-D.ietf-dime-qos-attributes"></xref> and in <xref
      target="I-D.ietf-dime-qos-parameters"></xref>, this document depicts
      basic call flow procedures to establish, modify and terminate a Diameter
      QoS application session.</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="Diameter QoS Application Server"><vspace
          blankLines="1" /> A Diameter QoS application server is a logical
          Diameter node that supports the protocol interaction for QoS
          authorization. The Diameter QoS application server resides in the
          authorizing entity (AE). In the Pull mode, it responds to a Diameter
          session initiated by a Diameter QoS application client; in the Push
          mode, it initiates a Diameter session to a Diameter QoS application
          client triggered by application signaling or local events.<vspace
          blankLines="1" /></t>

          <t hangText="Diameter QoS Application Client"><vspace
          blankLines="1" /> A Diameter QoS application client is a logical
          Diameter node that supports the protocol interaction for QoS
          enforcement. The Diameter QoS client resides in the network element.
          In the Pull mode, it initiates a Diameter session to the Diameter
          QoS application server triggered by a QoS signaling or other events;
          in the Push mode, it responds to a Diameter session initiated by a
          Diameter QoS server.<vspace blankLines="1" /></t>

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

          <t hangText="Application Server"><vspace blankLines="1" /> An
          application server is a network entity that exchanges signaling
          messages with an application endpoint. 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="Application Endpoint"><vspace blankLines="1" /> 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="Authorizing Entity"><vspace blankLines="1" /> The
          authorizing entity acts as a Diameter server (and may collocate with
          a subscriber database) responsible for authorizing QoS requests for
          a particular application flow or aggregate. It may be a standalone
          entity or integrated with an application server. This entity
          corresponds to the Policy Decision Point (PDP) (see <xref
          target="RFC2753"></xref>).<vspace blankLines="1" /></t>

          <t hangText="AAA Cloud"><vspace blankLines="1" /> An infrastructure
          of AAA entities (clients, agents, servers) based on a AAA protocol,
          which provides trusted secure connections between them. It offers
          authentication, authorization and accounting services to
          applications in flexible local and roaming scenarios. Diameter <xref
          target="RFC3588"></xref> and RADIUS <xref target="RFC2865"></xref>
          are both widely deployed AAA protocols. <vspace
          blankLines="1" /></t>

          <t hangText="Network Element (NE)"><vspace blankLines="1" /> QoS
          aware router that acts as Diameter client that implements the
          Diameter QoS application in the context of this document. For almost
          all scenarios this entity triggers the protocol interaction
          described in this document. This entity corresponds to the Policy
          Enforcement Point (PEP) (see <xref target="RFC2753"></xref>).<vspace
          blankLines="1" /></t>

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

          <t hangText="Push Mode"><vspace blankLines="1" />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>
        </list></t>
    </section>

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

    <section anchor="architecture" title="Framework">
      <t>The Diameter QoS application runs between a network element (acting
      as a Diameter client) and the resource authorizing entity (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 network elements through
      which media flows need to pass, a cloud of AAA servers, and an
      authorizing entity. 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, QoS aware network elements may request
      authorization through the AAA cloud based on an incoming QoS reservation
      request. The network element will route the request to a designated
      authorizing entity. The authorizing entity 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 application servers. After receiving the authorization request from
      the application server or the network element, the authorizing entity
      decides the appropriate mode (i.e. Push or Pull). The Push or Pull mode
      can be dynamically determined based on the information received from the
      request of the application server and/or the information (e.g. policy)
      in the authorizing entity, or statically configured according to
      operator's demand, or the messages between AE and NE. The Authorizing
      Entity may identify the access network through the use of some
      out-of-band signaling, such as SIP, Diameter, which may be sent from the
      application server to Authorizing Entity, and then select appropriate
      resource admission and control policies.</t>

      <t>If defined properly, the interface between the routers and AAA cloud
      would be identical in both cases. Routers are therefore insulated from
      the details of particular applications and need not know that
      application servers are involved at all. Also, the AAA cloud would
      naturally encompass business relationships such as those between network
      operators and third-party application providers, enabling 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 for available
        resources and determines whether there are enough resources to fulfill
        the request. Authorization is performed by the Diameter client
        function 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 requested QoS
        (depending on the authorization decision). Once the requested resource
        is granted, the Resource Management function provides accounting
        information to the Authorizing entity using the Diameter client
        function.</t>
      </section>

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

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

        <section title="Category">
          <t>The QoS capabilities of endpoints are varied, which can be
          categorized as follows: <list style="symbols">
              <t>Category 1 endpoint: Has no QoS capability at both
              application and network levels. This type of endpoint may set up
              a connection through application signaling, but it is unable to
              specify any resource/QoS requirements either through application
              signaling or does not support network signaling at all.</t>

              <t>Category 2 endpoint: Only has QoS capability at the
              application level. This type of endpoint is able to set up a
              connection through application signaling with certain
              resource/QoS requirements (e.g., application attributes), but it
              is unable to specify any network level resource/QoS requirements
              (e.g., network QoS class) through network signaling e.g., RSVP
              or NSIS (or does not support network layer signaling at
              all).</t>

              <t>Category 3 endpoint: Has QoS capability at the network level.
              This type of endpoint may set up a connection through
              application signaling and translate service characteristics into
              network resource/QoS requirements (e.g., network QoS class)
              locally, and request the resources through network signaling,
              e.g., RSVP or NSIS.</t>
            </list></t>
        </section>

        <section title="Interaction modes between authorizing entity and network element">
          <t>Different QoS mechanisms are employed in packet networks. Those
          QoS mechanisms can be categorized into two schemes: IntServ and
          DiffServ. In the IntServ scheme, network signaling (e.g., RSVP,
          NSIS, or link specific signaling) is commonly used to initiate a
          request from endpoint for desired QoS resource of media flow. In the
          DiffServ scheme, the QoS resources are provisioned based on some
          predefined QoS service classes instead of endpoint initiated per
          flow based QoS request.</t>

          <t>It is obvious that the eligible QoS scheme is correlated to the
          endpoint's capability in the context of QoS authorization. Since
          category 1 and 2 endpoints cannot initiate the QoS resource requests
          through the network signaling, the IntServ model is not applicable
          to them in general. Depending on network technology and
          operator’s demand, a category 3 endpoint may either make use
          of the network signaling for requesting the resource or not perform
          the request.</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 network elements.
          When the IntServ scheme is employed by category 3 endpoint, the
          authorization process is typically initiated by network element when
          a trigger such as the network signaling is received from the
          endpoint. In the DiffServ scheme, since the network element is
          unable to request the resource authorization on its own initiative,
          the authorization process is typically triggered upon either the
          request of application servers 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="symbols">
              <t>Push mode: The QoS authorization process is triggered by
              application servers or local network conditions (e.g., time of
              day on resource usage and QoS classes), and the authorization
              decisions are installed by the authorizing entity to the network
              element on its own initiative without explicit request. In order
              to support the push mode, the authorizing entity (i.e., Diameter
              server) should be able to initiate a Diameter authorization
              session to communicate with the network element (i.e., Diameter
              client) without any pre-established connection from the network
              element.</t>

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

          <t>For category 1 and 2 endpoints, the Push mode is required, in
          particular, category 1 endpoint requires network initiated push mode
          and category 2 endpoint may use both them. For category 3 endpoint,
          either push mode or pull mode is doable.</t>

          <t>The Push mode is applicable to certain networks, for example,
          Cable network, DSL, Ethernet, Diffserv enabled IP/MPLS as defined by
          other SDOs, e.g., ETSI TISPAN and ITU-T. The Pull mode is more
          appropriate to IntServ enabled IP networks or certain wireless
          networks such as GPRS networks as defined by 3GPP/PP2. Some
          networks, e.g., WiMAX may require both Push and Pull modes.</t>
        </section>
      </section>

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

        <section anchor="authz_models" title="Schemes for pull mode">
          <t>Three basic authorization schemes for pull mode exist: one
          two-party and two three-party schemes. The notation adopted here is
          in respect to the entity that performs the QoS authorization. The
          authentication of the QoS requesting entity might be done at the
          network element as part of the QoS signaling protocol, or by an
          off-path protocol run (on the application layer or for network
          access authentication) or the authorizing entity 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 '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>). With the 'two
          party scheme' the QoS resource requesting entity is authenticated by
          the Network Element and the authorization decision is made either
          locally at the Network Element itself or offloaded to a trusted
          entity (most likely within the same administrative domain). In the
          former case no Diameter QoS protocol interaction is required.</t>

          <t><figure anchor="fig-three-party-approach"
              title="Three Party Scheme">
              <artwork><![CDATA[
                                     +--------------+                     
                                     | 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>With the 'three party scheme' a QoS reservation request that
          arrives at the Network Element is forwarded to the Authorizing
          Entity (e.g., in the user's home network), where the authorization
          decision is made. 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 Network Element or the Authorizing Entity.</t>

          <t>The QoS resource requesting entity may be involved in an
          application layer protocol interaction, for example using SIP, with
          the Authorizing Entity. 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 Authorizing Entity (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
          Network Element 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 the authorization decision performed
          at the application layer protocol run to 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 of the Authorizing Entity (for example, of an
              application server) 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 Authorizing entity, 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 resource requesting entity where it might receive media
          streams, for example in SIP/SDP signalling these port numbers are
          advertised. The QoS resource requesting entity 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
          Authorizing entity in the QoS authz. request. The Authorizing entity
          will use the QoS resource requesting entity'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 authz.
          response.</t>
        </section>

        <section title="Schemes for push mode">
          <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 application server upon
          explicit QoS request from endpoints through application signaling,
          e.g. SIP; in the latter case, the authorization process is triggered
          by application server without explicit QoS request from
          endpoint.</t>

          <t>In the endpoint initiated scheme, the QoS resource requesting
          entity (i.e. endpoint) determines the required application level QoS
          and sends the QoS request through application signaling message, the
          Application Server will extract application level QoS information
          and trigger the authorization process to Authorizing entity. In the
          network initiated scheme, the Authorizing entity and/or Application
          server should derive and determine the QoS requirement according to
          application attribute, subscription and endpoint's capability when
          the endpoint does not explicitly indicate the QoS attributes. The
          authorizing entity makes authorization decision based on application
          level QoS information, network policies, end user subscription and
          network resource availability etc., and installs the decision to
          network element directly.</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
        compliant with different deployment scenarios with 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="Inter-domain support"><vspace blankLines="1" /> In
            particular, users may roam outside their home network, leading to
            a situation where the network element and authorizing entity are
            in different administrative domains.<vspace blankLines="1" /></t>

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

            <t hangText="Flexible Authentication Support"><vspace
            blankLines="1" /> The QoS AAA protocol 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="1" /> The QoS AAA protocol MUST exchange sufficient
            information between the authorizing entity 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="1" /> The QoS AAA protocol MUST allow periodic and
            event triggered execution of the authorization process, originated
            at the enforcing entity or even at the authorizing entity.<vspace
            blankLines="1" /></t>

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

            <t hangText="Dynamic Authorization"><vspace blankLines="1" /> It
            MUST be possible for the QoS AAA protocol to push updates towards
            the network element(s) from authorizing entities.<vspace
            blankLines="1" /></t>

            <t hangText="Bearer Gating"><vspace blankLines="1" /> The QoS AAA
            protocol MUST allow the authorizing entity 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="1" /> The QoS
            AAA protocol 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="1" />
            The network element 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="1" /> The
            QoS AAA protocol MUST allow the network element 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="1" /> The
            QoS AAA protocol may support the exchange of sufficient
            information to allow for correlation between accounting records
            generated by the network elements and accounting records generated
            by an application server.<vspace blankLines="1" /></t>

            <t hangText="Interaction with other AAA Applications"><vspace
            blankLines="1" /> Interaction with other AAA applications such as
            Diameter Network Access (NASREQ) application <xref
            target="RFC4005"></xref> is 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
        Authorizing Entity 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) handshake in
        the General Internet Signaling Transport (GIST) protocol, see <xref
        target="I-D.ietf-nsis-ntlp"></xref>).</t>

        <t>Authentication of the QoS reservation requesting entity to the
        Authorizing Entity is necessary if a particular Diameter QoS
        application protocol run cannot be related (or if there is no
        intention to relate it) to a prior authentication. In this case the
        Authorizing Entity 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="1" /> The
            time period during which a QoS signaling protocol establishes,
            maintains and deletes a QoS reservation state at the QoS network
            element is referred 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="1" /> 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="1" />
            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 network elements. It
            is included in the authorization request message sent to the
            Authorizing entity 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 network element correlates the QoS
        signaling session with the Diameter authorization sessions. The
        Authorizing entity 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 resource requesting entity 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 resource requesting entity may communicate with the
        Authorizing Entity 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 Network Element 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 and a tight coupling with these protocols is not
        desirable since this applications aims to be generic.</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 Pull mode or Push mode operation is invoked based on the
        trigger of QoS Authorization session. When a QAR with a new session ID
        is received, the Authorizing Entity operates in the pull mode; when
        other triggers are received, the Authorizing Entity operates in the
        push mode. Similarly, when a QIR with new session ID is received, the
        Network Element operates in the push mode; when other triggers are
        received, the Network Element operation in the pull mode.</t>

        <section title="Session establishment for pull mode">
          <t>A request for a QoS reservation or local events received by a
          Network Element can trigger the initiation of a Diameter QoS
          authorization session. The Network Element generates a
          QoS-Authorization-Request (QAR) message in which it maps required
          objects from the QoS signaling message to Diameter payload
          objects.</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 Authorizing Entity'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 to the Authorizing Entity. The QAR is sent to
          a Diameter server that can either be the home server of the QoS
          requesting entity or an application server.</t>

          <figure>
            <artwork><![CDATA[
+----------------------------------+-------------------------------+
| QoS specific Input Data          | Diameter QoS AVPs             |
+----------------------------------+-------------------------------+
| Authorizing entity ID (e.g.,     | Destination-Host              |
| taken from authorization token   | Destination-Realm             |
| or derived based on Network      |                               |
| Access ID (NAI) [RFC4282]        |                               |
| of the QoS requesting entity)    |                               |
+----------------------------------+-------------------------------+
| Authorization Token              | QoS-Authz-Data                |
| Credentials of                   | User-Name                     |
| the QoS requesting entity        |                               |
+----------------------------------+-------------------------------+
| QoS parameters                   | QoS-Resources                 |
+----------------------------------+-------------------------------+
]]></artwork>
          </figure>

          <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">
              <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==============....===>|          
    |                   |                                            
    |                   +- - - - - QAR - - - - - >|                 
    |                   |(START,QoS-Resources)    |                 
    |                   |                         |                 
    |                   |                +--------+--------------+  
    |                   |                | Report for successful |  
    |                   |                |   QoS reservation     |  
    |                   |                |Update of reserved QoS |  
    |                   |                |      resources        |  
    |                   |                +--------+--------------+  
    |                   |< - - - - QAA - - - - - -+                   
    |                   |                         |                 
]]></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 Network Element. The value
          DIAMETER_LIMITED_SUCCESS indicates that the Authorizing entity
          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 Network Element 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 an 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 Authorizing Entity 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 Authorizing Entity, a Network
          Element and a resource requesting entity.</t>

          <t>The Network Element'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
          Authorizing Entity has knowledge of specific information for
          allocating and identifying the Network Element 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 Section 3.2.3 for details.</t>

          <figure>
            <artwork><![CDATA[
+----------------------------------+-------------------------------+
| QoS specific Input Data          | Diameter QoS AVPs             |
+----------------------------------+-------------------------------+
| Network Element ID (e.g., from   | Destination-Host              |
| static configuration             | Destination-Realm             |
| or dynamically discovered, see   |                               |
| Section 3.2.3 for details)       |                               |
+----------------------------------+-------------------------------+
| Authorization Token              | QoS-Authz-Data                |
| Credentials of                   | User-Name                     |
| the QoS requesting entity        |                               |
+----------------------------------+-------------------------------+
| QoS parameters                   | QoS-Resources                 |
+----------------------------------+-------------------------------+
]]></artwork>
          </figure>

          <t></t>

          <t>Authorization processing starts at the Diameter QoS server when
          it receives the request from a resource requesting entity through
          application server (e.g., SIP Invite) or the trigger by local events
          (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">
              <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==============....===>|          
    |                   |                                           
    |                  (+- - - - - QAR - - - - - >|)                 
    |                  (|(START,QoS-Resources)    |)                 
    |                  (|< - - - - QAA - - - - - -+)                 
    |                   |                         |                 
]]></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 decision is provided in the
          QoS-Resources AVP of the QIR message sent by the Authorizing Entity.
          The QoS information provided via the QIR is installed by the QoS
          Traffic Control function of the Network Element.</t>

          <t>One important piece of information from the Authorizing Entity is
          the authorization lifetime (carried inside the QIR). The
          authorization lifetime allows the Network Element 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
          is 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. When path coupled signaling is used
          for QoS reservation along the data path, QAR/QAA may be used to
          update the results of QoS reservation and enforcement following the
          establishment of data flows.</t>
        </section>

        <section title="Discovery and selection of peer Diameter QoS application node">
          <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 <xref target="RFC3588"></xref>. In
          particular, the Network Element shall perform the relevant operation
          for Pull mode; the Authorizing Entity shall perform the relevant
          operations for Push mode.</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 and based on
          some index information provided by the resource requesting entity.
          For instance, it can be the Authorization Entity's ID stored in the
          authorization token, the end-host's identity (e.g., NAI <xref
          target="RFC2486"></xref>) or 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 Authorizing Entity for
        re-authorization. These rules depend on the semantics and contents of
        the QAA message sent by the Authorizing Entity:</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 Authorizing Entity 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 Authorizing Entity 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 Authorizing Entity.</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 Authorizing entity 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 Authorizing Entity may use RAR 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 Authorizing Entity 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
          Authorizing Entity. The transmission of the QAR MAY be triggered,
          such as, when the Network Element 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-Authz-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 Authorizing Entity 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 Network Element.</t>

          <t>A Network Element 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
          Authorizing entity.</t>

          <t>If RAR does not include any parameters of the re-authorized QoS
          state, the Network Element MUST initiate a QoS re-authorization by
          sending a QoS-Authorization-Request (QAR) message towards the
          Authorizing entity.</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.
          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  |        
    |<--QoS-Response----+                | session state         |        
    |                   |                +--------+--------------+        
                        |< - - - - STA - - - - - -+                       
                +-------+--------+                |                       
                |Delete QoS state|                                        
                +-------+--------+                   QoS Responder        
                        |                                Node             
                        +----------QoS-Reserve-----....--->|              
                        |         (Delete QoS              |              
                        |          reservation)            |               
                        |<---------QoS-Response----....----+              
                        |                                  |              
]]></artwork>
            </figure></t>
        </section>

        <section title="Server-Side Initiated Session Termination">
          <t>At anytime during a session the Authorizing Entity MAY send an
          Abort-Session-Request message (ASR) to the Network Element. 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 Network Element 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 Network Element 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="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>

      <t><figure>
          <artwork><![CDATA[
Command-Name                  Abbrev.        Code      Reference
QoS-Authz-Request              QAR           [TBD]     Section 5.1
QoS-Authz-Answer               QAA           [TBD]     Section 5.2
QoS-Install-Request            QIR           [TBD]     Section 5.3
QoS-Install-Answer             QIA           [TBD]     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>

      <t>Diameter nodes conforming to this specification MAY advertise support
      by including the value of TBD 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 TBD 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, because these commands are
      defined in the Diameter base protocol and no additional mandatory AVPs
      for those commands are defined in this document.</t>

      <section 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 TBD and 'R' bit set in the Command Flags field is used by
        Network elements to request quality of service related resource
        authorization for a given flow.</t>

        <t>The QAR message MUST carry information for signaling session
        identification, Authorizing Entity 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, presented in ABNF form <xref
        target="RFC2234"></xref>, is defined as follows:</t>

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

      <section title="QoS-Authorization Answer (QAA)">
        <t>The QoS-Authorization-Answer message (QAA), indicated by the
        Command- Code field set to TBD 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: XXX, PXY >                     
                  < Session-Id >                                    
                  { Auth-Application-Id }                           
                  { Auth-Request-Type }                             
                  { Result-Code }                                   
                  { Origin-Host }                                   
                  { Origin-Realm }                                  
               *  [ QoS-Resources ]                   
                  [ Acc-Multisession-Id ]                           
                  [ Session-Timeout ]                               
                  [ Authz-Session-Lifetime ]                        
                  [ Authz-Grace-Period ]                            
               *  [ AVP ]                                           
]]></artwork>
          </figure></t>
      </section>

      <section title="QoS-Install Request (QIR)">
        <t>The QoS-Install Request message (QIR), indicated by the
        Command-Code field set to TDB and 'R' bit set in the Command Flags
        field is used by Authorizing entity 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: XXX, REQ, PXY >       
                           < Session-Id >                           
                           { Auth-Application-Id }                  
                           { Origin-Host }                          
                           { Origin-Realm }                         
                           { Destination-Realm }                    
                           { Auth-Request-Type }                    
                           [ Destination-Host ]                     
                        *  [ QoS-Resources ]          
                           [ Session-Timeout ]                      
                           [ Authz-Session-Lifetime ]               
                           [ Authz-Grace-Period ]                   
                           [ Authz-Session-Volume ]                 
                        *  [ AVP ]                                  
]]></artwork>
          </figure></t>
      </section>

      <section title="QoS-Install Answer (QIA)">
        <t>The QoS-Install Answer message (QIA), indicated by the Command-Code
        field set to TBD 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: XXX, PXY >            
                           < Session-Id >                           
                           { Auth-Application-Id }                  
                           { Origin-Host }                          
                           { Origin-Realm }                         
                           { Result-Code }                          
                        *  [ QoS-Resources ]          
                        *  [ AVP ]                                  
]]></artwork>
          </figure></t>
      </section>

      <section 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 Authorizing Entity to the Network Element in order to
        initiate the QoS re-authorization from DQA server side.</t>

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

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

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

      <section 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 Network Element to the Authorizing Entity in response
        to the RAR command.</t>

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

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

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

    <section anchor="QoS state machine" title="QoS Application State Machine">
      <t>The QoS application reuses the authorization state machine defined in
      Section 8.1 of the Base Protocol (<xref target="RFC3588"></xref>) with
      its own messages as defined in <xref target="messages"></xref> and QoS
      AVPs as defined in <xref target="avps"></xref>.</t>

      <section anchor="state_supplement"
               title="Supplemented states for push mode">
        <t>In addition to the reused state machines, the following states are
        supplemented to first 2 state machines in which the session state is
        maintained on the Server, and 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:</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:</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
Authz-Lifetime                291             Section 8.9
Authz-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-Authz-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|MAY| NOT|  NOT|
+----------------------------------------------+----+---+----+-----+
|QoS-Authz-Data         TBD    6.4  Grouped    | M  | P |    |  V  |
|Bound-Auth-Session-Id  TBD    6.4  UTF8String | M  | P |    |  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.              |
|P - Indicates the need for encryption for end-to-end security.    |
|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-Authz-Data"><vspace blankLines="1" /> The
            QoS-Authz-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 Authorizing entity as input to the
            computation of the authorization decision. <vspace
            blankLines="1" /></t>

            <t hangText="Bound-Authentication-Session-Id"><vspace
            blankLines="1" /> 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 Network Element 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 Network element 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 Network element
      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-Authz-Data        ++------------+ |   
      |      >===========>QoS-Resources)        |Authorize    | |   
      |                  |                      |QoS resources| |   
      |                  |                      ++------------+ |   
      |                  | QAA                   |              |   
      |                  <- - - - -<<AAA>>- - - -+              |   
      |                  |(Result-Code,          |              |   
      |                  |QoS-Resources,         |              |   
      |                  |Authz-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
        authorizing entity (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 Authorizing Entity (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-Authz-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 Authorizing entity.</t>

        <t>A QAR message will be routed through the AAA network to the
        Authorizing Entity. The Authorizing Entity 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 Network element). 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 verifies the accepted QoS against the
        pre-authorized QoS resources, and sends a Diameter RAR message to the
        DQA client in the network element 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 following:</t>

        <t><figure>
            <artwork><![CDATA[       
Registry:
AVP Code            Attribute Name             Reference
-----------------------------------------------------------
to be assigned   QoS-Authz-Data                Section 6.4
to be assigned   Bound-Auth-Session-Id         Section 6.4
  
]]></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-Authz-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 using
        the next value from the 7-16777215 range. <figure>
            <artwork><![CDATA[     
Registry:
ID values            Name                        Reference
-----------------------------------------------------------
to be asigned      Diameter QoS application      Section 5
]]></artwork>
          </figure></t>
      </section>

      <section title="Command Codes">
        <t>IANA is requested to allocate command code values for the following
        from the range 289-299.</t>

        <t><figure>
            <artwork><![CDATA[
Registry:
Code Value             Name                     Reference
-----------------------------------------------------------
to be assigned      QoS-Authz-Request (QAR)     Section 5.1
to be assigned      QoS-Authz-Answer  (QAA)     Section 5.2
to be assigned      QoS-Install-Request (QIR)   Section 5.3
to be assigned      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. Therefore, it is necessary that
      the QoS signaling application to carry sufficient information that
      should be forwarded to the backend AAA server. This functionality is
      particularly useful in roaming environments where the authorization
      decision is most likely provided at an entity where the user can be
      authorized, such as in the home realm.</t>

      <t>QoS signaling application MAY re-use the authenticated identities
      used for the establishment of the secured transport channel for the
      signaling messages, e.g., TLS or IPsec between the end host and the
      policy aware QoS NE. In addition, a collocation of the QoS NE with, for
      example, the Diameter NASREQ application (see <xref
      target="RFC4005"></xref>) may allow the QoS authorization to be based on
      the authenticated identity used during the network access authentication
      protocol run. If a co-located deployment is not desired then special
      security protection is required to ensure that arbitrary nodes cannot
      reuse a previous authentication exchange to perform an authorization
      decision.</t>

      <t>Additionally, QoS authorization might be based on the usage of
      authorization tokens that are generated by the Authorizing Entity and
      provided to the end host via application layer signaling.</t>

      <t>The impact of the existence of different authorization models is
      (with respect to this Diameter QoS application) the ability to carry
      different authentication and authorization information.</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>
    </section>

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

    <section anchor="contributors" title="Contributors">
      <t>The authors would like to thank Tseno Tsenov (tseno.tsenov@gmail.com)
      and Frank Alfano (falfano@lucent.com) 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>

      <t>[Editor's Note: A bit of history needs to be included here.]</t>
    </section>
  </middle>

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

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

      &RFC2234;

      &RFC3588;

      &RFC4006;

      &RFC4005;

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

      &I-D.ietf-dime-qos-parameters;
    </references>

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

      &RFC4566;

      &RFC2749;

      &RFC2210;

      &RFC2753;

      &RFC4027;

      &RFC2865;

      &RFC3521;

      &RFC3313;

      &I-D.ietf-nsis-ntlp;

      &RFC3520;

      &RFC2486;
    </references>

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

PAFTECH AB 2003-20262026-04-23 04:58:15