Network Working GroupRADEXT A. LiorINTERNET-DRAFTInternet-Draft Bridgewater SystemsCategory: InformationalExpires: April 26, 2006 P. Yeganidraft-lior-radius-prepaid-extensions-08.txtCiscoExpires: 18 January, 2006K. Chowdhury Starent Networks H. TschofenigC. GuentherA. Pashalidis SiemensJuly 17,October 23, 2005PrePaid ExtensionsPrepaid extensions to Remote Authentication Dial-In User Service (RADIUS) draft-lior-radius-prepaid-extensions-09.txt Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire onDecember 29, 2005.April 26, 2006. Copyright Notice Copyright (C) The Internet Society (2005).All Rights Reserved.Abstract This draft presents an extension to the Remote Authentication Dial- In User Service (RADIUS) protocol to support charging for prepaid services. The charging models supported are namely: volume-based charging, duration-based charging and one-time-based charging. Table of Contents 1.Introduction...................................................4 1.1 Terminology................................................5 1.2 Requirements language......................................5Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 6 1.2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2.1. Architectural Model . . . . . . . . . . . . . . . . . 7 1.2.2. Motivation . . . . . . . . . . . . . . . . . . . . . . 11 1.3. A simple use case . . . . . . . . . . . . . . . . . . . . 13 2.Overview.......................................................6 2.1 PrepaidSupported Features . . . . . . . . . . . . . . . . . . . . . . 15 2.1. Multiple Concurrent Services . . . . . . . . . . . . . . . 15 2.2. Resource Pools . . . . . . . . . . . . . . . . . . . . . . 15 2.3. Complex Rating Functions . . . . . . . . . . . . . . . . . 17 2.4. One-time ChargingModels....................................6 2.2 Architectural Model........................................6 2.3 Motivation................................................11. . . . . . . . . . . . . . . . . . . . 17 2.5. Tariff Switching . . . . . . . . . . . . . . . . . . . . . 18 2.6. Support for Roaming . . . . . . . . . . . . . . . . . . . 20 2.7. Dynamic Termination . . . . . . . . . . . . . . . . . . . 20 2.8. Querying and Rebalancing . . . . . . . . . . . . . . . . . 20 3.Operations....................................................13 3.1 General Requirements......................................13 3.1.1 Broker AAA Requirements..............................13 3.2Operations . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.1. Authentication and Authorizationfor Prepaid Enabled SADs.14 3.3Operation . . . . . . . . 22 3.2. Session StartOperation...................................16 3.4Operation . . . . . . . . . . . . . . . . . 24 3.3. Mid-SessionOperation.....................................16 3.5Operation . . . . . . . . . . . . . . . . . . 24 3.4. DynamicOperations........................................18 3.5.1Operations . . . . . . . . . . . . . . . . . . . . 26 3.4.1. Unsolicited Session TerminationOperation............19 3.5.2Operation . . . . . . 26 3.4.2. Unsolicited Change of AuthorizationOperation........19 3.6Operation . . . . 26 3.5. TerminationOperation.....................................20 3.7Operation . . . . . . . . . . . . . . . . . . 27 3.6. Mobile IPOperations......................................20 3.8Operations . . . . . . . . . . . . . . . . . . . 27 3.7. OperationconsiderationsConsiderations for Multipleprepaid services....21 3.8.1Services . . . . . . 28 3.7.1. Initial QuotaRequest................................22 3.8.2Request . . . . . . . . . . . . . . . . 28 3.7.2. QuotaUpdate.........................................22 3.8.3 Termination..........................................23 3.8.4Update . . . . . . . . . . . . . . . . . . . . . 29 3.7.3. Termination . . . . . . . . . . . . . . . . . . . . . 29 3.7.4. DynamicOperations...................................23 3.8.5Operations . . . . . . . . . . . . . . . . . . 30 3.7.5. Support for ResourcePools...........................23 3.8.6 One-Time-Charging....................................24 3.8.7Pools . . . . . . . . . . . . . . 30 3.7.6. One-time Charging . . . . . . . . . . . . . . . . . . 30 3.7.7. ErrorHandling.......................................24 3.9Handling . . . . . . . . . . . . . . . . . . . . 31 3.7.8. AccountingConsiderations.................................25 3.10 SAD Operation............................................25 3.11Considerations . . . . . . . . . . . . . . 31 3.7.9. Interoperability with Diameter Credit ControlApplication25Application . . . . . . . . . . . . . . . . . . . . . 31 4.Attributes....................................................25 4.1Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.1. PPACAttribute............................................26 4.2Attribute . . . . . . . . . . . . . . . . . . . . . . 32 4.2. Session TerminationCapability............................27 4.3Attribute . . . . . . . . . . . . . . 33 4.3. PPAQAttribute............................................27 4.4Attribute . . . . . . . . . . . . . . . . . . . . . . 34 4.3.1. Quota Identifier AVP . . . . . . . . . . . . . . . . . 34 4.3.2. VolumeQuota AVP . . . . . . . . . . . . . . . . . . . 35 4.3.3. VolumeThreshold AVP . . . . . . . . . . . . . . . . . 35 4.3.4. DurationQuota AVP . . . . . . . . . . . . . . . . . . 35 4.3.5. DurationThreshold AVP . . . . . . . . . . . . . . . . 35 4.3.6. ResourceQuota AVP . . . . . . . . . . . . . . . . . . 36 4.3.7. ResourceThreshold AVP . . . . . . . . . . . . . . . . 36 4.3.8. Value-Digits AVP . . . . . . . . . . . . . . . . . . . 36 4.3.9. Exponent AVP . . . . . . . . . . . . . . . . . . . . . 36 4.3.10. Update-Reason AVP . . . . . . . . . . . . . . . . . . 36 4.3.11. PrepaidServer AVP . . . . . . . . . . . . . . . . . . 37 4.3.12. Service-ID AVP . . . . . . . . . . . . . . . . . . . . 37 4.3.13. Rating-Group-ID AVP . . . . . . . . . . . . . . . . . 37 4.3.14. Termination-Action AVP . . . . . . . . . . . . . . . . 38 4.3.15. Pool-ID AVP . . . . . . . . . . . . . . . . . . . . . 38 4.3.16. Pool-Multiplier AVP . . . . . . . . . . . . . . . . . 38 4.3.17. Requested-Action AVP . . . . . . . . . . . . . . . . . 38 4.3.18. Check-Balance-Result AVP . . . . . . . . . . . . . . . 39 4.3.19. Cost-Information AVP . . . . . . . . . . . . . . . . . 39 4.4. Prepaid Tariff Switching(PTS)............................34 4.5 Table of Attributes.......................................36Attribute (PTS) . . . . . . . . . 40 4.4.1. VolumeUsedAfterTariffSwitch AVP . . . . . . . . . . . 40 4.4.2. TariffSwitchInterval AVP . . . . . . . . . . . . . . . 41 4.4.3. TimeIntervalafterTariffSwitchUpdate AVP . . . . . . . 41 5.Security Considerations.......................................37 5.1 AuthenticationTranslation between RADIUS prepaid and Diameter Credit Control . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 5.1. Session Identification . . . . . . . . . . . . . . . . . . 43 5.2. Translation between RADIUS prepaid client andAuthorization..........................37 5.2 Replenishing Procedure....................................37Diameter Credit Control AAA infrastructure . . . . . . . . . . . . 43 5.2.1. PPAC (c<->s) . . . . . . . . . . . . . . . . . . . . . 43 5.2.2. Service Termination Attribute (c->s) . . . . . . . . . 44 5.2.3. Quota Identifier Attribute (c<->s) . . . . . . . . . . 44 5.2.4. Volume Quota Attribute (c<->s) . . . . . . . . . . . . 44 5.2.5. Duration Quota Attribute (c<->s) . . . . . . . . . . . 45 5.2.6. Resource Quota Attribute (c<->s) . . . . . . . . . . . 45 5.2.7. Value Digits Attribute (c<->s) . . . . . . . . . . . . 46 5.2.8. Exponent Attribute (c<->s) . . . . . . . . . . . . . . 46 5.2.9. Volume/Duration/Resource Threshold Attributes (s->c) . . . . . . . . . . . . . . . . . . . . . . . . 46 5.2.10. Update Reason Attribute (c->s) . . . . . . . . . . . . 46 5.2.11. PrepaidServer Attribute (s<->c) . . . . . . . . . . . 48 5.2.12. Service-ID Attribute (s<->c) . . . . . . . . . . . . . 48 5.2.13. Rating-Group-ID Attribute (s<->c) . . . . . . . . . . 48 5.2.14. Termination-Action Attribute (s->c) . . . . . . . . . 48 5.2.15. Pool-ID Attribute (s<->c) . . . . . . . . . . . . . . 49 5.2.16. Multiplier Attribute (s<->c) . . . . . . . . . . . . . 49 5.2.17. Requested-Action Attribute (c->s) . . . . . . . . . . 49 5.2.18. Check-Balance-Result Attribute (s->c) . . . . . . . . 49 5.2.19. Cost-Information Attribute (s->c) . . . . . . . . . . 50 5.2.20. VolumeUsedAfterTariffSwitch attribute (c->s) . . . . . 50 6.IANA Considerations...........................................37Security Considerations . . . . . . . . . . . . . . . . . . . 51 7.Normative References..........................................38IANA Considerations . . . . . . . . . . . . . . . . . . . . . 52 8.Informative References........................................39Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 53 9.Call Flows....................................................39 9.1 Simple Concurrent Services................................40 9.2 One-time Charging.........................................43 Contributor......................................................43 Acknowledgments..................................................43 Author's Addresses...............................................43 Intellectual Property Statement..................................44 Disclaimer of Validity...........................................44 Copyright Statement..............................................45 Expiration Date..................................................45 10.References . . . . . . . . . . . . . . . . . . . . . . . . . . 54 9.1. Normative References . . . . . . . . . . . . . . . . . . . 54 9.2. Informative References . . . . . . . . . . . . . . . . . . 54 Appendix A. Example flows . . . . . . . . . . . . . . . . . . . . 55 A.1. Aû use cases.......................................45 10.1 Simplesimple flow . . . . . . . . . . . . . . . . . . . . . . 55 A.2. A flow with prepaiduse case..................................45 10.2 Support for Multi-Services...............................47 10.3tariff switching . . . . . . . . . . . 58 A.3. ResourcePools...........................................48 10.4 Support for Complexpools and RatingFunctions.....................49 10.5 One-Time-based Charging..................................50 10.6 Support for Tariff Switching.............................51 10.7 Support for Roaming......................................53 10.8 Termination of a prepaid session.........................53 10.9 QueryingGroups . . . . . . . . . . . . . 62 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 69 Intellectual Property andRebalancing Prepaid Resources...............54Copyright Statements . . . . . . . . . . 70 1. Introduction This draft describesextensionsextentions for the RADIUS protocol. These extensions are meant to enable service providers to charge and bill their customers using prepaid accounts. A prepaid service subscriber is a user who has purchased a contract according to which he will receive a particular data service for either a period of time or a quantity of data. In the typical prepaid scenario, the service provider verifies that the subscriber has sufficient funds in his account before delivering the service. Only ifsufficientsuffiecient funds are available is the service provided to the user.Note that the means by which the subscriber obtains funds is outside the scope of this document. Also note that, in some scenarios, the subscriber's account may be used to fund multiple services, some of which may use the extensions defined in this documents, and some may use other mechanisms. While the interworking of the mechanisms described in this document with other mechanisms should be possible and straightforward, how this could be done depends on the external mechanisms and is, as such, outside the scope of this document.The business driver behind the protocol extensions defined in this document is to increase participation (i.e. a service provider's subscriber base) and thus to increase revenues. In particular, the extensions were designed with the following goals in mind.-o Make use of existing infrastructure as much aspossible,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 inreal-time,</t> -real-time, o provide the ability to charge the user's account- chargeprior to service provision,-o protect against revenue loss, i.e. to prevent an end user from obtaining service when the available funds are not sufficient,-o protect against fraud, and-o beas widelydeployable over dialup,wirelesswired andWLANwireless networks. The architecture between the entities that execute the RADIUSprotocolsprotocols, with the extensions defined in thisdocumentdocument, assumes that the rating of chargeable events does not occur in the element that provides the service. Instead, the rating may be performed at a dedicated server, termed theôprepaid"prepaid enabled AAAserveröserver" or simplyôprepaid serverö."prepaid server". Alternatively, the actual rating may occur in an entity behind this prepaid server. Furthermore, business logic may dictate a time-dependent tariff model, for example that the price for a service may switch at 8pm from a high to a low tariff. The extensions defined in this document support such scenarios. Furthermore, this documents assumes an architecture where a`quota server'"quota server" is available which, through co-ordination with the rating entity and a centralized account balance manager, is able to provide a quota indication for a particular user when requested. This quota server may or may not coexist in the prepaid server.1.11.1. Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [1]. Furthermore, this document uses the following terms: Network Access Server (NAS): As defined inRADIUS. (NAS)RADIUS [2]. PrepaidClient(PPC)client (PPC): The entity which triggers the RADIUS messageexchangeexchange, including the prepaid extensions defined in this document. The PPC typically resides in the NAS. PrepaidServer(PPS)Server (PPS): The entity that interacts with thePrepaid ClientPPC using the RADIUS prepaid extensions defined in this document. HomenetworkNetwork: Theentitynetwork whichmaintainscontains theuserÆsuser profile and the user's prepaid account.WLAN Wireless Local Area Network Service Event Access Service The service that is provided to the user when the user is authenticated and authorized. Furthermore, the following terms are used in this document. Mobile IP and AAA terminology: Home agent (HA), Home network, Home AAA (HAAA), Broker AAA (BAAA), Visited AAA (VAAA) and Foreign Agent (FA) 1.2 Requirements language In this document, several words are used to signify the requirements of the specification. These words are often capitalized. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. 2.1.2. Overview This section provides an overview of the prepaid chargingmodels,models andtheir associatedarchitectures,thatwhich are supported by the extensionsproposeddescribed in thisdocument. 2.1 Prepaid Charging Modelsdraft. A number of models of how to charge customers for data services in a prepaid manner are supported, as follows..o Volume-basedcharging (VBC):charging: (e.g. 2Cents/KiloByte) .Cents/KiloByte). o Duration-basedcharging (DBC):charging: (e.g. 3Cents/minute) .Cents/minute). o Subscription-basedcharging (SBC):charging: (e.g.Dollars/month) .Dollars/month). o Event-basedcharging (EBC):charging: (e.g. 7 Cents/URL or email)Whether. This draft assumes that the user maintains a prepaid account with his home network. However, whether this account is a dedicated prepaid account ora general accountnot (such as a current bank account) is outside the scope of this document.2.2Similarly, the means by which the subscriber obtains funds is also outside the scope of this document. In some scenarios, the subscriber's account may be used to fund multiple services, some of which may use the extensions defined in this documents, and some may use other mechanisms. While the interworking of the mechanisms described in this document with other mechanisms should be possible and straightforward, the specification of how this could be done depends on the external mechanisms and is, as such, outside the scope of this document. 1.2.1. Architectural Model Thearchitectural model assumedprotocol extensions described in thisdocument encompassesdraft assumes that the followingentities. (1)entities are present in the network architecture. o Service Access Device (SAD): This entity provides a data service to the users, and typically coincides with the NAS. The SAD executes the RADIUS client which, for the purposes of this document, is termed thePPC."PrePaid Client" (PPC). When the prepaid service is used the SAD collects service event information and reports it while or after services are provided to the user. This event information is sent to the PPS using the extensions defined in this document.(2)o The PPS: The RADUISserver.server that supports the prepaid extensions defined in this document. If real-time credit control is required, the PPC (SAD) contacts the PPS with service event information included before the service is provided. The PPS performs a credit check and allocates a portion of available credit to the service event.(3)o The rating entity: This entity converts the credit that is allocated by the PPS into a time or volume amount, called theôquotaö."quota". This quota is then returned to the requesting PPC (SAD) (via the PPS). The rating entity may also determine that during service provision a tariff switch will occur. In this case the rating entity will include details of when exactly tariff switch will occur. The requesting SAD (PPC) monitors the provision of the service according to the instructions returned by the PPS. After service completion or on a subsequent request for service, the PPS deducts the corresponding amount of credit from the user account. When a user terminates an on-going service, the PPC informs the PPS with a suitable indication about the unused portion of the allocated quota. The PPS is then able to refund the user account appropriately. Multiple PPSsMAYmay be deployed for reasons of redundancy and load balancing. The system MAY also employ multiple rating servers. Prepaid accountsMAYmay be located in a centralized database. The detailed architecture of the system and its interfaces are outside the scope of this specification. accounting +------------+ +-----------+ protocol +--------------+ | User|<----->||<---------->| Service | | | | ||IEEE 802.1x| Access |<------------>| Accounting | | Device | PANA | Device |<-----+ | Server | +------------+ IKEv.2 +-----------+ | +--------------+ ... etc (PPC) | | | +--------------+ +------>| Prepaid | prepaid | Server | protocol +--------------+ Figure11: BasicPrepaid Architectureprepaid architecture The PPS and the accounting server in this architecture are logical entities. The real configuration MAY combine them into a single host. The SADMUSTmust have the ability to meter the usage for a prepaid data session. This usage includes time or volume (e.g. number of bytes).In roaming scenarios using mobile IP the PPC may run on the Home Agent. Furthermore, theThe device running the PPC may also haveôDynamic"Dynamic SessionCapabilitiesöCapabilities" such as the ability to terminate a data session or change the filters associated with a specific data session by processingôDisconnectö"Disconnect" messages andôChange"Change ofAuthorizationöAuthorization" messages as per[RFC3576].RFC 3576. This document assumes that the PPS is used as the AAA server. There are three types of AAA server, as follows.(i)o The AAA server in the home network (HAAA), which is responsible for authentication of the subscriber. In addition, the HAAA communicates with the PPS using the RADIUS protocol in order to authorize subscribers.(ii)o The AAA server in the visited network (VAAA) which exists only in roaming scenarios and is responsible for forwarding the RADIUS messages to the HAAA. The VAAA may also modify the messages. Note that, in certain roaming deployments, the visited network may be connected to the home network via one or more broker networks.(iii)o The AAA server in one of the aforementioned broker networks (BAAA), which is responsible for forwarding messages and does not play an active role in the prepaid data service delivery. A BAAA obviously exists only in those roaming deployments where the VAAA and the HAAA are connected via the BAAA of a broker network. This document assumes that the PPS communicates with the HAAA for the purposes of authorisation. Additionally, the PPS interfaces to entities which- Keepo keep thesubscriberÆssubscriber's account balance (balance manager),- Rateo rate access service requests in real-time (Rating Engine), and- Manageo manage quota for a particular prepaid service (Quota Server). Three deployment scenarios are presented in the remainder of this section. The first scenario is depicted in Figure 2. In this scenario, the SAD, which runs the PPC, the HAAA, and the PPS are located in the same provider network. TheSubscriber Devicesubscriber's device establishes a connection with one of possibly multiple SADs in the network. The selected SAD communicates with a HAAAserver. However, in order to provide redundancy, multiple HAAA may be available. The network has oneserver (directly ormore PPSs.indirectly). The interface between the HAAA and the PPS is implemented using the RADIUS protocol together with the extensions described in this document. However, in cases where the PPS does not implement the RADIUS protocol, the implementation would have to map the requirements defined in this document to a functionally equivalent protocol. +------+ +-----+ | | | | +--------+ +--------+ +--| HAAA |--+--| PPS | | | | | | | | | | | | Subscr.| | Service| | +------+ | +-----+ | |---| Access |--+ | | Device | | Device | | +------+ | +-----+ | | | | | | | | | | +--------+ +--------+ +--| HAAA |--+--| PPS | | | | | +------+ +-----+ Figure22: BasicPrepaid Access Architectureprepaid access architecture The second scenario, depicted in Figure 3, is based on a static roaming architecture that is typical of a wholesale scenario for Dial-Up users or a broker scenario used in Dial-Up or WLAN roaming scenarios. +----+ +----+ +----+ +-----+ | | | | | | | | +------+ +-------+ +-|VAAA|-+-|BAAA|-+-|HAAA|-+-| PPS | | | | | | | | | | | | | | | | | |Sub | |Service| | +----+ | +----+ | +----+ | +-----+ | |--|Access |-+ | | | |Device| |Device | | +----+ | +----+ | +----+ | +-----+ | | | | | | | | | | | | | | | | +------+ +-------+ +-|VAAA|-+-|BAAA|-+-|HAAA|-+-| PPS | | | | | | | | | +----+ +----+ +----+ +-----+| Visited | |Broker | | Home | | Network | |Network| | Network |Figure33: StaticRoaming Prepaid Architecture Asroaming prepaid architecture Like in the basic prepaidarchitecturearchitecture, thesubscriberÆssubscriber 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. Theremaybemay be morethenthan one Broker Network between the Visited Network and the Home Network. The Home Network is the same as in the architecture depicted in Figure 2.The third scenario is a roaming scenario where the network utilises Mobile-IP. It is depicted Figure 4. In this scenarioBroker AAA (BAAA) servers MUST support themobile device moves between networks that use different technologies suchMessage-Authenticator(80) attribute asbetween WLAN and Broadband. Mobile-IP addresses this type of mobility and therefore we need not be concerned with the underlying network technology. +------+ +-------+ +----+ +----+ +----+ +-----+ | | |Service| | | | | | | | | |Subscr| |Access +-----|VAAA|--|BAAA|--|HAAA|--| PPS | | |--|Device | | | | | | | | | |Device| | (FA) +--+ +----+ +-+--+ +----+ +-----+ | | | | | | +------+ +------ + | | | | | +----+ | | | | | |ROAMS +------------------+ HA | | | | | V +----+ | +----+ +------+ +-------+ | | | | | | |Service| +-|VAAA+------+ | |Subscr| |Access | | | | | | |--|Device +-+ +----+ | |Device| | (FA) | | | | | +------------------------+ +------+ +-------+ Figure 4 Roaming using Mobile-IP and pre-paid enabled SADs In Figure 4, the Subscriber Device establishes a session with the SADdefined in RFC 2869. If they are used, they forward theforeign network. The setup for this access service is identicalRADIUS packets as usual to thecases covered above. Note that the SAD may be collocated with the Foreign Agent (FA) if Mobile-IPv4 is being used. As the subscriber device moves, it establishesappropriate RADIUS servers. Accounting messages are not needed to deliver aconnection with another SAD possibly in another foreign network. Theprepaiddata service should continue toservice. However, accounting messages can beavailable. When a device associatesused toanother SAD it MUST re-authenticate at the new SAD and de-associate or log off from the old SAD. Furthermore, any unused quota at the old SAD MUST be credited intokeep thesubscriberÆs account immediately. This hasPPS up tohappen immediately because otherwise, if the subscriberÆs funds are low, he may be denied service at the new SAD. Note that, if the SADs communicate directly with each other then there could be a waydate as toaccelerate the handoff procedure. In particular,what is happening with thesubscriber could be refunded more quickly. Unfortunately, handoff procedures are specific toprepaid data session. Therefore, a BAAA SHOULD deliver RADIUS Accounting messages using theunderlying network technologies and vary significantlypass through mode described interms of delay. 2.3RFC 2866. 1.2.2. MotivationIt has been asked ôWhyWhy not use existing RADIUS attributes to construct a protocol for prepaid scenarios? Thiswill allow uscould lead tohavea solutionwith existing devices withoutwhere no codemodification.öhas to be modified at existing devices. It is indeed possible to construct a solution for prepaid billing scenarios using existing RADIUS attributes. The RADIUS server would send an Access-Accept message containing a Session-Timeout(27) and include a Termination-Action(29) in the RADIUS-request. Upon receiving the Access-Accept message, the NAS would meter the duration of the session and upon termination of the session the NAS would generate an Access-Request message again. The RADIUS server would then re-authenticate the session and reply with anAccess- AcceptAccess-Accept message indicating the amount of additional time in aSession-Timeout(27).Session- Timeout(27). Alternatively, itwould respondscould respond with an Access-Reject message if there were no more resources in theuserÆsuser account. Moreover, if the user terminates the session prematurely, the NASwould recover any unused time fromcould indicate this in the accountingstream. There are several problems with suchstream so that unused funds can be returned into the prepaid user account. Unfortunately, the above "solution" has asolution: -number of problems, including the following. o It only supports time-based accounting. The solution presented in this document supports both time and volume based prepaid.-o Using accounting messages to recoup unused time may be problematic because RADIUS accounting messages are not delivered in real-time. A RADIUS server may store-and-forward accounting messages in batches. Thus, relying on accounting messages for the purposes of prepaid may cause revenue leakage. The solution presented in this document does not rely on AccountingPacketspackets at all. It usesAccess-Request, messagesAccess-Request messages, whichdoare required to flow through any network in real-time.Delaying accounting messages may cause revenue leakage. -o Session-Timeout(27) is not a mandatory attribute. If a prepaid subscriber is being serviced by a NAS that does not adhere to Session-Timeout then that subscriber may use the service for an undetermined period of time.-o Termination-Action(29) presents its own issues. Firstly the behaviour of Termination-Action(29) is not mandatory. Secondly, according toRFC2865,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.BecauseDue to the fact that Termination-Action occurs when theServiceservice iscompletedcompleted, it is unclear whether or not user experience would beaffected.affected if this attribute would be used in a prepaid scenario. The RADIUS server might even allocate a new IP address to thesubscriberÆs device. Furthermore,subscriber device after a Termination-Action. Also, the RADIUS server has no way of telling whythea given Access-Request message was generated. The RADIUS server might have to wait for the corresponding accounting packet to determine thereason for this Access-Request message.reason. Finally,re-authenticatingre- authenticating the subscriber may take too long. The solution presented in this document allows quota replenishing to occurin an undisruptive manner from thewithout affecting userperspective.experience. No re-authentication is required and quotas can be negotiatedprior tobefore the available creditrunningactually runs out.-o Due to the fact that the standard RADIUS attributes are not mandatory, the correct prepaid operation is really an act of faith on the part of the RADIUS server. If Session-Timeout(27) and/or Termination-Action(29) are not supported, the prepaid subscriber might be able to obtain the service for free. The solution described in this document requires that a prepaid-aware SAD informs the RADIUS server, regardless of whether or not the latter supports the prepaid extensions. The RADIUS server can then determine whether or not service should be granted. For example, if a prepaid subscriber is connected to a NAS that does not support prepaid, the RADIUS server can either instruct the NAS to tunnel the traffic to another entity in the home network (e.g. the Home Agent) that supports prepaid, or it provide only a restrictedservice.]service. The solution presented in this document requires the support of two mandatory and one optional attribute. Furthermore, it does not require a great amount of additional code at a NAS that already supports time or volume metering. The solution requires that RADIUS entities advertise their prepaid capabilities in an Access-Request and that they generate an Access-Request Authorize-Only packet to obtain more quota when or before the current quota is used up. It also requires the NAS to send an Access-Request with Authorize-Only when the session terminates in order to refund thesubscriberÆs account appropriately. The solution providedsubscriber account. 1.3. A simple use case This section describes the sequence of events inthis document is extensible. Fora simple RADIUS prepaid transaction. 1. When an end host attaches to a network (for example, using PPP or PANA), as usual, theprotocol can be extendedNAS (SAD) that is servicing the subscriber uses the AAA infrastructure tosupport tariff switchingauthenticate andother prepaid business models.authorize the subscriber (if such network accesss authentication is required). 2. Theextensions described in this document were designed based onSAD sends anumber of use cases and scenarios. An overview of these can be found in Appendix A. 3. Operations 3.1 General Requirements 3.1.1 Broker AAA Requirements Broker AAA (BAAA) servers MUST supportRADIUS Access-Request to theMessage-Authenticator(80) attribute as definedAAA server in[RFC2869]. If they are used, they forward the RADIUS packets as usualorder to authenticate and authorise theappropriate RADIUS servers. Accounting messages are not neededsubscriber with respect todeliver a prepaidthe requested service.However, accounting messages can be used to keepThe Access-Request contains thePPS up to date as to what is happening withsubscriber's credentials and may contain the prepaiddata session. Therefore, a BAAA SHOULD deliver RADIUS Accounting messages usingcapabilities of thepass through mode described in [RFC2866]. 3.2 Authentication and Authorization forSAD. PrepaidEnabled SADs The SAD initiatescapabilities MUST be included if the SAD supports them. 3. The authenticationand authorizationprocedureby sending a RADIUS Access-Request to the HAAA. Ifproceeds. This may involve several message exchanges such as in EAP [RFC2284]. Once theSADsubscriber hasPPC capabilities, it MUST includebeen successfully authenticated, thePPAC(TBD) attribute inhome AAA server determines that theRADIUS Access-Request.subscriber is a prepaid subscriber and requests authorisation from the PPS. ThePPAC(TBD) attribute indicates torequest MUST include thePPS whichprepaid capabilitiesare possessed byof the serving SAD.These are required in order to complete4. The PPS validates that the subscriber has a prepaidauthorization procedure. Ifaccount and that the account is active. It further validates that the SADsupportshas theDisconnect-Message orappropriate prepaid capabilities. If all is in order, theChange-of- Authorization capabilities, then it SHOULD includePPS authorises theDynamic- Capabilities attribute. In certain deployments, there may be other wayssubscriber toterminate a data session, or change authorization of an active session. For example, some SADs provide a session termination service via Telnet or SNMP. In these cases,use theAAA server MAY addnetwork. Otherwise it rejects theDynamic-Capabilities messagerequest. The decision is sent to theAccess-Request. Upon receiving the Change-of- Authorization message, theAAAserver would then be responsible for terminatingsystem. The response includes attributes to indicate thesession usingallocation of a portion of themeanssubscriber credit. This portion is called the "initial quota" (in units of time or volume) and optionally a threshold value. Note thatare supported byonly a portion of thedevice. Ifuser's funds is allocated because theauthentication procedure involves multiple message exchanges (asuser may be engaged inEAP), the SAD MUST includeother services that may draw on thePPAC(TBD) attribute andsame account. For example, theDynamic-Capabilities attribute (if used)user may be engaged inat leasta data session and a voice session. Although these two services would draw from thelast Access-Requestsame account, they form separate parts of theauthentication procedure. The Access-Request is sent as usual to the HAAA. The packet may pass through one or more BAAA. Onceoverall system. If theAccess-Request arrives atentire quota was allocated to theHAAA,data session then theHAAA authenticatesuser would have no more funds for a voice session. 5. The AAA system incorporates thesubscriber. If this fails,attributes received from theHAAA sendsPPS into anAccess-RejectAccess-Accept message that it sends to theclient. If authentication succeeds, the HAAA determines whether or notSAD. Note that thesubscriber is a prepaid subscriber. (How this is doneAAA system isbeyondresponsible for authorizing thescope of this document.) Ifservice whereas thesubscriberprepaid system isnot aresponsible for prepaidsubscriber, thenauthorization. 6. Upon receiving theHAAA responds as usual with an Access-Accept or an Access-Reject message. IfAccess-Response, the SAD starts thesubscriber is aprepaidsubscriber thendata session and meters theHAAA SHALL forwardsession based on time or volume, as indicated in theAccess-Request tomessage. 7. Once thePPSusage forfurther authorization. The Access-Request containsthePPAC(TBD) attribute and the Dynamic- Capabilities attribute if one was included. The User-Name(1) attribute MAY be set to a value that representssession approaches thesubscriberÆs identifier. This attribute is usedallocated limit (as expressed by thePPS to locate his account. For added security,threshold), theHAAA MAY also setSAD will request additional quota. Re-authorization for additional quota flows through theUser- Password(2) attributeAAA system to thepassword used between the HAAA and thePPS. The PPSlocatesrevalidates thesubscriberÆssubscriber account andauthorizes him. During this procedure,subtracts thePPS takes into considerationpreviously allocated quota from theSAD PPC Capabilities. Upon successful authorization,current balance. If there is remaining balance, it reauthorizes thePPS generatesrequest with anAccess-Accept containing the PPAC(TBD) attribute andadditional quota allotment. Otherwise, thePPAQ(TBD) attribute. The PPAC attribute returned toPPS rejects theclient indicatesrequest. Note that thetypereplenishment ofprepaid service to be provided for the session. The PPAQ(TBD) attribute includesthefollowing. - The QUOTA-ID, whichquota isset by the PPS toaunique value that is used to correlate subsequent quota requests; - Volume and/or Time quotas, which are setre-authorization procedure and does not require the subscriber tovalues representingauthenticate himself again. 8. Upon receiving aportionre-allotment of thesubscribers credit; - It MAY contain a Time or Volume Threshold that controls whenquota, the SADshould request additional quota; - The IP address ofcontinues to provide theServing PPS and one or more alternative PPSs. Thisdata service until the new threshold isused byreached. If theHAAA to route subsequentrequest for additional quotareplenishing messages to the appropriate PPS(s). Note: Idle-Timeout(28) cancannot beused to triggerfulfilled then thepremature termination of a prepaid service, for example as a result of inactivity. Depending on site policies, after failed authorization,SAD lets thePPS may generate an Access-Reject to terminatesubscriber use thesession immediately.remaining quota and terminates the session. Alternatively, instead of terminating thePPSsession, the SAD maygenerate an Access-Accept blocking some or all ofrestrict thetraffic and/or redirect some or all ofdata session such that thetraffic to a location tosubscriber can only reach afixedparticular web server.(This feature could be used, for example,This web server maybe used topromptallow theusersubscriber to replenishtheir account.) Blocking of traffic is achieved by either Filter-ID(11) or NAS-Filter-Rule(see Redirect I-d). Redirection is achieved by sending Redirect-Id or Redirect-Rule, HTTP Redirection defined in the Redirect I-d. The time period before the session is blocked/redirected is specified by the Session-Timeout(27) attribute. Upon receiving an Access-Accept from the PPS, the HAAA appends the usual service attributes and forward the packethis account. This restriction can also be used to allow new subscribers tothe SAD. The HAAA SHOULD NOT overwrite any attributes alreadysetbyup prepaid accounts in thePPS. Iffirst place. 9. Should theHAAA, receives an Access-Reject message, it will simply forwardsubscriber terminate thepacket to its client. Depending on site policies, ifsession before theHAAA does not receive an Access-Accept or an Access-Reject message fromquota is exhausted, thePPS it MAY do nothing or send an Access-Reject or an Access- Accept message backremaining balance allotted to thePPC. 3.3 Session Start Operation The start of thesession MUST be refunded into his account. Note that the subscriber may have disconnected while the Access Device isindicated bywaiting for thearrival of an Accounting-Request(Start) packet.initial quota. TheAccounting-Request (Start) MAYentire allocated quota will beroutedcredited back to thePPS suchsubscribers account in this case. Also note thatit can confirmtheinitial quota allocation. Note thatPPS maintains session state for therole ofsubscriber. This state includes how much account balance was allocated during thePPS is not to record accounting messageslast quota enquiry andtherefore it SHOULD not respond with an Accounting Response packet. If the PPS does not receivehow much is left in theAccounting-Request(start) messageaccount. Therefore, itwill only knowis required that all messages about the sessionhasreach the same (and correct) PPS. For a simple message flow, along the lines of this use case, please see Appendix A. 2. Supported Features This section describes the features that are supported by the prepaid extensions defined in this draft. 2.1. Multiple Concurrent Services Examples of services that the user may be using are browsing the web, participating in a VoIP conversation, watching streaming video and downloading a file. Some operators may want to distinguish between these services. Some services are chaged at different rates and services may be metered differently. Therefore, the prepaid solution needs to be able to distinguish services, and allocate quota to the services using different unit types (time, volume) and allow for those quotas to be consumed at different rates. +---------+ | Session | +---------+ | 1 V N +--------------+ 1 : 1 +-------+ | Service |------>| Quota | | (service-Id) | +-------+ +--------------+ Figure 4: Multiple services within a single session As shown in Figure 4, a session may be associated with multiple (N) services. Each service is identified by a service identifier (Service-ID). The format of the Service-ID is not in the scope of this document but it could be expressed as an IP flow using the 5-tuple {Source-IP and Port, Destination-IP and Port, protocol type}. Each service is associated with a quota metric. An example message flow that involves multiple such services within a single session is given in the appendix. 2.2. Resource Pools When working with multiple services a new problem arises because one service may consume its quota faster than another service. When the user balance is close to exhaustion, a situation could arise where one service is unable to obtain quota while another service has plenty of quota remaining. Unless the quotas can be rebalanced, the SAD would then have to terminate the former service. Moreover, if each service generates a certain amount of RADIUS prepaid traffic. In an environment with many users and chargarble services, this amount of traffic is considerable and could leads inefficiency. One method to circumvent the above situation is to use a so-called "resource pool". Resource pools enable the allocation of resources to multiple services of a session by allocating resources to a pool and have services draw their quota from the pool at a rate appropriate to that service. When the quota that has been allocated to the pool is close to exhaustion, the entire pool (rather than individual services) is replenished. +-----------+ | Service-A |-----+ +--------+ +-----------+ | Ma | | +-------->| | | Pool | +-------->| (1) | +-----------+ | Mb | | | Service-B |-----+ +--------+ +-----------+ Figure 5: Resource pool example As shown in Figure 5, Service-A and Service-B are bound to Pool(1). Ma and Mb are the pool multipliers (that are associated with Service-A and Service-B respectively) that determine the rate at which Service-A and Service-B draw from the pool. The pool is initialized by taking the quota allocated to service n and multiplying it by Mn. Therefore, the amount of resources allocated to a pool is given by Poolr = Ma*Qa + Mb*Qb + . . ., where Qn denotes the amount of quota that is allocated to service n. Further, the pool is considered to be empty if Poolr <= Ca*Ma + Cb*Mb + . . ., Figure 6 where Ca and Cb are resources consumed by Service-A and Service-B respectively. Note that the resources assigned to the pool are not associated with a metric. That is, Service-A can be rated at $1 per MB and Service-B can rated at $0.10 per minute. In this case if $5 worth of resources are allocated for service-A to the pool and if Ma = 10, then 50 units would be placed into the pool. If a further $5 are allocated for service-B to the pool, then M=1 and 50 units are deposited into the pool. The pool would then have a total sum of 100 units to be shared between the two services. The PPC would then mater the services such that each Mbyte used by Service-A will draw 10 units from the pool and each minute used by Service-B will draw 1 unit from the pool. 2.3. Complex Rating Functions The rating of a service can be quite complex. While some operators follow linear pricing models, others may wish to apply more complex functions. For example, a service provider may wish to rate a service such that the first N MBytes are free, then the next M Mbytes are rated at $1 per MB and volume above (N+M) MB be rated at $0.50 per MB. Such a function could be implemented by repeated message exchanges with the prepaid system. To avert the need to exchange many messages while still supporting such complex rating functions, the notion of a "Rating Group" is introduced. A Rating Group are typically configured at the SAD. As shown in Figure 7, a Rating Group is associated with one or more services and defines the rate that the services associated with the Rating Group consume an allocated amount of quota. +--------------+ +--------------+ +-----------+ N 1 | | M 1 | Resource Pool| | Service-A +---------->| Rating Group |------>| or | +-----------+ | | | Quota | +--------------+ +--------------+ Figure 7: Example of a rating group During the usage of a service that is associated with a Rating Group, the PPC sends the ID of the Rating Group to the PPS. The PPS authorises the Rating Group by allocating a quota to it and optionally assigning it to a Resource Pool. When an additional service that belongs to an already authorised Rating Group is instantiated, the PPC does not need to authorize this service. This effectively means that the PPC meters the service such that it draws from the already allocated quota. Therefore, no RADIUS messages need to be exchanged in this case. This limits the amount of traffic between the PPC and the PPS. An example of a flow that uses Rating Groups is given in Appendix A.3 2.4. One-time Charging One-time charging is a mode of operation of where the RADIUS prepaid extensions are used for charging of a service that is provided instansteneously, i.e. without an ongoing session. An example of such an event is the purchase of a ring-tone. Subscription based services can also be modeled as a one-time event. In this case the one-time service event is the purchase of a subscription. For a given user, one-time-based charging may occur in parallel with other charging models. For example, the subscriber may access a website which is metered (based on time or volume) while he also purchases the right to use a ring tone (a one-time-based event). Note: it is up to the service providers to decide whether or not the user will be charged for the download of the tone and also be charged for the time and volume required to download the ring-tone. The facilities provided by this document gives the service provider the capability to achieve their service charging business goals. For example, should the service provider choose not to charge for the download volume or time, then they can treat the download IP flow as a separate service that is not subject to charging. The SAD signals one-time-based charging to the PPS with an indication that identifies the service and the units that should be debited from the user account. A SAD may decide to perform one-time-based charging for an event that was triggered by an unauthenticated user. In this case case the SAD will have to authenticate the user before sending the relevant message to the user's home AAA server. Note that one-time-based charging can also be used to credit the prepaid account. For example, the SAD can return resources to the subscriber by issuing a one-time charge request that includes the amount of resources to be credited into the account. 2.5. Tariff Switching The PPC and the PPS may support tariff switching. For example, as shown in Figure 8, traffic before 18:00 may be rated at rate r1 and traffic after 18:00 is rated at rate r2. The PPC reports usage before and after the switch occurs. Tariff switching does not make sense for services that are metered based on time, and the consumption of which is continuous (i.e. without interruption). 18:00 ------------------+----------------- r1 | r2 ------------------+----------------- ^ ^ |<----TSI---> | | | Access-Accept Access-Request (quota allocated) (quota consumed) Figure 8: Example of tariff switching The PPC it indicates support for tariff switching by setting the appropriate bit in the PPAC. If the PPS needs to signal a tariff switch time it will send a PTS attribute which indicates the point in time when the switch will occur. This indication represents the number of seconds from current time (TarrifSwitchInterval TSI). At some point after the tariff switch the PPC sends another Access- Request, as a result of either the user having logged off or the volume threshold being reached. The PPC reports how much volume was used using the PPAQ in total and how much volume was used after the tariff switch using the PTS VUATS subtype. In situations with multiple tariff switches, the PPS must specify the length of the tariff switch period using the TimeIntervalAfterTariffSwitchUpdate (TITSU) in the PTS attribute as shown below. 18:00 23:30 ------------------+---------------------+-------------- r1 | r2 | r3 ------------------+---------------------+-------------- ^ ^ ^ |<----TSI---><-----------|-------->|TITSU | | Access-Accept Access-Request Figure 9: Multiple tariff switches When a TITSU is specified in the PTS, the PPC MUST generate an Access-Request within the time after TSI and before TITSU expires. Note that, typically, the PPC will be triggered by the Volume Threshold. However, it is possible that, during period r2, resources are not entirely consumed and, thus, the threshold is not reached. Even in this case PPC MUST generate an Access-Request in good time. Also note that separate services flows may have individual tariff periods. 2.6. Support for Roaming In certain networks it is essential for prepaid data services to be available to roaming subscribers. Support for both static and dynamic roaming models is needed. In a static roaming scenario the subscriber connects to a foreign network which has a roaming agreement either directly with the home network, or through a broker network. When the subscriber logs into another foreign network, a new login procedure has to be executed. In a dynamic roaming scenario the subscriber may move between networks while maintaining his connection. In such a scenario the data session is seamlessly handed off between the networks. In both roaming scenarios, the subscriber always authenticates himself to the home network. Authorization for the prepaid session and quota replenishing occurs at the home network and more specifically at the PPS where state is being maintained. Dynamic roaming is challenging because a subscriber who established a prepaid data session may move to another Access Device that does not support the prepaid extensions. Even in this case the system should be able to continue the prepaid session. 2.7. Dynamic Termination When fraud or an error is detected, either only the affected session, or all sessions of the affected subscriber should be immediately terminated. It may further happen that the prepaid system enters a state where it is unclear whether or not the data session is in progress. Under certain conditions, the system may wish to terminate the session in order to make sure that the user is not charged for this potential inactivity. Certain handoff procedures used in dynamic roaming scenarios require that the system terminates the subscribers prepaid data session at a SAD. This is the case, for example, when time-based prepaid is used and the mobile subscriber performs a dormant handoff. 2.8. Querying and Rebalancing It should be possible for the PPS to Query the current resource consumption at a SAD and adjust the user account balance. For example, a request to the PPS is made (e.g. a one-time charging event), the account is depleted and resources have been allocated to the SAD. The PPS should have the ability to query the SAD and if it has the spare resources to reassign the quotas to the SAD and to the pending request. Note that the PPS does not know resource usage until the SAD request for more resources. This can be a long time. In the absence of this capability the PPS can minimize the effect of this phenomenon by allocating small quotas, a practice that results in more message exchanges. 3. Operations This section describes the operations that are implemented by a prepaid-enabled NAS (SAD). 3.1. Authentication and Authorization Operation The SAD initiates the authentication and authorization procedure by sending a RADIUS Access-Request to the HAAA. Since the SAD has PPC capabilities, it MUST include a PPAC attribute in the RADIUS Access- Request. The PPAC attribute indicates to the PPS which prepaid capabilities are possessed by the SAD. These are required in order to complete the prepaid authorization procedure. Moreover, if the SAD supports the Disconnect-Message or the Change-of-Authorization capabilities, then it SHOULD include the Dynamic-Capabilities attribute. In certain deployments, there may be other ways to terminate a data session, or change authorization of an active session. For example, some SADs provide a session termination service via Telnet or SNMP. In these cases, the AAA server MAY add the Dynamic-Capabilities message to the Access-Request. Upon receiving the Change-of- Authorization message, the AAA server would then be responsible for terminating the session using the means that are supported by the device. If the authentication procedure involves multiple message exchanges (as in EAP), the SAD MUST include the PPAC(TBD) attribute and the Dynamic-Capabilities attribute (if used) in at least the last Access- Request of the authentication procedure. The Access-Request is sent as usual to the HAAA, possibly through one or more BAAA. Once the Access-Request arrives at the HAAA, the HAAA authenticates the subscriber. If this fails, the HAAA sends an Access-Reject message to the client. If authentication succeeds, the HAAA determines whether or not the subscriber is a prepaid subscriber. (How this is done is beyond the scope of this document.) If the subscriber is not a prepaid subscriber, then the HAAA responds as usual with an Access-Accept or an Access-Reject message. If the subscriber is a prepaid subscriber then the HAAA SHALL forward the Access-Request to the PPS for further authorization. The Access-Request contains the PPAC(TBD) attribute and the Dynamic- Capabilities attribute if one was included. The User-Name(1) attribute MAY be set to a value that identifies the subscriber. This attribute is used by the PPS to locate his account. For added security, the HAAA MAY also set the User-Password(2) attribute to the password used between the HAAA and the PPS. The PPS locates the subscriber account and authorizes him. During this procedure, the PPS takes into consideration the SAD PPC Capabilities. Upon successful authorization, the PPS generates an Access-Accept containing an PPAC attribute and an PPAQ attribute. The PPAC attribute returned to the client indicates the type of prepaid service to be provided for the session. The PPAQ attribute includes the following information. o The QUOTA-ID, which is set by the PPS to a unique value that is used to correlate subsequent quota requests. o Volume and/or Time quota, which is set to a value representing a portion of the subscriber's credit. o It MAY contain a Time or Volume Threshold that indicates when the SAD should request additional quota. o The IP address of the Serving PPS and one or more alternative PPSs. This is used by the HAAA to route subsequent quota replenishing messages to the appropriate PPS(s). Note: The Idle-Timeout(28) attribute can be used to trigger the premature termination of a prepaid service, for example as a result of inactivity. Depending on site policies, after failed authorization, the PPS may generate an Access-Reject in order to terminate the session immediately. Alternatively, the PPS may generate an Access-Accept blocking some or all of the traffic and/or redirect some or all of the traffic to a location to a fixed server. (This feature could be used, for example, to prompt the user to replenish their account.) Blocking of traffic is achieved by either Filter-ID(11) or NAS- Filter-Rule(see Redirect I-d). Redirection is achieved by sending Redirect-Id or Redirect-Rule, HTTP Redirection defined in the Redirect I-d. The time period before the session is blocked/ redirected is specified by the Session-Timeout(27) attribute. Upon receiving an Access-Accept from the PPS, the HAAA appends the usual service attributes and forward the packet to the SAD. The HAAA SHOULD NOT overwrite any attributes already set by the PPS. If the HAAA receives an Access-Reject message, it will simply forward the packet to its client. Depending on site policies, if the HAAA does not receive an Access-Accept or an Access-Reject message from the PPS it MAY do nothing or send an Access-Reject or an Access- Accept message back to the PPC. 3.2. Session Start Operation The start of the session is indicated by the arrival of an Accounting-Request(Start) packet. The Accounting-Request (Start) MAY be routed to the PPS such that it can confirm the initial quota allocation. Note that the role of the PPS is not to record accounting messages and therefore it SHOULD NOT respond with an Accounting Response packet. If the PPS does not receive the Accounting-Request(start) message it will only know that the session has started upon the first reception of a quota replenishment operation. If the PPS does not receive indication directly (via Accounting- Request(start)) or indirectly, itSHOULDSHOULD, 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.43.3. Mid-Session Operation During the lifetime of a prepaid data session the SADrequestsmay request the replenishment of the quotas using Authorize-Only Access-Requestmessages.message. Once either the allocated quota has been exhausted or the threshold has been reached, the SAD MUST send an Access-Request with Servicetype(6) set to a value ofôAuthorize Onlyö"Authorize Only" and the PPAQ(TBD) attribute. The SAD MUST also include NAS identifiers, and Session identifier attributes in the Authorize Only Access-Request. The Session Identifier should be the same as the one used during theAccess- Request.initial Access-Request. For example, if the User-Name(1) attribute was used in the Access-Request it MUST be included in the Authorize OnlyAccess- Request,Access-Request, especially if the User-Name(1) attribute is used to route the Access-Request to the Home AAA server. The Authorize Only Access-Request MUST NOT include a User Password and MUST NOT include a Chap Password. In order to enable the receiver to authenticate the message, the SAD MUST include aMessage-Authenticator(80)Message- Authenticator(80) attribute. The SAD computes the value for the Message-Authenticator according to[RFC2869].RFC 2869. When the HAAA receivesthean Authorize-Only Access-Request that contains a PPAQ(TBD), it SHALL validate the message using theMessage-Authenticator(80) as per [RFC2869].Message- Authenticator(80), according to RFC 2869. If the HAAA receives an Authorize Only Access-Request that contains a PPAQ(TBD)but not aand 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 OnlyAccess- RequestAccess-Request to the PPS specified in the PPAQ(TBD). The HAAA MUST addan Message-Authenticator(80)a Message- Authenticator(80) to the message, according to[RFC2869].RFC 2869. As with the Access-Request message, the HAAA MAY modify theUser- Name(1)User-Name(1) attribute such that itrepresentsidentifies theuserÆs internal prepaid account inuser to the PPS. Note that the PPS may also use the Quota-ID sub-attribute contained within the PPAQ(TBD) to locate the user account. Upon receiving the Authorize Only Access-Request containing a PPAQ(TBD) attribute, the PPS MUST validate the Message- Authenticator(80) as described in[RFC2869].RFC 2869. If validation fails, the PPS MUST silently discard the message. If it receives an Authorize Only Access-Request message that does not contain aPPAQ(TBD)PPAQ(TBD), it MUST silently discard the message. The PPS locates the prepaid session state using the Quota Id contained within the PPAQ(TBD). The PPS takes the most recently allocated quota and subtracts it from theuserÆsuser balance. If sufficient balance remains, the PPS authorizes the PPS and allocates additional quota. The PPS may also calculate a new threshold value. Upon successful re-authorization, the PPS generates an Access-Accept containing the PPAQ(TBD) attribute. The Access-Accept message MAY contain Servicetype(6) set to Authorize-Only and MAY contain the Message-Authenticator(80). Depending on site policies, upon unsuccessful authorization, the PPS generates an Access-Reject or an Access-Accept with Filter-Id(11) or Ascend-Data-Filter (if supported) attribute and the Session- Timeout(27) attribute such that the subscriber can get access to a restricted set of locations for a short period of time. This feature could be used to enable users to replenish their accounts, create new accounts, or to browse free content. Upon receiving the Access-Accept from the PPS, the HAAA SHALL return the packet to its client. If the HAAA receives an Access-Reject message, it forwards the packet. Depending on site policies, if the HAAA does not receive an Access-Accept or an Access-Reject message from the PPS it MAY do nothing or it MAY send an Access-Reject message back to its client. Upon receiving an Access-Accept, the SAD SHALL update its quotas and threshold parameters with the values contained in the PPAQ(TBD) attribute. Note that the PPS MAY update the PrePaidServer attribute(s) and these may have to be saved as well.Upon receiving an Access-AcceptIf the Access- Accept messagethatcontainsan Filter- Id(11),a Filter-Id(11), an Ascend-Data-Filter attribute, or Session Timeout(27), the SAD SHALL restrict the subscriber session accordingly.3.53.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 sentPPAQ(TBD)PPAQ(TBD). Both of these actions require that the session be uniquely identified at the SAD. As aminimumminimum, the PPS MUST-provide 1. either the NAS-IP-Address(4) or theNAS-Identifier(32) - provideNAS-Identifier(32), and 2. at least one session identifier such as User-Name(1),Framed-IP-Address(),Framed-IP- Address(), the Accounting-Session-Id(44). Other attributes could also be used to uniquely identify a prepaid data session.3.5.13.4.1. Unsolicited Session Termination Operation At anytime during a session the PPS may send a Disconnect Message in order to terminate a session. This capability is described in detail in [RFC3576]. The PPS sends a Disconnect Message that MUST contain identifiers that uniquely identify the data session and the SAD servicing that session. If the SAD receives a Disconnect-Message, it responds with either a Disconnect-ACK message (if it is able to terminate the session) or with a Disconnect-NAK packet (otherwise). Upon successful termination of a session the SAD MUST return any unused quota to the PPS by issuing an Authorize Only Access-Request containing the PPAQ which contains any unused Quota and theUpdate- ReasonUpdate-Reason set toôRemote"Remote ForcedDisconnectö. 3.5.2Disconnection". 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 quotaupdate. 3.6update . 3.5. Termination Operation The termination phase is initiated when (i) the subscriber logs off, (ii) thesubscriberÆs balancessubscriber balance is exhausted, or (iii) when the SAD receives a Disconnect Message. Inthecasewherethe user logged off, or the SAD receives a Disconnect Message, the SAD sends an Authorize-Only Access-Request message with aPPAQ(TBD)PPAQ and Update-Reason attribute set to eitherôClient"Client ServiceterminationöTermination" orôRemote"Remote Forceddisconnectö.Disconnect". This message indicates thealreadyamount of consumed quota. Inthecasewherethe currently allocated quota is exhausted, if thePPAQ(TBD)PPAQ contained the Termination-Action field, the SAD follows the specified action (which would be to immediately terminate theservice), requestsservice, request more quota, orredirects/filtersredirect/filter theservice. 3.7service). 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 withthea new SAD (AP or PDSN that supports PPC capability), the SAD sends a RADIUS Access-Request and the subscriber is re-authenticated and reauthorized. The SAD MUST include the PPAC(TBD) attribute in the RADIUS Access-Request. In thismannermanner, the procedure follows the Authentication and Authorization procedure described earlier. If the HA was acting as the SAD before handoff, theuserÆsprepaid session does not undergo any change after the handoff because the Mobile IP session is anchored at the HA and theuserÆsuser's Home IP addressremains the same.does not change. In the case of a wireless access point or PDSN acting as theSADSAD, it is likely that theuserÆsuser's (care-of) IP address willchange (Care of Address).change. The prepaid session will be affected by this. In this scenario the SAD shall send an Access-Request message which is routed to the home network and MUST reach theprepaid systemPPS that is serving this session. Theprepaid systemPPS 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 theprepaid systemPPS 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 OnlyAccess- RequestAccess-Request with PPAQ(TBD) Update-Reason set to eitherôRemote"Remote ForceddisconnectöDisconnect" orôClient"Client Serviceterminationö.Termination". In order to trigger the sending of this last Authorize OnlyAccess-Request,Access- Request, theprepaid systemPPS 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 (assumingthatit 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.83.7. OperationconsiderationsConsiderations for Multipleprepaid servicesServices This section describes the support for multiple prepaid services on a single SAD. Message flows illustrating the various interactions are presentedat the end of this document.in Appendix A. A SAD that supports prepaid operations for multi-services SHOULD set theôMulti-Services Supportedö"Multi-Services Supported" bit in the PPAC. When working with multi-services, we need to differentiate between the services. A Service-Id attribute is used in the PPAQ(TBD) in order to uniquely differentiate between the services. The exact definition of the Service-Id attribute is outside the scope of this document. A PPAQ that contains a Service-Id is associated with that Service. A PPAQ that contains a Rating-Group-Id is associated with thatRating-Group.Rating- Group. A PPAQ MUST not contain both a Rating-Group-Id and a Service-Id. A PPAQ that contains neither a Rating-Group-Id or a Service-Id applies to theôAccess Serviceö. 3.8.1Access Service. 3.7.1. Initial Quota Request When operations with multi-services is desired, the SAD requests the initial quota for the Service by sending a PPAQ containing the Service-Id for that Service in an Authorize-Only Access-Request packet. Similarly, if the SAD supports Rating-Groups then it may request a quota for the Rating-Group by sending a PPAQ containing the Rating-Group-Id. In both cases the Update-Reason is set toôInitial-Requestö."Initial- Request". The Authorize-Only Access-Request message may contain more than one PPAQ. The Authorize-Only Access-Request MUSTincludesinclude 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, theprepaid systemPPS 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 isathe genericôAccess Serviceö. 3.8.2"Access Service". 3.7.2. Quota Update Once the services start to utilize their allotted quota they will eventually need to replenish their quotas (either the threshold is reached or no more quota remains).ToIn order to replenish thequotaquota, the PPC sends an Authorize-Only Access-Request message containing one or more PPAQs. Each PPAQ MUST contain the appropriate QID, Service-ID or Group-ID (or neither the Service-ID or Group-Id if the quota replenishment is for theôAccess Serviceö)."Access Service"). The Update-Reason filed indicates eitherôThreshold reachedö(3),"Threshold reached"(3), orôQuota reachedö(4)."Quota reached"(4). The Authorize-Only message must contain session identifiers. Upon receiving an Authorize-Only Access-Request packet with one or more PPAQs the PPS responds with a new PPAQ for that service. The PPAQ contains a new QID, the Service-Id or Rating-Group-Id, a new Quota. If the PPS does not grant additional quota to the service it MUST include the Termination-Action subfield in the PPAQ that will instruct the SAD what to do with the service.3.8.33.7.3. Termination When the allotted quota for a service isexhaustedexhausted, the SAD shall act in accordance to the Termination-Action field set in the Quota. If the Termination-Action field is absent then the service MUST be terminated. If the service is to beterminatedterminated, then the SAD shall send a PPAQ with the appropriate QID, the Service-Id, the used quota, and the Update-Reason set toôClient"Client ServiceTerminationö.Termination". If theôAccess Serviceö�Access Service� 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. TheUpdate-ReasonUpdate- Reason field should be set toôAccess"Access ServiceTerminatedö. 3.8.4Terminated". 3.7.4. Dynamic Operations Dynamic operations for multi-services are similar to dynamic operations described for single service operations. The prepaid system may send a COA message containing a PPAQ for an existing service instance. The SAD matches the PPAQ with the service using the Service-ID attribute. The new quota could differ from the previously allocated value. The SAD must react to the new value accordingly. A disconnect message terminates theôAccess Serviceö."Access Service". As such the SAD MUST report all unused quotas by sending an Authorize Only Access Request message containing a PPAQ for each active service. The Update-Reason shall indicate that the reason for the update.3.8.53.7.5. Support for Resource Pools If the PPC supports pools as indicated by setting theôPools supportedö"Pools supported" bit in the PPAC(TBD) then the PPS may associate a Quota with a Pool by including the Pool-Id and the Pool-Multiplier in the PPAQ(TBD). When Resource Pools are used, the PPAQ must not use the threshold field.3.8.6 One-Time-Charging3.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 theuserÆsuser account. The QID field MUST be set to a unique value and is used by the PPS to detect duplicates. The Update Reason field MUST be set toOne- TimeOne-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 theuserÆsuser account has been debited or an Access-Reject otherwise.3.8.73.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.93.7.8. Accounting Considerations Although typically generated, accounting messages are not required to deliver a prepaid data service. When generated, accounting messages are used for auditing purposes and for billing. Accounting messages associated with prepaid data sessions should include the PPAQ(TBD) attribute.3.10 SAD Operation To be completed 3.113.7.9. Interoperability with Diameter Credit Control Application The RADIUS prepaid extensions need to interoperate with the Diameter protocol. Twopossibilities exist: Theinteroperability scenarios exist, as follows. Either the AAA infrastructure is Diameter based and the SAD are RADIUS based, or the SAD is Diameter based and the AAA infrastructure is RADIUS based. The Diameter Credit Control Application [DIAMETERCC] describes how to implement a prepaid accounting system usingana Diameter based infrastructure.<This section to be completed.>4. Attributes Thisdraftsection specifies the attributes that implement the RADIUS extensions for prepaid. The namespace for these attributes isusingthe one specified in the RADIUS[RFC2865] namespace. 4.1base protocol [RFC2865]. 4.1. PPAC Attribute The PrepaidAccountingCapability (PPAC) attribute is sent in the Access-Request message by a prepaid capable NAS and is used to describe the prepaid capabilities of the NAS. The PPAC is also present in an Access-Accept message by the PPS in order to indicate the type of metering that is to be applied to this session. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TYPE | LENGTH | SUBtype 1 | LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AvailableInClient (AiC) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TYPE : value of PPAC LENGTH: 8 VALUE : String The value MUST be encoded as follows: Subtype (=1) : Subtype for AvailableInClient attribute Length : Length of AvailableInClient attribute (= 6 octets) AvailableInClient (AiC): The optional AvailableInClient Subtype, generated by the PPC, indicates the metering capabilities of the NAS and shall be bitmap encoded. The possible valuesare: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 Reserved4.2Figure 10: PPAC Attribute 4.2. Session TerminationCapabilityAttribute The value shall be bitmap encoded rather than a raw integer. This attribute shall be included RADIUS Access-Request message to the RADIUS server and indicates whether or not the NAS supports Dynamic Authorization. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TYPE | LENGTH | String | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type : value of Session Termination Capability Length: = 4 String encoded as follows: 0x00000001 Dynamic Authorization Extensions (rfc3576) is supported.4.3Figure 11: Session Termination Attribute 4.3. PPAQ Attribute One or morePPAQ(TBD)PPAQ attributes are sent in an Access Request, Authorize Only Access-Request and Access-Acceptmessages.message. In an Access Request message, the PPAQ attribute is used to facilitate One-Time charging transactions. In Authorize Only Access-Request messages it is used for One-Time charging, report usage and the request for further quota. It is also used in order to request prepaid quota for a new service instance. In an Access-Accept message it is used in order to allocate the (initial and subsequent) quotas. When multiple services are supported, a PPAQ is associated with a specific service as indicated by the presence of a Service-Id, a Rating-Group-Id, or theôAccess Serviceö"Access Service" (as indicated by the absence of a Service-Id and a Rating-Group-Id). The attribute has type TBD (one octet), a variable length (greater than 8, encoded into one octet), and consists of a variable number of subtypes. Unused subtypes are omitted from the message.0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TYPE | LENGTH | SUBtype 1 | LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | QuotaIdentifier (QID) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SUBtype 2 | LENGTH | Volume Quota | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Volume Quota | SUBtype 3 | LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | VolumeQuotaOverflow (VQO) | SUBtype 4 | LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | VolumeThreshold (VT) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SUBtype 5 | LENGTH | VolumeThresholdOverflow (VTO) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SUBtype 6 | LENGTH | DurationQuota (DQ) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DurationQuota (DQ) | SUBtype 7 | LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DurationThreshold (DT) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SUBtype 8 | LENGTH | Update-Reason attribute (UR) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SUBtype 9 | LENGTH | PrePaidServer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PrePaidServer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SUBtype 10 | LENGTH | Service-Id | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SUBtype 11 | LENGTH | Rating-Group-Id | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | SUBtype 12 | LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Termination-Action | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SUBtype 13 | LENGTH | Pool-Id | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | SUBtype 14 | LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Pool-Multiplier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SUBtype 15 | LENGTH | Resource-Quota | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | SUBtype 16 | LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Resource-Quota-Overflow | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SUBtype 18 | LENGTH | Resource-Threshold | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type : ValueIn the following subsections the various subtypes of the PPAQLength: variable, greater than 8 String: The String value MUST be encoded as follows: Subtype (=1): Subtype for QuotaIDentifierattributeLength : Lengthare specified. 4.3.1. Quota Identifier AVP The type of the QuotaIDentifier attribute(=is TBD and its length is 6octets) QuotaIDentifier (QID): The QuotaIDentifier subtypeoctets. This AVP is generated by the PPS together with the allocation ofa Volume or Duration Quota.new quota. The on-line quota update RADIUSAccess-RequestAccess- Request message that is sent from the SAD to the PPS shall include a previously receivedQuotaIDentifier. Subtype (=2): Subtype forQuotaIdentifier. 4.3.2. VolumeQuotaattribute Length : lengthAVP The type of the VolumeQuota attribute(= 6 octets) VolumeQuota (VQ): The optional VolumeQuota subtypeis TBD and its length is 12 or 18 octets. This AVP is only present ifVolume Basedvolume-based charging is used. In a RADIUS Access-Accept message (PPS to SAD direction), it indicates theVolumevolume (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 bothforwardinbound andreverseoutbound traffic.Subtype (=3): Subtype for VolumeQuotaOverflow Length : length of VolumeQuotaOverflow attribute (= 4 octets) VolumeQuotaOverflow (VQO):Theoptional VolumeQuotaOverflow subtype is used to indicate how many times the VolumeQuota counter has wrapped around 2^32 over the courseattribute consists of a Value- Digits AVP and optionally an Exponent AVP (as indicated in theservice being provided. Subtype (=4): Subtype for VolumeThreshold attribute Length :lengthof VolumeThreshold attribute (= 6 octets)field). The Exponent AVP, if present, MUST NOT encode a negative number or zero. 4.3.3. VolumeThreshold(VT):AVP The type of the VolumeThresholdSubtypeattribute is TBD and its length is 12 or 18 octets. This AVP shallalwaysoptionally be present if VolumeQuota is present in a RADIUS Access-Accept message (PPS to SAD direction). It is generated by the PPS and indicates the volume (in octets) that shall be consumed before a new quota should be requested. This threshold should not be larger than the VolumeQuota.Subtype (=5): Subtype for VolumeThresholdOverflow Length : Length of VolumeThresholdOverflow attribute (= 4 octets) VolumeThresholdOverflow (VTO):Theoptional VolumeThresholdOverflow subtype is used to indicate how many times the VolumeThreshold counter has wrapped around 2^32 over the courseattribute consists of a Value-Digits AVP and optionally an Exponent AVP (as indicated by theservice being provided. Subtype (=6): Subtype for DurationQuota attribute Length :length field). The Exponent AVP, if present, MUST NOT encode a negative number or zero. 4.3.4. DurationQuota AVP The type of the DurationQuota attribute(=is TBD and its length is 6octets) DurationQuota (DQ): Theoctets. This optionalDurationQuota SubtypeAVP is only present ifDuration Basedduration-based charging is used. In RADIUS Access-Accept message (PPS to SAD direction), it indicates theDurationduration (in seconds) allocated for the session by the PPS. It is encoded as an 32 bit unsigned value, in network byte order. In an on-line RADIUS Access-Accept message (PPC to PPS direction), it indicates the totalDuration induration (in seconds) since the start of the accounting session related to theQuotaID. Subtype (=7): Subtype forQuotaID of the PPAQ AVP in which it occurs. 4.3.5. DurationThresholdattribute Length : lengthAVP The type of the DurationThreshold attribute(=is TBD and its length is 6octets) DurationThreshold (DT): The DurationThreshold subtypeoctets. This AVP shallalwaysoptionally be present if DurationQuota is present in a RADIUS Access-Accept message (PPS toSADPPC direction). It represents the duration (in seconds) after which new quota should be requested. This threshold should not be larger than the DurationQuota.Subtype (=8): Subtype for Update-ReasonIt is encoded as a 32 bit unsigned value, in network byte order. 4.3.6. ResourceQuota AVP The type of the ResourceQuota attributeLength :is TBD and its length is 12 or 18 octets. This optional AVP is only present if resource-based or one-time charging is used. In the RADIUS Access-Accept message (PPS to SAD direction) it indicates the resources allocated for the session by the PPS. In RADIUS Authorize Only Access-Request message (SAD to PPS direction), it indicates the resources used in total, including both incoming and outgoing chargeable traffic. In one-time charging scenarios, the subtype represents the number ofUpdate-Reasonunits to charge or credit the user. The attribute(= 4 octets)consists of a Value-Digits AVP and optionally an Exponent AVP (as indicated by the length field). 4.3.7. ResourceThreshold AVP The type of the ResourceThreshold AVP is TBD and its length is 12 or 18 octets. The semantics of this AVP follow those of the VolumeThreshold and DurationThreshold AVPs. It consists of a Value- Digits AVP and optionally an Exponent AVP. 4.3.8. Value-Digits AVP The type of the Value-Digits AVP is TBD and its length is 10 octets. This AVP encodes the most significant digits of a number, encoded as a 64 unsigned integer, in network byte order. If decimal values are needed to present the number, the scaling MUST be indicated with a related Exponent AVP. For example, the decimal number 0.05 is encoded by a Value-Digits AVP set to 5, and a scaling that is indicated with the Exponent AVP set to -2. 4.3.9. Exponent AVP The type of the Exponent AVP is TBD and its length is 6 octets. This AVP contains the exponent value that is to be applied to the accompanying Value-Digit AVP. It contains a 32 bit signed value, in network byte order. 4.3.10. Update-Reasonattribute (UR):AVP The type of the Update-ReasonsubtypeAVP is TBD and its length is 4 octets. This AVP shall be present in the on-line RADIUS Access-Request message(SAD(PPC to PPS direction). It indicates the reason for initiating the on-line quota update operation. Update reasons4, 5,6,7 and7, 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 RADIUSAccess_AcceptAccess Accept message. 1. Pre-initialization 2. Initial Request 3. Threshold Reached 4. Quota Reached 5. TITSU Approaching 6. Remote Forced Disconnect6.7. Client Service Termination7. ôAccess Serviceö Terminated8. "Access Service" Terminated 9. Service not established9.10. One-Time ChargingSubtype (=9) : Subtype for PrePaidServer attribute Length : Length4.3.11. PrepaidServer AVP The type ofPrePaidServer (IPv4 =the PrepaidServer AVP is TBD and its length is 6octets, IPv6=or 18octets PrePaidServer: The optional, multi-value PrePaidServer attributeoctets, for IPv4 and IPv6 addresses respectively. This optional AVP indicates the address of the servingprepaid system.PPS. If present, the Home RADIUS server uses this address to route the message to the serving PPS. The attribute may be sent by the Home RADIUS server. Multiple instances of this subtype MAY be present in a single PPAQ AVP. If present in the incoming RADIUS Access-Accept message, thePDSNSAD 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, thePDSNSAD shall not change their order.Subtype (=10) : Subtype for Service ID Length : Length4.3.12. Service-ID AVP The type ofService ID Service-Id: Opaquethe Service-ID AVP is TBD and its length is undefined. This AVP encodes an opaque string that uniquely describesathe 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 thePPAQPPAQ, the entire PPAQ refers to that service. If a PPAQ does not contain a Service-Id or Rating-Group-ID, then the PPAQ refers to the Access Service.Subtype (=11) : Subtype for Rating-Group-Id Length :4.3.13. Rating-Group-ID AVP The type of the Rating-Group-ID is TBD and its length is 6Rating-Group-Id Identifiesoctets. This AVP indicates that this PPAQ is associated with resources allocated to a Rating Group with the corresponding ID.Subtype (=12) : Subtype for Termination-Action Length : 6ThisfieldAVP is encoded as a 32 bit unsigned value, in network byte order. A PPAQ MUST NOT contain more than one Rating-Group-ID. 4.3.14. Termination-Action AVP The type of the Termination-Action AVP is TBD and its length is 3 octets. This AVP contains an enumeration of the action to take when the PPS does not grant additional quota. Valid actions are asfollows:follows. (Note that the value 0Reserved 1is reserved.) 1. Terminate22. Request More Quota33. Redirect/FilterSubtype (=13) : Pool-Id Length :4.3.15. Pool-ID AVP The type of the Pool-ID) AVP is TBD and its length is 6Identifiesoctets. This AVP identifies thePoolresource pool thatthisthe quota included in this PPAQ isto beassociated with.Subtype (=14) :It is encoded as a 32 bit unsigned value, in network byte order. 4.3.16. Pool-MultiplierLength : 6AVP The type of the Pool-Multiplier AVP is TBD and its length is 12 or 18 octets. The pool-multiplier determines the weight that resources are inserted into the pool that is identified by the accompanying Pool-ID AVP, and the rate at which resources are taken out of the pool bythis servicethe relevant Service or Rating-Group.Subtype (=15) : Subtype for Resource-Quota Length : 6Theoptional Resource-Quota subtypeattribute consists of a Value- Digits AVP and optionally an Exponent AVP (as indicated by the length field). 4.3.17. Requested-Action AVP The type of the Requested-Action AVP is TBD and its length is 3 octets. This AVP can only be presentif Resource Based or one-time charging is used. Inin messages sent from theRADIUS Access-Accept message (PPSPPC toSAD direction) itthe PPS. It indicates that theResources allocated foruser or thesession byPPC desires thePPS. In RADIUS Authorize Only Access-Request message (SADPPS 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 PPSdirection), itto uniquely identify the service for which the indicated action is requested. The following actions may be requested. 1. Balance Check 2. Price Enquiry 4.3.18. Check-Balance-Result AVP The type of the Check-Balance-Result AVP is TBD and its length is 3 octets. This AVP can only be present in messages sent from the PPS to the PPC. It indicates theresources usedbalance check decision of the PPS about a previously received Balance Check Request (as indicated intotal, including both incominga Requested-Action AVP). Possible values are 0 for "success" andoutgoing chargeable traffic. In one-time charging scenarios,1 for "failure" and mean that sufficient funds are available (resp. are not available) in thesubtypeuser's prepaid account. The PPAQ in which a Check- Balance-Result occurs MUST NOT include a QID, because no quota is reserved by the PPS. 4.3.19. Cost-Information AVP The type of the Cost-Information AVP is TBD and its length is variable. This AVP is used in order to return the cost information of a service, which the PPC can transfer transparently to the end user. This AVP is sent from the PPS to the PPC as a response to a "Price Enquiry", as indicated by the Requested-Action AVP. This AVP consists of four further AVPs, as follows. 1. Value-Digits ASP: this encodes the most significant digits of the monetery value that represents thenumbercost in question. 2. Exponent AVP: this encodes the exponent that applies to the Value-Digits AVP. 3. Currency-Code AVP: the type ofunitsthis AVP is TBD, and its length is 4 octets. It encodes the currency code, as defined in the ISO 4217 standard. 4. Cost-Unit AVP: the type of this AVP is TBD and its length is variable. It carries a UTF8String encoded human readable string that can be displayed tocharge or creditthe end user.Subtype (=16) : Subtype for Resource Quota Overflow Length : 6 Subtype (=18) : Subtype for ResourceThreshold Length : 6It specifies the applicable unit to the Cost-Information when the service cost is a cost per unit (e.g., cost of the service is $1 per minute). The Cost-Unit can be minutes, hours, days, kilobytes, megabytes, etc. Example: the cost of 7.75 Malawi kwacha per hour would be encoded as follows. Value-Digits = 775, Exponent = -2, Currency Code = 103, and Cost-Unit = "hour". The PPAQ in which a Cost-Information occurs MUST NOT include a QID, because no quota is actually reserved by the PPS. NOTES: Either Volume-Quota, Time-Quota, or Resource-Quota MUST appear in the PPAQ attribute.If Volume Quota appears, Volume Threshold may also appear.A PPAQ MUST NOT contain more than one Service-Id, MUST NOT contain more than one Rating-Group-Id, and MUST NOT contain both a Service-Id and a Rating-Group-Id. A PPAQ that does not contain a Service-ID or a Rating-Group-Idappliesrefers to theôAccess Serviceö. When the"Access Service". A PPAQ MUST NOT contain more than one Pool-Id. A PPAQ that contains a Pool-IditMUST also containthe Pool- Multiplier. 4.4a Pool-Multiplier AVP. 4.4. Prepaid Tariff Switching Attribute (PTS) This specification defines the PTS attributeto allowwhich allows for changeovers from one rate to another during service provision. Support for tariff switching isOPTIONALoptional for both the PPC and the PPS. PPCs use the flag "Tariff Switching supported" of the AvailableInClient subtype of the PPAC attribute in order to indicate support for tariff switching. PPSs employ the PTS attribute in order to announce their support for tariff switching. Details of this will be specified after the format of the PTS attribute has been defined. If a RADIUS message contains a PTS attribute, it MUST also contain at least one PPAQ attribute. If a RADIUS Access-Request message contains a PTS attribute or a "Tariff Switching supported" flag, it MUST also contain an Event-Timestamp RADIUS attribute (see[RFC2869]). 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TYPE | LENGTH | SUBtype 1 | LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | QuotaIDentifier (QID) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SUBtype 2 | LENGTH | VolumeUsedAfter- | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TariffSwitch (VUATS) | SUBtype 3 | LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | VUATSOverflow (VUATSO) | SUBtype 4 | LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TariffSwitchInterval (TSI) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SUBtype 5 | LENGTH | TimeIntervalAfter- | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TariffSwitchUpdate (TITSU) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type : Value[3]). The type of the PTSLength: variable, at least 8 Subtype (=1): QuotaIDentifier (QID) Length : Length of QuotaIDentifier Subtype (= 6 octets) The QID subtypeattribute is TBD and its lengh is variable. It contains one or more subtypes, as follows. Every PTS AVP MUSTbe presentinclude a QuotaIdentifier AVP as specified ineach PTS attribute.Section 4.3.1. In an online RADIUS Access-Request message sent from the PPC to the PPS,its value MUST bethe QuotaIdentifier AVP must contain a quota identifierreceivedthat was previously received from the PPS and MUST be the same as a quota identifier of one of the PPAQ attributes included the same RADIUS message. A PPAQ attribute that is transported along with a PTS attribute and has the same quota identifier value as the PTS attribute in its own QID subfield shall be referred to as the "accompanying PPAQ attribute". If a PPS receives an Access-Request message from a PPC, it associates a unique quota identifier to this request. Thus, a quota identifier also identifies a particular service.Subtype (=2):The PTS AVP contains a number of other subtype AVPs which are specified in the following subsections. 4.4.1. VolumeUsedAfterTariffSwitch(VUATS) Length : LengthAVP The type of the VolumeUsedAfterTariffSwitchSubtype (= 6 octets)attribute is TBD and its length is 12 or 18 octets. The VolumeUsedAfterTariffSwitch subtype SHALL be used in online RADIUS Access-Request messages (PPC to PPS direction). It indicates the volume (in octets) used during a session after the last tariff switch for the service specified via the QID subfield and the accompanying PPAQ attribute. The attribute(see the remarks under "Subtype 1: QID"). Subtype (=3): VUATSOverflow (VUATSO) Length : Lengthconsists ofVUATSOverflow Subtype (= 4 octets) If an online RADIUS Access-Request message containsaVUATS subfieldValue-Digits AVP andif the VolumeUsedAfterTariffSwitch has wrapped around 2^32 over the course of provisioning the service identified via the QID subfield, then the VUATSO subfield MUST be present in the PTS attribute. In this case, it indicates how many times the VolumeUsedAfterTariffSwitch has wrapped around 2^32. In all other cases, the VUATSO subfield MUST NOT be presentoptionally an Exponent AVP (as indicated in thePTS attribute. Subtype (=4):length field). 4.4.2. TariffSwitchInterval(TSI) Length : LengthAVP The type ofTSI Subtype (=the TariffSwitchInterval is TBD and its length 6octets) The TSI subtypeoctets. This AVP MUST be present in each PTS attribute that is part of a RADIUS Access-Accept message (PPS to PPC direction). It indicates the interval (in seconds) between the value of Event-Timestamp RADIUS attribute (see[RFC2869])[3]) of the corresponding RADIUS Access-Request message and the next tariff switch condition.Subtype (=5):4.4.3. TimeIntervalafterTariffSwitchUpdate(TITSU) Length : LengthAVP The type ofTITSU Subtype (=the TimeIntervalafterTariffSwitchUpdate (TITSU) AVP is TBD and its length is 6octets)octets. The PPS MUST includethe TITSU subtypethis AVP if there is another tariff switch period afterthis period.the period that ends as indicated by the TSI attribute. The TITSUattributesattribute encodes the numberremainingseconds ofcurrentthe tariffperiod.period that begins immediately after the period that ends as indicated by the TSI attribute. Ifthisthe TITSU attribute is zero or omitted,it isthe PPC assumes that thecurrenttariff period which ends as indicated by the TSI attribute lasts until further notice. If TITSU is specified, the PPCmustMUST send a quota update before thecurrent period ends.point in time specified by the TITSU attribute (see Figure 9). If a RADIUS message contains a PTS attribute, it MUST also contain at least one PPAQ attribute. The PTS is associated with the PPAQ by the QID. If multiple services are supported and if the PPAQ is associated with a service as indicated by theService-Id sub- atrribute of the PPAQ,Service-ID AVP, then the PTS refers to the tariff switch for that service. If the PPAQ does not have aService-Id,Service-ID, then the PTS refers to tariff switch for the Access-Service. If a PPC supports tariff switching then it MUST set the 0x00000040 (Tariff switching supported) flag of the AvailableInClient subtype of the PPAC attribute that is contained in the Access-Request packet starting the session.4.5 Table of Attributes TO BE COMPLETED. Request Accept Reject Challenge # Attribute Authorize_Only Request Accept Reject5.Security Considerations The extendedTranslation between RADIUS prepaid and Diameter Credit Control In scenarios where the service metering device uses the "RADIUS prepaid" (RPP) protocoldescribed in this document is subject tofor accounting and prepaid charging while the AAA infrastructure uses the "Diameter Credit Control" (DCC) protocol, anumbertranslation agent that enables the interoperation ofpotential attacks,both systems, is desirable. This also applies vice versa, i.e. in scenarios where the AAA infrastructure uses RADIUS and the service metering device uses Diameter. The idea of such amanner similartranslation 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 RADIUSwithout these extensions. It is recommended that IPsecor Diameter session. However, under the current specification of RPP and DCC, this appears to beemployedimpossible due toprotect against certaina number of reasons. These include theattacks. If IPsecfollowing. 1. The transport mechanism for DCC isnot available, usageTCP, which requires per- session state to be maintained at both endpoints of theextensions describedcommunication. Note, however, that, inthis document improveprinciple, each DCC message could be sent over a dedicated TCP connection which is torn down as soon as theoverall securitymessage is sent. This, however, is likely to be unacceptable in terms ofRADIUS. The various security enhancements are explainedefficiency. 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 thefollowing sections. 5.1 Authenticationcorrect amount to be put into an outgoing message. The translator maps each incoming RPP (resp. DCC) message into an outgoing DCC (resp. RPP) message, andAuthorization RADIUSpossibly establishes or updates local state that issusceptible to replay attacks duringassociated with theAuthentication and Authorization procedures. A successful replaysession. The translated (i.e. outgoing) message is a function of theinitial Access-Request could result inincoming message as well as existing state that is associated with the current session. Translation occurs on anallocationattribute-by-attribute basis. Certain attributes are translated without consideration ofan initial quota. To thwartlocal per-session state. Other attributes, namely those that are bound to a particular session, require suchan attack... 5.2 Replenishing Procedure A successful replay attack ofconsideration. The translation agent has to identify theAuthorize Only Access-Request could depletesession (and possibly subsession) an incoming message belongs to in order to consult thesubscribers prepaid account. Toappropriate local per-session state. Note that certain DCC attributes cannot becompleted. 6. IANA Considerationstranslated due to their semantics not being present in RPP, and vice versa. Thisdocument requiresresults in theassignment of new Radiusmessages, in which these attributestype numbers foroccur, not being delivered to their intended destination. In such cases it is desirable to inform thefollowing attributes: 1) Prepaid-Accounting-Capability (PPAC) with subtype: AvailableInClient 2) Prepaid-Accounting-Operation (PPAQ) with subtypes: QuotaID (QID) VolumeQuota (VQ) VolumeQuotaOverflow (VQO) VolumeTreshold (VT) VolumeTresholdOverflow (VTO) DurationQuota (DQ) DurationTreshold (DT) UpdateReason (UR) PrePaidServer (PPS) ServiceID (SID) RatingGroupId (RGID) TerminationAction (TA) PoolID (PID) PoolMultiplier (PM) Cost (COST) TariffChangeTime (TCT) 3) Prepaid-Tariff-Switch (PTS) 4) Session-Termination-Capability (STC) 5) International-Mobile-Subscriber-Identity (IMSI) 7. Normative References [RFC2026] Bradner, S., "The Internet Standards Process -- Revision 3", RFC 2026, October 1996. [RFC2119] Bradner, S., "Key words for useoriginator 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 inRFCstwo directions, namely RPP toIndicate Requirement Levels", RFC 2119, March 1997. [RFC2865] Rigney, C., Rubens, A., Simpson, W.DCC andS. Willens, "Remote Authentication Dialvice versa. InUser Server (RADIUS)", RFC 2865, June 2000. [RFC2866] Rigney, C., "RADIUS Accounting", RFC 2866, June 2000. [RFC2869] Rigney, C., Willats, W., Calhoun, P., "RADIUS Extensions", RFC 2869, June 2000. [RFC2868] Zorn, G., Leifer, D., Rubens, A., Shriver, J., Holdrege, M., Goyret, I., "RADIUS Attributes for Tunnel Protocol Support" , RFC 2868, June 2000. [RFC3576] Chiba, M., Dommety, G., Eklund, M., Mitton, D., Aboba, B., "Dynamic Authorization Extensions to Remote Authentication Dial-In User Service (RADIUS)", RFC 3576, February 2003. [RFC3748] Aboba, B., et al., "Extensible Authentication Protocol", RFC 3748, June 2004. 8. Informative References [DIAMETERCC] Hakkala, H., et al., "Diamter Credit-Control Application", Internet Draft, AAA WG, April 2004, Workthe following sections, the notation c->s means that the attribute inProgress. [REDIRECT] "RADIUS Redirection", Internet Draft, Workquestion may occur only inprogress. 9. Call Flows This section describestheflows associated with various scenariosdirection 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 arementioneddirected inthis document.either direction. 5.1. Session Identification Thefollowing fields are usedtranslation agent has to keep per-session state inthe call flows: RADIUS packets: AR Access Request ARA Access Accept AC Accounting Requestsorder to perform its task. AAuthorize-Only Access-Request AA Access-Accept for Authorize- Only Access-Request RADIUS Attributes: PPAQ PPAQ as defined in this specification SID Onesession may be identified based on the RPP identifier ormore attributes representingtheSession thatDCC session identifier. That is, theRADIUS packets is correlated to. PPAC PPAC as definedtranslation agent should always maintain a pair of (RPP, DCC) session identifiers and maintain the per-session state inthis specification ASID Acct-Session-Id as defined by RADIUS MSID Acct-Multi-Session-Id as defineassociation 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 RADIUSPPAQ fields: SRVID Service-Id Reason Update-Reason QID Quota-Id 9.1 Simple Concurrent Servicesprepaid client and Diameter Credit Control AAA infrastructure This section describes the translator in the "RPP client / DCC AAA infrastructure" case. In other words, in thisscenariosection it is assumed that thePPC authenticatesclient "talks" RPP andauthorizestheuser.AAA inftrastructure "talks" DCC. ThePSS respondstranslator 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 withQuota forwhat per-session state theôAccess Serviceö instance. The NAS then request quota for Service-A. Accountingtranslator has to create or consult, is described. For clarity of exposition, each RPP AVP isturned on. NAS/ RADIUS/addressed in a separate subsection. Since in this scenario, the PPCPPS === === | | | AR{SID,PPAC} | A |-------------------------------------------------->| | | | ARA{SID,PPAQ(QID=1,Q=100)} | B |<--------------------------------------------------| | | | AC(start){ASID=25,MSID=13} | C |-------------------------------------------------->| | | | A{SID,PPAQ(SRVID=SA, Reason=Initial} | D |-------------------------------------------------->| | | | AA{SID,PPAQ(QID=200,SRVID=SA, Q=50)} | E |<--------------------------------------------------| | | | AC(start){ASID=30,MSID=13, PPAQ } | F |-------------------------------------------------->| | | | A{SID, PPAQ(QID=200 SRVID=SA, Q=50 Reason=Quota)}| G |-------------------------------------------------->| | | | AA{SID,PPAQ(QID=300,SRVID=SA, Q=100)} | H |<--------------------------------------------------| | | | A{SID, | | PPAQ(QID=1, Q=100 Reason=Quota), | | PPAQ(QID=300, SRVID=SA Q=100 Reason=Quota)} | I |-------------------------------------------------->| | | | AA{SID, | PPAQ(QID=3, Q=200), | | PPAQ(QID=303, SRVID=SA Q=150)} | J |<--------------------------------------------------| A Thisis typically the initiator a session, the focus is on theinitial Access-RequestRPP AVPs. 5.2.1. PPAC (c<->s) A DCC client is assumed to always support Volume metering, Duration metering, Resource metering, Pools, Rating groups, and Tariff Switching. Thus, if a PPAQ that indicatesthe prepaid capabilitiesany of theNAS. In this example indicates that Concurrent Sessions are supported. Access-Request also includes SID (Session Id) whichabove is sent client->server, theSession Identifier assigned by this NAStranslator 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 tosession.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) Theformal ofDiameter base protocol assumes that the client always supports dynamic sessionidentifiertermination. If this AVP isoutsidepresent, thescope oftranslator does not need to do anything, i.e. there exists no DCC AVP that thisdocument. B RADIUS authenticatesAVP can be mapped to. If this AVP is absent, theusermessage in which it appears should either be discarded anddetermines that he hasoriginator should be informed of aprepaid account. RADIUS responds withfailure, or the message can be passed on (without this AVP being mapped onto aPPAQ forDCC AVP). However, in the latter case, the translator has to remember that theôAccess Serviceö (PPAQclient does notcontain a Service-ID or Rating-Group- ID). The PPAQsupport dynamic termination. Thus, the translatior hasa QID=1 assignedto initiate the normal session termination procedure with the client when (if) dynamic termination is later initiated by thePrepaid System andserver. 5.2.3. Quotaof Q=100. TheIdentifier Attribute (c<->s) When quotacould beis allocated for the first timeor volume and may or may not have a threshold associated with it. C The NAS startsby theAccess Service and generates an Accounting- Request (Start) messageDCC server, the translator has to create a QID AVP, asnormal. It includesrequired by this specification. The translator later uses a QID AVP that is sent in theAcct- Session-Id and may includeclient-to-server direction in order to identify theAcct-Multi-Session-Id. Dcorresponding DCC session. TheNAS is aboutQID has tostartbe saved in the translator's per session state. 5.2.4. Volume Quota Attribute (c<->s) If this AVP occurs in anew Service, callmessage that is sent in the server-to-client direction, itService-A. It sendsis translated into a Granted-Service-Unit AVP with anAuthorize-Only access request to RADIUS. The SID linksembedded CC-Total-Octets AVP. [editor's note: thisAuthorize-Only access requestsentence belongs to theinitial Authentication & Authorization (Step-A and Step-B).The Authorize-Only message contains a PPAQ requesting quota for Service-A, Update-Reasonother translation type, i.e. AAA =Initial-Request. E The PPS checks the resources available to the userRPP andassigns 50 units (time/volume etc) toclient = DCC.] If thisservice. RADIUS sends an Access AcceptAVP occurs in a messagecontainthat is sent in the client-to-server direction, then it is translated into aPPAQ assigningUsed-Service-Unit AVP with an embedded CC-Total-Octets AVP. Note that only the difference between current cumulative quotaQ=50forService-A. The PPAQ contains a QID = 200. F The NAS starts Service-Athe (sub)session andsendsthe quota in incoming messages is indicated in the translated DCC message. Local state is updated with cumulative consumed resources. Conversely, if the server grants quota using the DCC Granted-Service- Unit AVP with anAccounting-Request (Start) message for that service. Acct-Multi-Session-Id canembedded CC-Total-Octets AVP, then the translation agent must translate this into a Volume Quota Attribute. Again, local state must beused to tie all ofconsulted so that thesessionscumulative amount of octets is indicated in theaccounting streams together. GVolume Quotafor Service-A requires refreshing, the quota was completely used). An Authorize-Onlyattribute. 5.2.5. Duration Quota Attribute (c<->s) If this AVP occurs in a message that is sentcontainingin the server-to-client direction, it is translated into aPPAQGranted-Service-Unit AVP withQID = 200 which correspondsan embedded CC-Time AVP. [editor's note: this sentence belongs to theprior QID received forother translation type, i.e. AAA = RPP and client = DCC.] If thisservice. Note QIDAVP occurs in a message that issufficient forsent in thePPS server to link this request toclient-to-server direction, then it is translated into a Used-Service-Unit AVP with an embedded CC-Time AVP. Note that only theprevious requestdifference between current cumulative quota for the (sub)session andhence totheoriginal authentication steps. Therefore SIDquota in incoming messages isnot really required. The PPAQ will reportindicated in theused part oftranslated DCC message. Local state is updated with cumulative consumed resources (i.e. time). Conversely, if the server grants quota(50 units). H RADIUS deductsusing theused quota fromDCC Granted-Service- Unit AVP with an embedded CC-Time AVP, then theusers accounts and reserves 50 more additional units fortranslation agent must translate this into atotal quotaDuration Quota attribute. Again, local state must be consulted so that the cumulative amount of100 (Q=100) for Service-A. It sends backseconds is indicated in the Duaration Quota attribute. 5.2.6. Resource Quota Attribute (c<->s) If this AVP occurs in aPPAQmessage that is sent in the server-to-client direction, it is translated into a Granted-Service-Unit AVP withQID=300. I NAS needsan embedded CC-Service-Specific-Units AVP. [editor's note: this sentence belongs torefresh boththeôAccess Serviceöother translation type, i.e. AAA = RPP andService-A. It sends an Authorize Onlyclient = DCC.] If this AVP occurs in a messagecontain two PPAQs, one forthat is sent in theMain Serviceclient-to-server direction, then it is translated into a Used-Service-Unit AVP withQID=1 and onean embedded CC-Service-Specific-Units AVP. Note that only the difference between current cumulative quota forService-A with QID=300. Each PPAQ reportstheresources that were consumed so far(sub)session and thereason whyquota in incoming messages is indicated in theupdatetranslated DCC message. Local state isbeing sent. J RADIUS responds backupdated withtwo PPAQs. The PPAQ withoutcumulative consumed resources (i.e. resources). Conversely, if theService-Idserver grants quota using the DCC Granted-Service- Unit AVP with anadditional 100 units forembedded CC-Service-Specific-Units AVP, then the translation agent must translate this into atotalResource Quota attribute. Again, local state must be consulted so that the cumulative amount of200resource unitstois indicated in theôAccess Serviceö û QID=3;Resource Quota attribute. Note that theother PPAQ, containing SRVID=SA grants an additional 50 units for"resource" type is application dependent. This means that atotal quotaDCC application unit corresponds toservice-an RPP application units, where n may be any real number. If n is not 1, then the RPP/DCC translator must be aware of150that and translate resource unitsû QID=303. This step illustrates why SRVID needs to be specifiedaccordingly. 5.2.7. Value Digits Attribute (c<->s) The encoding of this AVP is similar in RPP and DCC, and thePPAQ. Withoutvalue itthe NAS would be unable to differentiate between the PPAQs. QIDs are not sufficient to correlate the PPAQ to a service since theyholds may have to bechanged by the PPS at every transaction. Note how each PPAQ attribute represents a sequential conversation about a service between the PPC and the PPSevaluated inthis example. The links between the messages areconjunction with an acommpanying "Exponent" AVP. It should be kept in mind that, in RPP theQIDs andcumulative amount of granted/consumed quota is typically encoded into an AVP of this type, while in DCC only theService-Ids. Also note thatdifference from aSIDprevious message. 5.2.8. Exponent Attribute (c<->s) The encoding of this AVP isneeded to tiesimilar in RPP and DCC, and theAuthorize-Only messagesvalue it holds may have to be evaluated in conjunction with an acommpanying "Value Digits" AVP. It should be kept in mind that, in RPP theAuthentication steps. This SIDcumulative amount of granted/consumed quota is typically encoded into a related "Value Digits" and "Exponent" AVP pair, while in DCC onlyreally neededthefirst timedifference from aPPAQ is sent. Although accounting messages have an Accounting-Session-ID, thatprevious message is encoded into such a pair. 5.2.9. Volume/Duration/Resource Threshold Attributes (s->c) In DCC the concept of "threshold" does notenough to enableexist. Instead, theback end systemDCC client is assumed toassociate that accounting message with a particular Service. We therefore needask for thePPAQreplenishment of quota inthe accounting message. 9.2 One-time Charginggood time. Inthis One-time charging example,RPP, on thePPC authenticates and authorizesother hand, theuser and requests charging forserver may optionally include aservice event requested by the user. The PPC already knows the pricethreshold AVP, as an indication tocharge fortheservice event identified by SRVID=SA. Contributor We would like to thank Hannes Tschofenig for his contributions to this draft. Acknowledgments The authors would likePPC about when tothank Mark Grayson (Cisco), Nagi Jonnala and Tseno Tsenovask fortheir contribution toquota replenishment. Thus, in thisdraft. Author's Addresses Avi Lior Parviz Yegani, Ph.D. Bridgewater Systems Mobile Wireless Group 303 Terry Fox Drive Cisco Systems Suite 100 3625 Cisco Way Ottawa Ontario San Jose, CA 95134 Canada USA avi@bridgewatersystems.com pyegani@cisco.com Kuntal Chowdhury Hannes Tschofenig Starent Networks Siemens 30 International Place, 3rd Flr Otto-Hahn-Ring 6 Tewksbury, MA 01876 81739 Munich kchowdhury@starentnetworks.com Germany hannes.tschofenig@siemens.com Christian Guenther Siemens Otto-Hahn-Ring 6 81739 Munich Germany christian.guenther@siemens.com Intellectual Property Statement The IETF takesscenario, there is noposition regardingneed for thevalidity or scope of any Intellectual Property Rights or other rights that might be claimedtranslator topertain to the implementation or use of the technology described in this document orever include a threshold attribute into theextent to which any license under such rights might or might not be available; nor does it representmessages that ithas made any independent effortsends toidentify any such rights. Information ontheIETF's procedures with respectPPC. If, however, there is a need for a threshold attribute torights in IETF Documents canbefoundpresent inBCP 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 madeorder toobtainavoid ageneral license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.possible service provision 5.2.10. Update Reason Attribute (c->s) TheIETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technologyDCC AVP thatmay be requiredis semantically closer toimplement this standard. Please addresstheinformation toUpdate Reason AVP than any other AVP is theIETF at ietf- ipr@ietf.org. Disclaimer of ValidityCC-Request-Type AVP. Thisdocument andAVP indicates whether theinformation contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Copyright Statement Copyright ¨ The Internet Society (2005). This documentmessage issubject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. Expiration Date This memowhich it appears isfiled as draft-lior-radius-extensions-for-prepaid- 06.txt, and will expire 20 July, 2005. 10. Appendix A û use cases In this appendix we presentintended to indicate an "initial", an "intermediate" or aset"final interrogation". Morever, in case ofuse cases and scenarios based on whichtheextensions insession being terminated at the client, it indicates the reason for thisdocument were designed. It is assumed thattermination. The following list lists thesubscriber possesses a valid prepaid accountpossible values of an "Update Reason" attribute, along witha service provider,corresponding values forexample a WLAN operator. In order to maintain generality, the use cases refer tothecommunications betweenCC-Request-Type AVP. o Pre-initialization: No action/value defined. o Initial Request: Typically an "intial interrogation" is triggered as a result of theSAD andreception of thenetwork.message that contains this Update Reason AVP. Hence, CC-Request-Type AVP indicates "INITIAL_REQUEST". o Threshold Reached: Theconnection between the UserÆs Device andreception of theSAD, whichmessage containing this Update Reason AVP typicallyinvolves setting up a layer 2 session, e.g. a PPP session or a GPRS PDP Context, is specific to a given network technology and the details do not affect the operationtriggers an "intermediate interrogation". Hence, CC-Request-Type AVP indicates "UPDATE_REQUEST". o Quota Reached: The reception of theprepaid service. 10.1 Simple prepaid use case A subscriber connects to his home network. As usual,message containing this Update Reason AVP typically triggers an "intermediate interrogation". Hence, CC-Request-Type AVP indicates "UPDATE_REQUEST". o TITSU Approaching: The reception of theAccess Devicemessage 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 thatis servicing the subscriber usestheAAA infrastructure to authenticate and authorizeclient has terminated thesubscriber.session. TheSAD sends a RADIUS Access-Request tocorresponding value for theAAA server in order to authenticate and authoriseCC-Request-Type AVP is "TERMINATION_REQUEST". o Client Service Termination: Reception of such an Update Reason indicates that thesubscriber with respect toclient has terminated therequested service.session. TheAccess-Request contains the subscriber credentials and may containcorresponding value for theprepaid capabilitiesCC-Request-Type AVP is "TERMINATION_REQUEST". o "Access Service" Terminated: Reception of such an Update Reason indicates that theSAD. Prepaid capabilities MUST be included ifclient has terminated theSAD supports them.session. TheAAA System proceeds withcorresponding value for theauthentication procedure. This may involve several message exchangesCC-Request-Type AVP is "TERMINATION_REQUEST". o Service not established: Reception of suchas in EAP [RFC2284]. Oncean Update Reason indicates that thesubscriberclient hasbeen authenticated,terminated theAAA system determines thatsession. The corresponding value for thesubscriberCC-Request-Type AVP is "TERMINATION_REQUEST". o One-Time Charging: Such an Update Reason indicates that aprepaid subscriber and requests authorisation.one-time charging event is initiated by the client. Therequestcorresponding value for the CC-Request-Type AVP is "EVENT_REQUEST". Note that a "Requested-Action: AVP MUSTincludealso be included in theprepaid capabilitiesoutgoing DCC message. Typically, this would be of theserving SAD.type "DIRECT_DEBITING", or "REFUND_ACCOUNT", depending on other AVPs present in the message. 5.2.11. PrepaidServer Attribute (s<->c) Thesystem validates thatPPC typically never sets thesubscriber hasvalue of aprepaid account and that the account is active. It further validatesPrepaidServer attribute. Instead, it repeats those values that it receives from theSAD hasAAA infrastructure, in this scenario from theappropriate prepaid capabilities. If alltranslator. This attribute is therefore not used inorder,a translation scenario. Nevertheless, theprepaid system authorisestranslator must make sure that messages about thesubscribersame RPP session are forwarded tousethenetwork. Otherwise it rejectssame DCC server, throughout therequest. The decision is sentwhole session. This may be easy to guarantee since theAAA system.transport of Diameter is TCP. 5.2.12. Service-ID Attribute (s<->c) Theresponse includes attributes to indicate the allocationDCC equivalent of aportion of the subscriberÆs credit. This portionRPP "Service-ID" AVP iscalledtheôinitial quotaö (in unitscombination oftime or volume)Service-Context-Id andoptionallyService-Identifier AVPs. The translator must keep athreshold value. A portion onlystatic equivalence table of theuserÆs funds is allocated becauseRPP Service-ID and theuser may be engagedcorresponding DCC combination inother services that may draworder 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 sameaccount. For example,value on both theuser may be engaged in a data sessionRPP anda voice session. Although these two services would draw fromthesame account, they form separate partsDCC side of theoverall system. Ifcommunication. If, however, static rating groups are configured between theentire quota was allocated toRCC client and thedata session thentranslator, and different rating groups between theuser would have no more funds for a voice session. The AAA system incorporatesDCC server and theattributes received fromtranslator, then theprepaid System into an Access-Accept message that it sendstranslator has tothe SAD. Note that the AAA system is responsiblemaintain a static translation table forauthorizingtheservice whereasrating group identifier. In any case, theprepaid systemtranslation of a rating group AVP, isresponsible for prepaid authorization. Upon receivingnot a function of theAccess-Response,translator's local per-session state. 5.2.14. Termination-Action Attribute (s->c) The DCC equivalent of theSAD starts"Termination-Action" AVP is called theprepaid data session"Final-Unit-Action" AVP. In this scenario (RPP client andmetersDCC AAA infrastructure), a DCC "Final-Unit-Action" AVP is translated into a "Termination-Action" AVP. The following list contains thesession based on time or volume, as indicatedpossible "Final-Unit-Action" values along with their "Termination-Action" equivalent. o TERMINATE (DCC): This value has a direct equivalent in RPP, also called "Terminate". o REDIRECT (DCC): If this value appears in a "Final-Unit-Action" AVP, then a "Redirect-Server-Address" AVP must also appear in the same DCC message.Once the usage forThe translator translates these two AVPs into a "Termination-Action" with value "Redirect/Filter" and an eqiovalent NAS-Filter-Rule attribute (specified in http:// www.ietf.org/internet-drafts/draft-ietf-radext-ieee802-00.txt). o RESTRICT_ACCESS (DCC): If this value appears in a "Final-Unit- Action" AVP, then a "Restriction-Filter-Rule" AVP must also appear in thesession approachessame 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 theallocated limit (as expressed byabsence of a "Final-Unit-Action" AVP, thethreshold),DCC server assumes that theSADDCC client willrequest additional quota. Re-authorizationask foradditional quota flows through the AAA system to the prepaid System. The prepaid System revalidates the subscriberÆs account and subtracts the previously allocatedreplenishment of quotafrom the current balance. If thereat some suitable time. In RPP, this isremaining balance, it reauthorizes the requestexplicitly conveyed via a "Termination-Action" AVP withan additional quota allotment. Otherwise, the prepaid System rejectstherequest. Notevalue "Request More Quota". Thus, in thereplenishingabsence of a "Final-Unit-Action" AVP, thequotastranslator 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 are-authorization procedure and does not require the subscriber"Pool-ID". Typically, no translation needs toauthenticate himself again. It is importantbe done tonote thattheprepaid System"Pool-ID" attribute. 5.2.16. Multiplier Attribute (s<->c) The multiplier attribute, which ismaintaining session state for the subscriber. This state includes how much account balance was allocated duringa pair of "Value-Digits" and "Exponent" AVPs, typically needs no translation, since thelast quota enquiryvalue it carries (inside a "Value-Digits" andhow much is left inan "Exponent" AVP) represents theaccount. Therefore,rating of the service or rating group to which itis required that all messages aboutrefers, with respect to abstract units. As such, thesession reachsame multiplier value would typically applyt be conveyed from a DCC server to an PPC, and vice versa. 5.2.17. Requested-Action Attribute (c->s) The "Requested Action" AVP can be directly translated into its DCC equivalent, which carries the same(and correct) prepaid system. Upon receivingname. 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 are-allotmentbinary value. Hence, its translation is straightforward. 5.2.19. Cost-Information Attribute (s->c) This attribute consists of a Value-Digits AVP, an Exponent AVP, a Currency Code AVP, and a Cost-Unit AVP. All these AVPs do likewise exist in DCC, and carry identical semantics in thequota, the SAD continues to providecontext of thedata service until"Cost-Information" AVP. Thus, thenew thresholdtranslation of this attribute isreached. Ifstraightforward. 5.2.20. VolumeUsedAfterTariffSwitch attribute (c->s) This attribute carries therequest for additional quota cannot be fulfilled thenamount of octets that were consumed after a tariff change. It always appears in a message with an accompanying PPAQ attribute in which theSAD letstotal amount of octets (i.e. those that were consumed both before and after thesubscriber usetariff switch) is reported. Thus, theremaining quota and terminatestranslation agent can compute thesession. Alternatively, insteadamount ofterminatingoctets that were consumed before thesession,tariff change. In DCC, theSAD may restricttwo amounts, i.e. thedata session suchoctets thatthe subscriber can only reachwere consumed before aparticular web server. This web server maybe used to allow the subscriber to replenish their account. This restriction can also be used to allow new subscribers to set up prepaid accountstariff 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 thefirst place. Shouldappropriate amount of octets. Furthermore, thesubscriber terminateUsed-Service-Unit AVP that carries thesessionamount that was consumed before thequota is exhausted,tariff switch also carries an embedded Tariff-Change-Usage AVP with theremaining balance allotted tovalue UNIT_BEFORE_TARIFF_CHANGE (0). Similarly, thesession MUST be refunded intoUsed-Service-Unit AVP that carries thesubscriberÆs account. Whileamount that was consumed after theAccess Device is waiting fortariff switch also carries an embedded Tariff-Change-Usage AVP with theinitial quota,value UNIT_AFTER_TARIFF_CHANGE (1). 6. Security Considerations [Editor's Note: A future version of this document will provide a description of thesubscriber may have droppedsecurity threats and the countermeasures.] 7. IANA Considerations This document requires the assignment of new Radius attributes type numbers for theconnection/session.following attributes: Prepaid-Accounting-Capability (PPAC), AvailableInClient, Prepaid-Accounting-Operation (PPAQ), QuotaIdentifier, (QID), VolumeQuota (VQ), VolumeTreshold (VT), DurationQuota (DQ), DurationTreshold (DT), UpdateReason (UR), PrePaidServer (PPS), ServiceID (SID), Rating-Group-ID (RGID), TerminationAction (TA), PoolID (PID), PoolMultiplier (PM), Cost- Information (COST), Session-Termination-Capability (STC), PrepaidTariffSwitch (PTS) and TariffSwitchInterval (TSI). 8. Contributors Theentire allocated quota MUST be credited backauthors would like tothe subscribers accountthank Christian Guenther and Yong Li for their contribution to earlier draft versions. 9. References 9.1. Normative References [1] Bradner, S., "RFC 2119: Key words for use inthis case. 10.2 SupportRFCs to Indicate Requirement Levels", March 1997. [2] Rigney, C., Rubens, A., Simpson, W., and S. Willens, "RFC 2865: Remote Authentication Dial In User Server (RADIUS)", June 2000. [3] Rigney, C., Willats, W., and P. Calhoun, "RFC 2869: RADIUS Extensions", June 2000. [4] Bradner, S., "RFC 2026: The Internet Standards Process -- Revision 3", October 1996. [5] Rigney, C., "RFC 2866: RADIUS Accounting", June 2000. [6] Zorn, G., Leifer, D., Rubens, A., Shriver, J., Holdrege, M., and I. Goyret, "RFC 2868: RADIUS Attributes forMulti-Services Examples of servicesTunnel Protocol Support", June 2000. [7] Chiba, M., Dommety, G., Eklund, M., Mitton, D., and B. Adoba, "RFC 3576: Dynamic Authorization Extensions to Remote Authentication Dial-In User Service (RADIUS)", February 2003. [8] Adoba, B., Blunk, L., Vollbrecht, J., Carlson, J., and H. Levkowetz, "RFC 3748: Extensible Authentication Protocol", June 2004. 9.2. Informative References [9] Hakala, H., Mattila, L., Koskinen, J-P., Stura, M., and J. Loughney, "RFC 4006: Diameter Credit Control Application", August 2005. Appendix A. Example flows This section presents certain example flows that involve theuser may be using are browsingRADIUS prepaid extensions. By no means is theweb, participating in a VoIP conversation, watching streaming videointent of this section to specify or recommend business logic, rating strategies, anddownloading a file. Some operators may wantapplication-level behaviour. The intent of this section is purely todistinguish between these services. Some services are billed at different ratesillustrate some fictive scenarios andservices may be metered differently. Therefore,the RADIUS prepaidsolution needs tomessage flows that could beableassociated with these scenarios. The contents of this section should be regarded as a collection of informative examples that aim todistinguishprovide guidance to implementors. A.1. A simple flow End user PPC AAA Server PPS user logs on ------(1)---------> Access Request {RADIUS BASE AVPS, PPAC=00...00011} -------(2)--------> RADIUS authentication <--------------(3)----------------------> Access Request {RADIUS BASE AVPS, PPAC=00...00011} ------(4)---------> [allocates 5MB quota] Access Response {RADIUS BASE AVPS, PPAQ={QID=5, VQ = 5MB, VTH = 4.5 MB}} <-------(5)-------- forwards message <-----(6)----------- service provision/metering -------(7)---------> 4.5 MB consumed Access Request {RADIUS BASE AVPS, PPAQ={QID=5, VQ=4.5MB, REASON=THRESHOLD REACHED}} -------(8)---------> forwards message -------(9)-------> [allocates another 7MB to the access service] Access Response {RADIUS BASE AVPS, PPAQ={QID=8, VQ=12MB, VTH = 11.5 MB}} <----------(10)-------------- forwards message <------(11)-------- user logs off ------(12)------- Access Request {RADIUS BASE AVPS, PPAQ={QID=8, VQ=7 MB, REASON=ACCESS SERV TERMINATED}} -------(13)---------> forwards message -------(14)-------> [reimburses user account] AA Response {RADIUS BASE AVPS} <------(15)-------- AA Response {RADIUS BASE AVPS} <------(16)-------- Figure 12: A simple example message flow The user logs on (1). The PPC sends a RADIUS Access Request message to the home AAA server (2), and includes the prepaid-specific PPAC AVP. This AVP indicates that both duration-based and volume-based metering is supported. However, it also indicated that multiple services, rating groups andallocate quotas toresource 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 theservices using different units (e.g. time, volume)user andallow for those quotas to be utilized at different rates. +---------+ | Session | +---------+ | V N +--------------+ +-------+ | Service |------>| Quota | | (service-Id) | +-------+ +--------------+ As shownauthorizes the access service, as is usual in RADIUS (3). Note that theabove diagram, a Session may be associated with multiple (N) services. Each servicePPAC AVP isidentifiedappended bya Service-ID.the PPC in at least the last message that is sent to the home AAA server during this possibly multiple-round exchange. If authentication and authorization is successful (in this example this is assumed), the home AAA server forwards the final Access Request to the PPS (4). TheformatPPS identifies the user's prepaid account from the included base RADIUS AVPs, and determines the capabilities of theService-ID is notPPC from the PPAC attribute. Assuming that sufficient funds are available in thescopeuser's prepaid account, the PPS reserves some ofthis document butthese and rates theService-ID could be expressed as an IP flow usingservice. In this example, the5- tuple {Source-IP and Port, Destination-IPPPS reserves, say, 2 Euros andPort, protocol type}. Eachdetermines that the access service isallocated an appropriaterated at 0.4 Euro per MB. This results in 5 MB of quotametric. 10.3 Resource Pools When workingbeing 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 withmultiple servicesanew problem arises because one service may utilize itsVolume-Threshold indication of 4.5MB. It further associates the QuotaIdentifier QID=5 to this quotafaster than another service. Whenreservation. This identifier can be used to later uniquely identify theuserÆs balanceprepaid session, user, account, etc. The resulting Access Accept message isclosesent toexhaustion, a situation could arise where one service is unablethe home AAA server (5) and forwarded toobtain quota while another service has plentythe PPC (6). Upon reception ofquota remaining. Unlessmessage (6), thequotas can be rebalanced,PPC provides theSAD would then haveaccess service toterminate that service. Indeed, even beforethe 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 thathappens,point, theservices could generatePPC generates anexcessiveAuthorize Only Access Request that contains the usual RADIUS attributes and a PPAQ AVPs that reports the amount oftrafficconsumed 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 thethey update their quotas. One method to solve these problemsone previously received from the user's home AAA server. This message is forwarded toutilize resource pools. Resource pools enabletheallocation of resources to several servicesPPS (9). Upon reception of message (9), the PPS identifies the user and his account from the QID. In also determines that a prepaid sessionby allocating resources to a poolis ongoing, and that enough credit remains in the prepaid account in order for the access service to continue being provided. Since 4.5 MB haveservices draw their quotabeen consumed, the PPS subtracts 1.8 Euros from thepool at a rate appropriateuser's prepaid account. The PPS decides to reserve another 2.8 euros from the user's account. (This results in 3 euros being reserved in total at this point in time.) As the access service is rated at 0.4 euros per MB, the PPS determines that another 7 MB of quota should be granted. This results in a total cumulative quota allocation of 12 MB for the access service.WhenThe PPS further calculates the new threshold value of 11.5 MB. Since this is a new quotaallocated toreservation, thepool is closePPS also allocates a new QuotaIdentifier toexhaustion, the entire poolit, in this example QID=8. The resulting RADIUS message isreplenished. +-----------+ | Service-A |-----+ +--------+ +-----------+ | Ma | | +-------->| | | Pool | +-------->| (1) | +-----------+ | Mb | | | Service-B |-----+ +--------+ +-----------+ Assent to thefigure above shows, Service-Ahome AAA server (10) andService-B are boundforwarded toPool(1). Ma and Mb arethepool multipliers (that are associated with Service-APPC (11). Upon reception of message (11), the PPC updates its records andService-B respectively)continues provisioning access to the user. At some point the user logs off (12). The PPC must then report how many resources were consumed, so thatdeterminetherate at which Service-A and Service-B drawPPC can subtract the appropriate monetary amount from thepool. The pool is initializeduser'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 bytakingthequota allocated to eachaccess serviceand multiplying it by Mn. Therefore,in total. The PPC reports 7 MB its final message (13). This is forwarded to theamount of resources allocatedPPS (14) which correlates the report, using the QID, toa pool is given by: Poolr = Ma*Qa + Mb*Qb + . . . A Pool is empty if: Poolr <= Ca*Ma + Cb*Mb + . . . where: Ca,Cb arethe previous session state. It determines, from the previous records, that the access service had consumedresourcesanother 4.5 MB before (as indicated in message (9)). This means that, ofService-A and Service-B respectively. Note thattheresources assigned7 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 thepool are not associatedRADIUS base specification (15). So does the home AAA server (16). A.2. A flow witha metric. That is, Service-A can be rated at $1 per Mbyte and Service-B can rated at $0.10 per Minute. In this case if we allocate $5 worth of resourcesprepaid tariff switching End user PPC AAA Server PPS user logs onbehalf of service-A------(1)---------> Access Request {RADIUS BASE AVPS, PPAC=00...00111} -------(2)--------> RADIUS authentication <--------------(3)----------------------> Access Request {RADIUS BASE AVPS, PPAC=00...00011} ------(4)---------> [allocates 20MB quota] Access Response {RADIUS BASE AVPS, PPAQ={QID=5, VQ = 20MB, VTH = 18 MB}, PTS={ QID=5, PTS{TSI=300sec, TITSU=6000sec}} <-------(5)-------- forwards message <-----(6)----------- service provision/metering -------(7)---------> 5900 seconds have passed Access Request {RADIUS BASE AVPS, PPAQ={QID=5, VQ=14MB, REASON=TITSU APPROACH.}, TSI={QID=5, VUATS=11MB}} -------(8)---------> forwards message -------(9)-------> [allocates another 10MB to thepool we would set Maaccess service] Access Response {RADIUS BASE AVPS, PPAQ={QID=8, VQ=30MB, VTH =10 and place 50 units into the pool. If we allocate $528 MB},PTS={ QUD=8, PTS=95 sec}} <----------(10)-------------- forwards message <------(11)-------- user logs off ------(12)------- Access Request {RADIUS BASE AVPS, PPAQ={QID=8, VQ=17 MB, REASON=ACCESS SERV TERMINATED}, PTS={QID=8, VUATS=2.5 MB} -------(13)---------> forwards message -------(14)-------> [reimburses user account] AA Response {RADIUS BASE AVPS} <------(15)-------- AA Response {RADIUS BASE AVPS} <------(16)-------- Figure 13: Example message flow with Tariff Switch The user logs onbehalf of Service-B(1). The PPC sends a RADIUS Access Request message to thePool, then M=1home AAA server (2), andplace 50 units intoincludes thePool.prepaid-specific PPAC AVP. This AVP indicates that both duration-based and volume-based metering is supported, as well as tariff switching. Thepool would have a total sum of 100 units to be shared betweenhome AAA server then authenticates and user and authorizes thetwo services. Each Mbyte usedaccess service, as is usual in RADIUS (3). Note that the PPAC AVP is appended byService-A will draw 10 units fromthepoolPPC in at least the last message that is sent to the home AAA server during this possibly multiple-round exchange. If authentication andeach minute used by Service-B will draw 1 unit fromauthorization is successful (in this example this is assumed), thepool. 10.4 Support for Complex Rating Functionshome AAA server forwards the final Access Request to the PPS (4). TheratingPPS identifies the user's prepaid account from the included base RADIUS AVPs, and determines the capabilities ofa service can be quite complex. While some operators follow linear charging models, others may wish to apply more complex functions. Forthe PPC from the PPAC attribute. In this example, it is assumed that aservice provider may wishtariff switch is about torate a service suchoccur in 300 seconds from the current time. Suppose that thefirst N Mbytes are free, thenaccess service is currently rated at 0.5 euros per MB and in the nextM Mbytes aretariff period it is rated at$10.6 euros perMbyteMB. Suppose further that a third tariff period is about to start in 6000 seconds from current time andvolume above M bytes bethat that access service is rated at$0.500.8 euros perMbyte. Such a function could be implemented by repeated message exchanges withMB in that period. The PPS then decides to reserve 12 euros from theprepaid system. To avertuser's account. Since it is conceivable that theneed to exchange many messages while still supporting such complex rating functionsuser may consume all allocated quota in thenotion(more expensive) "0.6-euro" period, the PPS reserves 20 MB of quota, and determines aôRating Groupö is introduced. A Rating Groupthreshold 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 isprovisioned atlinked to theSAD. As illustrated inPPAQ via thefigure below,common QID value. The PTS AVP contains aRating Group is associatedTSI attribute indicating that a tariff switch will occur in 300 seconds. It also includes a TITSU attribute withone or more services and definestheratevalue of 6000 seconds. This is included in order to make sure that theservices associated withPPC will report theRating Group consumeconsumed quota before thequota. +-----------+ | Service-A |------+ +-----------+ | +--------------+ +-------+ +---->| | | Quota | | Rating Group |------>| or | +-----------+ +---->| | | Pool | | Service-B |------+ +--------------+ +-------+ +-----------+ During consumption"2-euro" tariff period will start. The message is sent to the AAA server (5) and forwarded to the PPC (6). Upon reception ofamessage (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 isassociated with a Rating Group,assumed that the user consumes the allocated quota rather slowly. In particular, nearly 6000 seconds (the value indicated by TITSU) pass without the threshold of 18 MB being reached. The PPCsendsnotices this and must therefore report usage and request theIDquota 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 theRating Grouptariff switch. The message is sent to thePPS.AAA server (8) and forwarded to the PPS (9). Theprepaid service authorizesPPS can link theRating Group by allocating a quotamessage toitprevious 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 andoptionally assigning itthe 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 aResource Pool. When serviceremainder of 12 - 8.1 = 3.9 euros being reserved. The PPS now determines thatbelongsmessage (9) was sent in order toan authorized Rating Group is instantiated,replenish thePPC does not need to authorizequota for thisservice.prepaid session. Thislimitscan be deduced from theamount of traffic betweenUPDATE REASON field, which indicates that the PPCandsent this message because thePPS. 10.5 One-Time-based Charging One-Time-based Chargingtime indicated by the TITSU AVP isusedapproacing. The PPS now determines that enough credit remains in the user's prepaid account in order forcharging of service events without an ongoing session. That is,the access service to continue being provided and decides to reserve another 8.9 euros from the user's account. Since it isprovisioned instantaneously,conceivable that the user will consume the 6 unused MB of quota from the previous allocation, asfarwell aschargingthe entire quota that isconcerned. An exampleto 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 ofsuch an eventthe 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 thepurchasefact that the unused 6 MB from the previous allocation correspond to 4.8 euros (with 0.8 euros per MB). This is 4.8 - 3.9 = 0.9 euros more than the amount ofa ring-tone. Subscription based services can also be modeled as a One-Time event. Infunds that are still "reserved" from the previous allocation. (After thiscasereservation, theone-time service eventtotal amount of reserved money is 8.9 + 3.9 = 12.8 euros, which corresponds to 16 (10+6) MB being consumed in thepurchase of a subscription For"0.8-euro" period.) Since quotas are encoded in agiven user, one-time-based charging may occurcumulative way inparallel with other charging models. For example,RADIUS, thesubscriber may accessPPS includes awebsite whichVolumeQuota of 30 MB into the Access Accept message (10). The PPS further calculates the new threshold value of 28 MB. Since this ismetered (based on time or volume) while he also purchasea new quota reservation, theright to usePPS also allocates aring tone (a one-time-based event). Note: itnew QuotaIdentifier to it, in this example QID=8. The resulting RADIUS message isupsent to theservice providershome AAA server (10) and forwarded todecide whether or nottheuser will be charged for the downloadPPC (11). Upon reception of message (11), thetone and also be charged for the timePPC updates its records andvolume requiredcontinues providing access todownloadthering-tone.user. At some point the user logs off (12). Thefacilities provided by this document givesPPC must then report how many resources were consumed, so that theservice providerPPC can subtract thecapability to achieve their service charging business goals. For example, shouldappropriate monetary amount from theservice provider choose not to chargeuser's prepaid account. To this end the PPC constructs an Authorize Only Access Request message with a PPAQ AVPs for thedownload volume or time, then they can treataccess service. In this example, 17 MB were consumed by thedownload IP flow as a separateaccess servicethat is exempt from charging.in total. TheSAD signals one-time-based chargingPPC reports 17 MB its final message (13). This is forwarded to the PPSwith an indication that identifies(14) which correlates theservice andreport, using theunits that needQID, tobe debitedthe previous session state. It determines, from theuserÆs account. One-time-based charging may occur under two conditions:previous records, that the(a) SAD may not have a authenticated context (oraccessto an authenticated context) forservice had consumed 14 MB before (as indicated in message (9)). This means that, of thesubscriber), or (b)17 MB, only theSAD has access to authenticated contextmonetary equivalent for 3 MB have not yet been subtracted from thesubscriber. Inuser's account. The PPS calculates how much should be deducted from theformer caseuser's account as follows. Since theSAD will have to authenticateVUATS AVP indicates that 2.5MB were consumed after thesubscriber. For example,tariff switch, only 0.5 MB were consumed before that. Thus, theuser maybe authenticatedmonetary 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 theSAD providing access service. However whenPPC (REASON=ACCESS SERVICE TERMINATED), theuser accessesPPS 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 thesubscription server to purchase a subscription,RADIUS base specification (15). So does thesubscriptionhome 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 nothaveused. A.3. Resource pools and Rating Groups End user PPC AAA Server PPS user logs on ------(1)---------> Access Request {RADIUS BASE AVPS, PPAC=00...00101111} -------(2)--------> RADIUS authentication <--------------(3)----------------------> Access Request {RADIUS BASE AVPS, PPAC=00...00101111} ------(4)---------> [allocates 5MB quota] Access Response {RADIUS BASE AVPS, PPAQ={QID=5, VQ = 5MB, poolID=1,mult=1}} <-------(5)-------- forwards message <-----(6)----------- service provision/metering -------(7)---------> user requests service A -------(8)---------> Access Request {RADIUS BASE AVPS,PPAQ={ SID="A", RGROUP=1}} -------(9)--------> forwards message -----(10)---------> [allocates 50 min quota] Access Response {RADIUS BASE AVPS, PPAQ={QID=7, DQ=3000sec poolID=1,RGROUP=1, SID="A" mult=1747.63}} <---------(11)--------------- forwards message <----(12)-------- user requests service B -------(13)--------> Pool 1 close to exhaustion Access Request {RADIUS BASE AVPS, PPAQ={QID=5, VQ=4MB, REASON=QUOTA REACHED, PoolID=1, mult=1} PPAQ={QID=7, DQ=3300sec REASON=QUOTA REACHED, PoolID=1, mult=1747.63, SID="A",RGROUP=1}} -------(14)---------> forwards message -------(15)-------> [allocates another 3 MB to access service and 30 minutes tothe authentication context of the subscriberservice "A"] Access Response {RADIUS BASE AVPS, PPAQ={QID=8, VQ=8MB, PoolID=1, mult=1, RGROUP=1}, PPAQ={QID=9, DQ=4800sec PoolID=1, mult=1747.63, SID="A"}} <----------(16)-------------- forwards message <------(17)-------- user logs off ------(18)------- Access Request {RADIUS BASE AVPS, PPAQ={QID=8, VQ=6.5MB, REASON=ACCESS SERV TERMINATED, PoolID=1, mult=1} PPAQ={QID=9, DQ=5400sec REASON=ACCESS SERV TERMINATED, PoolID=1, mult=1747.63, SID="A",RGROUP=1}} -------(19)---------> forwards message -------(20)-------> [reimburses user account] AA Response {RADIUS BASE AVPS <------(21)-------- AA Response {RADIUS BASE AVPS <------(22)-------- Figure 14: Example message flow with resource pools andthus will haverating groups The user logs on (1). The PPC sends a RADIUS Access Request message toauthenticatethesubscriber from scratch. Authentication ofhome AAA server (2), and includes thesubscriberprepaid-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 thegeneration ofuser and authorizes theone-time charging event will happenaccess service, as is usual inconjunction.RADIUS (3). Note thatone-time-based charging can also be used to credittheprepaid userÆs account. For example,PPAC AVP is appended by theSAD can return resources toPPC in at least thesubscriber by issuing a one-time charge requestlast message thatincludesis sent to theamount of resourceshome 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 tobe credited intotheaccount. 10.6 Support for Tariff SwitchingPPS (4). ThePPCPPS 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 PPSmay support tariff switching as described earlier. Forreserves some of these and rates the service. In this example,as shown inthefigure below, traffic before 18:00 may be rated at ær1ÆPPS reserves 5 Euros andtraffic after 18:00 hoursdetermines that the access service is rated atær2Æ. The PPC reports usage before1 Euro per MB. In anticipation that the user requests more chargeable services throughout this prepaid session, andaftersince this is supported by theswitch occurs. Tariff switching only makes sense for volume based metering wherePPC, thevolume is billed at different rates. 18:00 ------------------+----------------- r1 | r2 ------------------+----------------- ^ ^ |<----TSI---> | | | Access-Accept Access-RequestPPS further associates a resource pool with this reservation, in this example PoolID=1. The PPCit indicates supportalso specifies the multiplier = 1 fortariff switching by settingtheappropriate bitaccess service. Note that, since 5MB = 5242880 octets, 1 unit in thePPAC. If the PPS needsresource pool corresponds tosignal a tariff switch time it will send a PTS attribute5 / 5242880 euros, whichindicatesis about 0.000095367431640625 Eurocents. (However, thepoint in time whenPPC does not need to know that.) Moreover, theswitch will occur.PPS associates the QuotaIdentifier QID=5 to this quota reservation. Thisindication representsidentifier can be used to later uniquely identify thenumber of seconds from current time (TarrifSwitchInterval TSI). At some point afterprepaid session, user, account, etc. The resulting Access Accept message is sent to thetariff switchhome AAA server (5) and forwarded to the PPCsends another Access- Request, as a result(6). Upon reception ofeithermessage (6), the PPC provides the access service to the userhaving logged off orand meters it accordingly. That is, for every octet consumed, thevolume threshold being reached. ThePPCreports how much volume was used usingsubtracts 1 unit (since thePPAQmultiplier is 1) from the resouce pool with PoolID=1. At some point intotal and how much volume was used aftertime, thetariff switch usinguser requests another chargeable service, namely service A (8). The PPC generates an Authorize Only Access Request that contains thePTSÆs VUATS subtype. Ifusual RADIUS attributes and the Service-ID identifying service A (9). The PPCsendshas 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 thismessage before the tariff switch,example thePPS will respondgroup withanother PTS where the TSIRating-Group-ID=1. This identifier isappropriately updated. In situations with multiple tariff switches, as shown below,included is message (9), which is then forwarded to the PPSMUST specify the length(10). Upon reception of message (10), thetariff switch period usingPPS identifies theTimeIntervalAfterTariffSwitchUpdate (TITSU) inuser and his account from thePTS attribute. 18:00 23:30 ------------------+---------------------+-------------- r1 | r2 | r3 ------------------+---------------------+-------------- ^ ^ ^ |<----TSI---><-----------|-------->|TITSU | | Access-Accept Access-Request Whenbase RADIUS attributes, the fact that aTITSUprepaid session isspecifiedongoing, and determines that enough credit remains in thePTS,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 thePPC MUST generate an Access-Request withinusers account; this corresponds to 50 minutes or, as encoded in thetime after TSI and before TITSU expires.DurationQuota AVP, 3000 seconds. As service A draws from the same prepaid account as the access service, the PPS associates this reservation with the same resource pool as the previous reservation (QID=5), namely the pool with PoolID=1. Note that,typically,in order for thePPC willabstract units in the pool to betriggered byconsistent, theVolume Threshold. However, itmultiplier has to be 1747.63. This ispossible that, during period r2, insufficient trafficbecause each second corresponds to about 0.10 / 60 = 0.00167 euros, which isgenerated and thusabout 1747.63 times thethresholdvalue 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 isnot reached. Evena new quota reservation, the PPS also allocates a new QuotaIdentifier to it, in thiscaseexample QID=7. The resulting RADIUS message is sent to the home AAA server (11) and forwarded to the PPCMUST generate an Access-Request(12). Upon reception of message (12), the PPC adjusts the units ingood time. Also note that separate services flows may have individual tariff periods. 10.7 Support for Roaming In certain networksresource 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 isessentialthe first quota reservation forprepaid data servicesservice A, there is nothing tobe availablesubtract. Thus, it adds 3000 * 1747.63 = 5242890 units toroaming subscribers. Support for both staticthe pool anddynamic roaming modelsremembers that 3000 seconds have been allocated to service A during this prepaid session. The PPC then provides service A to the user, and meters it against resource pool 1. That is, for every second it subtracts 1747.63 units from the pool. At some point in time, the user requests service B (13). The PPC determines that service B isneeded. In a static roaming scenariorated exactly in thesubscriber connectssame way as service A, i.e. that they belong toa foreign network whichthe same rating group, namely the one with Rating-Group-ID=1. Since this rating group hasa roaming agreement either directlybeen effectively authorised by the allocation of quota with QID=7, thehome network, or through a broker network. WhenPPC provides service B to thesubscriber logs into another foreign network, a new login procedure hasuser 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 tobe executed. In a dynamic roaming scenarioexhaustion. (For example, thesubscriberPPC maymove between networks while maintaining his connection. In such a scenariodetermine that thedata sessionpool isseamlessly handed off between"close to exhaustion" when has less than 10% its initial amount of units.) At that point, thenetworks. In both roaming scenarios,PPC needs to ask for replenishment for thesubscriber always authenticates himselfpool. 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 thehome network. Authorizationuser. 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 theprepaid session"access service" andquota replenishing occurs at"service A". This message contains two PPAQ AVPS, is sent to the homenetworkAAA server (14) andmore specifically atforwarded to theprepaid system where statePPS (15). Note that isbeing maintained. Dynamic roamingthe 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 ischallenging becausenot asubscriber who establishedaprepaid data session may move to another Access Device that does not supportproblem since theprepaid functionality. Even in this casePPS knows that "service A" was drawing from thesystem should be able to continuesame pool as theprepaid session. 10.8 Termination of a prepaid session When fraud or an error is detected,"access service" and that theeither"access service" did only consume 4 out of theaffected session, or all sessions5 MB it was allocated. Upon reception of message (15), theaffected subscriber should be terminated. It may happenPPS 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 theprepaid system enters a state where itPPS isunclear whether ornot aware of "service B" being provisioned to thedata session isuser.) The PPS then determines that sufficient funds remain inprogress. Under such a condition,thesystem may wish to terminate the sessionprepaid account in order for both services tomake sure thatbe continued. The PPS decides to reserve another 3MB for theuser is not billedaccess service and 30 minutes forthis potential inactivity. Certain handoff procedures used"service A". This corresponds to 3+3=6 euros. Since indynamic roaming scenarios requireRADIUS prepaid the quotas are encoded in a cumulative manner, the PPAQ attribute that grants thesystem terminatesquota for thesubscribers prepaid data session at"access service" contains aSAD. ThisVolume-Quota AVP of 8MB (8388608 octets), which is thecase, for example, when time-based prepaid is used and5MB that were initially allocated, plus themobile subscriber performs a dormant handoff. 10.9 Querying3MB allocated now. The resource pool identifier is, as previously, PoolID=1 andRebalancing Prepaid Resources It should be possiblethe multiplier is 1. Similarly, the PPAQ that grants quota for "service A" contains 4800 seconds (the initial 3000 plus 1800 that correspond to thePPS30 additional minutes). Again, the PoolID=1 and multiplier=1747.63. The resulting Access Response message is sent toQuerythecurrent resource consumption at a SADhome AAA server (16) andadjustforwarded to theuserÆs account balance. For example, a requestPPC (17). When the PPC received message (17) it checks how much quota has been allocated previously to thePPS is made (e.g. a one-time charging event) but"access service". It finds that theuserÆs accountanswer isdepleted but resources5MB (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 beenallocatedadded to resource pool 1. The PPC thus adds 3145728 abstract units to resource pool 1 (since theSAD.multiplier is 1). ThePPS should havePPC then acts similarly on theabilityother PPAQ attribute that exists in message (17). That is, the PPC determines that 3000 seconds of quota for "service A" had already been added toquerytheSAD and if it haspool. Thus only 1800 out of thespare resources4800 should be additionally added toreassignthequotaspool. Since the applicable multiplier here is 1747.63, the PPC adds further 3145734 abstract units to theSADpool 1. The PPC then continues to provide the access service, "service A" and "service B" to thepending request. Noteuser, 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 thePPS doesnÆt know resource usage untilPPC can subtract theSAD requestappropriate 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 formore resources.the access service and one for "service A". Suppose that, in total, 6.5MB were consumed by the access service, 70 minutes were consumed by "service A" and 20 minutes by "service B". The PPC reports 6.5MB (6815744 octets) and 90 minutes (5400 seconds) in its final message (19). Thiscanis forwarded to the PPS which determines, from the previous records, that the access service consumed another 2.5MB (since 4MB out of the 6.5MB were already reported in message (15), and that "service A" consumed further 600 seconds. This corresponds to 2.5 + (600/60)*0.1 = 2.5+1=3.5 euros. Thus, the PPS only subtracts 2.5 out of the 6 previously reserved euros from the user's prepaid account and responds with an Access Response as required by the RADIUS base specification. The home AAA server likewise responds with an Access Response. Authors' Addresses Avi Lior Bridgewater Systems 303 Terry Fox Drive Ottawa, Ontario Suite 100 Canada Email: avi@bridgewatersystems.com Parviz Yegani Cisco Mobile Wireless Group, Cisco Systems 3625 Cisco Way, San Jose, California 95134 USA Email: pyegani@cisco.com Kuntal Chowdhury Starent Networks 30 International Place, 3rd Floor Tewksbury, MA 01876 USA Email: kchowdhury@starentnetworks.com Hannes Tschofenig Siemens Otto-Hahn Ring 6 Munich, Bavaria 81739 Germany Email: hannes.tschofenig@siemens.com Andreas Pashalidis Siemens Otto-Hahn Ring 6 Munich, Bavaria 81739 Germany Email: andreas.pashalidis@siemens.com Intellectual Property Statement The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might bea long time. Inclaimed to pertain to theabsenceimplementation or use of the technology described in thiscapabilitydocument or thePPSextent 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 canminimizebe found in BCP 78 and BCP 79. Copies of IPR disclosures made to theeffectIETF Secretariat and any assurances ofthis phenomenon by allocating small quotas ûlicenses to be made available, or the result of an attempt made to obtain apracticegeneral 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 thatresultsmay cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. Disclaimer of Validity This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Copyright Statement Copyright (C) The Internet Society (2005). This document is subject to the rights, licenses and restrictions contained inmore message exchanges.BCP 78, and except as set forth therein, the authors retain all their rights. Acknowledgment Funding for the RFC Editor function is currently provided by the Internet Society.