Network Working Group                                            A. Lior
INTERNET-DRAFT                                       Bridgewater Systems
Category: Informational                                        P. Yegani
draft-lior-radius-prepaid-extensions-07.txt
draft-lior-radius-prepaid-extensions-08.txt                        Cisco
Expires: 20 July, 2005 18 January, 2006                                   K. Chowdhury
                                                        Starent Networks
                                                                   Y. Li
                                                     Bridgewater Systems
                                                           H. Tschofenig
                                                             C. Guenther
                                                                 Siemens
                                                       February 20,
                                                           July 17, 2005

     PrePaid Extensions to Remote Authentication Dial-In User Service
                                 (RADIUS)

Status of this Memo

   By submitting this Internet-Draft, I certify each author represents that any
   applicable patent or other IPR claims of which I am he or she is aware
   have been or will be disclosed, and any of which I become he or she becomes
   aware will be disclosed, in accordance with RFC 3668. 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 July 20, 2005 December 29, 2005.

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................................................6 Terminology................................................5
      1.2 Requirements language......................................6 language......................................5
   2. Overview.......................................................6
      2.1 PrePaid Prepaid Charging Model.....................................7 Models....................................6
      2.2 Architectural Model........................................7 Model........................................6
      2.3 Why not existing RADIUS attributes?.......................13 Motivation................................................11
   3. Use-cases.....................................................15 Operations....................................................13
      3.1 Simple pre-paid access use-case...........................15
      3.2 Support for Multi-Services................................17
      3.3 Resource Pools............................................18
      3.4 Support for Complex Rating Functions......................20
      3.5 One-Time-based Prepaid Charging...........................21
      3.6 Support for Tariff Switching..............................22
      3.7 Support for Roaming.......................................24
      3.8 PrePaid termination.......................................24
      3.9 Querying and Rebalancing Prepaid Resources................25
   4. Operations....................................................25
      4.1 General Requirements......................................25
         4.1.1 Requirements......................................13
         3.1.1 Broker AAA Requirements..............................25
      4.2 Requirements..............................13
      3.2 Authentication and Authorization for Prepaid Enabled SADs.26
      4.3 SADs.14
      3.3 Session Start Operation...................................28
      4.4 Operation...................................16
      3.4 Mid-Session Operation.....................................29
      4.5 Operation.....................................16
      3.5 Dynamic Operations........................................31
         4.5.1 Operations........................................18
         3.5.1 Unsolicited Session Termination Operation............31
         4.5.2 Operation............19
         3.5.2 Unsolicited Change of Authorization Operation........32
      4.6 Operation........19
      3.6 Termination Operation.....................................32
      4.7 Operation.....................................20
      3.7 Mobile IP Operations......................................33
      4.8 Operations......................................20
      3.8 Operation consideration considerations for Multi-Services................34
         4.8.1 Multiple prepaid services....21
         3.8.1 Initial Quota Request................................34
         4.8.2 Request................................22
         3.8.2 Quota Update.........................................35
         4.8.3 Termination..........................................35
         4.8.4 Update.........................................22
         3.8.3 Termination..........................................23
         3.8.4 Dynamic Operations...................................36
         4.8.5 Operations...................................23
         3.8.5 Support for Resource Pools...........................36
         4.8.6 One-Time-Charging....................................36
         4.8.7 Pools...........................23
         3.8.6 One-Time-Charging....................................24
         3.8.7 Error Handling.......................................37
      4.9 Handling.......................................24
      3.9 Accounting Considerations.................................38
      4.10 Considerations.................................25
      3.10 SAD Operation............................................38
      4.11 Operation............................................25
      3.11 Interoperability with Diameter Credit Control Application38
   5. Attributes....................................................38
      5.1 Application25
   4. Attributes....................................................25
      4.1 PPAC Attribute............................................39
      5.2 Attribute............................................26
      4.2 Session Termination Capability............................40
      5.3 Capability............................27
      4.3 PPAQ Attribute............................................40
      5.4 Attribute............................................27
      4.4 Prepaid Tariff Switching (PTS)............................46
      5.5 (PTS)............................34
      4.5 Table of Attributes.......................................49
   6. Attributes.......................................36
   5. Security Considerations.......................................49
      6.1 Considerations.......................................37
      5.1 Authentication and Authorization..........................49
      6.2 Authorization..........................37
      5.2 Replenishing Procedure....................................50
   7. Procedure....................................37
   6. IANA Considerations...........................................50
   8. Considerations...........................................37
   7. Normative References..........................................51
   9. References..........................................38
   8. Informative References........................................51
   10. References........................................39
   9. Call Flows...................................................52
      10.1 Flows....................................................39
      9.1 Simple Concurrent Services...............................53
      10.2 Services................................40
      9.2 One-time Charging........................................55
   Contributor......................................................56
   Acknowledgments..................................................56 Charging.........................................43
   Contributor......................................................43
   Acknowledgments..................................................43
   Author's Addresses...............................................56 Addresses...............................................43
   Intellectual Property Statement..................................57 Statement..................................44
   Disclaimer of Validity...........................................57 Validity...........................................44
   Copyright Statement..............................................57 Statement..............................................45
   Expiration Date..................................................58 Date..................................................45
   10. Appendix A û use cases.......................................45
      10.1 Simple prepaid use case..................................45
      10.2 Support for Multi-Services...............................47
      10.3 Resource Pools...........................................48
      10.4 Support for Complex 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 and Rebalancing Prepaid Resources...............54

1.
  Introduction

   This draft describes RADIUS protocol extensions supporting charging for PrePaid Data Services.

   PrePaid data services the RADIUS protocol. These
   extensions are cropping up in many wireless meant to enable service providers to charge and wireline
   based networks. bill
   their customers using prepaid accounts.

   A PrePaid Data Service prepaid service subscriber is one that
   purchases a user who has purchased a contract
   according to which he will receive a particular data service for
   either a period of time, time or a quantity of data.  Before providing a In the typical
   prepaid data
   service, scenario, the service provider checks verifies that the prepaid subscriber
   has  sufficient funds to cover in his account before delivering the particular service request. service.
   Only after
   confirmation that if sufficient funds are available is the service provided to
   the user.

   The subscriber purchases

   Note that the Data Service using various means such
   as buying a PrePaid Card, or online.  How by which the subscriber purchases
   their PrePaid Data Service depends on the deployment and obtains funds is not in outside
   the scope for of this document.

   In Also note that, in some deployments, scenarios, the PrePaid data service will
   subscriber's account may be combined with
   other Prepaid services such as PrePaid circuit voice service.  This
   is not an issue for used to fund multiple services, some of
   which may use the extensions defined in this document documents, and some
   may use other than mechanisms. While the fact that interworking of the
   PrePaid Data Services mechanisms
   described in this paper should work document with other
   PrePaid data mechanisms should be possible
   and or circuit voice services. straightforward, how this could be done depends on the external
   mechanisms and is, as such, outside the scope of this
   document.

   The fundamental business driver for a carrier to provide PrePaid
   data services behind the protocol extensions defined in this
   document is to increase participation (subscriber (i.e. a service provider's
   subscriber base) and thus to increase revenues.  Therefore, it makes sense that PrePaid
   services meet In particular, the
   extensions were designed with the following goals: goals in mind.

   - Leverage Make use of existing infrastructure, hence reducing infrastructure as much as possible, and
   thereby limit the amount of necessary capital
      expenditures typically required when rolling out a new service; expenditures,
   - Ability provide the ability to rate service requests in real-time; real-time,</t>
   - Ability provide the ability to check that charge the end userÆs user's account for coverage for the
      requested service - charge prior to execution of that service;
   service provision,
   - Protect protect against revenue loss, i.e., i.e. prevent an end user from
      generating chargeable events
   obtaining service when the credit of that account is
      exhausted or expired; available funds are not sufficient,
   - Protect protect against fraud; fraud, and
   - Be be as widely deployable over Dialup, Wireless dialup, wireless and WLAN networks.

   The protocol described in this document maximizes existing
   infrastructure as much as possible û hence the use of the RADIUS
   protocol.  The protocol is used in ways to protect against revenue
   loss or revenue leakage.  This is achieved by defining procedures
   for the real-time delivery of service information to a pre-paid
   enabled AAA server, to minimize the financial risk, for the pre-paid
   enabled AAA server to be able to allocate small quotas to each data
   session and having the ability to update the quotas from a central
   quota server dynamically during the lifetime of architecture between the PrePaid data
   session.  As well, mechanisms have been designed to be able to
   recover from errors entities that occur from time to time.

   Protection against fraud is provided by recording of accounting
   records, and by providing mechanisms to thwart replay attacks.  As
   well, mechanisms have been provided to terminate data sessions when
   fraud is detected.

   PrePaid Systems will become more prevalent and sophisticated as the
   various networks such as Dialup, Wireless and WLAN converge.  This
   protocol extension is designed to meet the challenges of converged
   networks.  The draft mainly addresses how to use execute the RADIUS protocol
   to achieve a PrePaid Data Service.  The prepaid architecture
   protocols with the extensions defined in this document assumes that
   rating of chargeable events does not occur in the element
   providing
   that provides the service. This Instead, the rating could may be performed in at a
   dedicated server, termed the prepaid ôprepaid enabled AAA server serverö or simply
   ôprepaid serverö. Alternatively, the actual rating may exist occur in an
   entity behind this AAA prepaid server.
   Business Furthermore, business logic and service rules may define
   dictate a time-dependent tariff model, for example that tariffing of events
   vary in time, e.g., the particular price per megabyte download
   for a service may
   be defined to switch at 8pm from a high tariff to a low tariff. The
   RADIUS
   extensions for prepaid defined in this document support scenarios enable scalable
   implementation of tariff switched prepaid systems. such scenarios.

   Furthermore, the prepaid architecture this documents assumes that an architecture where a quota server `quota
   server' is available which, through co-ordination with the rating
   entity and a  centralized account balance manager manager, is able to
   provide a quota response in
   response indication for prepaid data service. a particular user when requested.
   This quota server functionality
   could be performed in the prepaid enabled AAA server may or may exist in
   an entity behind this AAA server. Finally, the details of the
   PrePaid System, such as its persistent store, how it maintains its
   accounts are not covered at all.  However, coexist in order to define the
   RADIUS protocol extensions it is necessary to discuss the functional
   behavior of the PrePaid System. prepaid server.

1.1
    Terminology

  Service

  Network Access Device
  PrePaid Server    As in RADIUS.
  (NAS)
  Prepaid Client(PPC)      The Prepaid Client (PPC) is the entity which triggers the RADIUS message
                           exchange including prepaid extensions
                           defined in this document. Typically the Prepaid Client
                           Resides The PPC typically
                           resides in the NAS.
  PrePaid
  Prepaid Server(PPS)      The Prepaid Server is the entity that interacts with the Prepaid
                           Client using the RADIUS prepaid extensions
                           defined in this document.
  Home network             The network entity which contains maintains the user userÆs
                           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.  In this document the term is
                           used to differentiate between authorization
                           of services that are explicitly identified
                           by a Service Identifier.  Example of Access
                           Service would be the Main Service instance
                           of 3GPP2.

   Furthermore, we use 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.
  Overview

   This section gives a concise provides an overview of the Prepaid Charging models prepaid charging models,
   and their associated architectures, that is are supported by this document, and the Architectural model
   relevant to
   extensions proposed in this draft. document.

2.1
   PrePaid Charging Model

   There are several PrePaid
   Prepaid Charging Models

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

     . Volume-based charging (VBC): (e.g., (e.g. 2 Cents/KiloByte); Cents/KiloByte)
     . Duration-based charging (DBC): (e.g., (e.g. 3 Cents/minute); Cents/minute)
     . Subscription-based charging (SBC): (e.g.,
        Dollars/month+service);), (e.g. Dollars/month)
     . Event-based charging (EBC): (e.g., (e.g. 7 Cents/URL or email).

   Charging models can be further divided into those with debiting of
   prepaid email)

   Whether the user accounts and those with debiting of non-prepaid
   accounts account is a dedicated prepaid account or a general
   account (such as a current accounts at banks).  From bank account) is outside the perspective scope of
   this document all userÆs as treated as userÆs having a prepaid
   accounts. document.

2.2
   Architectural Model

   The architectural model supports prepaid clients on a service access
   device. A SAD (e.g. a NAS) typically assumed in this document encompasses the
   following entities.

   (1)  Service Access Device (SAD): This entity provides a access to data
        service to end-users. A the users, and typically coincides with the NAS. The
        SAD is a network entity on executes the data path
   that includes a RADIUS client and a PrePaid Client. which, for the purposes of this
        document, is termed the PPC. When prepaid service is used the
        SAD collects service event information and reports it while and/or or
        after services are provided to the prepaid user. This event information
        is sent to a prepaid
   server by the PPS using the prepaid RADIUS extensions. extensions defined in this
        document.
   (2)  The PPS: The RADUIS server. If real-time credit control is
        required, the SAD (prepaid client) PPC (SAD) contacts the prepaid server PPS with service event
        information included before the service is provided. The prepaid server, depending on the
   service event information, PPS
        performs a credit check and allocates a portion of available
        credit to the service event.
   (3)  The rating entity: This entity converts this the credit value that is
        allocated by the PPS into a time and/or or volume amount, which called the
        ôquotaö. This quota is then returned to the requesting SAD. PPC
        (SAD) (via the PPS). The rating entity may also determine that
        during the allocated quota, service provision a tariff switch will
   occur in which occur. In this
        case the rating entity will include details of the
   quota allocated prior to the tariff switch, details of the quota
   allocated after the tariff switch together with details of when the exactly
        tariff switch will occur.

   The requesting SAD then (PPC) monitors the provision of the service execution
   according to the instructions returned by the prepaid server. PPS. After service
   completion or on a subsequent request for service, the prepaid
   server PPS deducts
   the reserved allocation corresponding amount of credit from the prepaid
   userÆs user account.

   Similarly, when When a
   user terminates an on-going prepaid service, the
   prepaid client signals PPC informs the prepaid server PPS with the a value
   corresponding to
   suitable indication about the unused portion of the allocated quota.
   The
   prepaid server PPS is then able to refund unused allocated funds into a
   userÆs prepaid account.

   There the user account appropriately.

   Multiple PPSs MAY be multiple prepaid servers in the system deployed for reasons of redundancy and load
   balancing. The system MAY also contain separate employ multiple rating server(s) and servers.
   Prepaid accounts MAY be located in a centralized database. System internal interfaces can exist to relay messages
   between servers and an account manager.  However the The
   detailed architecture of prepaid the system and its interfaces are implementation
   specific and are out of outside
   the scope of this specification.

                                           accounting
       +------------+       +-----------+  protocol    +--------------+
       | Subscriber    User    |<----->|  Service  |              |              |
       |            |       |  Access   |<------------>| Accounting   |
       |  Device    |       |  Device   |<-----+       |   Server     |
       +------------+       +-----------+      |       +--------------+
                                (PPC)          |
                                               |
                                               |       +--------------+
                                               +------>|   PrePaid   Prepaid    |
                                          prepaid      |   Server     |
                                          protocol     +--------------+

   Figure 1 Basic Prepaid Architecture
   The prepaid server PPS and the accounting server in this architecture model are logical
   entities. The real configuration MAY combine them into a single
   host.

   There MAY exist protocol transparent RADIUS Proxies between prepaid
   client and prepaid server. These proxies transparently support the
   prepaid RADIUS extensions.

   In order to generalize the solution, in this paper we generalize the
   SADs, which in reality may be a NAS in Dialup deployments, PDSN
   (Packet Data Serving Node) or HA (Home Agent) in CDMA2000
   deployments, an 802.11 WLAN Access Points or GGSN (Gateway GPRS
   Serving Node) in GPRS/UMTS deployments. To actively participate in
   Prepaid procedures outlined here, the

   The SAD MUST have the Prepaid
   Client capabilities.  Prepaid Client Capabilities include the ability to meter the usage for a prepaid data session; this
   session. This usage includes time or volume (e.g. number of bytes) usage. bytes).

   In the case of roaming scenarios using mobile IP (in a wireless or
   wireline network), the prepaid client functionality PPC may be delegated
   to run on the Home
   Agent.  It may also be possible to deliver limited
   prepaid services using RADIUS capabilities specified in RFC2865 and
   RFC2866. Furthermore, the device including running the prepaid client functionality PPC may also have Dynamic
   ôDynamic Session Capabilities that include Capabilitiesö such as the ability to terminate a
   data session and/or or change the filters associated with a specific data
   session by processing Disconnect Messages ôDisconnectö messages and
   Change ôChange of Authorization
   Authorizationö messages as per [RFC3576].

   In this

   This document RADIUS assumes that the PPS is used as the AAA server. There
   are three
   kinds or categories types of AAA servers. server, as follows. (i) The AAA server in the
   home
   network, the HAAA, network (HAAA), which is responsible for authentication of the
   subscriber and also authorization of the service.
   subscriber.  In addition, the HAAA communicates with the Prepaid servers PPS using
   the RADIUS protocol in order to authorize prepaid subscribers.  In AAA based roaming deployments
   the  (ii) The AAA
   server in the visited network, the VAAA, 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.  In  Note that, in
   certain roaming deployments, the visited network may be separated from connected to
   the home network by via one or more broker networks. (iii) The AAA servers
   server in one of the aforementioned broker networks, BAAA are networks (BAAA), which is
   responsible to route the RADIUS packets transparently for forwarding messages and hence
   donÆt does not play an active roll role
   in the Prepaid Data Service prepaid data service delivery.

   In this 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 Prepaid Server is described in functional terms
   related to their interface PPS communicates with the HAAA.  The Prepaid Server HAAA for
   the purposes of authorisation. Additionally, the PPS interfaces to
   entities which:

   i) which

   - Keep the accounting state of the prepaid subscribers subscriberÆs account balance (balance
      manager);

   ii) Allow manager),
   - Rate access service requests to be rated in real-time (Rating
      Engine); Engine), and
   iii) Allow
   - Manage quota to be managed for a particular pre-paid prepaid service (Quota Server).

   The various deployments for Prepaid

   Three deployment scenarios are presented in the remainder of this
   section.  The first deployment is the basic Prepaid data
   service and scenario is depicted in figure Figure 2.  The  In this
   scenario, the SAD, which supports runs the
   prepaid client functionality, PPC, the HAAA HAAA, and the Prepaid Server PPS are
   collocated
   located in the same provider network.

   The Subscriber Device establishes a connection with one of several
   Access Devices possibly
   multiple SADs in the network. The selected SAD communicates with one or
   more a
   HAAA servers server. However, in the network.  To order to provide redundancy more than
   one redundancy, multiple HAAA
   may be available to use by a SAD. available.

   The network will have has one or more Prepaid Servers.  Multiple Prepaid
   Servers may be used to provide redundancy and load sharing. PPSs. The interface between the HAAA and
   the PPS is implemented using the RADIUS protocol together with the
   extensions described in this specification. 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 whatever
   protocol is used between the HAAA and the PPS. a
   functionally equivalent protocol.

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

      Figure 2 Basic Prepaid Access Architecture

   The second scenario, depicted in Figure 3 shows 3, is based on a static
   roaming prepaid 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 Static Roaming Prepaid Architecture

   As in the basic prepaid architecture the subscriberÆs device
   establishes a connection with the SAD (NAS, WLAN Access Point). SAD. The SAD communicates with the Visiting AAA server (VAAA)
   VAAA using the RADIUS protocol.  Again for redundancy there maybe more then one
   VAAA. The VAAA communicate VAAA, in turn, communicates
   using the RADIUS protocol with AAA BAAA servers in the broker network (BAAA). network.
   There maybe more then one Broker Network between the Visited Network
   and the Home Network.  The Home Network is the same as in the simple architecture.

   To support dynamic
   architecture depicted in Figure 2.

   The third scenario is a roaming scenario where the network will utilize Mobile-Ip as
   illustrated in utilises
   Mobile-IP. It is depicted Figure 4.  Note that typically In this scenario the mobile
   device
   would be moving between networks that use the same technology such
   as Wireless or WLAN.  Increasingly, device will be able to roam moves between networks that use different technology technologies such
   as between WLAN and Wireless and Broadband. Fortunately, Mobile-Ip can address Mobile-IP addresses this type of roaming
   mobility and therefore we need not be concerned with the underlying
   network technology.

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

   In figure Figure 4, the Subscriber device Device establishes a prepaid session
   between with the
   SAD in the foreign network, which has prepaid
   capabilities.  The subscriberÆs home address will be anchored at the
   Home Agent (HA) in the home network. The setup for this access service is
   identical to the cases covered above.  Notice Note that the SAD may be
   collocated with the Foreign Agent (FA) in case of Mobile-
   IPv4. if Mobile-IPv4 is being used.
   As the subscriber device moves moves, it establishes a connection with
   another SAD in the same foreign network or possibly in another foreign network. The prepaid data
   service should continue to be available. When a device associates to
   another SAD it MUST re-authenticate at the new SAD and de-associate
   or logoff log off from the old SAD. Furthermore, any unused quota at the
   old SAD MUST be promptly credited back to into the subscribers account.  The reason we say
   promptly, is subscriberÆs account immediately.
   This has to happen immediately because otherwise, if the subscriber is very low on resources to
   start with, the subscriber
   subscriberÆs funds are low, he may not have enough resources to log on
   to be denied service at the new SAD.  The speed at which resources can be returned depend
   on the type of handoff procedure that is used.  Some of the example
   of handoffs in wireless networks are dormant handoff, active handoff
   and fast handoff.

   As well, notice that

   Note that, if the SADs could communicate directly with each other then
   there could be a way to accelerate a faster the handoff procedure. In
   particular, it could accelerate the return of the unused portion
   of the quotas from the old Access Device. subscriber could be refunded more quickly.
   Unfortunately, standards with regards to handoff procedures are evolving with
   each network technology creating their own scheme specific to make the
   handoff procedures more efficient. underlying
   network technologies and vary significantly in terms of delay.

2.3
   Why not existing RADIUS attributes?
   Motivation

   It has been asked ôWhy not use existing RADIUS attributes to build
   construct a protocol for prepaid solution? scenarios? This will allow us to
   have a solution with existing devices without code modification.ö

   It is indeed possible to build construct a prepaid solution for prepaid billing
   scenarios using existing RADIUS attributes. The RADIUS server can simply would
   send an Access-Accept message containing a Session-Timeout(27) and set Termination-
   Action(29) to
   include a Termination-Action(29) in the RADIUS-request. Upon
   receiving the Access-Accept message, the NAS will 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 with indicating the amount of additional time in
   Session-Timeout(27) or a
   Session-Timeout(27). Alternatively, it would responds with an
   Access-Reject message if there were no more resources in the userÆs
   account.

   If

   Moreover, if the user terminates the session before prematurely, the time expressed in
   Session-Timeout(27).  The NAS will
   would recover any unused time from the accounting stream.

   There are several problems with such a solution:

   -It

   - It only allows for supports time-based prepaid. accounting. The solution presented in
   this document allows for supports both time and volume based prepaid.  As
   well as extensibility for other features such as tarified based
   solutions.

   -Using

   - 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. The solution presented in this paper document does not rely on
   Accounting Packets at all. It uses Access-Request, messages which do
   flow through any network in real-time. Delaying accounting messages
   may cause revenue leakage.

   -Session-Timeout(27)

   - 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 will obtain unlimited service.

   -Termination-Action(29) may use the service for an
   undetermined period of time.

   - Termination-Action(29) presents its own issues.  First  Firstly the
   behaviour of Termination-Action(29) is not mandatory.  Second, Secondly,
   according to RFC2865 RFC2865, Termination-Action fires when the Service is
   complete.  But we provision of
   the service has completed. However, service should not be terminating the service while terminated
   when negotiating additional quota. The refreshing of the time quota quota, because this should be happen in a
   manner transparent to the user. subscriber. Because Termination-Action
   occurs when the Service is complete completed it is unclear whether or not the
   user experience would be transparent. For example, will the affected. The RADIUS server might even
   allocate the subscriber a new IP address? address to the subscriberÆs device. Furthermore,
   the RADIUS server has no way of telling why the Access-Request
   message was generated. The RADIUS server will might have to wait for the
   corresponding accounting packet to determine the reason for this
   Access-Request message. Lastly Finally, re-authenticating the subscriber
   may take far too long. The solution presented in this document allows
   quota replenishing to occur in an undisruptive manner from the
   perspective of the user. user
   perspective. No re-authentication is required and quotas can be
   negotiated prior to the quotas available credit running out.

   -Prepaid ambiguity.  Implementing prepaid using existing RADIUS
   attributes presents another problem.

   - Due to the fact that the standard RADIUS attributes are not
   mandatory, then 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 will get free access.
   might be able to obtain the service for free. The solution described
   in this document, document requires that a prepaid capable prepaid-aware SAD inform informs the
   RADIUS server server, regardless of whether or not it the latter supports the
   prepaid
   capabilities. extensions. The RADIUS server can now then determine whether or
   not service should be granted or not. 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 that does support prepaid client function (e.g. the Home Agent) that supports
   prepaid, or it may allow the subscriber to get access but
   restrict the traffic. provide only a restricted service.]

   The prepaid solution we present is a robust carrier grade prepaid
   solution.  It only presented in this document requires the support of 2 two
   mandatory attributes and one optional attribute. Furthermore, it does not really
   require much a great amount of additional code support at the NAS. NASes a NAS that already support
   measurement of
   supports time and volume.  This or volume metering. The solution requires that they RADIUS
   entities advertise their prepaid capabilities in an Access-Request; Access-Request
   and that they generate an Access-Request Authorize-Only packet to
   obtain more quota at when or before the current quota is used up.  It
   also requires that the NAS to send an Access-Request with Authorize-Only
   when the session terminates in order to return any unused quota to the prepaid system.

   Lastly refund the subscriberÆs
   account appropriately.

   The solution provided in this document is extensible. This
   document defines For example,
   the basic exchanges between a prepaid capable NAS
   and a RADIUS server.  The protocol can easily be extended to support tariff switching and other
   prepaid business models.

3.
  Use-cases

   In this section we present a set of use cases that help establish
   the requirements needed to deliver PrePaid data services.  These
   use-cases donÆt address how the PrePaid account is established or
   maintained.  It is assumed that the PrePaid subscriber has obtained
   a valid account from a service provider such as a wireless operator
   or a WLAN operator.

   To make the document as general as possible, the use cases cover the
   experience from the SAD and not from the UserÆs Device.  The
   connection between the UserÆs Device, which typically involves
   setting up a layer 2 session, e.g., PPP session or GPRS PDP Context,
   is specific to a given network technology and the details are not
   required to deliver a PrePaid service.

3.1
   Simple pre-paid access use-case

   A PrePaid subscriber connects to his home network.  As usual, the
   Access Device that is servicing the subscriber will use the AAA
   infrastructure to authenticate and authorize the subscriber.

   The SAD sends a RADIUS Access-Request to the AAA system to
   authenticate the subscriber, and identify and authorize the service.
   The Access-Request includes the subscriberÆs credentials and may
   include the PrePaid capabilities of the SAD.  PrePaid capabilities
   MUST be included if the SAD supports PrePaid functionality.

   The AAA System proceeds with the authentication procedure.  This may
   involve several transactions such as in EAP [RFC2284].  Once the
   subscriber has been authenticated, the AAA system determines that
   the subscriber is a PrePaid subscriber and requests that the PrePaid
   System authorize the PrePaid subscriber.  The request MUST include
   the PrePaid Capabilities of the serving SAD.

   The PrePaid System will validate that the subscriber has a PrePaid
   Account; it will validate that the account is active; and will
   validate that the SAD has the appropriate PrePaid capabilities.  If
   all is in order, the PrePaid System will authorize the subscriber to
   use the network.  Otherwise it will reject the request.  The
   response is sent back to the AAA System.  The response includes
   attributes to indicate the allocation of a portion of the
   subscriberÆs account called the initial quota (in units of time or
   volume) and optionally a threshold value.

   The reason we allocate a portion of the userÆs account is that the
   user may be engaged in other Services that may draw on the same
   Prepaid account.  For example the user may be engaged in a data
   session and a voice session.  Although, these two services would
   draw from the same account the involved separate parts of the
   system.  If the entire quota was allocated to the data session then
   the user would have no more funds for a voice session.

   The AAA system incorporates the PrePaid attributes received from the
   PrePaid System into an Access-Accept message that it sends back to
   the SAD.  Note the AAA System is responsible for authorizing the
   service whereas the PrePaid System is responsible for PrePaid
   authorization.

   Upon receiving the Access-Response, the SAD allows the PrePaid data
   session to start and it starts to meter the session based on time or
   volume, as indicated in the returned Quota

   Once the usage for the session approaches the allotted quota (as
   expressed by the threshold), the SAD will request an additional
   quota.  The re-authorization for additional quota flows through the
   AAA system to the PrePaid System.  The PrePaid System revalidates
   the subscriberÆs account; it will subtract the previous quota
   allocation from the userÆs account balance and if there is a balance
   remaining it will reauthorize the request with an additional quota
   allotment.  Otherwise, the PrePaid System will reject the request.
   Note the replenishing of the quotas is a re-authorization procedure
   and does not involve re-authentication of the subscriber.

   It is important to note that the PrePaid System is maintaining
   session state for the subscriber.  This state includes how much
   account balance was allocated during the last quota allocation for a
   particular session and how much is left in the account.  Therefore,
   it is required that all subsequent messages about the PrePaid
   session reach the correct PrePaid System.

   Upon receiving a re-allotment of the quota, the SAD will, continue
   the data service session until the new threshold is reached.  If the
   request for additional quota cannot be fulfilled then the SAD will
   let the subscriber use up the remaining quota and terminate the
   session.

   Alternatively, instead of terminating the session, the SAD may
   restrict the data session such that the subscriber can only reach 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 purchase their initial PrePaid
   Service.

   Should the subscriber terminate the session before the quota is used
   up, the remaining balance allotted to the session must be credited
   back to the subscriberÆs account.

   As well, while the Access Device is waiting for the initial quota,
   the subscriber may have dropped the session.

   The initial quota must
   be credited back to the subscribers account.

3.2
   Support for Multi-Services

   Up to now we were looking at session that consisted of a single
   service, ôAccess Serviceö.  An ôAccess Serviceö is the basic service
   that is provided to the user by the SAD after successful
   authentication and authorization.  When we donÆt differentiate
   between different types of services the ôAccess Serviceö aggregates
   all the services that the user my be engaged in on a particular SAD.

   For example, the user may be browsing the web, and participating in
   a VoIP conversation, watching streaming video and downloading a
   file.

   Some operators may want to distinguish between these services.  Some
   services are billed at different rates and services maybe metered
   differently.  Therefore, the prepaid solution needs to be able to
   distinguish services, and allocate quotas to the services using
   different units (e.g. time, volume) and allow for those quotas to be
   utilized at different rates.

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

   As shown in the above diagram, a Session can have N Services.  Each
   service is identified by a Service-Id.  The format of the Service-Id
   is not extensions described in the scope of this document but the Service-Id could be
   expressed as an IP flow using the stand 5-tuple (Source-IP and Port,
   the Destination-IP and Port, and the protocol type).  Each service
   is allocated an appropriate quota.

3.3
   Resource Pools

   When working with multiple services that results in multiple quota
   allocation another problem arises.  Even though quotas are portioned
   out in fractional parts of the userÆs prepaid account, there could
   be a situation where one Service utilizes its quota faster then
   another Service.  When the userÆs account is used up, there could be
   a situation where one Service is unable to obtain additional quota
   while another Service has plenty of quota remaining.  Unless the
   quotas can be rebalanced, the SAD would then have to terminate that
   Service.  As well, even before that happens, the existence of
   several Services could generate an excessive amount of traffic as
   the services update their quotas.

   One method to solve these problems is to utilize resource pools.
   Resource pools allow us to allocate resources to several 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 allocated to the pool runs out, we replenish the
   pool.

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

   As the figure above shows, 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 determines the rate
   at which Service-A and Service-B draw from the pool.

   The pool is initialized by taking the quota allocated to each
   service and multiplying it by Mn.  Therefore, the amount of
   resources allocated 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 consumed resources of Service-A and Service-B
         respectively.

   Note that the resources assigned to the pool are unit less.  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 on behalf of service-A to the pool we would set Ma = 10
   and place 50 units into the pool.  If we allocate $5 were designed based on behalf of
   Service-B to the Pool, then M=1 and place 50 units into the Pool.
   The pool would have a total sum of 100 units to be shared between
   the two services.  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.

3.4
   Support for Complex Rating Functions

   The rate of use
   number of a resource by a service can be very complex.
   Some services use resources (e.g. time, volume) linearly.  For
   example, a service maybe consuming resources at a rate of $1 per
   Mbyte.

   In some cases an operator may wish to apply a much more complex
   rating function.  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 Mbyte and volume above M bytes be rated
   at $0.50 per Mbyte.  This rating function could be achieved by
   repeated message exchanges with the Prepaid System.

   To avert the need to exchange many messages and to support even more
   complex rating functions we support Rating Groups.  A Rating Group
   is provisioned at the SAD.  As illustrated in the figure below, a
   Rating Group is associated with one or more Services and defines the
   rate that the services associated with the Rating Group consume the
   quota.

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

   During authorization of the of a service, if the service is
   associated with a Rating Group, the Prepaid Client sends the Rating
   Group to the Prepaid Server.  The prepaid service authorizes the
   Rating Group by assigning it a Quota and optionally assigning it to
   a Resource Pool.

   When service that belongs to an authorized Rating Group is
   instantiated, then the Prepaid Client does not need to authorize
   that service.  This could greatly reduce the amount of traffic
   between the Prepaid Client and the Prepaid Server.

3.5
   One-Time-based Prepaid Charging

   One-Time-based Prepaid Charging is used for charging of Service
   Events where there is no session.  That is, the Service Event does
   not have a start or an end. scenarios. An example of a one-time service event
   is the purchase of a ring-tone.  The one-time event in this case is
   the userÆs purchasing the right to use a ring-tone.  The actual
   downloading of the tone is a separate service event totally distinct
   from the right to use the ring tone.  For example, the user may have
   already downloaded the tone and then after being totally satisfied
   with the quality, decides to purchase the right to use the 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 to use a service for a month.  While the user uses the
   service his usage maybe metered especially if there are limits
   associated with the service.

   For a given user, One-time-based charging may occur in conjunction
   with the other charging models.  For example, the prepaid user maybe
   accessing a website which is being metered based time or volume
   while they purchase 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 exempt from charging.

   One-time-based charging occurs when the SAD sends an indication to
   the PPS identifying the service, and the units that need to be
   debited from the account.  The units to be debited from the account
   and how those units are rated (if they donÆt represent money) is not
   in scope of this specification.

   One-time-based charging may occur under two conditions: the SAD may
   not have a authenticated context (or access to an authenticated
   context for the subscriber); the SAD has access to authenticated
   context for the subscriber.  In the former case the SAD will have to
   authenticate the subscriber.  For example, the prepaid user maybe
   authenticated by the SAD providing access service.  However when the
   user accesses the subscription server to purchase a subscription,
   the subscription server may not have access to the authentication
   context of the subscriber and thus will have to authenticate the
   subscriber.  Authentication of the subscriber and the generation overview of
   the one-time charging event will happen at the same time.

   Note that one-time-based charging can be used to credit the prepaid
   userÆs account.  For example, the SAD these can return resources back to
   the prepaid subscriber by making a one-time charge request that
   includes the amount of resource to be credited back to the user.

3.6
   Support for Tariff Switching

   The PPC and the PPS may support tariff switching for volume based
   prepaid packet service.  Tariff switching allows the PPS to signal
   the PPC when a change of rating or tariff switch is to occur.  For
   example as shown in the figure below, traffic before 18:00 hours is
   rated at ær1Æ or business rates and traffic after 18:00 hours is
   rated at ær2Æ or non-business rates.  The PPC will then be able to
   report usage before the tariff switch point and usage after the
   tariff switch point.  Since time is measured in seconds, tariff
   switching only makes sense for volume based prepaid service where
   the volume is billed at different rates: one rate before the tariff
   switch period and another rate after the tariff switch period.

                         18:00
         ------------------+-----------------
                r1         |      r2
         ------------------+-----------------
              ^                        ^
              |<----TSI--->            |
              |                        |
        Access-Accept            Access-Request

   When tariff switching is supported by the PPC it indicates support
   for tariff switching by setting the appropriate bit in the PPAC.  If
   the PPS requires to signal a tariff switch time it will send a PTS
   attribute which will indicate when the tariff switch period is to
   occur as a number of seconds from the current time
   (TarrifSwitchInterval TSI).

   Sometime after the tariff switch period the PPC will send another
   online Access-Request.  Either the user has logged off or the volume
   threshold has been reached.  The PPC will report how much volume was
   used using the PPAQ and how much volume was used after the tariff
   switch using the PTSÆs VUATS subtype.

   If the PPC will send and event before the tariff switch time, say
   the Volume threshold has been reached, the PPS will respond with
   another PTS with the TSI indicating how many seconds until the
   tariff switch time.

   In situations where there is going to be another tariff switch
   period, as shown below, the PPS MUST specify the length of the
   tariff switch period using the TimeIntervalAfterTariffSwitchUpdate
   (TITSU) in the PTS attribute.

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

   When TITSU is specified in the PTS, the PPC MUST generate an online
   Access-Request within the time after TSI and before TITSU expires.
   Normally the PPC will be triggered by the Volume Threshold, but
   there is no guarantee that the user session will generate any volume
   during the period between 18:00 and 23:30 hours.  If TITSU was not
   specified in this case, then if there was some volume generated
   during r2 but not enough to trigger a prepaid update before the next
   tariff switch at 23:30.  Then the PPC will not be able to report how
   much volume was generated during r1, r2, and r3.

   When prepaid for multiple flows is supported, then each flow could
   have it own tariff switch period.  For example, best effort flow may
   not have a tariff switch associated with it, yet a voice over IP
   call may have a tariff switch period.  The Voice over IP call may
   bill at one rate for the first 5 minutes and another rate for the
   rest of the call.

   [EDITORÆS NOTE: Need to consider tariff switching with pools. Is it
   worthwhile?]

3.7
   Support for Roaming

   For some networks it is essential that PrePaid Data Services be
   offered to roaming subscribers.  Support for static and dynamic
   roaming models are needed.  Static roaming is where the subscriber
   logs onto a foreign network.  The foreign network has a roaming
   agreement directly with the home network or through a broker network
   or networks.  The subscriber remains logged into the network until
   the subscriber changes location.  When changing location a new
   connection and a new login procedure is required.

   Dynamic roaming allows to subscriber to move between networks while
   maintaining a connection with the home network seamlessly.  As the
   subscriber moves between networks, the data session is handed off
   between the networks.

   In both roaming scenarios, the subscriber always authenticates with
   the home network.  PrePaid authorization and quota replenishing for
   the session need to be received at the home network and more
   specifically at the PrePaid System where state is being maintained.

   Dynamic roaming is particularly challenging.  A subscriber that
   established a PrePaid Data Session may roam to another Access Device
   that doesnÆt not support PrePaid functionality.  The system should
   be capable to continue the PrePaid session.

3.8
   PrePaid termination

   When fraud is detected by the PrePaid System, or when an error is
   detected, it may be beneficial for the PrePaid system to terminate a
   specific session for the subscriber or all the sessions of a
   subscriber.

   Some errors can occur such that the PrePaid System is in a state
   where it is not sure whether the session is found
   in progress or not.
   Under conditions such as this, the PrePaid system may wish to
   terminate the PrePaid data session to make sure that resources are
   not being utilized for which it canÆt charge for reliably.

   Some handoff procedure used during dynamic roaming may require that
   the PrePaid system explicitly terminate the subscribers PrePaid data
   session at an SAD.  For example, if time based PrePaid service is
   being used and the mobile subscriber performs a dormant handoff, the
   PrePaid System needs to explicitly terminate the PrePaid session at
   the old SAD.

3.9
   Querying and Rebalancing Prepaid Resources

   It should be possible to allow the Prepaid Server to Query the
   current uses state of a prepaid balance at a SAD and adjust the
   prepaid resources.

   For example, a request to the PPS is made (e.g., a one-time charging
   event) but the userÆs account is depleted but resources have been
   allocated to the SAD.  The PPS should have a the capability 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 doesnÆt 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
   occurrence of this scenario by allocated smaller quotas.  But the
   result will be many more transactions.  The ability to query and to
   rebalance resources provides a good trade-off.

4. Appendix A.

3.
  Operations

4.1

3.1
   General Requirements

4.1.1

3.1.1
     Broker AAA Requirements

   Broker AAA (BAAA) servers MUST support the Message-Authenticator(80)
   attribute as defined in [RFC2869]. If BAAA servers they are used, the
   BAAA servers function is to they forward
   the RADIUS packets as usual to the appropriate RADIUS servers.

   Accounting messages are not needed to deliver a PrePaid prepaid service.
   However, accounting messages can be used to keep the PrePaid Server
   current PPS up to date
   as to what is happening with the PrePaid prepaid data session.  Therefore, a
   BAAA SHOULD deliver RADIUS Accounting messages using the pass
   through mode described in [RFC2866].

4.2

3.2
   Authentication and Authorization for Prepaid Enabled SADs

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

   If the SAD has PrePaid Client PPC capabilities, it MUST include the PPAC(TBD)
   attribute in the RADIUS Access-Request. The PPAC(TBD) attribute
   indicates to the PrePaid server the PrePaid PPS which prepaid capabilities are possessed by the
   SAD. These are required in order to complete the
   PrePaid prepaid
   authorization procedures. procedure.

   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 in which 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 Change-of-
   Authorization message, the AAA server would then be responsible for
   terminating the session using whatever the means that are supported by the
   device.

   If the authentication procedure involves multiple Access-Requests 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 will be is sent as usual to the HAAA. The packet may be proxied pass
   through zero one or more BAAA.

   Once the Access-Request arrives at the HAAA, the HAAA will
   authenticate authenticates
   the subscriber.  If the subscriber is cannot be
   authenticated, this fails, the HAAA will send sends an Access-Reject
   message back to the client. If the subscriber is authenticated, authentication succeeds, the HAAA will
   determine
   determines whether or not the subscriber is a PrePaid prepaid subscriber.
   The techniques used to determine whether or not a subscriber
   (How this is a
   PrePaid subscriber done is beyond the scope of this document. document.) If the
   subscriber is not a PrePaid prepaid subscriber, then the HAAA will respond responds as
   usual with an Access-Accept or an Access-Reject message. If the
   subscriber is a PrePaid Subscriber prepaid subscriber then the HAAA SHALL forward the
   Access-Request to a PrePaid server the PPS for further authorization.

   The Access-Request will contain contains the PPAC(TBD) attribute, attribute and the
   Dynamic-Capabilities Dynamic-
   Capabilities attribute if one was included; the included. The User-Name(1)
   attribute MAY be set to a value that would represent represents the
   SubscriberÆs PrePaid Identity. subscriberÆs
   identifier.  This attribute is used by the
   PrePaid server PPS to locate the PrePaid SubscriberÆs his
   account. For added security, the HAAA MAY also set the User-Password(2) User-
   Password(2) attribute to the password used between the HAAA and the PrePaid server.
   PPS.

   The PrePaid server lookups PPS locates the subscriberÆs PrePaid account and will
   authorize authorizes him. During
   this procedure, the subscriber taking PPS takes into consideration the SAD PrePaid
   Client PPC
   Capabilities.

   Upon successful authorization, the PrePaid server will generate PPS generates an Access-Accept
   containing the PPAC(TBD) attribute and the PPAQ(TBD) attribute.

   The PPAC attribute returned to the client indicates the type of
   prepaid service to be provided for the session. The PPAQ(TBD)
   attribute includes: includes the following.

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

   - Volume and/or Time quotas, which are set to a value values representing a
      portion of the subscribers account; credit;

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

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

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

   Depending on site policies, upon unsuccessful after failed authorization, the
   PrePaid server will PPS may
   generate an Access-Reject to terminate the session immediately.
   Alternatively, the PrePaid server 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 where to a fixed server. (This feature could be used, for
   example, to prompt the subscriber can user to replenish their account for a period of time. account.) Blocking of
   traffic is achieved by either Filter-Id(11) Filter-ID(11) or NAS-Filter-Rule(see
   Redirect I-d).  Redirection is achieved by sending Redirect-Id or Redirect-
   Rule,
   Redirect-Rule, HTTP Redirection defined in the Redirect I-d.  The period of
   time period before the blocked/redirected session last can be is blocked/redirected is specified by
   the Session-Timeout(27) attribute.

   Upon receiving the an Access-Accept from the PrePaid Server, PPS, the HAAA
   will append appends the
   usual service attributes and forward the packet to the SAD.  The
   HAAA SHOULD NOT overwrite any attributes already set by the PrePaid server. 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 fails to
   does not receive an Access-Accept or an Access-Reject message from
   the PrePaid server PPS it MAY do nothing or send an Access-Reject or an Access-Accept Access-
   Accept message back to its
   client.

4.3 the PPC.

3.3
   Session Start Operation

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

   Note that the PrePaid Server role of the PPS is not to record accounting messages
   and therefore it SHOULD not respond with an Accounting Response
   packet.

   If the Prepaid server 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 Prepaid server PPS does not receive indication directly (via
   Accounting-Request(start)) Accounting-
   Request(start)) or indirectly, it 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 to ensure that the session is indeed dead.

4.4

3.4
   Mid-Session Operation

   During the lifetime of a PrePaid prepaid data session the SAD will request
   to replenish requests the
   replenishment of the quotas using Authorize-Only Access-Request
   messages.

   Once either the allocated quota has been reached exhausted or the threshold
   has been reached, the SAD MUST send an Access-Request with Service-Type(6)
   Servicetype(6) set to a value of ô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 those the one used during the 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
   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 NOT include either a User Password or
   and MUST NOT include a Chap Password. In order to authenticate the
   message, the SAD MUST include the a Message-Authenticator(80) attribute.
   The SAD will compute computes the value for the Message-Authenticator based on according
   to [RFC2869].

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

   Once the Authorize Only Access-Request message is validated, the
   HAAA SHALL forward the Authorize Only Access-Request to the
   appropriate PrePaid Server. PPS. The HAAA MUST forward the Authorize Only Access-Request Access-
   Request to the PrePaid server PPS specified in the PPAQ(TBD).  The HAAA MUST sign the message using the Message-
   Authenticator(80) and add an
   Message-Authenticator(80) to the procedures in message, according to [RFC2869].
   As with the Access-Request message, the HAAA MAY modify the User-Name(1) User-
   Name(1) attribute to a value such that it represents the userÆs internal PrePaid
   prepaid account in the PrePaid server. PPS.  Note the PrePaid server could 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 PrePaid server PPS MUST validate the Message-
   Authenticator(80) as prescribed described in [RFC2869]. If validation fails,
   the message is
   invalid, the PrePaid server PPS MUST silently discard the message. If it received receives an
   Authorize Only Access-Request message that does not contain a
   PPAQ(TBD) it MUST silently discard the message.

   The PrePaid server will lookup PPS locates the PrePaid prepaid session by state using the
   PrePaid Quota Id
   contained within the PPAQ(TBD). The PrePaid Server
   would, take PPS takes the last most recently
   allocated quota and subtract that subtracts it from the
   UserÆs userÆs balance.  If there is remaining balance,
   sufficient balance remains, the PrePaid server
   re-authorizes PPS authorizes the PrePaid session by allocate an PPS and allocates
   additional quota.  The PrePaid server PPS may want to also calculate a different new threshold
   values as well. value.

   Upon successful re-authorization, the PrePaid server will generate PPS generates an Access-Accept
   containing the PPAQ(TBD) attribute. The Access-
   Accept Access-Accept message MAY
   contain Service-Type(6) Servicetype(6) set to Authorize-Only and MAY contain the
   Message-Authenticator(80).

   Depending on site policies, upon unsuccessful authorization, the
   PrePaid server will generate 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) Session-
   Timeout(27) attribute such that the PrePaid subscriber could can get access to a
   restricted set of locations for a short duration period of time. This feature
   could be used to allow them enable users to replenish their account, or accounts, create
   an account;
   new accounts, or to browse free content.

   Upon receiving the Access-Accept from the PrePaid server, PPS, the HAAA SHALL return
   the packet to its client. If the HAAA, HAAA receives an Access-Reject
   message, it will forward forwards the packet. Depending on site policies, if the
   HAAA fails to does not receive an Access-Accept or an Access-Reject message
   from the PrePaid server 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 PrePaid server PPS MAY update the PrePaidServer
   attribute(s) and these may have to be saved as well.

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

4.5

3.5
   Dynamic Operations
   The PrePaid server PPS may want to 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 actions action that the PrePaid server can perform: PPS may perform. Firstly, it can
   may request that the session to be terminated; or terminated. Secondly, it can may request
   that
   the attributes associated with the session to be modified.  More
   specifically, it can may modify a previously sent PPAQ(TBD)

   Both of these actions require that the session be uniquely
   identified at the SAD.  As a minimum the PrePaid server:

   -MUST PPS MUST

   -  provide either the NAS-IP-Address(4) or the NAS-Identifier(32)
   -MUST
   -  provide at least one session identifier such as User-Name(1),
   Framed-IP-Address(), the Accounting-Session-Id(44).

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

   For a discussion on Dynamic Operations as they related Mutli-Service
   operations see further on.

4.5.1

3.5.1
     Unsolicited Session Termination Operation

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

   If the SAD receives a Disconnect-Message, it will respond responds with either a
   Disconnect-ACK packet if message (if it was is able to terminate the
   session session) or else it will respond
   with a Disconnect-NAK packet. packet (otherwise).

   Upon successful termination of a session the SAD MUST return any
   unused quota to the Prepaid Server 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 Forced Disconnectö.

4.5.2

3.5.2
     Unsolicited Change of Authorization Operation

   At anytime any time during the prepaid session the Prepaid Client PPC may receive a Change of
   Authorization (CoA) message.  A Prepaid Server PPS may send a new Quota to either
   add additional quota or to remove quota
   already that is allocated for to the service.

   If the Change of Authorization contains a PPAQ then that PPAQ will
   override
   overrides a previously received PPAQ. The PPAQ may contain more
   allocated Quota or less allocated quota.  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 currently already used then the SAD will accept 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;
   if the quota received is less then the currently used level then the
   SAD would follow the normal procedures followed when a quota is used
   up.

4.6 update.

3.6
   Termination Operation

   The termination phase is initiated when either: (i) the Subscriber subscriber logs
   off; off,
   (ii) the quotas have been consumed, subscriberÆs balances 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 will send sends an Authorize-Only Access-
   Request Access-Request
   message with a PPAQ(TBD) and Update-Reason attribute set to either
   ôClient Service terminationö or ôRemote Forced disconnectö
   and disconnectö. This
   message indicates the currently used already consumed quota.

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

4.7

3.7
   Mobile IP Operations

   In roaming scenarios using with Mobile-IP, as the mobile subscriber roams
   between networks, or between different types of networks such as
   between WLAN and CDMA2000 networks, the PrePaid prepaid data session should
   be maintained transparently if the HA is acting as the SAD.

   As the subscriber device associates with the new SAD (AP or PDSN
   that supports prepaid client 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 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 Home IP
   address remains the same.

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

   If

   Even if the subscriber has roamed moves to an a SAD that does not have any
   PrePaid Capabilities, PrePaid prepaid
   capabilities can the prepaid data service may still continue. This can be possible done
   by requesting the Home Agent (providing it (assuming that has PrePaid Capabilities) such capabilities)
   to
   assume take over the responsibilities for metering of the service.  The procedure for
   this SAD (i.e. metering).  This
   scenario will be given discussed in the next release a later version of this draft.

4.8 document.

3.8
   Operation consideration considerations for Multi-Services Multiple prepaid services

   This section describes the operation for supporting Prepaid support for
   multi-services multiple prepaid services on the same SAD.  The operations for multi-services
   are very similar to operations for
   a single service. SAD. Message flows illustrating the various interactions
   are presented at the end of this document.

   A SAD that supports prepaid operations for multi-services SHOULD set
   the ô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) to
   uniquely differentiate between the services.  The exact definition
   of the Service-Id attribute is out of outside the scope for 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.  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ö.

4.8.1

3.8.1
     Initial Quota Request

   When operations with multi-services is desired, the SAD will request 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 prepaid quota for the Rating-Group by sending a PPAQ containing
   the Rating-Group-Id.  In both cases the Update-Reason
   will be is set to
   ôInitial-Requestö.

   The Authorize-Only Access-Request packet message may contain more than one
   PPAQ.  The Authorize-Only Access-Request MUST include includes one or more
   attributes that serve to identify the session so that it can be
   linked to the original authentication.  Which Session Identifier(s)
   is 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 PPAQs, the Prepaid System will allocate prepaid system allocates resources to each
   PPAQ.  The resources, can be in units of time, volume as before. Each PPAQ will be is assigned a unique QID that MUST appear in a
   subsequent PPAQ update updates for that service or rating-group. As well,
   Additionally, the PPAQ MUST contain the Service-ID; or Group-ID; Service-ID or neither, if Group-ID,
   unless the PPAQ applies to the is a generic ôAccess Serviceö.

4.8.2

3.8.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 replenish the quota the
   Prepaid Client will send 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ö). The Update-Reason filed will indicate
   indicates either ôThreshold reachedö(3), or ôQuota reachedö(4).  The
   Authorize-Only message must contain
   identifiers to identify the session. session identifiers.

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

4.8.3

3.8.3
     Termination

   When an the allotted quota for the a service is used up 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 service MUST be
   terminated.

   If the Service service is to be terminated then the SAD shall send a PPAQ
   with the appropriate QID, the Service-Id, the used quota, and
   Update-Reason set to ôClient Service Terminationö.

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

   Note when sending more then on PPAQ it may be required to send
   multiple Authorize Only Access-Requests.

4.8.4

3.8.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 will match matches the PPAQ to with the service using
   the Service-ID attribute.  The new quota could be higher then differ from the
   last
   previously allocated value or it could be lower. value.  The SAD must react to the new quota value
   accordingly.

   A Disconnect message may not be send for a specific service.  A disconnect message terminates the ôAccess Serviceö.  As such the
   SAD
   must MUST report back 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
   reason.

4.8.5 update.

3.8.5
     Support for Resource Pools

   If the Prepaid Client PPC supports pools as indicated by setting the ôPools
   supportedö bit in the PPAC(TBD) then the Prepaid Server PPS may associate a Quota
   with a Pool by including the Pool-Id and the Pool-
   Multiplier Pool-Multiplier in the
   PPAQ(TBD).

   When Resource Pools are used, the PPAQ must not use the threshold
   field.

4.8.6

3.8.6
     One-Time-Charging

   To initiate a One-Time charge the PPC include includes the PPAQ attribute in
   an Access-Request packet.  The Access Request packet MUST include
   the a
   Message-Authenticator(80) and an Event-Timestamp(55) attributes. attribute.

   The Service Id field of the PPAQ identifies the Service that is be
   charged for. prepaid service.
   The amount of to be charged is specified using the Resource Quota and
   Resource Quota overflow subtypes.  If the value specified is
   negative then the resources will be are credited to the userÆs account.

   The QID field MUST be set to a unique value and will be is used by the PPS
   to detect duplicates should the packet be retransmitted. duplicates. The Update Reason field MUST be set to One-Time One-
   Time Charging.

   Upon receiving a PPAQ configured as a One-Time charge, charge PPAQ, the RADIUS server
   authenticates the user and and, if authenticated, pass successful, passes the PPAQ to the
   PPS.  The PPS shall locate locates the subscriber account and debit debits or
   credit the account credits it
   accordingly. The PPS MUST repond respond to the PPS with an Access-Accept
   message upon success.  Or if successful, or an Access-Reject message
   if it cant locate the userÆs account or if there is no balance
   remaining in the account. otherwise.

   The RADIUS server shall respond back to the SAD with an Access Accept
   message.  Since this is a one-time event 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.  The 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 where a when the session already exists for
   the user. exists.
   The PPS shall respond back responds with an Access-Accept to indicate that the userÆs
   account has been debited or an Access-
   Reject indicating that the account could not be debited.

4.8.7 Access-Reject otherwise.

3.8.7
     Error Handling

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

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

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

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

4.9

3.9
   Accounting Considerations

   Accounting

   Although typically generated, accounting messages are not required
   to deliver PrePaid Data
   Service.  Accounting message will typically be generated for PrePaid
   Data Service.  This because a prepaid data service.  When generated, accounting message
   messages are used for auditing purposes as well as and for bill generation. billing.

   Accounting messages associated with PrePaid Data Sessions prepaid data sessions should
   include the PPAQ(TBD) attribute.

4.10

3.10
    SAD Operation

   To be completed

4.11

3.11
    Interoperability with Diameter Credit Control Application

   The RADIUS PrePaid solutions prepaid extensions need to interoperate with the Diameter
   protocol.  Two possibilities exist: The AAA infrastructure is
   Diameter based and the SAD are RADIUS based; 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 prepaid accounting system using an all Diameter based
   infrastructure.

   <This section to be completed.>

5.

4.
  Attributes

   This draft is using the RADIUS [RFC2865] namespace.

5.1

4.1
   PPAC Attribute

   The PrepaidAccountingCapability (PPAC) attribute is sent in the
   Access-Request message by a Prepaid Capable prepaid capable NAS and is used to
   describe the PrePaid prepaid capabilities of the NAS.  The PPAC is available
   to be sent present
   in an Access-Accept message by the Prepaid server PPS to indicate the type of prepaid
   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        | SUB-TYPE SUBtype 1     | LENGTH        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    AvailableInClient (AiC)                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   TYPE  : value of PPAC
   LENGTH: 8
   VALUE : String

   The value MUST be encoded as follows:

   Sub-Type

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

   The optional AvailableInClient Sub-Type, Subtype, generated by the PrePaid
   client, PPC,
   indicates the PrePaid Accounting metering capabilities of the NAS and shall be bitmap
   encoded. The possible values are:

      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

5.2

4.2
   Session Termination Capability

   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.

5.3

4.3
   PPAQ Attribute

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

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

   The attribute consists of a number of subtypes.  Subtypes not used  Unused subtypes are
   omitted in 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        | SUB-TYPE SUBtype 1     | LENGTH        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        QuotaIdentifier (QID)                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | SUB-TYPE SUBtype 2     | LENGTH        |        Volume Quota           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Volume Quota               | SUB-TYPE SUBtype 3     | LENGTH        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  VolumeQuotaOverflow (VQO)    | SUB-TYPE SUBtype 4     | LENGTH        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        VolumeThreshold (VT)                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | SUB-TYPE SUBtype 5    | LENGTH         | VolumeThresholdOverflow (VTO) |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | SUB-TYPE SUBtype 6    | LENGTH         |      DurationQuota (DQ)       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    DurationQuota (DQ)         | SUB-TYPE SUBtype 7     | LENGTH        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      DurationThreshold (DT)                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | SUB-TYPE SUBtype 8     | LENGTH        | Update-Reason attribute (UR)  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | SUB-TYPE 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 of PPAQ
   Length: variable, greater than 8

   String:  The String value MUST be encoded as follows:

   Sub-Type

   Subtype (=1):  Sub-Type  Subtype for QuotaIDentifier attribute
   Length       :  Length of QuotaIDentifier attribute (= 6 octets)

   QuotaIDentifier (QID):

      The QuotaIDentifier Sub-Type subtype is generated by the PrePaid server
      at PPS together with
      the allocation of a Volume and/or or Duration Quota. The on-line quota
      update RADIUS Access-Request message sent from the SAD to the PPS
      shall include a previously received QuotaIDentifier.

   Sub-Type

   Subtype (=2): Sub-Type Subtype for VolumeQuota attribute
   Length       : length of VolumeQuota attribute (= 6 octets)

   VolumeQuota (VQ):

      The optional VolumeQuota Sub-Type subtype is only present if Volume Based
      charging is used. In a RADIUS Access-Accept message (PPS to SAD
      direction), it indicates the Volume (in octets) allocated for the
      session by the PrePaid server. PPS. In RADIUS Authorize Only Access-
      Request Access-Request
      message (SAD to PPS direction), it indicates the total used
      volume (in octets) for both forward and reverse traffic
      applicable to PrePaid accounting.

   Sub-Type traffic.

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

   VolumeQuotaOverflow (VQO):

      The optional VolumeQuotaOverflow Sub-Type subtype is used to indicate how
      many times the VolumeQuota counter has wrapped around 2^32 over
      the course of the service being provided.

   Sub-Type

   Subtype (=4): Sub-Type Subtype for VolumeThreshold attribute
   Length       : length of VolumeThreshold attribute (= 6 octets)

   VolumeThreshold (VT):

      The VolumeThreshold Sub-Type Subtype shall always be present if
      VolumeQuota is present in a RADIUS Access-Accept message (PPS to
      SAD direction). It is generated by the PrePaid server PPS and indicates the
      volume (in octets) that shall be used consumed before
      requesting a new quota update.
      should be requested. This threshold should not be larger than the
      VolumeQuota.

   Sub-Type

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

   VolumeThresholdOverflow (VTO):

      The optional VolumeThresholdOverflow Sub-Type subtype is used to indicate
      how many times the VolumeThreshold counter has wrapped around
      2^32 over the course of the service being provided.

   Sub-Type

   Subtype (=6): Sub-Type Subtype for DurationQuota attribute
   Length       : length of DurationQuota attribute (= 6 octets)

   DurationQuota (DQ):

      The optional DurationQuota Sub-Type Subtype is only present if Duration
      Based charging is used. In RADIUS Access-Accept message (PPS to
      SAD direction), it indicates the Duration (in seconds) allocated
      for the session by the PrePaid server. PPS. In on-line RADIUS Access-
      Accept Access-Accept
      message (PPC to PPS direction), it indicates the total Duration (in
      in seconds) since the start of the accounting session related to
      the QuotaID.

   Sub-Type

   Subtype (=7): Sub-Type Subtype for DurationThreshold attribute
   Length       : length of DurationThreshold attribute (= 6 octets)

   DurationThreshold (DT):

      The DurationThreshold Sub-Type subtype shall always be present if
      DurationQuota is present in a RADIUS Access-Accept message (PPS
      to SAD direction). It represents the duration (in seconds) that
      shall be used by the session before requesting after
      which new quota update. should be requested. This threshold should not be
      larger than the DurationQuota and shall
      always be sent with the DurationQuota.

   Sub-Type

   Subtype (=8): Sub-Type Subtype for Update-Reason attribute
   Length       : length of Update-Reason attribute (= 4 octets)

   Update-Reason attribute (UR):

      The Update-Reason Sub-Type subtype shall be present in the on-line RADIUS
      Access-Request message (SAD to PPS direction). It indicates the
      reason for initiating the on-line quota update operation. Update
      reasons 4, 5, 6, 7 and 8 indicate that the associated resources
      are released at the client side, and therefore the PPS shall not
      allocate a new quota in the RADIUS Access_Accept message.

      1. Pre-initialization
      2. Initial Request
      3. Threshold Reached
      4. Quota Reached
      5. Remote Forced Disconnect
      6. Client Service Termination
      7. ôAccess Serviceö Terminated
      8. Service not established
      9. One-Time Charging

   Sub-Type

   Subtype (=9) : Sub-Type Subtype for PrePaidServer attribute
   Length        : Length of PrePaidServer
                   (IPv4 = 6 octets, IPv6= 18 octets

   PrePaidServer:

      The optional, multi-value PrePaidServer attribute indicates the
      address of the serving PrePaid System. prepaid system. If present, the Home
      RADIUS server uses this address to route the message to the
      serving PrePaid
      Server. PPS. The attribute may be sent by the Home RADIUS server.

      If present in the incoming RADIUS Access-Accept message, the PDSN
      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 shall not change
      the order of the attributes.

   Sub-Type
      their order.

   Subtype (=10) : Sub-Type Subtype for Service ID
   Length         : Length of Service ID

   Service-Id:

     Opaque string that uniquely describes a service instance for which
     we want to apply which
     prepaid metering to. should be applied.  A Service-Id could be an IP
     5-tuple (source address, source port, destination address,
     destination port, protocol).  If Service-ID is present in the PPAQ
     the PPAQ applies refers to that Service. service.  If a PPAQ does not contain a
     Service-Id then the PPAQ applies refers to the Access Service.

   Sub-Type

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

   Rating-Group-Id

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

   Sub-Type

   Subtype (=12) : Sub-Type Subtype for Termination-Action
   Length         : 6

   This field is an enumeration of the action to take when the prepaid
   server PPS does
   not grant additional quota.  Valid actions are as follows:

     0  Reserved
     1  Terminate
     2  Request More Quota
     3  Redirect/Filter

   Sub-Type

   Subtype (=13) : Pool-Id
   Length         : 6

   Identifies the Pool that this quota is to be associated with.

   Sub-Type

   Subtype (=14) : Pool-Multiplier
   Length         : 6

   The pool-multiplier determines the weight that resources are
   inserted into the pool and the rate at which resources are taken out
   of the pool by this Service, service or Rating-Group.

   Sub-Type (=13)

   Subtype (=15) : Sub-Type Subtype for Resource Quota Resource-Quota
   Length         : 6

      The optional ResourceQuota Sub-Type Resource-Quota subtype is only present if Resource
      Based charging is used or when One-Time one-time charging is being used. In the RADIUS Access-Accept
      message (PPS to SAD direction), direction) it indicates the Resources
      allocated for the session by the PrePaid
      server. PPS. In RADIUS Authorize Only
      Access-Request message (SAD to PPS direction), it indicates the total
      resources used resource for in total, including both
      forward incoming and reverse traffic applicable to PrePaid accounting. outgoing
      chargeable traffic. In one-time charging scenarios, the subtype
      represents the number of units to charge the user or to credit the user (negative values).

   Sub-Type (=14) user.

   Subtype (=16) : Sub-Type Subtype for Resource Quota Overflow
   Length         : 6
   Sub-Type (=15)

   Subtype (=18) : Sub-Type Subtype for ResourceThreshold
   Length         : 6

   NOTES:

   Either

   Volume-Quota, Time-Quota, or Resource-Quota MUST appear in the
   attribute. If Volume Quota appears, Volume Threshold may only appear if Volume Quota appears also
   appear.

   A PPAQ MUST NOT CONTAIN 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 to the ôAccess Serviceö.

   When the PPAQ contains a Pool-Id it MUST also contain the Pool-
   Multiplier.

5.4

4.4
   Prepaid Tariff Switching (PTS)

   This specification defines the PTS attribute to allow for
   changeovers from one service charge rate to another during service
   execution. provision.

   Support for tariff switching is OPTIONAL for both PPC and PPS.  PPCs
   use the flag "Tariff Switching supported" of the AvailableInClient
   subtype of the PPAC attribute to indicate support for tariff
   switching;
   switching. PPSs employ the PTS attribute to announce their support
   for tariff switching. Details of this issue are will be specified later on,
   when 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.  This requirement is related to the
   identification of the service to which tariff switching applies.  If a RADIUS Access-Request message
   contains a PTS attribute or if it
   contains a "Tariff Switching supported" flag, it
   MUST also contain an Event-Timestamp RADIUS attribute (see
   [RFC2869]).  This
   requirement is related to the TariffSwitchInterval subtype of the
   PTS attribute (see below).

    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        | SUB-TYPE SUBtype 1     | LENGTH        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | QuotaIDentifier (QID)                                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | SUB-TYPE SUBtype 2     | LENGTH        | VolumeUsedAfter-              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | TariffSwitch (VUATS)          | SUB-TYPE SUBtype 3     | LENGTH        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | VUATSOverflow (VUATSO)        | SUB-TYPE SUBtype 4     | LENGTH        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | TariffSwitchInterval (TSI)                                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | SUB-TYPE SUBtype 5    | LENGTH         | TimeIntervalAfter-            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | TariffSwitchUpdate (TITSU)    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Type  : Value of PTS
   Length: variable, greater than at least 8
   Subtype (=1):  QuotaIDentifier (QID)
   Length      :  Length of QuotaIDentifier Subtype (= 6 octets)

      The QID subtype MUST be present in each PTS attribute.  In an
      online RADIUS Access-Request message sent from the PPC to the
      PPS, its value MUST be a quota identifier received previously
      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 "accompanying PPAQ
      attribute".  If a PPS receives an Access-Request message from a
      PPC, it associates a unique quota identifier to this service
      access request.
      Thus, a quota identifier also identifies a particular service.

   Subtype (=2):  VolumeUsedAfterTariffSwitch (VUATS)
   Length      :  Length of VolumeUsedAfterTariffSwitch Subtype
                  (= 6 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 (see the remarks under
      "Subtype 1: QID").

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

      If an online RADIUS Access-Request message contains a VUATS
      subfield 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 in the PTS attribute.

   Subtype (=4):  TariffSwitchInterval (TSI)
   Length      :  Length of TSI Subtype (= 6 octets)

      The TSI subtype 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]) of the
      corresponding RADIUS Access-Request message and the next tariff
      switch condition.

   Subtype (=5):  TimeIntervalafterTariffSwitchUpdate (TITSU)
   Length      :  Length of TITSU Subtype
                  (= 6 octets)

      The PPS MUST include the TITSU subtype if there is another tarrif tariff
      switch period after this period.  The TITSU represents attributes encodes
      the length number remaining seconds of
      the current tariff switch period in seconds. period.  If this
      attribute is
      omitted zero or omitted, it is zero, assumes that  the current
      tariff period that commences in TSI
      seconds will last indefinitely or lasts until a new PTS is received
      with new information. further notice.  If TITSU is specified,
      the prepaid client PPC must send a quota update before the end of the tariff switch current period as specified by TITSU. ends.

   If a RADIUS message contains a PTS attribute, it MUST also contain
   at least one PPAQ attribute.  The PTS will be is associated to 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, then the PTS will specify refers to the tarrif tariff switch for
   that service. If the PPAQ does not have a Service-Id, then the PTS will be the tarrif
   refers to tariff switch of 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 prepaid session.

5.5

4.5
   Table of Attributes

   TO BE COMPLETED.

   Request   Accept   Reject   Challenge      #    Attribute

   Authorize_Only Request Accept Reject

6.

5.
  Security Considerations

   The extended RADIUS protocol exchanges described are susceptible in this document is subject
   to a number of potential attacks, in a manner similar to the same
   vulnerabilities as RADIUS and it
   without these extensions. It is recommended that IPsec be employed
   to afford better security. protect against certain of the attacks.

   If IPsec is not available available, usage of the protocol extensions described in this draft improves
   document improve the overall security of RADIUS. The various
   security enhancements are explained in the following sections.

6.1

5.1
   Authentication and Authorization

   RADIUS is susceptible to replay attacks during the Authentication
   and Authorization procedures.  A successful replay of the initial
   Access-Request could result in an allocation of an initial quota.

   To thwart such an attack...

6.2

5.2
   Replenishing Procedure

   A successful replay attacks attack of the Authorize Only Access-Request
   could deplete the subscribers prepaid account.

   To be completed.

7.

6.
  IANA Considerations

   This document requires the assignment of new Radius attributes type
   numbers for 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)

8.

7.
  Normative References

   [RFC2026]       Bradner, S., "The Internet Standards Process --
                   Revision 3", RFC 2026, October 1996.
   [RFC2119]       Bradner, S., "Key words for use in RFCs to Indicate
                   Requirement Levels", RFC 2119, March 1997.
   [RFC2865]       Rigney, C., Rubens, A., Simpson, W. and S. Willens,
                   "Remote Authentication Dial 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.

9.

8.
  Informative References

   [DIAMETERCC]    Hakkala, H., et al., "Diamter Credit-Control
                   Application", Internet Draft, AAA WG, April 2004,
                   Work in Progress.

   [REDIRECT]      "RADIUS Redirection", Internet Draft, Work in
                   progress.

10.

9.
  Call Flows

   This section includes call describes the flows illustrating associated with various scenarios
   enabled by
   that are mentioned in this specification. document. The following fields are used
   in the call flows:

   RADIUS packets:

     AR      Access Request
     ARA     Access Accept
     AC      Accounting Requests
     A       Authorize-Only Access-Request
     AA      Access-Accept for Authorize-
             Only Access-Request

   RADIUS Attributes:

     PPAQ     PPAQ as defined in this
              specification
     SID      One or more attributes
              representing the Session that
              the RADIUS packets is correlated
              to.
     PPAC     PPAC as defined in this
              specification
     ASID     Acct-Session-Id as defined by
              RADIUS
     MSID     Acct-Multi-Session-Id as define
              by RADIUS

   PPAQ fields:

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

10.1

9.1
   Simple Concurrent Services

   In this scenario the Prepaid Client PPC authenticates and authorizes the user. The Prepaid Server
   PSS responds back with Prepaid Quota for the ôAccess Serviceö instance.  The NAS
   then request quota for Service-
   A. Service-A.

   Accounting is turned on.

          NAS/                                                RADIUS/
          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 the initial Access-Request that indicates the Prepaid
         Capabilities prepaid
         capabilities of the NAS.  In this scenario it will indicate example indicates that
         Concurrent Session Sessions are supported.  Access-Request also
         includes SID (Session Id) which is the Session Identifier
         assigned by this NAS to session.  Session Identifier is out The formal of the session
         identifier is outside the scope in of this document.  It can be a single attribute such as
         3GPP2 Correlation ID or it could be a set of attributes that
         define a session.
   B     RADIUS authenticates the user and determines that the user is
         prepaid. he has a
         prepaid account. RADIUS responds with a PPAQ for the ôAccess
         Serviceö (PPAQ does not contain a Service-ID or Rating-Group-ID). Rating-Group-
         ID).  The PPAQ has a QID=1 assigned by the Prepaid System and
         Quota of Q=100.  The quota could be time or volume and may or
         may not have a threshold associated with it.
   C     The NAS starts the Access Service and generates an Accounting-
         Request (Start) message as normal.  It will include includes the Acct-
         Session-Id and may include the Acct-Multi-Session-Id.
   D     The NAS wants is about to start a new Service, call it Service-A.
         It sends an Authorize-Only access request to RADIUS.  The SID
         links this Authorize-Only access request to the initial
         Authentication & Authorization (Step-A and Step-B).The
         Authorize-Only message contains a PPAQ requesting quota for
         Service-A, Update-Reason = Initial-Request.

   E     The PPS checks the resources available to the user and assigns
         50 units (time/volume etc) to this service. RADIUS sends an
         Access Accept message contain a PPAQ assigning quota Q=50 for
         Service-A.  The PPAQ contains a QID = 200.
   F     The NAS starts Service-A and sends an Accounting-Request
         (Start) message for that service. Acct-Multi-Session-Id can be
         used to tie all of the sessions in the accounting streams
         together.
   G     Quota for Service-A requires refreshing, the quota was
         completely used).  An Authorize-Only message is sent
         containing a PPAQ with QID = 200 which corresponds to the
         prior QID received for this service.  Note QID is sufficient
         for the PPS server to link this request to the previous
         request and hence to the original authentication steps.
         Therefore SID is not really required. The PPAQ will report the
         used part of the quota (50 units).
   H     RADIUS deducts the used quota from the users accounts and
         reserves 50 more additional units for a total quota of 100
         (Q=100) for Service-A. It sends back a PPAQ with QID=300.
   I     NAS needs to refresh both the ôAccess Serviceö and Service-A.
         It sends an Authorize Only message contain two PPAQs, one for
         the Main Service with QID=1 and one for Service-A with
         QID=300.  Each PPAQ reports the used resources that were consumed
         so far and the reason why the update is being sent.
   J     RADIUS responds back with two PPAQs.  The PPAQ without the
         Service-Id grants an additional 100 units for a total of 200
         units to the ôAccess Serviceö û QID=3; the other PPAQ,
         containing SRVID=SA grants an additional 50 units for a total
         quota to service-a of 150 units û QID=303.

         This step illustrates why SRVID needs to be specified in the
         PPAQ.  If  Without it were not, then  the NAS would not be able unable to differentiate
         between the PPAQs. QIDs are not sufficient to correlate the
         PPAQ to a service since they are may be changed (and
         not necessarily sequentially) by the PPS at
         every transaction.

   In this scenario, notice

   Note how each PPAQ attribute represents a sequential conversation
   about a service between the Prepaid Client PPC and the Prepaid Server. PPS in this example.  The
   links between the messages are the QIDs and the Service-Ids.

   As well, notice how

   Also note that a SID is needed to tie the Authorize-Only messages to
   the Authentication steps.  This SID is only really needed the first
   time a PPAQ is sent û since the PPAQ does not have
   a QID.

   Accounting sent.

   Although accounting messages have an Accounting-Session-ID. But Accounting-Session-ID, that is
   not enough to allow enable the back end system to associate that
   accounting message with a particular Service.  We therefore need the
   PPAQ in the accounting message.

10.2

9.2
    One-time Charging

   In this One-time charging scenario, example, the Prepaid Client (PPC) PPC authenticates and
   authorizes the user and requests charging for a service event
   requested by the user.  The PPC already knows the price 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 to thank Mark Grayson (Cisco), Nagi Jonnala
   and Tseno Tsenov for their contribution to 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                   Yong Li                   Hannes Tschofenig
   Starent Networks                   Bridgewater Systems                   Siemens
   30 International Place, 3rd Flr    303 Terry Fox Drive    Otto-Hahn-Ring 6
   Tewksbury, MA 01876                Suite 100                81739 Munich
   kchowdhury@starentnetworks.com     Ottawa Ontario
                                      Canada
                                      Yong.li@bridgewatersystems.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 no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed
   to pertain to the implementation or use of the technology described
   in this document or the 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 IETF's procedures with respect to rights in IETF
   Documents can be found 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 to obtain 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.

   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 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ö "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 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 is filed as draft-lior-radius-extensions-for-prepaid-
   07.txt,
   06.txt, and will expire 20 July, 2005.

10.
   Appendix A û use cases

   In this appendix we present a set of use cases and scenarios based
   on which the extensions in this document were designed. It is
   assumed that the subscriber possesses a valid prepaid account with a
   service provider, for example a WLAN operator.

   In order to maintain generality, the use cases refer to the
   communications between the SAD and the network.  The connection
   between the UserÆs Device and the SAD, which 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 of the prepaid service.

10.1
    Simple prepaid use case

   A subscriber connects to his home network. As usual, the Access
   Device that is servicing the subscriber uses the AAA infrastructure
   to authenticate and authorize the subscriber.

   The SAD sends a RADIUS Access-Request to the AAA server in order to
   authenticate and authorise the subscriber with respect to the
   requested service. The Access-Request contains the subscriber
   credentials and may contain the prepaid capabilities of the SAD.
   Prepaid capabilities MUST be included if the SAD supports them.

   The AAA System proceeds with the authentication procedure.  This may
   involve several message exchanges such as in EAP [RFC2284].  Once
   the subscriber has been authenticated, the AAA system determines
   that the subscriber is a prepaid subscriber and requests
   authorisation. The request MUST include the prepaid capabilities of
   the serving SAD.

   The system validates that the subscriber has a prepaid account and
   that the account is active. It further validates that the SAD has
   the appropriate prepaid capabilities. If all is in order, the
   prepaid system authorises the subscriber to use the network.
   Otherwise it rejects the request. The decision is sent to the AAA
   system. The response includes attributes to indicate the allocation
   of a portion of the subscriberÆs credit. This portion is called the
   ôinitial quotaö (in units of time or volume) and optionally a
   threshold value.

   A portion only of the userÆs funds is allocated because the user may
   be engaged in other services that may draw on the same account. For
   example, the user may be engaged in a data session and a voice
   session. Although these two services would draw from the same
   account, they form separate parts of the overall system.  If the
   entire quota was allocated to the data session then the user would
   have no more funds for a voice session.

   The AAA system incorporates the attributes received from the prepaid
   System into an Access-Accept message that it sends to the SAD. Note
   that the AAA system is responsible for authorizing the service
   whereas the prepaid system is responsible for prepaid authorization.

   Upon receiving the Access-Response, the SAD starts the prepaid data
   session and meters the session based on time or volume, as indicated
   in the message.

   Once the usage for the session approaches the allocated limit (as
   expressed by the threshold), the SAD will request additional quota.
   Re-authorization 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 quota
   from the current balance. If there is remaining balance, it
   reauthorizes the request with an additional quota allotment.
   Otherwise, the prepaid System rejects the request.  Note the
   replenishing of the quotas is a re-authorization procedure and does
   not require the subscriber to authenticate himself again.

   It is important to note that the prepaid System is maintaining
   session state for the subscriber.  This state includes how much
   account balance was allocated during the last quota enquiry and how
   much is left in the account. Therefore, it is required that all
   messages about the session reach the same (and correct) prepaid
   system.

   Upon receiving a re-allotment of the quota, the SAD continues to
   provide the data service until the new threshold is reached.  If the
   request for additional quota cannot be fulfilled then the SAD lets
   the subscriber use the remaining quota and terminates the session.

   Alternatively, instead of terminating the session, the SAD may
   restrict the data session such that the subscriber can only reach 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 in the
   first place.

   Should the subscriber terminate the session before the quota is
   exhausted, the remaining balance allotted to the session MUST be
   refunded into the subscriberÆs account.

   While the Access Device is waiting for the initial quota, the
   subscriber may have dropped the connection/session. The entire
   allocated quota MUST be credited back to the subscribers account in
   this case.

10.2
    Support for Multi-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 billed at different rates
   and services may be metered differently.  Therefore, the prepaid
   solution needs to be able to distinguish services, and allocate
   quotas to the services using different units (e.g. time, volume) and
   allow for those quotas to be utilized at different rates.

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

   As shown in the above diagram, a Session may be associated with
   multiple (N) services.  Each service is identified by a Service-ID.
   The format of the Service-ID is not in the scope of this document
   but the Service-ID could be expressed as an IP flow using the 5-
   tuple {Source-IP and Port, Destination-IP and Port, protocol type}.
   Each service is allocated an appropriate quota metric.

10.3
    Resource Pools

   When working with multiple services a new problem arises because one
   service may utilize its quota faster than another service.  When the
   userÆs 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 that service. Indeed, even before
   that happens, the services could generate an excessive amount of
   traffic as the they update their quotas.

   One method to solve these problems is to utilize resource pools.
   Resource pools enable the allocation of resources to several
   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 allocated to the pool is close to
   exhaustion, the entire pool is replenished.

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

   As the figure above shows, 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 each
   service and multiplying it by Mn.  Therefore, the amount of
   resources allocated 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 consumed resources of 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 Mbyte and
   Service-B can rated at $0.10 per Minute. In this case if we allocate
   $5 worth of resources on behalf of service-A to the pool we would
   set Ma = 10 and place 50 units into the pool.  If we allocate $5 on
   behalf of Service-B to the Pool, then M=1 and place 50 units into
   the Pool.  The pool would have a total sum of 100 units to be shared
   between the two services. 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.

10.4
    Support for Complex Rating Functions

   The rating of a service can be quite complex. While some operators
   follow linear charging 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 Mbyte and volume above M bytes be rated
   at $0.50 per Mbyte. 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 is provisioned at the SAD.  As
   illustrated in the figure below, a Rating Group is associated with
   one or more services and defines the rate that the services
   associated with the Rating Group consume the quota.

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

   During consumption of a service that is associated with a Rating
   Group, the PPC sends the ID of the Rating Group to the PPS.  The
   prepaid service authorizes the Rating Group by allocating a quota to
   it and optionally assigning it to a Resource Pool.

   When service that belongs to an authorized Rating Group is
   instantiated, the PPC does not need to authorize this service. This
   limits the amount of traffic between the PPC and the PPS.

10.5
    One-Time-based Charging

   One-Time-based Charging is used for charging of service events
   without an ongoing session. That is, the service is provisioned
   instantaneously, as far as charging is concerned.  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
   purchase 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 exempt from charging.

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

   One-time-based charging may occur under two conditions: the (a) SAD
   may not have a authenticated context (or access to an authenticated
   context) for the subscriber), or (b) the SAD has access to
   authenticated context for the subscriber.  In the former case the
   SAD will have to authenticate the subscriber.  For example, the user
   maybe authenticated by the SAD providing access service. However
   when the user accesses the subscription server to purchase a
   subscription, the subscription server may not have access to the
   authentication context of the subscriber and thus will have to
   authenticate the subscriber from scratch.  Authentication of the
   subscriber and the generation of the one-time charging event will
   happen in conjunction.

   Note that one-time-based charging can also be used to credit the
   prepaid userÆs 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.

10.6
    Support for Tariff Switching

   The PPC and the PPS may support tariff switching as described
   earlier. For example, as shown in the figure below, traffic before
   18:00 may be rated at ær1Æ and traffic after 18:00 hours is rated at
   ær2Æ. The PPC reports usage before and after the switch occurs.
   Tariff switching only makes sense for volume based metering where
   the volume is billed at different rates.

                         18:00
         ------------------+-----------------
                r1         |      r2
         ------------------+-----------------
              ^                        ^
              |<----TSI--->            |
              |                        |
        Access-Accept            Access-Request

   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Æs VUATS subtype.

   If the PPC sends this message before the tariff switch, the PPS will
   respond with another PTS where the TSI is appropriately updated.

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

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

   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,
   insufficient traffic is generated 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.

10.7
    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 prepaid system 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 functionality. Even in this case the system
   should be able to continue the prepaid session.

10.8
    Termination of a prepaid session

   When fraud or an error is detected, the either only the affected
   session, or all sessions of the affected subscriber should be
   terminated.

   It may happen that the prepaid system enters a state where it is
   unclear whether or not the data session is in progress. Under such a
   condition, the system may wish to terminate the session in order to
   make sure that the user is not billed 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.

10.9
    Querying and Rebalancing Prepaid Resources

   It should be possible for the PPS to Query the current resource
   consumption at a SAD and adjust the userÆs account balance.

   For example, a request to the PPS is made (e.g. a one-time charging
   event) but the userÆs account is depleted but 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 doesnÆt 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.