| < draft-ietf-dime-group-signaling-07.txt | draft-ietf-dime-group-signaling-08.txt > | |||
|---|---|---|---|---|
| Diameter Maintenance and Extensions (DIME) M. Jones | Diameter Maintenance and Extensions (DIME) M. Jones | |||
| Internet-Draft | Internet-Draft | |||
| Intended status: Standards Track M. Liebsch | Intended status: Standards Track M. Liebsch | |||
| Expires: August 21, 2017 | Expires: September 14, 2017 | |||
| L. Morand | L. Morand | |||
| February 17, 2017 | March 13, 2017 | |||
| Diameter Group Signaling | Diameter Group Signaling | |||
| draft-ietf-dime-group-signaling-07.txt | draft-ietf-dime-group-signaling-08.txt | |||
| Abstract | Abstract | |||
| In large network deployments, a single Diameter node can support over | In large network deployments, a single Diameter node can support over | |||
| a million concurrent Diameter sessions. Recent use cases have | a million concurrent Diameter sessions. Recent use cases have | |||
| revealed the need for Diameter nodes to apply the same operation to a | revealed the need for Diameter nodes to apply the same operation to a | |||
| large group of Diameter sessions concurrently. The Diameter base | large group of Diameter sessions concurrently. The Diameter base | |||
| protocol commands operate on a single session so these use cases | protocol commands operate on a single session so these use cases | |||
| could result in many thousands of command exchanges to enforce the | could result in many thousands of command exchanges to enforce the | |||
| same operation on each session in the group. In order to reduce | same operation on each session in the group. In order to reduce | |||
| skipping to change at page 1, line 42 ¶ | skipping to change at page 1, line 42 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on August 21, 2017. | This Internet-Draft will expire on September 14, 2017. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2017 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 42 ¶ | skipping to change at page 2, line 42 ¶ | |||
| 4.4. Performing Group Operations . . . . . . . . . . . . . . . 13 | 4.4. Performing Group Operations . . . . . . . . . . . . . . . 13 | |||
| 4.4.1. Sending Group Commands . . . . . . . . . . . . . . . 13 | 4.4.1. Sending Group Commands . . . . . . . . . . . . . . . 13 | |||
| 4.4.2. Receiving Group Commands . . . . . . . . . . . . . . 14 | 4.4.2. Receiving Group Commands . . . . . . . . . . . . . . 14 | |||
| 4.4.3. Error Handling for Group Commands . . . . . . . . . . 14 | 4.4.3. Error Handling for Group Commands . . . . . . . . . . 14 | |||
| 4.4.4. Single-Session Fallback . . . . . . . . . . . . . . . 15 | 4.4.4. Single-Session Fallback . . . . . . . . . . . . . . . 15 | |||
| 5. Operation with Proxy Agents . . . . . . . . . . . . . . . . . 15 | 5. Operation with Proxy Agents . . . . . . . . . . . . . . . . . 15 | |||
| 6. Commands Formatting . . . . . . . . . . . . . . . . . . . . . 16 | 6. Commands Formatting . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 6.1. Formatting Example: Group Re-Auth-Request . . . . . . . . 16 | 6.1. Formatting Example: Group Re-Auth-Request . . . . . . . . 16 | |||
| 7. Attribute-Value-Pairs (AVP) . . . . . . . . . . . . . . . . . 17 | 7. Attribute-Value-Pairs (AVP) . . . . . . . . . . . . . . . . . 17 | |||
| 7.1. Session-Group-Info AVP . . . . . . . . . . . . . . . . . 17 | 7.1. Session-Group-Info AVP . . . . . . . . . . . . . . . . . 17 | |||
| 7.2. Session-Group-Control-Vector AVP . . . . . . . . . . . . 17 | 7.2. Session-Group-Control-Vector AVP . . . . . . . . . . . . 18 | |||
| 7.3. Session-Group-Id AVP . . . . . . . . . . . . . . . . . . 18 | 7.3. Session-Group-Id AVP . . . . . . . . . . . . . . . . . . 18 | |||
| 7.4. Group-Response-Action AVP . . . . . . . . . . . . . . . . 18 | 7.4. Group-Response-Action AVP . . . . . . . . . . . . . . . . 19 | |||
| 7.5. Session-Group-Capability-Vector AVP . . . . . . . . . . . 19 | 7.5. Session-Group-Capability-Vector AVP . . . . . . . . . . . 19 | |||
| 8. Result-Code AVP Values . . . . . . . . . . . . . . . . . . . 19 | 8. Result-Code AVP Values . . . . . . . . . . . . . . . . . . . 19 | |||
| 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 9.1. AVP Codes . . . . . . . . . . . . . . . . . . . . . . . . 19 | 9.1. AVP Codes . . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
| 10. Security Considerations . . . . . . . . . . . . . . . . . . . 19 | 10. Security Considerations . . . . . . . . . . . . . . . . . . . 20 | |||
| 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 20 | 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
| 12. Normative References . . . . . . . . . . . . . . . . . . . . 21 | 12. Normative References . . . . . . . . . . . . . . . . . . . . 21 | |||
| Appendix A. Session Management -- Exemplary Session State | Appendix A. Session Management -- Exemplary Session State | |||
| Machine . . . . . . . . . . . . . . . . . . . . . . 21 | Machine . . . . . . . . . . . . . . . . . . . . . . 21 | |||
| A.1. Use of groups for the Authorization Session State Machine 21 | A.1. Use of groups for the Authorization Session State Machine 21 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 25 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26 | |||
| 1. Introduction | 1. Introduction | |||
| In large network deployments, a single Diameter node can support over | In large network deployments, a single Diameter node can support over | |||
| a million concurrent Diameter sessions. Recent use cases have | a million concurrent Diameter sessions. Recent use cases have | |||
| revealed the need for Diameter nodes to apply the same operation to a | revealed the need for Diameter nodes to apply the same operation to a | |||
| large group of Diameter sessions concurrently. For example, a policy | large group of Diameter sessions concurrently. For example, a policy | |||
| decision point may need to modify the authorized quality of service | decision point may need to modify the authorized quality of service | |||
| for all active users having the same type of subscription. The | for all active users having the same type of subscription. The | |||
| Diameter base protocol commands operate on a single session so these | Diameter base protocol commands operate on a single session so these | |||
| skipping to change at page 15, line 5 ¶ | skipping to change at page 15, line 5 ¶ | |||
| request. In such case, the sender of the request MUST fall back to | request. In such case, the sender of the request MUST fall back to | |||
| single-session processing and the session groups, which have been | single-session processing and the session groups, which have been | |||
| identified in the group command, MUST be deleted according to the | identified in the group command, MUST be deleted according to the | |||
| procedure described in Section 4.3. | procedure described in Section 4.3. | |||
| When a Diameter node receives a request to process a command for one | When a Diameter node receives a request to process a command for one | |||
| or more session groups and the result of processing the command | or more session groups and the result of processing the command | |||
| succeeds for some sessions identified in one or multiple session | succeeds for some sessions identified in one or multiple session | |||
| groups, but fails for one or more sessions, the Result-Code AVP in | groups, but fails for one or more sessions, the Result-Code AVP in | |||
| the response message SHOULD indicate DIAMETER_LIMITED_SUCCESS as per | the response message SHOULD indicate DIAMETER_LIMITED_SUCCESS as per | |||
| Section 7.1.2 of [RFC6733]. In case of limited success, the | Section 7.1.2 of [RFC6733]. | |||
| sessions, for which the processing of the group command failed, MUST | ||||
| be identified using a Failed-AVP AVP as per Session 7.5 of [RFC6733]. | In case of limited success, the sessions, for which the processing of | |||
| the group command failed, MUST be identified using a Failed-AVP AVP | ||||
| as per Section 7.5 of [RFC6733]. The sender of the request MUST fall | ||||
| back to single-session operation for each of the identified sessions, | ||||
| for which the group command failed. In addition, each of these | ||||
| sessions MUST be removed from all session groups to which the group | ||||
| command applied. To remove sessions from a session group, the | ||||
| Diameter client performs the procedure described in Section 4.2.2. | ||||
| 4.4.4. Single-Session Fallback | 4.4.4. Single-Session Fallback | |||
| Either Diameter node can fall back to single session operation by | Either Diameter node can fall back to single session operation by | |||
| ignoring and omitting the optional group session-specific AVPs. | ignoring and omitting the optional group session-specific AVPs. | |||
| Fallback to single-session operation is performed by processing the | Fallback to single-session operation is performed by processing the | |||
| Diameter command solely for the session identified in the mandatory | Diameter command solely for the session identified in the mandatory | |||
| Session-Id AVP. In such case, the response to the group command MUST | Session-Id AVP. In such case, the response to the group command MUST | |||
| NOT identify any group but identify solely the single session for | NOT identify any group but identify solely the single session for | |||
| which the command has been processed. | which the command has been processed. | |||
| 5. Operation with Proxy Agents | 5. Operation with Proxy Agents | |||
| In case of a present stateful Proxy Agent between a Diameter client | In case of a present stateful Proxy Agent between a Diameter client | |||
| and a Diameter server, this specification assumes that the Proxy | and a Diameter server, this specification assumes that the Proxy | |||
| Agent is aware of session groups and session group handling. The | Agent is aware of session groups and session group handling. The | |||
| Proxy MUST update and maintain consistency of its local session | Proxy MUST update and maintain consistency of its local session | |||
| states as per the result of the group commands which are operated | states as per the result of the group commands which are operated | |||
| between a Diameter client and a server. In such a case, the Proxy | between a Diameter client and a server. In such case, the Proxy | |||
| Agent MUST act as a Diameter server in front of the Diameter client | Agent MUST act as a Diameter server in front of the Diameter client | |||
| and MUST act as a Diameter client in front of the Diameter server. | and MUST act as a Diameter client in front of the Diameter server. | |||
| Therefore, the client and server behaviors described in the section 4 | Therefore, the client and server behavior described in Section 4 | |||
| applies respectively to the stateful Proxy Agent. | applies respectively to the stateful Proxy Agent. | |||
| In case a stateful Proxy Agent manipulates session groups, it MUST | In case a stateful Proxy Agent manipulates session groups, it MUST | |||
| maintain consistency of session groups between a client and a server. | maintain consistency of session groups between a client and a server. | |||
| This applies to a deployment where the Proxy Agent utilizes session | This applies to a deployment where the Proxy Agent utilizes session | |||
| grouping and performs group operations with, for example, a Diameter | grouping and performs group operations with, for example, a Diameter | |||
| server, whereas the Diameter client is not aware of session groups. | server, whereas the Diameter client is not aware of session groups. | |||
| In such case the Proxy Agent must reflect the states associated with | In such case the Proxy Agent must reflect the states associated with | |||
| the session groups as individual session operations towards the | the session groups as individual session operations towards the | |||
| client and ensure the client has a consistent view of each session. | client and ensure the client has a consistent view of each session. | |||
| The same applies to a deployment where all nodes, the Diameter client | The same applies to a deployment where all nodes, the Diameter client | |||
| and server, as well as the Proxy Agent are group-aware but the Proxy | and server, as well as the Proxy Agent are group-aware but the Proxy | |||
| Agent manipulates groups, e.g. to adopt different administrative | Agent manipulates groups, e.g. to adopt different administrative | |||
| policies that apply to the client's domain and the server's domain. | policies that apply to the client's domain and the server's domain. | |||
| Stateless Proxy Agents do not maintain any session state (only | Stateless Proxy Agents do not maintain any session state (only | |||
| transaction state are maintained). Consequently, the notion of | transaction state are maintained). Consequently, the notion of | |||
| session group is transparent for any stateless Proxy Agent present | session group is transparent for any stateless Proxy Agent present | |||
| between a Diameter client and a Diameter server handling session | between a Diameter client and a Diameter server handling session | |||
| groups. Session group related AVPs being defined as optional AVP | groups. Session group related AVPs being defined as optional AVP | |||
| should be ignored by stateless Proxy Agents and should not be removed | SHOULD be ignored by stateless Proxy Agents and SHOULD NOT be removed | |||
| from the Diameter commands. If they are removed by the Proxy Agent | from the Diameter commands. If they are removed by the Proxy Agent | |||
| for any reason, the Diameter client and Diameter server will discover | for any reason, the Diameter client and Diameter server will discover | |||
| the absence the related session group AVPs and will fall back to | the absence the related session group AVPs and will fall back to | |||
| single-session processing, as described in Section 4. | single-session processing, as described in Section 4. | |||
| 6. Commands Formatting | 6. Commands Formatting | |||
| This document does not specify new Diameter commands to enable group | This document does not specify new Diameter commands to enable group | |||
| operations, but relies on command extensibility capability provided | operations, but relies on command extensibility capability provided | |||
| by the Diameter Base protocol. This section provides the guidelines | by the Diameter Base protocol. This section provides the guidelines | |||
| skipping to change at page 20, line 45 ¶ | skipping to change at page 21, line 19 ¶ | |||
| provided by the Diameter based protocol. | provided by the Diameter based protocol. | |||
| In some cases, a Diameter Proxy agent can act on behalf of a client | In some cases, a Diameter Proxy agent can act on behalf of a client | |||
| or server. In such a case, the security requirements that normally | or server. In such a case, the security requirements that normally | |||
| apply to a client (or a server) apply equally to the Proxy agent. | apply to a client (or a server) apply equally to the Proxy agent. | |||
| 11. Acknowledgments | 11. Acknowledgments | |||
| The authors of this document want to thank Ben Campbell and Eric | The authors of this document want to thank Ben Campbell and Eric | |||
| McMurry for their valuable comments to early versions of this draft. | McMurry for their valuable comments to early versions of this draft. | |||
| Furthermore, authors thank Steve Donovan for the thorough review and | Furthermore, authors thank Steve Donovan and Mark Bales for the | |||
| comments on the adopted WG document, which helped a lot to improve | thorough review and comments on advanced versions of the WG document, | |||
| this specification. | which helped a lot to improve this specification. | |||
| 12. Normative References | 12. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <http://www.rfc-editor.org/info/rfc2119>. | <http://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC4005] Calhoun, P., Zorn, G., Spence, D., and D. Mitton, | [RFC4005] Calhoun, P., Zorn, G., Spence, D., and D. Mitton, | |||
| "Diameter Network Access Server Application", RFC 4005, | "Diameter Network Access Server Application", RFC 4005, | |||
| End of changes. 13 change blocks. | ||||
| 19 lines changed or deleted | 26 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||