draft-ietf-dime-capablities-update-07.txt | rfc6737.txt | |||
---|---|---|---|---|
Network Working Group K. Jiao | Internet Engineering Task Force (IETF) K. Jiao | |||
Internet-Draft Huawei | Request for Comments: 6737 Huawei | |||
Intended status: Standards Track G. Zorn | Category: Standards Track G. Zorn | |||
Expires: April 27, 2011 Network Zen | ISSN: 2070-1721 Network Zen | |||
October 24, 2010 | October 2012 | |||
The Diameter Capabilities Update Application | The Diameter Capabilities Update Application | |||
draft-ietf-dime-capablities-update-07 | ||||
Abstract | Abstract | |||
This document defines a new Diameter application and associated | This document defines a new Diameter application and associated | |||
command codes. The Capabilities Update application is intended to | Command Codes. The Capabilities Update application is intended to | |||
allow the dynamic update of certain Diameter peer capabilities while | allow the dynamic update of certain Diameter peer capabilities while | |||
the peer-to-peer connection is in the open state. | the peer-to-peer connection is in the open state. | |||
Status of this Memo | 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 | This is an Internet Standards Track document. | |||
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 | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 5741. | ||||
This Internet-Draft will expire on April 27, 2011. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
http://www.rfc-editor.org/info/rfc6737. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2010 IETF Trust and the persons identified as the | Copyright (c) 2012 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 | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
2. Specification of Requirements . . . . . . . . . . . . . . . . . 3 | 2. Specification of Requirements . . . . . . . . . . . . . . . . . 2 | |||
3. Diameter Protocol Considerations . . . . . . . . . . . . . . . 3 | 3. Diameter Protocol Considerations . . . . . . . . . . . . . . . 3 | |||
4. Capabilities Update . . . . . . . . . . . . . . . . . . . . . . 3 | 4. Capabilities Update . . . . . . . . . . . . . . . . . . . . . . 3 | |||
4.1. Command-Code Values . . . . . . . . . . . . . . . . . . . . 4 | 4.1. Command Code Values . . . . . . . . . . . . . . . . . . . . 4 | |||
4.1.1. Capabilities-Update-Request . . . . . . . . . . . . . . 5 | 4.1.1. Capabilities-Update-Request . . . . . . . . . . . . . . 4 | |||
4.1.2. Capabilities-Update-Answer . . . . . . . . . . . . . . 5 | 4.1.2. Capabilities-Update-Answer . . . . . . . . . . . . . . 5 | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . . 6 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . . 5 | |||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 5 | |||
6.1. Application Identifier . . . . . . . . . . . . . . . . . . 6 | 6.1. Application Identifier . . . . . . . . . . . . . . . . . . 5 | |||
6.2. Command Codes . . . . . . . . . . . . . . . . . . . . . . . 6 | 6.2. Command Codes . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
7. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 7. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 6 | 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
9.1. Normative References . . . . . . . . . . . . . . . . . . . 6 | 9.1. Normative References . . . . . . . . . . . . . . . . . . . 6 | |||
9.2. Informative References . . . . . . . . . . . . . . . . . . 7 | 9.2. Informative References . . . . . . . . . . . . . . . . . . 6 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 7 | ||||
1. Introduction | 1. Introduction | |||
Capabilities exchange is an important component of the Diameter Base | Capabilities exchange is an important component of the Diameter base | |||
Protocol [I-D.ietf-dime-rfc3588bis], allowing peers to exchange | protocol [RFC6733], allowing peers to exchange identities and | |||
identities and Diameter capabilities (protocol version number, | Diameter capabilities (protocol version number, supported Diameter | |||
supported Diameter applications, security mechanisms, etc.). As | applications, security mechanisms, etc.). As defined in RFC 3588, | |||
defined in RFC 3588, however, the capabilities exchange process takes | however, the capabilities exchange process takes place only once, at | |||
place only once, at the inception of a transport connection between a | the inception of a transport connection between a given pair of | |||
given pair of peers. Therefore, if a peer's capabilities change (due | peers. Therefore, if a peer's capabilities change (due to a software | |||
to software update, for example), the existing connection(s) must be | update, for example), the existing connection(s) must be torn down | |||
torn down (along with all of the associated user sessions) and | (along with all of the associated user sessions) and restarted before | |||
restarted before the modified capabilities can be advertised. | the modified capabilities can be advertised. | |||
This document defines a new Diameter application intended to allow | This document defines a new Diameter application intended to allow | |||
the dynamic update of a subset of Diameter peer capabilities over an | the dynamic update of a subset of Diameter peer capabilities over an | |||
existing connection. Because the Capabilities Update application | existing connection. Because the Capabilities Update application | |||
specified herein operates over an existing transport connection, | specified herein operates over an existing transport connection, | |||
modification of certain capabilities is prohibited. Specifically, | modification of certain capabilities is prohibited. Specifically, | |||
modifying the security mechanism in use is not allowed; if the | modifying the security mechanism in use is not allowed; if the | |||
security method used between a pair of peers is changed the affected | security method used between a pair of peers is changed, the affected | |||
connection MUST be restarted. | connection MUST be restarted. | |||
2. Specification of Requirements | 2. Specification of Requirements | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in RFC 2119 [RFC2119]. | document are to be interpreted as described in RFC 2119 [RFC2119]. | |||
3. Diameter Protocol Considerations | 3. Diameter Protocol Considerations | |||
This section details the relationship of the Diameter Capabilities | This section details the relationship of the Diameter Capabilities | |||
Update application to the Diameter Base Protocol. | Update application to the Diameter base protocol. | |||
This document specifies Diameter Application-ID <TBD1>. Diameter | This document specifies Diameter Application-Id 10. Diameter nodes | |||
nodes conforming to this specification MUST advertise support by | conforming to this specification MUST advertise support by including | |||
including the value <TBD1> in the Auth-Application-Id of the | the value 10 in the Auth-Application-Id of the Capabilities-Exchange- | |||
Capabilities-Exchange-Request (CER) and Capabilities-Exchange-Answer | Request (CER) and Capabilities-Exchange-Answer (CEA) commands | |||
(CEA) commands [I-D.ietf-dime-rfc3588bis]. | [RFC6733]. | |||
4. Capabilities Update | 4. Capabilities Update | |||
When the capabilities of a Diameter node conforming to this | When the capabilities of a Diameter node conforming to this | |||
specification change, it MUST notify all of the nodes with which it | specification change, the node MUST notify all of the nodes with | |||
has an open transport connection and which have also advertised | which it has an open transport connection and which have also | |||
support for the Capabilities Update application using the | advertised support for the Capabilities Update application using the | |||
Capabilities-Update-Request (CUR) message (Section 4.1.1). This | Capabilities-Update-Request (CUR) message (Section 4.1.1). This | |||
message allows the update of a peer's capabilities (supported | message allows the update of a peer's capabilities (supported | |||
Diameter applications, etc.). | Diameter applications, etc.). | |||
A Diameter node only issues a given command to those peers that have | A Diameter node only issues a given command to those peers that have | |||
advertised support for the Diameter application that defines the | advertised support for the Diameter application that defines the | |||
command; a Diameter node must cache the supported applications in | command; a Diameter node must cache the supported applications in | |||
order to ensure that unrecognized commands and/or Attribute-Value | order to ensure that unrecognized commands and/or Attribute-Value | |||
Pairs (AVPs) are not unnecessarily sent to a peer. | Pairs (AVPs) are not unnecessarily sent to a peer. | |||
The receiver of the CUR MUST determine common applications by | The receiver of the CUR MUST determine common applications by | |||
computing the intersection of its own set of supported Application Id | computing the intersection of its own set of supported Application | |||
against all of the application identifier AVPs (Auth-Application-Id, | Ids against all of the Application-Id AVPs (Auth-Application-Id, | |||
Acct-Application-Id and Vendor-Specific- Application-Id) present in | Acct-Application-Id, and Vendor-Specific-Application-Id) present in | |||
the CUR. The value of the Vendor-Id AVP in the Vendor-Specific- | the CUR. The value of the Vendor-Id AVP in the Vendor-Specific- | |||
Application-Id MUST NOT be used during computation. | Application-Id MUST NOT be used during computation. | |||
If the receiver of a CUR does not have any applications in common | If the receiver of a CUR does not have any applications in common | |||
with the sender then it MUST return a Capabilities-Update-Answer | with the sender, then it MUST return a Capabilities-Update-Answer | |||
(CUA) (Section 4.1.2) with the Result-Code AVP set to | (CUA) (Section 4.1.2) with the Result-Code AVP set to | |||
DIAMETER_NO_COMMON_APPLICATION [I-D.ietf-dime-rfc3588bis], and SHOULD | DIAMETER_NO_COMMON_APPLICATION [RFC6733], and it SHOULD disconnect | |||
disconnect the transport layer connection; however, if active | the transport-layer connection. However, if active sessions are | |||
sessions are using the connection, peers MAY delay disconnection | using the connection, peers MAY delay disconnection until the | |||
until the sessions can be redirected or gracefully terminated. Note | sessions can be redirected or gracefully terminated. Note that | |||
that receiving a CUA from a peer advertising itself as a Relay (see | receiving a CUA from a peer advertising itself as a relay (see | |||
[I-D.ietf-dime-rfc3588bis], Section 2.4) MUST be interpreted as | [RFC6733], Section 2.4) MUST be interpreted as having common | |||
having common applications with the peer. | applications with the peer. | |||
As for CER/CEA messages, the CUR and CUA messages MUST NOT be | As for CER/CEA messages, the CUR and CUA messages MUST NOT be | |||
proxied, redirected or relayed. | proxied, redirected, or relayed. | |||
Even though the CUR/CUA messages cannot be proxied, it is still | Even though the CUR/CUA messages cannot be proxied, it is still | |||
possible for an upstream agent to receive a message for which there | possible for an upstream agent to receive a message for which there | |||
are no peers available to handle the application that corresponds to | are no peers available to handle the application that corresponds to | |||
the Command-Code. This could happen if, for example, the peers are | the Command Code. This could happen if, for example, the peers are | |||
too busy or down. In such instances, the 'E' bit MUST be set in the | too busy or down. In such instances, the 'E' bit MUST be set in the | |||
answer message with the Result-Code AVP set to | answer message with the Result-Code AVP set to | |||
DIAMETER_UNABLE_TO_DELIVER to inform the downstream peer to take | DIAMETER_UNABLE_TO_DELIVER to inform the downstream peer to take | |||
action (e.g., re-routing requests to an alternate peer). | action (e.g., re-routing requests to an alternate peer). | |||
4.1. Command-Code Values | 4.1. Command Code Values | |||
This section defines Command-Code [I-D.ietf-dime-rfc3588bis] values | This section defines Command Code [RFC6733] values that MUST be | |||
that MUST be supported by all Diameter implementations conforming to | supported by all Diameter implementations conforming to this | |||
this specification. The following Command Codes are defined (using | specification. The following Command Codes are defined in this | |||
modified ABNF [I-D.ietf-dime-rfc3588bis]) in this document: | document: Capabilities-Update-Request (CUR, Section 4.1.1), and | |||
Capabilities-Update-Request (CUR, Section 4.1.1) and Capabilities- | Capabilities-Update-Answer (CUA, Section 4.1.2). The Diameter | |||
Update-Answer (CUA, Section 4.1.2). | Command Code Format (CCF) ([RFC6733], Section 3.2) is used in the | |||
definitions. | ||||
4.1.1. Capabilities-Update-Request | 4.1.1. Capabilities-Update-Request | |||
The Capabilities-Update-Request (CUR), indicated by the Command-Code | The Capabilities-Update-Request (CUR), indicated by the Command Code | |||
set to <CUCC> and the Command Flags' 'R' bit set, is sent to update | set to 328 and the Command Flags' 'R' bit set, is sent to update | |||
local capabilities. Upon detection of a transport failure, this | local capabilities. Upon detection of a transport failure, this | |||
message MUST NOT be sent to an alternate peer. | message MUST NOT be sent to an alternate peer. | |||
When Diameter is run over the Stream Control Transmission Protocol | When Diameter is run over the Stream Control Transmission Protocol | |||
[RFC4960], which allows connections to span multiple interfaces and | (SCTP) [RFC4960], which allows connections to span multiple | |||
multiple IP addresses, the Capabilities-Update-Request message MUST | interfaces and multiple IP addresses, the Capabilities-Update-Request | |||
contain one Host-IP-Address AVP for each potential IP address that | message MUST contain one Host-IP-Address AVP for each potential IP | |||
may be locally used when transmitting Diameter messages. | address that may be locally used when transmitting Diameter messages. | |||
Message Format | Message Format | |||
<CUR> ::= < Diameter Header: <CUCC>, REQ > | <CUR> ::= < Diameter Header: 328, REQ > | |||
{ Origin-Host } | { Origin-Host } | |||
{ Origin-Realm } | { Origin-Realm } | |||
1* { Host-IP-Address } | 1* { Host-IP-Address } | |||
{ Vendor-Id } | { Vendor-Id } | |||
{ Product-Name } | { Product-Name } | |||
[ Origin-State-Id ] | [ Origin-State-Id ] | |||
* [ Supported-Vendor-Id ] | * [ Supported-Vendor-Id ] | |||
* [ Auth-Application-Id ] | * [ Auth-Application-Id ] | |||
* [ Acct-Application-Id ] | * [ Acct-Application-Id ] | |||
* [ Vendor-Specific-Application-Id ] | * [ Vendor-Specific-Application-Id ] | |||
[ Firmware-Revision ] | [ Firmware-Revision ] | |||
* [ AVP ] | * [ AVP ] | |||
4.1.2. Capabilities-Update-Answer | 4.1.2. Capabilities-Update-Answer | |||
The Capabilities-Update-Answer, indicated by the Command-Code set to | The Capabilities-Update-Answer, indicated by the Command Code set to | |||
<CUCC> and the Command Flags' 'R' bit cleared, is sent in response to | 328 and the Command Flags' 'R' bit cleared, is sent in response to a | |||
a CUR message. | CUR message. | |||
Message Format | Message Format | |||
<CUA> ::= < Diameter Header: <CUCC> > | <CUA> ::= < Diameter Header: 328 > | |||
{ Origin-Host } | { Origin-Host } | |||
{ Origin-Realm } | { Origin-Realm } | |||
{ Result-Code } | { Result-Code } | |||
[ Error-Message ] | [ Error-Message ] | |||
* [ AVP ] | * [ AVP ] | |||
5. Security Considerations | 5. Security Considerations | |||
The security considerations applicable to the Diameter Base Protocol | The security considerations applicable to the Diameter base protocol | |||
[I-D.ietf-dime-rfc3588bis] are also applicable to this document. | [RFC6733] are also applicable to this document. | |||
6. IANA Considerations | 6. IANA Considerations | |||
This section explains the criteria to be used by the IANA for | This section explains the criteria to be used by the IANA for | |||
assignment of numbers within namespaces used within this document. | assignment of numbers within namespaces used within this document. | |||
6.1. Application Identifier | 6.1. Application Identifier | |||
This specification assigns the value <TBD1> from the Application | This specification assigns the value 10 (Diameter Capabilities | |||
Identifiers namespace [I-D.ietf-dime-rfc3588bis]. See Section 3 for | Update) from the Application Identifiers namespace [RFC6733]. See | |||
the assignment of the namespace in this specification. | Section 3 for the assignment of the namespace in this specification. | |||
6.2. Command Codes | 6.2. Command Codes | |||
This specification assigns the value <CUCC> from the Command Codes | This specification assigns the value 328 (Capabilities-Update- | |||
namespace [I-D.ietf-dime-rfc3588bis]. See Section 4.1 for the | Request/Capabilities-Update-Answer (CUR/CUA)) from the Command Codes | |||
assignment of the namespace in this specification. | namespace [RFC6733]. See Section 4.1 for the assignment of the | |||
namespace in this specification. | ||||
7. Contributors | 7. Contributors | |||
This document is based upon work done by Tina Tsou. | This document is based upon work done by Tina Tsou. | |||
8. Acknowledgements | 8. Acknowledgements | |||
Thanks to Sebastien Decugis, Niklas Neumann, Subash Comerica, Lionel | Thanks to Sebastien Decugis, Niklas Neumann, Subash Comerica, Lionel | |||
Morand, Dan Romascanu, Dan Harkins and Ravi for helpful review and | Morand, Dan Romascanu, Dan Harkins, and Ravi for helpful review and | |||
discussion. | discussion. | |||
9. References | 9. References | |||
9.1. Normative References | 9.1. Normative References | |||
[I-D.ietf-dime-rfc3588bis] | ||||
Fajardo, V., Arkko, J., Loughney, J., and G. Zorn, | ||||
"Diameter Base Protocol", draft-ietf-dime-rfc3588bis-25 | ||||
(work in progress), September 2010. | ||||
[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, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
[RFC6733] Fajardo, V., Arkko, J., Loughney, J., and G. Zorn, | ||||
"Diameter Base Protocol", RFC 6733, October 2012. | ||||
9.2. Informative References | 9.2. Informative References | |||
[RFC4960] Stewart, R., "Stream Control Transmission Protocol", | [RFC4960] Stewart, R., "Stream Control Transmission Protocol", | |||
RFC 4960, September 2007. | RFC 4960, September 2007. | |||
Authors' Addresses | Authors' Addresses | |||
Jiao Kang | Jiao Kang | |||
Huawei Technologies | Huawei Technologies | |||
Section B1, Huawei Industrial Base | Section F1, Huawei Industrial Base | |||
Bantian, Longgang District | Bantian, Longgang District | |||
Shenzhen 518129 | Shenzhen 518129 | |||
P.R. China | P.R. China | |||
Phone: +86 755 2878-6690 | EMail: kangjiao@huawei.com | |||
Email: kangjiao@huawei.com | ||||
Glen Zorn | Glen Zorn | |||
Network Zen | Network Zen | |||
227/358 Thanon Sanphawut | 227/358 Thanon Sanphawut | |||
Bang Na, Bangkok 10260 | Bang Na, Bangkok 10260 | |||
Thailand | Thailand | |||
Phone: +66 (0) 87-040-4617 | Phone: +66 (0) 909-201060 | |||
Email: gwz@net-zen.net | EMail: glenzorn@gmail.com | |||
End of changes. 39 change blocks. | ||||
107 lines changed or deleted | 101 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |