3 Connection Management
Introduction
Introduction
The DCD client will both initiate and receive connections in accordance with RFC 6733 or Diameter Base Protocol Draft 8. However, the DCD will only allow connections from peers that are in its configured list. CERs from unknown peers will have a CEA message sent before the client closes the connection. The client will perform elections as specified in RFC 6733. Connections can be over either TCP or SCTP.
To manage the connections, the following messages from RFC 6733 are used:
- Capabilities Exchange Request (CER)
- Capabilities Exchange Answer (CEA)
- Device Watchdog Request (DWR)
- Device Watchdog Answer (DWA)
- Disconnect Peer Request (DPR)
- Disconnect Peer Answer (DPA)
Capabilities Exchange Messages
Capabilities Exchange Messages
The DCD will send both CER and CEA messages, as instructed by RFC 6733. Alternatively Diameter Base Protocol Draft 8 compliant CER and CEA messages may be exchanged if so configured.
The content of the individual fields is as follows:
| Field | AVP Code | Data Type | Comment |
|---|---|---|---|
| Origin-Host | 264 | DiameterIdentity | Set from configuration. |
| Origin-Realm | 296 | DiameterIdentity | Set from configuration. |
| Host-IP-Address | 257 |
Address (RFC 6733) OR IPAddress (Draft 8) |
Set from configuration. |
| Vendor-ID | 266 | Unsigned32 | Set from configuration (eServ vendor ID is 16247) |
| Product-Name | 269 | UTF8String | Set from configuration |
| Origin-State-Id | 278 | Unsigned32 | Can be set from configuration. Due to the multiple process nature of slee_acs, this should not be set, and this AVP will then not be included. |
| Supported-Vendor-Id | 265 | Unsigned32 | Not included. |
| Auth-Application-Id | 258 | Unsigned32 | Set from configuration. |
| Inband-Security-Id | 299 | Unsigned32 | Set to 0 (NO_INBAND_SECURITY). Not included if Draft 8 compliance is enabled. |
| Acct-Application-Id | 259 | Unsigned32 | Set from configuration. If not set, then not included. |
| Vendor-Specific-Application-Id | 260 | Grouped | Set from configuration. If not set, then not included. |
| Firmware-Revision | 267 | Unsigned32 | Not included. |
| Result-Code | 268 | Unsigned32 | Set as per RFC 6733 or Diameter Base Protocol Draft 8 if configured as such. |
| Error-Message | 281 | UTF8String | Human readable string, as per RFC 6733. |
| Failed-AVP | 279 | Grouped | Set as per RFC 6733. |
Device Watchdog Messages
Device Watchdog Messages
The DCD will send and respond to DWR message as instructed by RFC 6733.
The length of the silent interval that must precede a DWR message is configurable.
The possible fields are as follows:
| Field | AVP Code | Data Type | Comment |
|---|---|---|---|
| Origin-Host | 264 | DiameterIdentity | Set from configuration. |
| Origin-Realm | 296 | DiameterIdentity | Set from configuration. |
| Origin-State-Id | 278 | Unsigned32 | Can be set from configuration. Due to the multiple process nature of slee_acs, this should not be set, and this AVP will then not be included. |
| Result-Code | 268 | Unsigned32 | Set as per RFC 6733 or Diameter Base Protocol Draft 8 if configured as such. |
| Error-Message | 281 | UTF8String | Human readable string, as per RFC 6733. |
| Failed-AVP | 279 | Grouped | Set as per RFC 6733. |
Disconnect Peer Messages
Disconnect Peer Messages
A literal interpretation of RFC 6733 could assume that after receiving a DPR message, the client should never again attempt to reconnect the connection.
The possible fields are as follows:
| Field | AVP Code | Data Type | Comment |
|---|---|---|---|
| Origin-Host | 264 | DiameterIdentity | Set from configuration. Default is hostname. |
| Origin-Realm | 296 | DiameterIdentity | Set from configuration. Default is hostname |
| Disconnect-Cause | 273 | Enumerated | The only cause sent by the DCD is 2, DO_NOT_WANT_TO_TALK_TO_YOU |
| Result-Code | 268 | Unsigned32 | Set as per RFC 6733. |
| Error-Message | 281 | UTF8String | Human readable string, as per RFC 6733. |
| Failed-AVP | 279 | Grouped | Set as per RFC 6733. |
Failover
Copy of Failover
The DCD supports several failover models, depending on the logical distribution of subscriber accounts across billing engines. CCS allows a subscriber account (CCS "Wallet") to be in multiple realms (although only one realm is recommended). The DCD will also allow several peer connections within a single realm.
The selection of which realm when one account is in multiple realms can be via a proportional distribution, or a round-robin selection model. The selection of which peer for a realm can be via a proportional distribution, or a round-robin selection model.
If a request fails to get a response, retransmitting to another peer within the realm will be tried a configurable number of times. If this is exhausted, and the request is an INITIAL or EVENT request, then resubmitting to another realm will be tried, if one is available. Failover across a realm is only permitted once for each request.
A change in a received Origin-State-Id will never initiate failover of sessions.
Session failover behavior is only performed if permitted by the most recent CC-Session-Failover AVP received in the session. The initial behavior (until overridden by the CC-Session-Failover AVP) is configurable.
In addition to the behavior above, it is possible to group together peers into sets where only one of the peer will be used at any time. The currently active peer of a group will be the only connection opened, and will remain active until the connection fails. At that point the next peer will become active, and remain active until it fails.