RADEXT                                                           A. Lior
Internet-Draft                                       Bridgewater Systems
Expires: December 25, 2006                                     P. Yegani
                                                                   Cisco
                                                            K. Chowdhury
                                                        Starent Networks
                                                           H. Tschofenig
                                                           A. Pashalidis
                                                                 Siemens
                                                           June 23, 2006


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

Status of this Memo

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

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

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

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

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

   This Internet-Draft will expire on December 25, 2006.

Copyright Notice

   Copyright (C) The Internet Society (2006).

Abstract

   This document specifies an extension to the Remote Authentication



Lior, et al.            Expires December 25, 2006               [Page 1]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


   Dial-In User Service (RADIUS) protocol that enables service providers
   to charge for prepaid services.  The supported charging models
   supported are volume-based, duration-based, and based on one-time
   events.


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  5
     1.1.  Terminology  . . . . . . . . . . . . . . . . . . . . . . .  6
     1.2.  Overview . . . . . . . . . . . . . . . . . . . . . . . . .  6
       1.2.1.  Architectural Model  . . . . . . . . . . . . . . . . .  7
       1.2.2.  Motivation . . . . . . . . . . . . . . . . . . . . . . 10
     1.3.  A simple use case  . . . . . . . . . . . . . . . . . . . . 12
   2.  Supported Features . . . . . . . . . . . . . . . . . . . . . . 15
     2.1.  Multiple Concurrent Services . . . . . . . . . . . . . . . 15
     2.2.  Resource Pools . . . . . . . . . . . . . . . . . . . . . . 15
     2.3.  Complex Rating Functions . . . . . . . . . . . . . . . . . 17
     2.4.  One-time Charging  . . . . . . . . . . . . . . . . . . . . 17
     2.5.  Tariff Switching . . . . . . . . . . . . . . . . . . . . . 18
     2.6.  Support for Roaming  . . . . . . . . . . . . . . . . . . . 20
     2.7.  Dynamic Termination  . . . . . . . . . . . . . . . . . . . 20
     2.8.  Querying and Rebalancing . . . . . . . . . . . . . . . . . 20
   3.  Operations . . . . . . . . . . . . . . . . . . . . . . . . . . 22
     3.1.  Authentication and Authorization Operation . . . . . . . . 22
     3.2.  Session Start Operation  . . . . . . . . . . . . . . . . . 24
     3.3.  Mid-Session Operation  . . . . . . . . . . . . . . . . . . 24
     3.4.  Dynamic Operations . . . . . . . . . . . . . . . . . . . . 26
       3.4.1.  Unsolicited Session Termination Operation  . . . . . . 26
       3.4.2.  Unsolicited Change of Authorization Operation  . . . . 27
     3.5.  Termination Operation  . . . . . . . . . . . . . . . . . . 27
     3.6.  Mobile IP Operations . . . . . . . . . . . . . . . . . . . 27
     3.7.  Operation Considerations for Multiple Services . . . . . . 28
       3.7.1.  Initial Quota Request  . . . . . . . . . . . . . . . . 29
       3.7.2.  Quota Update . . . . . . . . . . . . . . . . . . . . . 29
       3.7.3.  Termination  . . . . . . . . . . . . . . . . . . . . . 30
       3.7.4.  Dynamic Operations . . . . . . . . . . . . . . . . . . 30
       3.7.5.  Support for Resource Pools . . . . . . . . . . . . . . 30
       3.7.6.  One-time Charging  . . . . . . . . . . . . . . . . . . 30
       3.7.7.  Error Handling . . . . . . . . . . . . . . . . . . . . 31
       3.7.8.  Accounting Considerations  . . . . . . . . . . . . . . 31
       3.7.9.  Interoperability with Diameter Credit Control
               Application  . . . . . . . . . . . . . . . . . . . . . 31
   4.  Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . 33
     4.1.  PPAC Attribute . . . . . . . . . . . . . . . . . . . . . . 33
     4.2.  Session Termination Attribute  . . . . . . . . . . . . . . 34
     4.3.  PPAQ Attribute . . . . . . . . . . . . . . . . . . . . . . 35
       4.3.1.  Quota Identifier AVP . . . . . . . . . . . . . . . . . 35



Lior, et al.            Expires December 25, 2006               [Page 2]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


       4.3.2.  VolumeQuota AVP  . . . . . . . . . . . . . . . . . . . 36
       4.3.3.  VolumeThreshold AVP  . . . . . . . . . . . . . . . . . 36
       4.3.4.  DurationQuota AVP  . . . . . . . . . . . . . . . . . . 36
       4.3.5.  DurationThreshold AVP  . . . . . . . . . . . . . . . . 36
       4.3.6.  ResourceQuota AVP  . . . . . . . . . . . . . . . . . . 36
       4.3.7.  ResourceThreshold AVP  . . . . . . . . . . . . . . . . 37
       4.3.8.  Value-Digits AVP . . . . . . . . . . . . . . . . . . . 37
       4.3.9.  Exponent AVP . . . . . . . . . . . . . . . . . . . . . 37
       4.3.10. Update-Reason AVP  . . . . . . . . . . . . . . . . . . 37
       4.3.11. PrepaidServer AVP  . . . . . . . . . . . . . . . . . . 38
       4.3.12. Service-ID AVP . . . . . . . . . . . . . . . . . . . . 38
       4.3.13. Rating-Group-ID AVP  . . . . . . . . . . . . . . . . . 39
       4.3.14. Termination-Action AVP . . . . . . . . . . . . . . . . 39
       4.3.15. Pool-ID AVP  . . . . . . . . . . . . . . . . . . . . . 39
       4.3.16. Pool-Multiplier AVP  . . . . . . . . . . . . . . . . . 39
       4.3.17. Requested-Action AVP . . . . . . . . . . . . . . . . . 39
       4.3.18. Check-Balance-Result AVP . . . . . . . . . . . . . . . 40
       4.3.19. Cost-Information AVP . . . . . . . . . . . . . . . . . 40
     4.4.  Prepaid Tariff Switching Attribute (PTS) . . . . . . . . . 41
       4.4.1.  VolumeUsedAfterTariffSwitch AVP  . . . . . . . . . . . 42
       4.4.2.  TariffSwitchInterval AVP . . . . . . . . . . . . . . . 42
       4.4.3.  TimeIntervalafterTariffSwitchUpdate AVP  . . . . . . . 42
   5.  Translation between RADIUS prepaid and Diameter Credit
       Control  . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
     5.1.  Session Identification . . . . . . . . . . . . . . . . . . 45
     5.2.  Translation between RADIUS prepaid client and Diameter
           Credit Control AAA infrastructure  . . . . . . . . . . . . 45
       5.2.1.  PPAC (c<->s) . . . . . . . . . . . . . . . . . . . . . 45
       5.2.2.  Service Termination Attribute (c->s) . . . . . . . . . 46
       5.2.3.  Quota Identifier Attribute (c<->s) . . . . . . . . . . 46
       5.2.4.  Volume Quota Attribute (c<->s) . . . . . . . . . . . . 46
       5.2.5.  Duration Quota Attribute (c<->s) . . . . . . . . . . . 47
       5.2.6.  Resource Quota Attribute (c<->s) . . . . . . . . . . . 47
       5.2.7.  Value Digits Attribute (c<->s) . . . . . . . . . . . . 48
       5.2.8.  Exponent Attribute (c<->s) . . . . . . . . . . . . . . 48
       5.2.9.  Volume/Duration/Resource Threshold Attributes
               (s->c) . . . . . . . . . . . . . . . . . . . . . . . . 48
       5.2.10. Update Reason Attribute (c->s) . . . . . . . . . . . . 48
       5.2.11. PrepaidServer Attribute (s<->c)  . . . . . . . . . . . 50
       5.2.12. Service-ID Attribute (s<->c) . . . . . . . . . . . . . 50
       5.2.13. Rating-Group-ID Attribute (s<->c)  . . . . . . . . . . 50
       5.2.14. Termination-Action Attribute (s->c)  . . . . . . . . . 50
       5.2.15. Pool-ID Attribute (s<->c)  . . . . . . . . . . . . . . 51
       5.2.16. Multiplier Attribute (s<->c) . . . . . . . . . . . . . 51
       5.2.17. Requested-Action Attribute (c->s)  . . . . . . . . . . 51
       5.2.18. Check-Balance-Result Attribute (s->c)  . . . . . . . . 51
       5.2.19. Cost-Information Attribute (s->c)  . . . . . . . . . . 52
       5.2.20. VolumeUsedAfterTariffSwitch attribute (c->s) . . . . . 52



Lior, et al.            Expires December 25, 2006               [Page 3]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


   6.  Security Considerations  . . . . . . . . . . . . . . . . . . . 53
   7.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 54
   8.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 55
   9.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 56
     9.1.  Normative References . . . . . . . . . . . . . . . . . . . 56
     9.2.  Informative References . . . . . . . . . . . . . . . . . . 56
   Appendix A.  Example flows . . . . . . . . . . . . . . . . . . . . 57
     A.1.  A simple flow  . . . . . . . . . . . . . . . . . . . . . . 57
     A.2.  A flow with prepaid tariff switching . . . . . . . . . . . 60
     A.3.  Resource pools and Rating Groups . . . . . . . . . . . . . 64
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 71
   Intellectual Property and Copyright Statements . . . . . . . . . . 72







































Lior, et al.            Expires December 25, 2006               [Page 4]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


1.  Introduction

   This document specifies an extension to the RADIUS protocol that
   enables service providers to perform accounting and charging in an
   "online" fashion.  In particular, they enable the service provider to
   (a) ensure that subscriber's remaining funds suffice before the
   service is delivered, and (b) interrupt service provision when the
   funds are exhausted.  Note that these capabilities are typically used
   in scenarios where the subscriber maintains a prepaid account with
   the service provider; hence, this extension is called the "prepaid"
   extension for RADIUS.  Also note that the above capabilities are not
   provided by the base RADIUS protocol.

   It has been observed that subscribers prefer prepaid accounts to
   postpaid ones in many circumstances.  Indeed, it is expected that
   offering a "prepaid mode of operation" will enabe service providers
   to expand their existing customer bases.  This is the main business
   driver behind the extensions defined in this document.  The
   extensions were designed with the following goals in mind.

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

   o  provide the ability to rate service requests in an "online"
      fashion,

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

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

   o  protect against fraud, and

   o  be deployable over dialup, wired and wireless networks.

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



Lior, et al.            Expires December 25, 2006               [Page 5]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


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

1.1.  Terminology

   o  Network Access Server (NAS): As defined in RADIUS.

   o  Prepaid client (PPC): The entity which triggers the RADIUS message
      exchange, including the prepaid extensions defined in this
      document.  The PPC typically resides in the NAS.

   o  Prepaid Server (PPS): The entity that interacts with the PPC using
      the RADIUS prepaid extensions defined in this document.

   o  Home Network: The network which contains the user profile and the
      user's prepaid account.

   o  Authorize-Only Access Request: A RADIUS message of type "Access
      Request" (code field=1) that contains a "Service-Type" AVP
      (type=6) with value "Authorize-Only".

1.2.  Overview

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

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

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

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

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

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

   This draft assumes that the user maintains a prepaid account with his
   home network.  This account may be used to fund multiple services,
   some of which may use the extensions defined in this document, and
   some may use other mechanisms.  The interworking of these mechanisms
   is outside the scope of this document.  Similarly, the means by which
   the subscriber obtains funds is also outside the scope of this
   document.



Lior, et al.            Expires December 25, 2006               [Page 6]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


1.2.1.  Architectural Model

   The protocol extensions described in this draft assumes that the
   following entities are present in the network architecture.

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

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

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

   The requesting PPC (SAD) meters the consumption of the service
   according to the instructions provided by the PPS.  After service
   completion, or on reception of a subsequent request for service, the
   PPS deducts the corresponding amount of credit from the user account.
   When a user terminates an on-going service, the PPC informs the PPS
   with a suitable indication about the unused portion of the allocated
   quota.  The PPS then refunds the user account accordingly.  Note that
   multiple PPSs may be deployed for reasons of redundancy and load
   sharing.  The system MAY also employ multiple rating servers.













Lior, et al.            Expires December 25, 2006               [Page 7]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


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

   Figure 1: Basic prepaid architecture

   The PPS and the accounting server in this architecture MAY be
   combined.  The SAD must have the ability to meter the consumption of
   a prepaid data session.  This metering is typically based on time
   (i.e. seconds) or volume (i.e. octets).

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

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

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

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

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

   This document assumes that the PPS communicates with the HAAA for the
   purposes of authentication and authorisation.  The PPS, in turn,



Lior, et al.            Expires December 25, 2006               [Page 8]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


   interfaces to entities which

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

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

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

   The above entities belong to the service provider's backend
   infrastructure and are outside the scope of this specification.  In
   particular, as far as this specification is concerned, they are
   assumed to exist in the PPS.  Three deployment scenarios are
   presented in the remainder of this section.  The first scenario is
   depicted in Figure 2.  In this scenario, the SAD, which runs the PPC,
   the HAAA, and the PPS are located in the same provider network.

   The subscriber's device establishes a connection with one of possibly
   multiple SADs in the network.  The selected SAD communicates with a
   HAAA server (directly or indirectly).

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


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

   Figure 2: Basic prepaid access architecture

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





Lior, et al.            Expires December 25, 2006               [Page 9]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


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

   Figure 3: Static roaming prepaid architecture

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

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

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

1.2.2.  Motivation

   Why not use existing RADIUS attributes to construct a protocol for
   prepaid scenarios?  This could lead to a solution where no code has
   to be modified at existing devices.

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



Lior, et al.            Expires December 25, 2006              [Page 10]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


   there were no more resources in the user account.

   Moreover, if the user terminates the session prematurely, the NAS
   could indicate this in the accounting stream so that unused funds can
   be returned into the prepaid user account.

   Unfortunately, the above "solution" has a number of drawbacks,
   including the following.

   o  It only supports time-based charging.  The solution presented in
      this document supports multiple charging metrics.

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

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

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

   o  Due to the fact that the standard RADIUS attributes are not
      mandatory, the correct prepaid operation is really an act of faith



Lior, et al.            Expires December 25, 2006              [Page 11]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


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

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

1.3.  A simple use case

   This section describes the sequence of events in a simple RADIUS
   prepaid transaction.

   1.  When an end host attaches to a network (for example, using PPP or
       PANA), as usual, the NAS (SAD) that is servicing the subscriber
       uses the AAA infrastructure in order to authenticate and
       authorize the subscriber with respect to the requested service.
       In order to do this, it sends a RADIUS Access-Request to the AAA
       server.  This Access-Request contains the subscriber's
       credentials and may contain the prepaid capabilities of the SAD.
       Prepaid capabilities MUST be included if the SAD supports them.

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

   3.  The PPS, possibly with the help of the backend infrastructure,
       validates that the subscriber has a prepaid account and that the
       account is active.  It further validates that the SAD has the



Lior, et al.            Expires December 25, 2006              [Page 12]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


       appropriate prepaid capabilities.  If all is in order, the PPS
       authorises the subscriber to use the network.  Otherwise it
       rejects the request.  The decision is sent to the AAA system in
       the form of a response message.  In the case of success, this
       message contains attributes that indicate the allocation of a
       portion of the subscriber credit.  This portion is called the
       "initial quota" and is expressed in units of time or volume.  The
       response may also include a threshold value.  Note that only a
       portion 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.

   4.  The AAA system incorporates the attributes received from the PPS
       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.

   5.  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.

   6.  Once the consumption 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 PPS.  The PPS revalidates the subscriber 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 PPS
       rejects the request.  Note that the replenishment of the quota is
       a re-authorization procedure and does not require the subscriber
       to authenticate himself again.

   7.  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 his account.  This
       restriction can also be used to allow new subscribers to set up
       prepaid accounts in the first place.




Lior, et al.            Expires December 25, 2006              [Page 13]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


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

   Note that the subscriber may have disconnected while the Access
   Device is waiting for the initial quota.  The entire allocated quota
   will have to be credited back to the subscribers account in this
   case.  Also note that the PPS maintains 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) PPS.

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




































Lior, et al.            Expires December 25, 2006              [Page 14]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


2.  Supported Features

   This section describes the features that are supported by the
   extensions specified in this document.

2.1.  Multiple Concurrent Services

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


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

   Figure 4: Multiple services within a single session

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

2.2.  Resource Pools

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



Lior, et al.            Expires December 25, 2006              [Page 15]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


   amount of traffic is considerable and could cause undesirable network
   congestion.

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


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

   Figure 5: Resource pool example

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

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


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

   Figure 6

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

   Note that the resources assigned to the pool are not associated with
   a metric.  That is, Service-A can be rated at $1 per MB and Service-B
   can rated at $0.10 per minute.  In this case if $5 worth of resources
   are allocated for service-A to the pool and if Ma = 10, then 50 units
   would be placed into the pool.  If a further $5 are allocated for



Lior, et al.            Expires December 25, 2006              [Page 16]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


   service-B to the pool, then M=1 and 50 units are deposited into the
   pool.  The pool would then have a sum of 100 units to be shared
   between the two services.  The PPC would then meter the services such
   that each Mbyte used by Service-A will draw 10 units from the pool
   and each minute used by Service-B will draw 1 unit from the pool.

2.3.  Complex Rating Functions

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

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



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

   Figure 7: Example of a rating group

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

2.4.  One-time Charging

   One-time charging is a mode of operation of where the RADIUS prepaid



Lior, et al.            Expires December 25, 2006              [Page 17]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


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

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

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

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

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

2.5.  Tariff Switching

   The PPC and the PPS may support tariff switching mechanism described
   in this section.  This mechanism is useful if, for example, as shown
   in Figure 8, traffic before 18:00 is rated at rate r1 and traffic
   after 18:00 is rated at rate r2.  The mechanism requires the PPC to
   report usage before and after the switch occured.











Lior, et al.            Expires December 25, 2006              [Page 18]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


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

   Figure 8: Example of tariff switching

   The PPC it indicates support for tariff switching by setting the
   appropriate bit in the PPAC.  If the PPS needs to signal a tariff
   switch time it will send a PTS attribute which indicates the point in
   time when the switch will occur.  This indication represents the
   number of seconds from current time (TariffSwitchInterval 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 in total (in a PPAQ attribute) and how much volume was used
   after the tariff switch (in a PTS VUATS subtype attribute).

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


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

   Figure 9: Multiple tariff switches

   When a TITSU is specified in the PTS, the PPC MUST generate an
   Access-Request within the time after TSI and before TITSU expires.
   Note that, typically, the PPC will be triggered by the Volume
   Threshold.  However, it is possible that, during period r2, resources
   are not entirely consumed and, thus, the threshold is not reached.
   The TITSU attribute ensures that, even in this case, the PPC will
   generate the new Access-Request in good time.



Lior, et al.            Expires December 25, 2006              [Page 19]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


   Note that it makes no sense to use the tariff switching mechanism
   described in this section for services that are metered based on time
   and the consumption of which is continuous (i.e. without
   interruption).  Also note that separate services flows may have
   individual tariff periods.

2.6.  Support for Roaming

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

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

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

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

2.7.  Dynamic Termination

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

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

2.8.  Querying and Rebalancing

   It should be possible for the PPS to Query the current resource



Lior, et al.            Expires December 25, 2006              [Page 20]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


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

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








































Lior, et al.            Expires December 25, 2006              [Page 21]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


3.  Operations

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

3.1.  Authentication and Authorization Operation

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

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

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

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

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

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



Lior, et al.            Expires December 25, 2006              [Page 22]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


   security, the HAAA MAY also set the User-Password(2) attribute to the
   password used between the HAAA and the PPS.

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

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

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

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

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

   o  A State attribute, as defined in RFC 2865.  This is necessary in
      order to satisfy the requirements of section 5.44 of RFC 2865,
      which mandates that an Access-Request with Service-
      Type="Authorize-Only" must contain a State attribute.  Since the
      SAD sends subsequent quota replenishment requests in the form of
      such "Authorize-Only" requests, a State attribute MUST be present
      in all Access-Accept messages that also carry a PPAQ attribute.

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

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




Lior, et al.            Expires December 25, 2006              [Page 23]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


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

3.2.  Session Start Operation

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

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

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

3.3.  Mid-Session Operation

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

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

   The Authorize-Only Access-Request MUST NOT include a User Password
   and MUST NOT include a Chap Password.  In order to enable the
   receiver to authenticate the message, the SAD MUST include a Message-



Lior, et al.            Expires December 25, 2006              [Page 24]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


   Authenticator(80).  In order to satisfy the requirements of section
   5.44 of RFC 2865, the SAD MUST also include the State attribute.  It
   is anticipated that the inclusion of the State attribute will enable
   the PPS to map the Authorize-Only Access Request to the
   authentication context that was established when the PPC
   authenticated itself at the beginning of the session.  The SAD
   computes the value for the Message-Authenticator and the State
   attributes according to RFC 2869 and 2865 respectively.

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

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

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

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

   Depending on site policies, upon unsuccessful authorization, the PPS



Lior, et al.            Expires December 25, 2006              [Page 25]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


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

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

   Upon receiving an Access-Accept, the SAD SHALL update its quotas and
   threshold parameters with the values contained in the PPAQ(TBD)
   attribute.  Note that the PPS MAY update the PrePaidServer
   attribute(s) and these may have to be saved as well.  If the Access-
   Accept message contains a Filter-Id(11), an Ascend-Data-Filter
   attribute, or Session Timeout(27), the SAD SHALL restrict the
   subscriber session accordingly.

3.4.  Dynamic Operations

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

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

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

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

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

3.4.1.  Unsolicited Session Termination Operation

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



Lior, et al.            Expires December 25, 2006              [Page 26]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


   identifiers that uniquely identify the data session and the SAD
   servicing that session.

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

3.4.2.  Unsolicited Change of Authorization Operation

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

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

3.5.  Termination Operation

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

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

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

3.6.  Mobile IP Operations

   In roaming scenarios with Mobile-IP, the prepaid data session should
   be maintained transparently if the HA is acting as the SAD.  As the
   subscriber device associates with a new SAD (AP or PDSN that supports
   PPC capability), the SAD sends a RADIUS Access-Request and the



Lior, et al.            Expires December 25, 2006              [Page 27]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


   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 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 does not
   change.

   In the case of a wireless access point or PDSN acting as the SAD, it
   is likely that the user's (care-of) IP address will change.  The
   prepaid session will be affected by this.  In this scenario the SAD
   shall send an Access-Request message which is routed to the home
   network and MUST reach the PPS that is serving this session.  The PPS
   correlates the new authorization request with the existing active
   session and assigns a quota to the new request.  Any outstanding
   quota at the old SAD MUST be returned to the PPS if the Mobile-IP
   nodes (HA and FA) support registration revocation (Mobile IPv4 only).
   Specifically, the quota SHOULD be returned when the SAD sends the
   Authorize-Only Access-Request 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 PPS may issue a Disconnect Message [3576] to the SAD.

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

3.7.  Operation Considerations for Multiple Services

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

   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) in order to uniquely
   differentiate between the services.  The exact definition of the
   Service-Id attribute is outside the scope of this document.

   A PPAQ that contains a Service-Id is associated with that Service.  A
   PPAQ that contains a Rating-Group-Id is associated with that Rating-
   Group.  A PPAQ MUST not contain both a Rating-Group-Id and a



Lior, et al.            Expires December 25, 2006              [Page 28]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


   Service-Id.  A PPAQ that contains neither a Rating-Group-Id or a
   Service-Id applies to the Access Service.

3.7.1.  Initial Quota Request

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

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

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

3.7.2.  Quota Update

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

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





Lior, et al.            Expires December 25, 2006              [Page 29]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


3.7.3.  Termination

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

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

3.7.4.  Dynamic Operations

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

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

3.7.5.  Support for Resource Pools

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

3.7.6.  One-time Charging

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

   The QID field MUST be set to a unique value and is used by the PPS to



Lior, et al.            Expires December 25, 2006              [Page 30]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


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

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

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

3.7.7.  Error Handling

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

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

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

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

3.7.8.  Accounting Considerations

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

3.7.9.  Interoperability with Diameter Credit Control Application

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



Lior, et al.            Expires December 25, 2006              [Page 31]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


   RADIUS based.

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














































Lior, et al.            Expires December 25, 2006              [Page 32]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


4.  Attributes

   This section specifies the attributes that implement the RADIUS
   extensions for prepaid.  Their general format follow that of the base
   RADIUS [RFC2865] and take also account current design guidelines that
   are proposed in the RADEXT working group.  The type field of these
   attributes contains a value that is drawn from the type value space
   specified in [RFC2865].  The exact value for the type field of each
   attribute is to be allocated by IANA.  Note that, unless otherwise
   specified, the format of the value field of each of the AVPs defined
   in this section adheres to one of the formats specified in section 5
   of [RFC2865].  In particular, the labels "string", "integer", and
   "address" are used to indicate the format in the remainder of this
   document.

4.1.  PPAC Attribute

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





























Lior, et al.            Expires December 25, 2006              [Page 33]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


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


      TYPE  : value of PPAC
      LENGTH: 8
      VALUE : String

      The value MUST be encoded as follows:

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

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

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

         Others      Reserved

   Figure 10: PPAC Attribute

4.2.  Session Termination Attribute

   The value is bitmap encoded.  This attribute is included in a RADIUS
   Access-Request message to the RADIUS server and indicates whether or
   not the NAS supports Dynamic Authorization.










Lior, et al.            Expires December 25, 2006              [Page 34]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


      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.

   Figure 11: Session Termination Attribute

4.3.  PPAQ Attribute

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

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

   The attribute has a variable length (greater than 8, encoded into one
   octet), and consists of a variable number of subtypes.  Unused
   subtypes are omitted from the message.  In the following subsections
   the various subtypes of the PPAQ attribute are specified.

4.3.1.  Quota Identifier AVP

   The value of the type field of the QuotaIDentifier AVP is TBD.  The
   length of this AVP is 6 octets.  Its value is encoded as a string.
   It is generated by the PPS together with the allocation of new quota.
   The online quota update RADIUS Access-Request message that is sent
   from the SAD to the PPS includes a previously received
   QuotaIdentifier AVP.






Lior, et al.            Expires December 25, 2006              [Page 35]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


4.3.2.  VolumeQuota AVP

   The value of the type field of the VolumeQuota AVP is TBD.  The
   length of this AVP is 12 or 18 octets.  The AVP 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 PPS.  In an RADIUS Authorize-Only Access-
   Request message (SAD to PPS direction), it indicates the total used
   volume (in octets) for both inbound and outbound traffic.  The
   attribute consists of a Value-Digits AVP and optionally an Exponent
   AVP (as indicated in the length field).  The Exponent AVP, if
   present, MUST NOT encode a negative number or zero.

4.3.3.  VolumeThreshold AVP

   The value of the type field of the VolumeThreshold AVP is TBD and its
   length is 12 or 18 octets.  This AVP is optionally present if
   VolumeQuota is present in a RADIUS Access-Accept message (PPS to SAD
   direction).  It is generated by the PPS and indicates the volume (in
   octets) that shall be consumed before a new quota should be
   requested.  This threshold should not be larger than the VolumeQuota.
   The attribute consists of a Value-Digits AVP and optionally an
   Exponent AVP (as indicated by the length field).  The Exponent AVP,
   if present, MUST NOT encode a negative number or zero.

4.3.4.  DurationQuota AVP

   The value of the type field of the DurationQuota AVP is TBD and its
   length is 6 octets.  This optional AVP 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 PPS.  It is encoded as an integer.  In an on-line
   RADIUS Access-Accept message (PPC to PPS direction), it indicates the
   total duration (in seconds) since the start of the accounting session
   related to the QuotaID of the PPAQ AVP in which it occurs.

4.3.5.  DurationThreshold AVP

   The value of the type field of the DurationThreshold AVP is TBD and
   its length is 6 octets.  This AVP shall optionally be present if
   DurationQuota is present in a RADIUS Access-Accept message (PPS to
   PPC direction).  It represents the duration (in seconds) after which
   new quota should be requested.  This threshold should not be larger
   than the DurationQuota.  It is encoded as an integer.

4.3.6.  ResourceQuota AVP

   The value of the type field of the ResourceQuota AVP is TBD.  The



Lior, et al.            Expires December 25, 2006              [Page 36]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


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

4.3.7.  ResourceThreshold AVP

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

4.3.8.  Value-Digits AVP

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

4.3.9.  Exponent AVP

   The value of the type field of the Exponent AVP is TBD.  The length
   of this AVP is 6 octets.  This AVP contains the exponent value that
   is to be applied to the accompanying Value-Digit AVP.  Its value is
   encoded as an integer.

4.3.10.  Update-Reason AVP

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

   1.   Pre-initialization





Lior, et al.            Expires December 25, 2006              [Page 37]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


   2.   Initial Request

   3.   Threshold Reached

   4.   Quota Reached

   5.   TITSU Approaching

   6.   Remote Forced Disconnect

   7.   Client Service Termination

   8.   "Access Service" Terminated

   9.   Service not established

   10.  One-Time Charging

4.3.11.  PrepaidServer AVP

   The value of the type field of the PrepaidServer AVP is TBD.  The
   length of this AVP is 6 or 18 octets, for IPv4 and IPv6 addresses
   respectively.  This optional AVP indicates the address of the serving
   PPS.  If present, the Home RADIUS server uses this address to route
   the message to the serving PPS.  The attribute may be sent by the
   Home RADIUS server.  Multiple instances of this subtype MAY be
   present in a single PPAQ AVP.  The value of this AVP is encoded as an
   address.

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

4.3.12.  Service-ID AVP

   The value of the type and length fields of the Service-ID AVP are
   TBD.  The value field of this AVP is encoded as a string.  This value
   is handled as an opaque string that uniquely describes the service
   instance to which prepaid metering should be applied.  A Service-Id
   could be an IP 5-tuple (source address, source port, destination
   address, destination port, protocol).  If a Service-ID AVP is present
   in the PPAQ, the entire PPAQ refers to that service.  If a PPAQ does
   not contain a Service-Id or Rating-Group-ID, then the PPAQ refers to
   the Access Service.






Lior, et al.            Expires December 25, 2006              [Page 38]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


4.3.13.  Rating-Group-ID AVP

   The value of the type field of the Rating-Group-ID is TBD.  The
   length of this AVP is 6 octets.  This AVP indicates that this PPAQ is
   associated with resources allocated to a Rating Group with the
   corresponding ID.  This AVP is encoded as a string.  A PPAQ MUST NOT
   contain more than one Rating-Group-ID.

4.3.14.  Termination-Action AVP

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

   1.  Terminate

   2.  Request More Quota

   3.  Redirect/Filter

4.3.15.  Pool-ID AVP

   The value of the type field of the Pool-ID AVP is TBD.  The length of
   this AVP is 6 octets.  This AVP identifies the resource pool that the
   quota included in this PPAQ is associated with.  It is encoded as a
   string.

4.3.16.  Pool-Multiplier AVP

   The value of the type field of the Pool-Multiplier AVP is TBD.  The
   length of this AVP is 12 or 18 octets.  The pool-multiplier
   determines the weight that resources are inserted into the pool that
   is identified by the accompanying Pool-ID AVP, and the rate at which
   resources are taken out of the pool by the relevant Service or
   Rating-Group.  The attribute consists of a Value-Digits AVP and
   optionally an Exponent AVP (as indicated by the length field).

4.3.17.  Requested-Action AVP

   The value of the type field of the Requested-Action AVP is TBD.  The
   length of this AVP is 3 octets.  This AVP can only be present in
   messages sent from the PPC to the PPS.  It indicates that the user or
   the PPC desires the PPS to perform the indicated action and to return
   the result.  The PPAQ in which a Requested-Action AVP occurs MUST NOT
   contain a QID, and MUST contain a Service-Identifier that, possibly
   in combination with other AVPS, can be used by the PPS to uniquely
   identify the service for which the indicated action is requested.



Lior, et al.            Expires December 25, 2006              [Page 39]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


   The following actions may be requested.

   1.  Balance Check

   2.  Price Enquiry

4.3.18.  Check-Balance-Result AVP

   The value of the type field of the Check-Balance-Result AVP is TBD.
   The length of this AVP is 3 octets.  This AVP can only be present in
   messages sent from the PPS to the PPC.  It indicates the balance
   check decision of the PPS about a previously received Balance Check
   Request (as indicated in a Requested-Action AVP).  Possible values
   are 0 for "success" and any other value for "failure" and mean that
   sufficient funds are available (resp. are not available) in the
   user's prepaid account.  The PPAQ in which a Check-Balance-Result
   occurs MUST NOT include a QID, because no quota is reserved by the
   PPS.

4.3.19.  Cost-Information AVP

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

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

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

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

   4.  Cost-Unit AVP: the value of the type field of this AVP is TBD.
       The length of this AVP is variable.  It carries a UTF8String
       encoded human readable string that can be displayed to the end
       user.  It specifies the applicable unit to the Cost-Information
       when the service cost is a cost per unit (e.g., cost of the
       service is $1 per minute).  The Cost-Unit can be minutes, hours,
       days, kilobytes, megabytes, etc.

   Example: the cost of 7.75 Malawi kwacha per hour would be encoded as



Lior, et al.            Expires December 25, 2006              [Page 40]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


   follows.  Value-Digits = 775, Exponent = -2, Currency Code = 103, and
   Cost-Unit = "hour".

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

   NOTES: Either Volume-Quota, Time-Quota, or Resource-Quota MUST appear
   in the PPAQ attribute.  A PPAQ MUST NOT contain more than one
   Service-Id, MUST NOT contain more than one Rating-Group-Id, and MUST
   NOT contain both a Service-Id and a Rating-Group-Id.  A PPAQ that
   does not contain a Service-ID or a Rating-Group-Id refers to the
   "Access Service".  A PPAQ MUST NOT contain more than one Pool-Id.  A
   PPAQ that contains a Pool-Id MUST also contain a Pool-Multiplier AVP.

4.4.  Prepaid Tariff Switching Attribute (PTS)

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

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

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

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

   The PTS AVP contains a number of other subtype AVPs which are



Lior, et al.            Expires December 25, 2006              [Page 41]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


   specified in the following subsections.

4.4.1.  VolumeUsedAfterTariffSwitch AVP

   The value of the type field of the VolumeUsedAfterTariffSwitch AVP is
   TBD.  The length of this AVP is 12 or 18 octets.  The
   VolumeUsedAfterTariffSwitch subtype SHALL be used in online RADIUS
   Access-Request messages (PPC to PPS direction).  It indicates the
   volume (in octets) used during a session after the last tariff switch
   for the service specified via the QID subfield and the accompanying
   PPAQ attribute.  The attribute consists of a Value-Digits AVP and
   optionally an Exponent AVP (as indicated in the length field).

4.4.2.  TariffSwitchInterval AVP

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

4.4.3.  TimeIntervalafterTariffSwitchUpdate AVP

   The value of the type field of the
   TimeIntervalafterTariffSwitchUpdate (TITSU) AVP is TBD.  The length
   of this AVP is 6 octets.  The PPS MUST include this AVP if there is
   another tariff switch period after the period that ends as indicated
   by the TSI attribute.  The value of the TITSU AVP in encoded as an
   integer, and contains the number of seconds of the tariff period that
   begins immediately after the period that ends as indicated by the TSI
   attribute.  If the TITSU attribute is not present, the PPC assumes
   that the tariff period which ends as indicated by the TSI attribute
   lasts until further notice.  If TITSU is specified, the PPC MUST send
   a quota update before the point in time specified by the TITSU
   attribute (see Figure 9).

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

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



Lior, et al.            Expires December 25, 2006              [Page 42]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


   starting the session.


















































Lior, et al.            Expires December 25, 2006              [Page 43]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


5.  Translation between RADIUS prepaid and Diameter Credit Control

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

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

   1.  The transport mechanism for DCC is TCP, which requires per-
       session state to be maintained at both endpoints of the
       communication.  Note, however, that, in principle, each DCC
       message could be sent over a dedicated TCP connection which is
       torn down as soon as the message is sent.  This, however, is
       likely to be unacceptable in terms of efficiency.

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

   The translator maps each incoming RPP (resp. DCC) message into an
   outgoing DCC (resp. RPP) message, and possibly establishes or updates
   local state that is associated with the session.  The translated
   (i.e. outgoing) message is a function of the incoming message as well
   as existing state that is associated with the current session.

   Translation occurs on an attribute-by-attribute basis.  Certain
   attributes are translated without consideration of local per-session
   state.  Other attributes, namely those that are bound to a particular
   session, require such consideration.  The translation agent has to
   identify the session (and possibly subsession) an incoming message
   belongs to in order to consult the appropriate local per-session
   state.

   Note that certain DCC attributes cannot be translated due to their



Lior, et al.            Expires December 25, 2006              [Page 44]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


   semantics not being present in RPP, and vice versa.  This results in
   the messages, in which these attributes occur, not being delivered to
   their intended destination.  In such cases it is desirable to inform
   the originator about the failure and terminate the session.

   In each scenario (i.e.  RPP client / DCC AAA infrastructure and DCC
   client / RPP AAA infrastructure), the translator operates in two
   directions, namely RPP to DCC and vice versa.  In the following
   sections, the notation c->s means that the attribute in question may
   occur only in the direction from the client to the server.  The
   notation s->c denotes the converse and the notation c<->s denotes
   that the attribute may occur in messages that are directed in either
   direction.

5.1.  Session Identification

   The translation agent has to keep per-session state in order to
   perform its task.  A session may be identified based on the RPP
   identifier or the DCC session identifier.  That is, the translation
   agent should always maintain a pair of (RPP, DCC) session identifiers
   and maintain the per-session state in association with that pair.
   This per-session state must be addressable by either of these two
   identifiers.  Moreover, an RPP session identifier must uniquely
   correspond to a DCC identifier.  (If this holds, the converse also
   holds.)  Each subsession identifier within an RPP session must also
   uniquely correspond to a subsession identifier within its
   corresponding DCC session.  (If this holds the converse also holds.)

5.2.  Translation between RADIUS prepaid client and Diameter Credit
      Control AAA infrastructure

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

   For each RPP AVP (i.e.  AVP that is specified in the present
   document), the transformation into a semantically equivalent DCC AVP
   (if such an AVP exists), along with what per-session state the
   translator has to create or consult, is described.  For clarity of
   exposition, each RPP AVP is addressed in a separate subsection.
   Since in this scenario, the PPC is typically the initiator a session,
   the focus is on the RPP AVPs.

5.2.1.  PPAC (c<->s)

   A DCC client is assumed to always support Volume metering, Duration



Lior, et al.            Expires December 25, 2006              [Page 45]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


   metering, Resource metering, Pools, Rating groups, and Tariff
   Switching.  Thus, if a PPAQ that indicates any of the above is sent
   client->server, the translator does the following: It lets message go
   through but remembers what exactly the client supports.  If the
   server later requests (servier -> client direction) an unsupported
   metering to be performed, send failure to server and cause the
   session to be terminated at the client.

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

5.2.2.  Service Termination Attribute (c->s)

   The Diameter base protocol assumes that the client always supports
   dynamic session termination.  If this AVP is present, the translator
   does not need to do anything, i.e. there exists no DCC AVP that this
   AVP can be mapped to.  If this AVP is absent, the message in which it
   appears should either be discarded and originator should be informed
   of a failure, or the message can be passed on (without this AVP being
   mapped onto a DCC AVP).  However, in the latter case, the translator
   has to remember that the client does not support dynamic termination.
   Thus, the translatior has to initiate the normal session termination
   procedure with the client when (if) dynamic termination is later
   initiated by the server.

5.2.3.  Quota Identifier Attribute (c<->s)

   When quota is allocated for the first time by the DCC server, the
   translator has to create a QID AVP, as required by this
   specification.  The translator later uses a QID AVP that is sent in
   the client-to-server direction in order to identify the corresponding
   DCC session.  The QID has to be saved in the translator's per session
   state.

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

   If this AVP occurs in a message that is sent in the server-to-client
   direction, it is translated into a Granted-Service-Unit AVP with an
   embedded CC-Total-Octets AVP. [editor's note: this sentence belongs
   to the other translation type, i.e.  AAA = RPP and client = DCC.]

   If this AVP occurs in a message that is sent in the client-to-server
   direction, then it is translated into a Used-Service-Unit AVP with an
   embedded CC-Total-Octets AVP.  Note that only the difference between
   current cumulative quota for the (sub)session and the quota in
   incoming messages is indicated in the translated DCC message.  Local
   state is updated with cumulative consumed resources.




Lior, et al.            Expires December 25, 2006              [Page 46]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


   Conversely, if the server grants quota using the DCC Granted-Service-
   Unit AVP with an embedded CC-Total-Octets AVP, then the translation
   agent must translate this into a Volume Quota Attribute.  Again,
   local state must be consulted so that the cumulative amount of octets
   is indicated in the Volume Quota attribute.

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

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

   If this AVP occurs in a message that is sent in the client-to-server
   direction, then it is translated into a Used-Service-Unit AVP with an
   embedded CC-Time AVP.  Note that only the difference between current
   cumulative quota for the (sub)session and the quota in incoming
   messages is indicated in the translated DCC message.  Local state is
   updated with cumulative consumed resources (i.e. time).

   Conversely, if the server grants quota using the DCC Granted-Service-
   Unit AVP with an embedded CC-Time AVP, then the translation agent
   must translate this into a Duration Quota attribute.  Again, local
   state must be consulted so that the cumulative amount of seconds is
   indicated in the Duaration Quota attribute.

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

   If this AVP occurs in a message that is sent in the server-to-client
   direction, it is translated into a Granted-Service-Unit AVP with an
   embedded CC-Service-Specific-Units AVP. [editor's note: this sentence
   belongs to the other translation type, i.e.  AAA = RPP and client =
   DCC.]

   If this AVP occurs in a message that is sent in the client-to-server
   direction, then it is translated into a Used-Service-Unit AVP with an
   embedded CC-Service-Specific-Units AVP.  Note that only the
   difference between current cumulative quota for the (sub)session and
   the quota in incoming messages is indicated in the translated DCC
   message.  Local state is updated with cumulative consumed resources
   (i.e. resources).

   Conversely, if the server grants quota using the DCC Granted-Service-
   Unit AVP with an embedded CC-Service-Specific-Units AVP, then the
   translation agent must translate this into a Resource Quota
   attribute.  Again, local state must be consulted so that the
   cumulative amount of resource units is indicated in the Resource
   Quota attribute.



Lior, et al.            Expires December 25, 2006              [Page 47]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


   Note that the "resource" type is application dependent.  This means
   that a DCC application unit corresponds to n RPP application units,
   where n may be any real number.  If n is not 1, then the RPP/DCC
   translator must be aware of that and translate resource units
   accordingly.

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

   The encoding of this AVP is similar in RPP and DCC, and the value it
   holds may have to be evaluated in conjunction with an acommpanying
   "Exponent" AVP.  It should be kept in mind that, in RPP the
   cumulative amount of granted/consumed quota is typically encoded into
   an AVP of this type, while in DCC only the difference from a previous
   message.

5.2.8.  Exponent Attribute (c<->s)

   The encoding of this AVP is similar in RPP and DCC, and the value it
   holds may have to be evaluated in conjunction with an acommpanying
   "Value Digits" AVP.  It should be kept in mind that, in RPP the
   cumulative amount of granted/consumed quota is typically encoded into
   a related "Value Digits" and "Exponent" AVP pair, while in DCC only
   the difference from a previous message is encoded into such a pair.

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

   In DCC the concept of "threshold" does not exist.  Instead, the DCC
   client is assumed to ask for the replenishment of quota in good time.
   In RPP, on the other hand, the server may optionally include a
   threshold AVP, as an indication to the PPC about when to ask for
   quota replenishment.

   Thus, in this scenario, there is no need for the translator to ever
   include a threshold attribute into the messages that it sends to the
   PPC.  If, however, there is a need for a threshold attribute to be
   present in order to avoid a possible service provision

5.2.10.  Update Reason Attribute (c->s)

   The DCC AVP that is semantically closer to the Update Reason AVP than
   any other AVP is the CC-Request-Type AVP.  This AVP indicates whether
   the message is which it appears is intended to indicate an "initial",
   an "intermediate" or a "final interrogation".  Morever, in case of
   the session being terminated at the client, it indicates the reason
   for this termination.

   The following list lists the possible values of an "Update Reason"
   attribute, along with corresponding values for the CC-Request-Type



Lior, et al.            Expires December 25, 2006              [Page 48]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


   AVP.

   o  Pre-initialization: No action/value defined.

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

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

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

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

   o  Remote Forced Disconnect: Reception of such an Update Reason
      indicates that the client has terminated the session.  The
      corresponding value for the CC-Request-Type AVP is
      "TERMINATION_REQUEST".

   o  Client Service Termination: Reception of such an Update Reason
      indicates that the client has terminated the session.  The
      corresponding value for the CC-Request-Type AVP is
      "TERMINATION_REQUEST".

   o  "Access Service" Terminated: Reception of such an Update Reason
      indicates that the client has terminated the session.  The
      corresponding value for the CC-Request-Type AVP is
      "TERMINATION_REQUEST".

   o  Service not established: Reception of such an Update Reason
      indicates that the client has terminated the session.  The
      corresponding value for the CC-Request-Type AVP is
      "TERMINATION_REQUEST".

   o  One-Time Charging: Such an Update Reason indicates that a one-time
      charging event is initiated by the client.  The corresponding
      value for the CC-Request-Type AVP is "EVENT_REQUEST".  Note that a
      "Requested-Action: AVP MUST also be included in the outgoing DCC
      message.  Typically, this would be of the type "DIRECT_DEBITING",



Lior, et al.            Expires December 25, 2006              [Page 49]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


      or "REFUND_ACCOUNT", depending on other AVPs present in the
      message.

5.2.11.  PrepaidServer Attribute (s<->c)

   The PPC typically never sets the value of a PrepaidServer attribute.
   Instead, it repeats those values that it receives from the AAA
   infrastructure, in this scenario from the translator.  This attribute
   is therefore not used in a translation scenario.  Nevertheless, the
   translator must make sure that messages about the same RPP session
   are forwarded to the same DCC server, throughout the whole session.
   This may be easy to guarantee since the transport of Diameter is TCP.

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

   The DCC equivalent of a RPP "Service-ID" AVP is the combination of
   Service-Context-Id and Service-Identifier AVPs.  The translator must
   keep a static equivalence table of the RPP Service-ID and the
   corresponding DCC combination in order to correctly translate an RPP
   service identifier into DCC and back.

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

   The DCC equivalent of a RPP "Rating-Group-ID" AVP is also called a
   "Rating-Group-ID".  Depending on the configuration, this AVP may
   contain the same value on both the RPP and the DCC side of the
   communication.  If, however, static rating groups are configured
   between the RCC client and the translator, and different rating
   groups between the DCC server and the translator, then the translator
   has to maintain a static translation table for the rating group
   identifier.  In any case, the translation of a rating group AVP, is
   not a function of the translator's local per-session state.

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

   The DCC equivalent of the "Termination-Action" AVP is called the
   "Final-Unit-Action" AVP.  In this scenario (RPP client and DCC AAA
   infrastructure), a DCC "Final-Unit-Action" AVP is translated into a
   "Termination-Action" AVP.  The following list contains the possible
   "Final-Unit-Action" values along with their "Termination-Action"
   equivalent.

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

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



Lior, et al.            Expires December 25, 2006              [Page 50]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


      "Termination-Action" with value "Redirect/Filter" and an
      eqiovalent NAS-Filter-Rule attribute (specified in http://
      www.ietf.org/internet-drafts/draft-ietf-radext-ieee802-00.txt).

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

   o  In the absence of a "Final-Unit-Action" AVP, the DCC server
      assumes that the DCC client will ask for replenishment of quota at
      some suitable time.  In RPP, this is explicitly conveyed via a
      "Termination-Action" AVP with the value "Request More Quota".
      Thus, in the absence of a "Final-Unit-Action" AVP, the translator
      in this scenario appends such an AVP into the outgoing RPP
      message.

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

   The DCC equivalent of a RPP "Pool-ID" AVP is also called a "Pool-ID".
   Typically, no translation needs to be done to the "Pool-ID"
   attribute.

5.2.16.  Multiplier Attribute (s<->c)

   The multiplier attribute, which is a pair of "Value-Digits" and
   "Exponent" AVPs, typically needs no translation, since the value it
   carries (inside a "Value-Digits" and an "Exponent" AVP) represents
   the rating of the service or rating group to which it refers, with
   respect to abstract units.  As such, the same multiplier value would
   typically applyt be conveyed from a DCC server to an PPC, and vice
   versa.

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

   The "Requested Action" AVP can be directly translated into its DCC
   equivalent, which carries the same name.

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

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

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

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



Lior, et al.            Expires December 25, 2006              [Page 51]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


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

   This attribute consists of a Value-Digits AVP, an Exponent AVP, a
   Currency Code AVP, and a Cost-Unit AVP.  All these AVPs do likewise
   exist in DCC, and carry identical semantics in the context of the
   "Cost-Information" AVP.  Thus, the translation of this attribute is
   straightforward.

5.2.20.  VolumeUsedAfterTariffSwitch attribute (c->s)

   This attribute carries the amount of octets that were consumed after
   a tariff change.  It always appears in a message with an accompanying
   PPAQ attribute in which the total amount of octets (i.e. those that
   were consumed both before and after the tariff switch) is reported.
   Thus, the translation agent can compute the amount of octets that
   were consumed before the tariff change.

   In DCC, the two amounts, i.e. the octets that were consumed before a
   tariff change and those that were consumed afterwards, are reported
   in separate Used-Service-Unit AVPs.  The two Used-Service-Unit AVPs
   have an embedded CC-Total-Octets AVP that indicates the appropriate
   amount of octets.  Furthermore, the Used-Service-Unit AVP that
   carries the amount that was consumed before the tariff switch also
   carries an embedded Tariff-Change-Usage AVP with the value
   UNIT_BEFORE_TARIFF_CHANGE (0).  Similarly, the Used-Service-Unit AVP
   that carries the amount that was consumed after the tariff switch
   also carries an embedded Tariff-Change-Usage AVP with the value
   UNIT_AFTER_TARIFF_CHANGE (1).























Lior, et al.            Expires December 25, 2006              [Page 52]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


6.  Security Considerations

   The extended RADIUS protocol described in this document is subject to
   a number of potential attacks, in a manner similar to the RADIUS
   protocol without these extensions.  It is recommended that IPsec be
   employed to protect against certain of the attacks.













































Lior, et al.            Expires December 25, 2006              [Page 53]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


7.  IANA Considerations

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








































Lior, et al.            Expires December 25, 2006              [Page 54]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


8.  Acknowledgements

   The authors would like to thank Christian Guenther for his valuable
   insight and feedback and his active and ongoing contributions that he
   provided throughout the development of this document.














































Lior, et al.            Expires December 25, 2006              [Page 55]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


9.  References

9.1.  Normative References

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

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

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

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

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

   [6]  Zorn, G., Leifer, D., Rubens, A., Shriver, J., Holdrege, M., and
        I. Goyret, "RFC 2868: RADIUS Attributes for Tunnel Protocol
        Support", June 2000.

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

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

9.2.  Informative References

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
















Lior, et al.            Expires December 25, 2006              [Page 56]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


Appendix A.  Example flows

   This section presents certain example flows that involve the RADIUS
   prepaid extensions.  By no means is the intent of this section to
   specify or recommend business logic, rating strategies, and
   application-level behaviour.  The intent of this section is purely to
   illustrate some fictive scenarios and the RADIUS prepaid message
   flows that could be associated with these scenarios.  The contents of
   this section should be regarded as a collection of informative
   examples that aim to provide guidance to implementors.

A.1.  A simple flow


   End user          PPC                  AAA Server                 PPS


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

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

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

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

                                                              [allocates
                                                              5MB quota]

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

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

   4.5 MB consumed



Lior, et al.            Expires December 25, 2006              [Page 57]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


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

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

                                                  [allocates another 7MB
                                                  to the access service]

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

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

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

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

                                                          [reimburses
                                                         user account]

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



   Figure 12: A simple example message flow

   The user logs on (1).  The PPC sends a RADIUS Access Request message
   to the home AAA server (2), and includes the prepaid-specific PPAC



Lior, et al.            Expires December 25, 2006              [Page 58]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


   AVP.  This AVP indicates that both duration-based and volume-based
   metering is supported.  However, it also indicated that multiple
   services, rating groups and resource pools are not supported.  Note
   that, since this is not an "Authorize-Only" message, no PPAQ AVP with
   Update Reason="initial request" is included (see Section 3.7.1).  The
   home AAA server then authenticates the user and authorizes the access
   service, as is usual in RADIUS (3).  Note that the PPAC AVP is
   appended by the PPC in at least the last message that is sent to the
   home AAA server during this possibly multiple-round exchange.

   If authentication and authorization is successful (in this example
   this is assumed), the home AAA server forwards the final Access
   Request to the PPS (4).  The PPS identifies the user's prepaid
   account from the included base RADIUS AVPs, and determines the
   capabilities of the PPC from the PPAC attribute.  Assuming that
   sufficient funds are available in the user's prepaid account, the PPS
   reserves some of these and rates the service.  In this example, the
   PPS reserves, say, 2 Euros and determines that the access service is
   rated at 0.4 Euro per MB.  This results in 5 MB of quota being
   granted.  The PPS also determines that the PPC should ask for this
   quota to be replenished once 4.5 MB have been consumed.  Thus, it
   creates an Access Accept message with a Volume-Threshold indication
   of 4.5MB.  It further associates the QuotaIdentifier QID=5 to this
   quota reservation.  This identifier can be used to later uniquely
   identify the prepaid session, user, account, etc.  The resulting
   Access Accept message is sent to the home AAA server (5) and
   forwarded to the PPC (6).

   Upon reception of message (6), the PPC provides the access service to
   the user and meters it accordingly.

   At some point in time, the threshold is reached, i.e. 4.5MB of
   "access service" have been consumed by the user.  At that point, the
   PPC generates an Authorize-Only Access Request that contains the
   usual RADIUS attributes and a PPAQ AVPs that reports the amount of
   consumed quota, and the request for replenishment, i.e. the Update-
   Reason= THRESHOLD REACHED (8).  Note that the QID in this message is
   the same as the one previously received from the user's home AAA
   server.  This message is forwarded to the PPS (9).

   Upon reception of message (9), the PPS identifies the user and his
   account from the QID.  In also determines that a prepaid session is
   ongoing, and that enough credit remains in the prepaid account in
   order for the access service to continue being provided.  Since 4.5
   MB have been consumed, the PPS subtracts 1.8 Euros from the user's
   prepaid account.  The PPS decides to reserve another 2.8 euros from
   the user's account.  (This results in 3 euros being reserved in total
   at this point in time.)  As the access service is rated at 0.4 euros



Lior, et al.            Expires December 25, 2006              [Page 59]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


   per MB, the PPS determines that another 7 MB of quota should be
   granted.  This results in a total cumulative quota allocation of 12
   MB for the access service.  The PPS further calculates the new
   threshold value of 11.5 MB.  Since this is a new quota reservation,
   the PPS also allocates a new QuotaIdentifier to it, in this example
   QID=8.  The resulting RADIUS message is sent to the home AAA server
   (10) and forwarded to the PPC (11).

   Upon reception of message (11), the PPC updates its records and
   continues provisioning access to the user.  At some point the user
   logs off (12).  The PPC must then report how many resources were
   consumed, so that the PPC can subtract the appropriate monetary
   amount from the user's prepaid account.  To this end the PPC
   constructs an Authorize-Only Access Request message with a PPAQ AVPs
   for the access service.  In this example, 7 MB were consumed by the
   access service in total.  The PPC reports 7 MB its final message
   (13).  This is forwarded to the PPS (14) which correlates the report,
   using the QID, to the previous session state.  It determines, from
   the previous records, that the access service had consumed another
   4.5 MB before (as indicated in message (9)).  This means that, of the
   7 MB, only 3.5 MB have not yet been subtracted from the user's
   account.  Thus, the PPS subtracts another 1.4 euros from the user's
   account and, since the session is to be terminated (REASON=ACCESS
   SERVICE TERMINATED), releases any reserved monetary amount.

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

A.2.  A flow with prepaid tariff switching


   End user          PPC                  AAA Server                 PPS


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

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

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

                                            Access Request
                                            {RADIUS BASE AVPS,
                                             PPAC=00...00011}



Lior, et al.            Expires December 25, 2006              [Page 60]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


                                             ------(4)--------->

                                                             [allocates
                                                             20MB quota]

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

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

   5900 seconds have passed

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

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

                                                 [allocates another 10MB
                                                  to the access service]

                                            Access Response
                                            {RADIUS BASE AVPS,
                                            PPAQ={QID=8, VQ=30MB,
                                            VTH = 28 MB},PTS={
                                            QUD=8, PTS=95 sec}}
                                           <----------(10)--------------
                        forwards message
                        <------(11)--------

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

                       Access Request
                       {RADIUS BASE AVPS,
                       PPAQ={QID=8, VQ=17 MB,



Lior, et al.            Expires December 25, 2006              [Page 61]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


                       REASON=ACCESS SERV TERMINATED},
                       PTS={QID=8, VUATS=2.5 MB}
                       -------(13)--------->

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

                                                          [reimburses
                                                         user account]

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



   Figure 13: Example message flow with Tariff Switch

   The user logs on (1).  The PPC sends a RADIUS Access Request message
   to the home AAA server (2), and includes the prepaid-specific PPAC
   AVP.  This AVP indicates that both duration-based and volume-based
   metering is supported, as well as tariff switching.  The home AAA
   server then authenticates and user and authorizes the access service,
   as is usual in RADIUS (3).  Note that the PPAC AVP is appended by the
   PPC in at least the last message that is sent to the home AAA server
   during this possibly multiple-round exchange.

   If authentication and authorization is successful (in this example
   this is assumed), the home AAA server forwards the final Access
   Request to the PPS (4).  The PPS identifies the user's prepaid
   account from the included base RADIUS AVPs, and determines the
   capabilities of the PPC from the PPAC attribute.  In this example, it
   is assumed that a tariff switch is about to occur in 300 seconds from
   the current time.  Suppose that the access service is currently rated
   at 0.5 euros per MB and in the next tariff period it is rated at 0.6
   euros per MB.  Suppose further that a third tariff period is about to
   start in 6000 seconds from current time and that that access service
   is rated at 0.8 euros per MB in that period.  The PPS then decides to
   reserve 12 euros from the user's account.  Since it is conceivable
   that the user may consume all allocated quota in the (more expensive)
   "0.6-euro" period, the PPS reserves 20 MB of quota, and determines a
   threshold value of 18 MB.  It constructs a Radius Access Accept
   message with a PPAQ attribute that reflects these choices, and
   carries a QuotaIdentifier QID=5.  It further adds a PTS AVP in the
   message which is linked to the PPAQ via the common QID value.  The



Lior, et al.            Expires December 25, 2006              [Page 62]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


   PTS AVP contains a TSI attribute indicating that a tariff switch will
   occur in 300 seconds.  It also includes a TITSU attribute with the
   value of 6000 seconds.  This is included in order to make sure that
   the PPC will report the consumed quota before the "2-euro" tariff
   period will start.  The message is sent to the AAA server (5) and
   forwarded to the PPC (6).

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

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

   The PPS can link the message to previous session state via the QID.
   It now rates the consumed volume as follows.  The 11 MB that were
   consumed after the tariff switch correspond to 11 * 0.6 = 6.6 euros
   and the remaining 14-11=3 MB to 3 * 0.5 = 1.5 euros.  Thus, the PPS
   subtracts the amount of 6.6+1.5=8.1 euros from the user's account,
   which leads to a remainder of 12 - 8.1 = 3.9 euros being reserved.

   The PPS now determines that message (9) was sent in order to
   replenish the quota for this prepaid session.  This can be deduced
   from the UPDATE REASON field, which indicates that the PPC sent this
   message because the time indicated by the TITSU AVP is approacing.
   The PPS now determines that enough credit remains in the user's
   prepaid account in order for the access service to continue being
   provided and decides to reserve another 8.9 euros from the user's
   account.  Since it is conceivable that the user will consume the 6
   unused MB of quota from the previous allocation, as well as the
   entire quota that is to be allocated now, entirely in the "0.8-euro"
   period, the quota that should now be granted in addition to the
   previous 20 MB should be 10 MB.  This is because 0.9 of the 8.9 euros
   are being reserved in order to "cover the worst case scenario".  The
   fact that 0.9 euros are reserved for this purpose is due to the fact
   that the unused 6 MB from the previous allocation correspond to 4.8
   euros (with 0.8 euros per MB).  This is 4.8 - 3.9 = 0.9 euros more



Lior, et al.            Expires December 25, 2006              [Page 63]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


   than the amount of funds that are still "reserved" from the previous
   allocation.  (After this reservation, the total amount of reserved
   money is 8.9 + 3.9 = 12.8 euros, which corresponds to 16 (10+6) MB
   being consumed in the "0.8-euro" period.)

   Since quotas are encoded in a cumulative way in RADIUS, the PPS
   includes a VolumeQuota of 30 MB into the Access Accept message (10).
   The PPS further calculates the new threshold value of 28 MB.  Since
   this is a new quota reservation, the PPS also allocates a new
   QuotaIdentifier to it, in this example QID=8.  The resulting RADIUS
   message is sent to the home AAA server (10) and forwarded to the PPC
   (11).

   Upon reception of message (11), the PPC updates its records and
   continues providing access to the user.  At some point the user logs
   off (12).  The PPC must then report how many resources were consumed,
   so that the PPC can subtract the appropriate monetary amount from the
   user's prepaid account.  To this end the PPC constructs an Authorize-
   Only Access Request message with a PPAQ AVPs for the access service.
   In this example, 17 MB were consumed by the access service in total.
   The PPC reports 17 MB its final message (13).  This is forwarded to
   the PPS (14) which correlates the report, using the QID, to the
   previous session state.  It determines, from the previous records,
   that the access service had consumed 14 MB before (as indicated in
   message (9)).  This means that, of the 17 MB, only the monetary
   equivalent for 3 MB have not yet been subtracted from the user's
   account.  The PPS calculates how much should be deducted from the
   user's account as follows.  Since the VUATS AVP indicates that 2.5MB
   were consumed after the tariff switch, only 0.5 MB were consumed
   before that.  Thus, the monetary equivalent is 0.5 * 0.6 + 2.5 * 0.8
   = 3.6 euros.  That is, the PPS subtracts 3.6 euros from the user's
   prepaid account.  Since the session has by now be terminated by the
   PPC (REASON=ACCESS SERVICE TERMINATED), the PPS now releases any
   reserved monetary amount, in this example 12.8 - 3.6 = 9.2 euros.

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

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

A.3.  Resource pools and Rating Groups


   End user          PPC                  AAA Server                 PPS





Lior, et al.            Expires December 25, 2006              [Page 64]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


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

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

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

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

                                                              [allocates
                                                              5MB quota]

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

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

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

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

                                                       [allocates 50 min
                                                            quota]

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



Lior, et al.            Expires December 25, 2006              [Page 65]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


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

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

   Pool 1 close to exhaustion

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

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

                                                      [allocates another
                                                  3 MB to access service
                                                       and 30 minutes to
                                                         service "A"]

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

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

                       Access Request
                       {RADIUS BASE AVPS,
                       PPAQ={QID=8, VQ=6.5MB,
                       REASON=ACCESS SERV TERMINATED,
                       PoolID=1, mult=1}
                       PPAQ={QID=9, DQ=5400sec



Lior, et al.            Expires December 25, 2006              [Page 66]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


                       REASON=ACCESS SERV TERMINATED,
                       PoolID=1, mult=1747.63,
                       SID="A",RGROUP=1}}
                       -------(19)--------->


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


                                                          [reimburses
                                                         user account]

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

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

   The user logs on (1).  The PPC sends a RADIUS Access Request message
   to the home AAA server (2), and includes the prepaid-specific PPAC
   AVP, indicating that multiple services, rating groups and resource
   pools are supported.  Note that, since this is not an "Authorize-
   Only" message, no PPAQ AVP with Update Reason="initial request" is
   included (see Section 3.7.1).  The home AAA server then authenticates
   the user and authorizes the access service, as is usual in RADIUS
   (3).  Note that the PPAC AVP is appended by the PPC in at least the
   last message that is sent to the home AAA server during this possibly
   multiple-round exchange.

   If authentication and authorization is successful (in this example
   this is assumed), the home AAA server forwards the final Access
   Request to the PPS (4).  The PPS identifies the user's prepaid
   account from the included base RADIUS AVPs, and determines the
   capabilities of the PPC from the PPAC attribute.  Assuming that
   sufficient funds are available in the user's prepaid account, the PPS
   reserves some of these and rates the service.  In this example, the
   PPS reserves 5 Euros and determines that the access service is rated
   at 1 Euro per MB.  In anticipation that the user requests more
   chargeable services throughout this prepaid session, and since this
   is supported by the PPC, the PPS further associates a resource pool
   with this reservation, in this example PoolID=1.  The PPC also
   specifies the multiplier = 1 for the access service.  Note that,
   since 5MB = 5242880 octets, 1 unit in the resource pool corresponds
   to 5 / 5242880 euros, which is about 0.000095367431640625 Eurocents.



Lior, et al.            Expires December 25, 2006              [Page 67]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


   (However, the PPC does not need to know that.)  Moreover, the PPS
   associates the QuotaIdentifier QID=5 to this quota reservation.  This
   identifier can be used to later uniquely identify the prepaid
   session, user, account, etc.  The resulting Access Accept message is
   sent to the home AAA server (5) and forwarded to the PPC (6).

   Upon reception of message (6), the PPC provides the access service to
   the user and meters it accordingly.  That is, for every octet
   consumed, the PPC subtracts 1 unit (since the multiplier is 1) from
   the resouce pool with PoolID=1.

   At some point in time, the user requests another chargeable service,
   namely service A (8).  The PPC generates an Authorize-Only Access
   Request that contains the usual RADIUS attributes and the Service-ID
   identifying service A (9).  The PPC has determined that service A is
   rated in an identical way as at least one more service.  Thus,
   service A has been configured to belong to a rating group, in this
   example the group with Rating-Group-ID=1.  This identifier is
   included is message (9), which is then forwarded to the PPS (10).

   Upon reception of message (10), the PPS identifies the user and his
   account from the base RADIUS attributes, the fact that a prepaid
   session is ongoing, and determines that enough credit remains in the
   prepaid account in order for service A to be provided.  The PPS also
   determines that service A is rated at 0.10 euros per minute.  The PPS
   decides to reserve another 5 euros from the users account; this
   corresponds to 50 minutes or, as encoded in the DurationQuota AVP,
   3000 seconds.  As service A draws from the same prepaid account as
   the access service, the PPS associates this reservation with the same
   resource pool as the previous reservation (QID=5), namely the pool
   with PoolID=1.  Note that, in order for the abstract units in the
   pool to be consistent, the multiplier has to be 1747.63.  This is
   because each second corresponds to about 0.10 / 60 = 0.00167 euros,
   which is about 1747.63 times the value of an abstract resource pool
   unit, as this was determined by the first allocation of quota to the
   pool (i.e. 0.000095367431640625 Eurocents).  Since this is a new
   quota reservation, the PPS also allocates a new QuotaIdentifier to
   it, in this example QID=7.  The resulting RADIUS message is sent to
   the home AAA server (11) and forwarded to the PPC (12).

   Upon reception of message (12), the PPC adjusts the units in resource
   pool 1.  That is, it first determines how much quota had been
   allocated to service A in the past, and subtracts this from the quota
   reservation found in the message.  Since this is the first quota
   reservation for service A, there is nothing to subtract.  Thus, it
   adds 3000 * 1747.63 = 5242890 units to the pool and remembers that
   3000 seconds have been allocated to service A during this prepaid
   session.  The PPC then provides service A to the user, and meters it



Lior, et al.            Expires December 25, 2006              [Page 68]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


   against resource pool 1.  That is, for every second it subtracts
   1747.63 units from the pool.

   At some point in time, the user requests service B (13).  The PPC
   determines that service B is rated exactly in the same way as service
   A, i.e. that they belong to the same rating group, namely the one
   with Rating-Group-ID=1.  Since this rating group has been effectively
   authorised by the allocation of quota with QID=7, the PPC provides
   service B to the user immediately.  It is rated in the same way as
   service A, i.e. for every second provided, 1747.63 units are
   subtracted from credit pool 1.

   At some point in time, resource pool 1 is close to exhaustion.  (For
   example, the PPC may determine that the pool is "close to exhaustion"
   when has less than 10% its initial amount of units.)  At that point,
   the PPC needs to ask for replenishment for the pool.  Suppose that,
   at that point in time, 4MB of "access service", 45 minutes of
   "service A", and 10 minutes of "service B" were provided to the user.
   Note that this corresponds to (4*1048576) + (55*60*1747.63) = 4194304
   + 5767179 = 9961483 abstract service units from the pool.  The PPC
   constructs an Authorize-Only Access Request message that reports the
   usage for the "access service" and "service A".  This message
   contains two PPAQ AVPS, is sent to the home AAA server (14) and
   forwarded to the PPS (15).  Note that is the message it appears that
   "service A" has consumed more than it was allocated (i.e. 55 minutes
   although only 50 minutes were initially allocated to it).  This is
   not a a problem since the PPS knows that "service A" was drawing from
   the same pool as the "access service" and that the "access service"
   did only consume 4 out of the 5 MB it was allocated.

   Upon reception of message (15), the PPS subtracts 4 euros from the
   user's account for the "access service" and another 5.5 euros for
   "service A".  (This includes the charge incurred by "service B" up to
   that point in time, although the PPS is not aware of "service B"
   being provisioned to the user.)  The PPS then determines that
   sufficient funds remain in the prepaid account in order for both
   services to be continued.  The PPS decides to reserve another 3MB for
   the access service and 30 minutes for "service A".  This corresponds
   to 3+3=6 euros.  Since in RADIUS prepaid the quotas are encoded in a
   cumulative manner, the PPAQ attribute that grants the quota for the
   "access service" contains a Volume-Quota AVP of 8MB (8388608 octets),
   which is the 5MB that were initially allocated, plus the 3MB
   allocated now.  The resource pool identifier is, as previously,
   PoolID=1 and the multiplier is 1.  Similarly, the PPAQ that grants
   quota for "service A" contains 4800 seconds (the initial 3000 plus
   1800 that correspond to the 30 additional minutes).  Again, the
   PoolID=1 and multiplier=1747.63.  The resulting Access Response
   message is sent to the home AAA server (16) and forwarded to the PPC



Lior, et al.            Expires December 25, 2006              [Page 69]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


   (17).

   When the PPC received message (17) it checks how much quota has been
   allocated previously to the "access service".  It finds that the
   answer is 5MB (5242880 octets); thus, out of the 8MB (8388608 octets)
   that are indicated by the PPAQ with QID=8, only 3MB (3145728 octets)
   have not yet been added to resource pool 1.  The PPC thus adds
   3145728 abstract units to resource pool 1 (since the multiplier is
   1).  The PPC then acts similarly on the other PPAQ attribute that
   exists in message (17).  That is, the PPC determines that 3000
   seconds of quota for "service A" had already been added to the pool.
   Thus only 1800 out of the 4800 should be additionally added to the
   pool.  Since the applicable multiplier here is 1747.63, the PPC adds
   further 3145734 abstract units to the pool 1.

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

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

   The home AAA server likewise responds with an Access Response.














Lior, et al.            Expires December 25, 2006              [Page 70]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


Authors' Addresses

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

   Email: avi@bridgewatersystems.com


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

   Email: pyegani@cisco.com


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

   Email: kchowdhury@starentnetworks.com


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

   Email: hannes.tschofenig@siemens.com


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

   Email: andreas.pashalidis@siemens.com






Lior, et al.            Expires December 25, 2006              [Page 71]


Internet-Draft        Prepaid Extentions for RADIUS            June 2006


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 procedures with respect to rights in RFC 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" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


Copyright Statement

   Copyright (C) The Internet Society (2006).  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.


Acknowledgment

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




Lior, et al.            Expires December 25, 2006              [Page 72]