Remote Congestion Controls

The following features provide remote congestion controls in the DSR:
Remote BUSY Congestion
Addresses Remote Congestion detection

The DSR Remote BUSY Congestion feature calls for the server to send a "DIAMETER_TOO_BUSY" Answer, which is can be used by the clients to stop sending traffic for some duration. The feature addresses Remote Congestion detection and the steps to be taken to alleviate the situation.

Egress Transport Congestion
Supports use of transport congestion status

The Egress Transport Congestion feature uses Congestion Levels to manage the egress message traffic flow on a Diameter Peer Connection when the Connection's TCP/SCTP send buffer is exhausted, as indicated by the TCP/SCTP socket being "blocked". The socket is blocked when the Diameter Transport Function attempts to write new data to the TCP/SCTP socket fail due to insufficient send buffer space. When a Diameter Connection socket becomes blocked, the Diameter Transport Function sets the Egress Transport Congestion Level to CL-4 and discards any received Request or Answer messages.

Per-Connection Egress Message Throttling
Targets congestion avoidance

The Per Connection Egress Message Throttling feature targets congestion avoidance by throttling the volume of Diameter traffic being sent over a Connection when the traffic exceeds the configured maximum egress message rate of the Connection.

User-Configurable Connection Pending Transaction Limiting
Provides a pending transaction limit for each DSR Peer Connection

User-Configurable Connection Pending Transaction Limiting (UC-CPTL) provides a configurable pending transaction limit for each DSR Peer Connection, to customize the distribution of the available Pending Transaction Records on a DA-MP based on the varying deployment requirements. The limit can be configured independently for each DA-MP in the DSR.

Routing Based on Congestion Level

Features such as Remote BUSY Congestion, Egress Transport Congestion, and Per Connection Egress Throttling Control are used by the DSR to control the flow of egress traffic by setting a feature-specific Congestion Level for a Diameter Connection. Certain Requests can be prioritized over others, using the User Configurable Message Priority feature.

The Connection Priority Level (CPL) is an overall Congestion Level for the Connection that is based upon the highest Congestion Level of the various egress traffic control features. The CPL is used by the Diameter Routing Function when making egress message routing decisions based on the Priority provided by the User Configurable Message Priority feature. No message can be forwarded to a Diameter Connection that has a Priority level less than the CPL for that Connection

The DSR supports up to five Congestion Levels (CL-0 to CL-4), with CL-0 indicating no congestion to CL-4 indicating that the Connection is blocked. The intermediate Congestion Levels CL-1, CL-2, and CL-3 indicate the increasing severity of congestion.

Each feature has a Congestion Level range, as follows:
  • Remote BUSY Congestion Levels: CL-0. CL-1, CL-2, and CL-3
  • Egress Transport Congestion Levels: CL-0. CL-1, CL-2, CL03, and CL-4
  • Per Connection Egress Message Throttling Congestion Levels: CL-0. CL-1, CL-2, and CL-3

The CPL value for a Connection (CONN-CPL) is based on the maximum Congestion Level of the features.

DSR egress Request routing and Answer forwarding functions use the Connection Congestion Level in conjunction with the Message Priority to determine how Requests and Answers must be handled over an egress Connection. Message Priority and Connection Congestion Level in the Connection selection criteria are used to avoid sending messages of Priority x and lower to Connections currently at Congestion Level x+1.

All Answers are assigned a Message Priority of 3 by the DSR, while Requests can be assigned Message Priorities 0 through 2. Messages with a Priority greater than or equal to the Congestion Level are allowed, while messages with lower Priorities are not delivered on this Connection. This arrangement ensures that Answers have the highest Priority and are always routed unless a Connection becomes blocked, and depending upon the level of congestion some or all of the Requests may be allowed. Table 1 summarizes this behavior.

CLs, CPLs, and Message Treatment
Connection CL/CPL Value Message Priorities Allowed Message Priorities Not Allowed Comment
CL-4 /4 None All Requests nor Answers can be sent on the Connection
CL-3/3 3 0,1,2 Allow only Answers to be sent on the Connection
CL-2/2 3, 2 0,1 Allow only Answers and Pri=2 Requests to be sent on the Connection
CL-1/1 3, 2, 1 0 Allow only Answers and Pri=2,1 Requests to be sent on the Connection
CL-0/0 All None All Requests and Answers can be sent on the Connection

Congestion Levels can be set by multiple features. For example, a particular Connection may have received a DIAMETER_TOO_BUSY for a Priority 1 Request (resulting in CL-2 congestion), and while abating may have experienced transport congestion (CL-4). Therefore, the DSR uses the concept of Connection Priority Level (CPL) to consider the Congestion Levels reported by all the features while making routing decisions.

The CPL value is a function of Operational Status and the Congestion Levels reported by the Remote BUSY Congestion, Egress Transport Congestion, and Per Connection Egress Message Throttling features. Table 2 summarizes this behavior.
  • The CPL Value for a Connection is based on the worst-case (highest) value:

    CPL Value of a Connection = Max (X1, X2, X3, X4)

  • This composite CPL value is then used by the Diameter Routing Function as shown in Table 1.
Mapping Congestion Levels to CPL Values
Attribute Value CPL Value
X1: Diameter Connection Operational Status Available Degraded Unavailable 0 3 99
X2: Diameter Connection Remote BUSY Congestion CL-0 through CL-3 0-3
X3: Diameter Connection Egress Transport Congestion CL-0 through CL-4 0-4
X4: Diameter Connection Egress Message Throttling CL-0 through CL -3 0-3

Capacity and Ranges

Table 3 specifies the capacity and ranges for Remote BUSY and Egress Message Rate.

Remote BUSY and EMR Capacity Ranges
Item Maximum Description
Remote BUSY processing 1000 Remote BUSY processing on up to 1000 simultaneous Diameter connections on a single G6 DA-MP
Remote BUSY processing 2000 Remote BUSY processing on up to 2000 simultaneous Diameter connections on a single G7 DA-MP
Remote BUSY processing 1000 Remote BUSY processing on up to 16000 simultaneous Diameter connections on a single G8 DA-MP
Egress Transport Congestion processing 1000 Egress Transport Congestion processing on up to 1000 simultaneous Diameter connections on a single G6 DA-MP
Egress Transport Congestion processing 2000 Egress Transport Congestion processing on up to 2000 simultaneous Diameter connections on a single G7 DA-MP
Egress Transport Congestion processing 1000 Egress Transport Congestion processing on up to 16000 simultaneous Diameter connections on a single G8 DA-MP
Egress Message Throttling 500 Egress Message Throttling on up to 500 simultaneous Diameter connections on a single G6 DA-MP
Egress Message Throttling 500 Egress Message Throttling on up to 500 simultaneous Diameter connections on a single G7 DA
Egress Message Throttling 500 Egress Message Throttling on up to 500 simultaneous Diameter connections on a single G8 DA
Egress Message Throttling Configuration Sets 50 Up to 50 in a DSR