draft-ietf-dime-capablities-update-04.txt | draft-ietf-dime-capablities-update-05.txt | |||
---|---|---|---|---|
Network Working Group K. Jiao | Network Working Group K. Jiao | |||
Internet-Draft Huawei | Internet-Draft Huawei | |||
Intended status: Standards Track G. Zorn | Intended status: Standards Track G. Zorn | |||
Expires: November 25, 2010 Network Zen | Expires: December 20, 2010 Network Zen | |||
May 24, 2010 | June 18, 2010 | |||
The Diameter Capabilities Update Application | The Diameter Capabilities Update Application | |||
draft-ietf-dime-capablities-update-04 | draft-ietf-dime-capablities-update-05 | |||
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 | |||
skipping to change at page 1, line 34 | skipping to change at page 1, line 34 | |||
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 November 25, 2010. | This Internet-Draft will expire on December 20, 2010. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2010 IETF Trust and the persons identified as the | Copyright (c) 2010 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 3, line 8 | skipping to change at page 3, line 8 | |||
7. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 7. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 6 | 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
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 . . . . . . . . . . . . . . . . . . 7 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 7 | 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 [RFC3588], allowing peers to exchange identities and | Protocol [I-D.ietf-dime-rfc3588bis], allowing peers to exchange | |||
Diameter capabilities (protocol version number, supported Diameter | identities and Diameter capabilities (protocol version number, | |||
applications, security mechanisms, etc.). As defined in RFC 3588, | supported Diameter applications, security mechanisms, etc.). As | |||
however, the capabilities exchange process takes place only once, at | defined in RFC 3588, however, the capabilities exchange process takes | |||
the inception of a transport connection between a given pair of | place only once, at the inception of a transport connection between a | |||
peers. Therefore, if a peer's capabilities change (due to software | given pair of peers. Therefore, if a peer's capabilities change (due | |||
update, for example), the existing connection(s) must be torn down | to software update, for example), the existing connection(s) must be | |||
(along with all of the associated user sessions) and restarted before | torn down (along with all of the associated user sessions) and | |||
the modified capabilities can be advertised. | restarted before 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. | |||
skipping to change at page 3, line 44 | skipping to change at page 3, line 44 | |||
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 <TBD1>. Diameter | |||
nodes conforming to this specification MUST advertise support by | nodes conforming to this specification MUST advertise support by | |||
including the value <TBD1> in the Auth-Application-Id of the | including the value <TBD1> in the Auth-Application-Id of the | |||
Capabilities-Exchange-Req and Capabilities-Exchange-Answer commands | Capabilities-Exchange-Request and Capabilities-Exchange-Answer | |||
[RFC3588]. | commands [I-D.ietf-dime-rfc3588bis]. | |||
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 SHOULD notify all of the nodes with which it | specification change, it MUST notify all of the nodes with which it | |||
has an open transport connection and have also advertised support for | has an open transport connection and have also advertised support for | |||
the Capabilities Update application using the Capabilities-Update- | the Capabilities Update application using the Capabilities-Update- | |||
Request message (Section 4.1.1). This message allows the update of a | Request (CUR) message (Section 4.1.1). This message allows the | |||
peer's capabilities (supported Diameter applications, etc.). | update of a peer's capabilities (supported 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 AVPs are not | order to ensure that unrecognized commands and/or AVPs are not | |||
unnecessarily sent to a peer. | 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 Id | |||
against all of the application identifier AVPs (Auth-Application-Id, | against all of the application identifier 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 Capabilities-Update-Req (CUR) message does not | If the receiver of a CUR does not have any applications in common | |||
have any applications in common with the sender then it MUST return a | with the sender then it MUST return a Capabilities-Update-Answer | |||
Capabilities-Update-Answer (CUA) (Section 4.1.2) with the Result-Code | (CUA) (Section 4.1.2) with the Result-Code AVP set to | |||
AVP set to DIAMETER_NO_COMMON_APPLICATION, and SHOULD disconnect the | DIAMETER_NO_COMMON_APPLICATION, and SHOULD disconnect the transport | |||
transport layer connection; however, if active sessions are using the | layer connection; however, if active sessions are using the | |||
connection, peers MAY delay disconnection until the sessions can be | connection, peers MAY delay disconnection until the sessions can be | |||
redirected or gracefully terminated. Note that receiving a CUA from | redirected or gracefully terminated. Note that receiving a CUA from | |||
a peer advertising itself as a Relay (see [RFC3588], Section 2.4) | a peer advertising itself as a Relay (see [I-D.ietf-dime-rfc3588bis], | |||
MUST be interpreted as having common applications with the peer. | Section 2.4) MUST be interpreted as having common applications with | |||
the peer. | ||||
The CUR and CUA messages MUST NOT be proxied, redirected or relayed. | The CUR and CUA messages MUST NOT be 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 [RFC3588] values that MUST be | This section defines Command-Code [I-D.ietf-dime-rfc3588bis] values | |||
supported by all Diameter implementations conforming to this | that MUST be supported by all Diameter implementations conforming to | |||
specification. The following Command Codes are defined in this | this specification. The following Command Codes are defined in this | |||
document: Capabilities-Update-Request (CUR, Section 4.1.1) and | document: Capabilities-Update-Request (CUR, Section 4.1.1) and | |||
Capabilities-Update-Answer (CUA, Section 4.1.2). | Capabilities-Update-Answer (CUA, Section 4.1.2). | |||
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 <TBD2> and the Command Flags' 'R' bit set, is sent to update | set to <TBD2> 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. | |||
skipping to change at page 5, line 36 | skipping to change at page 5, line 37 | |||
[ 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 | |||
<TBD3> and the Command Flags' 'R' bit set, is sent in response to a | <TBD3> and the Command Flags' 'R' bit cleared, is sent in response to | |||
CUR message. | a CUR message. | |||
Message Format | Message Format | |||
<CUA> ::= < Diameter Header: TBD3 > | <CUA> ::= < Diameter Header: TBD3 > | |||
{ 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 | |||
[RFC3588] are also applicable to this document. | [I-D.ietf-dime-rfc3588bis] 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 <TBD1> from the Application | |||
Identifiers namespace defined in RFC 3588. See Section 3 for the | Identifiers namespace defined in RFC 3588. See Section 3 for the | |||
skipping to change at page 6, line 33 | skipping to change at page 6, line 33 | |||
This specification assigns the values <TBD2> and <TBD3> from the | This specification assigns the values <TBD2> and <TBD3> from the | |||
Command Codes namespace defined in RFC 3588. See Section 4.1 for the | Command Codes namespace defined in RFC 3588. See Section 4.1 for the | |||
assignment of the namespace in this specification. | 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 and Ravi | Thanks to Sebastien Decugis, Niklas Neumann, Subash Comerica, Lionel | |||
for helpful discussion. | Morand and Ravi for helpful 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-21 | ||||
(work in progress), June 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. | |||
[RFC3588] Calhoun, P., Loughney, J., Guttman, E., Zorn, G., and J. | ||||
Arkko, "Diameter Base Protocol", RFC 3588, September 2003. | ||||
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 B1, Huawei Industrial Base | |||
End of changes. 15 change blocks. | ||||
37 lines changed or deleted | 41 lines changed or added | |||
This html diff was produced by rfcdiff 1.38. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |