The NaturalAccess SIGTRAN Stack has queues and congestion thresholds at several points during the outbound flow of messages. There are internal thresholds at the IP layer and configurable thresholds at the SCTP and M3UA layers.
The following table describes how the IP, SCTP, and M3UA layers control congestion:
Layer |
Trigger |
Description |
IP |
Traffic exceeds the internal upper transmit threshold. |
IP layer notifies the SCTP layer, which begins queuing messages. |
Transmit queue size is reduced to the lower transmit threshold. |
IP layer notifies the SCTP layer, which resumes transmitting messages. | |
SCTP |
Number of queued packets exceeds the configured value FLOW_START_THRESH. |
SCTP sends a flow control start indication to M3UA. |
Number of queued packets is reduced to the configured value FLOW_STOP_THRESH. |
SCTP sends a flow control stop indication to M3UA. | |
M3UA |
Receipt of a flow control start indication from SCTP. |
M3UA sets the congestion active flag for the association and begins polling SCTP periodically about its flow control status. While an association is in flow control, M3UA queues future data requests for that association until QUEUE_SIZE is reached. At that point, future messages for the association are discarded. M3UA propagates the association congestion information to the individual remote DPCs that are part of the association. |
Receipt of a flow control stop indication from SCTP. |
M3UA clears the congestion flag for the association and stops polling SCTP. M3UA then transmits anything in its congestion queue for that association to SCTP. |
In addition to internal congestion monitoring, M3UA maintains the congestion state of individual remote DPCs, as would an MTP3 layer. Congestion level indications for these DPCs are passed in a status indication to the bound upper layer, as with MTP3. It is up to the application to further reduce traffic as the congestion level increases in order to alleviate the congestion.