System and method for cooperatively controlling an application

09838893 · 2017-12-05

Assignee

Inventors

Cpc classification

International classification

Abstract

The cooperative controlling of an operation of an application that is used by a user equipment is implemented in a wireless network by obtaining scheduled shared resource rate information and channel condition information for bearers sharing network resources. User equipment policies for the user equipment associated with the bearers can be performed based on the scheduled shared resource rate information, the channel condition information, and available video rate information in order to invoke throughput restrictions for the user equipment. The user equipment policies can be used by application functions to cooperatively control the operation of applications among a number of user equipments.

Claims

1. A method of cooperatively controlling an operation of an application in a wireless network, comprising: obtaining, by one or more processors of at least one network node, scheduled shared resource rate information and channel condition information for bearers sharing network resources, wherein the channel condition information includes an average number of useful bits per physical resource block (PRB), the useful bits being a number of data bits that are not retransmitted bits; receiving, by the one or more processors, available video rate information from one or more application functions associated with the bearers; computing, by the one or more processors, user equipment (UE) policies for user equipments (UEs) associated with the bearers based on the scheduled shared resource rate information, the channel condition information, and the available video rate information, the UE policies including throughput restrictions for the UEs; and exporting, by the one or more processors, the UE policies to the one or more application functions to cooperatively control an operation of an application being used by at least one of the UEs.

2. The method of claim 1, further comprising: ordering the UEs based on a channel condition metric derived from the channel condition information; and invoking admission controls for the UEs using the channel condition metric and the ordering of the UEs.

3. The method of claim 2, wherein, the invoking of admission controls includes admitting a first subset of the UEs to receive application services if a sum of an average aggregate value of the scheduled shared resource rate required to support playing videos with a minimal available video rate does not exceed an average aggregate rate of available network resources, wherein the average aggregate rate of available network resources includes a configurable margin factor, higher values of the channel condition metric correspond with better channel conditions.

4. The method of claim 1, wherein the scheduled shared resource rate information is an average aggregate physical resource block (PRB) rate that includes an average number of physical resource blocks (PRBs) expected to be allocated to all bearers carrying hypertext transfer protocol adaptive streaming (HAS) application traffic.

5. The method of claim 1, wherein the receiving of the available video rate information includes receiving hypertext transfer protocol adaptive streaming (HAS) video rates from one of a HAS client and a HAS network content server associated with the one or more application functions associated with the bearers.

6. The method of claim 1, wherein the computing of the UE policies includes calculating per UE tuples indicating the throughput restrictions for the UEs.

7. The method of claim 6, wherein the throughput restrictions include a maximal allowed video bitrate and a maximal allowed throughput for the UEs.

8. The method of claim 3, wherein the computing of the UE policies includes maximizing a Quality of Experience (QoE) utility function for the first subset of UEs.

9. A non-transitory computer readable medium having a program including instructions to perform the method of claim 1.

10. At least one network node, comprising: one or more processors configured to, obtain scheduled shared resource rate information and channel condition information for bearers sharing network resources, wherein the channel condition information includes an average number of useful bits per physical resource block (PRB), the useful bits being a number of data bits that are not retransmitted bits, receive available video rate information from one or more application functions associated with the bearers, compute user equipment (UE) policies for user equipments (UEs) associated with the bearers based on the scheduled shared resource rate information, the channel condition information, and the available video rate information, the UE policies including throughput restrictions for the UEs, and export the UE policies to the one or more application functions to cooperatively control an operation of an application being used by at least one of the UEs.

11. The at least one network node of claim 10, wherein the one or more processors is further configured to, order the UEs based on a channel condition metric derived from the channel condition information, and invoke admission controls for the UEs using the channel condition metric and the ordering of the UEs.

12. The at least one network node of claim 11, wherein the one or more processors invokes the admission controls by admitting a first subset of the UEs to receive application services if a sum of an average aggregate value of the scheduled shared resource rate required to support playing videos with a minimal available video rate does not exceed an average aggregate rate of available resources, wherein the average aggregate rate of available resources includes a configurable margin factor, wherein higher values of the channel condition metric correspond with better channel conditions.

13. The at least one network node of claim 10, wherein the scheduled shared resource rate information is an average aggregate physical resource block (PRB) rate that includes an average number of physical resource blocks (PRBs) expected to be allocated to all bearers carrying hypertext transfer protocol adaptive streaming (HAS) application traffic.

14. The at least one network node of claim 10, wherein the one or more processors receives the available video rate information by receiving hypertext transfer protocol adaptive streaming (HAS) video rates from one of a HAS client and a HAS network content server associated with the one or more application functions associated with the bearers.

15. The at least one network node of claim 10, wherein the one or more processors computes the UE policies by calculating per UE tuples indicating the throughput restrictions for the UEs.

16. The at least one network node of claim 15, wherein the throughput restrictions include a maximal allowed video bitrate and a maximal allowed throughput for the UEs.

17. The at least one network node of claim 12, wherein the one or more processors computes the UE policies by maximizing a Quality of Experience (QoE) utility function for the first subset of UEs.

18. The at least one network node of claim 16, wherein the one or more processors is further configured to calculate a minimal delay before requesting a next video segment based on the maximal allowed video bitrate.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

(1) The above and other features and advantages of example embodiments will become more apparent by describing in detail, example embodiments with reference to the attached drawings. The accompanying drawings are intended to depict example embodiments and should not be interpreted to limit the intended scope of the claims. The accompanying drawings are not to be considered as drawn to scale unless explicitly noted.

(2) FIG. 1 illustrates a conventional 3.sup.rd Generation Partnership Project Long-Term Evolution (3GPP LTE) network;

(3) FIG. 2 is a diagram of a conventional E-UTRAN Node B (eNB);

(4) FIG. 3 is a graphical depiction of a simulation result for a conventional wireless network with hypertext transfer protocol adaptive streaming (HAS) clients being served during a network congestion time period;

(5) FIG. 4 graphically depicts the HAS clients being served over an extended period of time in the conventional wireless network simulation of FIG. 3;

(6) FIG. 5 illustrates a reconfigured 3GPP LTE network, in accordance with an example embodiment;

(7) FIG. 6 illustrates a reconfigured E-UTRAN Node B (eNB), in accordance with an example embodiment;

(8) FIG. 7 illustrates a Network Insights Function (NIF) server, in accordance with an example embodiment;

(9) FIG. 8 is a method flowchart describing a method of cooperatively controlling an operation of an application in a wireless network, in accordance with an example embodiment; and

(10) FIG. 9 graphically depicts HAS clients being served in a reconfigured wireless network, in accordance with an example embodiment.

DETAILED DESCRIPTION

(11) While example embodiments are capable of various modifications and alternative forms, embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that there is no intent to limit example embodiments to the particular forms disclosed, but on the contrary, example embodiments are to cover all modifications, equivalents, and alternatives falling within the scope of the claims Like numbers refer to like elements throughout the description of the figures.

(12) Before discussing example embodiments in more detail, it is noted that some example embodiments are described as processes or methods depicted as flowcharts. Although the flowcharts describe the operations as sequential processes, many of the operations may be performed in parallel, concurrently or simultaneously. In addition, the order of operations may be re-arranged. The processes may be terminated when their operations are completed, but may also have additional steps not included in the figure. The processes may correspond to methods, functions, procedures, subroutines, subprograms, etc.

(13) Methods discussed below, some of which are illustrated by the flow charts, may be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware or microcode, field programmable gate array (FPGAs), application specific integration circuit (ASICs), the program code or code segments to perform the necessary tasks may be stored in a machine or computer readable medium such as a storage medium, such as a non-transitory storage medium. A processor(s) may perform these necessary tasks.

(14) Specific structural and functional details disclosed herein are merely representative for purposes of describing example embodiments. This invention may, however, be embodied in many alternate forms and should not be construed as limited to only the embodiments set forth herein.

(15) It will be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first element could be termed a second element, and, similarly, a second element could be termed a first element, without departing from the scope of example embodiments. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items.

(16) It will be understood that when an element is referred to as being “connected” or “coupled” to another element, it can be directly connected or coupled to the other element or intervening elements may be present. In contrast, when an element is referred to as being “directly connected” or “directly coupled” to another element, there are no intervening elements present. Other words used to describe the relationship between elements should be interpreted in a like fashion (e.g., “between” versus “directly between,” “adjacent” versus “directly adjacent,” etc.).

(17) The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of example embodiments. As used herein, the singular forms “a,” “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises,” “comprising,” “includes” and/or “including,” when used herein, specify the presence of stated features, integers, steps, operations, elements and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components and/or groups thereof.

(18) It should also be noted that in some alternative implementations, the functions/acts noted may occur out of the order noted in the figures. For example, two figures shown in succession may in fact be executed concurrently or may sometimes be executed in the reverse order, depending upon the functionality/acts involved.

(19) Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which example embodiments belong. It will be further understood that terms, e.g., those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.

(20) Portions of the example embodiments and corresponding detailed description are presented in terms of software, or algorithms and symbolic representations of operation on data bits within a computer memory. These descriptions and representations are the ones by which those of ordinary skill in the art effectively convey the substance of their work to others of ordinary skill in the art. An algorithm, as the term is used here, and as it is used generally, is conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of optical, electrical, or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.

(21) In the following description, illustrative embodiments will be described with reference to acts and symbolic representations of operations (e.g., in the form of flowcharts) that may be implemented as program modules or functional processes include routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types and may be implemented using existing hardware at existing network elements. Such existing hardware may include one or more Central Processing Units (CPUs), digital signal processors (DSPs), application-specific-integrated-circuits, field programmable gate arrays (FPGAs) computers or the like.

(22) It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise, or as is apparent from the discussion, terms such as “processing” or “computing” or “calculating” or “determining” of “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical, electronic quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.

(23) Note also that the software implemented aspects of the example embodiments are typically encoded on some form of program storage medium or implemented over some type of transmission medium. The program storage medium may be any non-transitory storage medium such as magnetic (e.g., a floppy disk or a hard drive) or optical (e.g., a compact disk read only memory, or “CD ROM”), and may be read only or random access. Similarly, the transmission medium may be twisted wire pairs, coaxial cable, optical fiber, or some other suitable transmission medium known to the art. The example embodiments not limited by these aspects of any given implementation.

(24) Basic Methodology:

(25) At least one example embodiment may relate to a method for calculating a HAS application level admission control and a resource consumption policy using LTE RAN metrics. The policy may then communicated to a HAS application function, where the policy may be used to influence application function adaptive streaming rate selection decisions and pacing for next segment requests, which allows HAS applications utilizing Best Effort Wireless connections under congestion conditions to cooperate and maximize an effectiveness of available RAN resources.

(26) The method may be implemented using Best Effort wireless application traffic, without making modifications to the wireless RAN scheduler. The method may utilize a Network Insights Function (NIF) 405 (described in relation to FIG. 5, below) that may compute link level LTE metrics based upon LTE metric information extracted from an eNB scheduler and MAC layers. In particular, the method may utilize a LTE RAN scheduler, MAC and RLC information, in order to enable HAS clients to use the Best Effort wireless resources in a cooperative fashion while maximizing a number of UEs with video under congestion, which may be accomplished in two basic parts, described below.

(27) Part 1: Application level admission control may be implemented while maximizing the number of admitted UEs. This admission control may free some RAN resources, by not admitting UEs experiencing very poor channel conditions that are unable to receive a lowest (minimum) necessary video rate for playing HAS video due to resource and/or channel limitations. This admission control may continue to be enforced until affected UEs stop requesting video segments, or until the network congestion is resolved.

(28) Part 2: Implementing policies that enforce a proper distribution of available Best Effort resources among the “admitted” UEs, in order to ensure that all admitted UEs receive video. This enforcement may be accomplished via application level policies that may (i) limit the maximal video rate that UEs in “better” conditions may select and (ii) limit the maximal application level throughput when HAS UEs are in a “hungry state” (i.e., play-ahead buffers not full).

(29) The method may work best when the RAN resource pool (consisting of PRBs) of HAS clients may be separated from the other Best Effort traffic resources, but the method may be extended to a scenario where these resource pools are combined.

(30) Inputs for the Admission Control and Policy Generation for UEs Using Best Effort (BE) Wireless Connections:

(31) The inputs that may be used in the method (i.e., wireless RAN and HAS video session metrics), may include the following.

(32) A) A number of UEs attempting to access HAS services (e.g., each UEs using a single wireless BE bearer) that may be sharing RAN resource pool (where the resource pool may be the resources associated with a single eNB, for instance). This input may be denoted as “N.”

(33) B) HAS video bitrates (measured in bits/sec) that are available for each UE number k. This input may be denoted as {r.sub.1.sup.(k)<r.sub.2.sup.(k)< . . . <r.sub.m.sub.k.sup.(k)}, where k is the UE index and m.sub.k is the number of different video encoding rates available for the UE.

(34) C) An optional input may include a UE service preference, such as gold, silver, bronze, etc.

(35) D) An average channel condition for each UE k, which may be expressed in the form of an average number of “useful” bits per PRB metric, and denoted as α.sub.k. The term “useful” bits may be considered bits that are data bits that are not re-transmitted bits. In one embodiment, this input metric may be computed via the method described in U.S. patent application Ser. No. 14/724,352 “System and Method for Controlling an Operation of an Application,” the contents of which is incorporated by reference in its entirety.

(36) E) An average shared wireless resource rate (e.g. number of PRBs per second S in the shared resource pool), where this input may be denoted as “S” (for example, for a 20 Mhz eNB, the available shared resources rate may be S=100,000 prbs/sec).

(37) F) An average fraction of shared wireless resources (e.g. of physical resource blocks per second) that are available to be shared among HAS UEs, where this input may be denoted as “x.” The product S*x may represent an average rate of wireless resources (e.g. number of PRBs per second) that may be shared among HAS UEs. The product S*x can be considered scheduled shared resource rate information.

(38) General Operations of an Example Method:

(39) A general operation of an example method may include the following basic steps.

(40) I) Receive inputs (where the inputs are listed above).

(41) II) The UEs may be ordered. This ordering may be based upon a decreasing channel conditions metric (which is input (D), above). This ordering may be denoted as follows.
α.sub.1≧α.sub.2≧ . . . ≧α.sub.N.  Equation 1

(42) It is noted that higher values for the channel conditions metric may corresponds to better channel conditions. UEs with lower ordering numbers will be admitted before the UEs with higher ordering numbers. If optional service preference classes are also implemented (see input (C), above), the UEs within each service class may be ordered independently, based upon Equation 1, and then inter-class ordering may be established according to a service provider's preferences.

(43) III) Admission control may be implemented. With the UEs ordered according to step (II) above, only the first number N′ of UEs that satisfy the following Equation 2 may be admitted.

(44) .Math. k = 1 N r 1 ( k ) α _ k Sx ( 1 + δ ) , Equation 2

(45) Where S and x are from inputs (E) and (F), δ may be a configurable buffer growth margin (for example, this value may be chosen to be between 0.1 or 0.3), and r.sub.1.sup.(k) from the input (B) may be the lowest video rate available for the UE k. The HAS UEs with ordering numbers from N′ to N may therefore not be admitted. The policy for these non-admitted UEs may include assigning a 0 (zero) maximal video rate and a 0 (zero) maximal allowed application throughput, which will force these HAS UEs to stop requesting video segments. The left hand side of the Equation 2 represents an average aggregate rate of physical resource blocks per second necessary to support a minimal video rate for all admitted UEs. The right hand side of the Equation 2 represents an average rate of wireless resources (e.g. number of PRBs per second) that may be available to be shared among HAS UEs, reduced by the margin factor (1+δ) to allow a margin for growing play buffer.

(46) IV) For the admitted UE k, a policy may include per UE tuples, which provide throughput restrictions for the UEs, which may be denoted as: <R.sup.(k).sub.max, T.sup.(k).sub.max>, where R.sup.(k).sub.max is a maximal allowed video bitrate that may be selected, and T.sup.(k).sub.max may be the maximal allowed throughput (where these limitations may restrict how greedy a UE may be in requesting video segments). T.sup.(k).sub.max may be used by an application function to calculate a minimal delay d.sup.(k).sub.n before requesting a next video segment n using the following equation.

(47) d n ( k ) [ L n ( k ) T ( k ) max - t n ( k ) ] + Equation ( 3 )

(48) Where L.sup.(k).sub.n may be the length of the segment n known from the MPD or manifest file and t.sup.(k).sub.n may be the download time of the segment n, as measured by a Rate Determination function.

(49) V) A policy calculation may be performed by maximizing a Quality of Experience (QoE) utility function for aggregate HAS user experience of the users served by the cell/sector, as follows.
U=a*Average.sub.k(R.sub.max.sup.(k))−b*Variance.sub.k(R.sub.max.sup.(k))  Equation 4

(50) Where a and b may be configurable parameters.

(51) VI) An ordering of the UEs in Equation (1) implies that the UEs in the front of the ordering shall have rates higher than the UEs in the back, as indicated by the equation below.
R.sub.max.sup.(1)≧R.sub.max.sup.(2)≧ . . . ≧R.sub.max.sup.(N′)  Equation 5

(52) This may significantly reduce a number of possible permutations. Namely, a total number of permutations for N′ number of UEs and m different video rate classes may be computed as follows.

(53) S ( N , m ) = ( N + m - 1 ) ! ( N - 1 ) ! ( m - 1 ) ! Equation 6

(54) This method may allow for the use of a simple complete enumeration for calculating a maximal value of the utility function. For example, for 14 admitted users and 4 different video rates (as in example shown in FIG. 3, the number of permutations is 9520). The maximal value of the Utility function may be computed by computing the value of the Utility function for each permutation and then selecting the maximal value among the computed.

(55) Specific Example Method:

(56) Based on an understanding of the general methodology described above, the following discussion relates to a specific example system and method that is shown in conjunctions with FIGS. 5-8.

(57) FIG. 5 illustrates a reconfigured network 10a, according to an example embodiment. The network 10a may include a network insight function (NIF) agent 400 that may be located in a reconfigured eNB 105a (as shown in better detail in FIG. 6). A separate network insight function (NIF) 405 may be in the reconfigured IP-CAN 100a. The NIF 405 may include a network insight function policy-maker (NIFP) 415. The NIF 405 (and associated NIFP 415) may be capable of collecting bearer metrics (described by the list of inputs, above) from more than one reconfigured eNB 105a, although only one eNB 105a is shown in FIG. 5, for simplicity. The NIF 405 may perform the admission control and policy making (as described in the general operations, listed above). The NIF 405 may then be used to cooperatively control application functions 109a/115a that may be located in the respective reconfigured IP-PDN 1001a and/or the reconfigured UE 110a. The application function 109a may be a dedicated stand-alone server in the reconfigured IP-PDN 1001a.

(58) FIG. 6 illustrates a reconfigured eNB 105a, in accordance with an example embodiment. Specifically, the eNB 105a may include a NIF agent 400. The NIF agent 400 may be a stand-alone dedicated processor that may be a special purpose processor existing in the eNB 105a. Or, the NIF agent 400 may be located in processor 220, as shown in FIG. 6. The functions of the NIF agent 400 are described below in conjunction with the method steps outlined in FIG. 8.

(59) FIG. 7 illustrates the NIF 405, in accordance with an example embodiment. NIF 405 (and associated NIFP 415) may be a dedicated stand-alone server (as shown in FIGS. 5 and 7). Alternatively, the NIF 405 (and NIFP 415) may be located in another existing network node in the reconfigured IP-CAN 100a, such as MME 108, SGW 101, or PCRF 106 or PGW 103. NIF 405 may include a processor 406 that controls the operations of NIF 405. NIFP 415 may be a separate stand-alone special purpose processor. Or, alternatively, NIFP 415 may reside within processor 406, as shown in FIG. 7. The function of NIFP 415 is described below in conjunction with the method steps outlined in FIG. 8. NIF 402 may also have communication interfaces 402 capable of communicating with one or more eNBs 105a, PCRF 106, and application functions 109a and/or 115a. A memory 404 is also provided to buffer data.

(60) With the VRAN architecture various components of NIF Agent 400 and NIF 405 may be distributed across multiple processing circuits and multiple physical nodes within VRAN or Virtualize Wireless Core clouds.

(61) FIG. 8 is a method flowchart describing a method of cooperatively controlling an application within the reconfigured network 10a, in accordance with an example embodiment. In particular, FIG. 8 describes the functions of the structure shown in FIG. 5.

(62) In step S600 of FIG. 8, processor 220 of eNB 105a may cause NIF agent 400 to extract per bearer available PRB rate information (from which input E, listed in the list of inputs above, may be derived by the NIF server 405, for example by multiplying the per bearer available PRB rate by the number of HAS clients), together with per bearer channel information (per bearer number of bites per PRB, which is input D, listed above). The NIF agent 400 may then pass this information together with globally unique bearer identifiers for the respective bearer to the NIF server 405. In an embodiment, calculating per bearer available PRB rate information may be accomplished by calculating an average number of PRBs that may be expected to be allocated for a particular bearer in accordance with the procedures described in U.S. patent application Ser. No. 14/534,968 “System and Method for Determining Cell Congestion Level,” the entire contents of which is incorporated by reference in its entirety. In an embodiment, the computation of per bearer number of bits per PRB may be accomplished by the procedures described in U.S. patent application Ser. No. 14/724,352 “System and Method for Controlling an Operation of an Application,” the entire contents of which is incorporated by reference in its entirety. In an embodiment, sending this collected information to NIF server 405 may be accomplished using the procedures described in U.S. patent application Ser. No. 14/534,491 “System And Method for Exporting Real-Time User Equipment And Bearer State Information,” the entire contents of which is hereby incorporated by reference in its entirety.

(63) In step S602 of FIG. 8, the processor 406 of NIF 405 receives available video rates from one or more respective application functions 109a/115a associated with bearers of interest for the eNB 105a. In an embodiment, these video rates may be received from a HAS client 110a. In another embodiment, these video rates may be received from a video content server (CDN) that may be associated with application function 109a.

(64) In step S604 of FIG. 8, the processor 406 of NIF server 405 may compute per UE policies, as described in the ‘general operations’ section of this document.

(65) In step S606 of FIG. 8, the processor 406 of NIF server 405 may send the policies to a respective application function 109a/115a (whether this is an application function 115a of a client UE 110a, or an application function 109a in a CDN/video content server in IP-PDN 1001a).

(66) It should be understood that an application function 109a/115a, for purposes of this method, may apply the policies to control video rates selected by HAS clients. In an embodiment, the application function may take advantage of NIF distributed policies, such that the application function may act as an Adaptive Rate Determination function, as described in U.S. Pat. No. 8,949,440 “System and Method for Adaptive Rate Determination in Mobile Video Streaming,” which is hereby incorporated by reference in its entirety.

(67) In an embodiment, the processor 406 of the NIF 405 may be used to set policies in order to direct an application function to control a network application as follows. The processor 406 may compute which HAS UEs are using a shared resource pool may be admitted by using an admission control scheme based upon Equation 2 (above), assign a maximal rate R.sup.(k).sub.max=0 and maximal throughput T.sup.(k).sub.max=0 for the UEs that are not admitted, and assign maximal rates R.sup.(k).sub.max=r.sup.(k) for the admitted UEs where r.sup.(k)−s are the rates from input (B) (listed above) that satisfy Equation 7 (below) and also maximize the utility function described in Equation 4.

(68) .Math. k = 1 N r ( k ) α _ k Sx ( 1 + δ ) , Equation 7

(69) It should be noted that Equation 7 differs from the Equation 2 in that the lowest rates r.sub.1.sup.(k) is replaced with r.sup.(k) from the list of available rates of input (B). The utility function may be computed using Equation 4 for each permutation of the rates satisfying the Equations 5 and 7, and r.sup.(k) for each UE k may be selected so that the value of the utility function may be maximized. The processor 406 may then perform a step to assign a maximal throughput, using Equation 8.
T.sup.(k).sub.max=(1+δ1)R.sup.(k).sub.max  Equation 8

(70) Where δ1 is a configurable parameter that may be less than or equal to the δ in Equations 2 and 7.

(71) Based on the example method described in FIG. 8, performance of a network may be greatly improved in order to allow a greater number of UEs 105a to run applications, such as HAS applications. For instance, as graphical depicted in FIG. 9, a simulation may result in a seven-fold improvement (increase) in a number of UEs capable of watching video. Instead of a mere 2 UEs 400a able to watch video (as in FIG. 3), instead there is a group of 14 UEs 500 admitted (with the remaining 4 denied), where all 14 admitted UEs 105a may play video.

(72) It should be understood that the above methodology and systems are not limited to LTE IP-CAN. Rather, the methodology and systems may be implemented on any wireless technology (e.g., 2G, 3G, 4G, 5G, etc.) that utilizes an uplink or downlink scheduler to allocate physical resources (i.e., physical resource blocks or other resource units) of cells, where the wireless link throughput may be calculated as a function of the resource allocation and channel conditions metric. It also should be understood that with the Virtual Radio Access Network (VRAN) architecture, various components of NIF Agent 400 and NIF 405 may be distributed across multiple processing circuits and multiple physical nodes within VRAN or Virtualize Wireless Core clouds.

(73) Example embodiments having thus been described, it will be obvious that the same may be varied in many ways. Such variations are not to be regarded as a departure from the intended spirit and scope of example embodiments, and all such modifications as would be obvious to one skilled in the art are intended to be included within the scope of the following claims.