Access Point Name-Aggregate Maximum Bit Rate (APN-AMBR)
By introducing the APN-AMBR regulator and token bucket algorithm, the APN-AMBR capacity is distributed across P-GW DP worker instances, which solves the problem of PDN session rejection in the existing technology and achieves more efficient network resource utilization.
Patent Information
- Application Number
- CN202080082224.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-11-26
- Filing Date
- 2020-11-23
- Publication Date
- 2025-09-12
- Estimated Expiration
- 2040-11-23
AI Technical Summary
In existing 3GPP communication networks, the APN-AMBR regulation method for PDN sessions results in all PDN sessions of the same UE being assigned to the same P-GW DP worker instance. As a result, when the capacity of the instance reaches its upper limit, new sessions cannot be processed even if other instances are idle.
An APN-AMBR regulator is introduced to regulate APN-AMBR across P-GW DP worker instances and allocate APN-AMBR capacity among different worker instances through token bucket algorithm to achieve uplink and downlink rate limiting.
This achieves flexible cross-instance allocation of APN-AMBR capacity without complicating the P-GW DP worker instance architecture, avoids session rejection, and improves network resource utilization efficiency.
Smart Images

Figure CN114788339B_ABST
Abstract
Description
[0001] Priority claim
[0002] This application claims priority to U.S. patent application Ser. No. 16 / 697,021, filed on November 26, 2019, the disclosure of which is incorporated herein by reference in its entirety. Technical Field
[0003] The subject matter described herein relates to policing uplink and downlink APN-AMBRs. More specifically, 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 different P-GW DP worker instances. Background Art
[0004] 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 packet filtering on a per-user basis, 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 the 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. The subject matter described herein is directed to uplink and downlink rate enforcement based on APN-AMBR.
[0005] 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 P-GW includes a P-GW DP worker instance assigned to handle PDN sessions. In this architecture, all PDN sessions for the same UE through a single access point are required to be assigned to the same P-GW DP worker instance so that the P-GW DP worker instance can supervise all uplink and downlink bandwidth usage of the UE through a specific access point. Therefore, even if another P-GW DP worker instance has available processing capacity, a new session for the same UE will be rejected.
[0006] Thus, in view of these difficulties, there is a need for improved methods, systems, and computer-readable media for policing APN-AMBRs across P-GW DP worker instances. Summary of the Invention
[0007] A method for regulating access point name aggregate maximum bit rate (APN-AMBR) includes, at a packet data network (PDN) gateway (P-GW) including at least one processor and multiple P-GW data plane (DP) worker instances implemented by the at least one processor: receiving uplink data to be transmitted on a non-guaranteed bit rate (non-GBR) bearer associated with a first PDN session from a first user equipment (UE) via an access point (AP) or downlink data to be transmitted to the first UE on a non-GBR bearer via the AP; 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, at the first P-GW DP worker instance, transmitting a request for a slice of APN-AMBR capacity for processing the uplink or downlink data to an APN-AMBR regulator separate from the P-GW. The method also includes, at the APN-AMBR supervisor: maintaining a record of APN-AMBR capacity used by UEs having PDN sessions assigned to different worker instances in the P-GW DP worker instances; and granting or rejecting requests based on the APN-AMBR capacity used by the PDN sessions assigned to different worker instances in the P-GW DP worker instances.
[0008] According to another aspect of the subject matter described herein, granting or rejecting a request includes a grant request, and the method for APN-AMBR regulation further includes transmitting, at the APN-AMBR regulator, a notification of the grant to a 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 uplink or downlink data.
[0009] According to another aspect of the subject matter described herein, maintaining a record of APN-AMBR capacity used by UEs includes maintaining a record of APN-AMBR capacity used by PDN sessions of the first UE assigned to different ones of the P-GW DP worker instances.
[0010] According to another aspect of the subject matter described herein, maintaining a record of APN-AMBR capacity used by UEs includes maintaining a record of APN-AMBR capacity used by different PDN sessions of different UEs assigned to different ones of the P-GW DP worker instances.
[0011] According to another aspect of the subject matter described herein, transmitting a request for a slice of APN-AMBR capacity includes requesting an allocation of a token from an APN-AMBR regulator to process at least some of the uplink or downlink data.
[0012] According to another aspect of the subject matter described herein, requesting allocation of the token includes requesting allocation of the token in response to a percentage of granted tokens available to the first P-GW DP worker instance being less than a threshold amount.
[0013] According to another aspect of the subject matter described herein, a method for APN-AMBR regulation includes maintaining, at an APN-AMBR regulator, a maximum limit on tokens that can be allocated in a time interval for multiple UE-APN combinations and granting or denying a request for token allocation based on whether the number of tokens requested in the request for token allocation would cause the maximum limit on tokens to be exceeded, and the maximum limit on tokens is based on the APN-AMBR.
[0014] According to another aspect of the subject matter described herein, a method for APN-AMBR policing includes implementing a fixed or sliding window during which tokens may be granted.
[0015] According to another aspect of the subject matter described herein, granting or denying a request includes implementing a best-effort token allocation wherein, if a number of tokens requested by a first P-GW DP worker instance during a time interval would cause a maximum allocated tokens during the time interval to be exceeded, then granting a remainder of available tokens that would not cause the maximum limit of tokens to be exceeded for the time interval.
[0016] According to another aspect of the subject matter described herein, granting or denying the request includes implementing a maximum limit token allocation by denying the request for token allocation if the requested number of tokens would cause the maximum limit of tokens to be exceeded.
[0017] According to another aspect of the subject matter described herein, a system for regulating access point name aggregate maximum bit rate (APN-AMBR) is provided. The system includes a packet data network (PDN) gateway (P-GW) including at least one processor and multiple P-GW data plane (DP) worker instances implemented by the at least one processor, wherein the P-GW is configured to receive uplink data to be transmitted on a non-guaranteed bit rate (non-GBR) bearer associated with a first PDN session from a first user equipment (UE) via an access point (AP) or downlink data to be transmitted to the first UE on a non-GBR bearer via the AP, forward 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 the first P-GW DP worker instance is configured to request a slice of APN-AMBR capacity to process the uplink or downlink data. The system also includes an APN-AMBR governor configured to maintain a record of APN-AMBR capacity used by UEs having PDN sessions assigned to different ones of the P-GW DP worker instances, and to grant or deny requests based on the APN-AMBR capacity used by the PDN sessions assigned to different ones of the P-GW DP worker instances.
[0018] According to another aspect of the subject matter described herein, the APN-AMBR regulator is configured to grant a request, transmit a notification of the grant to a first P-GW DP worker instance, and wherein the first P-GW DP worker instance is configured to receive the notification of the grant and consume a slice of the APN-AMBR capacity represented by the grant by transmitting uplink or downlink data.
[0019] According to another aspect of the subject matter described herein, an APN-AMBR policer is configured to maintain a record of APN-AMBR capacity used by PDN sessions of a first UE assigned to different ones of the P-GWDP worker instances.
[0020] According to another aspect of the subject matter described herein, an APN-AMBR policer is configured to maintain a record of APN-AMBR capacity used by different PDN sessions of different UEs assigned to different ones of the P-GWDP worker instances.
[0021] According to another aspect of the subject matter described herein, the first P-GW DP worker instance is configured to request a slice of APN-AMBR capacity to handle at least some of the uplink or downlink data by requesting a token allocation from the APN-AMBR governor.
[0022] According to another aspect of the subject matter described herein, the first P-GW DP worker instance is configured to request an allocation of a token in response to a percentage of granted tokens available to the first P-GW DP worker instance being less than a threshold amount.
[0023] According to another aspect of the subject matter described herein, the APN-AMBR policer is configured to maintain a maximum limit on tokens that can be allocated in a time interval and to grant or deny requests for token allocations based on whether the number of tokens requested in the request for token allocation would cause the maximum limit on tokens to be exceeded, and the maximum limit on tokens is based on the APN-AMBR.
[0024] According to another aspect of the subject matter described herein, the APN-AMBR governor is configured to implement best effort token allocation, wherein if a first P-GW DP worker instance requests a number of tokens during a time interval that would cause the maximum allocated tokens during the time interval to be exceeded, then a remainder of the available tokens for the time interval that would not cause the maximum limit of tokens to be exceeded is granted, and the maximum limit of tokens is based on the APN-AMBR.
[0025] According to another aspect of the subject matter described herein, the APN-AMBR policer is configured to implement a maximum limit token allocation by denying a request for token allocation if the requested number of tokens would cause a maximum limit of tokens to be exceeded, and the maximum limit is based on the APN-AMBR.
[0026] According to another aspect of the subject matter described herein, a non-transitory computer-readable medium having executable instructions stored thereon is provided, wherein the executable instructions, when executed by at least one processor of at least one computer, control the at least one computer to perform steps. These steps include, at a packet data network (PDN) gateway (P-GW) including multiple P-GW data plane (DP) worker instances: receiving uplink data to be transmitted on a non-guaranteed bit rate (non-GBR) bearer associated with a first PDN session from a first user equipment (UE) via an access point (AP) or downlink data to be transmitted to the first UE on a non-GBR bearer via the AP; 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. These steps also include, at the first P-GW DP worker instance, transmitting a request for a slice of APN-AMBR capacity for processing uplink or downlink data to an APN-AMBR regulator separate from the P-GW. The steps also include, at the APN-AMBR supervisor: maintaining a record of the APN-AMBR capacity used by UEs having PDN sessions assigned to different worker instances in the P-GW DP worker instances; and granting or rejecting requests based on the APN-AMBR capacity used by the PDN sessions assigned to different worker instances in the P-GW DP worker instances.
[0027] 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 an exemplary embodiment, the subject matter described herein can be implemented using a non-transitory computer-readable medium having computer-executable instructions stored thereon, which control the computer to perform steps when executed by the processor of the computer. Exemplary computer-readable media suitable for implementing the subject matter described herein include non-transitory computer-readable media, such as disk storage devices, chip storage devices, programmable logic devices, and application-specific integrated circuits. In addition, the computer-readable medium that implements the subject matter described herein can be located on a single device or computing platform, or can be distributed across multiple devices or computing platforms. BRIEF DESCRIPTION OF THE DRAWINGS
[0028] Figure 1 is a network diagram illustrating an exemplary network architecture including a P-GW and access points (APs) served by the P-GW;
[0029] Figure 2 is a network diagram illustrating a P-GW providing data plane services for multiple PDN sessions, wherein all PDN sessions for a given UE and APN are assigned to the same P-GW DP worker instance;
[0030] Figure 3 is a network diagram illustrating allocation of APN-AMBR capacity to PDN sessions using an APN-AMBR policer;
[0031] Figure 4 is a network diagram illustrating assignment of PDN sessions for the same UE and APN to different P-GW DP worker instances and enforcement of APN-AMBR for the PDN sessions using an APN-AMBR policer;
[0032] Figure 5 The diagram can be Figure 3 Flowchart of an exemplary fixed window token bucket algorithm implemented by an APN-AMBR policer in order to assign an APN-AMBR to a PDN session;
[0033] Figure 6 is a flow chart illustrating a sliding window token bucket algorithm that may be implemented by an APN-AMBR policer to allocate APN-AMBR capacity to PDN sessions;
[0034] Figure 7A is a flow chart illustrating a token requirement algorithm that may be implemented by a P-GW DP worker instance;
[0035] Figure 7B is a flow chart illustrating a portion of a token requirement algorithm implemented by a P-GW DP worker instance; and
[0036] Figure 8 is a flow chart illustrating an exemplary process for allocating APN AMBR capacity using an APN-AMBR policer. DETAILED DESCRIPTION
[0037] The subject matter described herein relates to methods, systems, and computer-readable media for allocating APN-AMBR capacity at a P-GW. As described above, one problem with existing network architectures is that PDN sessions for a given APN are required to be assigned to the same P-GW DP worker instance so that APN-AMBR can be enforced, which results in PDN sessions being rejected due to capacity limitations of the P-GW DP worker instance, even if another P-GW DP worker instance is available to handle the session. To address this issue without overly complicating the architecture of the P-GW DP worker instance, an APN-AMBR regulator separate from the P-GW can implement APN-AMBR capacity allocation and rate limit regulation for uplink and downlink PDN sessions.
[0038] To more fully explain APN-AMBR bandwidth allocation and regulation by the APN-AMBR regulator, the background of the network architecture will first be presented. Figure 1is a block diagram illustrating an exemplary 3GPP network architecture. Figure 1 The architecture shown in is defined in 3GPP TS 23.682. Figure 1 In FIG, 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 handset used by a network subscriber.
[0039] UE 100 is connected to the core network via a radio access network (RAN) 104. RAN 104 can be an evolved universal terrestrial radio access network (E-UTRAN), a new radio (NR) network, or a combination thereof. A node in the radio access network 104 that provides radio connectivity to 2G and 3G UE devices is referred to as a base station. For 4G UEs, a node in the radio access network 104 that provides radio network connectivity to the UE is referred to as an evolved Node B (eNB). For 5G-capable UEs, a node that provides NR connectivity to the device is referred to as a gNode B (gNB). RAN 104 is intended to represent one or more base stations, eNBs, and gNBs.
[0040] Another way that UE 100 can access a network is through access point 105. Access point 105 may be a Wi-Fi access point or other type of access point through which UE 100 has packet data network connectivity with a network node such as application server 120.
[0041] 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, transferring mobile subscriber registrations and location information to a home location register (HLR) or home subscriber service (HSS), and communicating with the node in the RAN 104 through which the UE attaches to the network.
[0042] The Serving General Packet Radio Service Support Node (SGSN) 110 handles packet data communications with mobile users in the network. The SGSN 110 serves as a service access point for the GPRS network for mobile users. On the other hand, the SGSN 110 communicates with the Gateway GPRS Support Node / PDN Gateway (GGSN / P-GW) 112, which can serve as a policy enforcement point for packet data communications with mobile users. The Policy and Charging Rules Function (PCRF) ( Figure 1The PCRF (not shown) can perform policy and charging functions for mobile users. The PCRF may include a policy data repository that stores policies to be applied to mobile users. Policies can be installed in policy enforcement points, such as the GGSN / P-GW 112, to enforce network usage and charging policies. The Signaling Gateway (SGW) 114 performs signaling protocol conversion to set up bearer communications with mobile users.
[0043] SCEF 116 includes SCEF function 117 and machine type communication interworking function (MTC-IWF) 124. SCEF function 117 provides an interface for application servers (such as application servers (AS) 118 and 120 and service capability server (SCS) 122) on the application side to communicate with the network. In one example, SCEF 116 is a node that supports group triggering of IoT devices by application servers 118 and 120 and service capability server 122. In a direct communication model, application servers 118 and 120 can communicate directly with GGSN / P-GW 112. In an indirect communication model, application servers 118 and 120 can communicate with the network via SCS 122 and SCEF 116. It should also be noted that application servers 118 and 120 can communicate directly with SCEF 116.
[0044] The GGSN / P-GW 112 will be referred to as P-GW 112 hereinafter because the bandwidth policing functions performed by the P-GW 112 are of interest to the subject matter described herein. One such function is the regulation of the aggregate maximum bit rate. The aggregate maximum bit rate or AMBR is the bit rate for a particular PDN that is shared among PDN users. Because the bit rate is shared, it is desirable to regulate the bit rate on a per-user basis. One approach for policing the bit rate is on a per-APN, per-UE basis so that each UE and AP combination is allocated a portion of the AMBR, up to a maximum portion. When a UE-APN combination reaches the maximum AMBR, further PDU sessions for that particular UE will be rejected. As will be described in more detail below, the subject matter described herein includes an APN-AMBR regulator that allows PDN sessions for a UE and APN combination to be distributed across multiple P-GW DP worker instances.
[0045] 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 charging records for network usage. The Home Subscriber Server (HSS) 128 stores subscription and location information for UE devices. In one example, the HSS 128 can also be configured with a mapping used by the SCEF 116 or another node to translate the external group ID into an individual IoT device identifier (such as an International Mobile Subscriber Identifier (IMSI)). The Machine Type Communication Authentication Authorization and Accounting (MTC AAA) server 130 performs AAA functions for MTC devices.
[0046] 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 into SMS messages and vice versa. A Short Message Entity (SME) 136 may send and receive SMS messages.
[0047] As mentioned above, one problem with the current P-GW architecture is that, in order to properly police the AGBR limits, all PDN sessions for a particular user and APN combination are required to be assigned to the same P-GW DP Worker instance. Figure 2 illustrates this problem in more detail. Figure 2 In the example shown, 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 users and APN instances for messages or PDN sessions directed to or from a specific PDN 204. P-GW 112 is assigned a service IP address 206, which is used by AP1 105 to contact P-GW 112. In the example shown, two different PDN sessions with non-GBR dedicated bearers and default non-GBR bearers have been established between UE 100 and PDN 204. Each PDN session includes data in both uplink and downlink directions, which must be regulated for AMBR compliance.
[0048] In the example shown, all PDN sessions for UE 100 are handled by P-GW DP worker instance 200. One problem with this architecture is that when P-GW DP worker instance 200 is operating at full rated capacity and handling PDN sessions from a single UE or multiple UEs, new PDN session worker instances 200 for any UE currently being handled by the P-GW DP must be rejected because the 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 capacity. Because there is no AMBR-compliant communication between P-GW DP worker instances, using the current architecture, all PDN sessions for a given UE must be assigned to all P-GW DP worker instances.
[0049] The subject matter described herein provides a solution to this problem by allowing a UE's PDN session towards a single PDN to span across different P-GW DP worker instances.To provide AMBR compliance, an APN-AMBR policer is provided. Figure 3 The figure shows an example of an APN-AMBR policer. Figure 3 In the embodiment of the present invention, the APN-AMBR monitor 300 can 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 monitor 300 maintains uplink and downlink APN-AMBRs for each UE and each APN, i.e., for PDN sessions for a given UE residing on different P-GW DP worker instances. The per-UE, per-APN, and total AMBR used by each UE-APN combination are maintained in a database 302. The APN-AMBR monitor 300 uses a token bucket algorithm to allocate a slice of the APN-AMBR capacity to each P-GW DP worker instance for each UE / APN, as will be described in detail below. The APN-AMBR monitor maintains the used capacity for each UE and APN combination and stores the data in a database 302, which can be an in-memory database or a local cache for faster access.
[0050] As a result of the policing performed by the APN-AMBR policer 300, the APN-AMBR policing logic at each P-GW DP worker instance is simplified, as each P-GW DP worker instance will request an AMBR capacity slice from the APN-AMBR policer 300 and receive a grant from the APN-AMBR policer 300. Each P-GW DP worker instance 200 and 202 will then use the capacity in each grant using a token consumption algorithm, which will be described in detail below. If the current slice of capacity is exhausted, the P-GW DP worker instance will request additional capacity from the APN-AMBR policer 300. If the APN-AMBR policer 300 denies the capacity request, the requesting P-GW DP worker instance will drop the traffic. APN-AMBR policing is seamless when P-GW DP worker instances scale up or down.
[0051] Figure 4 The diagram illustrates the case where a PDN session for a given UE and APN combination is assigned to a different P-GW DP worker instance than other PDN sessions involving the same UE and APN combination. Figure 4 In FIG, PDN Session 1 and PDN Session 2 for APN 1 and UE 1 are assigned to P-GW DP Worker Instance 1 200. An additional PDN session, PDN 3, is assigned to P-GW DP Worker Instance 202. The additional PDN session is for the same UE and APN combination assigned to P-GW DP Worker Instance 1. APN-APN-AMBR policer 300 enforces APN-AMBR for the UE and APN combination for P-GW DP Worker Instance 1 200 and P-GW DP Worker Instance 2 202.
[0052] As described above, in one example, the APN-AMBR policer 300 implements a token bucket algorithm for performing rate limiting policing on at least one of a per-UE, per-PDN session, and per-APN basis. The token bucket algorithm can be implemented for each PDN for each rate limiting window, where the rate limiting window is a time period (such as 1 second) within which the rate limiting capacity of the PDN can be defined using a number of tokens that can be granted during the window. The P-GW DP worker instance can request multiple tokens (1 token per data unit to be transmitted (e.g., 1 token = 100 kbits)) from the APN-AMBR policer 300 during the rate limiting window. The token request algorithm for the P-GW DP worker instance will be described in detail below. APN-AMBR policing can be implemented using two different algorithms. One algorithm uses a fixed window, while the other algorithm uses a sliding window. Figure 5The figure illustrates a fixed window rate policing algorithm that can be implemented by the APN-AMBR policer 300. The fixed window algorithm is applicable to two different configurations. One configuration is a maximum limit configuration, in which if the number of tokens requested causes the APN-AMBR to be exceeded, the request is rejected. The other configuration option is a best effort configuration option, in which if the number of tokens requested in a given window exceeds the number of available tokens, available tokens may be allocated even if they do not fully satisfy the current request. For each token request, the APN-AMBR policer 300 returns the granted tokens based on the algorithm and the time remaining in the current window.
[0053] refer to Figure 5 As shown in the flowchart in FIG, the P-GW DP worker instance may initially or intermittently request a token to process received data for forwarding as a non-GBR bearer. Figure 5 The algorithm shown in Figure 7 runs 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 for the current time interval or whether tokens have already been allocated to the requester during the current time interval. The requester may be identified by a combination of the APN and UE identifier. If no record is found in the lookup in step 502, the request is a new request, and control passes to step 504, where the first window of token allocation for the UE-APN combination begins. The number of previously allocated tokens is set to zero, as the window has just been created, and the previous expiration time is set to the current timestamp plus the window length, i.e., the expiration time of the created window. If a record is found in step 502, the request is a subsequent request to the same requester, and control passes to step 506, where the previously allocated tokens and previous expiration times are loaded.
[0054] In step 508, a determination is made as to 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 processed like a new request. If the previous expiration timer has not expired in step 508, control proceeds to step 510. At step 510, a determination is made as to whether the number of previously allocated tokens plus the number of currently requested tokens exceeds the maximum limit for the UE and APN combination within the 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 plus C-Tokens (currently requested tokens). In step 512, the values of the P-Token and C-Token are stored in database 302. The P-GW DP worker instance can then consume the tokens by forwarding uplink or downlink data on a non-GBR bearer. In one embodiment, one token allows the P-GW DP worker instance to send an operator-configured amount of uplink or downlink data (e.g., one token allows 100 kbits of data to be transmitted). After the P-GW DP worker instance sends a predetermined amount of uplink data or downlink data to the UE via the PDN, the P-GW DP worker instance reduces the number of available tokens.
[0055] Returning to step 510, if the previously allocated tokens plus the currently requested tokens during the time interval exceed the maximum limit, control proceeds to step 512, where a determination is made as to whether best-effort allocation was achieved. As described above, best-effort allocation allows tokens to be allocated even if the number of available tokens is insufficient to satisfy the current request. If best-effort allocation was not achieved, control proceeds to step 516, where the token request is denied, and then to step 512, where the P-Tokens and P-Expiry values are stored in database 302. If best-effort allocation was achieved, control proceeds to step 514, where the remaining tokens are allocated. The number of tokens allocated is equal to the maximum limit minus the previously allocated tokens. Control then proceeds to step 512, where the P-Tokens and P-Expiry values are stored in database 302.
[0056] Figure 510. The diagram illustrates a fixed window token allocation algorithm implemented by the APN-AMBR supervisor 300. As described above, in another example, the token allocation algorithm can utilize a sliding window. In a sliding window approach, the initial and expiration times for a given token allocation window move over time. The tokens within the window are divided into buckets, and each bucket has a start time and a length. When the current timestamp exceeds the end of the bucket (bucket start time plus length), the unused tokens in the bucket expire and can be recycled 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.
[0057] Figure 6 is a flow chart illustrating an exemplary sliding window token bucket algorithm that may be implemented by the APN-AMBR policer 300. Figure 6 , the P-GW DP worker instance initiates or intermittently requests tokens to process uplink or downlink data received by the P-GW DP worker instance for transmission. The request specifies the current timestamp and the number of tokens currently requested. In step 600, the APN-AMBR supervisor 300 performs a lookup in the database 302 to determine whether the request is a new request or an existing request for the time interval. If no database record is located in the lookup, then the request is a new request. Thus, control proceeds from step 602 to step 604, in which the previously allocated token variable (P-Tokens) for the time interval is initialized to zero. Control then proceeds to step 606, in which the variable P-Bucket-Tokens is set to zero and the variable P-Bucket-Start-Timestamp is set to the current timestamp.
[0058] 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, then control proceeds to step 608, where the previously allocated tokens (P-Tokens), variables P-Bucket, P-Tokens, and P-Bucket-Start-Time are initialized to the values located in the record. Control then proceeds to step 610, where it is determined whether the variable P-Bucket-Start-Time is earlier than the current timestamp minus the bucket length. If this is true, then control proceeds 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.
[0059] After step 610, control proceeds to step 613, in which any expired tokens are recovered from the expired bucket and the expired bucket record is removed. From step 613, control proceeds to step 614, in which the tokens recovered from the expired bucket are adjusted to P-Tokens (i.e., P-Tokens = P-Tokens - recovered tokens). Control then proceeds to step 616, in which 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, then tokens are allocated and control proceeds to step 618, in which P-Tokens is set to the previously allocated tokens plus the currently requested tokens. Control then proceeds to step 620, where the values of the variables P-Tokens, P-Bucket, and P-Bucket-Start-Time are stored in database 302.
[0060] Referring to step 616, if the sum of previously allocated tokens and the currently requested tokens exceeds the maximum limit for the time interval, control proceeds to step 622, where it is determined whether a best-effort allocation was achieved. If a best-effort allocation was not achieved, control proceeds to step 624, where the request is denied. If a best-effort allocation was achieved, control proceeds to step 626, where the remaining tokens are allocated to partially satisfy the request. Control then proceeds to step 620, where the values of the P-Token, P-Bucket, and P-Bucket-Start-Time variables are stored in database 302.
[0061] As described above, by implementing rate limiting supervision at the APN-AMBR policer 300 separately from the P-GW DP worker instance, the logic of the P-GW DP worker instance is simplified. Figure 7A and Figure 7BThe diagram illustrates a P-GW DP worker instance token request algorithm that can be implemented by each P-GW DP worker instance. Generally speaking, each P-GW DP worker instance receives uplink or downlink data, determines the number of tokens required to transmit the data, and requests an initial grant of tokens from the APN-AMBR policer 300. For subsequent data received, the P-GW DP worker instance checks whether the number of available tokens is greater than a configurable percentage of granted tokens and forwards the request. For example, in an aggressive token request algorithm, the threshold number can be set to 50% or higher to anticipate last-minute token scarcity. In a less aggressive algorithm, the threshold can be set to a lower percentage, such as 25%, to allow the P-GW DP worker instance to nearly exhaust its token allocation before requesting more tokens. Subsequent token requests can be fixed in size or sequentially increasing, for example, based on the Fibonacci sequence. The P-GW DP worker instance does not need to manage rate-limiting time window traversal. The APN-AMBR policer will provide the remaining time in the current window.
[0062] refer to Figure 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-APN combination, to determine the current number of available tokens, the current number of granted tokens, and the last token request status for a given service instance. Note that the P-GW DP worker instance is not required to know the rate capacity of the service instance or the amount of available capacity being used by other consumers. The database maintained by each P-GW DP worker instance may contain the number of tokens granted to the P-GW DP worker instance by the APN-AMBR supervisor for each service instance and the number of those tokens that have not yet been used.
[0063] In step 702, if no record is found, then this means that the P-GW DP worker instance has not requested any tokens for the service instance (i.e., non-GBR bearer) during the current time interval. Control then proceeds to step 704, in which the P-GW DP worker instance initializes the available tokens for service instance x to 0, initializes the granted tokens for service instance x to 0, sets the remaining window time to 0, and sets the token request status to none pending.
[0064] If a record is found, then this means that the P-GW DP worker instance has already requested a token within the current time interval for the service instance. If a record is found, then control proceeds to step 706, in which the P-GW DP worker instance loads the information located in the lookup. The loaded information includes the service instance's available tokens, the service instance's granted tokens, the remaining window time, and the token request status. In step 708, the P-GW DP worker instance determines whether the available tokens minus one is greater than the configurable percentage of granted tokens referenced above. In other words, if more than half of the existing tokens previously allocated to the service instance have been used in the current time interval, then the P-GW DP worker instance will request a new token. This is an aggressive algorithm, but it prevents service instances from starving.
[0065] If the available tokens minus one is greater than the configurable percentage of tokens granted, then no new token is needed and control passes to step 710 where uplink or downlink data is forwarded to the PDN or UE and the available tokens variable is decremented to indicate that one token is used to satisfy the data transmission.
[0066] If the number of available tokens minus one is not greater than the configurable percentage of granted tokens, control proceeds to step 712, where the P-GW DP worker instance determines whether there are pending token requests for the current time interval. If there are pending token requests, control proceeds to step 714, where it is determined whether there is any remaining time in the current window. If there is no remaining time in the current window, the P-GW DP worker instance discards the token request in step 716. If there is remaining time in the current window, control proceeds to step 718, where the P-GW DP worker instance determines whether there are any 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 determines the status of the pending token requests. If there are token status requests, control proceeds to step 722, where the requests are queued and the P-GW DP worker instance awaits a response from the APN-AMBR policer. If there is no pending token request, control passes to step 716 where the current request is discarded.
[0067] In step 712, if there are no pending token requests and the number of available tokens is less than half of the granted tokens, then control proceeds to step 724 where the P-GW DP worker instance requests a token from the APN-AMBR supervisor and marks the pending token status request variable as pending.
[0068] Figure 7B The token request algorithm is shown in Figure 1. Figure 7B In step 726, if the number of available tokens is not equal to zero, control passes to step 728, in which the P-GW DP worker instance requests a grant of y tokens from the APN-AMBR supervisor, where y is a configurable value. In step 730, the P-GW DP worker instance receives a grant for the time remaining in the current window. In step 732, the P-GW DP worker instance sets the available tokens to the current number of available tokens plus the grant. The granted tokens variable is set to the number of tokens in the grant. The window remaining time variable is set to the time remaining in the current window, and the token request status is set to no pending requests.
[0069] In step 726, if the number of available tokens is equal to 0, control passes to step 734, in which the P-GW DP worker instance queries the APN-AMBR policer for an initial grant of w tokens, where w is a configurable value. Setting w to a large value can facilitate servicing the initial message burst. In step 736, the P-GW DP worker instance waits for a grant from the APN-AMBR policer. If a grant occurs in step 730, control passes to step 732, in which the P-GW DP worker instance updates its variables to reflect the token grant.
[0070] Figure 8 is a flow chart illustrating an exemplary overall process for enforcing APN-AMBR using an APN-AMBR policer. Figure 8 In step 800, the first P-GW DP worker instance receives uplink or downlink data for transmission via a non-GBR bearer. For example, the P-GW DP worker instance 200 may receive uplink data from a UE for transmission to a PDN via a non-GBR bearer, or receive downlink data from a PDN for transmission to a UE via a non-GBR bearer.
[0071] In step 802, the process includes, at a first P-GW DP worker instance, requesting capacity from the APN-AMBR supervisor. For example, the P-GW DP worker instance 200 may request a token allocation from the APN-AMBR supervisor 300 that corresponds to the amount of uplink or downlink data that the P-GW DP worker instance has received for transmission.
[0072] In step 804, the process includes, at the APN-AMBR policer, maintaining a record of APN-AMBR capacity across multiple different P-GW DP worker instances and granting a 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 token is available for a UE-APN combination for a given time interval because the configured limit of APN-AMBR available for the UE-APN combination has not been reached. In this case, the APN-AMBR policer 300 may issue a grant of the token to the P-GW DP worker instance 200. It should be noted that for cases where a UE-APN combination has PDN sessions handled by different P-GW DP worker instances, the APN-AMBR policer 300 maintains a record of the used APN-AMBR capacity across multiple P-GW DP worker instances. This is one of the advantages of the subject matter described herein, as rate limit policing can be performed without assigning all PDN sessions for a given UE-APN combination to the same P-GW DP worker instance. For situations where PDN sessions for the same UE-APN combination are assigned to different P-GW DP worker instances, the APN-AMBR policer 300 will update the used capacity whenever a token is granted to any PDN session. In addition, 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 limits across PDN sessions for different UEs, even when the PDN sessions for different UEs are assigned to different P-GW DP worker instances.
[0073] The following example illustrates the functionality and advantages of the subject matter described herein. Assume that the APN-AMBR for a domain-specific APN is 100 mbps. The APN-AMBR is an aggregate measurement of the total capacity that can be used by non-GBR bearers of all UEs connected to the PDN through a given AP. In one example, the APN-AMBR regulator described herein can maintain the capacity of 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 through a given access point. Table 1 shown below is an example of a record that the APN-AMBR regulator can maintain in database 302 in this case:
[0074]
[0075]
[0076] Table 1: Example APN-AMBR Policing Records In Table 1, the APN-AMBR policer 300 stores a single record for each UE-APN combination and may store in each record or calculate based on the data in each record the total amount of AMBR capacity used by each UE-APN combination, each PDN session, and each direction. The APN-AMBR policer 300 may also store in each record the maximum APN-AMBR allocation for each UE-APN combination.
[0077] The APN-AMBR policer 300 can use the data in Table 1 to police AMBR at the APN, UE, PDN session, and / or traffic direction level. For example, in Table 1, the combination UE1-APN1 is allocated an APN-AMBR of 50 Mbps for each of the uplink and downlink directions. The currently used uplink AMBR capacity is 10 Mbps + 5 Mbps = 15 Mbps, which means that UE1 has 50 Mbps - 15 Mbps = 35 Mbps of additional capacity available. In this way, the APN-AMBR policer can ensure that the total bandwidth used by the two sessions does not exceed the portion or slice of the APN-AMBR allocated to each UE-APN combination. The same advantages can be achieved if PDN sessions for different UEs over the same APN are handled by different P-GW DP worker instances. For example, assume that UE1 and UE2 are both connected to PDN1 via AP1, are handled by different P-GW DP worker instances, and have an APN-AMBR of 100 Mbps. In this example, UE1 and UE2 each have access to their respective APN-AMBR share (eg, 50 mbps each), and the APN-AMBR policer 300 can police the bandwidth used by both sessions to ensure that the APN-AMBR is not exceeded.
[0078] Return to Figure 8 In step 806, the process includes, at the first P-GW DP worker instance, receiving a slice of the 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 token grant from the APN-AMBR policer 300 and consume the token to transmit the received uplink or downlink data.
[0079] Using the APN-AMBR policer, uplink and downlink traffic passing through the P-GW data plane can be handled more efficiently. The algorithms implemented by the P-GW DP worker instance are simplified because the worker instance is not required to perform policing or track the bandwidth used by PDN sessions assigned to another P-GW DP worker instance. Furthermore, PDN sessions for the same APN can be flexibly assigned across P-GW DP worker instances. Furthermore, the uplink and downlink bandwidth provided to PDN sessions for a specific APN is not limited to the rated capacity of the P-GW DP worker instance.
[0080] The disclosure of each of the following references is incorporated herein by reference in its entirety.
[0081] refer to
[0082] 1.3GPP TS 24.301; 3rd Generation Partnership Project; Technical Specification Group Core Network and Terminals; Non-Access Stratum (NAS) protocol for Evolved Packet System (EPS); Phase 3; (Release 17) V17.0.0 (September 2020).
[0083] 2.3GPP TS 23.682, 3rd Generation Partnership Project; Technical Specification Group Services and System Aspects; Architecture enhancements to facilitate communications with packet data networks and applications (Release 16), V16.8.0 (2020-09).
[0084] It should be understood that various details of the subject matter described herein can be changed without departing from the scope of the subject matter described herein. Furthermore, the foregoing description is for the purpose of illustration only, and not for the purpose of limitation, as the subject matter described herein is defined by the claims set forth below.
Claims
1. A method for regulating an Access Point Name Aggregate Maximum Bit Rate (APN-AMBR), the method comprising: At a packet data network (PDN) gateway (P-GW) comprising at least one processor and a plurality of P-GW data plane (DP) worker instances implemented by the at least one processor: receiving, from a first user equipment (UE) via an access point (AP), uplink data to be transmitted on a non-guaranteed bit rate (non-GBR) bearer associated with a first PDN session or downlink data to be transmitted to the first UE via the AP on a non-GBR bearer; forwarding uplink or downlink data to a first P-GW DP worker instance assigned to the PDN session among the plurality of P-GW DP worker instances; transmitting, at the first P-GW DP worker instance, to an APN-AMBR policer separate from the P-GW, a request for a slice of APN-AMBR capacity for processing uplink or downlink data; At 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 The request is granted or rejected based on the APN-AMBR capacity used by the PDN sessions assigned to different ones of the P-GW DP worker instances.
2. The method of claim 1 , wherein the grant or rejection request comprises a grant request, and further comprising transmitting, at the APN-AMBR supervisor, 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 uplink or downlink data.
3. The method of claim 1 or claim 2, wherein maintaining a record of the APN-AMBR capacity used by the UE comprises maintaining a record of the APN-AMBR capacity used by the PDN sessions of the first UE assigned to different worker instances in the P-GW DP worker instance.
4. The method of any of the preceding claims, wherein maintaining a record of the APN-AMBR capacity used by the UE comprises maintaining a record of the APN-AMBR capacity used by different PDN sessions of different UEs assigned to different worker instances in the P-GW DP worker instance.
5. A method as claimed in any one of the preceding claims, wherein transmitting a request for a slice of the APN-AMBR capacity comprises requesting an allocation of a token from an APN-AMBR regulator to process at least some of the uplink or downlink data.
6. The method of claim 5, wherein requesting allocation of a token comprises requesting allocation of a token in response to a percentage of granted tokens available to the first P-GW DP worker instance being less than a threshold amount.
7. The method of claim 5 or claim 6, comprising maintaining, at an APN-AMBR supervisor, a maximum limit on tokens that can be allocated in a time interval for multiple UE-APN combinations and granting or rejecting a request for token allocation based on whether the number of tokens requested in the request for token allocation would cause the maximum limit on tokens to be exceeded, and the maximum limit on tokens is based on the APN-AMBR.
8. A method as claimed in any one of claims 5 to 7, comprising implementing a fixed or sliding window during which a token can be granted.
9. The method of any one of claims 5 to 8, wherein granting or denying the request comprises implementing a best-effort token allocation, wherein if the number of tokens requested by the first P-GW DP worker instance during a time interval would cause a maximum allocated tokens during the time interval to be exceeded, then granting a remainder of the available tokens that would not cause the maximum limit of tokens to be exceeded for the time interval.
10. The method of any one of claims 5 to 8, wherein granting or denying a request comprises implementing a maximum limit token allocation by denying a request for token allocation if the requested number of tokens would cause a maximum limit of tokens to be exceeded.
11. A system for regulating Access Point Name Aggregate Maximum Bit Rate (APN-AMBR), the system comprising: a packet data network (PDN) gateway (P-GW) comprising at least one processor and a plurality of P-GW data plane (DP) worker instances implemented by the at least one processor, wherein the P-GW is configured to receive uplink data to be transmitted on a non-guaranteed bit rate (non-GBR) bearer associated with a first PDN session from a first user equipment (UE) via an access point (AP) or downlink data to be transmitted to the first UE on a non-GBR bearer via the AP, forward the uplink or downlink data to a first P-GW DP worker instance assigned to the PDN session among the plurality of P-GW DP worker instances, and the first P-GW DP worker instance is configured to request a slice of APN-AMBR capacity to process the uplink or downlink data; as well as An APN-AMBR regulator configured to maintain a record of APN-AMBR capacity used by UEs having PDN sessions assigned to different ones of the P-GW DP worker instances, and to grant or reject requests based on the APN-AMBR capacity used by PDN sessions assigned to different ones of the P-GW DP worker instances.
12. The system of claim 11, wherein the APN-AMBR supervisor is configured to grant the request, transmit a notification of the grant to the first P-GW DP worker instance, and wherein the first P-GW DP worker instance is configured to receive the notification of the grant and consume a slice of the APN-AMBR capacity represented by the grant by transmitting uplink or downlink data.
13. The system of claim 11 or claim 12, wherein the APN-AMBR policer is configured to maintain a record of APN-AMBR capacity used by PDN sessions of the first UE assigned to different ones of the P-GW DP worker instances.
14. The system of any one of claims 11 to 13, wherein the APN-AMBR policer is configured to maintain a record of APN-AMBR capacity used by different PDN sessions of different UEs assigned to different ones of the P-GW DP worker instances.
15. The system of any one of claims 11 to 14, wherein the first P-GW DP worker instance is configured to request a slice of the APN-AMBR capacity to process at least some of the uplink or downlink data by requesting a token allocation from an APN-AMBR governor.
16. The system of claim 15, the first P-GW DP worker instance configured to request allocation of a token in response to a percentage of granted tokens available to the first P-GW DP worker instance being less than a threshold amount.
17. A system as claimed in claim 15 or claim 16, wherein the APN-AMBR policer is configured to maintain a maximum limit on tokens that can be allocated in a time interval and to grant or deny requests for token allocation based on whether the number of tokens requested in the request for token allocation would cause the maximum limit on tokens to be exceeded, and the maximum limit on tokens is based on the APN-AMBR.
18. The system of any one of claims 15 to 17, wherein the APN-AMBR policer is configured to implement best effort token allocation, wherein if the number of tokens requested by the first P-GW DP worker instance during a time interval would cause the maximum allocated tokens during the time interval to be exceeded, then a remainder of the available tokens that would not cause the maximum limit of tokens to be exceeded for the time interval is granted, and the maximum limit of tokens is based on the APN-AMBR.
19. The system of any one of claims 15 to 17, wherein the APN-AMBR policer is configured to implement a maximum limit token allocation by rejecting a request for token allocation if the requested number of tokens would cause a maximum limit of tokens to be exceeded, and the maximum limit is based on the APN-AMBR.
20. A non-transitory computer-readable medium having executable instructions stored thereon, the executable instructions, when executed by at least one processor of at least one computer, controlling the at least one computer to perform steps comprising: At a Packet Data Network (PDN) Gateway (P-GW) comprising multiple P-GW Data Plane (DP) worker instances: receiving, from a first user equipment (UE) via an access point (AP), uplink data to be transmitted on a non-guaranteed bit rate (non-GBR) bearer associated with a first PDN session or downlink data to be transmitted to the first UE via the AP on a non-GBR bearer; forwarding uplink or downlink data to a first P-GW DP worker instance assigned to the PDN session among the plurality of P-GW DP worker instances; transmitting, at the first P-GW DP worker instance, to an APN-AMBR policer separate from the P-GW, a request for a slice of APN-AMBR capacity for processing uplink or downlink data; At 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 The request is granted or rejected based on the APN-AMBR capacity used by the PDN sessions assigned to different ones of the P-GW DP worker instances.
Citation Information
Patent Citations
Systems and Methods for Traffic Policing
US20130272123A1
Method and device for throttling bandwidth of access point
WO2017143915A1