Network Working Group
RADEXT                                                           A. Lior
INTERNET-DRAFT
Internet-Draft                                       Bridgewater Systems
Category: Informational
Expires: April 26, 2006                                        P. Yegani
draft-lior-radius-prepaid-extensions-08.txt
                                                                   Cisco
Expires: 18 January, 2006
                                                            K. Chowdhury
                                                        Starent Networks
                                                           H. Tschofenig
                                                             C. Guenther
                                                           A. Pashalidis
                                                                 Siemens
                                                           July 17,
                                                        October 23, 2005

     PrePaid Extensions

    Prepaid extensions to Remote Authentication Dial-In User Service
                                (RADIUS)
              draft-lior-radius-prepaid-extensions-09.txt

Status of this Memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, in accordance with Section 6 of BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

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

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on December 29, 2005. April 26, 2006.

Copyright Notice

   Copyright (C) The Internet Society (2005).  All Rights Reserved.

Abstract

   This draft presents an extension to the Remote Authentication Dial-
   In User Service (RADIUS) protocol to support charging for prepaid
   services.  The charging models supported are namely: volume-based
   charging, duration-based charging and one-time-based charging.

Table of Contents

   1. Introduction...................................................4
      1.1 Terminology................................................5
      1.2 Requirements language......................................5  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  5
     1.1.  Terminology  . . . . . . . . . . . . . . . . . . . . . . .  6
     1.2.  Overview . . . . . . . . . . . . . . . . . . . . . . . . .  6
       1.2.1.  Architectural Model  . . . . . . . . . . . . . . . . .  7
       1.2.2.  Motivation . . . . . . . . . . . . . . . . . . . . . . 11
     1.3.  A simple use case  . . . . . . . . . . . . . . . . . . . . 13
   2. Overview.......................................................6
      2.1 Prepaid  Supported Features . . . . . . . . . . . . . . . . . . . . . . 15
     2.1.  Multiple Concurrent Services . . . . . . . . . . . . . . . 15
     2.2.  Resource Pools . . . . . . . . . . . . . . . . . . . . . . 15
     2.3.  Complex Rating Functions . . . . . . . . . . . . . . . . . 17
     2.4.  One-time Charging Models....................................6
      2.2 Architectural Model........................................6
      2.3 Motivation................................................11  . . . . . . . . . . . . . . . . . . . . 17
     2.5.  Tariff Switching . . . . . . . . . . . . . . . . . . . . . 18
     2.6.  Support for Roaming  . . . . . . . . . . . . . . . . . . . 20
     2.7.  Dynamic Termination  . . . . . . . . . . . . . . . . . . . 20
     2.8.  Querying and Rebalancing . . . . . . . . . . . . . . . . . 20
   3. Operations....................................................13
      3.1 General Requirements......................................13
         3.1.1 Broker AAA Requirements..............................13
      3.2  Operations . . . . . . . . . . . . . . . . . . . . . . . . . . 22
     3.1.  Authentication and Authorization for Prepaid Enabled SADs.14
      3.3 Operation . . . . . . . . 22
     3.2.  Session Start Operation...................................16
      3.4 Operation  . . . . . . . . . . . . . . . . . 24
     3.3.  Mid-Session Operation.....................................16
      3.5 Operation  . . . . . . . . . . . . . . . . . . 24
     3.4.  Dynamic Operations........................................18
         3.5.1 Operations . . . . . . . . . . . . . . . . . . . . 26
       3.4.1.  Unsolicited Session Termination Operation............19
         3.5.2 Operation  . . . . . . 26
       3.4.2.  Unsolicited Change of Authorization Operation........19
      3.6 Operation  . . . . 26
     3.5.  Termination Operation.....................................20
      3.7 Operation  . . . . . . . . . . . . . . . . . . 27
     3.6.  Mobile IP Operations......................................20
      3.8 Operations . . . . . . . . . . . . . . . . . . . 27
     3.7.  Operation considerations Considerations for Multiple prepaid services....21
         3.8.1 Services . . . . . . 28
       3.7.1.  Initial Quota Request................................22
         3.8.2 Request  . . . . . . . . . . . . . . . . 28
       3.7.2.  Quota Update.........................................22
         3.8.3 Termination..........................................23
         3.8.4 Update . . . . . . . . . . . . . . . . . . . . . 29
       3.7.3.  Termination  . . . . . . . . . . . . . . . . . . . . . 29
       3.7.4.  Dynamic Operations...................................23
         3.8.5 Operations . . . . . . . . . . . . . . . . . . 30
       3.7.5.  Support for Resource Pools...........................23
         3.8.6 One-Time-Charging....................................24
         3.8.7 Pools . . . . . . . . . . . . . . 30
       3.7.6.  One-time Charging  . . . . . . . . . . . . . . . . . . 30
       3.7.7.  Error Handling.......................................24
      3.9 Handling . . . . . . . . . . . . . . . . . . . . 31
       3.7.8.  Accounting Considerations.................................25
      3.10 SAD Operation............................................25
      3.11 Considerations  . . . . . . . . . . . . . . 31
       3.7.9.  Interoperability with Diameter Credit Control Application25
               Application  . . . . . . . . . . . . . . . . . . . . . 31
   4. Attributes....................................................25
      4.1  Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . 32
     4.1.  PPAC Attribute............................................26
      4.2 Attribute . . . . . . . . . . . . . . . . . . . . . . 32
     4.2.  Session Termination Capability............................27
      4.3 Attribute  . . . . . . . . . . . . . . 33
     4.3.  PPAQ Attribute............................................27
      4.4 Attribute . . . . . . . . . . . . . . . . . . . . . . 34
       4.3.1.  Quota Identifier AVP . . . . . . . . . . . . . . . . . 34
       4.3.2.  VolumeQuota AVP  . . . . . . . . . . . . . . . . . . . 35
       4.3.3.  VolumeThreshold AVP  . . . . . . . . . . . . . . . . . 35
       4.3.4.  DurationQuota AVP  . . . . . . . . . . . . . . . . . . 35
       4.3.5.  DurationThreshold AVP  . . . . . . . . . . . . . . . . 35
       4.3.6.  ResourceQuota AVP  . . . . . . . . . . . . . . . . . . 36
       4.3.7.  ResourceThreshold AVP  . . . . . . . . . . . . . . . . 36
       4.3.8.  Value-Digits AVP . . . . . . . . . . . . . . . . . . . 36
       4.3.9.  Exponent AVP . . . . . . . . . . . . . . . . . . . . . 36
       4.3.10. Update-Reason AVP  . . . . . . . . . . . . . . . . . . 36
       4.3.11. PrepaidServer AVP  . . . . . . . . . . . . . . . . . . 37
       4.3.12. Service-ID AVP . . . . . . . . . . . . . . . . . . . . 37
       4.3.13. Rating-Group-ID AVP  . . . . . . . . . . . . . . . . . 37
       4.3.14. Termination-Action AVP . . . . . . . . . . . . . . . . 38
       4.3.15. Pool-ID AVP  . . . . . . . . . . . . . . . . . . . . . 38
       4.3.16. Pool-Multiplier AVP  . . . . . . . . . . . . . . . . . 38
       4.3.17. Requested-Action AVP . . . . . . . . . . . . . . . . . 38
       4.3.18. Check-Balance-Result AVP . . . . . . . . . . . . . . . 39
       4.3.19. Cost-Information AVP . . . . . . . . . . . . . . . . . 39
     4.4.  Prepaid Tariff Switching (PTS)............................34
      4.5 Table of Attributes.......................................36 Attribute (PTS) . . . . . . . . . 40
       4.4.1.  VolumeUsedAfterTariffSwitch AVP  . . . . . . . . . . . 40
       4.4.2.  TariffSwitchInterval AVP . . . . . . . . . . . . . . . 41
       4.4.3.  TimeIntervalafterTariffSwitchUpdate AVP  . . . . . . . 41
   5. Security Considerations.......................................37
      5.1 Authentication  Translation between RADIUS prepaid and Diameter Credit
       Control  . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
     5.1.  Session Identification . . . . . . . . . . . . . . . . . . 43
     5.2.  Translation between RADIUS prepaid client and Authorization..........................37
      5.2 Replenishing Procedure....................................37 Diameter
           Credit Control AAA infrastructure  . . . . . . . . . . . . 43
       5.2.1.  PPAC (c<->s) . . . . . . . . . . . . . . . . . . . . . 43
       5.2.2.  Service Termination Attribute (c->s) . . . . . . . . . 44
       5.2.3.  Quota Identifier Attribute (c<->s) . . . . . . . . . . 44
       5.2.4.  Volume Quota Attribute (c<->s) . . . . . . . . . . . . 44
       5.2.5.  Duration Quota Attribute (c<->s) . . . . . . . . . . . 45
       5.2.6.  Resource Quota Attribute (c<->s) . . . . . . . . . . . 45
       5.2.7.  Value Digits Attribute (c<->s) . . . . . . . . . . . . 46
       5.2.8.  Exponent Attribute (c<->s) . . . . . . . . . . . . . . 46
       5.2.9.  Volume/Duration/Resource Threshold Attributes
               (s->c) . . . . . . . . . . . . . . . . . . . . . . . . 46
       5.2.10. Update Reason Attribute (c->s) . . . . . . . . . . . . 46
       5.2.11. PrepaidServer Attribute (s<->c)  . . . . . . . . . . . 48
       5.2.12. Service-ID Attribute (s<->c) . . . . . . . . . . . . . 48
       5.2.13. Rating-Group-ID Attribute (s<->c)  . . . . . . . . . . 48
       5.2.14. Termination-Action Attribute (s->c)  . . . . . . . . . 48
       5.2.15. Pool-ID Attribute (s<->c)  . . . . . . . . . . . . . . 49
       5.2.16. Multiplier Attribute (s<->c) . . . . . . . . . . . . . 49
       5.2.17. Requested-Action Attribute (c->s)  . . . . . . . . . . 49
       5.2.18. Check-Balance-Result Attribute (s->c)  . . . . . . . . 49
       5.2.19. Cost-Information Attribute (s->c)  . . . . . . . . . . 50
       5.2.20. VolumeUsedAfterTariffSwitch attribute (c->s) . . . . . 50
   6. IANA Considerations...........................................37  Security Considerations  . . . . . . . . . . . . . . . . . . . 51
   7. Normative References..........................................38  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 52
   8. Informative References........................................39  Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 53
   9. Call Flows....................................................39
      9.1 Simple Concurrent Services................................40
      9.2 One-time Charging.........................................43
   Contributor......................................................43
   Acknowledgments..................................................43
   Author's Addresses...............................................43
   Intellectual Property Statement..................................44
   Disclaimer of Validity...........................................44
   Copyright Statement..............................................45
   Expiration Date..................................................45
   10.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 54
     9.1.  Normative References . . . . . . . . . . . . . . . . . . . 54
     9.2.  Informative References . . . . . . . . . . . . . . . . . . 54
   Appendix A.  Example flows . . . . . . . . . . . . . . . . . . . . 55
     A.1.  A û use cases.......................................45
      10.1 Simple simple flow  . . . . . . . . . . . . . . . . . . . . . . 55
     A.2.  A flow with prepaid use case..................................45
      10.2 Support for Multi-Services...............................47
      10.3 tariff switching . . . . . . . . . . . 58
     A.3.  Resource Pools...........................................48
      10.4 Support for Complex pools and Rating Functions.....................49
      10.5 One-Time-based Charging..................................50
      10.6 Support for Tariff Switching.............................51
      10.7 Support for Roaming......................................53
      10.8 Termination of a prepaid session.........................53
      10.9 Querying Groups . . . . . . . . . . . . . 62
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 69
   Intellectual Property and Rebalancing Prepaid Resources...............54 Copyright Statements . . . . . . . . . . 70

1.  Introduction

   This draft describes extensions extentions for the RADIUS protocol.  These
   extensions are meant to enable service providers to charge and bill
   their customers using prepaid accounts.

   A prepaid service subscriber is a user who has purchased a contract
   according to which he will receive a particular data service for
   either a period of time or a quantity of data.  In the typical
   prepaid scenario, the service provider verifies that the subscriber
   has sufficient funds in his account before delivering the service.
   Only if sufficient suffiecient funds are available is the service provided to
   the user.

   Note that the means by which the subscriber obtains funds is outside
   the scope of this document. Also note that, in some scenarios, the
   subscriber's account may be used to fund multiple services, some of
   which may use the extensions defined in this documents, and some
   may use other mechanisms. While the interworking of the mechanisms
   described in this document with other mechanisms should be possible
   and straightforward, how this could be done depends on the external
   mechanisms and is, as such, outside the scope of this
   document.

   The business driver behind the protocol extensions defined in this
   document is to increase participation (i.e. a service provider's
   subscriber base) and thus to increase revenues.  In particular, the
   extensions were designed with the following goals in mind.

   -

   o  Make use of existing infrastructure as much as possible, possible (including
      enabling the interworking of RADIUS-based and Diameter-based
      infrastructures), and thereby limit the amount of necessary
      capital expenditures,
   -

   o  provide the ability to rate service requests in real-time,</t>
   - real-time,

   o  provide the ability to charge the user's account - charge prior to service
      provision,
   -

   o  protect against revenue loss, i.e. to prevent an end user from
      obtaining service when the available funds are not sufficient,
   -

   o  protect against fraud, and
   -

   o  be as widely deployable over dialup, wireless wired and WLAN wireless networks.

   The architecture between the entities that execute the RADIUS
   protocols
   protocols, with the extensions defined in this document document, assumes that
   the rating of chargeable events does not occur in the element that
   provides the service.  Instead, the rating may be performed at a
   dedicated server, termed the ôprepaid "prepaid enabled AAA serverö server" or simply
   ôprepaid serverö.
   "prepaid server".  Alternatively, the actual rating may occur in an
   entity behind this prepaid server.  Furthermore, business logic may
   dictate a time-dependent tariff model, for example that the price for
   a service may switch at 8pm from a high to a low tariff.  The
   extensions defined in this document support such scenarios.

   Furthermore, this documents assumes an architecture where a `quota
   server' "quota
   server" is available which, through co-ordination with the rating
   entity and a centralized account balance manager, is able to provide
   a quota indication for a particular user when requested.  This quota
   server may or may not coexist in the prepaid server.

1.1

1.1.  Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [1].

   Furthermore, this document uses the following terms:

   Network Access Server (NAS):

      As defined in RADIUS.
  (NAS) RADIUS [2].

   Prepaid Client(PPC) client (PPC):

      The entity which triggers the RADIUS message
                           exchange exchange, including
      the prepaid extensions defined in this document.  The PPC
      typically resides in the NAS.

   Prepaid Server(PPS) Server (PPS):

      The entity that interacts with the Prepaid
                           Client PPC using the RADIUS prepaid
      extensions defined in this document.

   Home network Network:

      The entity network which maintains contains the userÆs user profile and the user's prepaid
      account.
  WLAN                     Wireless Local Area Network
  Service Event
  Access Service           The service that is provided to the user
                           when the user is authenticated and
                           authorized.

   Furthermore, the following terms are used in this document. Mobile
   IP and AAA terminology: Home agent (HA), Home network, Home AAA
   (HAAA), Broker AAA (BAAA), Visited AAA (VAAA) and Foreign Agent (FA)

1.2
   Requirements language
   In this document, several words are used to signify the requirements
   of the specification.  These words are often capitalized.  The key
   words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in
   this document are to be interpreted as described in [RFC2119].

2.

1.2.  Overview

   This section provides an overview of the prepaid charging models, models and their associated
   architectures, that which are supported by the extensions proposed described in
   this document.

2.1
   Prepaid Charging Models draft.

   A number of models of how to charge customers for data services in a
   prepaid manner are supported, as follows.

     .

   o  Volume-based charging (VBC): charging: (e.g. 2 Cents/KiloByte)
     . Cents/KiloByte).

   o  Duration-based charging (DBC): charging: (e.g. 3 Cents/minute)
     . Cents/minute).

   o  Subscription-based charging (SBC): charging: (e.g. Dollars/month)
     .  Dollars/month).

   o  Event-based charging (EBC): charging: (e.g. 7 Cents/URL or email)

   Whether .

   This draft assumes that the user maintains a prepaid account with his
   home network.  However, whether this account is a dedicated prepaid
   account or a general
   account not (such as a current bank account) is outside the scope
   of this document.

2.2  Similarly, the means by which the subscriber
   obtains funds is also outside the scope of this document.  In some
   scenarios, the subscriber's account may be used to fund multiple
   services, some of which may use the extensions defined in this
   documents, and some may use other mechanisms.  While the interworking
   of the mechanisms described in this document with other mechanisms
   should be possible and straightforward, the specification of how this
   could be done depends on the external mechanisms and is, as such,
   outside the scope of this document.

1.2.1.  Architectural Model

   The architectural model assumed protocol extensions described in this document encompasses draft assumes that the
   following entities.

   (1) entities are present in the network architecture.

   o  Service Access Device (SAD): This entity provides a data service
      to the users, and typically coincides with the NAS.  The SAD
      executes the RADIUS client which, for the purposes of this
      document, is termed the PPC. "PrePaid Client" (PPC).  When the prepaid
      service is used the SAD collects service event information and
      reports it while or after services are provided to the user.  This
      event information is sent to the PPS using the extensions defined
      in this document.
   (2)

   o  The PPS: The RADUIS server. server that supports the prepaid extensions
      defined in this document.  If real-time credit control is
      required, the PPC (SAD) contacts the PPS with service event
      information included before the service is provided.  The PPS
      performs a credit check and allocates a portion of available
      credit to the service event.
   (3)

   o  The rating entity: This entity converts the credit that is
      allocated by the PPS into a time or volume amount, called the
        ôquotaö.
      "quota".  This quota is then returned to the requesting PPC (SAD)
      (via the PPS).  The rating entity may also determine that during
      service provision a tariff switch will occur.  In this case the
      rating entity will include details of when exactly tariff switch
      will occur.

   The requesting SAD (PPC) monitors the provision of the service
   according to the instructions returned by the PPS.  After service
   completion or on a subsequent request for service, the PPS deducts
   the corresponding amount of credit from the user account.  When a
   user terminates an on-going service, the PPC informs the PPS with a
   suitable indication about the unused portion of the allocated quota.
   The PPS is then able to refund the user account appropriately.

   Multiple PPSs MAY may be deployed for reasons of redundancy and load
   balancing.  The system MAY also employ multiple rating servers.
   Prepaid accounts MAY may be located in a centralized database.  The
   detailed architecture of the system and its interfaces are outside
   the scope of this specification.

                                           accounting
   +------------+            +-----------+  protocol    +--------------+
   |    User    |<----->|    |<---------->|  Service  |              |              |
   |            |       | IEEE 802.1x|  Access   |<------------>| Accounting   |
   |  Device    | PANA       |  Device   |<-----+       |   Server     |
   +------------+ IKEv.2     +-----------+      |       +--------------+
                  ... etc        (PPC)          |
                                                |
                                                |       +--------------+
                                                +------>|   Prepaid    |
                                           prepaid      |   Server     |
                                           protocol     +--------------+

   Figure 1 1: Basic Prepaid Architecture prepaid architecture

   The PPS and the accounting server in this architecture are logical
   entities.  The real configuration MAY combine them into a single
   host.

   The SAD MUST must have the ability to meter the usage for a prepaid data
   session.  This usage includes time or volume (e.g. number of bytes).

   In roaming scenarios using mobile IP the PPC may run on the Home
   Agent. Furthermore, the

   The device running the PPC may also have
   ôDynamic "Dynamic Session Capabilitiesö
   Capabilities" such as the ability to terminate a data session or
   change the filters associated with a specific data session by
   processing ôDisconnectö "Disconnect" messages and ôChange "Change of
   Authorizationö Authorization"
   messages as per [RFC3576]. RFC 3576.

   This document assumes that the PPS is used as the AAA server.  There
   are three types of AAA server, as follows. (i)

   o  The AAA server in the home network (HAAA), which is responsible
      for authentication of the subscriber.  In addition, the HAAA
      communicates with the PPS using the RADIUS protocol in order to
      authorize subscribers.  (ii)

   o  The AAA server in the visited network (VAAA) which exists only in
      roaming scenarios and is responsible for forwarding the RADIUS
      messages to the HAAA.  The VAAA may also modify the messages.
      Note that, in certain roaming deployments, the visited network may
      be connected to the home network via one or more broker networks. (iii)

   o  The AAA server in one of the aforementioned broker networks
      (BAAA), which is responsible for forwarding messages and does not
      play an active role in the prepaid data service delivery.  A BAAA
      obviously exists only in those roaming deployments where the VAAA
      and the HAAA are connected via the BAAA of a broker network.

   This document assumes that the PPS communicates with the HAAA for the
   purposes of authorisation.  Additionally, the PPS interfaces to
   entities which

   - Keep

   o  keep the subscriberÆs subscriber's account balance (balance manager),
   - Rate

   o  rate access service requests in real-time (Rating Engine), and
   - Manage

   o  manage quota for a particular prepaid service (Quota Server).

   Three deployment scenarios are presented in the remainder of this
   section.  The first scenario is depicted in Figure 2.  In this
   scenario, the SAD, which runs the PPC, the HAAA, and the PPS are
   located in the same provider network.

   The Subscriber Device subscriber's device establishes a connection with one of possibly
   multiple SADs in the network.  The selected SAD communicates with a
   HAAA server. However, in order to provide redundancy, multiple HAAA
   may be available.

   The network has one server (directly or more PPSs. indirectly).

   The interface between the HAAA and the PPS is implemented using the
   RADIUS protocol together with the extensions described in this
   document.  However, in cases where the PPS does not implement the
   RADIUS protocol, the implementation would have to map the
   requirements defined in this document to a functionally equivalent
   protocol.

                               +------+     +-----+
                               |      |     |     |
   +--------+   +--------+  +--| HAAA |--+--| PPS |
   |        |   |        |  |  |      |  |  |     |
   | Subscr.|   | Service|  |  +------+  |  +-----+
   |        |---| Access |--+            |
   | Device |   | Device |  |  +------+  |  +-----+
   |        |   |        |  |  |      |  |  |     |
   +--------+   +--------+  +--| HAAA |--+--| PPS |
                               |      |     |     |
                               +------+     +-----+

   Figure 2 2: Basic Prepaid Access Architecture prepaid access architecture

   The second scenario, depicted in Figure 3, is based on a static
   roaming architecture that is typical of a wholesale scenario for
   Dial-Up users or a broker scenario used in Dial-Up or WLAN roaming
   scenarios.

                         +----+   +----+   +----+   +-----+
                         |    |   |    |   |    |   |     |
   +------+  +-------+ +-|VAAA|-+-|BAAA|-+-|HAAA|-+-| PPS |
   |      |  |       | | |    | | |    | | |    | | |     |
   |Sub   |  |Service| | +----+ | +----+ | +----+ | +-----+
   |      |--|Access |-+        |        |        |
   |Device|  |Device | | +----+ | +----+ | +----+ | +-----+
   |      |  |       | | |    | | |    | | |    | | |     |
   +------+  +-------+ +-|VAAA|-+-|BAAA|-+-|HAAA|-+-| PPS |
                         |    |   |    |   |    |   |     |
                         +----+   +----+   +----+   +-----+

      |     Visited              |  |Broker | |    Home      |
      |     Network              |  |Network| |    Network   |

   Figure 3 3: Static Roaming Prepaid Architecture

   As roaming prepaid architecture

   Like in the basic prepaid architecture architecture, the subscriberÆs subscriber device
   establishes a connection with the SAD.  The SAD communicates with the
   VAAA using the RADIUS protocol.  The VAAA, in turn, communicates
   using the RADIUS protocol with BAAA servers in the broker network.
   There maybe may be more then than one Broker Network between the Visited Network
   and the Home Network.  The Home Network is the same as in the
   architecture depicted in Figure 2.

   The third scenario is a roaming scenario where the network utilises
   Mobile-IP. It is depicted Figure 4. In this scenario

   Broker AAA (BAAA) servers MUST support the mobile
   device moves between networks that use different technologies such Message-Authenticator(80)
   attribute as between WLAN and Broadband. Mobile-IP addresses this type of
   mobility and therefore we need not be concerned with the underlying
   network technology.

      +------+  +-------+     +----+  +----+  +----+  +-----+
      |      |  |Service|     |    |  |    |  |    |  |     |
      |Subscr|  |Access +-----|VAAA|--|BAAA|--|HAAA|--| PPS |
      |      |--|Device |     |    |  |    |  |    |  |     |
      |Device|  | (FA)  +--+  +----+  +-+--+  +----+  +-----+
      |      |  |       |  |            |
      +------+  +------ +  |            |
         |                 |            |     +----+
         |                 |            |     |    |
         |ROAMS            +------------------+ HA |
         |                              |     |    |
         V                  +----+      |     +----+
      +------+  +-------+   |    |      |        |
      |      |  |Service| +-|VAAA+------+        |
      |Subscr|  |Access | | |    |               |
      |      |--|Device +-+ +----+               |
      |Device|  | (FA)  |                        |
      |      |  |       +------------------------+
      +------+  +-------+
      Figure 4 Roaming using Mobile-IP and pre-paid enabled SADs

   In Figure 4, the Subscriber Device establishes a session with the
   SAD defined in RFC 2869.  If they are used, they forward the foreign network. The setup for this access service is
   identical
   RADIUS packets as usual to the cases covered above. Note that the SAD may be
   collocated with the Foreign Agent (FA) if Mobile-IPv4 is being used.
   As the subscriber device moves, it establishes appropriate RADIUS servers.

   Accounting messages are not needed to deliver a connection with
   another SAD possibly in another foreign network. The prepaid data
   service should continue to service.

   However, accounting messages can be available. When a device associates used to
   another SAD it MUST re-authenticate at the new SAD and de-associate
   or log off from the old SAD. Furthermore, any unused quota at the
   old SAD MUST be credited into keep the subscriberÆs account immediately.
   This has PPS up to happen immediately because otherwise, if the
   subscriberÆs funds are low, he may be denied service at the new SAD.

   Note that, if the SADs communicate directly with each other then
   there could be a way date
   as to accelerate the handoff procedure. In
   particular, what is happening with the subscriber could be refunded more quickly.
   Unfortunately, handoff procedures are specific to prepaid data session.  Therefore, a
   BAAA SHOULD deliver RADIUS Accounting messages using the underlying
   network technologies and vary significantly pass through
   mode described in terms of delay.

2.3 RFC 2866.

1.2.2.  Motivation

   It has been asked ôWhy

   Why not use existing RADIUS attributes to construct a protocol for
   prepaid scenarios?  This will allow us could lead to
   have a solution with existing devices without where no code modification.ö has
   to be modified at existing devices.

   It is indeed possible to construct a solution for prepaid billing
   scenarios using existing RADIUS attributes.  The RADIUS server would
   send an Access-Accept message containing a Session-Timeout(27) and
   include a Termination-Action(29) in the RADIUS-request.  Upon
   receiving the Access-Accept message, the NAS would meter the duration
   of the session and upon termination of the session the NAS would
   generate an Access-Request message again.  The RADIUS server would
   then re-authenticate the session and reply with an Access-
   Accept Access-Accept
   message indicating the amount of additional time in a
   Session-Timeout(27). Session-
   Timeout(27).  Alternatively, it would responds could respond with an Access-Reject
   message if there were no more resources in the userÆs user account.

   Moreover, if the user terminates the session prematurely, the NAS
   would recover any unused time from
   could indicate this in the accounting stream.

   There are several problems with such stream so that unused funds can
   be returned into the prepaid user account.

   Unfortunately, the above "solution" has a solution:

   - number of problems,
   including the following.

   o  It only supports time-based accounting.  The solution presented in
      this document supports both time and volume based prepaid.

   -

   o  Using accounting messages to recoup unused time may be problematic
      because RADIUS accounting messages are not delivered in real-time.
      A RADIUS server may store-and-forward accounting messages in
      batches.  Thus, relying on accounting messages for the purposes of
      prepaid may cause revenue leakage.  The solution presented in this
      document does not rely on Accounting Packets packets at all.  It uses Access-Request, messages
      Access-Request messages, which do are required to flow through any
      network in real-time. Delaying accounting messages
   may cause revenue leakage.

   -

   o  Session-Timeout(27) is not a mandatory attribute.  If a prepaid
      subscriber is being serviced by a NAS that does not adhere to
      Session-Timeout then that subscriber may use the service for an
      undetermined period of time.

   -

   o  Termination-Action(29) presents its own issues.  Firstly the
      behaviour of Termination-Action(29) is not mandatory.  Secondly,
      according to RFC2865, RFC 2865, Termination-Action fires when the provision
      of the service has completed.  However, service should not be
      terminated when negotiating additional quota, because this should
      happen in a manner transparent to the subscriber. Because  Due to the fact
      that Termination-Action occurs when the Service service is completed completed, it
      is unclear whether or not user experience would be affected. affected if
      this attribute would be used in a prepaid scenario.  The RADIUS
      server might even allocate a new IP address to the subscriberÆs device. Furthermore, subscriber
      device after a Termination-Action.  Also, the RADIUS server has no
      way of telling why the a given Access-Request message was generated.
      The RADIUS server might have to wait for the corresponding
      accounting packet to determine the reason for this
   Access-Request message. reason.  Finally, re-authenticating re-
      authenticating the subscriber may take too long.  The solution
      presented in this document allows quota replenishing to occur in an undisruptive manner from the
      without affecting user
   perspective. experience.  No re-authentication is
      required and quotas can be negotiated prior to before the available credit running
      actually runs out.

   -

   o  Due to the fact that the standard RADIUS attributes are not
      mandatory, the correct prepaid operation is really an act of faith
      on the part of the RADIUS server.  If Session-Timeout(27) and/or
      Termination-Action(29) are not supported, the prepaid subscriber
      might be able to obtain the service for free.  The solution
      described in this document requires that a prepaid-aware SAD
      informs the RADIUS server, regardless of whether or not the latter
      supports the prepaid extensions.  The RADIUS server can then
      determine whether or not service should be granted.  For example,
      if a prepaid subscriber is connected to a NAS that does not
      support prepaid, the RADIUS server can either instruct the NAS to
      tunnel the traffic to another entity in the home network (e.g. the
      Home Agent) that supports prepaid, or it provide only a restricted service.]
      service.

   The solution presented in this document requires the support of two
   mandatory and one optional attribute.  Furthermore, it does not
   require a great amount of additional code at a NAS that already
   supports time or volume metering.  The solution requires that RADIUS
   entities advertise their prepaid capabilities in an Access-Request
   and that they generate an Access-Request Authorize-Only packet to
   obtain more quota when or before the current quota is used up.  It
   also requires the NAS to send an Access-Request with Authorize-Only
   when the session terminates in order to refund the subscriberÆs
   account appropriately.

   The solution provided subscriber
   account.

1.3.  A simple use case

   This section describes the sequence of events in this document is extensible. For a simple RADIUS
   prepaid transaction.

   1.  When an end host attaches to a network (for example, using PPP or
       PANA), as usual, the protocol can be extended NAS (SAD) that is servicing the subscriber
       uses the AAA infrastructure to support tariff switching authenticate and other
   prepaid business models. authorize the
       subscriber (if such network accesss authentication is required).

   2.  The extensions described in this document were designed based on SAD sends a
   number of use cases and scenarios. An overview of these can be found
   in Appendix A.

3.
  Operations

3.1
   General Requirements

3.1.1
     Broker AAA Requirements

   Broker AAA (BAAA) servers MUST support RADIUS Access-Request to the Message-Authenticator(80)
   attribute as defined AAA server in [RFC2869]. If they are used, they forward
   the RADIUS packets as usual order
       to authenticate and authorise the appropriate RADIUS servers.

   Accounting messages are not needed subscriber with respect to deliver a prepaid the
       requested service.
   However, accounting messages can be used to keep  The Access-Request contains the PPS up to date
   as to what is happening with subscriber's
       credentials and may contain the prepaid data session.  Therefore, a
   BAAA SHOULD deliver RADIUS Accounting messages using capabilities of the pass
   through mode described in [RFC2866].

3.2
   Authentication and Authorization for SAD.
       Prepaid Enabled SADs

   The SAD initiates capabilities MUST be included if the SAD supports them.

   3.  The authentication and authorization procedure by
   sending a RADIUS Access-Request to the HAAA.

   If proceeds.  This may involve several
       message exchanges such as in EAP [RFC2284].  Once the SAD subscriber
       has PPC capabilities, it MUST include been successfully authenticated, the PPAC(TBD)
   attribute in home AAA server
       determines that the RADIUS Access-Request. subscriber is a prepaid subscriber and
       requests authorisation from the PPS.  The PPAC(TBD) attribute
   indicates to request MUST include
       the PPS which prepaid capabilities are possessed by of the serving SAD. These are required in order to complete

   4.  The PPS validates that the subscriber has a prepaid
   authorization procedure.

   If account and
       that the account is active.  It further validates that the SAD supports
       has the Disconnect-Message or appropriate prepaid capabilities.  If all is in order,
       the Change-of-
   Authorization capabilities, then it SHOULD include PPS authorises the Dynamic-
   Capabilities attribute.

   In certain deployments, there may be other ways subscriber to terminate a data
   session, or change authorization of an active session. For example,
   some SADs provide a session termination service via Telnet or SNMP.
   In these cases, use the AAA server MAY add network.  Otherwise
       it rejects the Dynamic-Capabilities
   message request.  The decision is sent to the Access-Request. Upon receiving the Change-of-
   Authorization message, the AAA server would then be responsible for
   terminating system.
       The response includes attributes to indicate the session using allocation of a
       portion of the means subscriber credit.  This portion is called the
       "initial quota" (in units of time or volume) and optionally a
       threshold value.  Note that are supported by only a portion of the
   device.

   If user's funds is
       allocated because the authentication procedure involves multiple message exchanges
   (as user may be engaged in EAP), the SAD MUST include other services that
       may draw on the PPAC(TBD) attribute and same account.  For example, the
   Dynamic-Capabilities attribute (if used) user may be
       engaged in at least a data session and a voice session.  Although these
       two services would draw from the last
   Access-Request same account, they form separate
       parts of the authentication procedure.

   The Access-Request is sent as usual to the HAAA. The packet may pass
   through one or more BAAA.

   Once overall system.  If the Access-Request arrives at entire quota was allocated
       to the HAAA, data session then the HAAA authenticates user would have no more funds for a
       voice session.

   5.  The AAA system incorporates the subscriber.  If this fails, attributes received from the HAAA sends PPS
       into an Access-Reject Access-Accept message that it sends to the client. If authentication succeeds, the HAAA
   determines whether or not SAD.  Note
       that the subscriber is a prepaid subscriber.
   (How this is done AAA system is beyond responsible for authorizing the scope of this document.) If service
       whereas the
   subscriber prepaid system is not a responsible for prepaid subscriber, then
       authorization.

   6.  Upon receiving the HAAA responds as
   usual with an Access-Accept or an Access-Reject message. If Access-Response, the SAD starts the
   subscriber is a prepaid subscriber then
       data session and meters the HAAA SHALL forward session based on time or volume, as
       indicated in the
   Access-Request to message.

   7.  Once the PPS usage for further authorization.

   The Access-Request contains the PPAC(TBD) attribute and the Dynamic-
   Capabilities attribute if one was included. The User-Name(1)
   attribute MAY be set to a value that represents session approaches the subscriberÆs
   identifier.  This attribute is used allocated limit (as
       expressed by the PPS to locate his
   account. For added security, threshold), the HAAA MAY also set SAD will request additional
       quota.  Re-authorization for additional quota flows through the User-
   Password(2) attribute
       AAA system to the password used between the HAAA and the PPS.  The PPS locates revalidates the subscriberÆs subscriber
       account and authorizes him. During
   this procedure, subtracts the PPS takes into consideration previously allocated quota from the SAD PPC
   Capabilities.

   Upon successful authorization,
       current balance.  If there is remaining balance, it reauthorizes
       the PPS generates request with an Access-Accept
   containing the PPAC(TBD) attribute and additional quota allotment.  Otherwise, the PPAQ(TBD) attribute.

   The PPAC attribute returned to
       PPS rejects the client indicates request.  Note that the type replenishment of
   prepaid service to be provided for the session. The PPAQ(TBD)
   attribute includes the following.

   - The QUOTA-ID, which
       quota is set by the PPS to a unique value that is
      used to correlate subsequent quota requests;

   - Volume and/or Time quotas, which are set re-authorization procedure and does not require the
       subscriber to values representing authenticate himself again.

   8.  Upon receiving a
      portion re-allotment of the subscribers credit;

   - It MAY contain a Time or Volume Threshold that controls when quota, the SAD should request additional quota;

   - The IP address of continues to
       provide the Serving PPS and one or more alternative
      PPSs.  This data service until the new threshold is used by reached.  If
       the HAAA to route subsequent request for additional quota
      replenishing messages to the appropriate PPS(s).

   Note: Idle-Timeout(28) can cannot be used to trigger fulfilled then the premature
   termination of a prepaid service, for example as a result of
   inactivity.

   Depending on site policies, after failed authorization, SAD
       lets the PPS may
   generate an Access-Reject to terminate subscriber use the session immediately. remaining quota and terminates the
       session.  Alternatively, instead of terminating the PPS session, the
       SAD may generate an Access-Accept blocking some
   or all of restrict the traffic and/or redirect some or all of data session such that the traffic to
   a location to subscriber can
       only reach a fixed particular web server. (This feature could be used, for
   example,  This web server maybe used
       to prompt allow the user subscriber to replenish their account.) Blocking of
   traffic is achieved by either Filter-ID(11) or NAS-Filter-Rule(see
   Redirect I-d).  Redirection is achieved by sending Redirect-Id or
   Redirect-Rule, HTTP Redirection defined in the Redirect I-d.  The
   time period before the session is blocked/redirected is specified by
   the Session-Timeout(27) attribute.

   Upon receiving an Access-Accept from the PPS, the HAAA appends the
   usual service attributes and forward the packet his account.  This
       restriction can also be used to allow new subscribers to the SAD.  The
   HAAA SHOULD NOT overwrite any attributes already set by up
       prepaid accounts in the PPS.  If first place.

   9.  Should the HAAA, receives an Access-Reject message, it will simply forward subscriber terminate the packet to its client. Depending on site policies, if session before the HAAA
   does not receive an Access-Accept or an Access-Reject message from quota is
       exhausted, the PPS it MAY do nothing or send an Access-Reject or an Access-
   Accept message back remaining balance allotted to the PPC.

3.3
   Session Start Operation

   The start of the session MUST be
       refunded into his account.

   Note that the subscriber may have disconnected while the Access
   Device is indicated by waiting for the arrival of an
   Accounting-Request(Start) packet. initial quota.  The Accounting-Request (Start) MAY entire allocated quota
   will be routed credited back to the PPS such subscribers account in this case.  Also
   note that it can confirm the initial quota
   allocation.

   Note that PPS maintains session state for the role of subscriber.  This
   state includes how much account balance was allocated during the PPS is not to record accounting messages last
   quota enquiry and therefore it SHOULD not respond with an Accounting Response
   packet.

   If the PPS does not receive how much is left in the Accounting-Request(start) message account.  Therefore, it
   will only know is
   required that all messages about the session has reach the same (and
   correct) PPS.

   For a simple message flow, along the lines of this use case, please
   see Appendix A.

2.  Supported Features

   This section describes the features that are supported by the prepaid
   extensions defined in this draft.

2.1.  Multiple Concurrent Services

   Examples of services that the user may be using are browsing the web,
   participating in a VoIP conversation, watching streaming video and
   downloading a file.  Some operators may want to distinguish between
   these services.  Some services are chaged at different rates and
   services may be metered differently.  Therefore, the prepaid solution
   needs to be able to distinguish services, and allocate quota to the
   services using different unit types (time, volume) and allow for
   those quotas to be consumed at different rates.

                    +---------+
                    | Session |
                    +---------+
                         | 1
                         V N
                 +--------------+ 1 : 1 +-------+
                 |   Service    |------>| Quota |
                 | (service-Id) |       +-------+
                 +--------------+

   Figure 4: Multiple services within a single session

   As shown in Figure 4, a session may be associated with multiple (N)
   services.  Each service is identified by a service identifier
   (Service-ID).  The format of the Service-ID is not in the scope of
   this document but it could be expressed as an IP flow using the
   5-tuple {Source-IP and Port, Destination-IP and Port, protocol type}.
   Each service is associated with a quota metric.  An example message
   flow that involves multiple such services within a single session is
   given in the appendix.

2.2.  Resource Pools

   When working with multiple services a new problem arises because one
   service may consume its quota faster than another service.  When the
   user balance is close to exhaustion, a situation could arise where
   one service is unable to obtain quota while another service has
   plenty of quota remaining.  Unless the quotas can be rebalanced, the
   SAD would then have to terminate the former service.  Moreover, if
   each service generates a certain amount of RADIUS prepaid traffic.
   In an environment with many users and chargarble services, this
   amount of traffic is considerable and could leads inefficiency.

   One method to circumvent the above situation is to use a so-called
   "resource pool".  Resource pools enable the allocation of resources
   to multiple services of a session by allocating resources to a pool
   and have services draw their quota from the pool at a rate
   appropriate to that service.  When the quota that has been allocated
   to the pool is close to exhaustion, the entire pool (rather than
   individual services) is replenished.

              +-----------+
              | Service-A |-----+         +--------+
              +-----------+     |    Ma   |        |
                                +-------->|        |
                                          |  Pool  |
                                +-------->|   (1)  |
              +-----------+     |    Mb   |        |
              | Service-B |-----+         +--------+
              +-----------+

   Figure 5: Resource pool example

   As shown in Figure 5, Service-A and Service-B are bound to Pool(1).
   Ma and Mb are the pool multipliers (that are associated with
   Service-A and Service-B respectively) that determine the rate at
   which Service-A and Service-B draw from the pool.

   The pool is initialized by taking the quota allocated to service n
   and multiplying it by Mn.  Therefore, the amount of resources
   allocated to a pool is given by Poolr = Ma*Qa + Mb*Qb + . . ., where
   Qn denotes the amount of quota that is allocated to service n.
   Further, the pool is considered to be empty if

           Poolr <= Ca*Ma + Cb*Mb + . . .,

   Figure 6

   where Ca and Cb are resources consumed by Service-A and Service-B
   respectively.

   Note that the resources assigned to the pool are not associated with
   a metric.  That is, Service-A can be rated at $1 per MB and Service-B
   can rated at $0.10 per minute.  In this case if $5 worth of resources
   are allocated for service-A to the pool and if Ma = 10, then 50 units
   would be placed into the pool.  If a further $5 are allocated for
   service-B to the pool, then M=1 and 50 units are deposited into the
   pool.  The pool would then have a total sum of 100 units to be shared
   between the two services.  The PPC would then mater the services such
   that each Mbyte used by Service-A will draw 10 units from the pool
   and each minute used by Service-B will draw 1 unit from the pool.

2.3.  Complex Rating Functions

   The rating of a service can be quite complex.  While some operators
   follow linear pricing models, others may wish to apply more complex
   functions.  For example, a service provider may wish to rate a
   service such that the first N MBytes are free, then the next M Mbytes
   are rated at $1 per MB and volume above (N+M) MB be rated at $0.50
   per MB.  Such a function could be implemented by repeated message
   exchanges with the prepaid system.

   To avert the need to exchange many messages while still supporting
   such complex rating functions, the notion of a "Rating Group" is
   introduced.  A Rating Group are typically configured at the SAD.  As
   shown in Figure 7, a Rating Group is associated with one or more
   services and defines the rate that the services associated with the
   Rating Group consume an allocated amount of quota.

                           +--------------+       +--------------+
   +-----------+ N     1   |              | M  1  | Resource Pool|
   | Service-A +---------->| Rating Group |------>|      or      |
   +-----------+           |              |       |    Quota     |
                           +--------------+       +--------------+

   Figure 7: Example of a rating group

   During the usage of a service that is associated with a Rating Group,
   the PPC sends the ID of the Rating Group to the PPS.  The PPS
   authorises the Rating Group by allocating a quota to it and
   optionally assigning it to a Resource Pool.  When an additional
   service that belongs to an already authorised Rating Group is
   instantiated, the PPC does not need to authorize this service.  This
   effectively means that the PPC meters the service such that it draws
   from the already allocated quota.  Therefore, no RADIUS messages need
   to be exchanged in this case.  This limits the amount of traffic
   between the PPC and the PPS.  An example of a flow that uses Rating
   Groups is given in Appendix A.3

2.4.  One-time Charging

   One-time charging is a mode of operation of where the RADIUS prepaid
   extensions are used for charging of a service that is provided
   instansteneously, i.e. without an ongoing session.  An example of
   such an event is the purchase of a ring-tone.  Subscription based
   services can also be modeled as a one-time event.  In this case the
   one-time service event is the purchase of a subscription.

   For a given user, one-time-based charging may occur in parallel with
   other charging models.  For example, the subscriber may access a
   website which is metered (based on time or volume) while he also
   purchases the right to use a ring tone (a one-time-based event).
   Note: it is up to the service providers to decide whether or not the
   user will be charged for the download of the tone and also be charged
   for the time and volume required to download the ring-tone.  The
   facilities provided by this document gives the service provider the
   capability to achieve their service charging business goals.  For
   example, should the service provider choose not to charge for the
   download volume or time, then they can treat the download IP flow as
   a separate service that is not subject to charging.

   The SAD signals one-time-based charging to the PPS with an indication
   that identifies the service and the units that should be debited from
   the user account.

   A SAD may decide to perform one-time-based charging for an event that
   was triggered by an unauthenticated user.  In this case case the SAD
   will have to authenticate the user before sending the relevant
   message to the user's home AAA server.

   Note that one-time-based charging can also be used to credit the
   prepaid account.  For example, the SAD can return resources to the
   subscriber by issuing a one-time charge request that includes the
   amount of resources to be credited into the account.

2.5.  Tariff Switching

   The PPC and the PPS may support tariff switching.  For example, as
   shown in Figure 8, traffic before 18:00 may be rated at rate r1 and
   traffic after 18:00 is rated at rate r2.  The PPC reports usage
   before and after the switch occurs.  Tariff switching does not make
   sense for services that are metered based on time, and the
   consumption of which is continuous (i.e. without interruption).

                           18:00
            ------------------+-----------------
                   r1         |      r2
            ------------------+-----------------
                 ^                        ^
                 |<----TSI--->            |
                 |                        |
           Access-Accept            Access-Request
           (quota allocated)        (quota consumed)

   Figure 8: Example of tariff switching

   The PPC it indicates support for tariff switching by setting the
   appropriate bit in the PPAC.  If the PPS needs to signal a tariff
   switch time it will send a PTS attribute which indicates the point in
   time when the switch will occur.  This indication represents the
   number of seconds from current time (TarrifSwitchInterval TSI).

   At some point after the tariff switch the PPC sends another Access-
   Request, as a result of either the user having logged off or the
   volume threshold being reached.  The PPC reports how much volume was
   used using the PPAQ in total and how much volume was used after the
   tariff switch using the PTS VUATS subtype.

   In situations with multiple tariff switches, the PPS must specify the
   length of the tariff switch period using the
   TimeIntervalAfterTariffSwitchUpdate (TITSU) in the PTS attribute as
   shown below.

                            18:00                 23:30
            ------------------+---------------------+--------------
                   r1         |      r2             |     r3
            ------------------+---------------------+--------------
                 ^                        ^         ^
                 |<----TSI---><-----------|-------->|TITSU
                 |                        |
           Access-Accept            Access-Request

   Figure 9: Multiple tariff switches

   When a TITSU is specified in the PTS, the PPC MUST generate an
   Access-Request within the time after TSI and before TITSU expires.
   Note that, typically, the PPC will be triggered by the Volume
   Threshold.  However, it is possible that, during period r2, resources
   are not entirely consumed and, thus, the threshold is not reached.
   Even in this case PPC MUST generate an Access-Request in good time.
   Also note that separate services flows may have individual tariff
   periods.

2.6.  Support for Roaming

   In certain networks it is essential for prepaid data services to be
   available to roaming subscribers.  Support for both static and
   dynamic roaming models is needed.  In a static roaming scenario the
   subscriber connects to a foreign network which has a roaming
   agreement either directly with the home network, or through a broker
   network.  When the subscriber logs into another foreign network, a
   new login procedure has to be executed.

   In a dynamic roaming scenario the subscriber may move between
   networks while maintaining his connection.  In such a scenario the
   data session is seamlessly handed off between the networks.

   In both roaming scenarios, the subscriber always authenticates
   himself to the home network.  Authorization for the prepaid session
   and quota replenishing occurs at the home network and more
   specifically at the PPS where state is being maintained.

   Dynamic roaming is challenging because a subscriber who established a
   prepaid data session may move to another Access Device that does not
   support the prepaid extensions.  Even in this case the system should
   be able to continue the prepaid session.

2.7.  Dynamic Termination

   When fraud or an error is detected, either only the affected session,
   or all sessions of the affected subscriber should be immediately
   terminated.  It may further happen that the prepaid system enters a
   state where it is unclear whether or not the data session is in
   progress.  Under certain conditions, the system may wish to terminate
   the session in order to make sure that the user is not charged for
   this potential inactivity.

   Certain handoff procedures used in dynamic roaming scenarios require
   that the system terminates the subscribers prepaid data session at a
   SAD.  This is the case, for example, when time-based prepaid is used
   and the mobile subscriber performs a dormant handoff.

2.8.  Querying and Rebalancing

   It should be possible for the PPS to Query the current resource
   consumption at a SAD and adjust the user account balance.  For
   example, a request to the PPS is made (e.g. a one-time charging
   event), the account is depleted and resources have been allocated to
   the SAD.  The PPS should have the ability to query the SAD and if it
   has the spare resources to reassign the quotas to the SAD and to the
   pending request.  Note that the PPS does not know resource usage
   until the SAD request for more resources.  This can be a long time.

   In the absence of this capability the PPS can minimize the effect of
   this phenomenon by allocating small quotas, a practice that results
   in more message exchanges.

3.  Operations

   This section describes the operations that are implemented by a
   prepaid-enabled NAS (SAD).

3.1.  Authentication and Authorization Operation

   The SAD initiates the authentication and authorization procedure by
   sending a RADIUS Access-Request to the HAAA.  Since the SAD has PPC
   capabilities, it MUST include a PPAC attribute in the RADIUS Access-
   Request.  The PPAC attribute indicates to the PPS which prepaid
   capabilities are possessed by the SAD.  These are required in order
   to complete the prepaid authorization procedure.  Moreover, if the
   SAD supports the Disconnect-Message or the Change-of-Authorization
   capabilities, then it SHOULD include the Dynamic-Capabilities
   attribute.

   In certain deployments, there may be other ways to terminate a data
   session, or change authorization of an active session.  For example,
   some SADs provide a session termination service via Telnet or SNMP.
   In these cases, the AAA server MAY add the Dynamic-Capabilities
   message to the Access-Request.  Upon receiving the Change-of-
   Authorization message, the AAA server would then be responsible for
   terminating the session using the means that are supported by the
   device.

   If the authentication procedure involves multiple message exchanges
   (as in EAP), the SAD MUST include the PPAC(TBD) attribute and the
   Dynamic-Capabilities attribute (if used) in at least the last Access-
   Request of the authentication procedure.

   The Access-Request is sent as usual to the HAAA, possibly through one
   or more BAAA.

   Once the Access-Request arrives at the HAAA, the HAAA authenticates
   the subscriber.  If this fails, the HAAA sends an Access-Reject
   message to the client.  If authentication succeeds, the HAAA
   determines whether or not the subscriber is a prepaid subscriber.
   (How this is done is beyond the scope of this document.)  If the
   subscriber is not a prepaid subscriber, then the HAAA responds as
   usual with an Access-Accept or an Access-Reject message.  If the
   subscriber is a prepaid subscriber then the HAAA SHALL forward the
   Access-Request to the PPS for further authorization.

   The Access-Request contains the PPAC(TBD) attribute and the Dynamic-
   Capabilities attribute if one was included.  The User-Name(1)
   attribute MAY be set to a value that identifies the subscriber.  This
   attribute is used by the PPS to locate his account.  For added
   security, the HAAA MAY also set the User-Password(2) attribute to the
   password used between the HAAA and the PPS.

   The PPS locates the subscriber account and authorizes him.  During
   this procedure, the PPS takes into consideration the SAD PPC
   Capabilities.  Upon successful authorization, the PPS generates an
   Access-Accept containing an PPAC attribute and an PPAQ attribute.
   The PPAC attribute returned to the client indicates the type of
   prepaid service to be provided for the session.  The PPAQ attribute
   includes the following information.

   o  The QUOTA-ID, which is set by the PPS to a unique value that is
      used to correlate subsequent quota requests.

   o  Volume and/or Time quota, which is set to a value representing a
      portion of the subscriber's credit.

   o  It MAY contain a Time or Volume Threshold that indicates when the
      SAD should request additional quota.

   o  The IP address of the Serving PPS and one or more alternative
      PPSs.  This is used by the HAAA to route subsequent quota
      replenishing messages to the appropriate PPS(s).

   Note: The Idle-Timeout(28) attribute can be used to trigger the
   premature termination of a prepaid service, for example as a result
   of inactivity.

   Depending on site policies, after failed authorization, the PPS may
   generate an Access-Reject in order to terminate the session
   immediately.  Alternatively, the PPS may generate an Access-Accept
   blocking some or all of the traffic and/or redirect some or all of
   the traffic to a location to a fixed server.  (This feature could be
   used, for example, to prompt the user to replenish their account.)
   Blocking of traffic is achieved by either Filter-ID(11) or NAS-
   Filter-Rule(see Redirect I-d).  Redirection is achieved by sending
   Redirect-Id or Redirect-Rule, HTTP Redirection defined in the
   Redirect I-d.  The time period before the session is blocked/
   redirected is specified by the Session-Timeout(27) attribute.

   Upon receiving an Access-Accept from the PPS, the HAAA appends the
   usual service attributes and forward the packet to the SAD.  The HAAA
   SHOULD NOT overwrite any attributes already set by the PPS.  If the
   HAAA receives an Access-Reject message, it will simply forward the
   packet to its client.  Depending on site policies, if the HAAA does
   not receive an Access-Accept or an Access-Reject message from the PPS
   it MAY do nothing or send an Access-Reject or an Access- Accept
   message back to the PPC.

3.2.  Session Start Operation

   The start of the session is indicated by the arrival of an
   Accounting-Request(Start) packet.  The Accounting-Request (Start) MAY
   be routed to the PPS such that it can confirm the initial quota
   allocation.

   Note that the role of the PPS is not to record accounting messages
   and therefore it SHOULD NOT respond with an Accounting Response
   packet.  If the PPS does not receive the Accounting-Request(start)
   message it will only know that the session has started upon the first
   reception of a quota replenishment operation.

   If the PPS does not receive indication directly (via Accounting-
   Request(start)) or indirectly, it SHOULD SHOULD, after some configurable
   time, deduce that the Session has not started.  If the SAD supports
   termination capabilities, the PPS SHOULD send a Disconnect Message to
   the SAD as a measure to ensure that the session is indeed dead.

3.4

3.3.  Mid-Session Operation

   During the lifetime of a prepaid data session the SAD requests may request the
   replenishment of the quotas using Authorize-Only Access-Request
   messages.
   message.  Once either the allocated quota has been exhausted or the
   threshold has been reached, the SAD MUST send an Access-Request with
   Servicetype(6) set to a value of ôAuthorize Onlyö "Authorize Only" and the PPAQ(TBD)
   attribute.

   The SAD MUST also include NAS identifiers, and Session identifier
   attributes in the Authorize Only Access-Request.  The Session
   Identifier should be the same as the one used during the Access-
   Request. initial
   Access-Request.  For example, if the User-Name(1) attribute was used
   in the Access-Request it MUST be included in the Authorize Only Access-
   Request,
   Access-Request, especially if the User-Name(1) attribute is used to
   route the Access-Request to the Home AAA server.

   The Authorize Only Access-Request MUST NOT include a User Password
   and MUST NOT include a Chap Password.  In order to enable the
   receiver to authenticate the message, the SAD MUST include a Message-Authenticator(80) Message-
   Authenticator(80) attribute.  The SAD computes the value for the
   Message-Authenticator according to [RFC2869]. RFC 2869.

   When the HAAA receives the an Authorize-Only Access-Request that contains
   a PPAQ(TBD), it SHALL validate the message using the
   Message-Authenticator(80) as per [RFC2869]. Message-
   Authenticator(80), according to RFC 2869.  If the HAAA receives an
   Authorize Only Access-Request that contains a PPAQ(TBD) but not a and either no
   or an invalid Message-Authenticator(80) it SHALL silently discard the
   message.  An Authorize Only Access-Request message that does not
   contain a PPAQ(TBD) is either erroneous or belongs to another
   application (for example, a Change of Authorization message
   [RFC3576]).  In this case the Authorize Only Access-Request is either
   silently discarded or handled by another application.

   Once the Authorize Only Access-Request message is validated, the HAAA
   SHALL forward the Authorize Only Access-Request to the appropriate
   PPS.  The HAAA MUST forward the Authorize Only Access-
   Request Access-Request to the
   PPS specified in the PPAQ(TBD).  The HAAA MUST add an
   Message-Authenticator(80) a Message-
   Authenticator(80) to the message, according to [RFC2869]. RFC 2869.  As with the
   Access-Request message, the HAAA MAY modify the User-
   Name(1) User-Name(1)
   attribute such that it represents identifies the userÆs internal
   prepaid account in user to the PPS.  Note that the
   PPS may also use the Quota-ID sub-attribute contained within the
   PPAQ(TBD) to locate the user account.

   Upon receiving the Authorize Only Access-Request containing a
   PPAQ(TBD) attribute, the PPS MUST validate the Message-
   Authenticator(80) as described in [RFC2869]. RFC 2869.  If validation fails, the
   PPS MUST silently discard the message.  If it receives an Authorize
   Only Access-Request message that does not contain a
   PPAQ(TBD) PPAQ(TBD), it
   MUST silently discard the message.

   The PPS locates the prepaid session state using the Quota Id
   contained within the PPAQ(TBD).  The PPS takes the most recently
   allocated quota and subtracts it from the userÆs user balance.  If
   sufficient balance remains, the PPS authorizes the PPS and allocates
   additional quota.  The PPS may also calculate a new threshold value.
   Upon successful re-authorization, the PPS generates an Access-Accept
   containing the PPAQ(TBD) attribute.  The Access-Accept message MAY
   contain Servicetype(6) set to Authorize-Only and MAY contain the
   Message-Authenticator(80).

   Depending on site policies, upon unsuccessful authorization, the PPS
   generates an Access-Reject or an Access-Accept with Filter-Id(11) or
   Ascend-Data-Filter (if supported) attribute and the Session-
   Timeout(27) attribute such that the subscriber can get access to a
   restricted set of locations for a short period of time.  This feature
   could be used to enable users to replenish their accounts, create new
   accounts, or to browse free content.

   Upon receiving the Access-Accept from the PPS, the HAAA SHALL return
   the packet to its client.  If the HAAA receives an Access-Reject
   message, it forwards the packet.  Depending on site policies, if the
   HAAA does not receive an Access-Accept or an Access-Reject message
   from the PPS it MAY do nothing or it MAY send an Access-Reject
   message back to its client.

   Upon receiving an Access-Accept, the SAD SHALL update its quotas and
   threshold parameters with the values contained in the PPAQ(TBD)
   attribute.  Note that the PPS MAY update the PrePaidServer
   attribute(s) and these may have to be saved as well.

   Upon receiving an Access-Accept  If the Access-
   Accept message that contains an Filter-
   Id(11), a Filter-Id(11), an Ascend-Data-Filter
   attribute, or Session Timeout(27), the SAD SHALL restrict the
   subscriber session accordingly.

3.5

3.4.  Dynamic Operations

   The PPS may take advantage of the dynamic capabilities that are
   supported by the SAD as advertised in the Dynamic-Capabilities
   attribute during the initial Access-Request.  There are two types of
   action that the PPS may perform.  Firstly, it may request the session
   to be terminated.  Secondly, it may request the attributes associated
   with the session to be modified.  More specifically, it may modify a
   previously sent PPAQ(TBD) PPAQ(TBD).

   Both of these actions require that the session be uniquely identified
   at the SAD.  As a minimum minimum, the PPS MUST

   - provide

   1.  either the NAS-IP-Address(4) or the NAS-Identifier(32)
   -  provide NAS-Identifier(32), and

   2.  at least one session identifier such as User-Name(1),
   Framed-IP-Address(), Framed-IP-
       Address(), the Accounting-Session-Id(44).

   Other attributes could also be used to uniquely identify a prepaid
   data session.

3.5.1

3.4.1.  Unsolicited Session Termination Operation

   At anytime during a session the PPS may send a Disconnect Message in
   order to terminate a session.  This capability is described in detail
   in [RFC3576].  The PPS sends a Disconnect Message that MUST contain
   identifiers that uniquely identify the data session and the SAD
   servicing that session.

   If the SAD receives a Disconnect-Message, it responds with either a
   Disconnect-ACK message (if it is able to terminate the session) or
   with a Disconnect-NAK packet (otherwise).  Upon successful
   termination of a session the SAD MUST return any unused quota to the
   PPS by issuing an Authorize Only Access-Request containing the PPAQ
   which contains any unused Quota and the Update-
   Reason Update-Reason set to ôRemote "Remote
   Forced Disconnectö.

3.5.2 Disconnection".

3.4.2.  Unsolicited Change of Authorization Operation

   At any time during the session the PPC may receive a Change of
   Authorization (CoA) message.  A PPS may send a new Quota to either
   add or to remove quota that is allocated to the service.  If the
   Change of Authorization contains a PPAQ then that PPAQ overrides a
   previously received PPAQ.  The PPS MUST NOT change the units used in
   the PPAQ.

   If the newly received PPAQ reduces the amount of allocated quota
   beyond what is already used then the SAD accepts the new PPAQ and act
   as it normally would when the quota is used up.  For example, if the
   threshold is reached then is request a quota update.

3.6 update .

3.5.  Termination Operation

   The termination phase is initiated when (i) the subscriber logs off,
   (ii) the subscriberÆs balances subscriber balance is exhausted, or (iii) when the SAD
   receives a Disconnect Message.

   In the case where the user logged off, or the SAD receives a Disconnect
   Message, the SAD sends an Authorize-Only Access-Request message with
   a PPAQ(TBD) PPAQ and Update-Reason attribute set to either
   ôClient "Client Service terminationö
   Termination" or ôRemote "Remote Forced disconnectö. Disconnect".  This message indicates
   the already amount of consumed quota.

   In the case where the currently allocated quota is exhausted, if the
   PPAQ(TBD) PPAQ
   contained the Termination-Action field, the SAD follows the specified
   action (which would be to immediately terminate the
   service), requests service, request
   more quota, or redirects/filters redirect/filter the service.

3.7 service).

3.6.  Mobile IP Operations

   In roaming scenarios with Mobile-IP, the prepaid data session should
   be maintained transparently if the HA is acting as the SAD.  As the
   subscriber device associates with the a new SAD (AP or PDSN that supports
   PPC capability), the SAD sends a RADIUS Access-Request and the
   subscriber is re-authenticated and reauthorized.  The SAD MUST
   include the PPAC(TBD) attribute in the RADIUS Access-Request.  In
   this manner manner, the procedure follows the Authentication and
   Authorization procedure described earlier.

   If the HA was acting as the SAD before handoff, the userÆs prepaid session
   does not undergo any change after the handoff because the Mobile IP
   session is anchored at the HA and the userÆs user's Home IP address remains the same. does not
   change.

   In the case of a wireless access point or PDSN acting as the SAD SAD, it
   is likely that the userÆs user's (care-of) IP address will change (Care of Address). change.  The
   prepaid session will be affected by this.  In this scenario the SAD
   shall send an Access-Request message which is routed to the home
   network and MUST reach the prepaid system PPS that is serving this session.  The prepaid system PPS
   correlates the new authorization request with the existing active
   session and assigns a quota to the new request.  Any outstanding
   quota at the old SAD MUST be returned to the prepaid system PPS if the Mobile-IP
   nodes (HA and FA) support registration revocation (Mobile IPv4 only).
   Specifically, the quota SHOULD be returned when the SAD sends the
   Authorize Only Access-
   Request Access-Request with PPAQ(TBD) Update-Reason set to
   either ôRemote "Remote Forced
   disconnectö Disconnect" or ôClient "Client Service terminationö. Termination".
   In order to trigger the sending of this last Authorize Only Access-Request, Access-
   Request, the prepaid
   system PPS may issue a Disconnect Message [3576] to the SAD.

   Even if the subscriber moves to a SAD that does not have prepaid
   capabilities can the prepaid data service continue.  This can be done
   by requesting the Home Agent (assuming that it has such capabilities) to
   take over the responsibilities of the SAD (i.e. metering).  This
   scenario will be discussed in detail in a later version of this
   document.

3.8

3.7.  Operation considerations Considerations for Multiple prepaid services Services

   This section describes the support for multiple prepaid services on a
   single SAD.  Message flows illustrating the various interactions are
   presented at the end of this document. in Appendix A.

   A SAD that supports prepaid operations for multi-services SHOULD set
   the ôMulti-Services Supportedö "Multi-Services Supported" bit in the PPAC.  When working with
   multi-services, we need to differentiate between the services.  A
   Service-Id attribute is used in the PPAQ(TBD) in order to uniquely
   differentiate between the services.  The exact definition of the
   Service-Id attribute is outside the scope of this document.

   A PPAQ that contains a Service-Id is associated with that Service.  A
   PPAQ that contains a Rating-Group-Id is associated with that
   Rating-Group. Rating-
   Group.  A PPAQ MUST not contain both a Rating-Group-Id and a
   Service-Id.  A PPAQ that contains neither a Rating-Group-Id or a
   Service-Id applies to the ôAccess Serviceö.

3.8.1 Access Service.

3.7.1.  Initial Quota Request

   When operations with multi-services is desired, the SAD requests the
   initial quota for the Service by sending a PPAQ containing the
   Service-Id for that Service in an Authorize-Only Access-Request
   packet.  Similarly, if the SAD supports Rating-Groups then it may
   request a quota for the Rating-Group by sending a PPAQ containing the
   Rating-Group-Id.  In both cases the Update-Reason is set to
   ôInitial-Requestö. "Initial-
   Request".

   The Authorize-Only Access-Request message may contain more than one
   PPAQ.  The Authorize-Only Access-Request MUST includes include one or more
   attributes that serve to identify the session so that it can be
   linked to the original authentication.  Which Session Identifiers are
   included is up to specific deployments.  The Authorize-Only message
   must contain the Message-Authenticator(80) attribute for integrity
   protection of the Authorize-Only Access-Request message.

   Upon receiving an Authorize-Only Access-Accept message containing one
   or more PPAQs, the prepaid system PPS allocates resources to each PPAQ.  Each PPAQ
   is assigned a unique QID that MUST appear in subsequent PPAQ updates
   for that service or rating-group.  Additionally, the PPAQ MUST
   contain the Service-ID or Group-ID, unless the PPAQ is a the generic ôAccess Serviceö.

3.8.2
   "Access Service".

3.7.2.  Quota Update

   Once the services start to utilize their allotted quota they will
   eventually need to replenish their quotas (either the threshold is
   reached or no more quota remains).  To  In order to replenish the quota quota,
   the PPC sends an Authorize-Only Access-Request message containing one
   or more PPAQs.  Each PPAQ MUST contain the appropriate QID,
   Service-ID or Group-ID (or neither the Service-ID or Group-Id if the
   quota replenishment is for the ôAccess Serviceö). "Access Service").  The Update-Reason
   filed indicates either ôThreshold reachedö(3), "Threshold reached"(3), or ôQuota reachedö(4). "Quota reached"(4).
   The Authorize-Only message must contain session identifiers.

   Upon receiving an Authorize-Only Access-Request packet with one or
   more PPAQs the PPS responds with a new PPAQ for that service.  The
   PPAQ contains a new QID, the Service-Id or Rating-Group-Id, a new
   Quota.  If the PPS does not grant additional quota to the service it
   MUST include the Termination-Action subfield in the PPAQ that will
   instruct the SAD what to do with the service.

3.8.3

3.7.3.  Termination

   When the allotted quota for a service is exhausted exhausted, the SAD shall act
   in accordance to the Termination-Action field set in the Quota.  If
   the Termination-Action field is absent then the service MUST be
   terminated.  If the service is to be terminated terminated, then the SAD shall
   send a PPAQ with the appropriate QID, the Service-Id, the used quota,
   and the Update-Reason set to ôClient "Client Service Terminationö. Termination".

   If the ôAccess Serviceö &#65533;Access Service&#65533; has terminated, then all other
   services must be terminated as well.  In this case the SAD MUST
   report on all issued quotas for the various services.  The Update-Reason Update-
   Reason field should be set to ôAccess "Access Service Terminatedö.

3.8.4 Terminated".

3.7.4.  Dynamic Operations

   Dynamic operations for multi-services are similar to dynamic
   operations described for single service operations.  The prepaid
   system may send a COA message containing a PPAQ for an existing
   service instance.  The SAD matches the PPAQ with the service using
   the Service-ID attribute.  The new quota could differ from the
   previously allocated value.  The SAD must react to the new value
   accordingly.

   A disconnect message terminates the ôAccess Serviceö. "Access Service".  As such the
   SAD MUST report all unused quotas by sending an Authorize Only Access
   Request message containing a PPAQ for each active service.  The
   Update-Reason shall indicate that the reason for the update.

3.8.5

3.7.5.  Support for Resource Pools

   If the PPC supports pools as indicated by setting the ôPools
   supportedö "Pools
   supported" bit in the PPAC(TBD) then the PPS may associate a Quota
   with a Pool by including the Pool-Id and the Pool-Multiplier in the
   PPAQ(TBD).  When Resource Pools are used, the PPAQ must not use the
   threshold field.

3.8.6
     One-Time-Charging

3.7.6.  One-time Charging

   To initiate a One-Time charge the PPC includes the PPAQ attribute in
   an Access-Request packet.  The Access Request packet MUST include a
   Message-Authenticator(80) and an Event-Timestamp(55) attribute.  The
   Service Id field of the PPAQ identifies the prepaid service.  The
   amount to be charged is specified using the Resource Quota and
   Resource Quota overflow subtypes.  If the value specified is negative
   then the resources are credited to the userÆs user account.

   The QID field MUST be set to a unique value and is used by the PPS to
   detect duplicates.  The Update Reason field MUST be set to One-
   Time One-Time
   Charging.  Upon receiving a One-Time charge PPAQ, the RADIUS server
   authenticates the user and, if successful, passes the PPAQ to the
   PPS.  The PPS locates the account and debits or credits it
   accordingly.  The PPS MUST respond to the PPS with an Access-Accept
   message if successful, or an Access-Reject message otherwise.

   The RADIUS server shall respond to the SAD with an Access Accept
   message.  Since this is a one-time charge the SAD must not allow the
   session to continue.  Therefore, the RADIUS server should include in
   the Access-Accept a Session-Timeout set to 0.  Upon receiving an
   Access-Accept response the SAD shall generate an Accounting Stop
   message.

   A PPAQ used for One-Time charging may appear in an Authorize-Only
   Access Request.  This is the case when the session already exists.
   The PPS responds with an Access-Accept to indicate that the userÆs user
   account has been debited or an Access-Reject otherwise.

3.8.7

3.7.7.  Error Handling

   If the PPS receives a PPAQ with an invalid QID it MUST ignore that
   PPAQ.

   If the PPS receives a PPAQ containing a Service-Id, or a Rating-
   Group-Id that it does not recognize, then it MUST ignore that PPAQ.

   If the PPC receives a PPAQ containing a Service-Id, or a Rating-
   Group-Id that it does not recognize, then it must ignore that PPAQ.

   If the PPC receives a PPAQ that contains a Pool-Id without a Pool-
   Multiplier or a Pool-Multiplier without a Pool-Id it must ignore that
   PPAQ.

3.9

3.7.8.  Accounting Considerations

   Although typically generated, accounting messages are not required to
   deliver a prepaid data service.  When generated, accounting messages
   are used for auditing purposes and for billing.  Accounting messages
   associated with prepaid data sessions should include the PPAQ(TBD)
   attribute.

3.10
    SAD Operation

   To be completed

3.11

3.7.9.  Interoperability with Diameter Credit Control Application

   The RADIUS prepaid extensions need to interoperate with the Diameter
   protocol.  Two possibilities exist: The interoperability scenarios exist, as follows.  Either
   the AAA infrastructure is Diameter based and the SAD are RADIUS
   based, or the SAD is Diameter based and the AAA infrastructure is
   RADIUS based.

   The Diameter Credit Control Application [DIAMETERCC] describes how to
   implement a prepaid accounting system using an a Diameter based
   infrastructure.

   <This section to be completed.>

4.  Attributes

   This draft section specifies the attributes that implement the RADIUS
   extensions for prepaid.  The namespace for these attributes is using the
   one specified in the RADIUS [RFC2865] namespace.

4.1 base protocol [RFC2865].

4.1.  PPAC Attribute

   The PrepaidAccountingCapability (PPAC) attribute is sent in the
   Access-Request message by a prepaid capable NAS and is used to
   describe the prepaid capabilities of the NAS.  The PPAC is also
   present in an Access-Accept message by the PPS in order to indicate
   the type of metering that is to be applied to this session.

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | TYPE          | LENGTH        | SUBtype 1     | LENGTH        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                    AvailableInClient (AiC)                    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      TYPE  : value of PPAC
      LENGTH: 8
      VALUE : String

      The value MUST be encoded as follows:

      Subtype (=1)          : Subtype for AvailableInClient attribute
      Length                 : Length of AvailableInClient attribute
                               (= 6 octets)
      AvailableInClient (AiC):

      The optional AvailableInClient Subtype, generated by the PPC,
      indicates the metering capabilities of the NAS and shall be bitmap
      encoded. The possible values are: are as follows.

         0x00000001  Volume metering supported.
         0x00000002  Duration metering supported.
         0x00000004  Resource metering supported.
         0x00000008  Pools supported
         0x00000010  Rating groups supported
         0x00000020  Multi-Services supported.
         0x00000040  Tariff Switch supported.

         Others      Reserved

4.2

   Figure 10: PPAC Attribute

4.2.  Session Termination Capability Attribute

   The value shall be bitmap encoded rather than a raw integer.  This
   attribute shall be included RADIUS Access-Request message to the
   RADIUS server and indicates whether or not the NAS supports Dynamic
   Authorization.

      0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | TYPE          | LENGTH        |      String                   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type  : value of Session Termination Capability
      Length: = 4
      String encoded as follows:

      0x00000001  Dynamic Authorization Extensions (rfc3576) is
                  supported.

4.3

   Figure 11: Session Termination Attribute

4.3.  PPAQ Attribute

   One or more PPAQ(TBD) PPAQ attributes are sent in an Access Request, Authorize
   Only Access-Request and Access-Accept messages. message.  In an Access Request
   message, the PPAQ attribute is used to facilitate One-Time charging
   transactions.  In Authorize Only Access-Request messages it is used
   for One-Time charging, report usage and the request for further
   quota.  It is also used in order to request prepaid quota for a new
   service instance.  In an Access-Accept message it is used in order to
   allocate the (initial and subsequent) quotas.

   When multiple services are supported, a PPAQ is associated with a
   specific service as indicated by the presence of a Service-Id, a
   Rating-Group-Id, or the ôAccess Serviceö "Access Service" (as indicated by the absence
   of a Service-Id and a Rating-Group-Id).

   The attribute has type TBD (one octet), a variable length (greater
   than 8, encoded into one octet), and consists of a variable number of
   subtypes.  Unused subtypes are omitted from the message.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | TYPE          | LENGTH        | SUBtype 1     | LENGTH        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        QuotaIdentifier (QID)                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | SUBtype 2     | LENGTH        |        Volume Quota           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Volume Quota               | SUBtype 3     | LENGTH        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  VolumeQuotaOverflow (VQO)    | SUBtype 4     | LENGTH        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        VolumeThreshold (VT)                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | SUBtype 5    | LENGTH         | VolumeThresholdOverflow (VTO) |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | SUBtype 6    | LENGTH         |      DurationQuota (DQ)       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    DurationQuota (DQ)         | SUBtype 7     | LENGTH        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      DurationThreshold (DT)                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | SUBtype 8     | LENGTH        | Update-Reason attribute (UR)  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | SUBtype 9     | LENGTH        | PrePaidServer                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            PrePaidServer                                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | SUBtype 10    | LENGTH        | Service-Id                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | SUBtype 11    | LENGTH        | Rating-Group-Id               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                               | SUBtype 12    | LENGTH        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Termination-Action                                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | SUBtype 13    | LENGTH        | Pool-Id                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                               | SUBtype 14    | LENGTH        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Pool-Multiplier                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | SUBtype 15    | LENGTH        | Resource-Quota                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                               | SUBtype 16    | LENGTH        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Resource-Quota-Overflow                                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  SUBtype 18   | LENGTH        | Resource-Threshold            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Type  : Value  In the
   following subsections the various subtypes of the PPAQ
   Length: variable, greater than 8

   String:  The String value MUST be encoded as follows:

   Subtype (=1):  Subtype for QuotaIDentifier attribute
   Length       :  Length are
   specified.

4.3.1.  Quota Identifier AVP

   The type of the QuotaIDentifier attribute (= is TBD and its length is 6 octets)

   QuotaIDentifier (QID):

      The QuotaIDentifier subtype
   octets.  This AVP is generated by the PPS together with the
   allocation of a Volume or Duration Quota. new quota.  The on-line quota update RADIUS Access-Request Access-
   Request message that is sent from the SAD to the PPS shall include a
   previously received QuotaIDentifier.

   Subtype (=2): Subtype for QuotaIdentifier.

4.3.2.  VolumeQuota attribute
   Length       : length AVP

   The type of the VolumeQuota attribute (= 6 octets)

   VolumeQuota (VQ):

      The optional VolumeQuota subtype is TBD and its length is 12 or
   18 octets.  This AVP is only present if Volume Based volume-based charging is
   used.  In a RADIUS Access-Accept message (PPS to SAD direction), it
   indicates the Volume volume (in octets) allocated for the session by the
   PPS.  In an RADIUS Authorize Only Access-Request message (SAD to PPS
   direction), it indicates the total used volume (in octets) for both forward
   inbound and reverse outbound traffic.

   Subtype (=3): Subtype for VolumeQuotaOverflow
   Length       : length of VolumeQuotaOverflow attribute (= 4 octets)

   VolumeQuotaOverflow (VQO):  The optional VolumeQuotaOverflow subtype is used to indicate how
      many times the VolumeQuota counter has wrapped around 2^32 over
      the course attribute consists of a Value-
   Digits AVP and optionally an Exponent AVP (as indicated in the service being provided.

   Subtype (=4): Subtype for VolumeThreshold attribute
   Length       : length of VolumeThreshold attribute (= 6 octets)
   field).  The Exponent AVP, if present, MUST NOT encode a negative
   number or zero.

4.3.3.  VolumeThreshold (VT): AVP

   The type of the VolumeThreshold Subtype attribute is TBD and its length is 12
   or 18 octets.  This AVP shall always optionally be present if VolumeQuota is
   present in a RADIUS Access-Accept message (PPS to SAD direction).  It
   is generated by the PPS and indicates the volume (in octets) that
   shall be consumed before a new quota should be requested.  This
   threshold should not be larger than the VolumeQuota.

   Subtype (=5): Subtype for VolumeThresholdOverflow
   Length       : Length of VolumeThresholdOverflow attribute
                   (= 4 octets)

   VolumeThresholdOverflow (VTO):  The optional VolumeThresholdOverflow subtype is used to indicate
      how many times the VolumeThreshold counter has wrapped around
      2^32 over the course attribute
   consists of a Value-Digits AVP and optionally an Exponent AVP (as
   indicated by the service being provided.

   Subtype (=6): Subtype for DurationQuota attribute
   Length       : length field).  The Exponent AVP, if present, MUST
   NOT encode a negative number or zero.

4.3.4.  DurationQuota AVP

   The type of the DurationQuota attribute (= is TBD and its length is 6 octets)

   DurationQuota (DQ):

      The
   octets.  This optional DurationQuota Subtype AVP is only present if Duration
      Based duration-based charging
   is used.  In RADIUS Access-Accept message (PPS to SAD direction), it
   indicates the Duration duration (in seconds) allocated for the session by the
   PPS.  It is encoded as an 32 bit unsigned value, in network byte
   order.  In an on-line RADIUS Access-Accept message (PPC to PPS
   direction), it indicates the total Duration
      in duration (in seconds) since the
   start of the accounting session related to the QuotaID.

   Subtype (=7): Subtype for QuotaID of the PPAQ
   AVP in which it occurs.

4.3.5.  DurationThreshold attribute
   Length       : length AVP

   The type of the DurationThreshold attribute (= is TBD and its length is
   6 octets)

   DurationThreshold (DT):

      The DurationThreshold subtype octets.  This AVP shall always optionally be present if DurationQuota is
   present in a RADIUS Access-Accept message (PPS to SAD PPC direction).  It
   represents the duration (in seconds) after which new quota should be
   requested.  This threshold should not be larger than the
   DurationQuota.

   Subtype (=8): Subtype for Update-Reason  It is encoded as a 32 bit unsigned value, in network
   byte order.

4.3.6.  ResourceQuota AVP

   The type of the ResourceQuota attribute
   Length       : is TBD and its length is 12
   or 18 octets.  This optional AVP is only present if resource-based or
   one-time charging is used.  In the RADIUS Access-Accept message (PPS
   to SAD direction) it indicates the resources allocated for the
   session by the PPS.  In RADIUS Authorize Only Access-Request message
   (SAD to PPS direction), it indicates the resources used in total,
   including both incoming and outgoing chargeable traffic.  In one-time
   charging scenarios, the subtype represents the number of Update-Reason units to
   charge or credit the user.  The attribute (= 4 octets) consists of a Value-Digits
   AVP and optionally an Exponent AVP (as indicated by the length
   field).

4.3.7.  ResourceThreshold AVP

   The type of the ResourceThreshold AVP is TBD and its length is 12 or
   18 octets.  The semantics of this AVP follow those of the
   VolumeThreshold and DurationThreshold AVPs.  It consists of a Value-
   Digits AVP and optionally an Exponent AVP.

4.3.8.  Value-Digits AVP

   The type of the Value-Digits AVP is TBD and its length is 10 octets.
   This AVP encodes the most significant digits of a number, encoded as
   a 64 unsigned integer, in network byte order.  If decimal values are
   needed to present the number, the scaling MUST be indicated with a
   related Exponent AVP.  For example, the decimal number 0.05 is
   encoded by a Value-Digits AVP set to 5, and a scaling that is
   indicated with the Exponent AVP set to -2.

4.3.9.  Exponent AVP

   The type of the Exponent AVP is TBD and its length is 6 octets.  This
   AVP contains the exponent value that is to be applied to the
   accompanying Value-Digit AVP.  It contains a 32 bit signed value, in
   network byte order.

4.3.10.  Update-Reason attribute (UR): AVP

   The type of the Update-Reason subtype AVP is TBD and its length is 4 octets.
   This AVP shall be present in the on-line RADIUS Access-Request
   message (SAD (PPC to PPS direction).  It indicates the reason for
   initiating the on-line quota update operation.  Update reasons 4, 5, 6, 7 and 7,
   8 and 9 indicate that the associated resources are released at the
   client side, and that therefore the PPS shall not allocate a new
   quota in the RADIUS Access_Accept Access Accept message.

   1.   Pre-initialization

   2.   Initial Request

   3.   Threshold Reached

   4.   Quota Reached

   5.   TITSU Approaching

   6.   Remote Forced Disconnect
      6.

   7.   Client Service Termination
      7. ôAccess Serviceö Terminated

   8.   "Access Service" Terminated

   9.   Service not established
      9.

   10.  One-Time Charging

   Subtype (=9) : Subtype for PrePaidServer attribute
   Length        : Length

4.3.11.  PrepaidServer AVP

   The type of PrePaidServer
                   (IPv4 = the PrepaidServer AVP is TBD and its length is 6 octets, IPv6= or 18 octets

   PrePaidServer:

      The optional, multi-value PrePaidServer attribute
   octets, for IPv4 and IPv6 addresses respectively.  This optional AVP
   indicates the address of the serving prepaid system. PPS.  If present, the Home
   RADIUS server uses this address to route the message to the serving
   PPS.  The attribute may be sent by the Home RADIUS server.  Multiple
   instances of this subtype MAY be present in a single PPAQ AVP.

   If present in the incoming RADIUS Access-Accept message, the PDSN SAD
   shall send this attribute back without modifying it in the subsequent
   RADIUS Access-Request message, except for the first one.  If multiple
   values are present, the PDSN SAD shall not change their order.

   Subtype (=10) : Subtype for Service ID
   Length         : Length

4.3.12.  Service-ID AVP

   The type of Service ID

   Service-Id:

     Opaque the Service-ID AVP is TBD and its length is undefined.
   This AVP encodes an opaque string that uniquely describes a the service
   instance to which prepaid metering should be applied.  A Service-Id
   could be an IP 5-tuple (source address, source port, destination
   address, destination port, protocol).  If a Service-ID AVP is present
   in the PPAQ PPAQ, the entire PPAQ refers to that service.  If a PPAQ does
   not contain a Service-Id or Rating-Group-ID, then the PPAQ refers to
   the Access Service.

   Subtype (=11) : Subtype for Rating-Group-Id
   Length         :

4.3.13.  Rating-Group-ID AVP

   The type of the Rating-Group-ID is TBD and its length is 6

   Rating-Group-Id

     Identifies octets.

   This AVP indicates that this PPAQ is associated with resources
   allocated to a Rating Group with the corresponding ID.

   Subtype (=12) : Subtype for Termination-Action
   Length         : 6  This field AVP is
   encoded as a 32 bit unsigned value, in network byte order.  A PPAQ
   MUST NOT contain more than one Rating-Group-ID.

4.3.14.  Termination-Action AVP

   The type of the Termination-Action AVP is TBD and its length is 3
   octets.  This AVP contains an enumeration of the action to take when
   the PPS does not grant additional quota.  Valid actions are as follows:
   follows.  (Note that the value 0  Reserved
     1 is reserved.)

   1.  Terminate
     2

   2.  Request More Quota
     3

   3.  Redirect/Filter

   Subtype (=13) : Pool-Id
   Length         :

4.3.15.  Pool-ID AVP

   The type of the Pool-ID) AVP is TBD and its length is 6

   Identifies octets.  This
   AVP identifies the Pool resource pool that this the quota included in this PPAQ
   is to be associated with.

   Subtype (=14) :  It is encoded as a 32 bit unsigned value, in
   network byte order.

4.3.16.  Pool-Multiplier
   Length         : 6 AVP

   The type of the Pool-Multiplier AVP is TBD and its length is 12 or 18
   octets.  The pool-multiplier determines the weight that resources are
   inserted into the pool that is identified by the accompanying Pool-ID
   AVP, and the rate at which resources are taken out of the pool by this service the
   relevant Service or Rating-Group.

   Subtype (=15) : Subtype for Resource-Quota
   Length         : 6  The optional Resource-Quota subtype attribute consists of a Value-
   Digits AVP and optionally an Exponent AVP (as indicated by the length
   field).

4.3.17.  Requested-Action AVP

   The type of the Requested-Action AVP is TBD and its length is 3
   octets.  This AVP can only be present if Resource
      Based or one-time charging is used. In in messages sent from the RADIUS Access-Accept
      message (PPS PPC
   to SAD direction) it the PPS.  It indicates that the Resources
      allocated for user or the session by PPC desires the PPS. In RADIUS Authorize Only
      Access-Request message (SAD PPS to
   perform the indicated action and to return the result.  The PPAQ in
   which a Requested-Action AVP occurs MUST NOT contain a QID, and MUST
   contain a Service-Identifier that, possibly in combination with other
   AVPS, can be used by the PPS direction), it to uniquely identify the service for
   which the indicated action is requested.  The following actions may
   be requested.

   1.  Balance Check

   2.  Price Enquiry

4.3.18.  Check-Balance-Result AVP

   The type of the Check-Balance-Result AVP is TBD and its length is 3
   octets.  This AVP can only be present in messages sent from the PPS
   to the PPC.  It indicates the
      resources used balance check decision of the PPS about
   a previously received Balance Check Request (as indicated in total, including both incoming a
   Requested-Action AVP).  Possible values are 0 for "success" and outgoing
      chargeable traffic. In one-time charging scenarios, 1 for
   "failure" and mean that sufficient funds are available (resp. are not
   available) in the subtype user's prepaid account.  The PPAQ in which a Check-
   Balance-Result occurs MUST NOT include a QID, because no quota is
   reserved by the PPS.

4.3.19.  Cost-Information AVP

   The type of the Cost-Information AVP is TBD and its length is
   variable.  This AVP is used in order to return the cost information
   of a service, which the PPC can transfer transparently to the end
   user.  This AVP is sent from the PPS to the PPC as a response to a
   "Price Enquiry", as indicated by the Requested-Action AVP.  This AVP
   consists of four further AVPs, as follows.

   1.  Value-Digits ASP: this encodes the most significant digits of the
       monetery value that represents the number cost in question.

   2.  Exponent AVP: this encodes the exponent that applies to the
       Value-Digits AVP.

   3.  Currency-Code AVP: the type of units this AVP is TBD, and its length is
       4 octets.  It encodes the currency code, as defined in the ISO
       4217 standard.

   4.  Cost-Unit AVP: the type of this AVP is TBD and its length is
       variable.  It carries a UTF8String encoded human readable string
       that can be displayed to charge or credit the end user.

   Subtype (=16) : Subtype for Resource Quota Overflow
   Length         : 6

   Subtype (=18) : Subtype for ResourceThreshold
   Length         : 6  It specifies the
       applicable unit to the Cost-Information when the service cost is
       a cost per unit (e.g., cost of the service is $1 per minute).
       The Cost-Unit can be minutes, hours, days, kilobytes, megabytes,
       etc.

   Example: the cost of 7.75 Malawi kwacha per hour would be encoded as
   follows.  Value-Digits = 775, Exponent = -2, Currency Code = 103, and
   Cost-Unit = "hour".

   The PPAQ in which a Cost-Information occurs MUST NOT include a QID,
   because no quota is actually reserved by the PPS.

   NOTES: Either Volume-Quota, Time-Quota, or Resource-Quota MUST appear
   in the PPAQ attribute. If Volume Quota appears, Volume Threshold may also
   appear.  A PPAQ MUST NOT contain more than one
   Service-Id, MUST NOT contain more than one Rating-Group-Id, and MUST
   NOT contain both a Service-Id and a Rating-Group-Id.  A PPAQ that
   does not contain a Service-ID or a Rating-Group-Id
   applies refers to the ôAccess Serviceö.

   When the
   "Access Service".  A PPAQ MUST NOT contain more than one Pool-Id.  A
   PPAQ that contains a Pool-Id it MUST also contain the Pool-
   Multiplier.

4.4 a Pool-Multiplier AVP.

4.4.  Prepaid Tariff Switching Attribute (PTS)

   This specification defines the PTS attribute to allow which allows for
   changeovers from one rate to another during service provision.
   Support for tariff switching is OPTIONAL optional for both the PPC and the
   PPS.  PPCs use the flag "Tariff Switching supported" of the
   AvailableInClient subtype of the PPAC attribute in order to indicate
   support for tariff switching.  PPSs employ the PTS attribute in order
   to announce their support for tariff switching.  Details of this will
   be specified after the format of the PTS attribute has been defined.

   If a RADIUS message contains a PTS attribute, it MUST also contain at
   least one PPAQ attribute.  If a RADIUS Access-Request message
   contains a PTS attribute or a "Tariff Switching supported" flag, it
   MUST also contain an Event-Timestamp RADIUS attribute (see
   [RFC2869]).

    0               1               2               3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | TYPE          | LENGTH        | SUBtype 1     | LENGTH        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | QuotaIDentifier (QID)                                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | SUBtype 2     | LENGTH        | VolumeUsedAfter-              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | TariffSwitch (VUATS)          | SUBtype 3     | LENGTH        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | VUATSOverflow (VUATSO)        | SUBtype 4     | LENGTH        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | TariffSwitchInterval (TSI)                                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | SUBtype 5    | LENGTH         | TimeIntervalAfter-            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | TariffSwitchUpdate (TITSU)    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Type  : Value [3]).

   The type of the PTS
   Length: variable, at least 8
   Subtype (=1):  QuotaIDentifier (QID)
   Length      :  Length of QuotaIDentifier Subtype (= 6 octets)

      The QID subtype attribute is TBD and its lengh is variable.  It
   contains one or more subtypes, as follows.  Every PTS AVP MUST be present
   include a QuotaIdentifier AVP as specified in each PTS attribute. Section 4.3.1.  In an
   online RADIUS Access-Request message sent from the PPC to the PPS, its value MUST be
   the QuotaIdentifier AVP must contain a quota identifier received that was
   previously received from the PPS and MUST be the same as a quota
   identifier of one of the PPAQ attributes included the same RADIUS
   message.

   A PPAQ attribute that is transported along with a PTS attribute and
   has the same quota identifier value as the PTS attribute in its own
   QID subfield shall be referred to as the "accompanying PPAQ
   attribute".  If a PPS receives an Access-Request message from a PPC,
   it associates a unique quota identifier to this request.  Thus, a
   quota identifier also identifies a particular service.

   Subtype (=2):

   The PTS AVP contains a number of other subtype AVPs which are
   specified in the following subsections.

4.4.1.  VolumeUsedAfterTariffSwitch (VUATS)
   Length      :  Length AVP

   The type of the VolumeUsedAfterTariffSwitch Subtype
                  (= 6 octets) attribute is TBD and its
   length is 12 or 18 octets.  The VolumeUsedAfterTariffSwitch subtype
   SHALL be used in online RADIUS Access-Request messages (PPC to PPS
   direction).  It indicates the volume (in octets) used during a
   session after the last tariff switch for the service specified via
   the QID subfield and the accompanying PPAQ attribute.  The attribute (see the remarks under
      "Subtype 1: QID").

   Subtype (=3):  VUATSOverflow (VUATSO)
   Length      :  Length
   consists of VUATSOverflow Subtype (= 4 octets)

      If an online RADIUS Access-Request message contains a VUATS
      subfield Value-Digits AVP and if the VolumeUsedAfterTariffSwitch has wrapped
      around 2^32 over the course of provisioning the service
      identified via the QID subfield, then the VUATSO subfield MUST be
      present in the PTS attribute.  In this case, it indicates how
      many times the VolumeUsedAfterTariffSwitch has wrapped around
      2^32.  In all other cases, the VUATSO subfield MUST NOT be
      present optionally an Exponent AVP (as
   indicated in the PTS attribute.

   Subtype (=4): length field).

4.4.2.  TariffSwitchInterval (TSI)
   Length      :  Length AVP

   The type of TSI Subtype (= the TariffSwitchInterval is TBD and its length 6 octets)

      The TSI subtype octets.
   This AVP MUST be present in each PTS attribute that is part of a
   RADIUS Access-Accept message (PPS to PPC direction).  It indicates
   the interval (in seconds) between the value of Event-Timestamp RADIUS
   attribute (see [RFC2869]) [3]) of the corresponding RADIUS Access-Request
   message and the next tariff switch condition.

   Subtype (=5):

4.4.3.  TimeIntervalafterTariffSwitchUpdate (TITSU)
   Length      :  Length AVP

   The type of TITSU Subtype
                  (= the TimeIntervalafterTariffSwitchUpdate (TITSU) AVP is
   TBD and its length is 6 octets) octets.  The PPS MUST include the TITSU subtype this AVP if
   there is another tariff switch period after this period. the period that ends as
   indicated by the TSI attribute.  The TITSU attributes attribute encodes the
   number remaining seconds of current the tariff period. period that begins immediately after the
   period that ends as indicated by the TSI attribute.  If this the TITSU
   attribute is zero or omitted, it is the PPC assumes that the current tariff period
   which ends as indicated by the TSI attribute lasts until further
   notice.  If TITSU is specified, the PPC must MUST send a quota update
   before the current period ends. point in time specified by the TITSU attribute (see
   Figure 9).

   If a RADIUS message contains a PTS attribute, it MUST also contain at
   least one PPAQ attribute.  The PTS is associated with the PPAQ by the
   QID.  If multiple services are supported and if the PPAQ is
   associated with a service as indicated by the Service-Id sub-
   atrribute of the PPAQ, Service-ID AVP, then
   the PTS refers to the tariff switch for that service.  If the PPAQ
   does not have a Service-Id, Service-ID, then the PTS refers to tariff switch for
   the Access-Service.

   If a PPC supports tariff switching then it MUST set the 0x00000040
   (Tariff switching supported) flag of the AvailableInClient subtype of
   the PPAC attribute that is contained in the Access-Request packet
   starting the session.

4.5
   Table of Attributes

   TO BE COMPLETED.

   Request   Accept   Reject   Challenge      #    Attribute

   Authorize_Only Request Accept Reject

5.
  Security Considerations

   The extended  Translation between RADIUS prepaid and Diameter Credit Control

   In scenarios where the service metering device uses the "RADIUS
   prepaid" (RPP) protocol described in this document is subject
   to for accounting and prepaid charging while the
   AAA infrastructure uses the "Diameter Credit Control" (DCC) protocol,
   a number translation agent that enables the interoperation of potential attacks, both systems,
   is desirable.  This also applies vice versa, i.e. in scenarios where
   the AAA infrastructure uses RADIUS and the service metering device
   uses Diameter.

   The idea of such a manner similar translation agent would be to convert incoming RPP
   (resp. DCC) messages into outgoing DCC (resp. RPP) messages.  It
   would be, in principle, desirable for the translation agent to be
   stateless.  That is, the agent should not be required to internally
   maintain information about each ongoing RADIUS
   without these extensions. It is recommended that IPsec or Diameter session.
   However, under the current specification of RPP and DCC, this appears
   to be employed impossible due to protect against certain a number of reasons.  These include the attacks.

   If IPsec
   following.

   1.  The transport mechanism for DCC is not available, usage TCP, which requires per-
       session state to be maintained at both endpoints of the extensions described
       communication.  Note, however, that, in this
   document improve principle, each DCC
       message could be sent over a dedicated TCP connection which is
       torn down as soon as the overall security message is sent.  This, however, is
       likely to be unacceptable in terms of RADIUS. The various
   security enhancements are explained efficiency.

   2.  While RPP messages encode the cumulative amount of consumed/
       requested resources, DCC messages carry the difference from the
       previous message.  This means that the translation agent has to
       maintain the current amount of consumed/requested resources in
       order to be able to calculate the following sections.

5.1
   Authentication correct amount to be put into
       an outgoing message.

   The translator maps each incoming RPP (resp. DCC) message into an
   outgoing DCC (resp. RPP) message, and Authorization

   RADIUS possibly establishes or updates
   local state that is susceptible to replay attacks during associated with the Authentication
   and Authorization procedures.  A successful replay session.  The translated
   (i.e. outgoing) message is a function of the initial
   Access-Request could result in incoming message as well
   as existing state that is associated with the current session.

   Translation occurs on an allocation attribute-by-attribute basis.  Certain
   attributes are translated without consideration of an initial quota.

   To thwart local per-session
   state.  Other attributes, namely those that are bound to a particular
   session, require such an attack...

5.2
   Replenishing Procedure

   A successful replay attack of consideration.  The translation agent has to
   identify the Authorize Only Access-Request
   could deplete session (and possibly subsession) an incoming message
   belongs to in order to consult the subscribers prepaid account.

   To appropriate local per-session
   state.

   Note that certain DCC attributes cannot be completed.

6.
  IANA Considerations translated due to their
   semantics not being present in RPP, and vice versa.  This document requires results in
   the assignment of new Radius messages, in which these attributes type
   numbers for occur, not being delivered to
   their intended destination.  In such cases it is desirable to inform
   the following attributes:

   1) Prepaid-Accounting-Capability (PPAC)
        with subtype:
          AvailableInClient

   2) Prepaid-Accounting-Operation (PPAQ)
        with subtypes:
          QuotaID (QID)
          VolumeQuota (VQ)
          VolumeQuotaOverflow (VQO)
          VolumeTreshold (VT)
          VolumeTresholdOverflow (VTO)
          DurationQuota (DQ)
          DurationTreshold (DT)
          UpdateReason (UR)
          PrePaidServer (PPS)
          ServiceID (SID)
          RatingGroupId (RGID)
          TerminationAction (TA)
          PoolID (PID)
          PoolMultiplier (PM)
          Cost (COST)
          TariffChangeTime (TCT)

   3) Prepaid-Tariff-Switch (PTS)

   4) Session-Termination-Capability (STC)

   5) International-Mobile-Subscriber-Identity (IMSI)

7.
  Normative References

   [RFC2026]       Bradner, S., "The Internet Standards Process --
                   Revision 3", RFC 2026, October 1996.
   [RFC2119]       Bradner, S., "Key words for use originator about the failure and terminate the session.

   In each scenario (i.e.  RPP client / DCC AAA infrastructure and DCC
   client / RPP AAA infrastructure), the translator operates in RFCs two
   directions, namely RPP to Indicate
                   Requirement Levels", RFC 2119, March 1997.
   [RFC2865]       Rigney, C., Rubens, A., Simpson, W. DCC and S. Willens,
                   "Remote Authentication Dial vice versa.  In User Server
                   (RADIUS)", RFC 2865, June 2000.

   [RFC2866]       Rigney, C., "RADIUS Accounting", RFC 2866, June
                   2000.

   [RFC2869]       Rigney, C., Willats, W., Calhoun, P., "RADIUS
                   Extensions", RFC 2869, June 2000.

   [RFC2868]       Zorn, G., Leifer, D., Rubens, A., Shriver, J.,
                   Holdrege, M., Goyret, I., "RADIUS Attributes for
                   Tunnel Protocol Support" , RFC 2868, June 2000.
   [RFC3576]       Chiba, M., Dommety, G., Eklund, M., Mitton, D.,
                   Aboba, B., "Dynamic Authorization Extensions to
                   Remote Authentication Dial-In User Service
                   (RADIUS)", RFC 3576, February 2003.

   [RFC3748]       Aboba, B., et al., "Extensible Authentication
                   Protocol", RFC 3748, June 2004.

8.
  Informative References

   [DIAMETERCC]    Hakkala, H., et al., "Diamter Credit-Control
                   Application", Internet Draft, AAA WG, April 2004,
                   Work the following
   sections, the notation c->s means that the attribute in Progress.

   [REDIRECT]      "RADIUS Redirection", Internet Draft, Work question may
   occur only in
                   progress.

9.
  Call Flows

   This section describes the flows associated with various scenarios direction from the client to the server.  The
   notation s->c denotes the converse and the notation c<->s denotes
   that the attribute may occur in messages that are mentioned directed in this document. either
   direction.

5.1.  Session Identification

   The following fields are used translation agent has to keep per-session state in the call flows:

   RADIUS packets:

     AR      Access Request
     ARA     Access Accept
     AC      Accounting Requests order to
   perform its task.  A       Authorize-Only Access-Request
     AA      Access-Accept for Authorize-
             Only Access-Request

   RADIUS Attributes:

     PPAQ     PPAQ as defined in this
              specification
     SID      One session may be identified based on the RPP
   identifier or more attributes
              representing the Session that DCC session identifier.  That is, the RADIUS packets is correlated
              to.
     PPAC     PPAC as defined translation
   agent should always maintain a pair of (RPP, DCC) session identifiers
   and maintain the per-session state in this
              specification
     ASID     Acct-Session-Id as defined by
              RADIUS
     MSID     Acct-Multi-Session-Id as define association with that pair.
   This per-session state must be addressable by either of these two
   identifiers.  Moreover, an RPP session identifier must uniquely
   correspond to a DCC identifier.  (If this holds, the converse also
   holds.)  Each subsession identifier within an RPP session must also
   uniquely correspond to a subsession identifier within its
   corresponding DCC session.  (If this holds the converse also holds.)

5.2.  Translation between RADIUS

   PPAQ fields:

     SRVID   Service-Id
     Reason  Update-Reason
     QID     Quota-Id

9.1
   Simple Concurrent Services prepaid client and Diameter Credit
      Control AAA infrastructure

   This section describes the translator in the "RPP client / DCC AAA
   infrastructure" case.  In other words, in this scenario section it is assumed
   that the PPC authenticates client "talks" RPP and authorizes the user. AAA inftrastructure "talks" DCC.
   The
   PSS responds translator is assumed to sit somewhere in the middle and to
   mediate between client and server.

   For each RPP AVP (i.e.  AVP that is specified in the present
   document), the transformation into a semantically equivalent DCC AVP
   (if such an AVP exists), along with Quota for what per-session state the ôAccess Serviceö instance.  The NAS
   then request quota for Service-A.

   Accounting
   translator has to create or consult, is described.  For clarity of
   exposition, each RPP AVP is turned on.

          NAS/                                                RADIUS/ addressed in a separate subsection.
   Since in this scenario, the PPC                                                 PPS
          ===                                                 ===
           |                                                   |
           |  AR{SID,PPAC}                                     |
      A    |-------------------------------------------------->|
           |                                                   |
           |  ARA{SID,PPAQ(QID=1,Q=100)}                       |
      B    |<--------------------------------------------------|
           |                                                   |
           |  AC(start){ASID=25,MSID=13}                       |
      C    |-------------------------------------------------->|
           |                                                   |
           |  A{SID,PPAQ(SRVID=SA, Reason=Initial}             |
      D    |-------------------------------------------------->|
           |                                                   |
           |  AA{SID,PPAQ(QID=200,SRVID=SA, Q=50)}             |
      E    |<--------------------------------------------------|
           |                                                   |
           |  AC(start){ASID=30,MSID=13, PPAQ }                |
      F    |-------------------------------------------------->|
           |                                                   |
           |  A{SID, PPAQ(QID=200 SRVID=SA, Q=50 Reason=Quota)}|
      G    |-------------------------------------------------->|
           |                                                   |
           |  AA{SID,PPAQ(QID=300,SRVID=SA, Q=100)}            |
      H    |<--------------------------------------------------|
           |                                                   |
           |  A{SID,                                           |
           |     PPAQ(QID=1, Q=100 Reason=Quota),              |
           |     PPAQ(QID=300, SRVID=SA  Q=100 Reason=Quota)}  |
      I    |-------------------------------------------------->|
           |                                                   |
           |  AA{SID,
           |      PPAQ(QID=3, Q=200),                          |
           |      PPAQ(QID=303, SRVID=SA Q=150)}               |
      J    |<--------------------------------------------------|

   A     This is typically the initiator a session,
   the focus is on the initial Access-Request RPP AVPs.

5.2.1.  PPAC (c<->s)

   A DCC client is assumed to always support Volume metering, Duration
   metering, Resource metering, Pools, Rating groups, and Tariff
   Switching.  Thus, if a PPAQ that indicates the prepaid
         capabilities any of the NAS.  In this example indicates that
         Concurrent Sessions are supported.  Access-Request also
         includes SID (Session Id) which above is sent
   client->server, the Session Identifier
         assigned by this NAS translator does the following: It lets message go
   through but remembers what exactly the client supports.  If the
   server later requests (servier -> client direction) an unsupported
   metering to session. be performed, send failure to server and cause the
   session to be terminated at the client.

   If a PPAC indicates support for multiple services (0x00000020), the
   translator maps this onto a DCC Multiple-Services- Indicator AVP.

5.2.2.  Service Termination Attribute (c->s)

   The formal of Diameter base protocol assumes that the client always supports
   dynamic session
         identifier termination.  If this AVP is outside present, the scope of translator
   does not need to do anything, i.e. there exists no DCC AVP that this document.
   B     RADIUS authenticates
   AVP can be mapped to.  If this AVP is absent, the user message in which it
   appears should either be discarded and determines that he has originator should be informed
   of a
         prepaid account. RADIUS responds with failure, or the message can be passed on (without this AVP being
   mapped onto a PPAQ for DCC AVP).  However, in the latter case, the translator
   has to remember that the ôAccess
         Serviceö (PPAQ client does not contain a Service-ID or Rating-Group-
         ID).  The PPAQ support dynamic termination.
   Thus, the translatior has a QID=1 assigned to initiate the normal session termination
   procedure with the client when (if) dynamic termination is later
   initiated by the Prepaid System and server.

5.2.3.  Quota of Q=100.  The Identifier Attribute (c<->s)

   When quota could be is allocated for the first time or volume and may or
         may not have a threshold associated with it.
   C     The NAS starts by the Access Service and generates an Accounting-
         Request (Start) message DCC server, the
   translator has to create a QID AVP, as normal.  It includes required by this
   specification.  The translator later uses a QID AVP that is sent in
   the Acct-
         Session-Id and may include client-to-server direction in order to identify the Acct-Multi-Session-Id.
   D corresponding
   DCC session.  The NAS is about QID has to start be saved in the translator's per session
   state.

5.2.4.  Volume Quota Attribute (c<->s)

   If this AVP occurs in a new Service, call message that is sent in the server-to-client
   direction, it Service-A.
         It sends is translated into a Granted-Service-Unit AVP with an Authorize-Only access request to RADIUS.  The SID
         links
   embedded CC-Total-Octets AVP. [editor's note: this Authorize-Only access request sentence belongs
   to the initial
         Authentication & Authorization (Step-A and Step-B).The
         Authorize-Only message contains a PPAQ requesting quota for
         Service-A, Update-Reason other translation type, i.e.  AAA = Initial-Request.

   E     The PPS checks the resources available to the user RPP and assigns
         50 units (time/volume etc) to client = DCC.]

   If this service. RADIUS sends an
         Access Accept AVP occurs in a message contain that is sent in the client-to-server
   direction, then it is translated into a PPAQ assigning Used-Service-Unit AVP with an
   embedded CC-Total-Octets AVP.  Note that only the difference between
   current cumulative quota Q=50 for
         Service-A.  The PPAQ contains a QID = 200.
   F     The NAS starts Service-A the (sub)session and sends the quota in
   incoming messages is indicated in the translated DCC message.  Local
   state is updated with cumulative consumed resources.

   Conversely, if the server grants quota using the DCC Granted-Service-
   Unit AVP with an Accounting-Request
         (Start) message for that service. Acct-Multi-Session-Id can embedded CC-Total-Octets AVP, then the translation
   agent must translate this into a Volume Quota Attribute.  Again,
   local state must be
         used to tie all of consulted so that the sessions cumulative amount of octets
   is indicated in the accounting streams
         together.
   G Volume Quota for Service-A requires refreshing, the quota was
         completely used).  An Authorize-Only attribute.

5.2.5.  Duration Quota Attribute (c<->s)

   If this AVP occurs in a message that is sent
         containing in the server-to-client
   direction, it is translated into a PPAQ Granted-Service-Unit AVP with QID = 200 which corresponds an
   embedded CC-Time AVP. [editor's note: this sentence belongs to the
         prior QID received for
   other translation type, i.e.  AAA = RPP and client = DCC.]

   If this service.  Note QID AVP occurs in a message that is sufficient
         for sent in the PPS server to link this request to client-to-server
   direction, then it is translated into a Used-Service-Unit AVP with an
   embedded CC-Time AVP.  Note that only the previous
         request difference between current
   cumulative quota for the (sub)session and hence to the original authentication steps.
         Therefore SID quota in incoming
   messages is not really required. The PPAQ will report indicated in the
         used part of translated DCC message.  Local state is
   updated with cumulative consumed resources (i.e. time).

   Conversely, if the server grants quota (50 units).
   H     RADIUS deducts using the used quota from DCC Granted-Service-
   Unit AVP with an embedded CC-Time AVP, then the users accounts and
         reserves 50 more additional units for translation agent
   must translate this into a total quota Duration Quota attribute.  Again, local
   state must be consulted so that the cumulative amount of 100
         (Q=100) for Service-A. It sends back seconds is
   indicated in the Duaration Quota attribute.

5.2.6.  Resource Quota Attribute (c<->s)

   If this AVP occurs in a PPAQ message that is sent in the server-to-client
   direction, it is translated into a Granted-Service-Unit AVP with QID=300.
   I     NAS needs an
   embedded CC-Service-Specific-Units AVP. [editor's note: this sentence
   belongs to refresh both the ôAccess Serviceö other translation type, i.e.  AAA = RPP and Service-A.
         It sends an Authorize Only client =
   DCC.]

   If this AVP occurs in a message contain two PPAQs, one for that is sent in the Main Service client-to-server
   direction, then it is translated into a Used-Service-Unit AVP with QID=1 and one an
   embedded CC-Service-Specific-Units AVP.  Note that only the
   difference between current cumulative quota for Service-A with
         QID=300.  Each PPAQ reports the resources that were consumed
         so far (sub)session and
   the reason why quota in incoming messages is indicated in the update translated DCC
   message.  Local state is being sent.
   J     RADIUS responds back updated with two PPAQs.  The PPAQ without cumulative consumed resources
   (i.e. resources).

   Conversely, if the
         Service-Id server grants quota using the DCC Granted-Service-
   Unit AVP with an additional 100 units for embedded CC-Service-Specific-Units AVP, then the
   translation agent must translate this into a total Resource Quota
   attribute.  Again, local state must be consulted so that the
   cumulative amount of 200 resource units to is indicated in the ôAccess Serviceö û QID=3; Resource
   Quota attribute.

   Note that the other PPAQ,
         containing SRVID=SA grants an additional 50 units for "resource" type is application dependent.  This means
   that a total
         quota DCC application unit corresponds to service-a n RPP application units,
   where n may be any real number.  If n is not 1, then the RPP/DCC
   translator must be aware of 150 that and translate resource units û QID=303.

         This step illustrates why SRVID needs to be specified
   accordingly.

5.2.7.  Value Digits Attribute (c<->s)

   The encoding of this AVP is similar in RPP and DCC, and the
         PPAQ.  Without value it  the NAS would be unable to differentiate
         between the PPAQs. QIDs are not sufficient to correlate the
         PPAQ to a service since they
   holds may have to be changed by the PPS at
         every transaction.

   Note how each PPAQ attribute represents a sequential conversation
   about a service between the PPC and the PPS evaluated in this example.  The
   links between the messages are conjunction with an acommpanying
   "Exponent" AVP.  It should be kept in mind that, in RPP the QIDs and
   cumulative amount of granted/consumed quota is typically encoded into
   an AVP of this type, while in DCC only the Service-Ids.

   Also note that difference from a SID previous
   message.

5.2.8.  Exponent Attribute (c<->s)

   The encoding of this AVP is needed to tie similar in RPP and DCC, and the Authorize-Only messages value it
   holds may have to be evaluated in conjunction with an acommpanying
   "Value Digits" AVP.  It should be kept in mind that, in RPP the Authentication steps.  This SID
   cumulative amount of granted/consumed quota is typically encoded into
   a related "Value Digits" and "Exponent" AVP pair, while in DCC only really needed
   the first
   time difference from a PPAQ is sent.

   Although accounting messages have an Accounting-Session-ID, that previous message is encoded into such a pair.

5.2.9.  Volume/Duration/Resource Threshold Attributes (s->c)

   In DCC the concept of "threshold" does not enough to enable exist.  Instead, the back end system DCC
   client is assumed to associate that
   accounting message with a particular Service.  We therefore need ask for the
   PPAQ replenishment of quota in the accounting message.

9.2
    One-time Charging good time.
   In this One-time charging example, RPP, on the PPC authenticates and
   authorizes other hand, the user and requests charging for server may optionally include a service event
   requested by the user.  The PPC already knows the price
   threshold AVP, as an indication to charge
   for the service event identified by SRVID=SA.

Contributor

   We would like to thank Hannes Tschofenig for his contributions to
   this draft.

Acknowledgments

   The authors would like PPC about when to thank Mark Grayson (Cisco), Nagi Jonnala
   and Tseno Tsenov ask for their contribution to
   quota replenishment.

   Thus, in this draft.

Author's Addresses

   Avi Lior                           Parviz Yegani, Ph.D.
   Bridgewater Systems                Mobile Wireless Group
   303 Terry Fox Drive                Cisco Systems
   Suite 100                          3625 Cisco Way
   Ottawa Ontario                     San Jose, CA 95134
   Canada                             USA
   avi@bridgewatersystems.com         pyegani@cisco.com

   Kuntal Chowdhury                   Hannes Tschofenig
   Starent Networks                   Siemens
   30 International Place, 3rd Flr    Otto-Hahn-Ring 6
   Tewksbury, MA 01876                81739 Munich
   kchowdhury@starentnetworks.com     Germany
                                      hannes.tschofenig@siemens.com

   Christian Guenther
   Siemens
   Otto-Hahn-Ring 6
   81739 Munich
   Germany
   christian.guenther@siemens.com

Intellectual Property Statement

   The IETF takes scenario, there is no position regarding need for the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed translator to pertain to the implementation or use of the technology described
   in this document or ever
   include a threshold attribute into the extent to which any license under such
   rights might or might not be available; nor does it represent messages that it has made any independent effort sends to identify any such rights.
   Information on the IETF's procedures with respect
   PPC.  If, however, there is a need for a threshold attribute to rights in IETF
   Documents can be found
   present in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made order to obtain avoid a general license or permission for the use
   of such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository
   at http://www.ietf.org/ipr. possible service provision

5.2.10.  Update Reason Attribute (c->s)

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology DCC AVP that may be required is semantically closer to implement
   this standard. Please address the information to Update Reason AVP than
   any other AVP is the IETF at ietf-
   ipr@ietf.org.

Disclaimer of Validity CC-Request-Type AVP.  This document and AVP indicates whether
   the information contained herein are provided on
   an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE
   REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE
   INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR
   IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
   THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Copyright Statement

   Copyright ¨ The Internet Society (2005). This document message is subject to
   the rights, licenses and restrictions contained in BCP 78, and
   except as set forth therein, the authors retain all their rights.

Expiration Date

   This memo which it appears is filed as draft-lior-radius-extensions-for-prepaid-
   06.txt, and will expire 20 July, 2005.

10.
   Appendix A û use cases

   In this appendix we present intended to indicate an "initial",
   an "intermediate" or a set "final interrogation".  Morever, in case of use cases and scenarios based
   on which
   the extensions in session being terminated at the client, it indicates the reason
   for this document were designed. It is
   assumed that termination.

   The following list lists the subscriber possesses a valid prepaid account possible values of an "Update Reason"
   attribute, along with a
   service provider, corresponding values for example a WLAN operator.

   In order to maintain generality, the use cases refer to the
   communications between CC-Request-Type
   AVP.

   o  Pre-initialization: No action/value defined.

   o  Initial Request: Typically an "intial interrogation" is triggered
      as a result of the SAD and reception of the network. message that contains this
      Update Reason AVP.  Hence, CC-Request-Type AVP indicates
      "INITIAL_REQUEST".

   o  Threshold Reached: The connection
   between the UserÆs Device and reception of the SAD, which message containing this
      Update Reason AVP typically involves
   setting up a layer 2 session, e.g. a PPP session or a GPRS PDP
   Context, is specific to a given network technology and the details
   do not affect the operation triggers an "intermediate
      interrogation".  Hence, CC-Request-Type AVP indicates
      "UPDATE_REQUEST".

   o  Quota Reached: The reception of the prepaid service.

10.1
    Simple prepaid use case

   A subscriber connects to his home network. As usual, message containing this Update
      Reason AVP typically triggers an "intermediate interrogation".
      Hence, CC-Request-Type AVP indicates "UPDATE_REQUEST".

   o  TITSU Approaching: The reception of the Access
   Device message containing this
      Update Reason AVP typically triggers an "intermediate
      interrogation".  Hence, CC-Request-Type AVP indicates
      "UPDATE_REQUEST".

   o  Remote Forced Disconnect: Reception of such an Update Reason
      indicates that is servicing the subscriber uses the AAA infrastructure
   to authenticate and authorize client has terminated the subscriber. session.  The SAD sends a RADIUS Access-Request to
      corresponding value for the AAA server in order to
   authenticate and authorise CC-Request-Type AVP is
      "TERMINATION_REQUEST".

   o  Client Service Termination: Reception of such an Update Reason
      indicates that the subscriber with respect to client has terminated the
   requested service. session.  The Access-Request contains the subscriber
   credentials and may contain
      corresponding value for the prepaid capabilities CC-Request-Type AVP is
      "TERMINATION_REQUEST".

   o  "Access Service" Terminated: Reception of such an Update Reason
      indicates that the SAD.
   Prepaid capabilities MUST be included if client has terminated the SAD supports them. session.  The AAA System proceeds with
      corresponding value for the authentication procedure.  This may
   involve several message exchanges CC-Request-Type AVP is
      "TERMINATION_REQUEST".

   o  Service not established: Reception of such as in EAP [RFC2284].  Once an Update Reason
      indicates that the subscriber client has been authenticated, terminated the AAA system determines
   that session.  The
      corresponding value for the subscriber CC-Request-Type AVP is
      "TERMINATION_REQUEST".

   o  One-Time Charging: Such an Update Reason indicates that a prepaid subscriber and requests
   authorisation. one-time
      charging event is initiated by the client.  The request corresponding
      value for the CC-Request-Type AVP is "EVENT_REQUEST".  Note that a
      "Requested-Action: AVP MUST include also be included in the prepaid capabilities outgoing DCC
      message.  Typically, this would be of the serving SAD. type "DIRECT_DEBITING",
      or "REFUND_ACCOUNT", depending on other AVPs present in the
      message.

5.2.11.  PrepaidServer Attribute (s<->c)

   The system validates that PPC typically never sets the subscriber has value of a prepaid account and
   that the account is active. It further validates PrepaidServer attribute.
   Instead, it repeats those values that it receives from the SAD has AAA
   infrastructure, in this scenario from the appropriate prepaid capabilities. If all translator.  This attribute
   is therefore not used in order, a translation scenario.  Nevertheless, the
   prepaid system authorises
   translator must make sure that messages about the subscriber same RPP session
   are forwarded to use the network.
   Otherwise it rejects same DCC server, throughout the request. The decision is sent whole session.
   This may be easy to guarantee since the AAA
   system. transport of Diameter is TCP.

5.2.12.  Service-ID Attribute (s<->c)

   The response includes attributes to indicate the allocation DCC equivalent of a portion of the subscriberÆs credit. This portion RPP "Service-ID" AVP is called the
   ôinitial quotaö (in units combination of time or volume)
   Service-Context-Id and optionally Service-Identifier AVPs.  The translator must
   keep a
   threshold value.

   A portion only static equivalence table of the userÆs funds is allocated because RPP Service-ID and the user may
   be engaged
   corresponding DCC combination in other services that may draw order to correctly translate an RPP
   service identifier into DCC and back.

5.2.13.  Rating-Group-ID Attribute (s<->c)

   The DCC equivalent of a RPP "Rating-Group-ID" AVP is also called a
   "Rating-Group-ID".  Depending on the configuration, this AVP may
   contain the same account. For
   example, value on both the user may be engaged in a data session RPP and a voice
   session. Although these two services would draw from the same
   account, they form separate parts DCC side of the overall system.  If
   communication.  If, however, static rating groups are configured
   between the
   entire quota was allocated to RCC client and the data session then translator, and different rating
   groups between the user would
   have no more funds for a voice session.

   The AAA system incorporates DCC server and the attributes received from translator, then the prepaid
   System into an Access-Accept message that it sends translator
   has to the SAD. Note
   that the AAA system is responsible maintain a static translation table for authorizing the service
   whereas rating group
   identifier.  In any case, the prepaid system translation of a rating group AVP, is responsible for prepaid authorization.

   Upon receiving
   not a function of the Access-Response, translator's local per-session state.

5.2.14.  Termination-Action Attribute (s->c)

   The DCC equivalent of the SAD starts "Termination-Action" AVP is called the prepaid data
   session
   "Final-Unit-Action" AVP.  In this scenario (RPP client and meters DCC AAA
   infrastructure), a DCC "Final-Unit-Action" AVP is translated into a
   "Termination-Action" AVP.  The following list contains the session based on time or volume, as indicated possible
   "Final-Unit-Action" values along with their "Termination-Action"
   equivalent.

   o  TERMINATE (DCC): This value has a direct equivalent in RPP, also
      called "Terminate".

   o  REDIRECT (DCC): If this value appears in a "Final-Unit-Action"
      AVP, then a "Redirect-Server-Address" AVP must also appear in the
      same DCC message.

   Once the usage for  The translator translates these two AVPs into a
      "Termination-Action" with value "Redirect/Filter" and an
      eqiovalent NAS-Filter-Rule attribute (specified in http://
      www.ietf.org/internet-drafts/draft-ietf-radext-ieee802-00.txt).

   o  RESTRICT_ACCESS (DCC): If this value appears in a "Final-Unit-
      Action" AVP, then a "Restriction-Filter-Rule" AVP must also appear
      in the session approaches same DCC message.  The translator translates these two AVPs
      into a "Termination-Action" with value "Redirect/Filter" and an
      eqiovalent Filter-ID attribute (specified in http://www.ietf.org/
      internet-drafts/draft-ietf-radext-ieee802-00.txt).

   o  In the allocated limit (as
   expressed by absence of a "Final-Unit-Action" AVP, the threshold), DCC server
      assumes that the SAD DCC client will request additional quota.
   Re-authorization ask for additional quota flows through the AAA system
   to the prepaid System. The prepaid System revalidates the
   subscriberÆs account and subtracts the previously allocated replenishment of quota
   from the current balance. If there at
      some suitable time.  In RPP, this is remaining balance, it
   reauthorizes the request explicitly conveyed via a
      "Termination-Action" AVP with an additional quota allotment.
   Otherwise, the prepaid System rejects the request.  Note value "Request More Quota".
      Thus, in the
   replenishing absence of a "Final-Unit-Action" AVP, the quotas translator
      in this scenario appends such an AVP into the outgoing RPP
      message.

5.2.15.  Pool-ID Attribute (s<->c)

   The DCC equivalent of a RPP "Pool-ID" AVP is also called a re-authorization procedure and does
   not require the subscriber "Pool-ID".
   Typically, no translation needs to authenticate himself again.

   It is important be done to note that the prepaid System "Pool-ID"
   attribute.

5.2.16.  Multiplier Attribute (s<->c)

   The multiplier attribute, which is maintaining
   session state for the subscriber.  This state includes how much
   account balance was allocated during a pair of "Value-Digits" and
   "Exponent" AVPs, typically needs no translation, since the last quota enquiry value it
   carries (inside a "Value-Digits" and how
   much is left in an "Exponent" AVP) represents
   the account. Therefore, rating of the service or rating group to which it is required that all
   messages about refers, with
   respect to abstract units.  As such, the session reach same multiplier value would
   typically applyt be conveyed from a DCC server to an PPC, and vice
   versa.

5.2.17.  Requested-Action Attribute (c->s)

   The "Requested Action" AVP can be directly translated into its DCC
   equivalent, which carries the same (and correct) prepaid
   system.

   Upon receiving name.

   1.  Balance Check (PCC): CHECK_BALANCE (DCC)

   2.  Price Enquiry (PCC): PRICE_ENQUIRY (DCC)

5.2.18.  Check-Balance-Result Attribute (s->c)

   This attribute carries only a re-allotment binary value.  Hence, its translation
   is straightforward.

5.2.19.  Cost-Information Attribute (s->c)

   This attribute consists of a Value-Digits AVP, an Exponent AVP, a
   Currency Code AVP, and a Cost-Unit AVP.  All these AVPs do likewise
   exist in DCC, and carry identical semantics in the quota, the SAD continues to
   provide context of the data service until
   "Cost-Information" AVP.  Thus, the new threshold translation of this attribute is reached.  If
   straightforward.

5.2.20.  VolumeUsedAfterTariffSwitch attribute (c->s)

   This attribute carries the
   request for additional quota cannot be fulfilled then amount of octets that were consumed after
   a tariff change.  It always appears in a message with an accompanying
   PPAQ attribute in which the SAD lets total amount of octets (i.e. those that
   were consumed both before and after the subscriber use tariff switch) is reported.
   Thus, the remaining quota and terminates translation agent can compute the session.

   Alternatively, instead amount of terminating octets that
   were consumed before the session, tariff change.

   In DCC, the SAD may
   restrict two amounts, i.e. the data session such octets that the subscriber can only reach were consumed before a
   particular web server.  This web server maybe used to allow the
   subscriber to replenish their account.  This restriction can also be
   used to allow new subscribers to set up prepaid accounts
   tariff change and those that were consumed afterwards, are reported
   in separate Used-Service-Unit AVPs.  The two Used-Service-Unit AVPs
   have an embedded CC-Total-Octets AVP that indicates the
   first place.

   Should appropriate
   amount of octets.  Furthermore, the subscriber terminate Used-Service-Unit AVP that
   carries the session amount that was consumed before the quota is
   exhausted, tariff switch also
   carries an embedded Tariff-Change-Usage AVP with the remaining balance allotted to value
   UNIT_BEFORE_TARIFF_CHANGE (0).  Similarly, the session MUST be
   refunded into Used-Service-Unit AVP
   that carries the subscriberÆs account.

   While amount that was consumed after the Access Device is waiting for tariff switch
   also carries an embedded Tariff-Change-Usage AVP with the initial quota, value
   UNIT_AFTER_TARIFF_CHANGE (1).

6.  Security Considerations

   [Editor's Note: A future version of this document will provide a
   description of the
   subscriber may have dropped security threats and the countermeasures.]

7.  IANA Considerations

   This document requires the assignment of new Radius attributes type
   numbers for the connection/session. following attributes: Prepaid-Accounting-Capability
   (PPAC), AvailableInClient, Prepaid-Accounting-Operation (PPAQ),
   QuotaIdentifier, (QID), VolumeQuota (VQ), VolumeTreshold (VT),
   DurationQuota (DQ), DurationTreshold (DT), UpdateReason (UR),
   PrePaidServer (PPS), ServiceID (SID), Rating-Group-ID (RGID),
   TerminationAction (TA), PoolID (PID), PoolMultiplier (PM), Cost-
   Information (COST), Session-Termination-Capability (STC),
   PrepaidTariffSwitch (PTS) and TariffSwitchInterval (TSI).

8.  Contributors

   The entire
   allocated quota MUST be credited back authors would like to the subscribers account thank Christian Guenther and Yong Li for
   their contribution to earlier draft versions.

9.  References

9.1.  Normative References

   [1]  Bradner, S., "RFC 2119: Key words for use in
   this case.

10.2
    Support RFCs to Indicate
        Requirement Levels", March 1997.

   [2]  Rigney, C., Rubens, A., Simpson, W., and S. Willens, "RFC 2865:
        Remote Authentication Dial In User Server (RADIUS)", June 2000.

   [3]  Rigney, C., Willats, W., and P. Calhoun, "RFC 2869: RADIUS
        Extensions", June 2000.

   [4]  Bradner, S., "RFC 2026: The Internet Standards Process --
        Revision 3", October 1996.

   [5]  Rigney, C., "RFC 2866: RADIUS Accounting", June 2000.

   [6]  Zorn, G., Leifer, D., Rubens, A., Shriver, J., Holdrege, M., and
        I. Goyret, "RFC 2868: RADIUS Attributes for Multi-Services

   Examples of services Tunnel Protocol
        Support", June 2000.

   [7]  Chiba, M., Dommety, G., Eklund, M., Mitton, D., and B. Adoba,
        "RFC 3576: Dynamic Authorization Extensions to Remote
        Authentication Dial-In User Service (RADIUS)", February 2003.

   [8]  Adoba, B., Blunk, L., Vollbrecht, J., Carlson, J., and H.
        Levkowetz, "RFC 3748: Extensible Authentication Protocol",
        June 2004.

9.2.  Informative References

   [9]  Hakala, H., Mattila, L., Koskinen, J-P., Stura, M., and J.
        Loughney, "RFC 4006: Diameter Credit Control Application",
        August 2005.

Appendix A.  Example flows

   This section presents certain example flows that involve the user may be using are browsing RADIUS
   prepaid extensions.  By no means is the
   web, participating in a VoIP conversation, watching streaming video intent of this section to
   specify or recommend business logic, rating strategies, and downloading a file. Some operators may want
   application-level behaviour.  The intent of this section is purely to distinguish
   between these services. Some services are billed at different rates
   illustrate some fictive scenarios and services may be metered differently.  Therefore, the RADIUS prepaid
   solution needs to message
   flows that could be able associated with these scenarios.  The contents of
   this section should be regarded as a collection of informative
   examples that aim to distinguish provide guidance to implementors.

A.1.  A simple flow

   End user          PPC                  AAA Server                 PPS

   user logs on
   ------(1)--------->

                         Access Request
                         {RADIUS BASE AVPS,
                          PPAC=00...00011}
                         -------(2)-------->

              RADIUS authentication
   <--------------(3)---------------------->

                                            Access Request
                                            {RADIUS BASE AVPS,
                                             PPAC=00...00011}
                                             ------(4)--------->

                                                              [allocates
                                                              5MB quota]

                                             Access Response
                                             {RADIUS BASE AVPS,
                                             PPAQ={QID=5, VQ = 5MB,
                                             VTH = 4.5 MB}}
                                            <-------(5)--------
                         forwards message
                         <-----(6)-----------

   service provision/metering
   -------(7)--------->

   4.5 MB consumed
                       Access Request
                       {RADIUS BASE AVPS,
                       PPAQ={QID=5, VQ=4.5MB,
                       REASON=THRESHOLD REACHED}}
                       -------(8)--------->

                                             forwards message
                                             -------(9)------->

                                                  [allocates another 7MB
                                                  to the access service]

                                            Access Response
                                            {RADIUS BASE AVPS,
                                            PPAQ={QID=8, VQ=12MB,
                                            VTH = 11.5 MB}}
                                           <----------(10)--------------
                        forwards message
                        <------(11)--------

     user logs off
   ------(12)-------

                       Access Request
                       {RADIUS BASE AVPS,
                       PPAQ={QID=8, VQ=7 MB,
                       REASON=ACCESS SERV TERMINATED}}
                       -------(13)--------->

                                             forwards message
                                             -------(14)------->

                                                          [reimburses
                                                         user account]

                                             AA Response
                                             {RADIUS BASE AVPS}
                                             <------(15)--------
                         AA Response
                         {RADIUS BASE AVPS}
                         <------(16)--------

   Figure 12: A simple example message flow

   The user logs on (1).  The PPC sends a RADIUS Access Request message
   to the home AAA server (2), and includes the prepaid-specific PPAC
   AVP.  This AVP indicates that both duration-based and volume-based
   metering is supported.  However, it also indicated that multiple
   services, rating groups and allocate
   quotas to resource pools are not supported.  Note
   that, since this is not an "Authorize Only" message, no PPAQ AVP with
   Update Reason="initial request" is included (see Section 3.7.1).  The
   home AAA server then authenticates the services using different units (e.g. time, volume) user and
   allow for those quotas to be utilized at different rates.

                 +---------+
                 | Session |
                 +---------+
                      |
                      V N
              +--------------+       +-------+
              |   Service    |------>| Quota |
              | (service-Id) |       +-------+
              +--------------+

   As shown authorizes the access
   service, as is usual in RADIUS (3).  Note that the above diagram, a Session may be associated with
   multiple (N) services.  Each service PPAC AVP is identified
   appended by a Service-ID. the PPC in at least the last message that is sent to the
   home AAA server during this possibly multiple-round exchange.

   If authentication and authorization is successful (in this example
   this is assumed), the home AAA server forwards the final Access
   Request to the PPS (4).  The format PPS identifies the user's prepaid
   account from the included base RADIUS AVPs, and determines the
   capabilities of the Service-ID is not PPC from the PPAC attribute.  Assuming that
   sufficient funds are available in the scope user's prepaid account, the PPS
   reserves some of this document
   but these and rates the Service-ID could be expressed as an IP flow using service.  In this example, the 5-
   tuple {Source-IP and Port, Destination-IP
   PPS reserves, say, 2 Euros and Port, protocol type}.
   Each determines that the access service is allocated an appropriate
   rated at 0.4 Euro per MB.  This results in 5 MB of quota metric.

10.3
    Resource Pools

   When working being
   granted.  The PPS also determines that the PPC should ask for this
   quota to be replenished once 4.5 MB have been consumed.  Thus, it
   creates an Access Accept message with multiple services a new problem arises because one
   service may utilize its Volume-Threshold indication
   of 4.5MB.  It further associates the QuotaIdentifier QID=5 to this
   quota faster than another service.  When reservation.  This identifier can be used to later uniquely
   identify the
   userÆs balance prepaid session, user, account, etc.  The resulting
   Access Accept message is close sent to exhaustion, a situation could arise where
   one service is unable the home AAA server (5) and
   forwarded to obtain quota while another service has
   plenty the PPC (6).

   Upon reception of quota remaining. Unless message (6), the quotas can be rebalanced, PPC provides the
   SAD would then have access service to terminate that service. Indeed, even before
   the user and meters it accordingly.

   At some point in time, the threshold is reached, i.e. 4.5MB of
   "access service" have been consumed by the user.  At that happens, point, the services could generate
   PPC generates an excessive Authorize Only Access Request that contains the
   usual RADIUS attributes and a PPAQ AVPs that reports the amount of
   traffic
   consumed quota, and the request for replenishment, i.e. the Update-
   Reason= THRESHOLD REACHED (8).  Note that the QID in this message is
   the same as the they update their quotas.

   One method to solve these problems one previously received from the user's home AAA
   server.  This message is forwarded to utilize resource pools.
   Resource pools enable the allocation of resources to several
   services PPS (9).

   Upon reception of message (9), the PPS identifies the user and his
   account from the QID.  In also determines that a prepaid session by allocating resources to a pool is
   ongoing, and that enough credit remains in the prepaid account in
   order for the access service to continue being provided.  Since 4.5
   MB have
   services draw their quota been consumed, the PPS subtracts 1.8 Euros from the pool at a rate appropriate user's
   prepaid account.  The PPS decides to reserve another 2.8 euros from
   the user's account.  (This results in 3 euros being reserved in total
   at this point in time.)  As the access service is rated at 0.4 euros
   per MB, the PPS determines that another 7 MB of quota should be
   granted.  This results in a total cumulative quota allocation of 12
   MB for the access service. When  The PPS further calculates the new
   threshold value of 11.5 MB.  Since this is a new quota allocated to reservation,
   the pool is close PPS also allocates a new QuotaIdentifier to
   exhaustion, the entire pool it, in this example
   QID=8.  The resulting RADIUS message is replenished.

           +-----------+
           | Service-A |-----+         +--------+
           +-----------+     |    Ma   |        |
                             +-------->|        |
                                       |  Pool  |
                             +-------->|   (1)  |
           +-----------+     |    Mb   |        |
           | Service-B |-----+         +--------+
           +-----------+

   As sent to the figure above shows, Service-A home AAA server
   (10) and Service-B are bound forwarded to
   Pool(1).  Ma and Mb are the pool multipliers (that are associated
   with Service-A PPC (11).

   Upon reception of message (11), the PPC updates its records and Service-B respectively)
   continues provisioning access to the user.  At some point the user
   logs off (12).  The PPC must then report how many resources were
   consumed, so that determine the rate
   at which Service-A and Service-B draw PPC can subtract the appropriate monetary
   amount from the pool.

   The pool is initialized user's prepaid account.  To this end the PPC
   constructs an Authorize Only Access Request message with a PPAQ AVPs
   for the access service.  In this example, 7 MB were consumed by taking the quota allocated to each
   access service and multiplying it by Mn.  Therefore, in total.  The PPC reports 7 MB its final message
   (13).  This is forwarded to the amount of
   resources allocated PPS (14) which correlates the report,
   using the QID, to a pool is given by:

          Poolr = Ma*Qa + Mb*Qb + . . .

   A Pool is empty if:

         Poolr <= Ca*Ma + Cb*Mb + . . .

       where:
         Ca,Cb are the previous session state.  It determines, from
   the previous records, that the access service had consumed resources another
   4.5 MB before (as indicated in message (9)).  This means that, of Service-A and Service-B
         respectively.

   Note that the resources assigned
   7 MB, only 3.5 MB have not yet been subtracted from the user's
   account.  Thus, the PPS subtracts another 1.4 euros from the user's
   account and, since the session is to be terminated (REASON=ACCESS
   SERVICE TERMINATED), releases any reserved monetary amount.

   The PPS responds with an Access Response as required by the pool are not associated RADIUS
   base specification (15).  So does the home AAA server (16).

A.2.  A flow with
   a metric.  That is, Service-A can be rated at $1 per Mbyte and
   Service-B can rated at $0.10 per Minute. In this case if we allocate
   $5 worth of resources prepaid tariff switching

   End user          PPC                  AAA Server                 PPS

   user logs on behalf of service-A
   ------(1)--------->

                         Access Request
                         {RADIUS BASE AVPS,
                          PPAC=00...00111}
                         -------(2)-------->

              RADIUS authentication
   <--------------(3)---------------------->

                                            Access Request
                                            {RADIUS BASE AVPS,
                                             PPAC=00...00011}
                                             ------(4)--------->

                                                             [allocates
                                                             20MB quota]

                                             Access Response
                                             {RADIUS BASE AVPS,
                                             PPAQ={QID=5, VQ = 20MB,
                                             VTH = 18 MB}, PTS={
                                             QID=5, PTS{TSI=300sec,
                                             TITSU=6000sec}}
                                            <-------(5)--------
                         forwards message
                         <-----(6)-----------

   service provision/metering
   -------(7)--------->

   5900 seconds have passed

                       Access Request
                       {RADIUS BASE AVPS,
                       PPAQ={QID=5, VQ=14MB,
                       REASON=TITSU APPROACH.},
                       TSI={QID=5, VUATS=11MB}}
                       -------(8)--------->

                                             forwards message
                                             -------(9)------->

                                                 [allocates another 10MB
                                                  to the pool we would
   set Ma access service]

                                            Access Response
                                            {RADIUS BASE AVPS,
                                            PPAQ={QID=8, VQ=30MB,
                                            VTH = 10 and place 50 units into the pool.  If we allocate $5 28 MB},PTS={
                                            QUD=8, PTS=95 sec}}
                                           <----------(10)--------------
                        forwards message
                        <------(11)--------

     user logs off
   ------(12)-------

                       Access Request
                       {RADIUS BASE AVPS,
                       PPAQ={QID=8, VQ=17 MB,
                       REASON=ACCESS SERV TERMINATED},
                       PTS={QID=8, VUATS=2.5 MB}
                       -------(13)--------->

                                             forwards message
                                             -------(14)------->

                                                          [reimburses
                                                         user account]

                                             AA Response
                                             {RADIUS BASE AVPS}
                                             <------(15)--------
                         AA Response
                         {RADIUS BASE AVPS}
                         <------(16)--------

   Figure 13: Example message flow with Tariff Switch

   The user logs on
   behalf of Service-B (1).  The PPC sends a RADIUS Access Request message
   to the Pool, then M=1 home AAA server (2), and place 50 units into includes the Pool. prepaid-specific PPAC
   AVP.  This AVP indicates that both duration-based and volume-based
   metering is supported, as well as tariff switching.  The pool would have a total sum of 100 units to be shared
   between home AAA
   server then authenticates and user and authorizes the two services. Each Mbyte used access service,
   as is usual in RADIUS (3).  Note that the PPAC AVP is appended by Service-A will draw 10
   units from the pool
   PPC in at least the last message that is sent to the home AAA server
   during this possibly multiple-round exchange.

   If authentication and each minute used by Service-B will draw 1
   unit from authorization is successful (in this example
   this is assumed), the pool.

10.4
    Support for Complex Rating Functions home AAA server forwards the final Access
   Request to the PPS (4).  The rating PPS identifies the user's prepaid
   account from the included base RADIUS AVPs, and determines the
   capabilities of a service can be quite complex. While some operators
   follow linear charging models, others may wish to apply more complex
   functions. For the PPC from the PPAC attribute.  In this example, it
   is assumed that a service provider may wish tariff switch is about to rate a
   service such occur in 300 seconds from
   the current time.  Suppose that the first N Mbytes are free, then access service is currently rated
   at 0.5 euros per MB and in the next M
   Mbytes are tariff period it is rated at $1 0.6
   euros per Mbyte MB.  Suppose further that a third tariff period is about to
   start in 6000 seconds from current time and volume above M bytes be that that access service
   is rated at $0.50 0.8 euros per Mbyte. Such a function could be implemented by repeated
   message exchanges with MB in that period.  The PPS then decides to
   reserve 12 euros from the prepaid system.

   To avert user's account.  Since it is conceivable
   that the need to exchange many messages while still supporting
   such complex rating functions user may consume all allocated quota in the notion (more expensive)
   "0.6-euro" period, the PPS reserves 20 MB of quota, and determines a ôRating Groupö is
   introduced.  A Rating Group
   threshold value of 18 MB.  It constructs a Radius Access Accept
   message with a PPAQ attribute that reflects these choices, and
   carries a QuotaIdentifier QID=5.  It further adds a PTS AVP in the
   message which is provisioned at linked to the SAD.  As
   illustrated in PPAQ via the figure below, common QID value.  The
   PTS AVP contains a Rating Group is associated TSI attribute indicating that a tariff switch will
   occur in 300 seconds.  It also includes a TITSU attribute with
   one or more services and defines the rate
   value of 6000 seconds.  This is included in order to make sure that
   the services
   associated with PPC will report the Rating Group consume consumed quota before the quota.

         +-----------+
         | Service-A |------+
         +-----------+      |     +--------------+       +-------+
                            +---->|              |       | Quota |
                                  | Rating Group |------>|  or   |
         +-----------+      +---->|              |       | Pool  |
         | Service-B |------+     +--------------+       +-------+
         +-----------+

   During consumption "2-euro" tariff
   period will start.  The message is sent to the AAA server (5) and
   forwarded to the PPC (6).

   Upon reception of a message (6), the PPC provides the access service to
   the user and meters it accordingly (7).  It also keeps track of time.
   That is, it remembers how many octets are consumed before and how
   many after the tariff switch that will take place in 300 seconds.

   In this example it is associated with a Rating
   Group, assumed that the user consumes the allocated
   quota rather slowly.  In particular, nearly 6000 seconds (the value
   indicated by TITSU) pass without the threshold of 18 MB being
   reached.  The PPC sends notices this and must therefore report usage and
   request the ID quota to be replenished despite the fact that the
   threshold has not been reached.  In this example, it decides to do so
   100 seconds before the 6000 seconds are reached.  To this end, it
   constructs an Authorization Access Request message including a PPAQ
   that indicates that 14 MB have been consumed up to now.  It also
   includes a PTS AVP in order to indicate, using the VUATS AVP, that 11
   MB of these were consumed after the Rating Group tariff switch.  The message is
   sent to the PPS. AAA server (8) and forwarded to the PPS (9).

   The
   prepaid service authorizes PPS can link the Rating Group by allocating a quota message to
   it previous session state via the QID.
   It now rates the consumed volume as follows.  The 11 MB that were
   consumed after the tariff switch correspond to 11 * 0.6 = 6.6 euros
   and optionally assigning it the remaining 14-11=3 MB to 3 * 0.5 = 1.5 euros.  Thus, the PPS
   subtracts the amount of 6.6+1.5=8.1 euros from the user's account,
   which leads to a Resource Pool.

   When service remainder of 12 - 8.1 = 3.9 euros being reserved.

   The PPS now determines that belongs message (9) was sent in order to an authorized Rating Group is
   instantiated,
   replenish the PPC does not need to authorize quota for this service. prepaid session.  This
   limits can be deduced
   from the amount of traffic between UPDATE REASON field, which indicates that the PPC and sent this
   message because the PPS.

10.5
    One-Time-based Charging

   One-Time-based Charging time indicated by the TITSU AVP is used approacing.
   The PPS now determines that enough credit remains in the user's
   prepaid account in order for charging of service events
   without an ongoing session. That is, the access service to continue being
   provided and decides to reserve another 8.9 euros from the user's
   account.  Since it is provisioned
   instantaneously, conceivable that the user will consume the 6
   unused MB of quota from the previous allocation, as far well as charging the
   entire quota that is concerned.  An example to be allocated now, entirely in the "0.8-euro"
   period, the quota that should now be granted in addition to the
   previous 20 MB should be 10 MB.  This is because 0.9 of
   such an event the 8.9 euros
   are being reserved in order to "cover the worst case scenario".  The
   fact that 0.9 euros are reserved for this purpose is due to the purchase fact
   that the unused 6 MB from the previous allocation correspond to 4.8
   euros (with 0.8 euros per MB).  This is 4.8 - 3.9 = 0.9 euros more
   than the amount of a ring-tone. Subscription based
   services can also be modeled as a One-Time event. In funds that are still "reserved" from the previous
   allocation.  (After this case reservation, the
   one-time service event total amount of reserved
   money is 8.9 + 3.9 = 12.8 euros, which corresponds to 16 (10+6) MB
   being consumed in the purchase of a subscription

   For "0.8-euro" period.)

   Since quotas are encoded in a given user, one-time-based charging may occur cumulative way in parallel with
   other charging models. For example, RADIUS, the subscriber may access PPS
   includes a
   website which VolumeQuota of 30 MB into the Access Accept message (10).
   The PPS further calculates the new threshold value of 28 MB.  Since
   this is metered (based on time or volume) while he also
   purchase a new quota reservation, the right to use PPS also allocates a ring tone (a one-time-based event).
   Note: it new
   QuotaIdentifier to it, in this example QID=8.  The resulting RADIUS
   message is up sent to the service providers home AAA server (10) and forwarded to decide whether or not the
   user will be charged for the download PPC
   (11).

   Upon reception of message (11), the tone and also be
   charged for the time PPC updates its records and volume required
   continues providing access to download the ring-tone. user.  At some point the user logs
   off (12).  The facilities provided by this document gives PPC must then report how many resources were consumed,
   so that the service provider PPC can subtract the capability to achieve their service charging business goals.
   For example, should appropriate monetary amount from the service provider choose not to charge
   user's prepaid account.  To this end the PPC constructs an Authorize
   Only Access Request message with a PPAQ AVPs for the download volume or time, then they can treat access service.
   In this example, 17 MB were consumed by the download IP
   flow as a separate access service that is exempt from charging. in total.
   The SAD signals one-time-based charging PPC reports 17 MB its final message (13).  This is forwarded to
   the PPS with an
   indication that identifies (14) which correlates the service and report, using the units that need QID, to be
   debited the
   previous session state.  It determines, from the userÆs account.

   One-time-based charging may occur under two conditions: previous records,
   that the (a) SAD
   may not have a authenticated context (or access to an authenticated
   context) for service had consumed 14 MB before (as indicated in
   message (9)).  This means that, of the subscriber), or (b) 17 MB, only the SAD has access to
   authenticated context monetary
   equivalent for 3 MB have not yet been subtracted from the subscriber.  In user's
   account.  The PPS calculates how much should be deducted from the former case
   user's account as follows.  Since the
   SAD will have to authenticate VUATS AVP indicates that 2.5MB
   were consumed after the subscriber.  For example, tariff switch, only 0.5 MB were consumed
   before that.  Thus, the user
   maybe authenticated monetary equivalent is 0.5 * 0.6 + 2.5 * 0.8
   = 3.6 euros.  That is, the PPS subtracts 3.6 euros from the user's
   prepaid account.  Since the session has by now be terminated by the SAD providing access service. However
   when
   PPC (REASON=ACCESS SERVICE TERMINATED), the user accesses PPS now releases any
   reserved monetary amount, in this example 12.8 - 3.6 = 9.2 euros.

   The PPS responds with an Access Response as required by the subscription server to purchase a
   subscription, RADIUS
   base specification (15).  So does the subscription home AAA server (16).

   Remark: In this example, two tariff switches take place.  In other
   scenarios, of course, only one tariff switch may occur.  In such
   scenarios the TITSU AVP is not have used.

A.3.  Resource pools and Rating Groups

   End user          PPC                  AAA Server                 PPS
   user logs on
   ------(1)--------->

                         Access Request
                         {RADIUS BASE AVPS,
                          PPAC=00...00101111}
                         -------(2)-------->

              RADIUS authentication
   <--------------(3)---------------------->

                                            Access Request
                                            {RADIUS BASE AVPS,
                                             PPAC=00...00101111}
                                             ------(4)--------->

                                                              [allocates
                                                              5MB quota]

                                             Access Response
                                             {RADIUS BASE AVPS,
                                             PPAQ={QID=5, VQ = 5MB,
                                             poolID=1,mult=1}}
                                            <-------(5)--------
                         forwards message
                         <-----(6)-----------

   service provision/metering
   -------(7)--------->

   user requests service A
   -------(8)--------->

                       Access Request
                       {RADIUS BASE AVPS,PPAQ={
                       SID="A", RGROUP=1}}
                        -------(9)-------->
                                            forwards message
                                            -----(10)--------->

                                                       [allocates 50 min
                                                            quota]

                                             Access Response
                                             {RADIUS BASE AVPS,
                                             PPAQ={QID=7, DQ=3000sec
                                             poolID=1,RGROUP=1, SID="A"
                                             mult=1747.63}}

                                           <---------(11)---------------
                          forwards message
                          <----(12)--------

   user requests service B
   -------(13)-------->

   Pool 1 close to exhaustion

                       Access Request
                       {RADIUS BASE AVPS,
                       PPAQ={QID=5, VQ=4MB,
                       REASON=QUOTA REACHED,
                       PoolID=1, mult=1}
                       PPAQ={QID=7, DQ=3300sec
                       REASON=QUOTA REACHED,
                       PoolID=1, mult=1747.63,
                       SID="A",RGROUP=1}}
                       -------(14)--------->

                                             forwards message
                                             -------(15)------->

                                                      [allocates another
                                                  3 MB to access service
                                                       and 30 minutes to the
   authentication context of the subscriber
                                                         service "A"]

                                            Access Response
                                            {RADIUS BASE AVPS,
                                            PPAQ={QID=8, VQ=8MB,
                                            PoolID=1, mult=1, RGROUP=1},
                                            PPAQ={QID=9, DQ=4800sec
                                            PoolID=1, mult=1747.63,
                                            SID="A"}}
                                           <----------(16)--------------
                        forwards message
                        <------(17)--------

     user logs off
   ------(18)-------

                       Access Request
                       {RADIUS BASE AVPS,
                       PPAQ={QID=8, VQ=6.5MB,
                       REASON=ACCESS SERV TERMINATED,
                       PoolID=1, mult=1}
                       PPAQ={QID=9, DQ=5400sec
                       REASON=ACCESS SERV TERMINATED,
                       PoolID=1, mult=1747.63,
                       SID="A",RGROUP=1}}
                       -------(19)--------->

                                             forwards message
                                             -------(20)------->

                                                          [reimburses
                                                         user account]

                                             AA Response
                                             {RADIUS BASE AVPS
                                             <------(21)--------
                         AA Response
                         {RADIUS BASE AVPS
                         <------(22)--------

   Figure 14: Example message flow with resource pools and thus will have rating groups

   The user logs on (1).  The PPC sends a RADIUS Access Request message
   to
   authenticate the subscriber from scratch.  Authentication of home AAA server (2), and includes the
   subscriber prepaid-specific PPAC
   AVP, indicating that multiple services, rating groups and resource
   pools are supported.  Note that, since this is not an "Authorize
   Only" message, no PPAQ AVP with Update Reason="initial request" is
   included (see Section 3.7.1).  The home AAA server then authenticates
   the generation of user and authorizes the one-time charging event will
   happen access service, as is usual in conjunction. RADIUS
   (3).  Note that one-time-based charging can also be used to credit the
   prepaid userÆs account. For example, PPAC AVP is appended by the SAD can return resources to PPC in at least the subscriber by issuing a one-time charge request
   last message that includes is sent to the amount of resources home AAA server during this possibly
   multiple-round exchange.

   If authentication and authorization is successful (in this example
   this is assumed), the home AAA server forwards the final Access
   Request to be credited into the account.

10.6
    Support for Tariff Switching PPS (4).  The PPC PPS identifies the user's prepaid
   account from the included base RADIUS AVPs, and determines the
   capabilities of the PPC from the PPAC attribute.  Assuming that
   sufficient funds are available in the user's prepaid account, the PPS may support tariff switching as described
   earlier. For
   reserves some of these and rates the service.  In this example, as shown in the figure below, traffic before
   18:00 may be rated at ær1Æ
   PPS reserves 5 Euros and traffic after 18:00 hours determines that the access service is rated
   at
   ær2Æ. The PPC reports usage before 1 Euro per MB.  In anticipation that the user requests more
   chargeable services throughout this prepaid session, and after since this
   is supported by the switch occurs.
   Tariff switching only makes sense for volume based metering where PPC, the volume is billed at different rates.

                         18:00
         ------------------+-----------------
                r1         |      r2
         ------------------+-----------------
              ^                        ^
              |<----TSI--->            |
              |                        |
        Access-Accept            Access-Request PPS further associates a resource pool
   with this reservation, in this example PoolID=1.  The PPC it indicates support also
   specifies the multiplier = 1 for tariff switching by setting the
   appropriate bit access service.  Note that,
   since 5MB = 5242880 octets, 1 unit in the PPAC. If the PPS needs resource pool corresponds
   to signal a tariff
   switch time it will send a PTS attribute 5 / 5242880 euros, which indicates is about 0.000095367431640625 Eurocents.

   (However, the point
   in time when PPC does not need to know that.)  Moreover, the switch will occur. PPS
   associates the QuotaIdentifier QID=5 to this quota reservation.  This indication represents
   identifier can be used to later uniquely identify the
   number of seconds from current time (TarrifSwitchInterval TSI).

   At some point after prepaid
   session, user, account, etc.  The resulting Access Accept message is
   sent to the tariff switch home AAA server (5) and forwarded to the PPC sends another Access-
   Request, as a result (6).

   Upon reception of either message (6), the PPC provides the access service to
   the user having logged off or and meters it accordingly.  That is, for every octet
   consumed, the
   volume threshold being reached. The PPC reports how much volume was
   used using subtracts 1 unit (since the PPAQ multiplier is 1) from
   the resouce pool with PoolID=1.

   At some point in total and how much volume was used after time, the
   tariff switch using user requests another chargeable service,
   namely service A (8).  The PPC generates an Authorize Only Access
   Request that contains the PTSÆs VUATS subtype.

   If usual RADIUS attributes and the Service-ID
   identifying service A (9).  The PPC sends has determined that service A is
   rated in an identical way as at least one more service.  Thus,
   service A has been configured to belong to a rating group, in this message before the tariff switch,
   example the PPS will
   respond group with another PTS where the TSI Rating-Group-ID=1.  This identifier is appropriately updated.

   In situations with multiple tariff switches, as shown below,
   included is message (9), which is then forwarded to the PPS
   MUST specify the length (10).

   Upon reception of message (10), the tariff switch period using PPS identifies the
   TimeIntervalAfterTariffSwitchUpdate (TITSU) in user and his
   account from the PTS attribute.

                         18:00                 23:30
         ------------------+---------------------+--------------
                r1         |      r2             |     r3
         ------------------+---------------------+--------------
              ^                        ^         ^
              |<----TSI---><-----------|-------->|TITSU
              |                        |
        Access-Accept            Access-Request

   When base RADIUS attributes, the fact that a TITSU prepaid
   session is specified ongoing, and determines that enough credit remains in the PTS,
   prepaid account in order for service A to be provided.  The PPS also
   determines that service A is rated at 0.10 euros per minute.  The PPS
   decides to reserve another 5 euros from the PPC MUST generate an
   Access-Request within users account; this
   corresponds to 50 minutes or, as encoded in the time after TSI and before TITSU expires. DurationQuota AVP,
   3000 seconds.  As service A draws from the same prepaid account as
   the access service, the PPS associates this reservation with the same
   resource pool as the previous reservation (QID=5), namely the pool
   with PoolID=1.  Note that, typically, in order for the PPC will abstract units in the
   pool to be triggered by consistent, the Volume
   Threshold. However, it multiplier has to be 1747.63.  This is possible that, during period r2,
   insufficient traffic
   because each second corresponds to about 0.10 / 60 = 0.00167 euros,
   which is generated and thus about 1747.63 times the threshold value of an abstract resource pool
   unit, as this was determined by the first allocation of quota to the
   pool (i.e. 0.000095367431640625 Eurocents).  Since this is not
   reached. Even a new
   quota reservation, the PPS also allocates a new QuotaIdentifier to
   it, in this case example QID=7.  The resulting RADIUS message is sent to
   the home AAA server (11) and forwarded to the PPC MUST generate an Access-Request (12).

   Upon reception of message (12), the PPC adjusts the units in
   good time. Also note that separate services flows may have
   individual tariff periods.

10.7
    Support for Roaming

   In certain networks resource
   pool 1.  That is, it first determines how much quota had been
   allocated to service A in the past, and subtracts this from the quota
   reservation found in the message.  Since this is essential the first quota
   reservation for prepaid data services service A, there is nothing to be
   available subtract.  Thus, it
   adds 3000 * 1747.63 = 5242890 units to roaming subscribers. Support for both static the pool and
   dynamic roaming models remembers that
   3000 seconds have been allocated to service A during this prepaid
   session.  The PPC then provides service A to the user, and meters it
   against resource pool 1.  That is, for every second it subtracts
   1747.63 units from the pool.

   At some point in time, the user requests service B (13).  The PPC
   determines that service B is needed. In a static roaming scenario rated exactly in the
   subscriber connects same way as service
   A, i.e. that they belong to a foreign network which the same rating group, namely the one
   with Rating-Group-ID=1.  Since this rating group has a roaming
   agreement either directly been effectively
   authorised by the allocation of quota with QID=7, the home network, or through a broker
   network. When PPC provides
   service B to the subscriber logs into another foreign network, a
   new login procedure has user immediately.  It is rated in the same way as
   service A, i.e. for every second provided, 1747.63 units are
   subtracted from credit pool 1.

   At some point in time, resource pool 1 is close to be executed.

   In a dynamic roaming scenario exhaustion.  (For
   example, the subscriber PPC may move between
   networks while maintaining his connection. In such a scenario determine that the
   data session pool is seamlessly handed off between "close to exhaustion"
   when has less than 10% its initial amount of units.)  At that point,
   the networks.

   In both roaming scenarios, PPC needs to ask for replenishment for the subscriber always authenticates
   himself pool.  Suppose that,
   at that point in time, 4MB of "access service", 45 minutes of
   "service A", and 10 minutes of "service B" were provided to the home network. Authorization user.
   Note that this corresponds to (4*1048576) + (55*60*1747.63) = 4194304
   + 5767179 = 9961483 abstract service units from the pool.  The PPC
   constructs an Authorize Only Access Request message that reports the
   usage for the prepaid session "access service" and quota replenishing occurs at "service A".  This message
   contains two PPAQ AVPS, is sent to the home network AAA server (14) and more
   specifically at
   forwarded to the prepaid system where state PPS (15).  Note that is being maintained.

   Dynamic roaming the message it appears that
   "service A" has consumed more than it was allocated (i.e. 55 minutes
   although only 50 minutes were initially allocated to it).  This is challenging because
   not a subscriber who established a prepaid data session may move to another Access Device that does
   not support problem since the prepaid functionality. Even in this case PPS knows that "service A" was drawing from
   the system
   should be able to continue same pool as the prepaid session.

10.8
    Termination of a prepaid session

   When fraud or an error is detected, "access service" and that the either "access service"
   did only consume 4 out of the affected
   session, or all sessions 5 MB it was allocated.

   Upon reception of message (15), the affected subscriber should be
   terminated.

   It may happen PPS subtracts 4 euros from the
   user's account for the "access service" and another 5.5 euros for
   "service A".  (This includes the charge incurred by "service B" up to
   that point in time, although the prepaid system enters a state where it PPS is
   unclear whether or not aware of "service B"
   being provisioned to the data session is user.)  The PPS then determines that
   sufficient funds remain in progress. Under such a
   condition, the system may wish to terminate the session prepaid account in order for both
   services to
   make sure that be continued.  The PPS decides to reserve another 3MB for
   the user is not billed access service and 30 minutes for this potential inactivity.

   Certain handoff procedures used "service A".  This corresponds
   to 3+3=6 euros.  Since in dynamic roaming scenarios require RADIUS prepaid the quotas are encoded in a
   cumulative manner, the PPAQ attribute that grants the system terminates quota for the subscribers prepaid data session at
   "access service" contains a
   SAD. This Volume-Quota AVP of 8MB (8388608 octets),
   which is the case, for example, when time-based prepaid is used
   and 5MB that were initially allocated, plus the mobile subscriber performs a dormant handoff.

10.9
    Querying 3MB
   allocated now.  The resource pool identifier is, as previously,
   PoolID=1 and Rebalancing Prepaid Resources

   It should be possible the multiplier is 1.  Similarly, the PPAQ that grants
   quota for "service A" contains 4800 seconds (the initial 3000 plus
   1800 that correspond to the PPS 30 additional minutes).  Again, the
   PoolID=1 and multiplier=1747.63.  The resulting Access Response
   message is sent to Query the current resource
   consumption at a SAD home AAA server (16) and adjust forwarded to the userÆs account balance.

   For example, a request PPC
   (17).

   When the PPC received message (17) it checks how much quota has been
   allocated previously to the PPS is made (e.g. a one-time charging
   event) but "access service".  It finds that the userÆs account
   answer is depleted but resources 5MB (5242880 octets); thus, out of the 8MB (8388608 octets)
   that are indicated by the PPAQ with QID=8, only 3MB (3145728 octets)
   have not yet been
   allocated added to resource pool 1.  The PPC thus adds
   3145728 abstract units to resource pool 1 (since the SAD. multiplier is
   1).  The PPS should have PPC then acts similarly on the ability other PPAQ attribute that
   exists in message (17).  That is, the PPC determines that 3000
   seconds of quota for "service A" had already been added to query the
   SAD and if it has pool.
   Thus only 1800 out of the spare resources 4800 should be additionally added to reassign the quotas
   pool.  Since the applicable multiplier here is 1747.63, the PPC adds
   further 3145734 abstract units to the
   SAD pool 1.

   The PPC then continues to provide the access service, "service A" and
   "service B" to the pending request.  Note user, and meters them against the pool, as
   previously.

   At some point the user logs off (18).  The PPC must then report how
   many resources were consumed, so that the PPS doesnÆt know
   resource usage until PPC can subtract the SAD request
   appropriate monetary amount from the user's prepaid account.  To this
   end the PPC constructs an Authorize Only Access Request message with
   two PPAQ AVPs; one for more resources. the access service and one for "service A".
   Suppose that, in total, 6.5MB were consumed by the access service, 70
   minutes were consumed by "service A" and 20 minutes by "service B".
   The PPC reports 6.5MB (6815744 octets) and 90 minutes (5400 seconds)
   in its final message (19).  This can is forwarded to the PPS which
   determines, from the previous records, that the access service
   consumed another 2.5MB (since 4MB out of the 6.5MB were already
   reported in message (15), and that "service A" consumed further 600
   seconds.  This corresponds to 2.5 + (600/60)*0.1 = 2.5+1=3.5 euros.
   Thus, the PPS only subtracts 2.5 out of the 6 previously reserved
   euros from the user's prepaid account and responds with an Access
   Response as required by the RADIUS base specification.

   The home AAA server likewise responds with an Access Response.

Authors' Addresses

   Avi Lior
   Bridgewater Systems
   303 Terry Fox Drive
   Ottawa, Ontario  Suite 100
   Canada

   Email: avi@bridgewatersystems.com

   Parviz Yegani
   Cisco
   Mobile Wireless Group, Cisco Systems
   3625 Cisco Way, San Jose, California  95134
   USA

   Email: pyegani@cisco.com

   Kuntal Chowdhury
   Starent Networks
   30 International Place, 3rd Floor
   Tewksbury, MA  01876
   USA

   Email: kchowdhury@starentnetworks.com

   Hannes Tschofenig
   Siemens
   Otto-Hahn Ring 6
   Munich, Bavaria  81739
   Germany

   Email: hannes.tschofenig@siemens.com

   Andreas Pashalidis
   Siemens
   Otto-Hahn Ring 6
   Munich, Bavaria  81739
   Germany

   Email: andreas.pashalidis@siemens.com

Intellectual Property Statement

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be a long time.

   In claimed to
   pertain to the absence implementation or use of the technology described in
   this capability document or the PPS extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can minimize be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the effect IETF Secretariat and any
   assurances of
   this phenomenon by allocating small quotas û licenses to be made available, or the result of an
   attempt made to obtain a practice general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that
   results may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.

Disclaimer of Validity

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Copyright Statement

   Copyright (C) The Internet Society (2005).  This document is subject
   to the rights, licenses and restrictions contained in more message exchanges. BCP 78, and
   except as set forth therein, the authors retain all their rights.

Acknowledgment

   Funding for the RFC Editor function is currently provided by the
   Internet Society.