RFC 6737
The Diameter Capabilities Update Application
RFC 6737: The Diameter Capabilities Update Application ๐
- Who wrote it: K. Jiao (also listed as Jiao Kang) from Huawei, and G. Zorn (Glen Zorn) from Network Zen ๐
- Category: Standards Track, ISSN 2070-1721 ๐
- Date: October 2012 ๐ธ
- Obsoletes / Updates: nothing listed in the title block, so this one doesn't replace or update any other RFC ๐ฆ
Abstract ๐ฆ
Okay so this doc defines a brand new Diameter application plus its own Command Codes ๐ . The Capabilities Update application lets you change certain Diameter peer capabilities on the fly while the peer-to-peer connection is still in the open state โจ. No restart drama needed ๐ซถ.
Status of This Memo ๐
So this is an Internet Standards Track document ๐.
It's a product of the Internet Engineering Task Force (IETF) and it represents the consensus of the IETF community ๐. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG) ๐. If you want more on Internet Standards, check out Section 2 of RFC 5741 ๐ฅ.
For the current status, any errata, and how to give feedback, go to http://www.rfc-editor.org/info/rfc6737 ๐ง.
Copyright Notice ๐
Copyright (c) 2012 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) as they stand on the publication date. Please read these carefully, because they spell out your rights and restrictions for this document ๐. Code Components pulled out of this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come without warranty, as described in the Simplified BSD License ๐.
Table of Contents ๐ง
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Specification of Requirements . . . . . . . . . . . . . . . . . 2
3. Diameter Protocol Considerations . . . . . . . . . . . . . . . 3
4. Capabilities Update . . . . . . . . . . . . . . . . . . . . . . 3
4.1. Command Code Values . . . . . . . . . . . . . . . . . . . . 4
4.1.1. Capabilities-Update-Request . . . . . . . . . . . . . . 4
4.1.2. Capabilities-Update-Answer . . . . . . . . . . . . . . 5
5. Security Considerations . . . . . . . . . . . . . . . . . . . . 5
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 5
6.1. Application Identifier . . . . . . . . . . . . . . . . . . 5
6.2. Command Codes . . . . . . . . . . . . . . . . . . . . . . . 5
7. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 5
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 5
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6
9.1. Normative References . . . . . . . . . . . . . . . . . . . 6
9.2. Informative References . . . . . . . . . . . . . . . . . . 6
1. Introduction โจ
Okay bestie, capabilities exchange is a big deal in the Diameter base protocol [RFC6733] ๐ . Peers swap identities and Diameter capabilities here, like the protocol version number, supported Diameter applications, security mechanisms, and more ๐ง. But as RFC 3588 defines it, this exchange only happens once, right when a transport connection between two peers starts ๐ฅบ. So if a peer's capabilities change (say after a software update), the existing connection(s) have to be torn down, along with every user session on them, and then restarted before the new capabilities can be advertised ๐.
This document defines a new Diameter application that lets you update a subset of peer capabilities over an existing connection ๐ฆ. Because the Capabilities Update application runs over an existing transport connection, some changes are off the table. Specifically, you can't change the security mechanism in use ๐. If the security method between a pair of peers changes, the affected connection MUST be restarted ๐ฅ.
2. Specification of Requirements ๐
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] ๐ซถ.
3. Diameter Protocol Considerations ๐ท
This section explains how the Diameter Capabilities Update application fits with the Diameter base protocol ๐.
This document specifies Diameter Application-Id 10 โจ. Diameter nodes that conform to this spec MUST advertise support by including the value 10 in the Auth-Application-Id of the Capabilities-Exchange-Request (CER) and Capabilities-Exchange-Answer (CEA) commands [RFC6733] ๐.
4. Capabilities Update ๐
When a Diameter node that conforms to this spec changes its capabilities, the node MUST notify every node it has an open transport connection with, as long as that node has also advertised support for the Capabilities Update application ๐ฃ. It does this with the Capabilities-Update-Request (CUR) message (Section 4.1.1) ๐. That message updates a peer's capabilities, like supported Diameter applications and so on ๐ธ.
A Diameter node only sends a given command to peers that have advertised support for the Diameter application that defines that command ๐ฏ. So a Diameter node must cache the supported applications, which keeps unrecognized commands and/or Attribute-Value Pairs (AVPs) from being sent to a peer for no reason ๐ง .
The receiver of the CUR MUST work out the common applications by taking the intersection of its own supported Application Ids with all the Application-Id AVPs in the CUR (Auth-Application-Id, Acct-Application-Id, and Vendor-Specific-Application-Id) ๐. The value of the Vendor-Id AVP inside Vendor-Specific-Application-Id MUST NOT be used during that computation ๐
โโ๏ธ.
If the receiver of a CUR has no applications in common with the sender, it MUST return a Capabilities-Update-Answer (CUA) (Section 4.1.2) with the Result-Code AVP set to DIAMETER_NO_COMMON_APPLICATION [RFC6733], and it SHOULD disconnect the transport-layer connection ๐ญ. However, if active sessions are using the connection, peers MAY hold off on disconnecting until those sessions can be redirected or gracefully terminated ๐ซถ. Also, getting a CUA from a peer that advertises itself as a relay (see [RFC6733], Section 2.4) MUST be read as having common applications with that peer ๐ง.
Same vibes as CER/CEA: CUR and CUA messages MUST NOT be proxied, redirected, or relayed ๐ซ.
Even though CUR/CUA can't be proxied, an upstream agent can still get a message for which no peers are available to handle the application matching the Command Code ๐ฌ. That could happen if, for example, the peers are too busy or are down ๐ฅฒ. In that case, the 'E' bit MUST be set in the answer message, with the Result-Code AVP set to DIAMETER_UNABLE_TO_DELIVER, so the downstream peer knows to take action (e.g., rerouting requests to an alternate peer) ๐ฃ๏ธโจ.
4.1. Command Code Values ๐ข
This section defines Command Code [RFC6733] values that MUST be supported by all Diameter implementations that conform to this spec ๐ช. The two Command Codes defined here are Capabilities-Update-Request (CUR, Section 4.1.1) and Capabilities-Update-Answer (CUA, Section 4.1.2) ๐. The Diameter Command Code Format (CCF) ([RFC6733], Section 3.2) is used in their definitions ๐.
4.1.1. Capabilities-Update-Request ๐ฎ
The Capabilities-Update-Request (CUR) is indicated by the Command Code set to 328 and the Command Flags' 'R' bit set. It gets sent to update local capabilities ๐ง. If a transport failure is detected, this message MUST NOT be sent to an alternate peer ๐
โโ๏ธ.
When Diameter runs over the Stream Control Transmission Protocol (SCTP) [RFC4960], connections can span multiple interfaces and multiple IP addresses ๐. So the Capabilities-Update-Request message MUST contain one Host-IP-Address AVP for each potential IP address that might be used locally when sending Diameter messages ๐งญ.
Message Format ๐
<CUR> ::= < Diameter Header: 328, REQ >
{ Origin-Host }
{ Origin-Realm }
1* { Host-IP-Address }
{ Vendor-Id }
{ Product-Name }
[ Origin-State-Id ]
* [ Supported-Vendor-Id ]
* [ Auth-Application-Id ]
* [ Acct-Application-Id ]
* [ Vendor-Specific-Application-Id ]
[ Firmware-Revision ]
* [ AVP ]
4.1.2. Capabilities-Update-Answer ๐
The Capabilities-Update-Answer is indicated by the Command Code set to 328 and the Command Flags' 'R' bit cleared. It gets sent in response to a CUR message ๐.
Message Format ๐
<CUA> ::= < Diameter Header: 328 >
{ Origin-Host }
{ Origin-Realm }
{ Result-Code }
[ Error-Message ]
* [ AVP ]
5. Security Considerations ๐
โ ๏ธ Security matters here, bestie. Everything in the security considerations of the Diameter base protocol [RFC6733] applies to this document too. Don't skip it ๐.
The security considerations applicable to the Diameter base protocol [RFC6733] are also applicable to this document ๐ก๏ธ.
6. IANA Considerations ๐๏ธ
This section explains the criteria IANA should use when assigning numbers in the namespaces used within this document ๐.
6.1. Application Identifier ๐
This specification assigns the value 10 (Diameter Capabilities Update) from the Application Identifiers namespace [RFC6733]. See Section 3 for how the namespace is assigned in this specification ๐.
6.2. Command Codes ๐ข
This specification assigns the value 328 (Capabilities-Update-Request/Capabilities-Update-Answer (CUR/CUA)) from the Command Codes namespace [RFC6733]. See Section 4.1 for how the namespace is assigned in this specification ๐.
7. Contributors ๐ซ
This document is based on work done by Tina Tsou ๐.
8. Acknowledgements ๐
Thanks to Sebastien Decugis, Niklas Neumann, Subash Comerica, Lionel Morand, Dan Romascanu, Dan Harkins, and Ravi for the helpful review and discussion ๐ซถ๐.
9. References ๐
9.1. Normative References ๐
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
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 ๐ญ
[RFC4960] Stewart, R., "Stream Control Transmission Protocol",
RFC 4960, September 2007.
Authors' Addresses ๐
Jiao Kang
Huawei Technologies
Section F1, Huawei Industrial Base
Bantian, Longgang District
Shenzhen 518129
P.R. China
EMail: kangjiao@huawei.com
Glen Zorn
Network Zen
227/358 Thanon Sanphawut
Bang Na, Bangkok 10260
Thailand
Phone: +66 (0) 909-201060
EMail: glenzorn@gmail.com
๐ฆ where this page comes from
- ietf: rfc6737 2012-10
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms