Network Working Group A. Lior INTERNET-DRAFT Bridgewater Systems Category: Informational P. Yeganidraft-lior-radius-prepaid-extensions-07.txtdraft-lior-radius-prepaid-extensions-08.txt Cisco Expires:20 July, 200518 January, 2006 K. Chowdhury Starent NetworksY. Li Bridgewater SystemsH. Tschofenig C. Guenther SiemensFebruary 20,July 17, 2005 PrePaid Extensions to Remote Authentication Dial-In User Service (RADIUS) Status of this Memo By submitting this Internet-Draft,I certifyeach author represents that any applicable patent or other IPR claims of whichI amhe or she is aware have been or will be disclosed, and any of whichI becomehe or she becomes aware will be disclosed, in accordance withRFC 3668.Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire onJuly 20, 2005December 29, 2005. Copyright Notice Copyright (C) The Internet Society (2005). All Rights Reserved. Abstract This draft presents an extension to the Remote Authentication Dial- In User Service (RADIUS) protocol to support charging for prepaid services. The charging models supported are namely: volume-based charging, duration-based charging and one-time-based charging. Table of Contents 1. Introduction...................................................4 1.1Terminology................................................6Terminology................................................5 1.2 Requirementslanguage......................................6language......................................5 2. Overview.......................................................6 2.1PrePaidPrepaid ChargingModel.....................................7Models....................................6 2.2 ArchitecturalModel........................................7Model........................................6 2.3Why not existing RADIUS attributes?.......................13Motivation................................................11 3.Use-cases.....................................................15Operations....................................................13 3.1Simple pre-paid access use-case...........................15 3.2 Support for Multi-Services................................17 3.3 Resource Pools............................................18 3.4 Support for Complex Rating Functions......................20 3.5 One-Time-based Prepaid Charging...........................21 3.6 Support for Tariff Switching..............................22 3.7 Support for Roaming.......................................24 3.8 PrePaid termination.......................................24 3.9 Querying and Rebalancing Prepaid Resources................25 4. Operations....................................................25 4.1GeneralRequirements......................................25 4.1.1Requirements......................................13 3.1.1 Broker AAARequirements..............................25 4.2Requirements..............................13 3.2 Authentication and Authorization for Prepaid EnabledSADs.26 4.3SADs.14 3.3 Session StartOperation...................................28 4.4Operation...................................16 3.4 Mid-SessionOperation.....................................29 4.5Operation.....................................16 3.5 DynamicOperations........................................31 4.5.1Operations........................................18 3.5.1 Unsolicited Session TerminationOperation............31 4.5.2Operation............19 3.5.2 Unsolicited Change of AuthorizationOperation........32 4.6Operation........19 3.6 TerminationOperation.....................................32 4.7Operation.....................................20 3.7 Mobile IPOperations......................................33 4.8Operations......................................20 3.8 Operationconsiderationconsiderations forMulti-Services................34 4.8.1Multiple prepaid services....21 3.8.1 Initial QuotaRequest................................34 4.8.2Request................................22 3.8.2 QuotaUpdate.........................................35 4.8.3 Termination..........................................35 4.8.4Update.........................................22 3.8.3 Termination..........................................23 3.8.4 DynamicOperations...................................36 4.8.5Operations...................................23 3.8.5 Support for ResourcePools...........................36 4.8.6 One-Time-Charging....................................36 4.8.7Pools...........................23 3.8.6 One-Time-Charging....................................24 3.8.7 ErrorHandling.......................................37 4.9Handling.......................................24 3.9 AccountingConsiderations.................................38 4.10Considerations.................................25 3.10 SADOperation............................................38 4.11Operation............................................25 3.11 Interoperability with Diameter Credit ControlApplication38 5. Attributes....................................................38 5.1Application25 4. Attributes....................................................25 4.1 PPACAttribute............................................39 5.2Attribute............................................26 4.2 Session TerminationCapability............................40 5.3Capability............................27 4.3 PPAQAttribute............................................40 5.4Attribute............................................27 4.4 Prepaid Tariff Switching(PTS)............................46 5.5(PTS)............................34 4.5 Table ofAttributes.......................................49 6.Attributes.......................................36 5. SecurityConsiderations.......................................49 6.1Considerations.......................................37 5.1 Authentication andAuthorization..........................49 6.2Authorization..........................37 5.2 ReplenishingProcedure....................................50 7.Procedure....................................37 6. IANAConsiderations...........................................50 8.Considerations...........................................37 7. NormativeReferences..........................................51 9.References..........................................38 8. InformativeReferences........................................51 10.References........................................39 9. CallFlows...................................................52 10.1Flows....................................................39 9.1 Simple ConcurrentServices...............................53 10.2Services................................40 9.2 One-timeCharging........................................55 Contributor......................................................56 Acknowledgments..................................................56Charging.........................................43 Contributor......................................................43 Acknowledgments..................................................43 Author'sAddresses...............................................56Addresses...............................................43 Intellectual PropertyStatement..................................57Statement..................................44 Disclaimer ofValidity...........................................57Validity...........................................44 CopyrightStatement..............................................57Statement..............................................45 ExpirationDate..................................................58Date..................................................45 10. Appendix A û use cases.......................................45 10.1 Simple prepaid use case..................................45 10.2 Support for Multi-Services...............................47 10.3 Resource Pools...........................................48 10.4 Support for Complex Rating Functions.....................49 10.5 One-Time-based Charging..................................50 10.6 Support for Tariff Switching.............................51 10.7 Support for Roaming......................................53 10.8 Termination of a prepaid session.........................53 10.9 Querying and Rebalancing Prepaid Resources...............54 1. Introduction This draft describesRADIUS protocolextensionssupporting chargingforPrePaid Data Services. PrePaid data servicesthe RADIUS protocol. These extensions arecropping up in many wirelessmeant to enable service providers to charge andwireline based networks.bill their customers using prepaid accounts. APrePaid Data Serviceprepaid service subscriber isone that purchasesa user who has purchased a contract according to which he will receive a particular data service for either a period oftime,time or a quantity of data.Before providing aIn the typical prepaiddata service,scenario, the service providerchecksverifies that theprepaidsubscriber has sufficient fundsto coverin his account before delivering theparticular service request.service. Onlyafter confirmation thatif sufficient funds are available is the service provided to the user.The subscriber purchasesNote that theData Service using variousmeanssuch as buying a PrePaid Card, or online. Howby which the subscriberpurchases their PrePaid Data Service depends on the deployment andobtains funds isnot inoutside the scopeforof this document.InAlso note that, in somedeployments,scenarios, thePrePaid data service willsubscriber's account may becombined with other Prepaid services such as PrePaid circuit voice service. This is not an issue forused to fund multiple services, some of which may use the extensions defined in thisdocumentdocuments, and some may use otherthanmechanisms. While thefact thatinterworking of thePrePaid Data Servicesmechanisms described in thispaper should workdocument with otherPrePaid datamechanisms should be possible andor circuit voice services.straightforward, how this could be done depends on the external mechanisms and is, as such, outside the scope of this document. Thefundamentalbusiness driverfor a carrier to provide PrePaid data servicesbehind the protocol extensions defined in this document is to increase participation(subscriber(i.e. a service provider's subscriber base) and thus to increase revenues.Therefore, it makes sense that PrePaid services meetIn particular, the extensions were designed with the followinggoals:goals in mind. -LeverageMake use of existinginfrastructure, hence reducinginfrastructure as much as possible, and thereby limit the amount of necessary capitalexpenditures typically required when rolling out a new service;expenditures, -Abilityprovide the ability to rate service requests inreal-time;real-time,</t> -Abilityprovide the ability tocheck thatcharge theend userÆsuser's accountfor coverage for the requested service- charge prior toexecution of that service;service provision, -Protectprotect against revenue loss,i.e.,i.e. prevent an end user fromgenerating chargeable eventsobtaining service when thecredit of that account is exhausted or expired;available funds are not sufficient, -Protectprotect againstfraud;fraud, and -Bebe as widely deployable overDialup, Wirelessdialup, wireless and WLAN networks. Theprotocol described in this document maximizes existing infrastructure as much as possible û hence the use of the RADIUS protocol. The protocol is used in ways to protect against revenue loss or revenue leakage. This is achieved by defining procedures for the real-time delivery of service information to a pre-paid enabled AAA server, to minimize the financial risk, for the pre-paid enabled AAA server to be able to allocate small quotas to each data session and having the ability to update the quotas from a central quota server dynamically during the lifetime ofarchitecture between thePrePaid data session. As well, mechanisms have been designed to be able to recover from errorsentities thatoccur from time to time. Protection against fraud is provided by recording of accounting records, and by providing mechanisms to thwart replay attacks. As well, mechanisms have been provided to terminate data sessions when fraud is detected. PrePaid Systems will become more prevalent and sophisticated as the various networks such as Dialup, Wireless and WLAN converge. This protocol extension is designed to meet the challenges of converged networks. The draft mainly addresses how to useexecute the RADIUSprotocol to achieve a PrePaid Data Service. The prepaid architectureprotocols with the extensions defined in this document assumes that rating of chargeable events does not occur in the elementprovidingthat provides the service.ThisInstead, the ratingcouldmay be performedinat a dedicated server, termed theprepaidôprepaid enabled AAAserverserverö or simply ôprepaid serverö. Alternatively, the actual rating mayexistoccur in an entity behind thisAAAprepaid server.BusinessFurthermore, business logicand service rulesmaydefinedictate a time-dependent tariff model, for example thattariffing of events vary in time, e.g.,theparticularpriceper megabyte downloadfor a service maybe defined toswitch at 8pm from a hightariffto a low tariff. TheRADIUSextensionsfor prepaiddefined in this document supportscenarios enable scalable implementation of tariff switched prepaid systems.such scenarios. Furthermore,the prepaid architecturethis documents assumesthatan architecture where aquota server`quota server' is available which, through co-ordination with the rating entity and a centralized account balancemanagermanager, is able to provide a quotaresponse in responseindication forprepaid data service.a particular user when requested. This quota serverfunctionality could be performed in the prepaid enabled AAA servermay or mayexist in an entity behind this AAA server. Finally, the details of the PrePaid System, such as its persistent store, how it maintains its accounts arenotcovered at all. However,coexist inorder to definetheRADIUS protocol extensions it is necessary to discuss the functional behavior of the PrePaid System.prepaid server. 1.1 TerminologyServiceNetwork AccessDevice PrePaidServer As in RADIUS. (NAS) Prepaid Client(PPC) ThePrepaid Client (PPC) is theentity which triggers the RADIUS message exchange including prepaid extensions defined in this document.Typically the Prepaid Client ResidesThe PPC typically resides in the NAS.PrePaidPrepaid Server(PPS) ThePrepaid Server is theentity that interacts with the Prepaid Client using the RADIUS prepaid extensions defined in this document. Home network Thenetworkentity whichcontainsmaintains theuseruserÆs profile andthe userÆsprepaid account. WLAN Wireless Local Area Network Service Event Access Service The service that is provided to the user when the user is authenticated and authorized.In this document the term is used to differentiate between authorization of services that are explicitly identified by a Service Identifier. Example of Access Service would be the Main Service instance of 3GPP2.Furthermore,we usethe following terms are used in this document. Mobile IP and AAA terminology: Home agent (HA), Home network, Home AAA (HAAA), Broker AAA (BAAA), Visited AAA (VAAA) and Foreign Agent (FA) 1.2 Requirements language In this document, several words are used to signify the requirements of the specification. These words are often capitalized. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. 2. Overview This sectiongives a conciseprovides an overview of thePrepaid Charging modelsprepaid charging models, and their associated architectures, thatisare supported bythis document, andtheArchitectural model relevant toextensions proposed in thisdraft.document. 2.1PrePaid Charging Model There are several PrePaidPrepaid Charging Models A number of models of how to charge customers foravailingdataservices:services in a prepaid manner are supported, as follows. . Volume-based charging (VBC):(e.g.,(e.g. 2Cents/KiloByte);Cents/KiloByte) . Duration-based charging (DBC):(e.g.,(e.g. 3Cents/minute);Cents/minute) . Subscription-based charging (SBC):(e.g., Dollars/month+service);),(e.g. Dollars/month) . Event-based charging (EBC):(e.g.,(e.g. 7 Cents/URL oremail). Charging models can be further divided into those with debiting of prepaidemail) Whether the useraccounts and those with debiting of non-prepaid accountsaccount is a dedicated prepaid account or a general account (such as a currentaccounts at banks). Frombank account) is outside theperspectivescope of thisdocument all userÆs as treated as userÆs having a prepaid accounts.document. 2.2 Architectural Model The architectural modelsupports prepaid clients on a service access device. A SAD (e.g. a NAS) typicallyassumed in this document encompasses the following entities. (1) Service Access Device (SAD): This entity provides aaccess todata service toend-users. Athe users, and typically coincides with the NAS. The SADis a network entity onexecutes thedata path that includes aRADIUS clientand a PrePaid Client.which, for the purposes of this document, is termed the PPC. When prepaid service is used the SAD collects service event information and reports it whileand/oror after services are provided to theprepaiduser. This event information is sent toa prepaid server bythe PPS using theprepaid RADIUS extensions.extensions defined in this document. (2) The PPS: The RADUIS server. If real-time credit control is required, theSAD (prepaid client)PPC (SAD) contacts theprepaid serverPPS with service event information included before the service is provided. Theprepaid server, depending on the service event information,PPS performs a credit check and allocates a portion of available credit to the service event. (3) The rating entity: This entity convertsthisthe creditvaluethat is allocated by the PPS into a timeand/oror volume amount,whichcalled the ôquotaö. This quota is then returned to the requestingSAD.PPC (SAD) (via the PPS). The rating entity may also determine that duringthe allocated quota,service provision a tariff switch willoccur in whichoccur. In this case the rating entity will include details ofthe quota allocated prior to the tariff switch, details of the quota allocated after the tariff switch together with details ofwhentheexactly tariff switch will occur. The requesting SADthen(PPC) monitors the provision of the serviceexecutionaccording to the instructions returned by theprepaid server.PPS. After service completion or on a subsequent request for service, theprepaid serverPPS deducts thereserved allocationcorresponding amount of credit from theprepaid userÆsuser account.Similarly, whenWhen a user terminates an on-goingprepaidservice, theprepaid client signalsPPC informs theprepaid serverPPS withtheavalue corresponding tosuitable indication about the unused portion of the allocated quota. Theprepaid serverPPS is then able to refundunused allocated funds into a userÆs prepaid account. Therethe user account appropriately. Multiple PPSs MAY bemultiple prepaid servers in the systemdeployed for reasons of redundancy and load balancing. The system MAY alsocontain separateemploy multiple ratingserver(s) andservers. Prepaid accounts MAY be located in a centralized database.System internal interfaces can exist to relay messages between servers and an account manager. However theThe detailed architecture ofprepaidthe system and its interfaces areimplementation specific and are out ofoutside the scope of this specification. accounting +------------+ +-----------+ protocol +--------------+ |SubscriberUser |<----->| Service | | | | | | Access |<------------>| Accounting | | Device | | Device |<-----+ | Server | +------------+ +-----------+ | +--------------+ (PPC) | | | +--------------+ +------>|PrePaidPrepaid | prepaid | Server | protocol +--------------+ Figure 1 Basic Prepaid Architecture Theprepaid serverPPS and the accounting server in this architecturemodelare logical entities. The real configuration MAY combine them into a single host.There MAY exist protocol transparent RADIUS Proxies between prepaid client and prepaid server. These proxies transparently support the prepaid RADIUS extensions. In order to generalize the solution, in this paper we generalize the SADs, which in reality may be a NAS in Dialup deployments, PDSN (Packet Data Serving Node) or HA (Home Agent) in CDMA2000 deployments, an 802.11 WLAN Access Points or GGSN (Gateway GPRS Serving Node) in GPRS/UMTS deployments. To actively participate in Prepaid procedures outlined here, theThe SAD MUST have thePrepaid Client capabilities. Prepaid Client Capabilities include theability to meter the usage for a prepaid datasession; thissession. This usage includes time or volume (e.g. number ofbytes) usage.bytes). Inthe case ofroaming scenarios using mobile IP(in a wireless or wireline network),theprepaid client functionalityPPC maybe delegated torun on the Home Agent.It may also be possible to deliver limited prepaid services using RADIUS capabilities specified in RFC2865 and RFC2866.Furthermore, the deviceincludingrunning theprepaid client functionalityPPC may also haveDynamicôDynamic SessionCapabilities that includeCapabilitiesö such as the ability to terminate a data sessionand/oror change the filters associated with a specific data session by processingDisconnect MessagesôDisconnectö messages andChangeôChange ofAuthorizationAuthorizationö messages as per [RFC3576].In thisThis documentRADIUSassumes that the PPS is used as the AAA server. There are threekinds or categoriestypes of AAAservers.server, as follows. (i) The AAA server in the homenetwork, the HAAA,network (HAAA), which is responsible for authentication of thesubscriber and also authorization of the service.subscriber. In addition, the HAAA communicates with thePrepaid serversPPS using the RADIUS protocol in order to authorizeprepaidsubscribers.In AAA based roaming deployments the(ii) The AAA server in the visitednetwork, the VAAA,network (VAAA) which exists only in roaming scenarios and is responsible for forwarding the RADIUS messages to the HAAA. The VAAA may also modify the messages.InNote that, in certain roaming deployments, the visited network may beseparated fromconnected to the home networkbyvia one or more broker networks. (iii) The AAAserversserver in one of the aforementioned brokernetworks, BAAA arenetworks (BAAA), which is responsibleto route the RADIUS packets transparentlyfor forwarding messages andhence donÆtdoes not play an activerollrole in thePrepaid Data Serviceprepaid data service delivery.In thisA 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 thePrepaid Server is described in functional terms related to their interfacePPS communicates with theHAAA. The Prepaid ServerHAAA for the purposes of authorisation. Additionally, the PPS interfaces to entitieswhich: i)which - Keep theaccounting state of the prepaid subscriberssubscriberÆs account balance (balancemanager); ii) Allowmanager), - Rate access service requeststo be ratedin real-time (RatingEngine);Engine), andiii) Allow- Manage quotato be managedfor a particularpre-paidprepaid service (Quota Server).The various deployments for PrepaidThree deployment scenarios are presented in the remainder of this section. The firstdeployment is the basic Prepaid data service andscenario is depicted infigureFigure 2.TheIn this scenario, the SAD, whichsupportsruns theprepaid client functionality,PPC, theHAAAHAAA, and thePrepaid ServerPPS arecollocatedlocated in the same provider network. The Subscriber Device establishes a connection with one ofseveral Access Devicespossibly multiple SADs in the network. The selected SAD communicates withone or morea HAAAserversserver. However, inthe network. Toorder to provideredundancy more than oneredundancy, multiple HAAA may beavailable to use by a SAD.available. The networkwill havehas one or morePrepaid Servers. Multiple Prepaid Servers may be used to provide redundancy and load sharing.PPSs. The interface between the HAAA and the PPS is implemented using the RADIUS protocol together with the extensions described in thisspecification.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 towhatever protocol is used between the HAAA and the PPS.a functionally equivalent protocol. +------+ +-----+ | | | | +--------+ +--------+ +--| HAAA |--+--| PPS | | | | | | | | | | | |Sub |Subscr.| | Service| | +------+ | +-----+ | |---| Access |--+ | | Device | | Device | | +------+ | +-----+ | | | | | | | | | | +--------+ +--------+ +--| HAAA |--+--| PPS | | | | | +------+ +-----+ Figure 2 Basic Prepaid Access Architecture The second scenario, depicted in Figure3 shows3, is based on a static roamingprepaidarchitecture that is typical of a wholesale scenario for Dial-Up users or a broker scenario used in Dial-Up or WLAN roaming scenarios. +----+ +----+ +----+ +-----+ | | | | | | | | +------+ +-------+ +-|VAAA|-+-|BAAA|-+-|HAAA|-+-| PPS | | | | | | | | | | | | | | | | | |Sub | |Service| | +----+ | +----+ | +----+ | +-----+ | |--|Access |-+ | | | |Device| |Device | | +----+ | +----+ | +----+ | +-----+ | | | | | | | | | | | | | | | | +------+ +-------+ +-|VAAA|-+-|BAAA|-+-|HAAA|-+-| PPS | | | | | | | | | +----+ +----+ +----+ +-----+ | Visited | |Broker | | Home | | Network | |Network| | Network | Figure 3 Static Roaming Prepaid Architecture As in the basic prepaid architecture the subscriberÆs device establishes a connection with theSAD (NAS, WLAN Access Point).SAD. The SAD communicates with theVisiting AAA server (VAAA)VAAA using the RADIUS protocol.Again for redundancy there maybe more then one VAAA.TheVAAA communicateVAAA, in turn, communicates using the RADIUS protocol withAAABAAA servers in the brokernetwork (BAAA).network. There maybe more then one Broker Network between the Visited Network and the Home Network. The Home Network is the same as in thesimple architecture. To support dynamicarchitecture depicted in Figure 2. The third scenario is a roaming scenario where the networkwill utilize Mobile-Ip as illustrated inutilises Mobile-IP. It is depicted Figure 4.Note that typicallyIn this scenario the mobile devicewould be moving between networks that use the same technology such as Wireless or WLAN. Increasingly, device will be able to roammoves between networks that use differenttechnologytechnologies such as between WLAN andWireless andBroadband.Fortunately, Mobile-Ip can addressMobile-IP addresses this type ofroamingmobility and therefore we need not be concerned with the underlying network technology. +------+ +-------+ +----+ +----+ +----+ +-----+ | | |Service| | | | | | | | ||Sub ||Subscr| |Access +-----|VAAA|--|BAAA|--|HAAA|--| PPS | | |--|Device | | | | | | | | | |Device| | (FA) +--+ +----+ +-+--+ +----+ +-----+ | | | | | | +------+ +------ + | | | | | +----+ | | | | | |ROAMS +------------------+ HA | | | | | V +----+ | +----+ +------+ +-------+ | | | | | | |Service| +-|VAAA+------+ ||Sub ||Subscr| |Access | | | | | | |--|Device +-+ +----+ | |Device| | (FA) | | | | | +------------------------+ +------+ +-------+ Figure 4 Roaming using Mobile-IP and pre-paid enabled SADs InfigureFigure 4, the SubscriberdeviceDevice establishes aprepaidsessionbetweenwith the SAD in the foreignnetwork, which has prepaid capabilities. The subscriberÆs home address will be anchored at the Home Agent (HA) in the homenetwork. The setup for this access service is identical to the cases covered above.NoticeNote that the SAD may be collocated with the Foreign Agent (FA)in case of Mobile- IPv4.if Mobile-IPv4 is being used. As the subscriber devicemovesmoves, it establishes a connection with another SADin the same foreign network orpossibly in another foreign network. The prepaid data service should continue to be available. When a device associates to another SAD it MUST re-authenticate at the new SAD and de-associate orlogofflog off from the old SAD. Furthermore, any unused quota at the old SAD MUST bepromptlycreditedback tointo thesubscribers account. The reason we say promptly, issubscriberÆs account immediately. This has to happen immediately because otherwise, if thesubscriber is very low on resources to start with, the subscribersubscriberÆs funds are low, he maynot have enough resources to log on tobe denied service at the new SAD.The speed at which resources can be returned depend on the type of handoff procedure that is used. Some of the example of handoffs in wireless networks are dormant handoff, active handoff and fast handoff. As well, notice thatNote that, if the SADscouldcommunicate directly with each other then there could be a way to acceleratea fasterthe handoff procedure. In particular,it could accelerate the return of the unused portion of the quotas fromtheold Access Device.subscriber could be refunded more quickly. Unfortunately,standards with regards tohandoff procedures areevolving with each network technology creating their own schemespecific tomakethehandoff procedures more efficient.underlying network technologies and vary significantly in terms of delay. 2.3Why not existing RADIUS attributes?Motivation It has been asked ôWhy not use existing RADIUS attributes tobuildconstruct a protocol for prepaidsolution?scenarios? This will allow us to have a solution with existing devices without code modification.ö It is indeed possible tobuildconstruct aprepaidsolution for prepaid billing scenarios using existing RADIUS attributes. The RADIUS servercan simplywould send an Access-Accept message containing a Session-Timeout(27) andset Termination- Action(29) toinclude a Termination-Action(29) in the RADIUS-request. Upon receiving the Access-Accept message, the NASwillwould 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 messagewithindicating the amount of additional time inSession-Timeout(27) ora Session-Timeout(27). Alternatively, it would responds with an Access-Reject message if there were no more resources in the userÆs account.IfMoreover, if the user terminates the sessionbeforeprematurely, thetime expressed in Session-Timeout(27). TheNASwillwould recover any unused time from the accounting stream. There are several problems with such a solution:-It- It onlyallows forsupports time-basedprepaid.accounting. The solution presented in this documentallows forsupports both time and volume based prepaid.As well as extensibility for other features such as tarified based solutions. -Using- Using accounting messages to recoup unused time may be problematic because RADIUS accounting messages are not delivered in real-time. A RADIUS server may store-and-forward accounting messages in batches. The solution presented in thispaperdocument does not rely on Accounting Packets at all. It uses Access-Request, messages which do flow through any network in real-time. Delaying accounting messages may cause revenue leakage.-Session-Timeout(27)- Session-Timeout(27) is not a mandatory attribute. If a prepaid subscriber is being serviced by a NAS that does not adhere to Session-Timeout then that subscriberwill obtain unlimited service. -Termination-Action(29)may use the service for an undetermined period of time. - Termination-Action(29) presents its own issues.FirstFirstly the behaviour of Termination-Action(29) is not mandatory.Second,Secondly, according toRFC2865RFC2865, Termination-Action fires when theService is complete. But weprovision of the service has completed. However, service should not beterminating the service whileterminated when negotiating additionalquota. The refreshing of the time quotaquota, because this shouldbehappen in a manner transparent to theuser.subscriber. Because Termination-Action occurs when the Service iscompletecompleted it is unclear whether or nottheuser experience would betransparent. For example, will theaffected. The RADIUS server might even allocatethe subscribera new IPaddress?address to the subscriberÆs device. Furthermore, the RADIUS server has no way of telling why the Access-Request message was generated. The RADIUS serverwillmight have to wait for the corresponding accounting packet to determine the reason for this Access-Request message.LastlyFinally, re-authenticating the subscriber may takefartoo long. The solution presented in this document allows quota replenishing to occur in an undisruptive manner from theperspective of the user.user perspective. No re-authentication is required and quotas can be negotiated prior to thequotasavailable credit running out.-Prepaid ambiguity. Implementing prepaid using existing RADIUS attributes presents another problem.- Due to the fact that the standard RADIUS attributes are not mandatory,thenthe 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 subscriberwill get free access.might be able to obtain the service for free. The solution described in thisdocument,document requires that aprepaid capableprepaid-aware SADinforminforms the RADIUSserverserver, regardless of whether or notitthe latter supports the prepaidcapabilities.extensions. The RADIUS server cannowthen determine whether or not service should begranted or not.granted. For example, if a prepaid subscriber is connected to a NAS that does not support prepaid, the RADIUS server can either instruct the NAS to tunnel the traffic to another entity in the home networkthat does support prepaid client function(e.g. the Home Agent) that supports prepaid, or itmay allow the subscriber to get access but restrict the traffic.provide only a restricted service.] Theprepaidsolutionwe present is a robust carrier grade prepaid solution. It onlypresented in this document requires the support of2two mandatoryattributesand one optional attribute. Furthermore, it does notreallyrequiremucha great amount of additional codesupportatthe NAS. NASesa NAS that alreadysupport measurement ofsupports timeand volume. Thisor volume metering. The solution requires thattheyRADIUS entities advertise their prepaid capabilities in anAccess-Request;Access-Request and that they generate an Access-Request Authorize-Only packet to obtain more quotaatwhen or before the current quota is used up. It also requiresthatthe NAS to send an Access-Request with Authorize-Only when the session terminates in order toreturn any unused quota to the prepaid system. Lastlyrefund the subscriberÆs account appropriately. The solution provided in this document is extensible.This document definesFor example, thebasic exchanges between a prepaid capable NAS and a RADIUS server. Theprotocol caneasilybe extended to support tariff switching and other prepaid business models.3. Use-cases In this section we present a set of use cases that help establish the requirements needed to deliver PrePaid data services. These use-cases donÆt address how the PrePaid account is established or maintained. It is assumed that the PrePaid subscriber has obtained a valid account from a service provider such as a wireless operator or a WLAN operator. To make the document as general as possible, the use cases cover the experience from the SAD and not from the UserÆs Device. The connection between the UserÆs Device, which typically involves setting up a layer 2 session, e.g., PPP session or GPRS PDP Context, is specific to a given network technology and the details are not required to deliver a PrePaid service. 3.1 Simple pre-paid access use-case A PrePaid subscriber connects to his home network. As usual, the Access Device that is servicing the subscriber will use the AAA infrastructure to authenticate and authorize the subscriber. The SAD sends a RADIUS Access-Request to the AAA system to authenticate the subscriber, and identify and authorize the service. The Access-Request includes the subscriberÆs credentials and may include the PrePaid capabilities of the SAD. PrePaid capabilities MUST be included if the SAD supports PrePaid functionality. The AAA System proceeds with the authentication procedure. This may involve several transactions such as in EAP [RFC2284]. Once the subscriber has been authenticated, the AAA system determines that the subscriber is a PrePaid subscriber and requests that the PrePaid System authorize the PrePaid subscriber. The request MUST include the PrePaid Capabilities of the serving SAD. The PrePaid System will validate that the subscriber has a PrePaid Account; it will validate that the account is active; and will validate that the SAD has the appropriate PrePaid capabilities. If all is in order, the PrePaid System will authorize the subscriber to use the network. Otherwise it will reject the request. The response is sent back to the AAA System. The response includes attributes to indicate the allocation of a portion of the subscriberÆs account called the initial quota (in units of time or volume) and optionally a threshold value. The reason we allocate a portion of the userÆs account is that the user may be engaged in other Services that may draw on the same Prepaid account. For example the user may be engaged in a data session and a voice session. Although, these two services would draw from the same account the involved separate parts of the system. If the entire quota was allocated to the data session then the user would have no more funds for a voice session. The AAA system incorporates the PrePaid attributes received from the PrePaid System into an Access-Accept message that it sends back to the SAD. Note the AAA System is responsible for authorizing the service whereas the PrePaid System is responsible for PrePaid authorization. Upon receiving the Access-Response, the SAD allows the PrePaid data session to start and it starts to meter the session based on time or volume, as indicated in the returned Quota Once the usage for the session approaches the allotted quota (as expressed by the threshold), the SAD will request an additional quota. The re-authorization for additional quota flows through the AAA system to the PrePaid System. The PrePaid System revalidates the subscriberÆs account; it will subtract the previous quota allocation from the userÆs account balance and if there is a balance remaining it will reauthorize the request with an additional quota allotment. Otherwise, the PrePaid System will reject the request. Note the replenishing of the quotas is a re-authorization procedure and does not involve re-authentication of the subscriber. It is important to note that the PrePaid System is maintaining session state for the subscriber. This state includes how much account balance was allocated during the last quota allocation for a particular session and how much is left in the account. Therefore, it is required that all subsequent messages about the PrePaid session reach the correct PrePaid System. Upon receiving a re-allotment of the quota, the SAD will, continue the data service session until the new threshold is reached. If the request for additional quota cannot be fulfilled then the SAD will let the subscriber use up the remaining quota and terminate the session. Alternatively, instead of terminating the session, the SAD may restrict the data session such that the subscriber can only reach a particular web server. This web server maybe used to allow the subscriber to replenish their account. This restriction can also be used to allow new subscribers to purchase their initial PrePaid Service. Should the subscriber terminate the session before the quota is used up, the remaining balance allotted to the session must be credited back to the subscriberÆs account. As well, while the Access Device is waiting for the initial quota, the subscriber may have dropped the session.Theinitial quota must be credited back to the subscribers account. 3.2 Support for Multi-Services Up to now we were looking at session that consisted of a single service, ôAccess Serviceö. An ôAccess Serviceö is the basic service that is provided to the user by the SAD after successful authentication and authorization. When we donÆt differentiate between different types of services the ôAccess Serviceö aggregates all the services that the user my be engaged in on a particular SAD. For example, the user may be browsing the web, and participating in a VoIP conversation, watching streaming video and downloading a file. Some operators may want to distinguish between these services. Some services are billed at different rates and services maybe metered differently. Therefore, the prepaid solution needs to be able to distinguish services, and allocate quotas to the services using different units (e.g. time, volume) and allow for those quotas to be utilized at different rates. +---------+ | Session | +---------+ | V N +--------------+ +-------+ | Service |------>| Quota | | (service-Id) | +-------+ +--------------+ As shown in the above diagram, a Session can have N Services. Each service is identified by a Service-Id. The format of the Service-Id is notextensions described inthe scope ofthis documentbut the Service-Id could be expressed as an IP flow using the stand 5-tuple (Source-IP and Port, the Destination-IP and Port, and the protocol type). Each service is allocated an appropriate quota. 3.3 Resource Pools When working with multiple services that results in multiple quota allocation another problem arises. Even though quotas are portioned out in fractional parts of the userÆs prepaid account, there could be a situation where one Service utilizes its quota faster then another Service. When the userÆs account is used up, there could be a situation where one Service is unable to obtain additional quota while another Service has plenty of quota remaining. Unless the quotas can be rebalanced, the SAD would then have to terminate that Service. As well, even before that happens, the existence of several Services could generate an excessive amount of traffic as the services update their quotas. One method to solve these problems is to utilize resource pools. Resource pools allow us to allocate resources to several services of a session by allocating resources to a pool and have services draw their quota from the pool at a rate appropriate to that service. When the quota allocated to the pool runs out, we replenish the pool. +-----------+ | Service-A |-----+ +--------+ +-----------+ | Ma | | +-------->| | | Pool | +-------->| (1) | +-----------+ | Mb | | | Service-B |-----+ +--------+ +-----------+ As the figure above shows, Service-A and Service-B are bound to Pool(1). Ma and Mb are the pool multipliers (that are associated with Service-A and Service-B respectively) that determines the rate at which Service-A and Service-B draw from the pool. The pool is initialized by taking the quota allocated to each service and multiplying it by Mn. Therefore, the amount of resources allocated to a pool is given by: Poolr = Ma*Qa + Mb*Qb + . . . A Pool is empty if: Poolr <= Ca*Ma + Cb*Mb + . . . where: Ca,Cb are the consumed resources of Service-A and Service-B respectively. Note that the resources assigned to the pool are unit less. That is, Service-A can be rated at $1 per Mbyte and Service-B can rated at $0.10 per Minute. In this case if we allocate $5 worth of resources on behalf of service-A to the pool we would set Ma = 10 and place 50 units into the pool. If we allocate $5were designed based onbehalf of Service-B to the Pool, then M=1 and place 50 units into the Pool. The pool would haveatotal sum of 100 units to be shared between the two services. Each Mbyte used by Service-A will draw 10 units from the pool and each minute used by Service-B will draw 1 unit from the pool. 3.4 Support for Complex Rating Functions The rate of usenumber ofa resource by a service can be very complex. Some servicesuseresources (e.g. time, volume) linearly. For example, a service maybe consuming resources at a rate of $1 per Mbyte. In somecasesan operator may wish to apply a much more complex rating function. For example, a service provider may wish to rate a service such that the first N Mbytes are free, then the next M Mbytes are rated at $1 per Mbyte and volume above M bytes be rated at $0.50 per Mbyte. This rating function could be achieved by repeated message exchanges with the Prepaid System. To avert the need to exchange many messages and to support even more complex rating functions we support Rating Groups. A Rating Group is provisioned at the SAD. As illustrated in the figure below, a Rating Group is associated with one or more Servicesanddefines the rate that the services associated with the Rating Group consume the quota. +-----------+ | Service-A |------+ +-----------+ | +--------------+ +-------+ +---->| | | Quota | | Rating Group |------>| or | +-----------+ +---->| | | Pool | | Service-B |------+ +--------------+ +-------+ +-----------+ During authorization of the of a service, if the service is associated with a Rating Group, the Prepaid Client sends the Rating Group to the Prepaid Server. The prepaid service authorizes the Rating Group by assigning it a Quota and optionally assigning it to a Resource Pool. When service that belongs to an authorized Rating Group is instantiated, then the Prepaid Client does not need to authorize that service. This could greatly reduce the amount of traffic between the Prepaid Client and the Prepaid Server. 3.5 One-Time-based Prepaid Charging One-Time-based Prepaid Charging is used for charging of Service Events where there is no session. That is, the Service Event does not have a start or an end.scenarios. Anexample of a one-time service event is the purchase of a ring-tone. The one-time event in this case is the userÆs purchasing the right to use a ring-tone. The actual downloading of the tone is a separate service event totally distinct from the right to use the ring tone. For example, the user may have already downloaded the tone and then after being totally satisfied with the quality, decides to purchase the right to use the tone. Subscription based services can also be modeled as a One-Time event. In this case the one-time service event is the purchase of a subscription to use a service for a month. While the user uses the service his usage maybe metered especially if there are limits associated with the service. For a given user, One-time-based charging may occur in conjunction with the other charging models. For example, the prepaid user maybe accessing a website which is being metered based time or volume while they purchase the right to use a ring tone (a one-time-based event). Note: it is up to the service providers to decide whether or not the user will be charged for the download of the tone and also be charged for the time and volume required to download the ring-tone. The facilities provided by this document gives the service provider the capability to achieve their service charging business goals. For example, should the service provider choose not to charge for the download volume or time, then they can treat the download IP flow as a separate service that is exempt from charging. One-time-based charging occurs when the SAD sends an indication to the PPS identifying the service, and the units that need to be debited from the account. The units to be debited from the account and how those units are rated (if they donÆt represent money) is not in scope of this specification. One-time-based charging may occur under two conditions: the SAD may not have a authenticated context (or access to an authenticated context for the subscriber); the SAD has access to authenticated context for the subscriber. In the former case the SAD will have to authenticate the subscriber. For example, the prepaid user maybe authenticated by the SAD providing access service. However when the user accesses the subscription server to purchase a subscription, the subscription server may not have access to the authentication context of the subscriber and thus will have to authenticate the subscriber. Authentication of the subscriber and the generationoverview ofthe one-time charging event will happen at the same time. Note that one-time-based charging can be used to credit the prepaid userÆs account. For example, the SADthese canreturn resources back to the prepaid subscriber by making a one-time charge request that includes the amount of resource to be credited back to the user. 3.6 Support for Tariff Switching The PPC and the PPS may support tariff switching for volume based prepaid packet service. Tariff switching allows the PPS to signal the PPC when a change of rating or tariff switch is to occur. For example as shown in the figure below, traffic before 18:00 hours is rated at ær1Æ or business rates and traffic after 18:00 hours is rated at ær2Æ or non-business rates. The PPC will then be able to report usage before the tariff switch point and usage after the tariff switch point. Since time is measured in seconds, tariff switching only makes sense for volume based prepaid service where the volume is billed at different rates: one rate before the tariff switch period and another rate after the tariff switch period. 18:00 ------------------+----------------- r1 | r2 ------------------+----------------- ^ ^ |<----TSI---> | | | Access-Accept Access-Request When tariff switching is supported by the PPC it indicates support for tariff switching by setting the appropriate bit in the PPAC. If the PPS requires to signal a tariff switch time it will send a PTS attribute which will indicate when the tariff switch period is to occur as a number of seconds from the current time (TarrifSwitchInterval TSI). Sometime after the tariff switch period the PPC will send another online Access-Request. Either the user has logged off or the volume threshold has been reached. The PPC will report how much volume was used using the PPAQ and how much volume was used after the tariff switch using the PTSÆs VUATS subtype. If the PPC will send and event before the tariff switch time, say the Volume threshold has been reached, the PPS will respond with another PTS with the TSI indicating how many seconds until the tariff switch time. In situations where there is going to be another tariff switch period, as shown below, the PPS MUST specify the length of the tariff switch period using the TimeIntervalAfterTariffSwitchUpdate (TITSU) in the PTS attribute. 18:00 23:30 ------------------+---------------------+-------------- r1 | r2 | r3 ------------------+---------------------+-------------- ^ ^ ^ |<----TSI---><-----------|-------->|TITSU | | Access-Accept Access-Request When TITSU is specified in the PTS, the PPC MUST generate an online Access-Request within the time after TSI and before TITSU expires. Normally the PPC will be triggered by the Volume Threshold, but there is no guarantee that the user session will generate any volume during the period between 18:00 and 23:30 hours. If TITSU was not specified in this case, then if there was some volume generated during r2 but not enough to trigger a prepaid update before the next tariff switch at 23:30. Then the PPC will not be able to report how much volume was generated during r1, r2, and r3. When prepaid for multiple flows is supported, then each flow could have it own tariff switch period. For example, best effort flow may not have a tariff switch associated with it, yet a voice over IP call may have a tariff switch period. The Voice over IP call may bill at one rate for the first 5 minutes and another rate for the rest of the call. [EDITORÆS NOTE: Need to consider tariff switching with pools. Is it worthwhile?] 3.7 Support for Roaming For some networks it is essential that PrePaid Data Services be offered to roaming subscribers. Support for static and dynamic roaming models are needed. Static roaming is where the subscriber logs onto a foreign network. The foreign network has a roaming agreement directly with the home network or through a broker network or networks. The subscriber remains logged into the network until the subscriber changes location. When changing location a new connection and a new login procedure is required. Dynamic roaming allows to subscriber to move between networks while maintaining a connection with the home network seamlessly. As the subscriber moves between networks, the data session is handed off between the networks. In both roaming scenarios, the subscriber always authenticates with the home network. PrePaid authorization and quota replenishing for the session need tobereceived at the home network and more specifically at the PrePaid System where state is being maintained. Dynamic roaming is particularly challenging. A subscriber that established a PrePaid Data Session may roam to another Access Device that doesnÆt not support PrePaid functionality. The system should be capable to continue the PrePaid session. 3.8 PrePaid termination When fraud is detected by the PrePaid System, or when an error is detected, it may be beneficial for the PrePaid system to terminate a specific session for the subscriber or all the sessions of a subscriber. Some errors can occur such that the PrePaid System is in a state where it is not sure whether the session isfound inprogress or not. Under conditions such as this, the PrePaid system may wish to terminate the PrePaid data session to make sure that resources are not being utilized for which it canÆt charge for reliably. Some handoff procedure used during dynamic roaming may require that the PrePaid system explicitly terminate the subscribers PrePaid data session at an SAD. For example, if time based PrePaid service is being used and the mobile subscriber performs a dormant handoff, the PrePaid System needs to explicitly terminate the PrePaid session at the old SAD. 3.9 Querying and Rebalancing Prepaid Resources It should be possible to allow the Prepaid Server to Query the current uses state of a prepaid balance at a SAD and adjust the prepaid resources. For example, a request to the PPS is made (e.g., a one-time charging event) but the userÆs account is depleted but resources have been allocated to the SAD. The PPS should have a the capability to query the SAD and if it has the spare resources to reassign the quotas to the SAD and to the pending request. Note that the PPS doesnÆt know resource usage until the SAD request for more resources. This can be a long time. In the absence of this capability the PPS can minimize the occurrence of this scenario by allocated smaller quotas. But the result will be many more transactions. The ability to query and to rebalance resources provides a good trade-off. 4.Appendix A. 3. Operations4.13.1 General Requirements4.1.13.1.1 Broker AAA Requirements Broker AAA (BAAA) servers MUST support the Message-Authenticator(80) attribute as defined in [RFC2869]. IfBAAA serversthey are used,the BAAA servers function is tothey forward the RADIUS packets as usual to the appropriate RADIUS servers. Accounting messages are not needed to deliver aPrePaidprepaid service. However, accounting messages can be used to keep thePrePaid Server currentPPS up to date as to what is happening with thePrePaidprepaid data session. Therefore, a BAAA SHOULD deliver RADIUS Accounting messages using the pass through mode described in [RFC2866].4.23.2 Authentication and Authorization for Prepaid Enabled SADs The SAD initiates the authentication and authorization procedure by sending a RADIUS Access-Request to the HAAA. If the SAD hasPrePaid ClientPPC capabilities, it MUST include the PPAC(TBD) attribute in the RADIUS Access-Request. The PPAC(TBD) attribute indicates to thePrePaid server the PrePaidPPS which prepaid capabilities are possessed by the SAD. These are required in order to complete thePrePaidprepaid authorizationprocedures.procedure. If the SAD supports the Disconnect-Message or the Change-of- Authorization capabilities, then it SHOULD include the Dynamic- Capabilities attribute. In certain deployments, there may be other waysin whichto 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 theChange-of-AuthorizationChange-of- Authorization message, the AAA server would then be responsible for terminating the session usingwhateverthe means that are supported by the device. If the authentication procedure involves multipleAccess-Requestsmessage 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-Requestwill beis sent as usual to the HAAA. The packet maybe proxiedpass throughzeroone or more BAAA. Once the Access-Request arrives at the HAAA, the HAAAwill authenticateauthenticates the subscriber. Ifthe subscriber is cannot be authenticated,this fails, the HAAAwill sendsends an Access-Reject messagebackto the client. Ifthe subscriber is authenticated,authentication succeeds, the HAAAwill determinedetermines whether or not the subscriber is aPrePaidprepaid subscriber.The techniques used to determine whether or not a subscriber(How this isa PrePaid subscriberdone is beyond the scope of thisdocument.document.) If the subscriber is not aPrePaidprepaid subscriber, then the HAAAwill respondresponds as usual with an Access-Accept or an Access-Reject message. If the subscriber is aPrePaid Subscriberprepaid subscriber then the HAAA SHALL forward the Access-Request toa PrePaid serverthe PPS for further authorization. The Access-Requestwill containcontains the PPAC(TBD)attribute,attribute and theDynamic-CapabilitiesDynamic- Capabilities attribute if one wasincluded; theincluded. The User-Name(1) attribute MAY be set to a value thatwould representrepresents theSubscriberÆs PrePaid Identity.subscriberÆs identifier. This attribute is used by thePrePaid serverPPS to locatethe PrePaid SubscriberÆshis account. For added security, the HAAA MAY also set theUser-Password(2)User- Password(2) attribute to the password used between the HAAA and thePrePaid server.PPS. ThePrePaid server lookupsPPS locates the subscriberÆsPrePaidaccount andwill authorizeauthorizes him. During this procedure, thesubscriber takingPPS takes into consideration the SADPrePaid ClientPPC Capabilities. Upon successful authorization, thePrePaid server will generatePPS generates an Access-Accept containing the PPAC(TBD) attribute and the PPAQ(TBD) attribute. The PPAC attribute returned to the client indicates the type of prepaid service to be provided for the session. The PPAQ(TBD) attributeincludes:includes the following. - TheQUOTA-Id,QUOTA-ID, which is set by thePrePaid serverPPS to a unique value that is used to correlate subsequent quota requests; - Volume and/or Time quotas, which are set toa valuevalues representing a portion of the subscribersaccount;credit; - It MAY contain a Time or Volume Threshold that controls when the SADrequestsshould request additional quota; - The IP address of the ServingPrePaid ServerPPS and one or more alternativePrePaid Servers.PPSs. This is used by the HAAA to route subsequent quota replenishing messages to the appropriatePrePaid server(s).PPS(s). Note: Idle-Timeout(28) can be used to trigger the premature termination of apre-paid service following subscriberprepaid service, for example as a result of inactivity. Depending on site policies,upon unsuccessfulafter failed authorization, thePrePaid server willPPS may generate an Access-Reject to terminate the session immediately. Alternatively, thePrePaid serverPPS may generate an Access-Accept blocking some or all of the traffic and/or redirect some or all of the traffic to a locationwhereto a fixed server. (This feature could be used, for example, to prompt thesubscriber canuser to replenish theiraccount for a period of time.account.) Blocking of traffic is achieved by eitherFilter-Id(11)Filter-ID(11) or NAS-Filter-Rule(see Redirect I-d). Redirection is achieved by sending Redirect-Id orRedirect- Rule,Redirect-Rule, HTTP Redirection defined in the Redirect I-d. Theperiod oftime period before theblocked/redirectedsessionlast can beis blocked/redirected is specified by the Session-Timeout(27) attribute. Upon receivingthean Access-Accept from thePrePaid Server,PPS, the HAAAwill appendappends the usual service attributes and forward the packet to the SAD. The HAAA SHOULD NOT overwrite any attributes already set by thePrePaid server.PPS. If the HAAA, receives an Access-Reject message, it will simply forward the packet to its client. Depending on site policies, if the HAAAfails todoes not receive an Access-Accept or an Access-Reject message from thePrePaid serverPPS it MAY do nothing or send an Access-Reject or anAccess-AcceptAccess- Accept message back toits client. 4.3the PPC. 3.3 Session Start Operation Therealstart of the session is indicated by the arrival of an Accounting-Request(Start) packet. The Accounting-Request (Start) MAY be routed to thePrePaid Server soPPS such that it can confirm the initial quota allocation. Note that thePrePaid Serverrole of the PPS is not to record accounting messages and therefore it SHOULD not respond with an Accounting Response packet. If thePrepaid serverPPS 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 thePrepaid serverPPS does not receive indication directly (viaAccounting-Request(start))Accounting- Request(start)) or indirectly, it SHOULD after some configurable time, deduce that the Session has not started. If the SAD supports termination capabilities, the PPS SHOULD send a Disconnect Message to the SAD to ensure that the session is indeed dead.4.43.4 Mid-Session Operation During the lifetime of aPrePaidprepaid data session the SADwill request to replenishrequests the replenishment of the quotas using Authorize-Only Access-Request messages. Once either the allocated quota has beenreachedexhausted or the threshold has been reached, the SAD MUST send an Access-Request withService-Type(6)Servicetype(6) set to a value of ôAuthorize Onlyö and the PPAQ(TBD) attribute. The SAD MUST also include NAS identifiers, and Session identifier attributes in the Authorize Only Access-Request. The Session Identifier should be the same asthosethe one used during the Access- Request. For example, if the User-Name(1) attribute was used in the Access-Request it MUST be included in the Authorize Only Access-RequestRequest, especially if the User-Name(1) attribute is used to route the Access-Request to the Home AAA server. The Authorize Only Access-Request MUSTnotNOT includeeithera User Passwordorand MUST NOT include a Chap Password. In order to authenticate the message, the SAD MUST includethea Message-Authenticator(80) attribute. The SADwill computecomputes the value for the Message-Authenticatorbased onaccording to [RFC2869]. When the HAAA receives the Authorize-Only Access-Request that contains a PPAQ(TBD), it SHALL validate the message using the Message-Authenticator(80) as per [RFC2869]. If the HAAA receives an Authorize Only Access-Request that contains a PPAQ(TBD) but not a Message-Authenticator(80) it SHALL silently discard the message. An Authorize Only Access-Request message that does not contain a PPAQ(TBD) is eitherin errorerroneous or belongs to another application (for example, a Change of Authorization message [RFC3576]). In this case the Authorize Only Access-Requestwillis eitherbesilently discarded or handled by anotherapplication (not in scope of this document).application. Once the Authorize Only Access-Request message is validated, the HAAA SHALL forward the Authorize Only Access-Request to the appropriatePrePaid Server.PPS. The HAAA MUST forward the Authorize OnlyAccess-RequestAccess- Request to thePrePaid serverPPS specified in the PPAQ(TBD). The HAAA MUSTsign the message using the Message- Authenticator(80) andadd an Message-Authenticator(80) to theprocedures inmessage, according to [RFC2869]. As with the Access-Request message, the HAAA MAY modify theUser-Name(1)User- Name(1) attributeto a valuesuch that it represents the userÆs internalPrePaidprepaid account in thePrePaid server.PPS. Note thePrePaid server couldPPS 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, thePrePaid serverPPS MUST validate the Message- Authenticator(80) asprescribeddescribed in [RFC2869]. If validation fails, themessage is invalid, the PrePaid serverPPS MUST silently discard the message. If itreceivedreceives an Authorize Only Access-Request message that does not contain a PPAQ(TBD) it MUST silently discard the message. ThePrePaid server will lookupPPS locates thePrePaidprepaid sessionbystate using thePrePaidQuota Id contained within the PPAQ(TBD). ThePrePaid Server would, takePPS takes thelastmost recently allocated quota andsubtract thatsubtracts it from theUserÆsuserÆs balance. Ifthere is remaining balance,sufficient balance remains, thePrePaid server re-authorizesPPS authorizes thePrePaid session by allocate anPPS and allocates additional quota. ThePrePaid serverPPS maywant toalso calculate adifferentnew thresholdvalues as well.value. Upon successful re-authorization, thePrePaid server will generatePPS generates an Access-Accept containing the PPAQ(TBD) attribute. TheAccess- AcceptAccess-Accept message MAY containService-Type(6)Servicetype(6) set to Authorize-Only and MAY contain the Message-Authenticator(80). Depending on site policies, upon unsuccessful authorization, thePrePaid server will generatePPS generates an Access-Reject or an Access-Accept with Filter-Id(11) or Ascend-Data-Filter (if supported) attribute and theSession-Timeout(27)Session- Timeout(27) attribute such that thePrePaidsubscribercouldcan get access to a restricted set of locations for a shortdurationperiod of time. This feature could be used toallow themenable users to replenish theiraccount, oraccounts, createan account;new accounts, or to browse free content. Upon receiving the Access-Accept from thePrePaid server,PPS, the HAAA SHALL return the packet to its client. If theHAAA,HAAA receives an Access-Reject message, itwill forwardforwards the packet. Depending on site policies, if the HAAAfails todoes not receive an Access-Accept or an Access-Reject message from thePrePaid serverPPS 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 thePrePaid serverPPS MAY update the PrePaidServer attribute(s) and these may have to be saved as well. Upon receiving an Access-Accept messagecontaining eitherthat contains an Filter-Id(11) orId(11), an Ascend-Data-Filterattributes, andattribute, or SessionTimeout(27). TheTimeout(27), the SAD SHALL restrict the subscriber session accordingly.4.53.5 Dynamic Operations ThePrePaid serverPPS maywant totake 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 ofactionsaction that thePrePaid server can perform:PPS may perform. Firstly, itcanmay requestthatthe session to beterminated; orterminated. Secondly, itcanmay requestthatthe attributes associated with the session to be modified. More specifically, itcanmay modify a previously sent PPAQ(TBD) Both of these actions require that the session be uniquely identified at the SAD. As a minimum thePrePaid server: -MUSTPPS MUST - provide either the NAS-IP-Address(4) or the NAS-Identifier(32)-MUST- provide at least one session identifier such as User-Name(1), Framed-IP-Address(), the Accounting-Session-Id(44). Other attributes could be used to uniquely identify aPrePaidprepaid data session.For a discussion on Dynamic Operations as they related Mutli-Service operations see further on. 4.5.13.5.1 Unsolicited Session Termination Operation At anytime during a session thePrepaid ServerPPS may send a Disconnect Message in order to terminate a session. This capability is described in detail in [RFC3576]. ThePrePaid serverPPS sends a Disconnect Message that MUST contain identifiers that uniquely identify thesubscriberÆsdata session and the SAD servicing that session. If the SAD receives a Disconnect-Message, itwill respondresponds with either a Disconnect-ACKpacket ifmessage (if itwasis able to terminate thesessionsession) orelse it will respondwith a Disconnect-NAKpacket.packet (otherwise). Upon successful termination of a session the SAD MUST return any unused quota to thePrepaid ServerPPS by issuing an Authorize Only Access-Request containing the PPAQ which contains any unused Quota and theUpdate-ReasonUpdate- Reason set to ôRemote Forced Disconnectö.4.5.23.5.2 Unsolicited Change of Authorization Operation Atanytimeany time during theprepaidsession thePrepaid ClientPPC may receive a Change of Authorization (CoA) message. APrepaid ServerPPS may send a new Quota to either addadditional quotaor to remove quotaalreadythat is allocatedforto the service. If the Change of Authorization contains a PPAQ then that PPAQwill overrideoverrides a previously received PPAQ. ThePPAQ may contain more allocated Quota or less allocated quota. ThePPS MUST NOT change the units used in the PPAQ. If the newly received PPAQ reduces the amount of allocated quota beyond what iscurrentlyalready used then the SADwill acceptaccepts 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; if the quota received is less then the currently used level then the SAD would follow the normal procedures followed when a quota is used up. 4.6update. 3.6 Termination Operation The termination phase is initiated wheneither:(i) theSubscribersubscriber logsoff;off, (ii) thequotas have been consumed,subscriberÆs balances is exhausted, or (iii) when the SAD receives a Disconnect Message. In the case where the user logged off, or the SAD receives a Disconnect Message, the SADwill sendsends an Authorize-OnlyAccess- RequestAccess-Request message with a PPAQ(TBD) and Update-Reason attribute set to either ôClient Service terminationö or ôRemote Forceddisconnectö anddisconnectö. This message indicates thecurrently usedalready consumed quota. In the case where the currently allocated quotahas been reached,is exhausted, if the PPAQ(TBD) contained Termination-Action field, the SADwill followfollows the specified actionwhich(which would be to immediately terminate theservice, to requestservice), requests more quota, orto Redirect/Filterredirects/filters the service.4.73.7 Mobile IP Operations In roaming scenariosusingwith Mobile-IP,as the mobile subscriber roams between networks, or between different types of networks such as between WLAN and CDMA2000 networks,thePrePaidprepaid data session should be maintained transparently if the HA is acting as the SAD. As the subscriber device associates with the new SAD (AP or PDSN that supportsprepaid clientPPC capability), the SAD sends a RADIUS Access-Request and the subscriber is re-authenticated and reauthorized. The SAD MUST include the PPAC(TBD) attribute in the RADIUS Access-Request. In this manner the procedure follows the Authentication and Authorization procedure described earlier. If the HA was acting as the SAD before handoff, the userÆs prepaid session does not undergo any change after the handoff because the Mobile IP session is anchored at the HA and the userÆs Home IP address remains the same. In the case ofAPa wireless access point or PDSN acting as the SAD it is likely that the userÆs IP address will change (Care of Address).Therefore, the ongoingThe prepaid session willhave some impact.be affected by this. Inthe casethis scenario the SAD shall send anAccess-Request. TheAccess-Request message which is routed to the home network and MUST reach thePrePaid Systemprepaid system that is servingthe PrePaidthis session. ThePrePaidprepaid systemwill then correlatecorrelates the new authorization request with the existing active session andwill assignassigns a quota to the new request. Any outstanding quota at the old SAD MUST be returned to thePrePaid system. Ifprepaid system if the Mobile-IP nodes (HA and FA)supportssupport registration revocation (Mobile IPv4 only). Specifically, the quota SHOULD be returned when the SAD sends the Authorize Only Access- Request with PPAQ(TBD) Update-Reason set to either ôRemote Forced disconnectö or ôClient Service terminationö. In order to trigger the sending of this last Authorize Only Access-Request, thePrePaidprepaid system may issue a Disconnect Message [3576] to the SAD.IfEven if the subscriberhas roamedmoves toana SAD that does not haveany PrePaid Capabilities, PrePaidprepaid capabilities can the prepaid data servicemay stillcontinue. This can bepossibledone by requesting the Home Agent(providing it(assuming that hasPrePaid Capabilities)such capabilities) toassumetake over the responsibilitiesfor meteringof theservice. The procedure for thisSAD (i.e. metering). This scenario will begivendiscussed inthe next releasea later version of thisdraft. 4.8document. 3.8 Operationconsiderationconsiderations forMulti-ServicesMultiple prepaid services This section describes theoperation for supporting Prepaidsupport formulti-servicesmultiple prepaid services onthe same SAD. The operations for multi-services are very similar to operations fora singleservice.SAD. Message flows illustrating the various interactions are presented at the end of this document. A SAD that supports prepaid operations for multi-services SHOULD set the ôMulti-Services Supportedö bit in the PPAC. When working with multi-services, we need to differentiate between the services. A Service-Id attribute is used in the PPAQ(TBD) to uniquely differentiate between the services. The exact definition of the Service-Id attribute isout ofoutside the scopeforof this document. A PPAQ that contains a Service-Id is associated with that Service. A PPAQ that contains a Rating-Group-Id is associated with that Rating-Group. A PPAQ MUST not contain both a Rating-Group-Id and a Service-Id. A PPAQ that contains neither a Rating-Group-Id or a Service-Id applies to the ôAccess Serviceö.4.8.13.8.1 Initial Quota Request When operations with multi-services is desired, the SADwill requestrequests 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 aprepaidquota for the Rating-Group by sending a PPAQ containing the Rating-Group-Id. In both cases the Update-Reasonwill beis set to ôInitial-Requestö. The Authorize-Only Access-Requestpacketmessage may contain more than one PPAQ. The Authorize-Only Access-Request MUSTincludeincludes one or more attributes that serve to identify the session so that it can be linked to the original authentication. Which SessionIdentifier(s) isIdentifiers 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 morePPAQsPPAQs, thePrepaid System will allocateprepaid system allocates resources to each PPAQ.The resources, can be in units of time, volume as before.Each PPAQwill beis assigned a unique QID that MUST appear inasubsequent PPAQupdateupdates for that service or rating-group.As well,Additionally, the PPAQ MUST contain theService-ID; or Group-ID;Service-ID orneither, ifGroup-ID, unless the PPAQapplies to theis a generic ôAccess Serviceö.4.8.23.8.2 Quota Update Once the services start to utilize their allotted quota they will eventually need to replenish their quotas (either the threshold is reached or no more quota remains). To replenish the quota thePrepaid Client will sendPPC sends an Authorize-Only Access-Request message containing one or more PPAQs. Each PPAQ MUST contain the appropriate QID, Service-ID or Group-ID (or neither the Service-ID or Group-Id if the quota replenishment is for the ôAccess Serviceö). The Update-Reason filedwill indicateindicates either ôThreshold reachedö(3), or ôQuota reachedö(4). The Authorize-Only message must containidentifiers to identify the session.session identifiers. Upon receiving an Authorize-Only Access-Request packet with one or more PPAQs thePrepaid Server will respondPPS responds with a new PPAQ for that service. The PPAQwill containcontains a new QID, the Service-Id orRating- Group-Id,Rating-Group-Id, a new Quota. If thePrepaid ServerPPS does notwant togrant additional quota to theServiceservice it MUST include theTermination- ActionTermination-Action subfield in the PPAQ that will instruct the SAD what to do with the service.4.8.33.8.3 Termination Whenanthe allotted quota forthea service isused upexhausted the SAD shall act in accordance to the Termination-Action field set in the Quota. If the Termination-Action field is absent then theServiceservice MUST be terminated. If theServiceservice is to be terminated then the SAD shall send a PPAQ with the appropriate QID, the Service-Id, the used quota, and Update-Reason set to ôClient Service Terminationö. If the ôAccess Serviceö has terminated, then all other services must be terminated as well. In this case the SADmustMUST report on all issued quotas for the various services. The Update-Reason field should be set to ôAccess Service Terminatedö.Note when sending more then on PPAQ it may be required to send multiple Authorize Only Access-Requests. 4.8.43.8.4 Dynamic Operations Dynamic operations for multi-services are similar to dynamic operations described for single service operations. The prepaid system may send a COA message containing a PPAQ for an existing service instance. The SADwill matchmatches the PPAQtowith the service using the Service-ID attribute. The new quota couldbe higher thendiffer from thelastpreviously allocatedvalue or it could be lower.value. The SAD must react to the newquotavalue accordingly. ADisconnect message may not be send for a specific service. Adisconnect message terminates the ôAccess Serviceö. As such the SADmustMUST reportbackall 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 theupdate reason. 4.8.5update. 3.8.5 Support for Resource Pools If thePrepaid ClientPPC supports pools as indicated by setting the ôPools supportedö bit in the PPAC(TBD) then thePrepaid ServerPPS may associate a Quota with a Pool by including the Pool-Id and thePool- MultiplierPool-Multiplier in the PPAQ(TBD). When Resource Pools are used, the PPAQ must not use the threshold field.4.8.63.8.6 One-Time-Charging To initiate a One-Time charge the PPCincludeincludes the PPAQ attribute in an Access-Request packet. The Access Request packet MUST includethea Message-Authenticator(80) and an Event-Timestamp(55)attributes.attribute. The Service Id field of the PPAQ identifies theService that is be charged for.prepaid service. The amountofto be charged is specified using the Resource Quota and Resource Quota overflow subtypes. If the value specified is negative then the resourceswill beare credited to the userÆs account. The QID field MUST be set to a unique value andwill beis used by the PPS to detectduplicates should the packet be retransmitted.duplicates. The Update Reason field MUST be set toOne-TimeOne- Time Charging. Upon receiving aPPAQ configured as aOne-Timecharge,charge PPAQ, the RADIUS server authenticates the userandand, ifauthenticated, passsuccessful, passes the PPAQ to the PPS. The PPSshall locatelocates thesubscriberaccount anddebitdebits orcredit the accountcredits it accordingly. The PPS MUSTrepondrespond to the PPS with an Access-Accept messageupon success. Orif successful, or an Access-Reject messageif it cant locate the userÆs account or if there is no balance remaining in the account.otherwise. The RADIUS server shall respondbackto the SAD with an Access Accept message. Since this is a one-timeeventcharge 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.TheUpon 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 casewhere awhen the session alreadyexists for the user.exists. The PPSshall respond backresponds with an Access-Accept to indicate that the userÆs account has been debited or anAccess- Reject indicating that the account could not be debited. 4.8.7Access-Reject otherwise. 3.8.7 Error Handling If thePrepaid ServerPPS receives a PPAQ with an invalid QID it MUST ignore that PPAQ. If thePrepaid ServerPPS receives a PPAQ containing a Service-Id, or aRating-Group-IdRating- Group-Id that it does not recognize, then it MUST ignore that PPAQ. If thePrepaid ClientPPC receives a PPAQ containing a Service-Id, or aRating-Group-IdRating- Group-Id that it does not recognize, then it must ignore that PPAQ. If thePrepaid ClientPPC receives a PPAQ that contains a Pool-Id without aPool-Multiplier;Pool- Multiplier or a Pool-Multiplier without a Pool-Id it must ignore that PPAQ.4.93.9 Accounting ConsiderationsAccountingAlthough typically generated, accounting messages are not required to deliverPrePaid Data Service. Accounting message will typically be generated for PrePaid Data Service. This becausea prepaid data service. When generated, accountingmessagemessages are used for auditing purposesas well asand forbill generation.billing. Accounting messages associated withPrePaid Data Sessionsprepaid data sessions should include the PPAQ(TBD) attribute.4.103.10 SAD Operation To be completed4.113.11 Interoperability with Diameter Credit Control Application The RADIUSPrePaid solutionsprepaid extensions need to interoperate with the Diameter protocol. Two possibilities exist: The AAA infrastructure is Diameter based and the SAD are RADIUSbased;based, or the SAD is Diameter based and the AAA infrastructure is RADIUS based. The Diameter Credit Control Application [DIAMETERCC] describes how to implement aPrePaidprepaid accounting system using anallDiameter based infrastructure. <This section to be completed.>5.4. Attributes This draft is using the RADIUS [RFC2865] namespace.5.14.1 PPAC Attribute The PrepaidAccountingCapability (PPAC) attribute is sent in the Access-Request message by aPrepaid Capableprepaid capable NAS and is used to describe thePrePaidprepaid capabilities of the NAS. The PPAC isavailable to be sentpresent in an Access-Accept message by thePrepaid serverPPS to indicate the type ofprepaidmetering that is to be applied to this session. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TYPE | LENGTH |SUB-TYPESUBtype 1 | LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AvailableInClient (AiC) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TYPE : value of PPAC LENGTH: 8 VALUE : String The value MUST be encoded as follows:Sub-TypeSubtype (=1) :Sub-TypeSubtype for AvailableInClient attribute Length : Length of AvailableInClient attribute (= 6 octets) AvailableInClient (AiC): The optional AvailableInClientSub-Type,Subtype, generated by thePrePaid client,PPC, indicates thePrePaid Accountingmetering capabilities of the NAS and shall be bitmap encoded. The possible values are: 0x00000001 Volume metering supported. 0x00000002 Duration metering supported. 0x00000004 Resource metering supported. 0x00000008 Pools supported 0x00000010 Rating groups supported 0x00000020 Multi-Services supported. 0x00000040 Tariff Switch supported. Others Reserved5.24.2 Session Termination Capability The value shall be bitmap encoded rather than a raw integer. This attribute shall be included RADIUS Access-Request message to the RADIUS server and indicates whether or not the NAS supports Dynamic Authorization. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TYPE | LENGTH | String | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type : value of Session Termination Capability Length: = 4 String encoded as follows: 0x00000001 Dynamic Authorization Extensions (rfc3576) is supported.5.34.3 PPAQ Attribute One or more PPAQ(TBD) attributes areavailable to besent in an Access Request, Authorize Only Access-Request and Access-Accept messages. In an Access Request message,itthe PPAQ attribute is used to facilitate One-Time chargingtransactions; intransactions. In Authorize Only Access-Request messages it is usedtofor One-Time charging, report usage and the request for furtherquota orquota. It is also used to request prepaid quota for a new serviceinstance; ininstance. In an Access-Accept message it is used to allocate thequotas(initialquotaandsubsequent quotas).subsequent) quotas. Whenconcurrent servicemultiple services aresupportedsupported, a PPAQ is associated with a specific service as indicated by the presence ofService-Id; oraRating Group, as indicated by the presence ofService-Id, aRating-Group-Id;Rating-Group-Id, or the ôAccess Serviceöas(as indicated by the absence of a Service-Idorand aRating-Group-Id.Rating-Group-Id). The attribute consists of a number of subtypes.Subtypes not usedUnused subtypes are omittedinfrom the message. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TYPE | LENGTH |SUB-TYPESUBtype 1 | LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | QuotaIdentifier (QID) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |SUB-TYPESUBtype 2 | LENGTH | Volume Quota | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Volume Quota |SUB-TYPESUBtype 3 | LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | VolumeQuotaOverflow (VQO) |SUB-TYPESUBtype 4 | LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | VolumeThreshold (VT) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |SUB-TYPESUBtype 5 | LENGTH | VolumeThresholdOverflow (VTO) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |SUB-TYPESUBtype 6 | LENGTH | DurationQuota (DQ) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DurationQuota (DQ) |SUB-TYPESUBtype 7 | LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DurationThreshold (DT) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |SUB-TYPESUBtype 8 | LENGTH | Update-Reason attribute (UR) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |SUB-TYPESUBtype 9 | LENGTH | PrePaidServer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PrePaidServer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SUBtype 10 | LENGTH | Service-Id | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SUBtype 11 | LENGTH | Rating-Group-Id | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | SUBtype 12 | LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Termination-Action | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SUBtype 13 | LENGTH | Pool-Id | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | SUBtype 14 | LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Pool-Multiplier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SUBtype 15 | LENGTH | Resource-Quota | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | SUBtype 16 | LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Resource-Quota-Overflow | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SUBtype 18 | LENGTH | Resource-Threshold | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type : Value of PPAQ Length: variable, greater than 8 String: The String value MUST be encoded as follows:Sub-TypeSubtype (=1):Sub-TypeSubtype for QuotaIDentifier attribute Length : Length of QuotaIDentifier attribute (= 6 octets) QuotaIDentifier (QID): The QuotaIDentifierSub-Typesubtype is generated by thePrePaid server atPPS together with the allocation of a Volumeand/oror Duration Quota. The on-line quota update RADIUS Access-Request message sent from the SAD to the PPS shall include a previously received QuotaIDentifier.Sub-TypeSubtype (=2):Sub-TypeSubtype for VolumeQuota attribute Length : length of VolumeQuota attribute (= 6 octets) VolumeQuota (VQ): The optional VolumeQuotaSub-Typesubtype is only present if Volume Based charging is used. In a RADIUS Access-Accept message (PPS to SAD direction), it indicates the Volume (in octets) allocated for the session by thePrePaid server.PPS. In RADIUS Authorize OnlyAccess- RequestAccess-Request message (SAD to PPS direction), it indicates the total used volume (in octets) for both forward and reversetraffic applicable to PrePaid accounting. Sub-Typetraffic. Subtype (=3):Sub-TypeSubtype for VolumeQuotaOverflow Length : length of VolumeQuotaOverflow attribute (= 4 octets) VolumeQuotaOverflow (VQO): The optional VolumeQuotaOverflowSub-Typesubtype is used to indicate how many times the VolumeQuota counter has wrapped around 2^32 over the course of the service being provided.Sub-TypeSubtype (=4):Sub-TypeSubtype for VolumeThreshold attribute Length : length of VolumeThreshold attribute (= 6 octets) VolumeThreshold (VT): The VolumeThresholdSub-TypeSubtype shall always be present if VolumeQuota is present in a RADIUS Access-Accept message (PPS to SAD direction). It is generated by thePrePaid serverPPS and indicates the volume (in octets) that shall beusedconsumed beforerequestinga new quotaupdate.should be requested. This threshold should not be larger than the VolumeQuota.Sub-TypeSubtype (=5):Sub-TypeSubtype for VolumeThresholdOverflow Length : Length of VolumeThresholdOverflow attribute (= 4 octets) VolumeThresholdOverflow (VTO): The optional VolumeThresholdOverflowSub-Typesubtype is used to indicate how many times the VolumeThreshold counter has wrapped around 2^32 over the course of the service being provided.Sub-TypeSubtype (=6):Sub-TypeSubtype for DurationQuota attribute Length : length of DurationQuota attribute (= 6 octets) DurationQuota (DQ): The optional DurationQuotaSub-TypeSubtype is only present if Duration Based charging is used. In RADIUS Access-Accept message (PPS to SAD direction), it indicates the Duration (in seconds) allocated for the session by thePrePaid server.PPS. In on-line RADIUSAccess- AcceptAccess-Accept message (PPC to PPS direction), it indicates the total Duration(inin seconds) since the start of the accounting session related to the QuotaID.Sub-TypeSubtype (=7):Sub-TypeSubtype for DurationThreshold attribute Length : length of DurationThreshold attribute (= 6 octets) DurationThreshold (DT): The DurationThresholdSub-Typesubtype shall always be present if DurationQuota is present in a RADIUS Access-Accept message (PPS to SAD direction). It represents the duration (in seconds)that shall be used by the session before requestingafter which new quotaupdate.should be requested. This threshold should not be larger than theDurationQuota and shall always be sent with theDurationQuota.Sub-TypeSubtype (=8):Sub-TypeSubtype for Update-Reason attribute Length : length of Update-Reason attribute (= 4 octets) Update-Reason attribute (UR): The Update-ReasonSub-Typesubtype shall be present in the on-line RADIUS Access-Request message (SAD to PPS direction). It indicates the reason for initiating the on-line quota update operation. Update reasons 4, 5, 6, 7 and 8 indicate that the associated resources are released at the client side, and therefore the PPS shall not allocate a new quota in the RADIUS Access_Accept message. 1. Pre-initialization 2. Initial Request 3. Threshold Reached 4. Quota Reached 5. Remote Forced Disconnect 6. Client Service Termination 7. ôAccess Serviceö Terminated 8. Service not established 9. One-Time ChargingSub-TypeSubtype (=9) :Sub-TypeSubtype for PrePaidServer attribute Length : Length of PrePaidServer (IPv4 = 6 octets, IPv6= 18 octets PrePaidServer: The optional, multi-value PrePaidServer attribute indicates the address of the servingPrePaid System.prepaid system. If present, the Home RADIUS server uses this address to route the message to the servingPrePaid Server.PPS. The attribute may be sent by the Home RADIUS server. If present in the incoming RADIUS Access-Accept message, the PDSN shall send this attribute back without modifying it in the subsequent RADIUS Access-Request message, except for the first one. If multiple values are present, the PDSN shall not changethe order of the attributes. Sub-Typetheir order. Subtype (=10) :Sub-TypeSubtype for Service ID Length : Length of Service ID Service-Id: Opaque string that uniquely describes a service instancefor which we wanttoapplywhich prepaid meteringto.should be applied. A Service-Id could be an IP 5-tuple (source address, source port, destination address, destination port, protocol). If Service-ID is present in the PPAQ the PPAQappliesrefers to thatService.service. If a PPAQ does not contain a Service-Id then the PPAQappliesrefers to the Access Service.Sub-TypeSubtype (=11) :Sub-TypeSubtype for Rating-Group-Id Length : 6 Rating-Group-Id Identifies that this PPAQ is associated with resources allocated to a Rating Group with the corresponding ID.Sub-TypeSubtype (=12) :Sub-TypeSubtype for Termination-Action Length : 6 This field is an enumeration of the action to take when theprepaid serverPPS does not grant additional quota. Valid actions are as follows: 0 Reserved 1 Terminate 2 Request More Quota 3 Redirect/FilterSub-TypeSubtype (=13) : Pool-Id Length : 6 Identifies the Pool that this quota is to be associated with.Sub-TypeSubtype (=14) : Pool-Multiplier Length : 6 The pool-multiplier determines the weight that resources are inserted into the pool and the rate at which resources are taken out of the pool by thisService,service or Rating-Group.Sub-Type (=13)Subtype (=15) :Sub-TypeSubtype forResource QuotaResource-Quota Length : 6 The optionalResourceQuota Sub-TypeResource-Quota subtype is only present if Resource Basedcharging is usedorwhen One-Timeone-time charging isbeingused. In the RADIUS Access-Accept message (PPS to SADdirection),direction) it indicates the Resources allocated for the session by thePrePaid server.PPS. In RADIUS Authorize Only Access-Request message (SAD to PPS direction), it indicates thetotalresources usedresource forin total, including bothforwardincoming andreverse traffic applicable to PrePaid accounting.outgoing chargeable traffic. In one-time charging scenarios, the subtype represents the number of units to chargethe userortocredit theuser (negative values). Sub-Type (=14)user. Subtype (=16) :Sub-TypeSubtype for Resource Quota Overflow Length : 6Sub-Type (=15)Subtype (=18) :Sub-TypeSubtype for ResourceThreshold Length : 6 NOTES:EitherVolume-Quota, Time-Quota, or Resource-Quota MUST appear in the attribute. If Volume Quota appears, Volume Threshold mayonly appear if Volume Quota appearsalso appear. A PPAQ MUST NOTCONTAINcontain both a Service-Id and a Rating-Group-Id. A PPAQ that does not contain a Service-ID or a Rating-Group-Id applies to the ôAccess Serviceö. When the PPAQ contains a Pool-Id it MUST also contain the Pool- Multiplier.5.44.4 Prepaid Tariff Switching (PTS) This specification defines the PTS attribute to allow for changeovers from oneservice chargerate to another during serviceexecution.provision. Support for tariff switching is OPTIONAL for both PPC and PPS. PPCs use the flag "Tariff Switching supported" of the AvailableInClient subtype of the PPAC attribute to indicate support for tariffswitching;switching. PPSs employ the PTS attribute to announce their support for tariff switching. Details of thisissue arewill be specifiedlater on, whenafter the format of the PTS attribute has been defined. If a RADIUS message contains a PTS attribute, it MUST also contain at least one PPAQ attribute.This requirement is related to the identification of the service to which tariff switching applies.If a RADIUS Access-Request message contains a PTS attribute orif it containsa "Tariff Switching supported" flag, it MUST also contain an Event-Timestamp RADIUS attribute (see [RFC2869]).This requirement is related to the TariffSwitchInterval subtype of the PTS attribute (see below).0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TYPE | LENGTH |SUB-TYPESUBtype 1 | LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | QuotaIDentifier (QID) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |SUB-TYPESUBtype 2 | LENGTH | VolumeUsedAfter- | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TariffSwitch (VUATS) |SUB-TYPESUBtype 3 | LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | VUATSOverflow (VUATSO) |SUB-TYPESUBtype 4 | LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TariffSwitchInterval (TSI) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |SUB-TYPESUBtype 5 | LENGTH | TimeIntervalAfter- | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TariffSwitchUpdate (TITSU) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type : Value of PTS Length: variable,greater thanat least 8 Subtype (=1): QuotaIDentifier (QID) Length : Length of QuotaIDentifier Subtype (= 6 octets) The QID subtype MUST be present in each PTS attribute. In an online RADIUS Access-Request message sent from the PPC to the PPS, its value MUST be a quota identifier received previously from the PPS and MUST be the same as a quota identifier of one of the PPAQ attributes included the same RADIUS message. A PPAQ attribute that is transported along with a PTS attribute and has the same quota identifier value as the PTS attribute in its own QID subfield shall be referred to as "accompanying PPAQ attribute". If a PPS receives an Access-Request message from a PPC, it associates a unique quota identifier to thisservice accessrequest. Thus, a quota identifier also identifies a particular service. Subtype (=2): VolumeUsedAfterTariffSwitch (VUATS) Length : Length of VolumeUsedAfterTariffSwitch Subtype (= 6 octets) The VolumeUsedAfterTariffSwitch subtype SHALL be used in online RADIUS Access-Request messages (PPC to PPS direction). It indicates the volume (in octets) used during a session after the last tariff switch for the service specified via the QID subfield and the accompanying PPAQ attribute (see the remarks under "Subtype 1: QID"). Subtype (=3): VUATSOverflow (VUATSO) Length : Length of VUATSOverflow Subtype (= 4 octets) If an online RADIUS Access-Request message contains a VUATS subfield and if the VolumeUsedAfterTariffSwitch has wrapped around 2^32 over the course of provisioning the service identified via the QID subfield, then the VUATSO subfield MUST be present in the PTS attribute. In this case, it indicates how many times the VolumeUsedAfterTariffSwitch has wrapped around 2^32. In all other cases, the VUATSO subfield MUST NOT be present in the PTS attribute. Subtype (=4): TariffSwitchInterval (TSI) Length : Length of TSI Subtype (= 6 octets) The TSI subtype MUST be present in each PTS attribute that is part of a RADIUS Access-Accept message (PPS to PPC direction). It indicates the interval (in seconds) between the value of Event-Timestamp RADIUS attribute (see [RFC2869]) of the corresponding RADIUS Access-Request message and the next tariff switch condition. Subtype (=5): TimeIntervalafterTariffSwitchUpdate (TITSU) Length : Length of TITSU Subtype (= 6 octets) The PPS MUST include the TITSU subtype if there is anothertarriftariff switch period after this period. The TITSUrepresentsattributes encodes thelengthnumber remaining seconds ofthecurrent tariffswitch period in seconds.period. If this attribute isomittedzero or omitted, it iszero,assumes that the current tariff periodthat commences in TSI seconds will last indefinitely orlasts untila new PTS is received with new information.further notice. If TITSU is specified, theprepaid clientPPC must send a quota update before theend of the tariff switchcurrent periodas specified by TITSU.ends. If a RADIUS message contains a PTS attribute, it MUST also contain at least one PPAQ attribute. The PTSwill beis associatedtowith the PPAQ by the QID. If multiple services are supported and if the PPAQ is associated with a service as indicated by the Service-Id sub- atrribute of the PPAQ, then the PTSwill specifyrefers to thetarriftariff switch for that service. If the PPAQ does not have a Service-Id, then the PTSwill be the tarrifrefers to tariff switchoffor 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 theprepaidsession.5.54.5 Table of Attributes TO BE COMPLETED. Request Accept Reject Challenge # Attribute Authorize_Only Request Accept Reject6.5. Security Considerations The extended RADIUS protocolexchangesdescribedare susceptiblein this document is subject to a number of potential attacks, in a manner similar to thesame vulnerabilities asRADIUSand itwithout these extensions. It is recommended that IPsec be employed toafford better security.protect against certain of the attacks. If IPsec is notavailableavailable, usage of theprotocolextensions described in thisdraft improvesdocument improve the overall security of RADIUS. The various security enhancements are explained in the following sections.6.15.1 Authentication and Authorization RADIUS is susceptible to replay attacks during the Authentication and Authorization procedures. A successful replay of the initial Access-Request could result in an allocation of an initial quota. To thwart such an attack...6.25.2 Replenishing Procedure A successful replayattacksattack of the Authorize Only Access-Request could deplete the subscribers prepaid account. To be completed.7.6. IANA Considerations This document requires the assignment of new Radius attributes type numbers for the following attributes: 1) Prepaid-Accounting-Capability (PPAC) with subtype: AvailableInClient 2) Prepaid-Accounting-Operation (PPAQ) with subtypes: QuotaID (QID) VolumeQuota (VQ) VolumeQuotaOverflow (VQO) VolumeTreshold (VT) VolumeTresholdOverflow (VTO) DurationQuota (DQ) DurationTreshold (DT) UpdateReason (UR) PrePaidServer (PPS) ServiceID (SID) RatingGroupId (RGID) TerminationAction (TA) PoolID (PID) PoolMultiplier (PM) Cost (COST) TariffChangeTime (TCT) 3) Prepaid-Tariff-Switch (PTS) 4) Session-Termination-Capability (STC) 5) International-Mobile-Subscriber-Identity (IMSI)8.7. Normative References [RFC2026] Bradner, S., "The Internet Standards Process -- Revision 3", RFC 2026, October 1996. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", RFC 2119, March 1997. [RFC2865] Rigney, C., Rubens, A., Simpson, W. and S. Willens, "Remote Authentication Dial In User Server (RADIUS)", RFC 2865, June 2000. [RFC2866] Rigney, C., "RADIUS Accounting", RFC 2866, June 2000. [RFC2869] Rigney, C., Willats, W., Calhoun, P., "RADIUS Extensions", RFC 2869, June 2000. [RFC2868] Zorn, G., Leifer, D., Rubens, A., Shriver, J., Holdrege, M., Goyret, I., "RADIUS Attributes for Tunnel Protocol Support" , RFC 2868, June 2000. [RFC3576] Chiba, M., Dommety, G., Eklund, M., Mitton, D., Aboba, B., "Dynamic Authorization Extensions to Remote Authentication Dial-In User Service (RADIUS)", RFC 3576, February 2003. [RFC3748] Aboba, B., et al., "Extensible Authentication Protocol", RFC 3748, June 2004.9.8. Informative References [DIAMETERCC] Hakkala, H., et al., "Diamter Credit-Control Application", Internet Draft, AAA WG, April 2004, Work in Progress. [REDIRECT] "RADIUS Redirection", Internet Draft, Work in progress.10.9. Call Flows This sectionincludes calldescribes the flowsillustratingassociated with various scenariosenabled bythat are mentioned in thisspecification.document. The following fields are used in the call flows: RADIUS packets: AR Access Request ARA Access Accept AC Accounting Requests A Authorize-Only Access-Request AA Access-Accept for Authorize- Only Access-Request RADIUS Attributes: PPAQ PPAQ as defined in this specification SID One or more attributes representing the Session that the RADIUS packets is correlated to. PPAC PPAC as defined in this specification ASID Acct-Session-Id as defined by RADIUS MSID Acct-Multi-Session-Id as define by RADIUS PPAQ fields: SRVID Service-Id Reason Update-Reason QID Quota-Id10.19.1 Simple Concurrent Services In this scenario thePrepaid ClientPPC authenticates and authorizes the user. ThePrepaid ServerPSS respondsbackwithPrepaidQuota for the ôAccess Serviceö instance. The NAS then request quota forService- A.Service-A. Accounting is turned on. NAS/ RADIUS/ PPC PPS === === | | | AR{SID,PPAC} | A |-------------------------------------------------->| | | | ARA{SID,PPAQ(QID=1,Q=100)} | B |<--------------------------------------------------| | | | AC(start){ASID=25,MSID=13} | C |-------------------------------------------------->| | | | A{SID,PPAQ(SRVID=SA, Reason=Initial} | D |-------------------------------------------------->| | | | AA{SID,PPAQ(QID=200,SRVID=SA, Q=50)} | E |<--------------------------------------------------| | | | AC(start){ASID=30,MSID=13, PPAQ } | F |-------------------------------------------------->| | | | A{SID, PPAQ(QID=200 SRVID=SA, Q=50 Reason=Quota)}| G |-------------------------------------------------->| | | | AA{SID,PPAQ(QID=300,SRVID=SA, Q=100)} | H |<--------------------------------------------------| | | | A{SID, | | PPAQ(QID=1, Q=100 Reason=Quota), | | PPAQ(QID=300, SRVID=SA Q=100 Reason=Quota)} | I |-------------------------------------------------->| | | | AA{SID, | PPAQ(QID=3, Q=200), | | PPAQ(QID=303, SRVID=SA Q=150)} | J |<--------------------------------------------------| A This is the initial Access-Request that indicates thePrepaid Capabilitiesprepaid capabilities of the NAS. In thisscenario it will indicateexample indicates that ConcurrentSessionSessions are supported. Access-Request also includes SID (Session Id) which is the Session Identifier assigned by this NAS to session.Session Identifier is outThe formal of the session identifier is outside the scopeinof this document.It can be a single attribute such as 3GPP2 Correlation ID or it could be a set of attributes that define a session.B RADIUS authenticates the user and determines thatthe user is prepaid.he has a prepaid account. RADIUS responds with a PPAQ for the ôAccess Serviceö (PPAQ does not contain a Service-ID orRating-Group-ID).Rating-Group- ID). The PPAQ has a QID=1 assigned by the Prepaid System and Quota of Q=100. The quota could be time or volume and may or may not have a threshold associated with it. C The NAS starts the Access Service and generates an Accounting- Request (Start) message as normal. Itwill includeincludes the Acct- Session-Id and may include the Acct-Multi-Session-Id. D The NASwantsis about to start a new Service, call it Service-A. It sends an Authorize-Only access request to RADIUS. The SID links this Authorize-Only access request to the initial Authentication & Authorization (Step-A and Step-B).The Authorize-Only message contains a PPAQ requesting quota for Service-A, Update-Reason = Initial-Request. E The PPS checks the resources available to the user and assigns 50 units (time/volume etc) to this service. RADIUS sends an Access Accept message contain a PPAQ assigning quota Q=50 for Service-A. The PPAQ contains a QID = 200. F The NAS starts Service-A and sends an Accounting-Request (Start) message for that service. Acct-Multi-Session-Id can be used to tie all of the sessions in the accounting streams together. G Quota for Service-A requires refreshing, the quota was completely used). An Authorize-Only message is sent containing a PPAQ with QID = 200 which corresponds to the prior QID received for this service. Note QID is sufficient for the PPS server to link this request to the previous request and hence to the original authentication steps. Therefore SID is not really required. The PPAQ will report the used part of the quota (50 units). H RADIUS deducts the used quota from the users accounts and reserves 50 more additional units for a total quota of 100 (Q=100) for Service-A. It sends back a PPAQ with QID=300. I NAS needs to refresh both the ôAccess Serviceö and Service-A. It sends an Authorize Only message contain two PPAQs, one for the Main Service with QID=1 and one for Service-A with QID=300. Each PPAQ reports theusedresources that were consumed so far and the reason why the update is being sent. J RADIUS responds back with two PPAQs. The PPAQ without the Service-Id grants an additional 100 units for a total of 200 units to the ôAccess Serviceö û QID=3; the other PPAQ, containing SRVID=SA grants an additional 50 units for a total quota to service-a of 150 units û QID=303. This step illustrates why SRVID needs to be specified in the PPAQ.IfWithout itwere not, thenthe NAS wouldnotbeableunable to differentiate between the PPAQs. QIDs are not sufficient to correlate the PPAQ to a service since theyaremay be changed(and not necessarily sequentially)by the PPS at every transaction.In this scenario, noticeNote how each PPAQ attribute represents a sequential conversation about a service between thePrepaid ClientPPC and thePrepaid Server.PPS in this example. The links between the messages are the QIDs and the Service-Ids.As well, notice howAlso note that a SID is needed to tie the Authorize-Only messages to the Authentication steps. This SID is only really needed the first time a PPAQ issent û since the PPAQ does not have a QID. Accountingsent. Although accounting messages have anAccounting-Session-ID. ButAccounting-Session-ID, that is not enough toallowenable the back end system to associate that accounting message with a particular Service. We therefore need the PPAQ in the accounting message.10.29.2 One-time Charging In this One-time chargingscenario,example, thePrepaid Client (PPC)PPC authenticates and authorizes the user and requests charging for a service event requested by the user. The PPC already knows the price to charge for the service event identified by SRVID=SA. Contributor We would like to thank Hannes Tschofenig for his contributions to this draft. Acknowledgments The authors would like to thank Mark Grayson (Cisco), Nagi Jonnala and Tseno Tsenov for their contribution to this draft. Author's Addresses Avi Lior Parviz Yegani, Ph.D. Bridgewater Systems Mobile Wireless Group 303 Terry Fox Drive Cisco Systems Suite 100 3625 Cisco Way Ottawa Ontario San Jose, CA 95134 Canada USA avi@bridgewatersystems.com pyegani@cisco.com Kuntal ChowdhuryYong LiHannes Tschofenig Starent NetworksBridgewater SystemsSiemens 30 International Place, 3rd Flr303 Terry Fox DriveOtto-Hahn-Ring 6 Tewksbury, MA 01876Suite 10081739 Munich kchowdhury@starentnetworks.comOttawa Ontario Canada Yong.li@bridgewatersystems.comGermany hannes.tschofenig@siemens.com Christian Guenther Siemens Otto-Hahn-Ring 6 81739 Munich Germany christian.guenther@siemens.com Intellectual Property Statement The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the IETF's procedures with respect to rights in IETF Documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf- ipr@ietf.org. Disclaimer of Validity This document and the information contained herein are provided on anôAS ISö"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Copyright Statement Copyright ¨ The Internet Society (2005). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. Expiration Date This memo is filed as draft-lior-radius-extensions-for-prepaid-07.txt,06.txt, and will expire 20 July, 2005. 10. Appendix A û use cases In this appendix we present a set of use cases and scenarios based on which the extensions in this document were designed. It is assumed that the subscriber possesses a valid prepaid account with a service provider, for example a WLAN operator. In order to maintain generality, the use cases refer to the communications between the SAD and the network. The connection between the UserÆs Device and the SAD, which typically involves setting up a layer 2 session, e.g. a PPP session or a GPRS PDP Context, is specific to a given network technology and the details do not affect the operation of the prepaid service. 10.1 Simple prepaid use case A subscriber connects to his home network. As usual, the Access Device that is servicing the subscriber uses the AAA infrastructure to authenticate and authorize the subscriber. The SAD sends a RADIUS Access-Request to the AAA server in order to authenticate and authorise the subscriber with respect to the requested service. The Access-Request contains the subscriber credentials and may contain the prepaid capabilities of the SAD. Prepaid capabilities MUST be included if the SAD supports them. The AAA System proceeds with the authentication procedure. This may involve several message exchanges such as in EAP [RFC2284]. Once the subscriber has been authenticated, the AAA system determines that the subscriber is a prepaid subscriber and requests authorisation. The request MUST include the prepaid capabilities of the serving SAD. The system validates that the subscriber has a prepaid account and that the account is active. It further validates that the SAD has the appropriate prepaid capabilities. If all is in order, the prepaid system authorises the subscriber to use the network. Otherwise it rejects the request. The decision is sent to the AAA system. The response includes attributes to indicate the allocation of a portion of the subscriberÆs credit. This portion is called the ôinitial quotaö (in units of time or volume) and optionally a threshold value. A portion only of the userÆs funds is allocated because the user may be engaged in other services that may draw on the same account. For example, the user may be engaged in a data session and a voice session. Although these two services would draw from the same account, they form separate parts of the overall system. If the entire quota was allocated to the data session then the user would have no more funds for a voice session. The AAA system incorporates the attributes received from the prepaid System into an Access-Accept message that it sends to the SAD. Note that the AAA system is responsible for authorizing the service whereas the prepaid system is responsible for prepaid authorization. Upon receiving the Access-Response, the SAD starts the prepaid data session and meters the session based on time or volume, as indicated in the message. Once the usage for the session approaches the allocated limit (as expressed by the threshold), the SAD will request additional quota. Re-authorization for additional quota flows through the AAA system to the prepaid System. The prepaid System revalidates the subscriberÆs account and subtracts the previously allocated quota from the current balance. If there is remaining balance, it reauthorizes the request with an additional quota allotment. Otherwise, the prepaid System rejects the request. Note the replenishing of the quotas is a re-authorization procedure and does not require the subscriber to authenticate himself again. It is important to note that the prepaid System is maintaining session state for the subscriber. This state includes how much account balance was allocated during the last quota enquiry and how much is left in the account. Therefore, it is required that all messages about the session reach the same (and correct) prepaid system. Upon receiving a re-allotment of the quota, the SAD continues to provide the data service until the new threshold is reached. If the request for additional quota cannot be fulfilled then the SAD lets the subscriber use the remaining quota and terminates the session. Alternatively, instead of terminating the session, the SAD may restrict the data session such that the subscriber can only reach a particular web server. This web server maybe used to allow the subscriber to replenish their account. This restriction can also be used to allow new subscribers to set up prepaid accounts in the first place. Should the subscriber terminate the session before the quota is exhausted, the remaining balance allotted to the session MUST be refunded into the subscriberÆs account. While the Access Device is waiting for the initial quota, the subscriber may have dropped the connection/session. The entire allocated quota MUST be credited back to the subscribers account in this case. 10.2 Support for Multi-Services Examples of services that the user may be using are browsing the web, participating in a VoIP conversation, watching streaming video and downloading a file. Some operators may want to distinguish between these services. Some services are billed at different rates and services may be metered differently. Therefore, the prepaid solution needs to be able to distinguish services, and allocate quotas to the services using different units (e.g. time, volume) and allow for those quotas to be utilized at different rates. +---------+ | Session | +---------+ | V N +--------------+ +-------+ | Service |------>| Quota | | (service-Id) | +-------+ +--------------+ As shown in the above diagram, a Session may be associated with multiple (N) services. Each service is identified by a Service-ID. The format of the Service-ID is not in the scope of this document but the Service-ID could be expressed as an IP flow using the 5- tuple {Source-IP and Port, Destination-IP and Port, protocol type}. Each service is allocated an appropriate quota metric. 10.3 Resource Pools When working with multiple services a new problem arises because one service may utilize its quota faster than another service. When the userÆs balance is close to exhaustion, a situation could arise where one service is unable to obtain quota while another service has plenty of quota remaining. Unless the quotas can be rebalanced, the SAD would then have to terminate that service. Indeed, even before that happens, the services could generate an excessive amount of traffic as the they update their quotas. One method to solve these problems is to utilize resource pools. Resource pools enable the allocation of resources to several services of a session by allocating resources to a pool and have services draw their quota from the pool at a rate appropriate to that service. When the quota allocated to the pool is close to exhaustion, the entire pool is replenished. +-----------+ | Service-A |-----+ +--------+ +-----------+ | Ma | | +-------->| | | Pool | +-------->| (1) | +-----------+ | Mb | | | Service-B |-----+ +--------+ +-----------+ As the figure above shows, Service-A and Service-B are bound to Pool(1). Ma and Mb are the pool multipliers (that are associated with Service-A and Service-B respectively) that determine the rate at which Service-A and Service-B draw from the pool. The pool is initialized by taking the quota allocated to each service and multiplying it by Mn. Therefore, the amount of resources allocated to a pool is given by: Poolr = Ma*Qa + Mb*Qb + . . . A Pool is empty if: Poolr <= Ca*Ma + Cb*Mb + . . . where: Ca,Cb are the consumed resources of Service-A and Service-B respectively. Note that the resources assigned to the pool are not associated with a metric. That is, Service-A can be rated at $1 per Mbyte and Service-B can rated at $0.10 per Minute. In this case if we allocate $5 worth of resources on behalf of service-A to the pool we would set Ma = 10 and place 50 units into the pool. If we allocate $5 on behalf of Service-B to the Pool, then M=1 and place 50 units into the Pool. The pool would have a total sum of 100 units to be shared between the two services. Each Mbyte used by Service-A will draw 10 units from the pool and each minute used by Service-B will draw 1 unit from the pool. 10.4 Support for Complex Rating Functions The rating of a service can be quite complex. While some operators follow linear charging models, others may wish to apply more complex functions. For example, a service provider may wish to rate a service such that the first N Mbytes are free, then the next M Mbytes are rated at $1 per Mbyte and volume above M bytes be rated at $0.50 per Mbyte. Such a function could be implemented by repeated message exchanges with the prepaid system. To avert the need to exchange many messages while still supporting such complex rating functions the notion of a ôRating Groupö is introduced. A Rating Group is provisioned at the SAD. As illustrated in the figure below, a Rating Group is associated with one or more services and defines the rate that the services associated with the Rating Group consume the quota. +-----------+ | Service-A |------+ +-----------+ | +--------------+ +-------+ +---->| | | Quota | | Rating Group |------>| or | +-----------+ +---->| | | Pool | | Service-B |------+ +--------------+ +-------+ +-----------+ During consumption of a service that is associated with a Rating Group, the PPC sends the ID of the Rating Group to the PPS. The prepaid service authorizes the Rating Group by allocating a quota to it and optionally assigning it to a Resource Pool. When service that belongs to an authorized Rating Group is instantiated, the PPC does not need to authorize this service. This limits the amount of traffic between the PPC and the PPS. 10.5 One-Time-based Charging One-Time-based Charging is used for charging of service events without an ongoing session. That is, the service is provisioned instantaneously, as far as charging is concerned. An example of such an event is the purchase of a ring-tone. Subscription based services can also be modeled as a One-Time event. In this case the one-time service event is the purchase of a subscription For a given user, one-time-based charging may occur in parallel with other charging models. For example, the subscriber may access a website which is metered (based on time or volume) while he also purchase the right to use a ring tone (a one-time-based event). Note: it is up to the service providers to decide whether or not the user will be charged for the download of the tone and also be charged for the time and volume required to download the ring-tone. The facilities provided by this document gives the service provider the capability to achieve their service charging business goals. For example, should the service provider choose not to charge for the download volume or time, then they can treat the download IP flow as a separate service that is exempt from charging. The SAD signals one-time-based charging to the PPS with an indication that identifies the service and the units that need to be debited from the userÆs account. One-time-based charging may occur under two conditions: the (a) SAD may not have a authenticated context (or access to an authenticated context) for the subscriber), or (b) the SAD has access to authenticated context for the subscriber. In the former case the SAD will have to authenticate the subscriber. For example, the user maybe authenticated by the SAD providing access service. However when the user accesses the subscription server to purchase a subscription, the subscription server may not have access to the authentication context of the subscriber and thus will have to authenticate the subscriber from scratch. Authentication of the subscriber and the generation of the one-time charging event will happen in conjunction. Note that one-time-based charging can also be used to credit the prepaid userÆs account. For example, the SAD can return resources to the subscriber by issuing a one-time charge request that includes the amount of resources to be credited into the account. 10.6 Support for Tariff Switching The PPC and the PPS may support tariff switching as described earlier. For example, as shown in the figure below, traffic before 18:00 may be rated at ær1Æ and traffic after 18:00 hours is rated at ær2Æ. The PPC reports usage before and after the switch occurs. Tariff switching only makes sense for volume based metering where the volume is billed at different rates. 18:00 ------------------+----------------- r1 | r2 ------------------+----------------- ^ ^ |<----TSI---> | | | Access-Accept Access-Request The PPC it indicates support for tariff switching by setting the appropriate bit in the PPAC. If the PPS needs to signal a tariff switch time it will send a PTS attribute which indicates the point in time when the switch will occur. This indication represents the number of seconds from current time (TarrifSwitchInterval TSI). At some point after the tariff switch the PPC sends another Access- Request, as a result of either the user having logged off or the volume threshold being reached. The PPC reports how much volume was used using the PPAQ in total and how much volume was used after the tariff switch using the PTSÆs VUATS subtype. If the PPC sends this message before the tariff switch, the PPS will respond with another PTS where the TSI is appropriately updated. In situations with multiple tariff switches, as shown below, the PPS MUST specify the length of the tariff switch period using the TimeIntervalAfterTariffSwitchUpdate (TITSU) in the PTS attribute. 18:00 23:30 ------------------+---------------------+-------------- r1 | r2 | r3 ------------------+---------------------+-------------- ^ ^ ^ |<----TSI---><-----------|-------->|TITSU | | Access-Accept Access-Request When a TITSU is specified in the PTS, the PPC MUST generate an Access-Request within the time after TSI and before TITSU expires. Note that, typically, the PPC will be triggered by the Volume Threshold. However, it is possible that, during period r2, insufficient traffic is generated and thus the threshold is not reached. Even in this case PPC MUST generate an Access-Request in good time. Also note that separate services flows may have individual tariff periods. 10.7 Support for Roaming In certain networks it is essential for prepaid data services to be available to roaming subscribers. Support for both static and dynamic roaming models is needed. In a static roaming scenario the subscriber connects to a foreign network which has a roaming agreement either directly with the home network, or through a broker network. When the subscriber logs into another foreign network, a new login procedure has to be executed. In a dynamic roaming scenario the subscriber may move between networks while maintaining his connection. In such a scenario the data session is seamlessly handed off between the networks. In both roaming scenarios, the subscriber always authenticates himself to the home network. Authorization for the prepaid session and quota replenishing occurs at the home network and more specifically at the prepaid system where state is being maintained. Dynamic roaming is challenging because a subscriber who established a prepaid data session may move to another Access Device that does not support the prepaid functionality. Even in this case the system should be able to continue the prepaid session. 10.8 Termination of a prepaid session When fraud or an error is detected, the either only the affected session, or all sessions of the affected subscriber should be terminated. It may happen that the prepaid system enters a state where it is unclear whether or not the data session is in progress. Under such a condition, the system may wish to terminate the session in order to make sure that the user is not billed for this potential inactivity. Certain handoff procedures used in dynamic roaming scenarios require that the system terminates the subscribers prepaid data session at a SAD. This is the case, for example, when time-based prepaid is used and the mobile subscriber performs a dormant handoff. 10.9 Querying and Rebalancing Prepaid Resources It should be possible for the PPS to Query the current resource consumption at a SAD and adjust the userÆs account balance. For example, a request to the PPS is made (e.g. a one-time charging event) but the userÆs account is depleted but resources have been allocated to the SAD. The PPS should have the ability to query the SAD and if it has the spare resources to reassign the quotas to the SAD and to the pending request. Note that the PPS doesnÆt know resource usage until the SAD request for more resources. This can be a long time. In the absence of this capability the PPS can minimize the effect of this phenomenon by allocating small quotas û a practice that results in more message exchanges.