SAEGW Idle Buffering with DDN Delay and DDN Throttling

Revision History


Note


Revision history details are not provided for features introduced before release 21.24.


Revision Details

Release

The number of packets to be buffered per FAR on UP is configurable in this release. Use the buffering-limit far-max-packets far_max_packets CLI command in the ACS Configuration mode to configure buffered packets per FAR.

You can configure more number of FAR buffered packets to achieve QoS with fewer packet drops.

21.28.m23

First introduced.

Pre 21.24

Feature Description

The Downlink Data Notification (DDN) messages with support for DDN Delay and DDN Throttling, and buffering in SAEGW, when UE is in Idle State, is supported in CUPS architecture.

How It Works

This section provides an overview of how this feature works.

  • Buffering is supported at SAEGW-U.

  • Support of buffering starts when UE moves to IDLE state due to Release Access Bearer.

  • ACTIVE to IDLE transition:

    • When the UE moves to ECM-IDLE state, since the SAEGW supports buffering capability and decides to activate buffering in SAEGW-U for the session, the SAEGW-C informs the SAEGW-U through an Sx session modification.

    • After the buffering starts, when the first downlink packet arrives on any bearer, the SAEGW-U informs the SAEGW-C. The SAEGW-U sends an Sx reporting message to the SAEGW-C, unless specified otherwise, and identifies the S5/S8 bearer on which the downlink packet is received.

    • On receiving the reporting message, the SAEGW-C decides whether to send a DDN message to the MME, as defined in 3GPP TS 23.401 [2]. The DDN notification is sent with the Sx-Usage-Report.

  • IDLE to ACTIVE transition:

    • At the UE transition to ECM-CONNECTED state, the SAEGW-C updates the SAEGW-U through Sxa interface with the F-TEIDu of the eNodeB/RNC/SGSN. The buffered data packets, if any, are then forwarded to the eNodeB/RNC/SGSN by the SAEGW-U.

  • If the Apply Action is BUFFER, and SGW-U recovers, the SGW-U initiates Sx Report (with DLDR Report Type) on arrival of the downlink data packet.

  • In SGW-U, a timer is implemented that starts after each Sx Report (with DLDR report Type) is sent. If the Apply Action is not changed then on timer expiry, Sx Report (with DLDR Report Type) gets initiated again.

  • ARP of the bearer is included in the DDN message.

  • In a multi-PDN session, if the DDN is initiated for one PDN and then data is received on another PDN, wherein the bearer has higher priority, then the DDN is initiated again with the higher priority ARP value.

  • This behavior is also applicable for RA packets, which are treated as downlink packets by the SAEGW-U.

Downlink Data Notification – Delay (DDN-D) Support

Under certain conditions, when UE triggers a service request, uplink and downlink data is triggered and is received at the SGW-C even before the Modify Bearer Request (MBR) is received causing unnecessary Downlink Packet Notification messages sent that increases the load in MME.

In such cases, the MME monitors the rate at which these events occur. If the rate becomes significant (as configured by the operator) and the MME's load exceeds an operator configured value, the MME indicates "Delay Downlink Packet Notification Request" with parameter D to the Serving Gateway, where D is the requested delay given as an integer with multiples of 50 milliseconds, or zero. The S-GW then uses this delay in between receiving downlink data and sending the Downlink Data Notification message.

The Downlink Data Notifications are supported for both Collapsed and Pure-S calls.

Due to the distributed nature of the system, sessions from a particular MME are offloaded on different session managers. Therefore, all session managers are notified when a session is offloaded. Also, the functionality is designed to not allow all session managers to message the DEMUX manager.

  • In DDN Delay feature, DDN delay timer support is at Control Plane.

  • When first data packet arrives, Sx Report message is initiated but DDN message is initiated from Control Plane after the expiry of Delay timer.

  • DDN Delay feature is a peer level feature and so, it is applied for all the session on that peer from where the DDN Delay value is received.

  • In case a previous delay value was received from a peer and it is absent in the current message, the delay value will be considered as 0.

Session Recovery and ICSR is supported for DDNs.

DDN Throttling Support

Too many DDN requests towards MME from SGW-C could lead to processing overload at MME. To reduce this load, MME dynamically requests SGW-C to reduce a certain percentage of DDN messages sent towards it for a given period time.

For DDN throttling, S-GW is required to drop a given percentage of DDNs over a given period of time. S-GW implements this functionality using a probabilistic algorithm at each session manager.

Whereas, the conventional implementation of DDN throttling requires each session manager to share its list of pending DDNs for low priority bearers with a central entity that would then calculate the net load of pending DDNs and then decide how many DDNs each session manager would have to drop. This implementation would require buffering of DDN messages at session manager. Also, due to distributed processing nature of software subsystem in chassis, it would require considerable amount of messaging between the session managers and the central entity (demuxmgr in case of Boxer) at regular intervals.

Implementing a probabilistic algorithm removes the need for buffering at session manager and also messaging with demuxmgr. Accuracy of probabilistic algorithm increase with increasing low ARP priority paging load at session manager. Even with lower paging load, accuracy would be fairly close to the throttling factor provided.

For non-release 10 compliant MME, SGW_C provides option to enable throttling through the CLI.

Threshold ARP values for low priority bearer must be configured through S-GW Service Configuration. For example, if configured ARP value is 9, any bearer with ARP > 9 is considered low priority bearer. DDN throttling is enabled through this configuration. If DDN throttling is enabled through SGW service configuration, each DDN message towards MME would contain the ARP IE.

No User Connect Timer Support

  • Timer is introduced when a Modify Bearer Request is not received after positive Downlink Data Notification acknowledgment.

  • It is initiated at SGW-C when DDN acknowledgment is received.

  • On arrival of Modify Bearer Request, SGW-C stops this timer.

  • On timer expiry SGW-C informs SGW-U to drop buffered packets.

DDN Call Flows

DDN Success Scenario

  1. MME sends Release Access Bearer request to SGW-C to release downlink remote TEIDs of all the bearers for that UE.

  2. On arrival of Release Access Bearer request, SGW-C informs the same to SGW-U by updating FAR with Apply Action as BUFFER in Sx Modification Request for all the PDNs.

  3. SGW-U send Sx Modification response after applying Buffering in SGW-U for corresponding PDN.

  4. SGW-C sends Release Access Bearer response to MME.

  5. First Downlink data arriving in SGW-U triggers Sx Report Request (with Report Type as Downlink Data Report) towards SGW-C.

  6. On arrival of Sx Report Request message, the SGW-C initiates Downlink Data Notification request message towards MME.

  7. SGW-C sends Sx Report Response message towards SGW-U.

  8. If MME is able to send a paging request towards UE, it sets the cause as “Request Accepted” in Downlink Data Notification Acknowledgment Message and sends it to SGW-C.

  9. On successful paging, MME sends a Modify Bearer request to the S-GW with eNodeB TEIDs that sets up the S1-U connection at the SGW.

  10. SGW-C sends Sx Modification request with updated FAR for new TEID information to SGW-U. SGW-U can now forward all the buffered data to UE through eNodeB.

  11. SGW-U sends Sx Modification response to SGW-C.

DDN Failure Scenario

  1. MME sends Release Access Bearer request to SGW-C to release downlink remote TEIDs of all the bearers for that UE.

  2. On arrival of Release Access Bearer request, SGW-C informs the same to SGW-U by updating FAR with Apply Action as BUFFER in Sx Modification Request for all the PDNs.

  3. SGW-U send Sx Modification response after applying Buffering in SGW-U for corresponding PDN.

  4. SGW-C sends Release Access Bearer response to MME.

  5. First Downlink data arriving in SGW-U triggers Sx Report Request (with Report Type as Downlink Data Report) towards SGW-C.

  6. On arrival of Sx Report Request message, the SGW-C initiates Downlink Data Notification request message towards MME.

  7. SGW-C sends Sx Report Response message towards SGW-U.

  8. If MME is not able to page UE then it can reject Downlink Data Notification Request with relevant cause.

    OR

    If MME accepts Downlink Data Notification Request. But later sends Downlink Data Notification Failure indication in order to indicate SGW-C that the UE did not respond to paging.

  9. SGW-C received DDN failure and hence to stop sending next DDN immediately , SGW-C starts DDN Failure Timer.SGW-C sends Sx Modification Request with DROBU flag to discard buffered packets and Apply Action as DROP to drop subsequent packets.

  10. SGW-U sends Sx Modification Response to SGW-C.

  11. On DDN Failure Timer Expiry SGW-C initiates Sx Modification with Apply Action as BUFFER in order to start buffering again.

Further steps are continued from Step 3 in theDDN Success Scenario call flow.

No User Connect Timer Support

  1. MME sends Release Access Bearer request to SGW-C to release downlink remote TEIDs of all the bearers for that UE.

  2. On arrival of Release Access Bearer request, SGW-C informs the same to SGW-U by updating FAR with Apply Action as BUFFER in Sx Modification Request for all the PDNs.

  3. SGW-U send Sx Modification response after applying Buffering in SGW-U for corresponding PDN.

  4. SGW-C sends Release Access Bearer response to MME.

  5. First Downlink data arriving in SGW-U triggers Sx Report Request (with Report Type as Downlink Data Report) towards SGW-C.

  6. On arrival of Sx Report Request message, the SGW-C initiates Downlink Data Notification request message towards MME.

  7. SGW-C sends Sx Report Response message towards SGW-U.

  8. Downlink Data Notification Acknowledgment is received from MME.SGW-C starts no-user-connect timer.

  9. If the Modify Bearer request with eNodeB TEID information is not received and no-user-connect timer expires, SGW-C sends Downlink Data Notification again.

  10. Downlink Data Notification Acknowledgment is received from MME. SGW-C initiates the no-user-connect timer again.

  11. SGW-C initiates Sx Session Modification request towards SGW-U with DROBU flag set in the message. On receiving this flag SGW-U drops the buffered data. New data will be buffered, and the subsequent first packet initiates a Sx Report message for initiating Downlink Data Notification message.

  12. SGW-U sends Sx Modification Response.

DDN Delay Timer

  1. MME sends Release Access Bearer request to SGW-C to release downlink remote TEIDs of all the bearers for that UE.

  2. On arrival of Release Access Bearer request, SGW-C informs the same to SGW-U by updating FAR with Apply Action as BUFFER in Sx Modification Request for all the PDNs.

  3. SGW-U send Sx Modification response after applying Buffering in SGW-U for corresponding PDN.

  4. SGW-C sends Release Access Bearer response to MME.

  5. First Downlink data arriving in SGW-U triggers Sx Report Request (with Report Type as Downlink Data Report) towards SGW-C.

  6. On arrival of Sx Report Request message, the SGW-C initiates Downlink Data Notification request message towards MME.

  7. SGW-C sends Sx Report Response message towards SGW-U.

  8. Downlink Data Notification Acknowledgment is received from MME with DDN Delay Timer value. This timer value will be saved for this peer , and now onwards every Downlink Data notification that we initiate should be after this delay for that peer.

  9. On success paging, MME sends a Modify bearer request to the SGW with eNodeB TEIDs that sets up the S1-U connection at the SGW.

  10. SGW-C sends Sx Modification Request with updated FAR for new TEID information to SGW-U. SGW-U can now forward all the buffered data to UE via eNodeB.

  11. SGW-C sends Modify Bearer Response to MME.

  12. SGW-U sends Sx Modification Response to SGW-C.

  13. MME sends Release Access Bearer Request to SGW-C to release downlink remote TEIDs of all the bearers for that UE.

  14. On arrival of Release Access Bearer Request, SGW-C inform the same to SGW-U via updating FAR with Apply Action as BUFFER in Sx Modification Request for all the PDNs.

  15. SGW-U send Sx Modification Response after applying Buffering in SGW-U for corresponding PDN.

  16. SGW-C sends Release Access Bearer Response to MME.

  17. First Downlink data arriving in SGW-U triggers Sx Report Request (with Report Type as Downlink Data Report) towards SGW-C.

  18. On arrival of Sx Report Request message, SGW-C starts DDN Delay Timer. On DDN Delay timer expiry SGW-C Initiates Downlink Data Notification message towards MME.

Sx Interface

Sx Session Level Reporting Procedure

Detection of first Downlink Data for Idle-Mode UE (by SAEGW-U):

When SAEGW-U receives the downlink packet but no S1-bearer for transmission and the buffering is performed by SAEGW-U, it reports the detection of first downlink data to SAEGW-C, for the purpose of paging the UE.

PFCP Session Report Request

The PFCP Session Report Request is sent over the Sxab interface by the User Plane function to report information related to a PFCP session to the Control Plane function.

Information elements

P

Condition / Comment

Appl.

IE Type

Sxa

Sxb

Sxc

N4

Report Type

M

This IE shall indicate the type of the report.

X

X

X

X

Report Type

Downlink Data Report

C

This IE shall be present if the Report Type indicates a Downlink Data Report.

X

-

-

X

Downlink Data Report

Downlink Data Report IE within PFCP Session Report Request

The Downlink Data Report grouped IE is encoded as shown in the following table.

Octet 1 and 2

Downlink Data Report IE Type = 83 (decimal)

Octets 3 and 4

Length = n

Information elements

P

Condition / Comment

Appl.

IE Type

Sxa

Sxb

Sxc

N4

PDR ID

M

This IE shall identify the PDR for which downlink data packets have been received at the UP function.

More than one IE with this type may be included to represent multiple PDRs having received downlink data packets.

X

-

-

X

PDR ID

Notification to User Plane Function for DDN Failure

The Control Plane function notifies User Plane function for any failure so that buffered packets can be dropped and DDN related flags can be reset through DROBU flag in PFCP Sx Modification message.

PFCPSMReq-Flags

C

DROBU (Drop Buffered Packets): The CP function shall set this flag if the UP function is requested to drop the packets currently buffered for this PFCP session (see NOTE 1).

Limitations

Following are the known limitations of this feature:

  • Support for buffered data (data packet stream) that get deleted due to Flow Idle Timeout or other cases, is not present.

SAEGW Idle Buffering with DDN Delay and DDN Throttling Support Configuration

DDN Throttling for Release 10 Compliant MME

DDN throttling is enabled through Call Control Profile by providing the ARP value. For example, if the ARP value provided is 10, then all bearers with ARP value between 10-15 are treated as low priority bearers and are given throttling treatment. Throttling would not be enabled if ARP value is not provided through S-GW service configuration. Also, ARP IE in DDN message towards MME would not be included unless DDN throttling is configured using S-GW service. If MME is Release 10 compliant, the user need not configure the duration value as the DDN Acknowledgment would have the throttling IE. Otherwise, throttling can be enabled at S-GW by setting the duration value. If it’s set to 0, S-GW would apply throttling recurringly. To enable throttling only for a given duration of time (in non Rel-10 compliant MME), user needs to set the value in hours and minutes. From the time of configuration, throttling would be applied at S-GW until the timer duration expires. For example, if user sets hours = 10, minutes = 30, S-GW would apply throttling for next 10 hours 30 minutes.

On re-configuration, all the parameters will be set with new values, but they will be applicable only from the next recalibration except from polling time and time factor.

Use the following configuration to configure DDN throttling for release 10 MME:

configure 
   context context_name 
      sgw-service service_name 
         [ no ] ddn throttle arp-watermark arp_value 
         end 

NOTES:

  • arp-value: Valid ARP value between 1 and 15. All the packets which have ARP greater than the configured values will be throttled as per the throttling factor.

DDN Throttling for non-Release 10 Compliant MME

Use the following configuration to configure DDN throttling for a non-release 10 MME:

configure 
   context context_name 
      sgw-service service_name 
         ddn throttle arp-watermark arp_value [ rate-limit limit time-factor seconds throttle-factor percent increment-factor percent [ poll-interval seconds ] throttle-time-sec seconds [ throttle-time-min minutes ] [ throttle-time-hour hour ] stab-time-sec seconds [ stab-time-min minutes ] [ stab-time-hour hour ] 
         no ddn throttle 
         end 

NOTES:

  • rate-limit : DDN permitted per second.

  • time-factor : Time period in seconds over which SGW makes throttling decision ( valid range 1-300 seconds.

  • arp-value : Valid ARP value between 1 and 15. All the packets which have arp greater than the configured values will be throttled as per the throttling factor.

  • throttling-factor : Percentage of DDN to be dropped upon detecting DDN surge (valid range between 1-100).

  • throttling-time-sec : Time period in seconds over which DDN are throttled at SGW (valid range between 0-59 seconds).

  • throttling-time-min : Time period in minutes over which DDN are throttled at SGW (valid range between 0-59 minutes).

  • throttling-time-hour : Time period in hours over which DDN are throttled at SGW (valid range between 0-310 hours).

  • increment-factor : Percentage value by which throttling factor is incremented dynamically, if existing throttling factor is insufficient to curb the DDN surge.

  • poll-interval : Time in seconds (optional argument, default value = 1 second, poll interval < time-factor )

  • stab-time-sec/min/hours : Stabilization time factor, time period over which if DDN rate returns to normal, then throttling need not be applied over entire throttling time period.

DDN throttling for non-Release-10 compliant MME makes use of existing Release-10 throttling implementation at SGW. By providing a configuration mechanism for SGW service, operator can still apply ddn throttling without needing any feedback from MME. Some salient points of this feature are described below:

  1. The CLI configuration is applied per MME/S4-SGSN. Throttling parameters are tracked independently per MME/S4-SGSN.

  2. On configuring this feature through CLI, demuxmgr polls each sessmgr for number of DDNs sent. By default, polling is done every second. This time interval can be changed by configuring the poll-interval time. Greater the poll interval time, lesser the number of internal messages within the chassis. However, it would take longer to detect a DDN surge.

  3. By configuring time-factor, operator can specify the time interval for S-GW to apply throttling, if needed. It allows for some surge of DDNs if the net DDN rate is within specified limit over time-factor time interval. For example, time-factor= 10 seconds, ddn rate = 1000, poll interval = 2 seconds. Demux would poll each sessmgr every 2 seconds. Acceptable DDN rate limit is 1000*10 = 10000 DDNs every 10 seconds. Say after 2 seconds, 4000 DDNs were sent, in that case S-GW wouldn’t apply throttling till rate limit of 10000 DDNs is crossed within time period of 10 seconds. This allows for intermittent bursts of DDNs.

  4. DDN rate limit is configured through CLI. For example, if DDN rate limit is 1000 and poll interval = 1 second, time-factor = 5 seconds, then acceptable rate limit is 5000 DDNs over 5 seconds. If the number of DDNs sent by S-GW is greater than 5000 after 5 seconds, demuxmgr would ask all sessmgrs to initiate throttling.

  5. Percentage of DDNs to be throttled is configured through throttling-factor.

  6. Operator can specify increment-factor to increment throttling factor if existing throttling factor is insufficient to curb the DDN surge. For example, if throttling-factor = 10%, ddn-rate = 1000, increment-factor=10%. Once throttling is applied, S-GW drops ~10% DDNs. However, if DDN rate is still greater than 1000, S-GW would increase throttling-factor to 20%. If this is still not sufficient, it would be incremented to 30%. After incrementing throttling factor, if number of DDNs dropped are greater than expected, throttling-factor would then be decrement by increment-factor. E.g. in this case, after increasing throttling factor to 30%, if DDNs sent is less than 1000 per second (taking time-factor and poll-interval into consideration), throttling factor would be decremented to 20. The cap for decrementing throttling-factor would be the configured value (10% in this case).

  7. Operator can configure the time duration for which throttling is applicable at S-GW. This could be a large value in order of days (for example: 10 days or 240 hours). The operator has an option to stop throttling if DDN rate is well under control by configuring stabilization time factor. In such a case, DDNs won’t be needlessly dropped. For example, throttling-time =10 days, stab-time = 8 hours. After S-GW starts DDN throttling, in a time span of 8 hours, DDNs sent + DDNs dropped < ddn-rate * 8 hours, throttling would be stopped.

Configuring Buffering Limit

Use the following configuration to configure the packet buffering limit:

configure 
   active-charging service service_name 
      buffering-limit { far-max-packets far_max_packets | flow-max-packets flow_max_packets | subscriber-max-packets subscriber_max_packets } 
         { default | no } buffering-limit { far-max-packets | flow-max-packets | subscriber-max-packets } 
         end 

NOTES:

  • far-max-packets far_max_packets —Specify the maximum number of packets to be buffered per FAR. far_max_packets must be an integer from 1 to 128.

    Default value: 5 packets

  • flow-max-packets flow_max_packets —Specify the maximum number of packets to be buffered per flow. flow_max_packets must be an integer from 1 to 255.

  • subscriber-max-packets subscriber_max_packets —Specify the maximum number of packets to be buffered per subscriber. subscriber_max_packets must be an integer from 1 to 255.

Show Commands Input and/or Outputs

This section provides information regarding show commands and their outputs in support of the feature.

show subscribers user-plane-only-full all

The output of this command displays the following fields in support of this feature:

  • buffered pkts

  • buffered bytes

  • buffer overflow drop pkts

  • buffer overflow drop bytes

show user-plane-service statistics all

The following is a sample output of this command that displays statistics related to buffering:

[local]qvpc-si# show user-plane-service statistics all
…
  Data Statistics Related To Buffering:
    Packets Buffered:                  0    Bytes Buffered:                    0
    Packets Discarded:                 0    Bytes Discarded:                   0
    Packets Dropped per FAR (<=9)      0    Packets Dropped per FAR (10-19)    0
    Packets Dropped per FAR (20-29)    0    Packets Dropped per FAR (30-39)    0
    Packets Dropped per FAR (40-49)    0    Packets Dropped per FAR (>=50)     0
…