rfc-6737

The Diameter Capabilities Update Application

K. Jiao, G. Zorn
date2012-10 streamIETF areaops wgdime statusPROPOSED STANDARD pages6 canonicalhttps://www.rfc-editor.org/rfc/rfc6737 doi10.17487/RFC6737
This document defines a new Diameter application and associated Command Codes. The Capabilities Update application is intended to allow the dynamic update of certain Diameter peer capabilities while the peer-to-peer connection is in the open state. [STANDARDS-TRACK]

Extracted elements (19)

design-rationale §1

In RFC 3588, capabilities exchange occurs only once at transport connection inception. If a peer's capabilities change, all existing connections and associated user sessions must be torn down and restarted. This application enables dynamic update of a subset of Diameter peer capabilities over an existing connection, avoiding that disruption.

diameter

design-rationale §1

Modifying the security mechanism in use is explicitly prohibited over an existing connection. If the security method between a pair of peers must change, the affected connection MUST be restarted, ensuring that capability updates do not weaken or bypass the established security context.

diameter, security

interoperability-note §4

A Diameter node must cache the supported applications of its peers in order to ensure that unrecognized commands and/or AVPs are not unnecessarily sent to a peer, as a node only issues a command to peers that have advertised support for the application defining that command.

diameter

normative-requirement §3 MUST

Diameter nodes conforming to this specification MUST advertise support for the Capabilities Update application by including the value 10 in the Auth-Application-Id AVP of the CER and CEA commands.

diameter

normative-requirement §4 MUST

If an upstream agent receives a CUR/CUA message for which no peers are available to handle the corresponding application (e.g., peers are too busy or down), the 'E' bit MUST be set in the answer with Result-Code set to DIAMETER_UNABLE_TO_DELIVER.

diameter

normative-requirement §4 MUST

If the receiver of a CUR has no applications in common with the sender, it MUST return a CUA with Result-Code set to DIAMETER_NO_COMMON_APPLICATION and SHOULD disconnect the transport-layer connection. If active sessions are using the connection, peers MAY delay disconnection until sessions can be redirected or gracefully terminated.

diameter

normative-requirement §4 MUST

Receiving a CUA from a peer advertising itself as a relay MUST be interpreted as having common applications with that peer, consistent with relay semantics in the Diameter base protocol.

diameter

normative-requirement §4 MUST NOT

The CUR and CUA messages MUST NOT be proxied, redirected, or relayed, mirroring the same restriction that applies to CER/CEA messages in the Diameter base protocol.

diameter

normative-requirement §4 MUST

The receiver of a CUR MUST determine common applications by computing the intersection of its own supported Application Ids against all Auth-Application-Id, Acct-Application-Id, and Vendor-Specific-Application-Id AVPs present in the CUR. The Vendor-Id AVP in Vendor-Specific-Application-Id MUST NOT be used during this computation.

diameter

normative-requirement §4.1.1 MUST NOT

Upon detection of a transport failure, the CUR message MUST NOT be sent to an alternate peer.

diameter

normative-requirement §4.1.1 MUST

When Diameter is run over SCTP, which allows connections to span multiple interfaces and IP addresses, the CUR message MUST contain one Host-IP-Address AVP for each potential IP address that may be locally used when transmitting Diameter messages.

diameter, sctp

normative-requirement §4 MUST

When the capabilities of a Diameter node change, the node MUST notify all peers with which it has an open transport connection and which have advertised support for the Capabilities Update application, using the Capabilities-Update-Request (CUR) message.

diameter

protocol-element §4.1.2

The Capabilities-Update-Answer (CUA) is a Diameter command with Command Code 328 and the 'R' bit cleared, sent in response to a CUR. It carries Origin-Host, Origin-Realm, a mandatory Result-Code AVP, and an optional Error-Message AVP.

diameter

protocol-element §4.1.1

The Capabilities-Update-Request (CUR) is a new Diameter command with Command Code 328 and the 'R' bit set. It carries the sender's updated capabilities including Origin-Host, Origin-Realm, one or more Host-IP-Address AVPs, Vendor-Id, Product-Name, and optional application support AVPs.

diameter

registry §6.1

IANA assigned Application Identifier value 10 (Diameter Capabilities Update) from the Diameter Application Identifiers namespace defined in RFC 6733.

diameter, registry

registry §6.2

IANA assigned Command Code value 328 for both the Capabilities-Update-Request (CUR) and Capabilities-Update-Answer (CUA) from the Diameter Command Codes namespace defined in RFC 6733.

diameter, registry

security-consideration §5

All security considerations applicable to the Diameter base protocol (RFC 6733) apply equally to this specification. Additionally, modification of the security mechanism in use is prohibited over an existing connection; any change to the security method requires the connection to be restarted.

diameter, security

wire-format §4.1.2

The CUA message format is: Diameter Header with Command Code 328 (R bit cleared); mandatory Origin-Host, Origin-Realm, Result-Code; optional Error-Message and additional AVPs.

diameter

wire-format §4.1.1

The CUR message format is: Diameter Header with Command Code 328 and REQ flag; mandatory Origin-Host, Origin-Realm, one or more Host-IP-Address, Vendor-Id, Product-Name; optional Origin-State-Id, zero or more Supported-Vendor-Id, Auth-Application-Id, Acct-Application-Id, Vendor-Specific-Application-Id, Firmware-Revision, and additional AVPs.

diameter