Diameter Maintenance andExtensionsM. Jones Extensions (DIME)June 22, 2012M. Liebsch Internet-Draft L. Morand Intended status: Standards Track July 15, 2013 Expires:December 24, 2012January 16, 2014 Diameter Group Signalingdraft-ietf-dime-group-signaling-00.txtdraft-ietf-dime-group-signaling-01.txt Abstract In large network deployments, a single Diameter peer can support over a million concurrent Diameter sessions. Recent use cases have revealed the need for Diameter peers to apply the same operation to a large group of Diameter sessions concurrently. The Diameter base protocol commands operate on a single session so these use cases could result in many thousands of command exchanges to enforce the same operation on each session in the group. In order to reduce signaling, it would be desirable to enable bulk operations on all (or part of) the sessions managed by a Diameter peer using a single or a few command exchanges. This document specifies the Diameter protocol extensions to achieve this signaling optimization. Status of this Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. 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." This Internet-Draft will expire onDecember 24, 2012.January 16, 2014. Copyright Notice Copyright (c)20122013 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Grouping User Sessions . . . . . . . . . . . . . . . . . . . . 5 3.1. Group assignment at session initiation . . . . . . . . . . 5 3.2. Mid-session group assignment modifications . . . . . . . . 5 3.2.1. Client-initiated group assignment changes . . . . . .56 3.2.2. Server-initiated group assignment changes . . . . . .5 3.3. Server Initiated Group Re-auth . . . . . . . . . . . . . .63.4. Session Group Termination . . . . . . . . . . . . . . . . 7 3.5. Aborting a Group of Sessions . . . . . . . . . . . . . . . 84. Protocol Description . . . . . . . . . . . . . . . . . . . . .107 4.1. SessionManagement . . . . . . . . . .Grouping and implicit Capability Discovery . . . . 7 4.2. Performing Group Operations . . . . . .10 4.1.1. Authorization Session State Machine. . . . . . . . .10 4.2.8 4.2.1. Sending Group Commands . . . . . . . . . . . . . . . . 8 4.2.2. Receiving Group Commands . . . . . . . . .14 4.2.1. Group-Re-Auth-Request . . . .. . . . . . 8 4.2.3. Single-Session Fallback . . . . . .14 4.2.2. Group-Re-Auth-Answer. . . . . . . . . 9 4.3. Session Management . . . . . . . .14 4.2.3. Group-Session-Termination-Request. . . . . . . . . .15 4.2.4. Group-Session-Termination-Answer. . 9 4.3.1. Authorization Session State Machine . . . . . . . . .15 4.2.5. Group-Abort-Session-Request9 5. Commands Formatting . . . . . . . . . . . . .16 4.2.6. Group-Abort-Session-Answer. . . . . . . . 13 5.1. Group Re-Auth-Request . . . . . .16 5. AVPs. . . . . . . . . . . . 13 6. Attribute-Value-Pairs (AVP) . . . . . . . . . . . . . . . . .18 5.1.14 6.1. Session-Group-Id AVP . . . . . . . . . . . . . . . . . . .18 5.2.14 6.2. Session-Group-Action AVP . . . . . . . . . . . . . . . . .18 6.14 7. Result-Code AVP Values . . . . . . . . . . . . . . . . . . . .19 7.15 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . .20 7.1. Command Codes . . . . . . . . . . . . . . . . . . . . . . 20 7.2.16 8.1. AVP Codes . . . . . . . . . . . . . . . . . . . . . . . .20 8.16 9. Security Considerations . . . . . . . . . . . . . . . . . . .21 9.17 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . .22 10.18 11. Normative References . . . . . . . . . . . . . . . . . . . . .23 Author's Address .19 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . .2420 1. Introduction In large network deployments, a single Diameter peer can support over a million concurrent Diameter sessions. Recent use cases have revealed the need for Diameter peers to apply the same operation to a large group of Diameter sessions concurrently. For example, a policy decision point may need to modify the authorized quality of service for all active users having the same type of subscription. The Diameter base protocol commands operate on a single session so these use cases could result in many thousands of command exchanges to enforce the same operation on each session in the group. In order to reduce signaling, it would be desirable to enable bulk operations on all (or part of) the sessions managed by a Diameter peer using a single or a few command exchanges. This document describesa mechanismmechanisms for grouping Diameter sessions and applying Diameter commands, such as performing re-authentication,re-authorization,re- authorization, termination and abortion ofgroupssessions to a group of sessions. This document does not define a new Diameter application. Instead it defines mechanisms, commands and AVPs that may be used by any Diameter application that requires management of groups of sessions. These mechanisms take the following design goals and features into account: o Minimal impact to existing applications o Extension of existing commands' CCF with optional AVPs to enable grouping and group operations o Fallback to single session operation o Implicit discovery of capability to support grouping and group operations 2. Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119]. This document uses terminology defined [RFC3588]. 3. Grouping User Sessions Either Diameter peer may assign a session to a group. Diameter AAA applications typically assign client and server roles to the Diameter peers.In this document,3.1. Group assignment at session initiation Assignment of aDiameter client isnew session to anode atgroup is accomplished by theedge ofDiameter server when requested by the Diameter client. Without being explicitly requested by the client, thenetwork that performs access control. ADiameter server can assign a new session to a server-assigned group based on its own decision. When a new session is to be assigned to anode that performs authentication and/or authorization ofgroup by theuser. 3.1. Group assignmentDiameter server, the server assigns a new session to at least one server- assigned group. To complement server-assigned grouping, a Diameter client can assign a sessioninitiationto a client-assigned group. To assign a session to a group at session initiation, a Diameter client sends a service specificauthrequest, e.g. NASREQ AAR [RFC4005], containingzeroone or moreclient-assignedgroup identifiers. The Diameter client can assign the session to a client-assigned group and identify the associated group with an appended client-assigned group identifier. The client can append multiple client-assigned group identifiers if the client assigns the new session to more than one group. If the Diameter client does not send a client-assigned group identifier, the client may receive one or multiple server-assigned group identifiers in the server's response, which identify the server-assigned groups to which the new session has been assigned. The Diameter client can explicitly request the Diameter server to perform grouping of the new session. Assuming the userishas been successfully authenticated and/or authorized, the Diameter server responds with service-specific auth response, e.g. NASREQ AAA [RFC4005], containing both theclient-assignedclient- assigned group identifiers (if sent with the request) andzeroone or more server-assigned group identifiers. Both peers, the Diameter client and the Diameter server, must keep a list of all group identifiers which identify all client- and server- assigned groups to which the session has been assigned. 3.2. Mid-session group assignment modifications Either Diameter peer may modify the group membership of an active Diameter session. A Diameter client MAY remove the group(s) assigned to the active session by the Diameter server and vice versa. This document does not define a permission model that limits removal of a session from a group by the same peer that added the session to the group. However, applications which re-use the commands and methods defined in this document may impose their own permission model. For example, an application could require that the server MUST NOT remove a session from a group assigned by the client. 3.2.1. Client-initiated group assignment changes To update the assigned groups mid-session, a Diameter client sends a service specific re-authorization request containing the updated list of group identifiers. Assuming the user is successfully authenticated and/or authorized, the Diameter server responds with a service-specific auth response containing the updated list of group identifiers received in the request. 3.2.2. Server-initiated group assignment changes To update the assigned groups mid-session, a Diameter server sends a Re-authorization Request (RAR) message requesting re-authorization and the client responds with a Re-authorization Answer (RAA) message. The Diameter client sends a service specific re-authorization request containing the current list of group identifiers and the Diameter server responds with a service-specific auth response containing the updated list of group identifiers.3.3. Server Initiated Group Re-auth This document defines a new Group-Re-Auth-Request/Answer (GRAR/ GRAA)command exchange which allows4. Protocol Description 4.1. Session Grouping and implicit Capability Discovery Either Diameter peer, aserver toDiameter client or server, can initiate assigning are- authentication and/or re-authorization of all services that are assignedsession toone of thea single or multiple session groupsspecified inaccording to theSession-Group-Id AVPprocedure described inthe request. An access device that receives a Group-Re-Auth-Request(GRAR) message with Session-Group-Id equal to oneSection 3. Modification ofthea groupassigned toby removing or adding acurrently activesingle or multiple user sessions can be initiated and performed at runtime by either Diameter peer. A Diameter client as sender of a command for sessionMUST initiateinitiation can determine one or multiple groups to which thetypenew session should be assigned. Each ofre-auth specified by the Re-Auth-Request-Type AVPthese groups need to be identified inthe mannera separate Session-Group-Id AVP as specifiedby the Session-Group-Actionin Section 6. In each appended Session-Group-Id AVPif the service supports this particular feature. Each Diameter application MUST state whether service- initiated group re-authentication and/or re-authorization is supported andwhichSession-Group-Action AVP values are supported for re-authorization. The Session-Group-Action AVP specifies whether the server requirescarries are-authorization request per session, perclient-assigned groupor for all groups. Foridentifier, aRe-Auth-Request-Type value of AUTHORIZE_AUTHENTICATE, the Session-Group-Action value MUST be PER_SESSION since re- authentication MUST be performed per user session. For Session-Group-Action values of PER_GROUP or ALL_GROUPS,flag must indicate that there- authorization is accomplished with an application-specifccarried groupre- authorization command exchange. This command exchange as well as any limitations on which aspects of the service can be modified duringidentifier is not are-authorization MUST be defined by the Diameter application.server-assigned but a client-assigned one. If the Diameter clientis able to perform the requested re-authentication and/or re-authentication fordoes not determine thesessions assignedgroup to which thegroup(s) specified innew session should be assigned, theGRAR, it shall returnclient can set aGRAA command with the Result-Codeflag in an appended Session-Group-Id AVPsettoDIAMETER_SUCCESS and Session-Group-Id AVP(s) indicatingexplicitly request thegroups for whichDiameter server as recipient of theGRAR receiver has active sessions assigned. If there are no sessions assignedmessage to assign thegroup(s) specified in the GRAR, the Result-Code is setnew session toDIAMETER_UNKNOWN_SESSION_ID. Ifone or multiple groups. By appending at least one Session-Group-Id AVP, the Diameter clientis unableannounces its capability to support group operations according toperform the requested re-authentication and/or re-authentication,theResult-Code is setspecification in this document toDIAMETER_UNABLE_TO_COMPLY. Diameter Diameter Client Server | | (1)+-------------Svc-Specific-Auth-Request--------------->| | Session-Id=ABC | | | (2)|<------------Svc-Specific-Auth-Answer-----------------+ | Session-Id=ABC; Session-Group-Id=XYZ | | | (3)+-------------Svc-Specific-Auth-Request--------------->| | Session-Id=DEF | | | (4)|<------------Svc-Specific-Auth-Answer-----------------+ | Session-Id=DEF; Session-Group-Id=XYZ | | | (5)|<--------------Group-Re-Auth-Request------------------+ | Session-Group-Id=XYZ; Session-Group-Action=PER_GROUP | | Re-Auth_Request-Type=AUTHORIZE_ONLY | | | (6)+---------------Group-Re-Auth-Answer------------------>| | | (7)+----------Svc-Specific-Group-Auth-Request------------>| | Session-Group-Id=XYZ | | | (8)|<---------Svc-Specific-Group-Auth-Answer--------------+ | Updated Service Specific AVPs | | | Figure 1: Example: Group Re-authorization Intheexample above,addressed Diameter server. If the Diameterserver authorizes two sessions (ABC and DEF) and assigns themclient supports group operations, it MUST append at least one Session-Group-Id AVP toaannounce its capability to support groupnamed XYZ (Session-Group- Id=XYZ in steps 2 and 4). Some time later, an event occurs on theoperations. A Diameter server receiving a command for session initiation whichrequires it to changeincludes at least oneor more of the service parameters forSession-Group-Id AVP learns about thesessions assignedsender's capability to support groupXYZ. The Diameter server sendsoperations. If aGroup-Re-Auth-Request (step 5) specifyingflag in theimpacted group (Session-Group-Id=XYZ)appended Session-Group-Id AVPs identifies a client-assigned group, the server mustbe re-authorized (Re-Auth- Request-Type=AUTHORIZE_ONLY)store the one or multiple identifiers and associate the new session with these groups. If asingle re-authorize command per group (Session-Group-Action=PER_GROUP). Theflag in a received Session-Group-Id AVP indicates that the Diameter clientacknowledgesexplicitly requests therequest (step 6) and issues a service-specific group authorization requestDiameter server toretrieveassign theupdated service parameters (step 7). 3.4. Session Group Termination This document defines anewGroup-Session-Termination-Request/Answer (GSTR/GSTA) command exchange which allows a client to communicatesession to a server-assigned group, the Diameter server should assign thetermination of all sessions that are assignednew session to one or multiple groups. The Diameter server identifies each ofthethese server-assigned groupsspecifiedin a Session- Group-Id AVP, which are appended to the response to the received command. Each of these Session-Group-IdAVPAVPs must indicate in a flag that therequest. The termination ofcarried identifier is a server-assigned groupof sessions could occur as a result ofidentifier. If alocal action orflag inreponse toa received Session-Group-Id AVP indicates that the Diameter client does not explicitly request the Diameter server toabort one or more groups of sessions. FFS: When a client sends an GSTRassign the new session to aserver indicating termination of a specificserver-assigned group,is it indicating termination ofthesessions thatDiameter server may assign the new session to one or multiple groups. The Diameter serverauthorized and thatidentifies each of these server-assigned groups in a Session-Group-Id AVP, which areassignedappended to thespecified group? Or does imply termination of all sessions on the client that are assignedresponse to thespecified group? Upon receiptreceived command. Each of these Session-Group-Id AVPs must indicate in a flag that theGSTR,carried identifier is a server-assigned group identifier. By appending at least one Session-Group-Id AVP, the DiameterServer MUST release all resources for the sessions assignedserver announces its capability to support group operations according to thegroup(s) specifiedspecification in this document to the addressed Diameter client. A Diameter server receiving a command for session initiation which includes at least one Session-Group-Id AVPand return a GSTA withbut theResult-Code set to DIAMETER_SUCCESS to acknowledgeserver does not understand thesuccessful termination. If there are no sessions assignedsemantics of this optional AVP because it does not support group operations according to thegroup(s) specifiedspecification in this document, MUST ignore theGSTR,optional group operations specific AVPs and proceed with processing theResult-Code is setcommand for a single session. A Diameter client, which sent a request for session initiation toDIAMETER_UNKNOWN_SESSION_ID. If thea Diameter serveris unable to performand appended a single or multiple Session-Group-Id AVPs but cannot find any Session-Group-Id AVP in thesession termination,associated response from theResult-Code is set to DIAMETER_UNABLE_TO_COMPLY. 3.5. Aborting a Group of Sessions This document definesDiameter server proceeds with processing the command for anew Group-Abort-Session-Request/Answer (GASR/ GASA)command exchange which allowssingle session. Furthermore, the client keeps a log to remember that the server is not able to perform group operations. 4.2. Performing Group Operations 4.2.1. Sending Group Commands Either Diameter peer can request theterminationrecipient of a request to process an associated command for all sessionsthat arebeing assigned to oneof theor multiple groups by identifying these groupsspecifiedin the request. The sender of the request appends for each group, to which the command applies, a Session-Group-Id AVP and indicates in a flag whether therequest. A client that receives an GASR with Session-Group-Id equal toidentifier represents agroup assigned toserver- or acurrently active session MAY stop the session. Whetherclient-assigned group. If theclient stopsCCF of thesession or not is implementation- and/or configuration-dependent. For example,request mandates aclient may honor GASRs from certain agents only. In any case,Session-Id AVP, theclientSession-Id AVP MUSTrespond with an Group-Abort-Session-Answer, includingidentify aResult-Code AVPsingle session which is assigned toindicate what action it took.at least one of the groups being identified in the appended Session-Group-Id AVPs. If theclient is able to performsender wants therequested terminationreceiver of thesessions assignedrequest to process thegroup(s) specifiedassociated command solely for a single session does not append any group identifier, but identifies the relevant session in theGASR, it shall returnSession-Id AVP. 4.2.2. Receiving Group Commands A Diameter peer receiving aGASA command with the Result-Code AVP setrequest toDIAMETER_SUCCESS and Session-Group-Id AVP(s) indicatingprocess a command for a group of sessions identifies the relevant groupsfor whichaccording to theGASR receiver has active sessions assigned.appended Session-Group-Id AVP. Ifthere are no sessions assigned tothegroup(s) specifiedreceived request identifies multiple groups in multiple appended Session-Group-Id AVPs, theGASR, the Result-Code is set to DIAMETER_UNKNOWN_SESSION_ID. If the client is unable to performreceiver should process therequested terminationassociated command forany of the sessions, the Result-Code is set to DIAMETER_UNABLE_TO_COMPLY. When a client terminates a session upon receipteach ofa Group-Abort- Session-Request, it MUST issuethese groups. if a sessiontermination requesthas been assigned to more than one of theDiameter server that authorizedidentified groups, theservice. The Session-Group- Action AVP specifies whetherreceiver must process theserver requires a single session termination request per session (with STR message),associated command only once pergroup (with GSTR message) or for all groups (with GSTR message).session. 4.2.3. Single-Session Fallback Either Diameter peer, a DiameterClient Server | | (1)+-------------Svc-Specific-Auth-Request--------------->| | Session-Id=ABC | | | (2)|<------------Svc-Specific-Auth-Answer-----------------+ | Session-Id=ABC; Session-Group-Id=XYZ | | | (3)+-------------Svc-Specific-Auth-Request--------------->| | Session-Id=DEF | | | (4)|<------------Svc-Specific-Auth-Answer-----------------+ | Session-Id=DEF; Session-Group-Id=XYZ | | | (5)|<-----------Group-Abort-Session-Request---------------+ | Session-Group-Id=XYZ; Session-Group-Action=PER_GROUP | | | (6)+------------Group-Abort-Session-Answer--------------->| | | (7)+---------Group-Session-Termination-Request----------->| | Session-Group-Id=XYZ | | | (8)|<---------Group-Session-Termination-Answer------------+ | | Figure 2: Example: Abortingclient or aGroup of Sessions In the example above, theDiameterserver authorizes two sessions (ABCserver, can fall back to single session operation by ignoring andDEF)omitting the optional andassigns them to agroupnamed XYZ (Session-Group- Id=XYZ in steps 2 and 4). Some time later, an event occurs on the Diameter server which requires itsession-specific AVPs. Fallback toabortsingle-session operation is performed by processing thesessions assigned to group XYZ. TheDiameterserver sends a Group-Abort-Session-Request (step 5) specifyingcommand solely for thesessions assignedsession identified in the mandatory Session-Id AVP. The response to theimpactedgroup(Session-Group-Id=XYZ) are to be terminated and acommand must not identify any group but identify solely the singleterminationsession for which the commandis tohas been processed. 4.3. Session Management Editor's note: This first document revision adopts the WG's current view on how Diameter commands can besent per impactedformatted to enable group(Session-Group- Action=PER_GROUP).signaling. TheDiameter client acknowledgesrequired change in therequest with a GASA (step 6)formatting andissues a GSTR (step 7) command to release all resources forprotocol operation has not yet been considered in this Section 4.3 , which still reflects thesessions assignedformatting as per version 0 of this specification. The described session state machines still need revision to reflect thegroup XYZ. The Diameter server acknowledgesgeneralized formatting and thetermination with a GGSTA (Step 8). 4. Protocol Description 4.1. Session Management 4.1.1.adopted protocol operation. 4.3.1. Authorization Session State Machine Section 8.1 in [RFC3588] defines a set of finite state machines, representing the life cycle of Diameter sessions, and which MUST be observed by all Diameter implementations that make use of the authentication and/or authorization portion of a Diameter application. This section defines the additional state transitions related to the processing of the new commands which may impact multiple sessions. The group membership is session state and therefore only those state machines from [RFC3588] in which the server is maintaining session state are relevant in this document. As in [RFC3588], the term Service-Specific below refers to a message defined in a Diameter application (e.g., Mobile IPv4, NASREQ). The following state machine is observed by a client when state is maintained on the server. State transitions which are unmodified from [RFC3588] are not repeated here. CLIENT, STATEFUL State Event Action New State --------------------------------------------------------------- Idle Client or Device Requests Send Pending access service specific auth req optionally including groups Open GASR received with Send GASA Discon Session-Group-Action with = ALL_GROUPS, Result-Code session is assigned to = SUCCESS, received group(s) and Send GSTR. client will comply with request to end the session Open GASR received with Send GASA Discon Session-Group-Action with = PER_GROUPS, Result-Code session is assigned to = SUCCESS, received group(s) and Send GSTR client will comply with per group request to end the session Open GASR received with Send GASA Discon Session-Group-Action with = PER_SESSION, Result-Code session is assigned to = SUCCESS, received group(s) and Send STR client will comply with per session request to end the session Open GASR received, Send GASA Open client will not comply with with request to end all session Result-Code in received group(s) != SUCCESS Discon GSTA Received Discon. Idle user/device Open GRAR received with Send GRAA, Pending Session-Group-Action Send = ALL_GROUPS, service session is assigned to specific received group(s) and group client will perform re-auth req subsequent re-auth Open GRAR received with Send GRAA, Pending Session-Group-Action Send = PER_GROUP, service session is assigned to specific received group(s) and group client will perform re-auth req subsequent re-auth per group Open GRAR received with Send GRAA, Pending Session-Group-Action Send = PER_SESSION, service session is assigned to specific received group(s) and re-auth req client will perform per session subsequent re-auth Open GRAR received and client will Send GRAA Idle not perform subsequent with re-auth Result-Code != SUCCESS, Discon. user/device Pending Successful service-specific Provide Open group re-authorization answer service received. Pending Failed service-specific Discon. Idle group re-authorization answer user/device received. The following state machine is observed by a server when it is maintaining state for the session. State transitions which are unmodified from [RFC3588] are not repeated here. SERVER, STATEFUL State Event Action New State --------------------------------------------------------------- Idle Service-specific authorization Send Open request received, and user successful is authorized service specific answer optionally including groups Open Server wants to terminate Send GASR Discon group(s) Discon GASA received Cleanup Idle Any GSTR received Send GSTA, Idle Cleanup Open Server wants to reauth Send GRAR Pending group(s) Pending GRAA received with Result-Code Update Open = SUCCESS session(s) Pending GRAA received with Result-Code Cleanup Idle != SUCCESS session(s) Open Service-specific group Send Open re-authoization request successful received and user is service authorized specific group re-auth answer Open Service-specific group Send Idle re-authorization request failed received and user is service not authorized specific group re-auth answer, cleanup4.2.5. CommandsEditor's Note: The content of this sectionFormatting This document does notrepresent workingspecify new Diameter commands to enable groupconsensusoperations, butratherrelies on command extensibility capability provided by theviews ofDiameter Base protocol. This section provides thedraft author priorguidelines to(and post) adoption. Alternative methods for manipulating groupsextend the CCF ofsessions are being considered byexisting Diameter commands with optional AVPs to enable theworking group and this section may be heavily modified or removed in subsequent versions. This specification extendsrecipient of theexisting RAR, RAA, STR, STA, ASR and ASAcommandABNFs. 4.2.1. Group-Re-Auth-Request The Group-Re-Auth-Request (GRAR), indicated by the Command-Code settoTBD andperform themessage flags' 'R' bit set, may be sent by any servercommand to all sessions associated with theaccess device that is providing session service, toidentified group(s). 5.1. Group Re-Auth-Request A request that one or more groups of usersbe re-authenticated and/or re- authorized. <GRAR> ::= < Diameter Header: TBD, REQ, PXY > * { Session-Group-Id } { Origin-Host } { Origin-Realm } { Destination-Realm } { Destination-Host } { Auth-Application-Id } { Re-Auth-Request-Type } [ Origin-State-Id ] * [ Proxy-Info ] * [ Route-Record ] [ Session-Group-Action ] * [ AVP ] 4.2.2. Group-Re-Auth-Answer The Group-Re-Auth-Answer (GRAA), indicated by the Command-Code set to TBD and the message flags' 'R' bit clear,are re-authentication issent in responseissues by appending one or multiple Session-Group-Id AVP(s) to theGRAR.Re-Auth-Request (RAR). TheResult-Code AVP MUST be present, and indicatesone or multiple Session-Group-Id AVP(s) identify thedisposition ofassociated group(s) for which therequest. <GRAA> ::= < Diameter Header: TBD, PXY > * { Session-Group-Id } { Result-Code } { Origin-Host } { Origin-Realm } [ Origin-State-Id ] [ Error-Message ] [ Error-Reporting-Host ] * [ Failed-AVP ] * [ Redirect-Host ] [ Redirect-Host-Usage ] [ Redirect-Host-Cache-Time ] * [ Proxy-Info ] * [ AVP ] 4.2.3. Group-Session-Termination-Requestgroup re- authentication has been requested. TheGroup-Session-Termination-Request (GSTR), indicated by the Command-Code set to TBD andrecipient of theCommand Flags' 'R' bit set, is sent bygroup command initiates re-authentication for all users associated with theaccess device to informidentified group(s). Furthermore, theDiameter Server that one or more groupssender ofauthenticated and/or authorized sessions are being terminated. <GSTR> ::= < Diameter Header: TBD, REQ, PXY > * { Session-Group-Id } { Origin-Host } { Origin-Realm } { Destination-Realm } { Auth-Application-Id } { Termination-Cause } [ Destination-Host ] * [ Class ] [ Origin-State-Id ] * [ Proxy-Info ] * [ Route-Record ] * [ AVP ] 4.2.4. Group-Session-Termination-Answer The Group-Session-Termination-Answer (GSTA), indicated bytheCommand-Code setgroup re- authentication request appends a Session-Group-Action AVP toTBD and the message flags' 'R' bit clear, is sent by the Diameter Serverprovide more information toacknowledgethenotification that one or more groupsreceiver ofsession have been terminated. The Result-Code AVP MUST be present, and MAY contain an indication that an error occurred while servicing the GSTR. <GSTA> ::= < Diameter Header: TBD, PXY > * { Session-Group-Id } { Result-Code } { Origin-Host } { Origin-Realm } * [ Class ] [ Error-Message ] [ Error-Reporting-Host ] * [ Failed-AVP ] [ Origin-State-Id ] * [ Redirect-Host ] [ Redirect-Host-Usage ] [ Redirect-Max-Cache-Time ] * [ Proxy-Info ] * [ AVP ] 4.2.5. Group-Abort-Session-Request The Group-Abort-Session-Request (GASR), indicated bytheCommand-Code setcommand about how toTBD andaccomplish themessage flags' 'R' bit set, may be sent by any server togroup operation. The value of theaccess device that is providingmandatory Session-Id AVP MUST identify a sessionservice,associated with a single user, which is assigned torequest thatat least one of thesessionsgroups being identifiedbyin the appended Session-Group-Idbe stopped. <GASR>AVPs. <RAR> ::= < Diameter Header:TBD,258, REQ, PXY >* { Session-Group-Id }< Session-Id > { Origin-Host } { Origin-Realm } { Destination-Realm } { Destination-Host } { Auth-Application-Id } { Re-Auth-Request-Type } [ User-Name ] [ Origin-State-Id ] * [ Proxy-Info ] * [ Route-Record ][ Group-Action ]* [AVP ] 4.2.6. Group-Abort-Session-Answer The Group-Abort-Session-Answer (GASA), indicated by the Command-Code set to TBD and the message flags' 'R' bit clear, is sent in response to the GASR. The Result-Code AVP MUST be present, and indicates the disposition of the request. <GASA> ::= < Diameter Header: TBD, PXY > * {Session-Group-Id} { Result-Code } { Origin-Host } { Origin-Realm } [ Origin-State-Id ] [ Error-Message] [Error-Reporting-Host ] * [ Failed-AVP ] * [ Redirect-Host ] [ Redirect-Host-Usage ] [ Redirect-Max-Cache-Time ] * [ Proxy-InfoSession-Group-Action ] * [ AVP ]5. AVPs6. Attribute-Value-Pairs (AVP) +--------------------+ | AVP Flag rules | +----+---+------+----+ AVP | | |SHOULD|MUST| Attribute Name Code Value Type |MUST|MAY| NOT | NOT| +---------------------------------------+----+---+------+----+ |Session-Group-Id TBD OctetString | | P | | V | |Session-Group-Action TBD Enumerated | | P | | V | +---------------------------------------+----+---+------+----+ AVPs for the Diameter Group Signaling5.1.6.1. Session-Group-Id AVP The Session-Group-Id AVP (AVP Code TBD) is of type OctetString and identifies a group of sessions. This uniqueness scope of this AVP is specified by the Diameter application which makes use of group signaling commands.5.2.6.2. Session-Group-Action AVP The Session-Group-Action AVP (AVP Code TBD) is of type Enumerated and specifies how the peer SHOULD issue follow up exchanges in response to a command which impacts mulitple sessions. The following values are supported: ALL_GROUPS (0) Follow up exchanges should be performed with a single message exchange for all impacted groups. PER_GROUP (1) Follow up exchanges should be performed with a message exchange for each impacted group. PER_SESSION (2) Follow up exchanges should be performed with a message exchange for each impacted session.6.7. Result-Code AVP Values This section defines new Result-Code [RFC3588] values that MUST be supported by all Diameter implementations that conform to this specification. [Editor's Note: Group specific error values may need to be added here.]7.8. IANA Considerations This section contains the namespaces that have either been created in this specification or had their values assigned to existing namespaces managed by IANA.7.1. Command Codes This specification requires IANA to register the following new Commands from the Command Code namespace defined in [RFC3588]. o Group-Re-Auth-Request/Answer o Group-Session-Termination-Request/Answer o Group-Abort-Session-Request/Answer The commands are defined in Section 4.2. 7.2.8.1. AVP Codes This specification requires IANA to register the following new AVPs from the AVP Code namespace defined in [RFC3588]. o Session-Group-Id o Session-Group-Action The AVPs are defined in Section5. 8.6. 9. Security Considerations TODO9. Acknowledgments10. Acknowledgments 11. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC3588] Calhoun, P., Loughney, J., Guttman, E., Zorn, G., and J. Arkko, "Diameter Base Protocol", RFC 3588, September 2003. [RFC4005] Calhoun, P., Zorn, G., Spence, D., and D. Mitton, "Diameter Network Access Server Application", RFC 4005, August 2005.Author's AddressAuthors' Addresses Mark Jones Email: mark@azu.ca Marco Liebsch Email: marco.liebsch@neclab.eu Lionel Morand Email: lionel.morand@orange.com