Method, system and computer readable medium for policing Access Point Name-Aggregate Maximum Bit Rate (APN-AMBR) across Packet Data Network Gateway Data Plane (P-GW DP) Worker Instances - Patent application

By introducing an APN-AMBR policer to manage capacity across multiple P-GW DP worker instances, the network architecture addresses capacity restrictions, enabling flexible session allocation and efficient bandwidth management.

JP7621356B2Active Publication Date: 2025-01-24ORACLE INT CORP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2022530819
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-11-26
Filing Date
2020-11-23
Publication Date
2025-01-24
Estimated Expiration
2040-11-23

AI Technical Summary

Technical Problem

The existing 3GPP communication network architecture assigns all PDN sessions for a UE to the same P-GW DP worker instance, leading to capacity restrictions that can result in rejecting new sessions even if other instances have available processing capacity.

Method used

Implementing an APN-AMBR policer separate from the P-GW DP worker instances to manage and distribute APN-AMBR capacity across multiple worker instances using token bucket algorithms, ensuring seamless rate enforcement and capacity utilization.

Benefits of technology

This approach simplifies the logic within P-GW DP worker instances by allowing flexible allocation of PDN sessions across different instances, ensuring compliance with APN-AMBR limits without overloading any single instance, and optimizing bandwidth management.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007621356000003
    Figure 0007621356000003
  • Figure 0007621356000004
    Figure 0007621356000004
  • Figure 0007621356000005
    Figure 0007621356000005
Patent Text Reader

Abstract

A method for policing APN-AMBR includes receiving, at a P-GW including multiple P-GW DP worker instances, uplink data transmitted from a first UE via an AP by a non-GBR bearer associated with a first PDN session or downlink data transmitted to the first UE via the AP by a non-GBR bearer; forwarding the uplink or downlink data to a first P-GW DP worker instance among the multiple P-GW DP worker instances allocated to the PDN session; and sending, at the first P-GW DP worker instance, a request for a slice of APN-AMBR capacity for processing the uplink or downlink data to an APN-AMBR policer separate from the P-GW. The method further includes, in the APN-AMBR policer, maintaining a record of APN-AMBR capacities used by UEs having PDN sessions assigned to different ones of the P-GW DP worker instances, and allowing or denying the request based on the APN-AMBR capacities used by the PDN sessions assigned to different ones of the P-GW DP worker instances.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] Priority claim This application claims the benefit of priority to U.S. Patent Application No. 16 / 697,021, filed November 26, 2019, the disclosure of which is incorporated herein by reference in its entirety.

[0002] Technical Field The subject matter described herein relates to policing uplink and downlink APN-AMBRs. More particularly, the subject matter described herein relates to methods, systems, and computer-readable media for policing uplink and downlink APN-AMBRs for PDN sessions assigned to respective P-GW DP worker instances. [Background technology]

[0003] background In a 3GPP® communication network, a PDN Gateway or P-GW is a gateway that terminates the SGi interface towards the PDN. The PDN Gateway performs various functions defined in 3GPP® TS 23.401. These functions include per-user based packet filtering, lawful interception, UE IP address allocation, transport level packet marking in both uplink and downlink directions, accounting for inter-operator charging, uplink and downlink service level charging, interfacing with an offline charging system (OFCS), uplink and downlink service level gating and rate enforcement, uplink and downlink rate enforcement based on APN-AMBR, and other functions. It is to the uplink and downlink rate enforcement based on APN-AMBR that the subject matter described herein is directed.

[0004] APN-AMBR is the aggregate maximum bit rate that can be used by all PDN sessions assigned to non-guaranteed bit rate (non-GBR) bearers using a given access point. One network architecture for the P-GW includes a P-GW DP worker instance that is assigned to handle PDN sessions. In this architecture, all PDN sessions of the same UE through a single access point need to be assigned to the same P-GW DP worker instance so that the P-GW DP worker instance can police all uplink and downlink bandwidth usage by the UE through this particular access point. As a result, new sessions of the same UE will be rejected even if another P-GW DP worker instance has available processing capacity.

[0005] In view of these issues, therefore, there is a need for improved methods, systems, and computer-readable media for policing APN-AMBR across multiple P-GW DP worker instances. Summary of the Invention

[0006] overview A method for policing an Access Point Name-Aggregate Maximum Bit Rate (APN-AMBR) includes receiving, in a Packet Data Network (PDN) Gateway (P-GW) including at least one processor and multiple P-GW Data Plane (DP) worker instances executed by the at least one processor, uplink data transmitted from a first user equipment (UE) via an Access Point (AP) by a non-guaranteed bit rate (non-GBR) bearer associated with a first PDN session or downlink data transmitted to the first UE via the AP by the non-GBR bearer, forwarding the uplink or downlink data to a first P-GW DP worker instance among the multiple P-GW DP worker instances assigned to the PDN session, and sending, at the first P-GW DP worker instance, a request for a slice of APN-AMBR capacity for processing the uplink or downlink data to an APN-AMBR policer separate from the P-GW. The method further includes maintaining, in the APN-AMBR policer, a record of APN-AMBR capacities used by UEs having PDN sessions assigned to different ones of the P-GW DP worker instances, and allowing or rejecting the request based on the APN-AMBR capacities used by the PDN sessions assigned to the different ones of the P-GW DP worker instances.

[0007] According to another aspect of the subject matter described herein, the step of granting or rejecting the request includes granting the request, and the method for APN-AMBR policing further includes, at the APN-AMBR policer, communicating a notification of the grant to the first P-GW DP worker instance, and, at the first P-GW DP worker instance, receiving the notification of the grant and consuming a slice of the APN-AMBR capacity represented by the grant by transmitting the uplink or downlink data.

[0008] According to another aspect of the subject matter described herein, maintaining a record of the APN-AMBR capacities used by the UE includes maintaining a record of the APN-AMBR capacities used by PDN sessions of the first UE assigned to the different ones of the P-GW DP worker instances.

[0009] According to another aspect of the subject matter described herein, maintaining a record of the APN-AMBR capacities used by the UE includes maintaining a record of the APN-AMBR capacities used by different PDN sessions of different UEs assigned to the different ones of the P-GW DP worker instances.

[0010] According to another aspect of the subject matter described in this specification, transmitting the request for the slice of the APN-AMBR capacity includes requesting an allocation of tokens from the APN-AMBR policer for processing at least a portion of the uplink or downlink data.

[0011] According to another aspect of the subject matter described herein, requesting an allocation of tokens includes requesting an allocation of the tokens in response to a percentage of authorized tokens available to the first P-GW DP worker instance being less than a threshold amount.

[0012] According to another aspect of the subject matter described in this specification, the method for APN-AMBR policing includes, in the APN-AMBR policer, maintaining a maximum limit of tokens that may be allocated within a time interval for a plurality of UE and APN combinations, and granting or denying a request for token allocation based on whether a number of tokens requested by the request for token allocation exceeds the maximum token limit, the maximum token limit being based on the APN-AMBR.

[0013] According to another aspect of the subject matter described herein, the method for APN-AMBR policing includes implementing a fixed or sliding window during which tokens may be granted.

[0014] According to another aspect of the subject matter described herein, granting or rejecting the request includes performing a best effort token allocation and, if the number of tokens requested by the first P-GW DP worker instance during a time interval would exceed the maximum tokens allocated during the time interval, granting remaining tokens available within the time interval that would not exceed the maximum token limit.

[0015] According to another aspect of the subject matter described herein, granting or denying the request includes implementing a maximum limit token allocation by denying a request for token allocation if the number of requested tokens would exceed the maximum token limit.

[0016] According to another aspect of the subject matter described herein, there is provided a system for policing an Access Point Name-Aggregate Maximum Bit Rate (APN-AMBR), the system including a Packet Data Network (PDN) Gateway (P-GW) including at least one processor and a plurality of P-GW Data Plane (DP) worker instances executed by the at least one processor, the P-GW configured to receive uplink data transmitted from a first user equipment (UE) via an Access Point (AP) by a non-guaranteed bit rate (non-GBR) bearer associated with a first PDN session or downlink data transmitted to the first UE via the AP by the non-GBR bearer, and forward the uplink or downlink data to a first P-GW DP worker instance of the plurality of P-GW DP worker instances assigned to the PDN session, the first P-GW DP worker instance configured to request a slice of APN-AMBR capacity for processing the uplink or downlink data. The system further includes an APN-AMBR policer configured to maintain a record of APN-AMBR capacities used by UEs having PDN sessions assigned to different ones of the P-GW DP worker instances, and to grant or deny the request based on the APN-AMBR capacities used by the PDN sessions assigned to the different ones of the P-GW DP worker instances.

[0017] According to another aspect of the subject matter described herein, the APN-AMBR policer is configured to grant the request and communicate an indication of the grant to the first P-GW DP worker instance, which is configured to receive the indication of the grant and consume a slice of the APN-AMBR capacity represented by the grant by transmitting the uplink or downlink data.

[0018] According to another aspect of the subject matter described herein, the APN-AMBR policer is configured to maintain a record of the APN-AMBR capacity used by PDN sessions of the first UE assigned to the different ones of the P-GW DP worker instances.

[0019] According to another aspect of the subject matter described herein, the APN-AMBR policer is configured to maintain a record of the APN-AMBR capacities used by different PDN sessions of different UEs assigned to the different ones of the P-GW DP worker instances.

[0020] According to another aspect of the subject matter described herein, the first P-GW DP worker instance is configured to request a slice of the APN-AMBR capacity by requesting an allocation of tokens from the APN-AMBR policer for processing at least a portion of the uplink or downlink data.

[0021] According to another aspect of the subject matter described herein, the first P-GW DP worker instance is configured to request an allocation of the tokens in response to a percentage of authorized tokens available to the first P-GW DP worker instance being less than a threshold amount.

[0022] According to another aspect of the subject matter described in this specification, the APN-AMBR policer is configured to maintain a maximum limit on tokens that may be allocated within a time interval and to grant or deny a request for token allocation based on whether the number of tokens requested by the request for token allocation exceeds the maximum token limit, the maximum token limit being based on the APN-AMBR.

[0023] According to another aspect of the subject matter described herein, the APN-AMBR policer is configured to perform best effort token allocation and, if a number of tokens requested by the first P-GW DP worker instance during a time interval would exceed the maximum tokens allocated during the time interval, to grant remaining tokens available within the time interval that would not exceed a maximum limit of the tokens, the maximum limit of the tokens being based on the APN-AMBR.

[0024] According to another aspect of the subject matter described in this specification, the APN-AMBR policer is configured to perform maximum limit token allocation by rejecting a request for token allocation if the number of tokens requested would exceed a maximum limit of the tokens, the maximum limit being based on the APN-AMBR.

[0025] According to another aspect of the subject matter described herein, a non-transitory computer-readable medium having executable instructions stored thereon that, when executed by at least one processor of at least one computer, controls the at least one computer to perform steps including receiving, at a Packet Data Network (PDN) Gateway (P-GW) including multiple P-GW Data Plane (DP) worker instances, uplink data transmitted from a first user equipment (UE) via an Access Point (AP) by a non-guaranteed bit rate (non-GBR) bearer associated with a first PDN session or downlink data transmitted to the first UE via the AP by the non-GBR bearer, and forwarding the uplink or downlink data to a first P-GW DP worker instance of the multiple P-GW DP worker instances assigned to the PDN session. The steps further include sending, at the first P-GW DP worker instance, a request for a slice of APN-AMBR capacity for processing the uplink or downlink data to an APN-AMBR policer separate from the P-GW, and further including maintaining, in the APN-AMBR policer, a record of APN-AMBR capacity used by UEs having PDN sessions assigned to different ones of the P-GW DP worker instances, and allowing or rejecting the request based on the APN-AMBR capacity used by the PDN sessions assigned to the different ones of the P-GW DP worker instances.

[0026] The subject matter described herein can be implemented in software in combination with hardware and / or firmware. For example, the subject matter described herein can be implemented in software executed by a processor. In one exemplary implementation, the subject matter described herein can be implemented using a non-transitory computer-readable medium having computer-executable instructions stored thereon that, when executed by a processor of a computer, control a computer to perform steps. Exemplary computer-readable media suitable for implementing the subject matter described herein include non-transitory computer-readable media, such as disk memory devices, chip memory devices, programmable logic devices, and application specific integrated circuits. Additionally, the computer-readable medium implementing the subject matter described herein may be located on a single device or computing platform, or may be distributed across multiple devices or computing platforms. [Brief description of the drawings]

[0027] [Figure 1] FIG. 1 is a network diagram illustrating an example network architecture including a P-GW and an access point (AP) provided by the P-GW. [Diagram 2] FIG. 1 is a network diagram showing a P-GW providing data plane services to multiple PDN sessions, where all PDN sessions for a given UE and APN are assigned to the same P-GW DP worker instance. [Diagram 3] A network diagram showing the use of an APN-AMBR policer to allocate APN-AMBR capacity to PDN sessions. [Figure 4] A network diagram showing allocation of PDN sessions for the same UE and APN to different P-GW DP worker instances and the use of an APN-AMBR policer to enforce APN-AMBR for these PDN sessions. [Diagram 5] 4 is a flowchart illustrating an example fixed window token bucket algorithm that may be performed by the APN-AMBR policer in FIG. 3 to allocate APN-AMBRs to PDN sessions. [Figure 6] 1 is a flowchart illustrating a sliding window token bucket algorithm that may be performed by an APN-AMBR policer to allocate APN-AMBR capacity to PDN sessions. [Figure 7A] 13 is a flowchart showing a token request algorithm that may be performed by a P-GW DP worker instance. [Figure 7B] 13 is a flowchart showing a part of the token request algorithm executed by a P-GW DP worker instance. [Figure 8] 11 is a flowchart illustrating an example process for using an APN-AMBR policer to allocate APN AMBR capacity. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0028] Detailed Description The subject matter described herein relates to a method, system, and computer-readable medium for allocating APN-AMBR capacity in a P-GW. As mentioned above, one problem with the existing network architecture is that the PDN session for a given APN needs to be allocated to the same P-GW DP worker instance so that APN-AMBR can be implemented, and as a result, the PDN session may be rejected due to the capacity limitation of the P-GW DP worker instance even if another P-GW DP worker instance is available to handle the session. To solve this problem without unnecessarily complicating the architecture of the P-GW DP worker instance, an APN-AMBR policer separate from the P-GW may perform APN-AMBR capacity allocation and rate limit policing of uplink and downlink PDN sessions.

[0029] To more fully explain APN-AMBR bandwidth allocation and policing by the APN-AMBR policer, a background on network architecture is first provided. Figure 1 is a block diagram illustrating an example 3GPP network architecture. The architecture shown in Figure 1 is defined in 3GPP TS 23.682. In Figure 1, the architecture includes a user equipment (UE) 100, which may include a machine type communication (MTC) UE application 102. Thus, the UE 100 may be an IoT device, such as a sensor, or a mobile phone used by a network subscriber.

[0030] The UE 100 connects to a core network via a Radio Access Network (RAN) 104. The RAN 104 may be an Evolved Terrestrial Radio Access Network (E-UTRAN), a New Radio (NR) network, or a combination thereof. Nodes in the Radio Access Network 104 that provide radio connectivity to 2G and 3G UE devices are referred to as base stations. For 4G UEs, nodes in the Radio Access Network 104 that provide radio network connectivity to these UEs are referred to as evolved Node Bs (eNBs). For 5G-capable UEs, nodes that provide NR connectivity to these devices are referred to as gNode Bs (gNBs). The RAN 104 is intended to represent one or more base stations, eNBs, and gNBs.

[0031] Another way that the UE 100 can access the network is through an access point 105. The access point 105 may be a Wi-Fi access point or other type of access point through which the UE 100 has a packet data network connection with a network node, such as an application server 120.

[0032] A Mobile Switching Center (MSC) 106 performs mobility management functions for 2G and 3G UE devices. A Mobility Management Entity (MME) 108 performs mobility management functions for 4G-capable UE devices. Mobility management functions performed by the MSC 106 or MME 108 may include receiving mobile device registrations, communicating mobile subscriber registration and location information to a Home Location Register (HLR) or Home Subscriber Service (HSS), and communicating with nodes in the RAN 104 where the UE is attached to the network.

[0033] A General Packet Radio Service Support Node (SGSN) 110 is provided to handle packet data communication with mobile users in the network. The SGSN 110 serves as a service access point to the GPRS network for mobile users. The SGSN 110 in turn communicates with a Gateway GPRS Support Node / PDN Gateway (GGSN / P-GW) 112, which may serve as a policy enforcement point for packet data communication with mobile users. A Policy and Charging Rules Function (PCRF) (not shown in FIG. 1) may perform policy and charging functions for mobile users. The PCRF may include a policy data store that stores policies that apply to mobile users. These policies may be installed in the policy enforcement point (such as the GGSN / P-GW 112) to enforce policies for network usage and charging. A Signaling Gateway (SGW) 114 performs signaling protocol conversion to set up bearer communication with mobile users.

[0034] The SCEF 116 includes an SCEF function 117 and a machine type communication interworking function (MTC-IWF) 124. On the application side, the SCEF function 117 provides an interface for application servers (such as application servers (AS) 118 and 120) and a service function server (SCS) 122 to communicate with the network. In one example, the SCEF 116 is a node that supports group triggering of IoT devices by the application servers 118 and 120 and the service function server 122. In a direct communication model, the application servers 118 and 120 may communicate directly with the GGSN / P-GW 112. In an indirect communication model, the application servers 118 and 120 may communicate with the network via the SCS 122 and the SCEF 116. It should also be noted that the application servers 118 and 120 may communicate directly with the SCEF 116.

[0035] In the following, the GGSN / P-GW 112 is referred to as the P-GW 112 because the bandwidth policing function performed by the P-GW 112 is of interest to the subject matter described herein. One such function is policing of the aggregate maximum bit rate. The aggregate maximum bit rate or AMBR is the bit rate towards a particular PDN that is shared among PDN users. Since the bit rate is shared, it is desirable to police the bit rate on a per-user basis. One way to police the bit rate is per-APN, per-UE, so that each UE-APN combination is assigned a portion of the AMBR up to the maximum portion. Once a UE-APN combination reaches the maximum AMBR, further PDU sessions for that particular UE are rejected. As described in more detail below, the subject matter described herein includes an APN-AMBR policer that allows PDN sessions for a UE-ABN combination to be distributed across multiple P-GW DP worker instances.

[0036] The MTC-IWF 124 facilitates communication with IoT devices that do not have IP communication capabilities. The Charging Data Function / Charging Gateway Function (CDF / CGF) 126 generates billing records for network usage. The Home Subscriber Server (HSS) 128 stores subscription and location information for UE devices. In one example, the HSS 128 may also be configured to translate external group IDs into individual IoT device identifiers (such as International Mobile Subscriber Identifiers (IMSIs)) via a mapping used by the SCEF 116 or another node. The Machine Type Communication Authentication, Authorization, and Accounting (MTC AAA) Server 130 performs AAA functions for MTC devices.

[0037] The network architecture may include a Short Message Service Center / Gateway Message Service Center / Interworking Message Service Center (SMSC / GMSC / IWMSC) 132 for generating and delivering SMS messages to IoT devices. An IP Short Message Gateway (IP-SM-GW) 134 may convert IP messages to SMS messages and vice versa. A Short Message Entity (SME) 136 sends and receives SMS messages.

[0038] As mentioned above, one problem with the current P-GW architecture is that in order to properly police the AGBR limit, all PDN sessions for a particular user-APN combination must be assigned to the same P-GW DP worker instance. Figure 2 illustrates this problem in more detail. In Figure 2, the P-GW 112 includes P-GW DP worker instances 200 and 202. Each P-GW DP worker instance 200 and 202 handles APN AMBR uplink and downlink rate policing for a user-APN instance for messages or PDN sessions directed to or from a particular PDN 204. The P-GW 112 is assigned a service IP address 206 that AP1 105 uses to contact the P-GW 112. In the example shown, two different PDN sessions with dedicated and default non-GBR bearers are established between the UE 100 and the PDN 204. Each PDN session contains data in the uplink and downlink directions that must be policed ​​for AMBR compliance.

[0039] In the illustrated example, all PDN sessions for UE 100 are handled by P-GW DP worker instance 200. One problem with this architecture is that if P-GW DP worker instance 200 is operating at full rate capacity and handling PDN sessions from a single UE or multiple UEs, new PDN sessions must be rejected for any UE currently being handled by P-GW DP worker instance 200 because P-GW DP worker instance 200 does not have the capacity to handle another session. This is true even if P-GW DP worker instance 202 has the capacity. Since there is no communication between P-GW DP worker instances for AMBR compliance using the current architecture, all P-GW DP worker instances must be assigned all PDN sessions for a given UE.

[0040] The subject matter described herein provides a solution to this problem by allowing a UE's PDN sessions destined for a single PDN to span each P-GW DP worker instance. To provide AMBR compliance, an APN-AMBR policer is provided. FIG. 3 illustrates an example of an APN-AMBR policer. In FIG. 3, the APN-AMBR policer 300 may be implemented as a microservice located on a computing platform separate from the P-GW 112 and the P-GW DP worker instances 200 and 202. The APN-AMBR policer 300 maintains uplink and downlink APN-AMBRs per UE and per APN, even if the PDN sessions for a given UE are on the respective P-GW DP worker instances. The per UE, per APN and total AMBRs used by each UE and APN combination are maintained in a database 302. The APN-AMBR policer 300 uses a token bucket algorithm to allocate APN-AMBR capacity slices to each P-GW DP worker instance for each UE / APN. The token bucket algorithm is described in more detail below. The APN-AMBR policer maintains the used capacity for each UE and APN combination and stores the data in database 302. Database 302 may be an in-memory database or a local cache for faster access.

[0041] As a result of the policing performed by the APN-AMBR policer 300, the APN-AMBR policing logic in each P-GW DP worker instance is simplified because each P-GW DP worker instance requests an AMBR capacity slice from the APN-AMBR policer 300 and receives a grant from the APN-AMBR policer 300. Each P-GW DP worker instance 200 and 202 then uses the capacity in each grant using a token consumption algorithm, which is described in more detail below. When the current capacity slice is exhausted, the P-GW DP worker instance requests more capacity from the APN-AMBR policer 300. If the APN-AMBR policer 300 denies the capacity request, the requesting P-GW DP worker instance drops the traffic. APN-AMBR policing is seamless when the P-GW DP worker instances scale up or down.

[0042] FIG. 4 illustrates the case where a PDN session for a given UE-APN combination is assigned to a different P-GW DP worker instance than other PDN sessions related to this same UE-APN combination. In FIG. 4, PDN session 1 and PDN session 2 for APN1 and UE1 are assigned to P-GW DP worker instance 1 200. A further PDN session, namely PDN3, is assigned to P-GW DP worker instance 202. This further PDN session is for the same UE-APN combination as the one assigned to P-GW DP worker instance 1. The APN-APN-AMBR policer 300 enforces APN-AMBR for the UE-APN combination on P-GW DP worker instance 1 200 and P-GW DP worker instance 2 202.

[0043] As mentioned above, in one example, the APN-AMBR policer 300 executes a token bucket algorithm to perform rate limit policing on at least one of per UE, per PDN session, and per APN. The token bucket algorithm may be executed for every PDN for every rate limit window, where the rate limit window is a period (e.g., 1 second) that may define the rate limit capacity of the PDN using a number of tokens that may be granted during the window. The P-GW DP worker instance may request multiple tokens from the APN-AMBR policer 300 during the rate limit window (one token for each data unit transmitted (e.g., one token = 100 kilobits)). The token request algorithm for the P-GW DP worker instance is described in detail below. The APN-AMBR policing may be realized with two different algorithms. One algorithm uses a fixed window and the other algorithm uses a sliding window. FIG. 5 illustrates a fixed window rate policing algorithm that may be executed by the APN-AMBR policer 300. The fixed window algorithm operates in two different configurations. One is a maximum limit configuration, in which a request is rejected if the number of tokens requested would exceed the APN-AMBR. The other configuration option is a best effort configuration option, in which if the number of tokens requested during a given window exceeds the number of available tokens, available tokens can be allocated even if they do not completely satisfy the current request. For every token request, the APN-AMBR policer 300 returns the granted tokens according to the algorithm and the time remaining in the current window.

[0044] With reference to the flow chart of FIG. 5, a P-GW DP worker instance may initially or intermittently request tokens for processing received data forwarded for each non-GBR bearer. The algorithms shown in FIG. 5-7 operate separately for uplink and downlink data for each non-GBR bearer. A request for token allocation may include a current timestamp and a current token request (number of tokens requested). In step 500, the APN-AMBR policer 300 receives a request for token allocation and performs a lookup in the database 302 to determine whether the request is a new request in the current time interval or whether tokens have already been allocated to the requester during the current time interval. Here, the requester may be identified by a combination of an APN and a UE identifier. In step 502, if no record is found in the lookup, the request is a new request and control proceeds to step 504 to start an initial window of token allocation for the UE and APN combination. Here, the number of previously allocated tokens is set to zero. Because the window was just created, the previous expiry time is set to the current timestamp plus the window length, i.e., the expiry time of the created window. If a record is found in step 502, the request is a subsequent request from the same request issuer and control proceeds to step 506, where the previously assigned token and the previous expiry time are loaded.

[0045] In step 508, it is determined whether the P-Expiry timer has expired. The P-Expiry timer controls the expiration of previously allocated tokens. If the P-Expiry timer has expired, control proceeds to step 504 where the current request is treated like a new request. If the previous expiry timer has not expired in step 508, control proceeds to step 510. In step 510, it is determined whether the number of previously allocated tokens plus the number of currently requested tokens exceeds the maximum limit for the UE and APN combination during that time interval. If the maximum limit is not exceeded, control proceeds to step 510 where the requested tokens are allocated and the variable P-Tokens (previous tokens) is set equal to the current value of P-Tokens+C-Tokens (currently requested tokens). In step 512, the values ​​of P-Tokens and C-Tokens are stored in the database 302. The P-GW DP worker instance can then consume these tokens by forwarding uplink or downlink data over non-GBR bearers. In one implementation, one token allows a P-GW DP worker instance to send an amount of uplink or downlink data configured by the operator (e.g., one token allows forwarding 100 kilobits of data). After the P-GW DP worker instance sends a defined amount of uplink data over the PDN or a defined amount of downlink data to the UE, the P-GW DP worker instance decrements the number of available tokens.

[0046] Returning to step 510, if the previously allocated tokens plus the currently requested tokens exceed the maximum limit during the time interval, control passes to step 512 to determine whether a best effort allocation is performed. As described above, a best effort allocation allows for tokens to be allocated even if the number of available tokens is not sufficient to satisfy the current request. If a best effort allocation is not performed, control passes to step 516 where the token request is rejected, and then passes to 512 where the values ​​of P-Tokens and P-Expiry are stored in the database 302. If a best effort allocation is performed, control passes to step 514 where the remaining tokens are allocated. The number of allocated tokens is equal to the maximum limit minus the previously allocated tokens. Control then passes to step 512 where the values ​​of P-Tokens and P-Expiry are stored in the database 302.

[0047] FIG. 5 illustrates a fixed window token allocation algorithm performed by the APN-AMBR policer 300. As mentioned above, in another example, the token allocation algorithm may utilize a sliding window. In a sliding window approach, the initial and expiry times for a given token allocation window move in time units. The tokens in the window are divided into buckets, each bucket having a start time and a length. When the current timestamp passes the end of a bucket (bucket start time + length), any unused tokens in that bucket expire and can be reclaimed and used to satisfy requests for tokens from the same or other P-GW DP worker instances. Thus, using a sliding window increases the availability of unused tokens.

[0048] FIG. 6 is a flow chart illustrating an example sliding window token bucket algorithm that may be performed by the APN-AMBR policer 300. With reference to FIG. 6, a P-GW DP worker instance initially or intermittently requests tokens for processing uplink or downlink data to be transmitted that is received by the P-GW DP worker instance. The request specifies a current timestamp and a current number of requested tokens. In step 600, the APN-AMBR policer 300 performs a lookup in the database 302 to determine whether the request is a new request for the time interval or an existing request. If no database record is found in the lookup, the request is a new request. Thus, control passes from step 602 to step 604 where a variable "previously allocated tokens" (P-Tokens) is initialized to zero for the time interval. Control then passes to step 606 where a variable P-Bucket-Tokens is set to zero and a variable P-Bucket-Start-Timestamp is set to the current timestamp.

[0049] In step 602, if a database record is found, then the request is a subsequent request for the current time interval. If the request is a subsequent request, control passes to step 608 where the previously assigned tokens (P-Tokens), the variables P-Bucket, P-Tokens and P-Bucket-Start-Time are initialized to the values ​​found in the record. Control then passes to step 610 where it is determined whether the variable P-Bucket-Start-Time is older than the current timestamp-bucket length. If this is the case, control passes to step 612 where the current bucket is marked as expired, and then to step 606 where the variable P-Bucket-Tokens is set to zero and the variable P-Bucket-Start-Time is set to the current timestamp.

[0050] After step 610, control passes to step 613 where any expired tokens are withdrawn from the expired bucket and the expired bucket record is removed. From step 613, control passes to step 614 where the tokens withdrawn from the expired bucket are adjusted to P-Tokens (i.e., P-Tokens=P-Tokens-Recovered Tokens). Control then passes to step 616 where it is determined whether the sum of the previously allocated tokens and the currently requested tokens is greater than the maximum limit. If the sum of the previously allocated tokens and the currently requested tokens is not greater than the maximum limit, the tokens are allocated and control passes to step 618 where P-Tokens is set to the previously allocated tokens plus the currently requested tokens. Control then passes to step 620 where the values ​​of the variables P-Tokens, P-Bucket and P-Bucket-Start-Time are stored in the database 302.

[0051] Referring to step 616, if the sum of previously allocated tokens and currently requested tokens exceeds the maximum limit during the time interval, control passes to step 622 where it is determined whether a best effort allocation is to be performed. If a best effort allocation is not to be performed, control passes to step 624 where the request is rejected. If a best effort allocation is to be performed, control passes to step 626 where the remaining tokens are allocated to partially satisfy the request. Control then passes to step 620 where the values ​​of the P-Tokens, P-Bucket and P-Bucket-Start-Time variables are stored in database 302.

[0052] As described above, by performing rate limit policing in the APN-AMBR policer 300 separate from the P-GW DP worker instance, the logic of the P-GW DP worker instance is simplified. Figures 7A and 7B show a P-GW DP worker instance token request algorithm that may be executed by each P-GW DP worker instance. In general, each P-GW DP worker instance receives uplink or downlink data, determines the number of tokens required to transmit this data, and requests an initial grant of tokens from the APN-AMBR policer 300. For data received later, the P-GW DP worker instance checks whether the number of available tokens is greater than a configurable percentage of the granted tokens and forwards the request. For example, in the aggressive token request algorithm, the threshold amount may be set to 50% or more to anticipate last-minute token shortages. In a less aggressive algorithm, the threshold may be set to a lower percentage (such as 25%) to allow the P-GW DP worker instances to nearly exhaust their token allocation before requesting more tokens. Subsequent token requests may be fixed in size or may be successively larger in size, for example based on a Fibonacci sequence. The P-GW DP worker instances may not manage rate-limited time window traversals. The APN-AMBR policer provides the remaining time in the current window.

[0053] With reference to the flowchart shown in FIG. 7A, the P-GW DP worker instance receives uplink or downlink data to be transmitted. In step 700, the P-GW DP worker instance performs a lookup in its local database for service instance x, which may represent uplink or downlink data for non-GBR bearers assigned to the UE and APN combination to determine the current number of available tokens, the current number of granted tokens, and the final token request status for this given service instance. Note that the P-GW DP worker instance does not need to know the rate capacity of the service instance or the amount of available capacity used by other consumers. The database maintained by each P-GW DP worker instance may include the number of tokens granted to the P-GW DP worker instance by the APN-AMBR policer for each service instance and the number of those tokens that are unused.

[0054] In step 702, if no record is found, this means that the P-GW DP worker instance has not requested any token for the service instance (i.e., non-GBR bearer) during the current time interval. Control then proceeds to step 704, where the P-GW DP worker instance initializes available tokens for service instance x to 0, allowed tokens for service instance x to 0, remaining window time to 0, and token request status to not pending.

[0055] If a record is found, this means that the P-GW DP worker instance has already requested a token for the service instance during the current time interval. If a record is found, control proceeds to step 706, where the P-GW DP worker instance loads the information found in the lookup. The loaded information includes the available tokens for the service instance, the authorized tokens for the service instance, the remaining window time, and the token request status. In step 708, the P-GW DP worker instance determines whether the available tokens-1 are greater than a configurable percentage of the authorized tokens mentioned above. In other words, the P-GW DP worker instance requests a new token if more than half of the existing tokens previously allocated to the service instance have been used during the current time interval. This is an aggressive algorithm, but it can prevent the service instance from running out.

[0056] If available tokens-1 is greater than a configurable percentage of allowed tokens, then no new tokens are needed and control proceeds to step 710, where the uplink or downlink data is forwarded to the PDN or UE, and the variable "available tokens" is decremented to indicate the use of one token to satisfy the data transmission.

[0057] If the available tokens-1 is not greater than a configurable percentage of the allowed tokens, control proceeds to step 712, where the P-GW DP worker instance determines whether there are pending token requests in the current time interval. If there are pending token requests, control proceeds to step 714, where it is determined whether there is time remaining in the current window. If there is no time remaining in the current window, the P-GW DP worker instance drops the token request in step 716. If there is time remaining in the current window, control proceeds to step 718, where the P-GW DP worker instance determines whether there are available tokens. If there are available tokens, control proceeds to step 710, where the P-GW DP worker instance forwards uplink or downlink data and decrements the number of available tokens. If there are no available tokens, control proceeds to step 720, where it is determined what the pending token request status is. If there is a token status request, control proceeds to step 722 where the request is queued and the P-GW DP worker instance waits for a response from the APN-AMBR policer. If there is no pending token request, control proceeds to step 716 where the current request is dropped.

[0058] In step 712, if there are no pending token requests and the number of available tokens is less than half the allowed tokens, control proceeds to step 724, where the P-GW DP worker instance requests tokens from the APN-AMBR policer and marks the pending token status request variable as pending.

[0059] Figure 7B shows the token request algorithm. In Figure 7B, if in step 726 the number of available tokens is not equal to zero, control proceeds to step 728 where the P-GW DP worker instance requests a grant of y tokens from the APN-AMBR policer, where y is a configurable value. In step 730, the P-GW DP worker instance receives the grant with the time remaining in the current window. In step 732, the P-GW DP worker instance sets the available tokens to the number of currently available tokens + the grant. The variable "granted tokens" is set to the number of tokens in this grant. The variable "remaining window time" is set to the time remaining in the current window and the token request status is set to no pending requests.

[0060] If in step 726 the number of available tokens is equal to zero, control proceeds to step 734 where the P-GW DP worker instance requests an initial grant of w tokens from the APN-AMBR policer, where w is a configurable value. Setting w to a large value can facilitate servicing of the initial burst of messages. In step 736 the P-GW DP worker instance waits for a grant from the APN-AMBR policer. Once the grant is made in step 730, control proceeds to step 732 where the P-GW DP worker instance updates its variables to reflect the token grant.

[0061] 8 is a flowchart showing an example overall process for implementing APN-AMBR using an APN-AMBR policer. With reference to FIG. 8, in step 800, a first P-GW DP worker instance receives uplink or downlink data transmitted by a non-GBR bearer. For example, the P-GW DP worker instance 200 may receive uplink data from a UE transmitted by a non-GBR bearer to a PDN, or downlink data from a PDN transmitted by a non-GBR bearer to a UE.

[0062] In step 802, the process includes requesting capacity from an APN-AMBR policer at a first P-GW DP worker instance. For example, the P-GW DP worker instance 200 may request an allocation of tokens from the APN-AMBR policer 300 corresponding to an amount of uplink or downlink data to be transmitted that the P-GW DP worker instance has received.

[0063] In step 804, the process includes maintaining a record of APN-AMBR capacity in the APN-AMBR policer across multiple different ones of the P-GW DP worker instances and granting the request from the first P-GW DP worker instance based on the APN-AMBR capacity used across the multiple P-GW DP worker instances. For example, the APN-AMBR policer 300 may determine that a UE-APN combination is available for tokens during a given time interval because the UE-APN combination has not reached a configured limit of available APN-AMBR. In such a case, the APN-AMBR policer 300 may issue a token grant to the P-GW DP worker instance 200. Note that the APN-AMBR policer 300 maintains a record of exhausted APN-AMBR capacity across multiple P-GW DP worker instances when the UE-APN combination has PDN sessions being processed by different P-GW DP worker instances. This is one of the advantages of the subject matter described herein in that rate limit policing can be performed without the need to assign all PDN sessions for a given UE and APN combination to the same P-GW DP worker instance. If PDN sessions for the same UE and APN combination are assigned to different P-GW DP worker instances, the APN-AMBR policer 300 updates the capacity used whenever a token grant is issued to any of the PDN sessions. Also, because the APN-AMBR policer 300 handles token allocation across all P-GW DP worker instances for a given P-GW, the APN-AMBR policer 300 can also enforce APN-AMBR restrictions across each UE's PDN session even if these sessions are assigned to each P-GW DP worker instance.

[0064] The following example illustrates the functionality and advantages of the subject matter described herein. Assume that the APN-AMBR is 100 mbps for a particular APN. The APN-AMBR is the aggregate measure of the total capacity available to the non-GBR bearers of all UEs connected to the PDN via a given AP. In one example, the APN-AMBR policer described herein may maintain capacity for each UE-APN combination and allocate a portion of the APN-AMBR to each UE-APN combination. For example, assume that the APN-AMBR is 100 mbps in each direction and there are two UEs, each with two different sessions connected to the PDN via a given access point. Table 1 shown below is an example of a record that may be maintained in the database 302 by the APN-AMBR policer in such a case.

[0065] [Table 1]

[0066] In Table 1, the APN-AMBR policer 300 may store a single record for each UE and APN combination and may store or calculate from the data in each record the total amount of AMBR capacity used by each UE and APN combination per PDN session and per direction. The APN-AMBR policer 300 may also store in each record the maximum APN-AMBR allocation for each UE and APN combination.

[0067] The APN-AMBR policer 300 can police the AMBR at the APN level, UE level, PDN session level and / or traffic direction level using the data in Table 1. For example, in Table 1, the combination of UE1 and APN1 is assigned an APN-AMBR of 50mbps for each of the uplink and downlink directions. The current uplink AMBR capacity used is 10mbps+5mbps=15mbps, which means that UE1 has an additional capacity of 50mbps-15mbps=35mbps available. In this way, the APN-AMBR policer can ensure that the total bandwidth used by both sessions does not exceed a portion or slice of the APN-AMBR assigned to each UE-APN combination. The same advantage is realized when the PDN sessions for each UE via the same APN are handled by each P-GW DP worker instance. For example, assume that both UE1 and UE2 are connected to PDN1 via AP1, are served by respective P-GW DP worker instances, and have an APN-AMBR of 100 mbps. In this example, UE1 and UE2 may each have access to their respective shares of the APN-AMBR (e.g., 50 mbps each), and the APN-AMBR policer 300 may police the bandwidth used by both sessions to ensure that the APN-AMBR is not exceeded.

[0068] 8, in step 806, the process includes receiving, at the first P-GW DP worker instance, a slice of APN-AMBR capacity from the APN-AMBR policer and using the capacity for uplink or downlink data transmission. For example, the P-GW DP worker instance 200 may receive a grant of a token from the APN-AMBR policer 300 and consume the token to transmit the received uplink or downlink data.

[0069] The APN-AMBR policer can be used to more efficiently handle uplink and downlink traffic passing through the P-GW data plane. The algorithms executed by the P-GW DP worker instances are simplified because these worker instances do not need to perform policing or keep track of the bandwidth used by PDN sessions assigned to another P-GW DP worker instance. Also, PDN sessions for the same APN can be flexibly allocated across P-GW DP worker instances. Furthermore, the uplink and downlink bandwidth provided to a PDN session for a particular APN is not limited to the rated capacity of the P-GW DP worker instance.

[0070] The disclosure of each of the following references is incorporated herein by reference in its entirety.

[0071] [Table 2]

[0072] It will be understood that various details of the subject matter described herein may be changed without departing from the scope of the subject matter described herein. Moreover, the above description is merely for purposes of illustration and not for purposes of limitation, and the subject matter described herein is defined by the claims set forth below.

Claims

1. A method for policing an Access Point Name-Aggregate Maximum Bit Rate (APN-AMBR), comprising:

1. A Packet Data Network (PDN) Gateway (P-GW) including at least one processor and a plurality of P-GW Data Plane (DP) Worker instances executed by the at least one processor, receiving uplink data transmitted from a first user equipment (UE) via an access point (AP) by a non-guaranteed bit rate (non-GBR) bearer associated with a first PDN session, or receiving downlink data transmitted to the first UE via the AP by the non-GBR bearer; forwarding the uplink or downlink data to a first P-GW DP worker instance of the plurality of P-GW DP worker instances assigned to the PDN session; sending, at the first P-GW DP worker instance, a request for a slice of APN-AMBR capacity for processing the uplink or downlink data to an APN-AMBR policer separate from the P-GW; In the APN-AMBR policer, maintaining a record of APN-AMBR capacity used by UEs having PDN sessions assigned to different ones of the P-GW DP Worker instances; and accepting or rejecting the request based on the APN-AMBR capacity used by the PDN sessions assigned to the different ones of the P-GW DP Worker Instances.

2. 2. The method of claim 1 , wherein granting or rejecting the request comprises granting the request, and further comprises: at the APN-AMBR policer, communicating a notification of the grant to the first P-GW DP worker instance; and at the first P-GW DP worker instance, receiving the notification of the grant and consuming a slice of the APN-AMBR capacity represented by the grant by transmitting the uplink or downlink data.

3. 3. The method of claim 1, wherein maintaining a record of the APN-AMBR capacities used by the UE comprises maintaining a record of the APN-AMBR capacities used by PDN sessions of the first UE assigned to the different ones of the P-GW DP Worker Instances.

4. 4. The method according to claim 1, wherein maintaining a record of the APN-AMBR capacities used by the UE comprises maintaining a record of the APN-AMBR capacities used by different PDN sessions of different UEs assigned to the different ones of the P-GW DP Worker Instances.

5. A method according to any one of claims 1 to 4, wherein the step of transmitting the request for the slice of the APN-AMBR capacity comprises a step of requesting an allocation of tokens from the APN-AMBR policer for processing at least a portion of the uplink or downlink data.

6. 6. The method of claim 5, wherein requesting an allocation of tokens comprises requesting the allocation of tokens in response to a percentage of authorized tokens available to the first P-GW DP worker instance being less than a threshold amount.

7. 7. The method of claim 5 or 6, further comprising: in the APN-AMBR policer, maintaining a maximum limit of tokens that may be allocated within a time interval for a plurality of combinations of UE and APN; and granting or rejecting the token allocation request based on whether the number of tokens requested by the token allocation request exceeds the maximum token limit, the maximum token limit being based on the APN-AMBR.

8. A method according to any one of claims 5 to 7, comprising implementing a fixed or sliding window within which tokens may be admitted.

9. The method according to any one of claims 5 to 8, wherein the step of granting or rejecting the request comprises the step of performing a best effort token allocation and, if the number of tokens requested by the first P-GW DP worker instance during a time interval would exceed a maximum limit of tokens allocated during said time interval, granting the remaining tokens available within said time interval that would not exceed said maximum limit of tokens.

10. 9. The method of claim 5, wherein granting or denying the request comprises enforcing a maximum limit token allocation by denying a request for token allocation if the number of tokens requested would exceed the maximum token limit.

11. A program causing said at least one processor to execute the method according to any one of claims 1 to 10.

12. the at least one processor; A system comprising: a memory storing the program according to claim 11.

Citation Information

Patent Citations

  • Method and device for realizing bandwidth limitation of access point

    CN107105457A

  • Traffic policing in communication networks

    JP2013535944A