Outbound and inbound congestion control features are available for the SCCP service.
After binding to an SCCP user SAP, an application can receive a SCCPEVN_CONGEST event. The Event.value parameter contains the congestion level. When this event is received, one of the following events has occurred:
The SCCP service has queued a number of events that have not been read by the SCCP task on the board.
Memory available on the board has become very low.
The application can determine which event occurred by calling SCCPGetStats.
When this congestion event is received, the application must reduce traffic sent to the board.
If the congestion is due to the SCCP service, the only effect on traffic flow is that at some point after congestion level 3 occurs, requests sent to the board can fail with CTAERR_DRIVER_SEND_FAILED or SCCPERR_RESOURCES errors. The application must reduce traffic flow to avoid this possibility.
If the congestion is due to low available memory on the board, the SCCP service implements the following congestion procedure:
Congestion |
Action taken |
1 |
No action is taken on outbound or inbound messages. This indication is for information only. |
2 |
Further outbound connectionless messages are returned. All new connections (inbound and outbound) are refused. Existing connection-oriented traffic is unaffected. |
3 |
Further inbound and outbound connectionless messages are discarded. Connection-oriented traffic is treated the same as in level 2. |
0 |
Congestion has eased. Normal traffic handling is in effect. |
The levels used to determine memory congestion are configured in the SCCP general configuration and can be altered by the user as required. Refer to SccpInitGenCfg for more information.
The following alarm message is generated as each congestion level is reached:
SCCP Memory Congestion Level = 1
Although not reported to the application, congestion can also occur due to excessive inbound traffic to a specific user SAP. If an application cannot read traffic from the board quickly enough, these messages build on a queue. As each congestion level is reached, procedures are implemented to limit further inbound traffic to that user SAP. Traffic to other user SAPs is unaffected.
Congestion |
Action taken |
1 |
Half of new inbound or outbound connections are refused. Traffic for existing connections is unaffected. |
2 |
All new inbound or outbound connections are refused. Traffic for existing connections is unaffected. Inbound connectionless messages are returned. |
3 |
All new inbound or outbound connections are refused. Traffic for existing connections is unaffected. Inbound connectionless messages are discarded. |
The levels used to determine inbound congestion are configured in the SCCP user SAP configuration and can be altered by the user as required. Refer to SccpInitUSapCfg for more information.
The following alarm message is generated as each congestion level is reached:
SCCP User Sap 0 Queue Congestion Level = 1