| < draft-ietf-dime-app-design-guide-18.txt | draft-ietf-dime-app-design-guide-19.txt > | |||
|---|---|---|---|---|
| Diameter Maintenance and Extensions (DIME) L. Morand, Ed. | Diameter Maintenance and Extensions (DIME) L. Morand, Ed. | |||
| Internet-Draft Orange Labs | Internet-Draft Orange Labs | |||
| Intended status: Informational V. Fajardo | Intended status: Informational V. Fajardo | |||
| Expires: December 08, 2013 | Expires: December 28, 2013 | |||
| H. Tschofenig | H. Tschofenig | |||
| Nokia Siemens Networks | Nokia Siemens Networks | |||
| June 06, 2013 | June 26, 2013 | |||
| Diameter Applications Design Guidelines | Diameter Applications Design Guidelines | |||
| draft-ietf-dime-app-design-guide-18 | draft-ietf-dime-app-design-guide-19 | |||
| Abstract | Abstract | |||
| The Diameter base protocol provides facilities for protocol | The Diameter base protocol provides facilities for protocol | |||
| extensibility enabling to define new Diameter applications or modify | extensibility enabling to define new Diameter applications or modify | |||
| existing applications. This document is a companion document to the | existing applications. This document is a companion document to the | |||
| Diameter Base protocol that further explains and clarifies the rules | Diameter Base protocol that further explains and clarifies the rules | |||
| to extend Diameter. It is meant as a guidelines document and | to extend Diameter. It is meant as a guidelines document and | |||
| therefore as informative in nature. | therefore as informative in nature. | |||
| skipping to change at page 1, line 38 ¶ | skipping to change at page 1, line 38 ¶ | |||
| 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 December 08, 2013. | This Internet-Draft will expire on December 28, 2013. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2013 IETF Trust and the persons identified as the | Copyright (c) 2013 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 36 ¶ | skipping to change at page 2, line 36 ¶ | |||
| 5.3. Use of Application-Id in a Message . . . . . . . . . . . 10 | 5.3. Use of Application-Id in a Message . . . . . . . . . . . 10 | |||
| 5.4. Application-Specific Session State Machines . . . . . . . 11 | 5.4. Application-Specific Session State Machines . . . . . . . 11 | |||
| 5.5. Session-Id AVP and Session Management . . . . . . . . . . 11 | 5.5. Session-Id AVP and Session Management . . . . . . . . . . 11 | |||
| 5.6. Use of Enumerated Type AVPs . . . . . . . . . . . . . . . 12 | 5.6. Use of Enumerated Type AVPs . . . . . . . . . . . . . . . 12 | |||
| 5.7. Application-Specific Message Routing . . . . . . . . . . 12 | 5.7. Application-Specific Message Routing . . . . . . . . . . 12 | |||
| 5.8. Translation Agents . . . . . . . . . . . . . . . . . . . 13 | 5.8. Translation Agents . . . . . . . . . . . . . . . . . . . 13 | |||
| 5.9. End-to-End Application Capabilities Exchange . . . . . . 14 | 5.9. End-to-End Application Capabilities Exchange . . . . . . 14 | |||
| 5.10. Diameter Accounting Support . . . . . . . . . . . . . . . 14 | 5.10. Diameter Accounting Support . . . . . . . . . . . . . . . 14 | |||
| 5.11. Diameter Security Mechanisms . . . . . . . . . . . . . . 16 | 5.11. Diameter Security Mechanisms . . . . . . . . . . . . . . 16 | |||
| 6. Defining Generic Diameter Extensions . . . . . . . . . . . . 16 | 6. Defining Generic Diameter Extensions . . . . . . . . . . . . 16 | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 | 7. Guidelines for Registrations of Diameter Values . . . . . . . 17 | |||
| 8. Security Considerations . . . . . . . . . . . . . . . . . . . 17 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 18 | 9. Security Considerations . . . . . . . . . . . . . . . . . . . 19 | |||
| 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 18 | 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
| 11. Informative References . . . . . . . . . . . . . . . . . . . 18 | 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20 | 12. Informative References . . . . . . . . . . . . . . . . . . . 20 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 | ||||
| 1. Introduction | 1. Introduction | |||
| The Diameter base protocol provides facilities to extend Diameter | The Diameter base protocol provides facilities to extend Diameter | |||
| (see Section 1.3 of [RFC6733]) to support new functionality. In the | (see Section 1.3 of [RFC6733]) to support new functionality. In the | |||
| context of this document, extending Diameter means one of the | context of this document, extending Diameter means one of the | |||
| following: | following: | |||
| 1. Addition of new functionality to an existing Diameter application | 1. Addition of new functionality to an existing Diameter application | |||
| without defining a new application. | without defining a new application. | |||
| skipping to change at page 17, line 46 ¶ | skipping to change at page 17, line 46 ¶ | |||
| specify such a use case and perhaps provide specific examples of | specify such a use case and perhaps provide specific examples of | |||
| applications using them. | applications using them. | |||
| In most cases, these optional AVPs piggybacked by applications would | In most cases, these optional AVPs piggybacked by applications would | |||
| be defined as a Grouped AVP and it would encapsulate all the | be defined as a Grouped AVP and it would encapsulate all the | |||
| functionality of the generic extension. In practice, it is not | functionality of the generic extension. In practice, it is not | |||
| uncommon that the Grouped AVP will encapsulate an existing AVP that | uncommon that the Grouped AVP will encapsulate an existing AVP that | |||
| has previously been defined as mandatory ('M'-bit set) e.g., 3GPP IMS | has previously been defined as mandatory ('M'-bit set) e.g., 3GPP IMS | |||
| Cx/Dx interfaces ([TS29.228] and [TS29.229]). | Cx/Dx interfaces ([TS29.228] and [TS29.229]). | |||
| 7. IANA Considerations | 7. Guidelines for Registrations of Diameter Values | |||
| As summarized in the Section 3 of this document and further described | ||||
| in the Section 1.3 of [RFC6733], there are four main ways to extend | ||||
| Diameter. The process for defining new functionality slightly varies | ||||
| based on the different extensions. This section provides protocol | ||||
| designers with some guidance regarding the definition of values for | ||||
| possible Diameter extensions and the necessary interaction with IANA | ||||
| to register the new functionality. | ||||
| a. Defining new AVP values | ||||
| The specifications defining AVPs and AVP values provide guidance | ||||
| for defining new values and the corresponding policy for adding | ||||
| these values. For example, the RFC 5777 [RFC5777] defines the | ||||
| Treatment-Action AVP which contains a list of valid values | ||||
| corresponding to pre-defined actions (drop, shape, mark, permit). | ||||
| This set of values can be extended following the Specification | ||||
| Required policy defined in [RFC5226]. As a second example, the | ||||
| Diameter base specification [RFC6733] defines the Result-Code AVP | ||||
| that contains a 32-bit address space used to identity possible | ||||
| errors. According to the Section 11.3.2 of [RFC6733], new values | ||||
| can be assigned by IANA via an IETF Review process [RFC5226]. | ||||
| b. Creating new AVPs | ||||
| Two different types of AVP Codes namespaces can be used to create | ||||
| a new AVPs: | ||||
| * IETF AVP Codes namespace; | ||||
| * Vendor-specific AVP Codes namespace. | ||||
| In the latter case, a vendor needs to be first assigned by IANA | ||||
| with a private enterprise number, which can be used within the | ||||
| Vendor-Id field of the vendor-specific AVP. This enterprise | ||||
| number delimits a private namespace in which the vendor is | ||||
| responsible for vendor-specific AVP code value assignment. The | ||||
| absence of a Vendor-Id or a Vendor-Id value of zero (0) in the AVP | ||||
| header identifies standard AVPs from the IETF AVP Codes namespace | ||||
| managed by IANA. The allocation of code values from the IANA- | ||||
| managed namespace is conditioned by an Expert Review of the | ||||
| specification defining the AVPs or an IETF review if a block of | ||||
| AVPs needs to be assigned. Moreover, the remaining bits of the | ||||
| AVP Flags field of the AVP header can be also assigned via | ||||
| Standard Action if the creation of new AVP Flags is desired. | ||||
| c. Creating new commands | ||||
| Unlike the AVP Code namespace, the Command Code namespace is flat | ||||
| but the range of values is subdivided into three chunks with | ||||
| distinct IANA registration policies: | ||||
| * A range of standard Command Code values that can be allocated | ||||
| via IETF review; | ||||
| * A range of vendor-specific Command Code values that can be | ||||
| allocated on a First-Come/First-Served basis; | ||||
| * A range of values reserved only for experimental and testing | ||||
| purposes. | ||||
| As for AVP Flags, the remaining bits of the Command Flags field of | ||||
| the Diameter header can also be assigned via a Standards Action to | ||||
| create new Command Flags if required. | ||||
| d. Creating new applications | ||||
| Similarly to the Command Code namespace, the Application-Id | ||||
| namespace is flat but divided into two distinct ranges: | ||||
| * A range of values reserved for standard Application-Ids | ||||
| allocated after Expert Review of the specification defining the | ||||
| standard application; | ||||
| * A range for values for vendor specific applications, allocated | ||||
| by IANA on a First-Come/First-Serve basis. | ||||
| The IANA AAA parameters page can be found at http://www.iana.org/ | ||||
| assignments/aaa-parameters/aaa-parameters.xml and the enterprise | ||||
| number IANA page is available at http://www.iana.org/assignments/ | ||||
| enterprise-numbers. More details on the policies followed by IANA | ||||
| for namespace management (e.g. First-Come/First-Served, Expert | ||||
| Review, IETF Review, etc.) can be found in [RFC5226]. | ||||
| NOTE: | ||||
| When the same functionality/extension is used by more than one | ||||
| vendor, it is recommended to define a standard extension. | ||||
| Moreover, the registration of vendor-specific extension is | ||||
| encouraged to avoid interoperability issues in the same network. | ||||
| With this aim, the registration policy of vendor-specific | ||||
| extension has been simplified with the publication of [RFC6733] | ||||
| and the namespace reserved for vendor-specific extensions is large | ||||
| enough to avoid exhaustion. | ||||
| 8. IANA Considerations | ||||
| This document does not require actions by IANA. | This document does not require actions by IANA. | |||
| 8. Security Considerations | 9. Security Considerations | |||
| This document provides guidelines and considerations for extending | This document provides guidelines and considerations for extending | |||
| Diameter and Diameter applications. Although such an extension may | Diameter and Diameter applications. Although such an extension may | |||
| related to a security functionality, the document does not explicitly | related to a security functionality, the document does not explicitly | |||
| give guidance on enhancing Diameter with respect to security. | give guidance on enhancing Diameter with respect to security. | |||
| 9. Contributors | 10. Contributors | |||
| The content of this document was influenced by a design team created | The content of this document was influenced by a design team created | |||
| to revisit the Diameter extensibility rules. The team consisting of | to revisit the Diameter extensibility rules. The team consisting of | |||
| the members listed below was formed in February 2008 and finished its | the members listed below was formed in February 2008 and finished its | |||
| work in June 2008. | work in June 2008. | |||
| o Avi Lior | o Avi Lior | |||
| o Glen Zorn | o Glen Zorn | |||
| skipping to change at page 18, line 42 ¶ | skipping to change at page 20, line 42 ¶ | |||
| o Glenn McGregor | o Glenn McGregor | |||
| o Hannes Tschofenig | o Hannes Tschofenig | |||
| o Dave Frascone | o Dave Frascone | |||
| We would like to thank Tolga Asveren, Glenn McGregor, and John | We would like to thank Tolga Asveren, Glenn McGregor, and John | |||
| Loughney for their contributions as co-authors to earlier versions of | Loughney for their contributions as co-authors to earlier versions of | |||
| this document. | this document. | |||
| 10. Acknowledgments | 11. Acknowledgments | |||
| We greatly appreciate the insight provided by Diameter implementers | We greatly appreciate the insight provided by Diameter implementers | |||
| who have highlighted the issues and concerns being addressed by this | who have highlighted the issues and concerns being addressed by this | |||
| document. The authors would also like to thank Jean Mahoney and Ben | document. The authors would also like to thank Jean Mahoney and Ben | |||
| Campbell for their invaluable detailed review and comments on this | Campbell for their invaluable detailed review and comments on this | |||
| document. | document. | |||
| 11. Informative References | 12. Informative References | |||
| [I-D.asveren-dime-dupcons] | [I-D.asveren-dime-dupcons] | |||
| Asveren, T., "Diameter Duplicate Detection Cons.", draft- | Asveren, T., "Diameter Duplicate Detection Cons.", draft- | |||
| asveren-dime-dupcons-00 (work in progress), August 2006. | asveren-dime-dupcons-00 (work in progress), August 2006. | |||
| [I-D.calhoun-diameter-res-mgmt] | [I-D.calhoun-diameter-res-mgmt] | |||
| Calhoun, P., "Diameter Resource Management Extensions", | Calhoun, P., "Diameter Resource Management Extensions", | |||
| draft-calhoun-diameter-res-mgmt-08.txt (work in progress), | draft-calhoun-diameter-res-mgmt-08.txt (work in progress), | |||
| March 2001. | March 2001. | |||
| skipping to change at page 19, line 46 ¶ | skipping to change at page 21, line 46 ¶ | |||
| August 2005. | August 2005. | |||
| [RFC4301] Kent, S. and K. Seo, "Security Architecture for the | [RFC4301] Kent, S. and K. Seo, "Security Architecture for the | |||
| Internet Protocol", RFC 4301, December 2005. | Internet Protocol", RFC 4301, December 2005. | |||
| [RFC4740] Garcia-Martin, M., Belinchon, M., Pallares-Lopez, M., | [RFC4740] Garcia-Martin, M., Belinchon, M., Pallares-Lopez, M., | |||
| Canales-Valenzuela, C., and K. Tammi, "Diameter Session | Canales-Valenzuela, C., and K. Tammi, "Diameter Session | |||
| Initiation Protocol (SIP) Application", RFC 4740, November | Initiation Protocol (SIP) Application", RFC 4740, November | |||
| 2006. | 2006. | |||
| [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an | ||||
| IANA Considerations Section in RFCs", BCP 26, RFC 5226, | ||||
| May 2008. | ||||
| [RFC5447] Korhonen, J., Bournelle, J., Tschofenig, H., Perkins, C., | [RFC5447] Korhonen, J., Bournelle, J., Tschofenig, H., Perkins, C., | |||
| and K. Chowdhury, "Diameter Mobile IPv6: Support for | and K. Chowdhury, "Diameter Mobile IPv6: Support for | |||
| Network Access Server to Diameter Server Interaction", RFC | Network Access Server to Diameter Server Interaction", RFC | |||
| 5447, February 2009. | 5447, February 2009. | |||
| [RFC5777] Korhonen, J., Tschofenig, H., Arumaithurai, M., Jones, M., | [RFC5777] Korhonen, J., Tschofenig, H., Arumaithurai, M., Jones, M., | |||
| and A. Lior, "Traffic Classification and Quality of | and A. Lior, "Traffic Classification and Quality of | |||
| Service (QoS) Attributes for Diameter", RFC 5777, February | Service (QoS) Attributes for Diameter", RFC 5777, February | |||
| 2010. | 2010. | |||
| End of changes. 11 change blocks. | ||||
| 15 lines changed or deleted | 115 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/ | ||||