Patent Description:
Therefore, the approaches described in this section may not be prior art to the claims in this application and are not admitted prior art by inclusion in this section.

A User Plane Function (UPF) performs operations such as packet routing and forwarding, packet inspection, maintaining an internet protocol (IP) session, policy enforcement, and quality of service (QoS) handling Examples of these can be found in <CIT>, <CIT>, <CIT> and <CIT>.

In a user plane infrastructure, there may be a requirement to implement bandwidth limits amongst a group of users. For example, a retail chain enterprise may wish to limit a total bandwidth of all employees collectively to not exceed a limit of X megabits per second (Mbps). In another example, a communication service provider (CSP) may set up a telecom infrastructure spread across different regions, which also consists of multiple UPFs that enable many private players/enterprises to use services and use a maximum bandwidth of X Mbps amongst all its users connected via the multiple UPFs.

A grouping of users and identification of enterprises is done using the concept of APN (Access Point Name) or DNN (Data Network Name).

To enable the CSP to implement maximum bandwidth limits of a group (APN/DNN) where there are multiple UPFs serving one group (APN/DNN), each UPF in the infrastructure needs to be aware of the current maximum bandwidth values of all the other UPFs of a group (APN/DNN) to be able to limit the bandwidth of the group to one configured value. For example, the CSP may configure the maximum bandwidth access of all users accessing data using the APN "XYZ Corp" amongst all the UPFs should be under <NUM> Mbps, which means the total of bandwidth across all the UPFs amongst all users of the APN should be under <NUM> Mbps. Enabling each UPF in the infrastructure aware of the total bandwidth consumption across all UPFs for a group (APN/DNN) shall enrich UPF to make a decision on how much more bandwidth is left over to be allowed based on the maximum bandwidth configured.

When such a use case as mentioned above is needed to be implemented by a CSP, and if access to the network for a particular group (APN / DNN) is handled by different UPFs available in the network, each UPF would be agnostic on what is the current bandwidth utilization of that group in other multiple UPFs. This situation would push the CSP to implement only one UPF for a group, thus restricting flexibility, and in scenarios where multiple UPFs are needed to be implemented in the network, this use case would not be feasible to be deployed by the CSP.

The present document discloses a solution to share the bandwidth occupancy of each UPF instance to all the UPF nodes in a network serving a specific group (APN/DNN). This enables all UPF instances to be aware of the current total bandwidth consumed by all users in a particular APN/DNN across all UPF instances, and act accordingly. Acting accordingly may include dropping packets, prioritizing packets, etc. A CSP may choose to implement this feature or use case to all the groups (APN/DNNs) or only to certain APN/DNNs. Hence only for the needed APN/DNNs, this bandwidth utilization information exchange can be implemented at multiple UPFs serving those corresponding APN/DNNs.

The solution is not only applicable to APN/DNN-based groupings, but applicable to any alternate nomenclatures used to group the access. The solution is a UPF self-contained proposal, and there is no dependency on a control plane (CP) function to implement the same.

There is provided a method according to claim <NUM> for sharing bandwidth consumption information in a communication system having a first UPF that serves an APN, a second UPF that serves the APN, and a third UPF that serves the APN. The method includes (a) receiving by the first UPF from the second UPF, information indicating a current bandwidth being consumed by the second UPF for the APN, (b) receiving by the first UPF from the third UPF, information indicating a current bandwidth being consumed by the third UPF for the APN, (c) sending from the first UPF to the second UPF, information indicating a current bandwidth being consumed by the first UPF for the APN and the current bandwidth being consumed by the third UPF for the APN, and (d) sending from the first UPF to the third UPF, information indicating the current bandwidth being consumed by the first UPF for the APN and the current bandwidth being consumed by the second UPF for the APN. Each of the first UPF, the second UPF and the third UPF is thus aware of a total current bandwidth being consumed by the first UPF, the second UPF and the third UPF for the APN.

A component or a feature that is common to more than one drawing is indicated with the same reference number in each of the drawings.

<FIG> is a block diagram of a communication system, namely system <NUM>, that shares among its UPFs, APN total bandwidth limits. System <NUM> includes a CSP <NUM>, a network <NUM>, and UPFs <NUM>, <NUM> and <NUM>. UPFs <NUM>, <NUM> and <NUM> are collectively referred to as UPFs <NUM>.

Network <NUM> is a data network. CSP <NUM> maintains network <NUM>. UPFs <NUM> perform operations in network <NUM>, as described below.

Although system <NUM> is shown as having three UPFs, namely UPFs, <NUM>, <NUM> and <NUM>, in practice, network <NUM> may contain any number of UPFs.

<FIG> is a block diagram of an example in which UPFs <NUM> are serving APNs <NUM> and <NUM>, and in which user equipment (UEs) <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM> and <NUM> are accessing data services at various bandwidth speeds measured in Mbps.

APN <NUM> is being served by UPF <NUM>, UPF <NUM> and UPF <NUM>. An example of APN <NUM> could be an enterprise called XYZ Corp that has a contract with CSP <NUM> to use a maximum of X Mbps amongst all of XYZ Corp's users (i.e., delivery agents of the group). In this example, the connected users of XYZ Corp are (UEs) <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM> and <NUM>.

UPF <NUM>, through APN <NUM>, is serving UE <NUM>, UE <NUM> and UE <NUM>. In other words, each of UE <NUM>, UE <NUM> and UE <NUM> is accessing data services through APN <NUM> connected through UPF <NUM>. At a given instance of time, UE <NUM> is accessing at a speed of <NUM> Mbps, UE <NUM> at a speed of <NUM> Mbps, and UE <NUM> at a speed of <NUM> Mbps.

UPF <NUM>, through APN <NUM>, is serving UE <NUM> and UE <NUM>. Both of UE <NUM> and <NUM> are accessing at a speed of <NUM> Mbps.

UPF <NUM>, through APN <NUM>, is serving UE <NUM> and UE <NUM>. Both of UE <NUM> and UE <NUM> are accessing at a speed of <NUM> Mbps.

Additionally, UPF <NUM>, through APN <NUM>, is serving UE <NUM>, and UE <NUM> is accessing at a speed of <NUM> Mbps, represented by reference <NUM>.

<FIG> is a signal flow diagram of a process of sharing of total bandwidth consumption per APN/DNN among UPFs <NUM> for the example in <FIG>.

Using any leader election method, one of UPFs <NUM> would be nominated as a delegator. Assume that UPF <NUM> is nominated as the delegator. In a case of a failure of the delegator, an alternate delegator, e.g., UPF <NUM>, shall be elected.

UPFs <NUM> communicate with one another by way of signaling messages through network <NUM>.

In operation <NUM>, UPF <NUM> shares its current bandwidth consumption for APN <NUM>, to UPF <NUM>, i.e., the delegator. In the present example, UPF <NUM>'s current bandwidth consumption for APN <NUM> is <NUM> Mbps, i.e., reference <NUM>.

In operation <NUM>, UPF <NUM> shares current bandwidth consumption for APN <NUM> of UPF <NUM> and UPF <NUM> individually, to UPF <NUM>. In the present example, current bandwidth consumption for APN <NUM> of UPF <NUM> and UPF <NUM> is <NUM> Mbps (reference <NUM>) and <NUM> Mbps (reference <NUM>), respectively.

In the present example, UPF <NUM> has shared the current bandwidth consumption for APN <NUM> of UPF <NUM> and UPF <NUM> to UPF <NUM>, and also shared the current bandwidth consumption of UPF <NUM> and UPF <NUM> to UPF <NUM>. Thus, UPF <NUM>, i.e., the delegator, has shared current bandwidth consumption for APN <NUM> of all the UPFs to each of the peer UPFs.

As shown at block <NUM>, all UPFs <NUM> are aware of the total current bandwidth consumption for APN <NUM>, (i.e., reference <NUM> + reference <NUM> + reference <NUM>). More generally, all UPFs <NUM> will be made aware of the total current bandwidth consumption for APN <NUM> irrespective of how many UPFs are serving APN <NUM>.

Operations <NUM>, <NUM>, <NUM> and <NUM> are repeated periodically, every calendar <NUM> seconds (for example, <NUM>th second of the day, <NUM>th second of the day, <NUM>th second of the day, <NUM>th second of the day and so on till <NUM>,<NUM>th second of the day and so on next day) so that all the UPFs serving a specific APN aware of the current total bandwidth consumption for that APN. Thus, operations <NUM>, <NUM>, <NUM> and <NUM> are repeated periodically, e.g., every <NUM> seconds. Periodicity can be adjusted based on the implementation dependency and the accuracy needed.

Each of UPFs <NUM> is aware of the total bandwidth consumption for APN <NUM> across all UPFs <NUM>, and can compare the total bandwidth consumption to the bandwidth limit, i.e., a threshold value. If the bandwidth limit is exceeded, each of UPFs <NUM> shall carry out a configured action, i.e., a programmed action, such as a drop of additional packets, for example. Thus, UPFs <NUM>, collectively, can enforce a configured maximum bandwidth limit for APN <NUM>.

As illustrated in <FIG>, the sharing of bandwidth consumption of each UPF with lesser number of signaling message exchanges across all the UPFs serving an APN enables the UPFs to implement APN/DNN total bandwidth per APN/DNN across the CSP's UPFs. This method causes less signaling as the elected delegator carries out broadcast to all other UPFs rather than each UPF talking to every other UPF in terms of receiving and sending each of the bandwidth consumption.

Each of UPF <NUM>, UPF <NUM> and UPF <NUM> is implemented in a device that includes electronic circuitry that performs operations to execute methods or processes described herein. The circuity may be implemented with any or all of (a) discrete electronic components, (b) firmware, or (c) a programmable circuit that includes a processor and a memory. Such a processor is an electronic device configured of logic circuitry that responds to and executes instructions. Such a memory is a tangible, non-transitory, computer-readable storage device encoded with a computer program. In this regard, the memory stores data and instructions, i.e., program code, that are readable and executable by the processor for controlling operations of the processor. The memory may be implemented in a random-access memory (RAM), a hard drive, a read only memory (ROM), or a combination thereof.

Such a processor and memory may be implemented in a computer. The computer can be a standalone device or coupled to other devices in a distributed processing system.

Additionally, the program code may be configured on a storage device for subsequent loading into the memory. Such a storage device is a tangible, non-transitory, computer-readable storage device, and examples include (a) a compact disk, (b) a magnetic tape, (c) a read only memory, (d) an optical storage medium, (e) a hard drive, (f) a memory unit consisting of multiple parallel hard drives, (g) a universal serial bus (USB) flash drive, (h) a random-access memory, and (i) an electronic storage device coupled to devices upon which UPF <NUM>, UPF <NUM> and UPF <NUM> are implemented, via network <NUM>.

The program code may be configured in one or more modules. The term "module" is used herein to denote a functional operation that may be embodied either as a stand-alone component or as an integrated configuration of a plurality of subordinate components. Thus, a module may be implemented as a single module or as a plurality of sub-ordinate modules that operate in cooperation with one another.

Although network <NUM> is shown as having three UPFs, in practice, network <NUM> may contain any number of UPFs, and there may be any number of APNs and UEs. Moreover, in a case of multiple APNs, each APN can have its own bandwidth limit.

The present disclosure relates to any 3GPP release versions or generations, and relates more particularly to accessing of data by various users using an Access Point Name (APN) or Data Network Name (DNN) in the data networks. This disclosure inherently covers fixed broadband and Wi-Fi Access networks as well.

Claim 1:
A method for sharing bandwidth consumption information in a communication system having a first user plane function, UPF (<NUM>), that serves an access point name, APN (<NUM>), a second UPF (<NUM>) that serves said APN, and a third UPF (<NUM>) that serves said APN, wherein said method comprises:
receiving by said first UPF from said second UPF, information indicating a current bandwidth being consumed by said second UPF for said APN;
receiving by said first UPF from said third UPF, information indicating a current bandwidth being consumed by said third UPF for said APN;
sending from said first UPF to said second UPF, information indicating a current bandwidth being consumed by said first UPF for said APN and said current bandwidth being consumed by said third UPF for said APN; and
sending from said first UPF to said third UPF, information indicating said current bandwidth being consumed by said first UPF for said APN and said current bandwidth being consumed by said second UPF for said APN,
whereby each of said first UPF, said second UPF and said third UPF is thus aware of a total current bandwidth being consumed by said first UPF, said second UPF and said third UPF for said APN.