Network Working Group                                         P. Francis
Internet Draft                                                  J. Brand
Category: Informational                                       B. Gleeson
                                                          Tahoe Networks
                                                               June 2002


                 Design Issues for Prepaid Data Service
                      draft-francis-prepaid-00.txt


Status of this Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.

   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.Copyright Notice

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

Abstract

   Prepaid voice services have proven to be extremely successful.
   There is a desire to replicate this success for data services.
   Prepaid for data presents new technical challenges, primarily due to
   the wide range of billing that may be applied to data services---
   volume or time billing, differential billing by type of application
   (gaming, steaming, browsing, voice), billing by destination, and
   even billing of specific content.  Furthermore, a single data
   prepaid service may need to accomodate simultaneous network access
   by multiple devices (phone, laptop, PDA).

   This paper discusses design issues for a protocol between a prepaid
   application and the data network element.  It defines an
   architecture and terminology.  It describes basic characteristics of
   data prepaid service, as well as some advanced features.  It
   analyzes the main technical issues, especially performance issues.
   Finally, this paper describes the semantics of an illustrative
   prepaid data service protocol.  This document does not, however,
   specify such a protocol.

Francis et. al.             Informational                    [Page 1]


                  Prepaid Data Service Design Issues         June 2002



Table of Contents

   1  Introduction...................................................2
   2  Terminology....................................................3
   3  Architecture...................................................5
   4  Usage Scenarios................................................7
   4.1  Basic Usage Scenarios........................................7
   4.2  Advanced Usage Scenarios.....................................8
   5  System Capabilities............................................9
   5.1  Operational..................................................9
   5.2  Performance.................................................11
   5.3  Robustness..................................................13
   6  Protocol Design Issues........................................14
   6.1  The Balance/Quota/Usage Model...............................14
   6.2  Identifying Quotas and Usage................................15
   6.3  Counting usage with no quota................................15
   6.4  The token model of quota/usage management...................16
   7  Protocol Semantics............................................17
   7.1  quotaRequest(UID, QID, quotaUsage)..........................18
   7.2  sessionEnd(UID, QID, quotaUsage)............................18
   7.3  quotaAllocate(UID, QID, quotaUsage, serviceState)...........19
   7.4  quotaReturnRequest(UID).....................................19
   7.5  serviceUpdate(UID, serviceState)............................19
   7.6  Example.....................................................19
   8  Security Considerations.......................................23
   9  Acknowledgements..............................................24
   10   References..................................................24
   11   AuthorsÆ Addresses..........................................24
   12   Copyright...................................................25
   13   Intellectual Property.......................................26


1  Introduction

   Prepaid voice services have proven to be extremely successful.
   There is a desire to replicate this success for data services. Data
   billing, however, has a number of significant differences compared
   to billing for voice.  For instance, billing for data is much more
   variable.  A data session billed by the byte can go for hours with
   virtually no usage, then suddenly without warning consume many
   megabytes in a few minutes.  Voice usage varies far less, and
   furthermore the prepaid billing application has advance warning that
   the voice service will be used (i.e. call setup).

   Within a data session, different simultaneous data flows can be
   rated differently, for instance streaming versus MMS (Multi-media
   Messaging Service) versus web browsing.  Voice on the other hand has
   only a single "flow" at a time.


Francis et. al.             Informational                    [Page 2]


                  Prepaid Data Service Design Issues         June 2002

   Data services can potentially have more "sources" of prepaid usage.
   If data and voice services are combined in a single prepaid account,
   then right away there is an extra source as compared to voice alone.
   Further, a data service may involve multiple data connections, for
   instance one for VPN access and another for internet access, or one
   for the PDA and another for the laptop.  An operator may even wish
   to attach billing for content or other transactions to a prepaid
   account, resulting in even more sources with very high variability.

   As described within this document, these differences place new
   technical demands on the prepaid application.  The prepaid
   application has to be smarter about how it allocates the prepaid
   account balance to various sources.  This in turn puts new demands
   on the protocol(s) that operate between the prepaid application and
   the network devices and other sources.

   Existing prepaid data protocols, such as CAMEL [3] in 3GPP [4] and
   early proposals in 3GPP2 TSG-P [5], are patterned after traditional
   voice prepaid services and do not account for the richness and
   variability of data services.  There is a concern that these prepaid
   data protocols will become entrenched, and will be inadequate or
   scale poorly with richer billing models.  In addition, CAMEL runs
   over SS7 and therefore cannot easily be used in data environments
   other than 3GPP.  A prepaid data solution should work equally over
   802.11 hotspots, 3G wireless networks, landline networks, and so on.

   This memo does not specify a protocol.  Rather, it describes the
   characteristics of a rich prepaid data service, and discusses design
   issues and possible solutions.

2  Terminology

   Account:  Also called prepaid account.  This is the subscription
   between the user and the operator.  It starts when the user
   purchases an account, and ends when the account balance runs out and
   the user chooses not to add to the balance.

   Balance:  Also called prepaid balance.  This is the total amount of
   money that the user has put into his prepaid account.

   Data Session:  A session (tunnel) between the User Equipment (UE)
   and a Prepaid Usage Point (PUP) that is a data router or switch.
   Examples include MIP and PPP (IETF and 3GPP2), PDP Contexts (primary
   and secondary) (3GPP), and RP (3GPP2).  There can be multiple
   sessions between the UE and the PUP.

   IP Conversation:  This term is used to refer the set of bi-
   directional IP flows associated with the instantiation of a given
   application flow.  For instance, an FTP file transfer consists of an
   IP flow associated with the control connection, and an IP flow
   associated with the actual data transfer connection.  These IP flows
   collectively are referred to as an IP conversation.

Francis et. al.             Informational                    [Page 3]


                  Prepaid Data Service Design Issues         June 2002


   IP Conversation Spec (IPC Spec):  A description of the IP
   conversation.

   Multi-source prepaid:  This is where multiple services (data, voice,
   etc.) can be used from the same prepaid account.

   Operator:  The provider of the prepaid data service.

   Prepaid Application Database (PPDB):  Conceptually, this is the
   database that stores the account balance for the user as well as
   which quotas have been allocated to which PUPs.

   Prepaid Application Server (PAS):  This is the box that runs (or
   talks to) the prepaid application and interacts with the PUP---i.e.
   allocates quotas to PUPs, tells the PUP whether to allow or deny
   service, and so on.  There may be multiple PASs.  Conceptually, each
   PAS interfaces on the back end with a single PPDB.

   Prepaid Usage Point (PUP):  This is where usage is measured and
   enforced.  The PUP receives quotas from the PAS, and either allows
   or denies usage to the user.  For the most part, this memo focuses
   on PUPs that are data routers or switches.  Other types of PUPs
   include those for voice services and "higher level" data services
   such as content download, location services, etc.

   Quota:  This is the amount of usage (time or bytes) that has been
   allocated to the PUP.

   Rating:  This is the act of translating between money and time or
   bytes usage.

   Replenish:  This is where the user adds additional money to the
   prepaid account, typically after a depletion warning or actual end
   of service.

   Usage:  Measured as time or bytes (in the case of data or voice
   routers/switches), or money (in the case of content or other
   transaction servers).

   Usage Session:  This is usage extended over a period of time, during
   which the PAS allocates quotas.  It begins with authentication and
   an initial allocation, and ends either when no more quotas are
   allocated, or when the user terminates usage (ends the data session
   or voice call, for instance).

   Usage Transaction:  This is usage that takes place at a single point
   in time.  It consists of a single quota allocation for the exact
   amount of the transaction.  Either the entire transaction is
   allowed, or none of it.  Examples include content download or a
   single directory service lookup.


Francis et. al.             Informational                    [Page 4]


                  Prepaid Data Service Design Issues         June 2002

   User:  The entity (usually but not necessarily a person) associated
   with a prepaid account.

   User Equipment (UE):  The device (handset, laptop, etc.) the user
   uses to access the network.  There may be more than one UE active
   for a given user.


3  Architecture

   Figure 1 shows a reference architecture relative to a single userÆs
   prepaid account.  It shows three Prepaid Application Servers (PAS)
   operating with a single Prepaid Application Database (PADB).  The
   user has two User Equipments (UE1 and UE2), for instance a laptop
   and a phone.  UE1 has two data sessions with the first Prepaid Usage
   Point (PUP1) and one with PUP2.  UE2 has a single data session with
   PUP2.


                                     Prepaid
                    PADB             Application
                   / |  \            Database
                  /  |   \
                 /   |    \
                /    |     \
               /     |      \        Prepaid
            PAS1    PAS2    PAS3     Application
             |      | |              Servers
             |      | |  Usage
             |      | |  Sessions
             |      | |
             |      | |
            PUP1    PUP2 ...  PUP3 ...
            | |    / |
            | |   /  |  Data
            | |  /   |  Sessions
            | | /    |
            | |/     |
            UE1     UE2    User Equipment with different UIDs
               \   /
                \ /
               User

     Figure 1:  Reference Architecture (Single Account)


   Although PUP1 has two data sessions with UE1, it can abstract them
   as a single usage session with PAS1.  In other words, PAS1 need not
   be aware of the individual data sessions in the network.  If UE1 and
   UE2 were using the same User Identifier (UID), then PUP2 could also
   abstract its two data sessions as a single usage session.  In Figure
   1, however, we assume different UIDs.  PUP2 does not know that UE1

Francis et. al.             Informational                    [Page 5]


                  Prepaid Data Service Design Issues         June 2002

   and UE2 are attached to the same user and prepaid account, and so
   creates two usage sessions.  Note that the UID could explicitly
   identify the user (i.e. an NAI), or the device (i.e. an MS-ISDN
   number).  We assume that the PAS or PADB is capable of mapping the
   UID into the appropriate user prepaid account.

   Figure 1 also shows a PUP (PUP3) that does not have a usage session
   with a PAS (e.g. because it is a voice switch with no active call
   for the user).  If the user were to access services on that PUP, the
   PUP would then establish a usage session or execute a usage
   transaction with one of the PASs.

   Multiple PASs are assumed for reasons of redundancy and load
   sharing.  A single PADB, on the other hand, is assumed because
   ultimately there must be a single consistent database for the
   account balance and allocated quotas.  The PAS can offload low-level
   protocol functions (retransmissions, duplication detection) from the
   PADB. Note, however, that this memo mainly concerns itself with the
   design of the usage session.  In particular, it says nothing about
   how the PAS/PADB may be implemented, except to say that the PUPs may
   interface with multiple PASs.  The PADB could for instance consist
   of multiple geographically separated systems.

   Figure 2 shows details of the architecture related to roaming.  It
   shows that the PASs, as well as the PADB, are in the home network.
   The  PUP, on the other hand, may be in the visited network or the
   home network.  Though not required by this architecture, it is
   likely that the protocol used for usage sessions will be AAA (RADIUS
   [1,2] or DIAMETER).  In this case, the usage session between an PUP
   in a visited network and a PAS in the home network may traverse a
   broker AAA network.

   The primary difference between accessing the PAS from the home
   network versus the visited network is in terms of deployment
   flexibility.  It is easier to deploy separate AAA servers and PASs
   if the PUP is in the home network, because the PUP may be configured
   with separate PAS and AAA addresses.

   If on the other hand the PUP is in a visited network, then the
   broker AAA, or if none the visited AAA, must be able to distinguish
   between prepaid messages and non-prepaid messages.  While this
   capability can be implemented, it results in more administrative
   coordination.  As such, Figure 2 shows separate AAA and PAS only for
   the case where the PUP is in the home network.

   Finally, note that if AAA is used, then there must be an NAI to
   identify the userÆs prepaid account.  In some cases, there may be no
   explicit NAI in the UE that accesses the network.  For instance,
   there may only be an IMSI or MS-ISDN (phone) number.  In these
   cases, the PUP may need to manufacture an NAI out of these other
   identifiers.  This process is outside the scope of this memo.


Francis et. al.             Informational                    [Page 6]


                  Prepaid Data Service Design Issues         June 2002


      +-------------------------------+
      |            PADB           Home|
      |           / |  \       Network|
      |          /  |   \             |
      |         /   |    \            |
      |        /    |     \           |
      |       /     |      \          |
      |  AAA/PAS  AAA/PAS  PAS    AAA |
      |     |     / |       |    /    |
      |     |    /  |       |   /     |
      |     |   /   |       |  /      |
      |     |  |    |       | /       |
      |     |  |   PUP      PUP        |
      +-----|--|----------------------+
            |  |
      +-----|--|------------------+
      |     |   \           Broker|
      |     |    \         Network|
      |     |     \     (optional)|
      +-----|------|--------------+
            |      |
      +-----|------|--------------+
      |     |      |       Visited|
      |    AAA    AAA      Network|
      |     |      |              |
      |    PUP    PUP             |
      +---------------------------+

    Figure 2:  Reference Architecture showing Roaming


4  Usage Scenarios

   This section describes some of the prepaid data service usage
   scenarios that distinguish data prepaid from voice prepaid (though
   of course there is some overlap).  They are divided into two types,
   basic and advanced.  The basic usage scenarios are those that are
   minimally necessary for a prepaid data service.

4.1 Basic Usage Scenarios

   U1. The user somehow pays the operator in advance for data and
       possibly other services.  (The user may pay for and activate the
       service without using the data service per se.)  When the
       purchased services are used, the service is no longer available
       to the user.  The following represent a number of possible
       service options:
        a. Data only for a single device and a single data session, as
          measured by number of bytes or data session time.  Other
          possible prepaid services, such as voice, must be purchased
          separately.

Francis et. al.             Informational                    [Page 7]


                  Prepaid Data Service Design Issues         June 2002

        b. Data only, but for multiple devices and/or multiple data
          sessions (for instance, one data session for regular internet
          access and another for VPN access).
        c. Data and voice are combined within the same prepaid account.
          Voice services may include special services such as directory
          service etc.
        d. Data, voice, and other "higher level" data services such as
          content download, location services, etc., are combined
          within the same prepaid account.
   U2. The latter three service plans above (b, c, and d) are called
       multi-source, because there are multiple sources of prepaid
       usage.  The user is able to use each service as much or as
       little as he wishes (to a fine level of granularity).  In other
       words, say the user buys a $10 prepaid account for voice and
       data.  The user should be able to use $5 data and $5 voice, $9
       data and $1 dollar voice, or $9.90 data and $.10 voice.
   U3. The user is able to purchase and activate (i.e. replenish) the
       prepaid account through the data service itself.  The data usage
       related to this activity is "free" in that it is not charged
       against the prepaid account per se (which after all may not
       exist or may be depleted).  (Note that the method of
       replenishment per se is out of scope for this memo.  It is the
       free access to the replenishment application that is in scope.)
        a. If the user is accessing the data service when there is no
          balance, then the user has access to the replenishment
          application (and possibly other free services such as
          customer care or emergency services), but no other network
          access.  This is called limited-service.

4.2 Advanced Usage Scenarios

   U4. After replenishing the balance, the user has immediate access to
       data service (i.e. he does not have to disconnect and reconnect
       to obtain data service).
   U5. The prepaid service is able to warn the user when the account is
       near depletion.  As before, this usage of the data service is
       not charged against the account.
   U6. As part of the data service, the network is able to end the
       userÆs data session when the user has been inactive for a period
       of time.  When the prepaid service is time charged, the prepaid
       service charges the user for only to the time of last active
       use, not to the time the data session was actually network-
       terminated.
   U7. The prepaid data service plan includes differential billing
       based on:
       a. Time-of-Day (ToD)
       b. type of application (i.e. streaming, MMS, etc.)
       c. the destination (i.e. premium content),
       d. the QoS offered on different data channels (i.e. PDP
          Contexts).


Francis et. al.             Informational                    [Page 8]


                  Prepaid Data Service Design Issues         June 2002

5  System Capabilities

   This section outlines the capabilities needed in a prepaid data
   system to provide the usage scenarios described above.  The
   capabilities are divided into basic and advanced capabilities
   depending on whether they provide for the basic or advanced usage
   scenarios.  Where it is not self-evident, a rationale for the
   capability is provided.

   The capabilities are categorized into those that derive from
   operational characteristics, those that improve system performance,
   and those that provide robustness.


5.1 Operational

   Basic capabilities:

   BC01.  The PUP is able to request authorization for user access from
       a PAS when the user initiates a data session.  Either the user
       must already be authenticated by the PUP, or the PAS may
       authenticate the user at the same time. (U1)
   BC02.  The PUP is able to do firewalling and policy-based forwarding
       (steering) in order to implement limited-services.  The specific
       firewall and steering configuration (i.e. IPC specs) for
       limited-services does not need to be explicitly set by the PAS--
       -it can be configured in advance by network management because
       it does not change often.  The PUP, however, must have the
       capability to dynamically enable and disable the limited-service
       state (i.e. when the quota expires). (U3)
   BC03.  The PUP is able to identify which packets are going to free
       services (based on the IPC spec), and not count those packets
       towards the quota. (U3, U5)

   Advanced capabilities:

   AC01.  When the PUP is giving limited-service to a given user, the
       PAS is able to command the PUP to switch over to full-service.
       This would occur after the user has replenished his account.
       (U4)
   Rationale:
   This is an important capability, but the reason it is considered
   advanced and not basic is because there is an alternative approach.
   Specifically, the replenishment application can simply instruct the
   user to disconnect and reconnect after replenishment.  When the user
   reconnects, the PAS would be able to allocate a new quota to the
   PUP.  The disadvantage of this approach, in addition to
   inconveniencing the user, is that user network applications that may
   have stayed up during the limited-service period (i.e. a file
   transfer) would likely be torn down after disconnect.


Francis et. al.             Informational                    [Page 9]


                  Prepaid Data Service Design Issues         June 2002

   AC02.  When the PUP terminates the data session due to traffic
       inactivity, the PUP conveys both the termination time and the
       last active time to the PAS.  This allows the PAS to calculate
       session time from the last active time for the purposes of
       returning money to the account. (U6)
   AC03.  The PUP can be configured with differential rating
       information for one or more of the four differential accounting
       types under usage scenario U7.  The PUP may be configured in one
       of two ways:
       1.  The PAS conveys multiple quotas, one for each type of
           differential accounting.
       2.  The PUP is pre-configured with rating information for each
           user (or class of user), and can apply this rating
           information to the (single) quota conveyed to the PAS (non-
           roaming case only).  (This is explained in the following
           rationale.)
   Rationale:
   For the U7 usage scenarios, there are two technical approaches
   (corresponding to capabilities AC03.1 and AC03.2 above).  In the
   first, the PAS can explicitly convey the differential billing
   instructions to the PUP---essentially a list of IPC specs and the
   quota associated with each.  The PUP would keep track of the
   fraction of the quota used by each, and when the sum of the
   fractions totaled to 1, the PUP would consider the quota expired and
   report to the PAS.  For this to work, the PAS must be configured
   with the appropriate IPC spec and rating information.  We can call
   this approach the smart-PAS approach.

   For instance, assume that streaming is rated at $1/Mbyte, and non-
   streaming at $10/Mbyte.   Assume also that the user account is $20.
   The PAS would convey a list of two quotas:
          streaming-IPC Spec; 20 Mbytes
          default;  2 Mbytes

   Say the user then uses 15 Mbytes of streaming (75% of the quota) and
   0.5 Mbytes of non-streaming (25% of the quota).   75% + 25% = 100%,
   and so the PUP would expire the quota and report.

   In the second approach, the PUP can be configured with the IPC spec
   and rating information instead of the PAS.  The PAS would simply
   send a single quota (as normal), and the PUP would increase or
   decrease the quota relative to each IPC spec according to the rating
   information.  We can call this approach the dumb-PAS approach.

   For instance, using the above example, the PUP could be configured
   to know that 10 bytes of streaming traffic equals 1 byte of non-
   streaming traffic.  The PAS would give the PUP a quota of 2 Mbytes,
   and the PUP would understand that this means 20 Mbytes of streaming.

   Both approaches require the same amount of configuration.  The
   smart-PAS approach, however, requires a significantly more complex
   PUP-PAS protocol, and a more complex PAS.  The dumb-PAS approach, on

Francis et. al.             Informational                   [Page 10]


                  Prepaid Data Service Design Issues         June 2002

   the other hand, does not particularly increase the complexity of the
   PUP, since it must be able to classify traffic and do differential
   counting in any event.

   The problem with the dumb-PAS approach is that practically speaking
   it is limited to the non-roaming case (the PUP is in the home
   network).  If the PUP is in the visited network, then it needs some
   way of obtaining the rating information for a given user.  This
   creates a coupling between the management systems of the home and
   visited network.  Such a coupling does not generally exist in
   practice.

5.2 Performance

   A critical aspect of the design of a real-time prepaid data service
   is the load on the PASs, and especially the PADB.  It is important
   that the number of transactions that result in updates to the PADB
   be minimized.  In postpaid billing models, the AAA server receiving
   the accounting messages can simply dump the messages to a disk for
   later processing.  The AAA server does not, for instance, have to
   deal with detecting duplicate or out-of-order messages in real time,
   thus reducing its processing load.

   In prepaid, on the other hand, these functions must be done in real
   time.  This increases performance demands on the PAS (which takes
   care of low-level reliability and duplicate-detection) and on the
   PADB (which must update the database after a quota allocation or
   usage report).  These operations are all relatively expensive, and
   so it pays to try to reduce the number of such operations.

   Basic Capabilities:

   BC10.  The PAS is able to allocate a quota, as measured in session
       time or bytes, to the PUP.  The PAS can also tell the PUP what
       to do when the quota is reached (in addition to reporting to the
       PAS):
       a. Continue full service (full-service).
       b. Keep the data session up, but limit service to replenishment
          and free services (limited-service).
       c. Terminate the data session (no-service).

   Rationale:
   This capability derives from the desire for relative accuracy in
   providing the amount of service that has been purchased.  A simple
   method whereby the PUP provides frequent periodic reports of usage
   (sometimes called hot billing) is inadequate because of the large
   overhead needed to achieve good accuracy.  Even a method whereby the
   PAS tells the PUP to report after a specific amount of usage, but
   where the PUP then waits for further instructions from the PAS (i.e.
   to offer full-service or limited-service) is probably not accurate
   enough.  There may be significant delays between reporting and
   getting further instructions, for instance if the PAS is overloaded.

Francis et. al.             Informational                   [Page 11]


                  Prepaid Data Service Design Issues         June 2002

   Because of the variability of data service, a large amount of data
   (and therefore prepaid balance) may be used in a relatively short
   time.

   The need for the PUP to give limited-service (b) or no-service (c)
   is obvious: if the quota equals the full amount of the account
   balance, then the user must not get full service when the quota
   expires.  Limited-service is used for scenario U3.

   If the quota does not equal the full amount of the balance, then the
   PUP must continue full-service.  There are a few reasons why the PAS
   would allocate a quota for less than the balance.  One is the multi-
   source cases, where there are other PUPs or PUPs that consume the
   prepaid balance (scenarios U1.b, U1.c, and U1.d).  Another is where
   the PAS wishes to know when the user is nearing account depletion so
   that it can warn the user (U5).  A third is where the PAS simply
   wants to limit the size of the quota so as to limit its losses
   should the PUP crash and lose its accounting information (see
   advanced capability AC10, however, for a more efficient approach to
   the warning notification).

   BC11.  If a user terminates the data session before the quota has
       expired, the PUP is able to report the portion used to the PAS.
       This must be reliably acknowledged so that the PAS can insure
       that it is returned to the PADB before acknowledging it.

   BC12.  The PAS is able to reduce the size of a quota already
       allocated to an PUP.  It can do so without first waiting for the
       PUP to contact it.
   Rationale:
   This capability is derived from the multi-source usage scenarios
   U1.b, U1.c, U1.d, and U2.  Scenario U2 says that the user should be
   able to use each multi-source service as much or as little has he
   wants.  For usage session services, the PAS does not know in advance
   how much usage will occur.  For instance, when a user initiates a
   data session, he may browse a little bit once an hour, or start a
   multi-Mbyte streaming session.

   For instance, assume that a user has $20 in his account, good for
   either 100 Mbytes of data or 100 minutes of voice (or any
   combination).  The user starts an always-on data session.  Now
   assume that the PAS allocates a 25 Mbyte quota ($5 worth) to the
   PUP, but that the user uses very little of it.  Subsequently the
   user makes a number of long phone calls, eventually using up 75
   minutes.  The user would like to use the phone more, but cannot
   unless the PAS can shrink the quota at the PUP and reallocate it to
   the voice service.

   One way to solve this problem is for the PAS to allocate smaller
   quotas to the PUP.  For instance, say the PAS allocated only 1 Mbyte
   to the ($0.20, or equivalent one minute of voice).  If the user uses
   very little data, then all is fine---the user can have 99 minutes of

Francis et. al.             Informational                   [Page 12]


                  Prepaid Data Service Design Issues         June 2002

   voice.  If the user uses a lot of data, however, then the PUP must
   quickly request more quotas---100 in total if all $20 are used by
   the data service.  This puts a large and unnecessary load on the PAS
   and PADB.

   If on the other hand the PAS is able to shrink the size of an
   already allocated quota, it can potentially allocate say 50 Mbytes
   to the data session.  If a voice call starts, the PAS could then
   give 50 minutes to the voice PUP.  If the voice call reached 50
   minutes, the PAS could take 25 Mbytes away from the data PUP and
   give another 25 minutes to the voice PUP, and so on.  The best
   strategy for how much to give and take depends on the expected
   traffic and call patterns (i.e., if users on average use more data
   than voice, then the data quotas should probably be larger than the
   voice quotas).  The best strategy to use is out of scope for this
   memo.  The point here is simply that the PAS should be able to
   shrink quotas so that the most efficient strategy, whatever it is,
   may be implemented.

   Advanced Capabilities:

   AC10.  The PAS is able to request interim reports from the PUP to
       occur at specified usage levels (bytes or time).  These interim
       reports do not affect the quota per se.  In other words, by
       sending the interim report the PUP does not for instance reset
       the counters counting against the quota.  Nor does the PAS, by
       receiving the interim report, modify the balance. (U5)
   Rationale:
   Since capability BC10.a can be used to satisfy usage scenario U5,
   this capability (AC10) is strictly speaking not mandatory.  It is
   more efficient, however, to notify the PAS at a certain usage level
   by merely sending an interim report than by expiring a quota.  The
   reason is because expiring a quota results in both reconciling the
   balance in the PADB and notifying the replenishment function,
   whereas the interim report results in only the latter.

5.3 Robustness
   For scalability and robustness reasons, we assume that there may be
   more than one PAS.  The PADB, though modeled as a single database,
   may of course also be implemented as multiple platforms, for
   instance as a cluster of systems.  How this is done is beyond the
   scope of this memo.

   Advanced Capabilities:

   AC20.  The prepaid service works properly in the face of PASs
       crashing.  A PAS failure will at worst result in only a
       temporary quota-state mismatch between PUP and PADB.  Likewise,
       interim reports will not be lost due to a PAS crashing.
   AC21.  If the PUP has been instructed to continue full-service after
       the current quota expires, there is a mechanism to limit the
       usage should it be impossible to obtain another quota (either

Francis et. al.             Informational                   [Page 13]


                  Prepaid Data Service Design Issues         June 2002

       because all PASs are down, or because the PADB is down).  At a
       minimum, the mechanism may be a default setting in the PUP.
       Optionally, it could be a usage limit conveyed by the PAS at the
       time the quota is allocated.  For instance, the usage limit
       would represent the total balance of the user.
   AC22.  A crash of an PUP may result in the loss of the quota it was
       holding.  The PAS/PADB, however, needs to be able to detect that
       this quota was lost.
   AC23.  The crash of an PUP never results in an immediate burst of
       activity on the PADB for all affected users (i.e. trying to
       reconcile all of the lost quota).  At worst, the PAS/PADB may
       see increased load due to the affected users attaching to other
       PUPs which in turn request quotas.


6  Protocol Design Issues

   The PAS-PUP interaction is relatively simple---the PAS allocates
   quotas to the PUP, and the PUP measures usage against them and
   reports back.  Never-the-less, care has to be taken to insure that
   quotas donÆt get lost or duplicated, and to keep the protocol as
   simple as possible.  This section addresses a few such protocol
   design issues.

6.1 The Balance/Quota/Usage Model

   There are three objects of interest in the design of a prepaid
   protocol; the balance, the quota, and the usage (see Figure 3).

   The balance, in units of money, resides at the PADB.  At any given
   time, portions of this balance are allocated to PUPs as quotas.  The
   PADB of course keeps a record of the quota.  The PUP measures usage,
   and deducts it from the quota.  At some point in time, the PUP
   reports the usage to the PADB.  The PADB deducts the usage from the
   allocated quota.  A rating function in the PADB translates between
   the balance (money) and the quota (bytes or time).


   Except for short transient periods, the PADB and the PUP must agree
   on the quota state.  This means that the quota cannot be lost or
   duplicated when transmitted from PADB to PUP, and that the usage
   cannot be lost or duplicated when transmitted from PUP to PADB.











Francis et. al.             Informational                   [Page 14]


                  Prepaid Data Service Design Issues         June 2002


        PUP                          PADB
                                   +-------+
                                   |Balance|
                                   +-------+
                                       |  1. Quotas are deducted
            2. Quota is conveyed       |     from the Balance
               to the PUP              V
      +-------+                    +-------+
      | Quota |<------------(Rated)| Quota |
      +-------+                    +-------+
          | 3. Usage deducts from      |
          |    the Quota (possible     |  5. Usage deducts from the
          V    slight excess)          V     Quota (with excess from
      +-------+                    +-------+ the Balance)
      | Usage |------------>(Rated)| Usage |
      +-------+                    +-------+
                4. Usage is conveyed
                   back to the PADB

      Figure 3.  Balance/Quota/Usage Model


6.2 Identifying Quotas and Usage

   The quotas and usages are being conveyed via the PAS.  Although the
   PAS may keep state during a given transaction (for instance to
   detect duplicates and acknowledge messages), long term it is
   stateless.  A usage report may go through a different PAS than that
   of the preceding quota.  Also, the same usage or quota may be
   transmitted multiple times by different PASs.  For instance, an PUP
   may transmit a usage to a PAS, which updates the PADB.  Before being
   able to acknowledge the usage to the PUP, the PAS may crash.
   Eventually, the PUP will try retransmitting via a different PAS,
   which will report the same usage to the PADB.

   To protect against this sort of failure, quotas and usages must have
   unique identifiers.  The identifiers must be unique in space
   (different PUPs would have to generate different identifiers), and
   for a substantial period of time (i.e. if sequence numbers, the
   sequence number space should be large).  Note that it is somewhat
   easier for the PADB to generate a unique identifier than the PUP.
   The PADB is centralized whereas there are multiple PUPs.  Two PUPs
   may have the same IP address, because they are behind different
   NATs.  They could potentially have the same FQDN (or none at all).
   Multiple PUPs could be generating usage for the same user.

6.3 Counting usage with no quota

   There may be short periods of time when an PUP may be providing
   service and measuring usage even when it has no quota.  This can

Francis et. al.             Informational                   [Page 15]


                  Prepaid Data Service Design Issues         June 2002

   happen during the period of time after the PUP has expired a quota
   and before it receives a new one.

   One approach to this might for the PUP to request a new quota before
   the current one expires.  Even here, however, it is difficult to
   absolutely guarantee that the PUP wonÆt sometimes be without a
   quota.  This is both because the PUP cannot be sure how quickly the
   user might consume bandwidth and deplete the quota, and cannot know
   for sure how long it will take to obtain the new quota.  If there
   are packet losses and the PAS/PADB is very busy, it could take 10s
   of seconds.

   Therefore, any design must include the capability for an PUP to
   count usage with no quota, and to apply that usage to the next quota
   when it is received.  Given that this is true, there seems to be no
   reason to try to complicate the protocol by trying to avoid counting
   usage with no quota.  Rather, as discussed below, it is easier to
   treat counting usage with no quota as a systematic occurrence, not
   an exceptional case.

   Of course, the no-quota periods should be brief, and there should be
   a fallback limit to how much usage the PUP will allow with no quota.

6.4 The token model of quota/usage management

   The above concerns suggest a token model of quota/usage management.
   While this is by no means the only way to manage quotas and usage,
   it appears to be a simple and effective approach.

   In this model, there is conceptually a single token that is handed
   to the PUP with a quota, and handed back to the PADB with a usage
   report.  The PUP can never report usage unless it has a token to
   report with.  The unique identifier for the token is generated by
   the PADB.

   This token model is simpler than a model where the PUP has to
   generate its own unique identifiers for usage reports.  It avoids
   the issue of insuring that different PUPs generate different
   identifiers, and that a single PUP doesnÆt reuse a number (for
   instance because its clock gets set incorrectly).

   In addition, using a single token at a time, rather than allowing
   multiple tokens, also simplifies operation without compromising
   functionality.  (In what follows, to simplify the description, the
   terms "token" and "usage report" are not used.  Instead we speak in
   terms of a quota being handed (or allocated) to the PUP, and the PUP
   "returning the quota" to the PADB.  The unique identifier is called
   the "quota ID".  It is understood that when the PUP returns the
   quota, the usage is reported.)

   There are two ways to design (token-based) quota management:
       1.  Allow the PUP to have 0, 1, or N quotas.

Francis et. al.             Informational                   [Page 16]


                  Prepaid Data Service Design Issues         June 2002

       2.  Allow the PUP to have 0 or 1 quotas.
   Allowing 0 or 1 quota is simpler, without loss of functionality.  It
   simplifies the implementation.  It simplifies the protocol.  It
   avoids questions like "When the PADB needs to shrink the quota,
   which quotas does it shrink?"  (Not that this question would
   necessarily be hard to answer, its just easier not to have to ask it
   in the first place.)  In short, it makes the protocol easier to
   reason about, and therefore easier to design, implement, operate,
   and debug.

   Another simplifying aspect is that the PADB cannot shrink the quota
   in the PUP per se.  Instead, it must ask the PUP to return the quota
   (at whatever usage level exists at the time it is returned).  This
   causes the PUP to request another quota, which can be smaller than
   the previous one.  The reason this is simpler than trying to shrink
   the quota is that it eliminates the need for the new sequence number
   space that would be needed to maintain the ordering of quota
   shrinking requests.  It also reuses the mechanism of the PUP
   requesting a quota, which is in any event needed for when a quota
   expires.

   One might argue that this simplicity is achieved at the cost of
   inefficiency.  Simply shrinking the quota requires only two messages
   (the "shrink your quota" message and its ack), rather than four (the
   "give back the quota" message and its ack, followed by the
   subsequent quota request and allocation).  In practice, however, it
   doesnÆt work this way.  The PADB needs to shrink the quota when
   another PUP requests some of the balance.  In order to know how much
   balance it can allocate, the PADB first needs to know how much of
   the current quota has been used.  Therefore, the shrink message
   would in any event need to be preceded by a "what is your usage"
   message and its answer.  It is therefore no less efficient for the
   PADB to ask the PUP to return the quota, and in the process learn
   how much of the quota is unused.  And, it only requires one new
   message ("give back the quota") rather than two ("what is your
   usage" and "shrink your quota").

7  Protocol Semantics

   This sections outlines the semantics of a protocol between the PAS
   and PUP that satisfies all of the basic capabilities put forth in
   this document, while taking into consideration the above design
   issues.  Note that this is by no means a complete protocol
   specification.  Rather, it serves to clarify and make concrete the
   protocol issues described above.

   The protocol has five messages with the following semantics:

   From the PUP to the PAS:
     quotaRequest(UID, QID, quotaUsage)
     sessionEnd(UID, QID, quotaUsage)


Francis et. al.             Informational                   [Page 17]


                  Prepaid Data Service Design Issues         June 2002

   From the PAS to the PUP:
     quotaAllocate(UID, QID, quotaUsage, serviceState)
     quotaReturnRequest(UID)
     serviceUpdate(UID, serviceState)

   In all messages, the UID is the User ID/Device ID (NAI, MS-ISDN,
   IMSI, etc.).

   The QID is the Quota ID, and may be NULL if there is no quota.

   quotaUsage is measured in bytes or seconds.  In messages from the
   PAS to the PUP, the quotaUsage is the usage at which the quota
   should be returned.  In messages from the PUP to the PAS, the
   quotaUsage is the usage at the time the quota was returned.

   serviceState is one of full-service, limited-service, or no-service.

   The use of these messages are described in the following sections.

7.1 quotaRequest(UID, QID, quotaUsage)

   This message is used by the PUP to both:
   1. Return the current quota and report its usage, and
   2. Request a new quota

   This is the only message that is used to request a quota.  This
   message is sent under the following conditions:
   1. The first data session begins.  In this case the QID is NULL.
   2. The current quota expires.  In this case the quotaUsage is the
     same or slightly more that that of the preceding quotaAllocate.
     It could be slightly more in the case where the quota was measured
     in bytes, and expired midway through a packet.  In this case, the
     remaining bytes may also be reported.
   3. The reception of a quotaReturnRequest command from the PAS.  In
     this case, the quotaUsage is whatever the usage was when this
     quotaRequest is sent.
   4. The reception of a serviceUpdate command from the PAS with a
     serviceState of full-service.  In this case the QID is NULL.

   The reply to this message is the quotaAllocate.

7.2 sessionEnd(UID, QID, quotaUsage)

   This message is used by the PUP to return the last quota when the
   data session is ended by the user.  Unless the quotaUsage is 0, it
   must contain a non-NULL QID.  If the data session ends when the PUP
   does not have a quota but has non-0 usage, the PUP must first
   request and obtain a quota before sending the sessionEnd.

   The reply to the sessionEnd is a simple Ack.


Francis et. al.             Informational                   [Page 18]


                  Prepaid Data Service Design Issues         June 2002

7.3 quotaAllocate(UID, QID, quotaUsage, serviceState)

   This message is used by the PAS to both:
   1. Allocate a quota to the PUP, and indicate the service that the PUP
     should provide when the quota expires.
   2. Deny allocation of a quota to the PUP.

   This is the only means of allocating a quota to the PUP.  It is only
   sent in response to a quotaRequest.

   Allocation is denied if the QID is NULL.  In this case, the
   serviceState is limited-service if the PUP should keep the data
   session up (but provide access only to replenishment and other free
   services), and no-service if the PUP should terminate the data
   session.

   The PUP does not reply to the quotaAllocate.  If the quotaAllocate
   is lost in transit, the PUP will generate another quotaRequest.

7.4 quotaReturnRequest(UID)

   This message is used by the PAS to command the PUP to return its
   current quota.  It is used in two cases:
   1. When another PUP has requested an allocation, this is used to
     shrink the first PUPÆs quota.
   2. When the PUP is on its "last quota" (i.e. the service state will
     go to limited service or no service upon expiry), but the user has
     replenished his account.  The PAS uses this message in essence to
     change the new service state back to full service.  This message
     has the side-effect of replacing the quota with a larger one.
   Upon reception of this message, the PUP stays in full-service state,
   and returns the quota and requests a new one with the quotaRequest
   message.

7.5 serviceUpdate(UID, serviceState)

   This message is used by the PAS to either:
   1. Cause the PUP to request a new quota.  This happens when the user
     replenishes his account while in limited-service.
   2. Cause the PUP to terminate the data session.  This happens when
     the user fails to replenish his account while in limited-service.
     The PUP sends a sessionEnd message.

   Note that this message and the quotaReturnRequest message could
   easily be combined in the same message.

7.6 Example

   This section demonstrates the use of the protocol semantics through
   an example.  The five messages are abbreviated as follows:

     quotaRequest:  qReq

Francis et. al.             Informational                   [Page 19]


                  Prepaid Data Service Design Issues         June 2002

     sessionEnd:    sEnd
     quotaAllocate: qAll
     quotaReturnRequest: qRet
     serviceUpdate: sUpd

   The serviceStates are abbreviated as full, limit, and none.

   Quotas are measured in bytes, and are rated at $1 = 100Kbytes.
   Quotas and usage are shown in units of Kbytes.

   The bracketed number on the left {qqqq} shows the quota minus usage
   for the PUP (in Kbytes).  The  bracketed number on the right {$rr}
   shows the balance in the PADB (in dollars).

   UE           PUP                               PAS
   |<----------->|                                 |
   |Initiate data|                                 |{$20}
   |session      |-------------------------------->|                 a
   |          {0}|  qReq(QID=NULL, use=NULL)       |
   |             |                               Allocate $19
   |             |                               from balance
   |             |<--------------------------------|{$1}             b
   |       {1900}|  qAll(QID=22, use=1900, full)   |
   ~~         | ~~~                               ~~~
              |
   ~~         V ~~~                               ~~~
   |       {1500}|                                 |
   |<----------->|                                 |
   |End data     |                                 |{$20}
   |session      |-------------------------------->|                 c
   |             |  sEnd(QID=22, use=400)          |
   |             |                               Return $15
   |             |                               to balance
   |             |<--------------------------------|{$16}
   |          {0}|  Ack                            |


   a. The user (UE) initiates a data session, and the PUP requests
     authorization and an initial quota with the quotaRequest message.
   b. The user starts with a balance of $20.  Assuming that the user has
     no other consumers of the account, the PAS assigns as much as
     possible to the PUP.  In order to have an opportunity to replenish
     the prepaid account before the balance depletes, however, the PAS
     assigns $19=1900Kbytes.  This will cause the PUP to report when
     there is 100Kbytes left.  Finally, the PAS instructs the PUP to
     give the user full service after the quota is depleted because
     there will still be some remaining balance.  This is all conveyed
     in the quotaAllocate message.  Note that, had this message been
     dropped by the network, the PUP would have retransmitted the
     quotaRequest.
   c. After the user has used 400Kbytes of data, he ends the data
     session.  The PUP reports this usage to the PAS in a sessionEnd

Francis et. al.             Informational                   [Page 20]


                  Prepaid Data Service Design Issues         June 2002

     message.  The PAS rates the usage at $4 and returns $15 to the
     balance.  The PAS acknowledges the PUP, which can then remove its
     record of the quota/usage.

   UE           PUP                               PAS
   |<----------->|                                 |
   |Initiate data|                                 |{$16}
   |session      |-------------------------------->|                 d
   |          {0}|  qReq(QID=NULL, use=NULL)       |                 |
   |             |                               Allocate $15        |
   |             |                               from balance        |
   |             |<--------------------------------|{$1}             d
   |       {1500}|  qAll(QID=33, use=1500, full)   |
   ~~         | ~~~                               ~~~
              |
   ~~         V ~~~                               ~~~
   |          {0}|                                 |
   |          |  |-------------------------------->|                 e
   |          |  |  qReq(QID=33, use=1500)         |
   |          V  |                               Allocate $1
   |        {-10}|                               from balance
   |             |<--------------------------------|{$0}             f
   |         {90}|  qAll(QID=44, use=100, limit)   |
   | /-------------------------------------------\ |
   |/           Replenish Account                 \|                 g
   |\           to $20                            /|{$20}
   | \-------------------------------------------/ |
   |             |<--------------------------------|                 h
   |         {40}|  qRet()                         |
   |             |-------------------------------->|                 i
   |          {0}|  qReq(QID=44, use=60)           |
   |             |                               Return $0.40
   |             |                               to balance, allocate
   |        {-15}|                               $19.40 from balance
   |             |<--------------------------------|{$1}             j
   |       {1925}|  qAll(QID=55, use=1940, full)   |

   d. Sometime later, the user initiates another data session.  Steps a
     and b are repeated, but this time with an allocation of
     $15=1500Kbytes, since there is a smaller balance.
   e. Over time, the user uses 1500Kbytes.  The PUP returns the quota
     and requests another with the quotaRequest message.  The PUP
     continues to give the user full service.
   f. The PAS allocates the remaining $1=100Kbytes from the balance and
     allocates it to the PUP.  This time, however, the serviceState is
     set to limited-service, because after this quota expires the
     balance will be gone.
   g. At the same time, the PAS (or some replenishment app) communicates
     with the user (using some application---chat, SMS, web, email,
     etc.), and the user replenishes its account to $20.
   h. At this point, the PUP is programmed to give limited service when
     the quota expires.  Since the user has replenished, however, this

Francis et. al.             Informational                   [Page 21]


                  Prepaid Data Service Design Issues         June 2002

     is no longer appropriate.  Therefore, the PAS sends a
     quotaReturnRequest command, which causes the PUP to return the
     quota but also to stay in full service mode.
   i. During account replenishment, the user used an additional
     50Kbytes.  Therefore, when the PUP returns the quota, it reports a
     usage of 60Kbytes.  The PAS returns the unused 40Kbytes to the
     balance (as $0.40), resulting in a total balance of $20.40.
   j. The PAS then allocates all but $1 (i.e., $19.40=1940Kbytes) to the
     PUP, similar to step b.  Upon reception of the quotaAllocate
     message, the user has used 15Kbytes, so this is subtracted from
     the allocation of 1940Kbytes, resulting in 1925Kbytes.

   UE           PUP                               PAS
   |       {1925}|                                 |{$1}
   |          |  |                               Voice PUP requests
   |          |  |                               an allocation
   |          V  |<--------------------------------|                 k
   |       {1900}|  qRet()                         |
   |             |-------------------------------->|                 l
   |          {0}|  qReq(QID=55, use=40)           |
   |             |                               Return $19 to balance
   |             |                               allocate $9 each to
   |        {-10}|                               voice and data
   |             |<--------------------------------|{$2}
   |        {890}|  qAll(QID=66, use=900, full)    |
   ~~         | ~~~                               ~~~
              |
   ~~         V ~~~                               ~~~
   |        {700}|                               Voice PUP returns
   |          |  |                               $5 to balance.
   |          |  |                                 |{$7}             m
   ~~         | ~~~                               ~~~
   ~~         V ~~~                               ~~~
   |          {0}|                                 |
   |          |  |-------------------------------->|                 n
   |          |  |  qReq(QID=66, use=900)          |
   |          V  |                               Allocate $6
   |        {-10}|                               from balance
   |             |<--------------------------------|{$1}
   |        {590}|  qAll(QID=77, use=600, full)    |



   k. Next, the voice PUP requests an allocation (for instance, because
     the user starts a voice call).  The PAS commands the voice PUP to
     return the quota.
   l. At this point, the (data) PUP has used an additional 25Kbytes, and
     so reports a usage of 40Kbytes.  The PAS returns the remaining $19
     to the balance for a total of $20.  The PAS allocates half each to
     the voice PUP and the (data) PUP, minus $1 each to allow for a
     replenishment warning.

Francis et. al.             Informational                   [Page 22]


                  Prepaid Data Service Design Issues         June 2002

   m. The voice call ends, and the voice PUP returns $5 to the balance.
     The PAS increases the balance to $7, but does not need to do
     anything else.
   n. Later, the (data) PUP quota expires and the PUP reports 900Kbytes
     of usage.  The PAS allocates $6=600Kbytes to the PUP.


   UE           PUP                               PAS
   |        {590}|                                 |{$1}
   ~~         | ~~~                               ~~~
              |
   ~~         V ~~~                               ~~~
   |          {0}|                                 |
   |          |  |-------------------------------->|                 o
   |          |  |  qReq(QID=77, use=600)          |                 |
   |          V  |                               Allocate $1         |
   |        {-10}|                               from balance        |
   |             |<--------------------------------|{$0}             |
   |         {90}|  qAll(QID=88, use=100, limit)   |                 |
   | /-------------------------------------------\ |                 |
   |/           User doesnÆt                      \|                 o
   |\           replenish account                 /|
   | \-------------------------------------------/ |
   |          {0}|                                 |
   |             |-------------------------------->|                 p
   |             |  qReq(QID=88, use=100)          |
   | /-------------------------------------------\ |
   |/           User chooses not to               \|
   |\           replenish account                 /|
   | \-------------------------------------------/ |
   |             |<--------------------------------|                 q
   |<----------->|  sUpd(none)                     |
   |End data     |-------------------------------->|                 r
   |session      |  sEnd(QID=NULL, use=NULL)       |


   o. Later, the quota expires, the PUP reports, the PAS allocates the
     remaining balance, and the replenishment application contacts the
     user (similar to steps e,f,g).  This time, however, the user does
     not replenish the account.
   p. The PUP quota expires and the PUP reports 100Kbytes of usage.  The
     PUP starts giving only limited service to the user.
   q. The user still does not replenish the account, so the PAS sends a
     serviceUpdate message to the PUP telling it to end service to the
     user.  (Alternatively, the PUP could simply have a timeout.)
   r. The PUP terminates the data session, and reports this to the PAS
     with the sessionEnd message.  Since there is no quota at this
     point, the QID is NULL.


8  Security Considerations


Francis et. al.             Informational                   [Page 23]


                  Prepaid Data Service Design Issues         June 2002

   The security considerations for prepaid data are similar to those
   for AAA accounting.  As per the existing AAA model, this prepaid
   architecture assumes a chain of trust extending between the PAS and
   the PUP, possibly through one or more proxy AAA servers.  All PASs,
   PUPs, and proxy AAA servers are assumed to have pre-established
   trust relationships, using authentication and privacy services
   (IPsec) if necessary.  Any messages received from such a trusted
   system is therefore trusted.  We further assume that such trusted
   messages cannot be intercepted or observed by non-trusted systems.
   As such, it is not necessary to establish pairwise security
   associations between PUPs in visited networks and PASs in home
   networks.

   We assume that the AAA system has authenticated the user to the PUP.
   Therefore it is not necessary for the PAS to separately authenticate
   the user.  For the sake of efficiency, however, the initial quota
   may be piggybacked on the authentication.

   There are no security requirements above and beyond those already
   required by AAA accounting.


9  Acknowledgements

   The authors wish to thank Vern Paxson for his comments on this memo.

10 References

   [1] RFC 2058: "Remote Authentication Dial In User Service (RADIUS)."
       C. Rigney, A. Rubens, W. Simpson, S. Willens. January 1997

   [2] RFC 2059: "RADIUS Accounting". C. Rigney. January 1997.

   [3] 3GPP TS 22.078, "Customized Applications for Mobile Network
       Enhanced Logic (CAMEL)", Stage 1, Rel. 4, December 2001.

   [4] 3GPP, www.3gpp.org

   [5] 3GPP2, www.3gpp2.org



11 AuthorsÆ Addresses

   Joel Brand
   Tahoe Networks
   3052 Orchard Dr.
   San Jose, CA  95134

   Phone: +1 408 944 8624
   Email: jbrand@tahoenetworks.com


Francis et. al.             Informational                   [Page 24]


                  Prepaid Data Service Design Issues         June 2002


   Paul Francis
   Tahoe Networks
   3052 Orchard Dr.
   San Jose, CA  95134

   Phone: +1 408 944 8632
   Email: francis@tahoenetworks.com


   Bryan Gleeson
   Tahoe Networks
   3052 Orchard Dr.
   San Jose, CA  95134

   Phone: +1 408 944 8224
   Email: bryan@tahoenetworks.com


12 Copyright

   The following copyright notice is copied from RFC 2026 [Bradner,
   1996], Section 10.4, and describes the applicable copyright for this
   document.

   Copyright (C) The Internet Society XXX 0, 0000. All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph
   are included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assignees.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERPUPT SOCIETY AND THE INTERPUPT
   ENGIPUPERING
   TASK FORCE DISCLAIMS 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 FITPUPSS FOR A PARTICULAR PURPOSE.


Francis et. al.             Informational                   [Page 25]


                  Prepaid Data Service Design Issues         June 2002


13 Intellectual Property

   The following notice is copied from RFC 2026 [Bradner, 1996],
   Section 10.4, and describes the position of the IETF concerning
   intellectual property claims made against this document.

   The IETF takes no position regarding the validity or scope of any
   intellectual property or other rights that might be claimed to
   pertain to the implementation or use other technology described in
   this document or the extent to which any license under such rights
   might or might not be available; neither does it represent that it
   has made any effort to identify any such rights.  Information on the
   IETF's procedures with respect to rights in standards-track and
   standards-related documentation can be found in BCP-11.  Copies of
   claims of rights made available for publication 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 Secretariat.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights which may cover technology that may be required to practice
   this standard.  Please address the information to the IETF Executive
   Director.


Francis et. al.             Informational                   [Page 26]