Patent Publication Number: US-11382075-B2

Title: System and method for grant assignment

Description:
RELATED APPLICATIONS 
     This application is a continuation of U.S. Non-Provisional application Ser. No. 15/728,162, filed Oct. 9, 2017, which application claims priority to U.S. Provisional Application Ser. No. 62/405,683 (hereinafter “&#39;683 provisional”), filed 7 Oct. 2016, and which application is a Continuation-in-Part of U.S. Non-Provisional application Ser. No. 15/447,419, filed 2 Mar. 2017, all of which are incorporated herein by reference. 
    
    
     BACKGROUND 
     Mobile Network Operators (MNOs) provide wireless service to a variety of user equipment (UEs), and operate using a variety of techniques such as those found in 3G, 4G LTE networks. The wireless service network can consist of macro and/or small cells. 
     Some MNOs operate with Multi System Operators (MSOs) of the cable industry for backhauling traffic for wireless networks. The MSO packages the communications between the UE and the MNO via the MSOs protocol, for example Data Over Cable Service Interface Specification (DOCSIS). 
     Since the wireless and backhaul networks are controlled by separate entities, DOCSIS backhaul networks and wireless radio networks each lack visibility into the other&#39;s network operations and data. This causes the scheduling algorithms for the wireless and DOCSIS network to operate separately, which can result in serial operations during the transfer of data from UE to the mobile core. The DOCSIS network does not have insights into the amount and the priority of wireless data being backhauled, since this knowledge is only known to the wireless portion of the network. 
     SUMMARY OF THE INVENTION 
     Some embodiments contemplated utilize an optical network. An optical network may be formed with, for example, an Optical Network Terminal (ONT) or an Optical Line Termination (OLT), and an Optical Network Unit (ONU), and may utilize optical protocols such as EPON, RFOG, or GPON. Embodiments also contemplated exist in other communication systems capable of x-hauling traffic, examples include without limitation satellite operator&#39;s communication systems, Wi-Fi networks, optical networks, DOCSIS networks, MIMO communication systems, microwave communication systems, short and long haul coherent optic systems, etc. X-hauling is defined here as any one of or a combination of front-hauling, backhauling, and mid-hauling. To simplify description, a termination unit such as a CMTS, an ONT, an OLT, a Network Termination Units, a Satellite Termination Units, and other termination systems are collectively called a “Modem Termination System (MTS)”. To simplify description a modem unit such as a satellite modem, a modem, an Optical Network Unit (ONU), a DSL unit, etc. are collectively called a “modem.” Further, to simplify description a protocol such as a DOCSIS, EPON, RFOG, GPON, or Satellite Internet Protocol is called a “protocol.” 
     The various embodiments disclosed herein may be implemented in a variety of ways as a matter of design choice. For example, some embodiments herein are implemented in hardware whereas other embodiments may include processes that are operable to implement and/or operate the hardware. Other exemplary embodiments, including software and firmware, are described below. 
    
    
     
       BRIEF DESCRIPTION OF THE INVENTION 
         FIG. 1  shows one exemplary system configured to implement the present prioritized grant assignment process, in an embodiment. 
         FIG. 2A  is a more detailed view of the grant assignment system of  FIG. 1  processing multiple buffer status reports (BSRs) to generate a bulk request (REQ) for resources from a connected backhaul system, in an embodiment. 
         FIG. 2B  is a more detailed view of the grant assignment system of  FIGS. 1 and 2B  processing multiple logical channel groups (LCGs) from a plurality of user equipment (UEs) based on prioritization, in an embodiment. 
         FIG. 3  shows one exemplary priority processing system configured within a small cell, which processes upstream data for transmission after the receipt of a partial grant, in an embodiment. 
         FIG. 4A  is a communication diagram for the present grant assignment process wherein the entire request (REQ) is granted, in an embodiment. 
         FIG. 4B  is a communication diagram for the present grant assignment process wherein a portion of the request (REQ) is granted, in an embodiment. 
         FIG. 5  A-C is a method flow detailing one exemplary process for generating a bulk request for resources, in an embodiment. 
         FIG. 6  is a communication diagram for a prior art grant assignment process, in an embodiment. 
         FIG. 7  is a communication diagram for the present unsolicited grant process, in an embodiment. 
     
    
    
     DETAILED DESCRIPTION OF THE FIGURES 
     The figures and the following description illustrate specific exemplary embodiments of the invention. It will thus be appreciated that those skilled in the art will be able to devise various arrangements that, although not explicitly described or shown herein, embody the principles of the invention and are included within the scope of the invention. Furthermore, any examples described herein are intended to aid in understanding the principles of the invention and are to be construed as being without limitation to such specifically recited examples and conditions. As a result, the invention is not limited to the specific embodiments or examples described below. For example, the following description is discussed as suggestive of an LTE-DOCSIS cooperative network for expediting a grant assignment for a wireless service through a request-grant based communication link between a user device (e.g., a UE) and a wireless core (also called herein a “first network core”, e.g., a mobile core or Wi-Fi core). Generically, a LTE-DOCSIS cooperative network may be any first network-second network cooperative communication system and is not limited to either LTE or DOCSIS networks. For example, the present system and method may be used in a polling service based system, such as Real-Time Publish-Subscribe (RTPS). Polling is similar enough to a request-grant system that it may take advantage of the present invention. One difference between a request-grant system and a polling service system is polling occurs without having to contend with other devices when a request is sent. It will be appreciated that the present system and method for prioritized grant assignment in wireless services may equally be applied in systems utilizing microcells, picocells, macrocells, Wi-Fi, satellite communication systems, optical backhaul systems (EPON, GPON, RFOG), MU-MIMO, laser communication, and even aerial vehicles such as unmanned aerial vehicles (UAV) and balloons that provide wireless and/or laser communication. That is, the present invention may be used in many wireless-to-backhaul systems where at least one of the wireless system or backhaul system utilizes a request-grant protocol for data transmission. 
       FIG. 1  shows one exemplary communication system  100  in which the present prioritized grant assignment system and method may be utilized. 
     As shown, communication system  100  includes User Equipment (UEs)  102 ( 1 )- 102 ( n ), a small cell  110 , a backhaul system  120  configured with a modem  122  and a modem terminal system (MTS)  124 , and a wireless core  130  (hereinafter core  130 ). It will be understood that UEs  102 ( 1 )- 102 ( n ) may be any user equipment or radio terminal, such as cell phones, laptop computers, tablet computers, wearables, Internet of Things (IoT) devices, a wireless equipped motor vehicle, etc. In addition, small cell  110  may be any wireless access base station, for example, an eNodeB, a Wi-Fi access point, etc. Furthermore, UE&#39;s  102 &#39;s and small cell  110  may be configured with one or more wireless communication protocols, example of which include but are not limited to Wi-Fi, 3G, 4G, 5G, and Long Term Evolution (LTE) communication protocols. Core  130  may be any core that services radio terminals similar to UEs  102 , such as a mobile core, a Wi-Fi core, or the like. As discussed above, backhaul system  120  may be any system capable of wireless backhauling data. 
     In an embodiment, small cell  110  and modem  122  are co-located. In such a version, small cell  110  and modem  122  may be configured within the same enclosure. 
     It will be understood that MTS  124  may be formed as a single device or may be formed as more than one device. Alternatively, MTS  124  may be formed as a combination of real and virtual devices, virtual components, and/or virtualized functions. If virtualization is utilized, such virtual devices, components, and/or functions maybe executed within the backhaul system or may be implemented outside of the backhaul system. 
     UEs  102  are in wireless communication via communication link  140  with small cell  110 . Small cell  110  is in wired or wireless communication with backhaul system  120  via communication link  142 . Backhaul system  120  is in wired communication with core  130  via communication link  144 . 
     As suggested above, the invention, in total or in part, may take the form of an entirely hardware implementation, an entirely software implementation or an embodiment containing both hardware and software elements. Embodiments utilizing network functions virtualization (NFV) and virtualized hardware, such as a virtualized MTS, virtualized modem, virtualized aspects of the MTS and/or modem, etc., are also contemplated. In one embodiment, the invention is implemented in whole or in part in software, which includes but is not limited to firmware, resident software, microcode, etc. 
       FIG. 2A  is a detailed view of some aspects of the prioritized grant assignment system of  FIG. 1 . System  100  of  FIG. 2  is described here processing multiple buffer status reports (BSRs)  226  to generate a bulk request (REQ)  270  for resources from a connected backhaul system  120 , in an embodiment. 
     Each UE  102 ( 1 )-( n ) is configured with an input/output (IO) system  202 , a CPU  204 , a wireless transceiver  206 , and a memory  220 , all of which are communicatively coupled. More or fewer components may be incorporated within a UE  102  without departing from the scope herein. I/O  202  may be any device level input/output system, including but not limited to a keyboard, mouse, touch screen, display, tactic feedback system, monitors (e.g., heart rate, Global Positioning (GSP), activity sensor, accelerometer, any health monitoring system, position sensors as used in room scale virtual reality (VR), etc.), graphics cards, sound card, I/O chips and/or chip sets, etc. I/O  202  may also be removably and/or temporality coupled with UE  102 . Processor  204  may be a processing unit including but not limited to one or more of a central processing unit, a microprocessing unit, a graphics processing unit (GPU), a multi-core processor, a virtual CPU, a control unit, an arithmetic logic unit, a parallel processing unit or system, etc. Transceiver  206  may be any or a plurality of wireless transceivers capable of wirelessly communication with the small cell  110  on one or more compatible wireless communication protocols. Memory  220  may be any non-transitory memory. Memory  220  may also be a plurality of cooperative memory components. Memory  220  may be implemented as or include one or more buffers. However memory  220  is organized such that BSR  226  describes at least a portion of it for purposes of requesting resources from one or more networks to transmit data stored therein. 
     Memory  220  stores at least a buffer status report (BSR)  226 , a data  224  for transmission across backhaul system  120  to core  130 , and one or more wireless grants  222 . It will be understood that BSR  226 ( 1 ), data  224 ( 1 ), and wireless grant  222 ( 1 ) are specific to UE  102 ( 1 ) and BSR  226 ( n ), data  224 ( n ), and wireless grant  222 ( n ) are specific to UE  102 ( n ) and may be erased, written over, or moved to a secondary storage device (not shown) at a time determined by UE  102  or any decision making units within system  100 , such as modem  122 , MTS  124 , and core  120 . Wireless grants  222 ( 1 ) and  222 ( n ) are shown in dashed line to represent that they are only present after BSRs  226 ( 1 ) and  226 ( n ) are sent to and processed by small cell  110 , which generates wireless grants  222 ( 1 ) and  222 ( n ) and transmits them back to UEs  102 ( 1 ) and  102 ( n ), respectively. This process may be seen at least in  FIGS. 4A-B . 
     Data  224 ( 1 ) and data  224 ( n ) are of a certain size, shown here as having size of A bytes for data  224 ( a ) and B bytes for data  224 ( n ). Data in data  224  is organized by priority, for example into logical channel groups (LCG) 0-3. Logical channel grouping is the prioritization scheme utilized in the present embodiments shown here, but it would apparent to the skilled artisan that another prioritization scheme may be used without departing from the scope herein. Throughout the present description LCG0 is assigned the highest priority data, LCG 1 is assigned the next lowest priority, etc. Examples of data that would be placed into LCG0 are control messages specific to the wireless network, mission critical traffic, gaming traffic, or anything that requires the lowest latency. Examples of data that would be placed into LCG1 are voice or video traffic. Examples of data that would be placed into LCG2 are data traffic from such applications as web browsing. Examples of data that would be placed into LCG3 are low priority background traffic, examples of which include but are not limited to file uploads, file downloads, and software updates. BSRs  226 ( 1 )-( n ) contain at least metadata describing the size of the data contained within each of their respective data  224  ( 1 )-( n ) such that any intermediate and/or receiving systems may utilize this metadata to provide a grant for all or a portion of the data in data  224 ( 1 )-( n ). As will be discussed below, if the provided grant cannot accommodate all the data is a data  224  or the combination of data contained with a plurality of data  224   s , then the system groups and prioritizes the data based on LCG, see below for more details. 
     Small cell  110  is shown to include an I/O  252 , a CPU  254 , a downstream transceiver  256 , an upstream transceiver  257 , a priority processor  258 , a bulk request (REQ) module  259 , and memory  260 . I/O  252  may be any I/O system similar to that described for I/O  202 . CPU  254  may be any processing unit similar to that described for CPU  104 . Memory  260  may be any memory similar to that described for memory  220 . 
     Downstream transceiver  256  may be any of, or a plurality of, wireless transceivers capable of wirelessly communication with the UEs  102 ( 1 )-( n ) and other devices utilizing one or more compatible wireless communication protocols. 
     Upstream transceiver  257  is shown as a wireline communication unit. Alternatively upstream transceiver  257  may be a wireless transceiver for communicatively coupling with backhaul system  120 , for example to modem  122 . Upstream transceiver  257  utilizes a backhaul  120  compatible communication protocol. As such, small cell  110  may translate, repackage, and/or reorganize data received from one or more of UEs  102 ( 1 )-( n ) into one or more backhaul compatible data units or streams. Furthermore, the present system and method may translate, repackage, and/or reorganize the data in concert with the present prioritized grant assignment system and method. 
     Priority processor  258  repackages data received from UEs  102 , such as data  224 ( 1 )-( n ), into prioritized based on logical channel groups. The functionality of priority processor  258  will be detailed further in the  FIG. 2B  and its associated description. 
     Bulk REQ module  259  combines each BSR  226 ( 1 )-( n ) received from UEs  102 ( 1 )-( n ) into a single BSR, a bulk REQ  270 , for transmission to backhaul system  120 &#39;s MTS  124  which results in a backhaul grant to modem  122 , discussed later. This ensures the backhaul system  120  is prepared to forward all or a portion of data  224 ( 1 )-( n ) upon receipt at modem  122 . MTS  124  processes bulk REQ  270  and, based on network parameters such as available capacity, rate limits based on Service Level Agreements for the UEs being serviced on the small cell, or prioritization of traffic of the small cell compared to other small cells, and MTS  124  provides small cell  110  a grant that accommodates all or a portion of the request for resources defined by bulk REQ  270 .  FIGS. 3 and 4A  describe an instance where processing bulk REQ  270  results in a grant that completely satisfies the request.  FIG. 4B  describes an instance where processing bulk REQ  270  results in a grant that partially satisfies the request. 
     The remaining description for  FIG. 2A  will focus on UE  102 ( 1 ), although it will be understood that the description is equally relevant to any of UEs  102 ( 2 )- 102 ( n ). UE  102 ( 1 ) is shown having data  224 ( 1 ), which is ready for transmission to core  130 , stored in memory  220 ( 1 ). As described above, BSR  226 ( 1 ) which is also stored in memory  220 , describes data  224 . In its most basic implementation, BSR  226 ( 1 ) describes the amount of data in data  224 , e.g., A bytes of data. In a more detailed embodiment, BSR  226 ( 1 ) may describe the amount of data in each LCG0-LCG3. For example, data  224 ( 1 )&#39;s LCG0 data may have X 1  bytes of data, LCG1 data may have Y 1  bytes of data, LCG2 data may have Z 1  bytes of data, and LCG3 data may have W 1  bytes of data, such that X 1 +Y 1 +Z 1 +W 1 =A bytes of data at a minimum. Upon receiving a grant to transmit BSR  226 ( 1 ), UE  102 ( 1 ) sends BSR  226 ( 1 ) to small cell  110  via wireless connection  140 . Small cell  110  receives BSR  226 ( 1 ) at downstream receiver  256  at which point it is moved to memory  260  as BSR  226 ( 1 ). As described above, UE  102 ( n ) utilizes the same process, which results in BSR  226 ( n ) being stored in memory  260  with BSR  226 ( 1 ). 
     Small cell  110  then process BSRs  226 ( 1 )-( n ) to generate wireless grants  222 ( 1 ) and  222 ( n ) and sends these back to UEs  102 ( 1 ) and  102 ( n ) respectively. 
     Substantially close in time to the generation and transmission of wireless grants  222 ( 1 ) and  222 ( n ) to UE  102 ( 1 ) and UE  102 ( n ), respectively, bulk REQ module  259  takes BSR  226 ( 1 )- 226 ( n ) as inputs and combines them to produce bulk REQ  270 . Bulk REQ  270  is then transmitted to MTS  124  in backhaul system  120  via upstream transceiver  257 , communication link  142 , and modem  122 . MTS  124  processes bulk REQ  270  to produce bulk grant bulk grant  280  (see  FIGS. 3 and 4A-4B ). Bulk grant  280  is sent to small cell  110  via modem  122  and link  142 . Bulk grant  280  may accommodate all or a portion of the data within data  224 ( 1 )-( n ), depending on network resources available. As described above, this ensures the backhaul system  120  is prepared to forward the allotted amount of data  224 ( 1 )-( n ) upon receipt at modem  122 . Small cell  110  processes bulk grant  280  to ascertain the resources available to it. 
     If bulk grant  280  only provides resources for small cell  110  to transmit only a portion of data  222 ( 1 )-( n ) then the present system and method operates to ensure the highest priority data, namely LCG0 data, is prioritized first, followed by LCG1, then LCG2, and finally LCG3. This will be discussed in more detail below. 
     In an embodiment, not shown here, the functionality and associated hardware and/or software described above for small cell  110  may alternatively be configured with and implemented by modem  122 . That is, modem  122  may by formed with I/O  252 , CPU  254 , downstream transceiver  256 , upstream transceiver  257 , priority processor  258 , bulk request (REQ) module  259 , and memory  260  such that modem  122  performs the operations described above and below with modification that would be obvious to the skilled artisan. It will be understood that such an embodiment does not preclude modem  122  from being a virtualized modem  122 , in whole or in part. Furthermore, it will be understood that a small cell  110  implementation does not preclude small cell  110  from also being a virtualized at least in part. 
       FIG. 2B  shows system  100  of  FIG. 2A  after the receipt of wireless grant  222 ( 1 ) and  222 ( n ) at UES  102 ( 1 ) and  102 ( n ), respectively, and bulk grant  280  at small cell  110 . Furthermore, system  100  of  FIG. 2B  is shown transmitting data  224 ( 1 ) and (n) from UEs  102 ( 1 ) and  102 ( n ) to small cell  110 . Data  224 ( 1 ) and  224 ( n ) are stored in memory  260 . Because bulk grant  280  is in place when data  224 ( 1 )-( n ) arrives at small cell  110  all or a portion of that data, depending on the grant, may be transmitted to core  130  vie backhaul system  120 . 
     If bulk grant  280  can accommodate all of data  224 ( 1 ) and  224 ( n ), that is A bytes+B bytes, then no further processing is required and data  224 ( 1 )- 224 ( n ) is transmitted to core  130  via backhaul system  120  utilizing standard methods of repackaging or translating wireless data  224 ( 1 )- 224 ( n ) in to a backhaul compatible container or data. 
     Alternatively, if bulk grant  280  cannot accommodate all of data  224 ( 1 )- 224 ( n ), then priority process  258  acts on data  224 ( 1 )- 224 ( n ), discussed in more detail in at least  FIG. 3 . 
       FIG. 3  shows one exemplary priority processing module  258  configured within small cell  110 , which processes upstream data for transmission after the receipt of bulk grant  280 , which is only a partial grant. 
     Priority module  258  is shown including a priority processor  300  and a prioritized data-grant fit module  322 . Priority processing module  258 , priority processor  300 , and prioritized data-grant fit module  322  may be implemented as a single combined device or component, as standalone devices, or may be implemented, separately or together, as functionality executed by CPU  254 . 
     Priority processor  300  is represented to include a logical channel (LC) grouper  304  and LCG0  306 -LCG3  309 . 
     LCG0  306  is a buffer or temporary data storage for UE  102 ( 1 )- 102 ( n )&#39;s LCG0 data. LCG1  307  is a buffer or temporary data storage for UE  102 ( 1 )- 102 ( n )&#39;s LCG1 data. LCG2  308  is a buffer or temporary data storage for UE  102 ( 1 )- 102 ( n )&#39;s LCG2 data. LCG3  309  is buffer or temporary data storage for UE  102 ( 1 )- 102 ( n )&#39;s LCG3 data. 
     LC grouper  304  takes all data  224  at its input and stores, copies or otherwise records each UE  102 &#39;s LCG data into the appropriate LCG0  306 -LCG3  309  temporary storage. For example, LC grouper  304  process data  224 ( 1 ) and data  224 ( n ) and copies all LCG0 data to LCG0  306 . That is, LC grouper  304  copies data  224 ( 1 )&#39;s LCG0_1 data and data  224 ( n )&#39;s LCG_N data in LCG0  306 . LC grouper  304  similarly copies all data  224 ( 1 )&#39;s and data  224 ( n )&#39;s LCG1 data to LCG1  307 , all data  224 ( 1 )&#39;s and data  224 ( n )&#39;s LCG2 data to LCG2  308 , and all data  224 ( 1 )&#39;s and data  224 ( n )&#39;s LCG3 data to LCG3  309 . LGCO  306 -LCG3  309  are then copied to prioritized data-grant fit  322  as LCG0  336 -LCG3  339 . 
     Prioritized data-grant fit module  322  is shown to be configured with a memory  324 , an upstream fit calculator (UFC)  326 , and a transmit buffer  328 . Memory  324  has stored with in it bulk grant  280  which was generated by MTS  124 , and LCG0  336 -LCG3  339 . Bulk grant  280  of  FIG. 3  is a grant for an amount of data equal to C+D bytes of data, which is a portion of that requested, namely A+B bytes of data. C+D bytes of data and A+B bytes of data are symbolically represented in transmit buffer  328 , more on this below. 
     Transmit buffer is shown including LCG0_1, LCG0_N, LCG1_1, LCG1_N, LCG2_1, LCG2_N, LCG3_1, and LCG3_N. The size of LCG0_1, LCG0_N, LCG1_1, LCG1_N, LCG2_1, LCG2_N, LCG3_1, and LCG3_N is equal to A+B bytes, the size of the bulk REQ  270 . The size of LCG0_1, LCG0_N, LCG1_1, LCG1_N, LCG2_1, and LCG2_N is equal to C+D bytes, the size of the bulk grant  280 . C+D&lt;A+B. 
     UFC  326  takes as inputs bulk grant  280  and LCG0  336 , LCG1  337 , LCG2  338 , and LCG3  339 . UFC  326  then process the LCG0  336 , LCG1  337 , LCG2  338 , LCG3  339  data, and bulk grant  280  to determine which data can be accommodated by bulk grant  280  for the related transmission. This process may be as simple as determining the size of bulk grant  280  (C+D bytes) and perform arithmetic calculations to with LCG0, LCG1, LCG2, LCG3 in order of priority to determine which data packages can be accommodated by the bulk grant  280 . Another exemplary process is a UE prioritization process, which may order LCG data based on Service Level Agreement or priority, such that if C+D bytes of data provided by bulk grant  480  is not sufficient to serve all UE logical channel group data, then LCG data is prioritized by UEs such that higher priority UEs have their data accommodated first. Furthermore UE prioritization may be multi-tiered such that LCG0 data from first priority UEs are handled first, then LCG0 data from second priority UEs are handled next, and so forth. In an embodiment, LCG1 data originating from a highest priority UE is handled before LCG0 data from a second tier UE. Determining the priority of UEs may be based on the type of device (e.g., emergency services devices and autonomous vehicles have a higher priority than standard user devices and IoT devices), a user or user account associated with the device (e.g., a business or premium account versus an individual account or lower tier account, or military account versus a civilian account), order of association with the small cell, etc. Other processes are detail below. 
     In the embodiment of  FIG. 3  bulk grant  280  may accommodate C+D bytes of data, which provides for the transmission of LCG0_1, LCG0_N, LCG1_1, LCG1_N, LCG2_1, and LCG2_N over backhaul system  120 . LCG3_1 and LCG3_N may be shifted to the next or subsequent bulk request and upstream transmission. Alternatively, LCG3_1 and LCG3_N may be dropped, for example, if that data is determined to be stale. 
       FIG. 4A  is a communication diagram  400  for system  100  in the situation where all of a request conveyed by a Bulk REQ  270  is granted, in an embodiment. In the present embodiment two UEs are shown, UEs  102 ( 1 ) and  102 ( n ). As discussed above, it will be understood that more UEs may participate in the present system and method without departing from the scope here and only two are shown and described here to reduce complexity and increase understanding.  FIG. 4A  is best understood when read in combination with  FIGS. 2A-B  and  3 . 
     In diagram  400  UEs  102 ( 1 ) and  102 ( n ) transmit service requests (SRs) SR1 UE1  402  and SR2 UE2  404  to small cell  110  to request a grant for the transmission of each UEs buffer status report (BSR), BSR  226 ( 1 ) and BSR  226 ( n ), see  FIGS. 2A, 2B, and 3 . Small cell  110  receives and processes SR1 UE1  402  and SR2 UE2  404 , producing two BSR grants, BSR Grant UE1  406  and BSR Grant UE2  408 , which are sent back to the respective UE. UE  102 ( 1 ) and  102 ( n ) receive and process the BSR grants  406 ,  408  and transmit BSR  226 ( 1 ) and BSR  226 ( n ). BSR  226 ( 1 ) conveys to small cell  110  that UE  102 ( 1 ) has A bytes of data in its buffer where and BSR  226 ( n ) conveys to small cell  110  that UE  102 ( n ) has B bytes of data in its buffer. A and B, which describe the A and B bytes of data, are numeric variables which designate the size or amount of data stored in the respective buffers. Small cell  110  processes BSR  226 ( 1 ) and  226 ( n ) and produces a grant for each UE  102 , grant  222 ( 1 ) and grant  222 ( n ). In addition, small cell  110  generates bulk REQ  270 . Bulk REQ  270  is a request for backhaul system  120  resources to transmit the combination of at least data  224 ( 1 ) and  224 ( n ) (or any data  224 ( 1 )-( n ) if more UEs  110  are associated with small cell  110  and have data in their buffers to transmit). Small cell  110  transmits grants  222 ( 1 ) and  222 ( n ) to UEs  102 ( 1 ) and  102 ( n ), respectively, and bulk REQ  270  to MTS  124  via modem  122  within backhaul system  120 . The order the UE Grants  222  and the bulk REQ  270  are produced and transmitted by small cell  100  may vary according to implementation as long as they occur substantially close enough in time such that a bulk grant, one example of which is bulk grant  280  as shown in  FIGS. 2B, 3 and 4A , may be received and processed by small cell  110  prior to the receipt of data from the UEs, such as data  224 ( 1 )-( n ) discussed in more detail below. Although not ideal, it will be consistent with the present invention if bulk grant  280  is received at small cell  110  after the receipt of data  224 ( 1 ) and  224 ( n ) at small cell  110  as long as it is not so long after that there is no reduction in latency over the serial grant assignment utilized in the prior art. Upon receipt of the grants  222 ( 1 ) and  222 ( n ), UE  102  ( 1 ) and UE  102 ( n ) prepare data  224 ( 1 ) and  224 ( n ), respectively, for transmission. 
     In an embodiment, UEs  102 ( 1 ) and  102 ( n ) also include new BSRs in data  224 ( 1 ) and  224 ( n ), shown in diagram  400  as BSR_A and BSR_B. In such an embodiment grants  222 ( 1 ) and  222 ( n ) include additional resources to accommodate BSR_A and BSR_B. BSR_A and BSR_B are requests for resources to transmit new data in UE  102 ( a ) and  102 ( n )&#39;s buffers that was generated after the transmission of SR1 UE1  402  and SR2 UE2  404 . This “piggy backing” process reduces the need to go through the SR/BSR-grant process (described above) for the next and potentially subsequent data transmissions. 
     Upon receipt of data  224 ( 1 ) and  224 ( n ) and bulk grant  280  at small cell  110  the small cell packages  412  data  224 ( 1 ) and  224 ( n ), for example in a manner similar to that shown and described for  FIG. 3 , for transmission to core  130  via backhaul system  120 . In an embodiment that includes BSR_A and BSR_B, small cell  110  may also process BSR_A and BSR_B in a similar fashion as described above for BSR  226 ( 1 ) and  226 ( n ), producing new grants  422 ( 1 ) and  422 ( n ) and a second bulk REQ  470 . 
     This second bulk REQ  470  may be transmitted separately from (as shown in  FIG. 4 ) or packaged with the upstream transmission of data  224 ( 1 ) and  224 ( n ) (not shown) to MTS  224  on its way to core  130 . If second bulk REQ  470  is transmitted separately from the upstream transmission of data  224 ( 1 ) and  224 ( n ) to core  130 , as shown is in  FIG. 4 , then BSR_A and BSR_B may be processed before or after the upstream transmission of data  224 ( 1 ) and  224 ( n ) from small cell  110  to core  130 . 
     If the second bulk REQ  470  is sent with the upstream transmission of data  224 ( 1 ) and  224 ( n ) then bulk grant  280  must include additional resources to accommodate bulk REQ  470 , that is bulk grant  280  must be capable of accommodating at least A bytes+B bytes+X bytes, where X bytes is at least the amount of data need to accommodate bulk REQ  470 , e.g., a summary of BSR_A and BSR_B. With bulk REQ  470  sent with or proximate in time to the upstream transmission of data  224 ( 1 ) and  224 ( n ), MTS  124  may read or extract bulk REQ  470  upon receipt of the upstream transmission of data  224 ( 1 ), data  224 ( n ), and the bulk REQ  470 . Bulk REQ  470  may be packaged with data  224 ( 1 ) and  224 ( n ) such that MTS  124  can only read bulk REQ  470 , which utilizes a backhaul  120  format or protocol, and MTS  124  may not read data  224 ( 1 ) and  224 ( n ), which utilizes a core  130  format or protocol different from that of backhaul  120 &#39;s format or protocol. 
       FIG. 4B  is a communication diagram  450  for the present grant assignment process wherein only a portion of the request conveyed by a Bulk REQ is granted, in an embodiment. 
     Communication diagram  450  is similar to communication diagram  400  up until the receipt of bulk REQ  270  by MTS  124  from small cell  110 . As such all steps prior to the receipt of bulk REQ  270  by MTS  124  in diagram  450  are not described here for the sake of brevity. Diagram  450  differs from diagram  400  in that MTS  124  processes the received bulk REQ  270  to produce a bulk grant  480  which accommodates less data than that requested in bulk REQ  270 . That is diagram  450  shows a scenario where backhaul system  120  can only accommodate a portion of bulk REQ  270 , which requests resources to transmit A+B bytes of data. Thus MTS  124  generates a bulk grant  480 , similar to bulk grant  280  of  FIG. 3 , which accommodates C+D bytes of data, which is less A+B bytes: (C+D&lt;A+B). 
     Bulk grant  480  is transmitted to small cell  110  via modem  122 . Substantially concurrently to the transmission and processing of bulk REQ  270  and generation of bulk grant  480 , UEs  102 ( 1 ) and  102 ( n ) process grants  222 ( 1 ) and  222 ( n ), prepare data  224 ( 1 ) and  224 ( n ) and optionally new BSRs BSR_A and BSR_B, and transmits these to small cell  110 , as similarly described from diagram  400 ,  FIG. 4A . 
     As similarly described in  FIG. 3 , small cell  110  performs a logical channel grouping process and prioritized grant fit process as described in  FIG. 3 . That is, the priority processor  300  groups together all LCG 0 data from each UE  102 &#39;s data  224 , all LCG1 data from each UE  102 &#39;s data  224 , etc. The prioritized data-grant fit  322  unit fits the LCG data to the bulk grant  280 ,  480  such that data with the highest priority, LCG0 Data, is prioritized for transmission, followed by LCG1, LCG2, etc. In the situation of  FIG. 4B  (and  FIG. 3 ) not all data can be transmitted under bulk grant  480 , namely LCG3_1 and LCG3_N data. As such, LCG3_1 and LCG3_N data are subsequently retained in the transmit buffer  328 , memory  260 , or a similar generic or dedicated memory, which may or may not be shown. 
     The remaining LCG data is then packaged  454  and transmitted to mobile core  130  via modem  122  and MTS  124  of backhaul system  120 . Optionally, and as similarly described for  FIG. 4A , small cell  110  may also process new BSRs, BSR_A and BSR_B, and provide grants  422 ( 1 ) and  422 ( n ) to UEs  102 ( 1 ) and  102 ( n ). 
       FIGS. 5A-C  describe a method  500  detailing one exemplary process for generating a bulk request for resources, in an embodiment.  FIGS. 5A-C  are best viewed together. 
     Step  502  of method  500  receives an SR1 and an SR2 from UE1 and UE2, respectively. An example of step  502  is UEs  102 ( 1 ) and  102 ( n ) transmitting SR1 UE1  402  and SR2 UE2  404  to small cell  110 , as shown and described in  FIGS. 4A and 4B . 
     Step  504  of method  500  sends a BSR Grant to both UE1 and UE2. An example of step  504  is small cell  110  transmitting BSR grant UE1  406  and BSR grant UE2  408  to UE  102 ( 1 ) and UE  102 ( n ), respectively. 
     Optional step  506  of method  500  determines what resources are available to the small cell in preparation for processing the forthcoming BSRs from the UEs. An example of step  506  is small cell  110  analyzing its available resource for comparison to the BSRs received from UEs  102 ( 1 ) and  102 ( n ) in step  508 - 510 . 
     Step  508  of method  500  receives BSR1 and BSR2 from UE1 and UE2, respectively. An example of step  508  is small cell  110  receiving BSR  226 ( 1 ) and  226 ( n ) from UEs  102 ( 1 ) and  102 ( n ), respectively. 
     Optional step  510  of method  500  compares the optional step  506  determined available resources to the step  508  received BSRs (BSR1 and BSR2) to determine if the small cell has resources to accommodate the UE requests. An example of step  510  is small cell  110  comparing its predetermined available resources with the received BSRs  226 ( 1 ) and  226 ( n ) to determine if resources are available and when they are available. 
     Decision step  512  of method  500  determines if and when resources are available to accommodate the BSRs. If resources are available method  500  moves to step  514 . If resources are not available, method  500  moves to step  542  of  FIG. 5B , described below. An example of step  512  is small cell  110  producing a result as to the available resources and acting on that result by initiating either the process of step  514  or  540 ,  FIG. 5B . 
     Step  514  of method  500  generates a UE1 Grant and a UE2 Grant to accommodate all data requested by BSR1 and BSR2. An example of step  514  is small cell  110  producing a grant  222 ( 1 ) for UE  102 ( 1 ) and a grant  222 ( n ) for UE  102 ( n ). 
     Step  516  of method  500  combines all grants, e.g., UE1 grant and UE2 grant, to generate a bulk backhaul request and transmits the bulk backhaul request to the processing aspect of the backhaul system. An example of step  516  is small cell  110  combining grants  222 ( 1 ) and  222 ( n ) as described, for example, in  FIGS. 3 and 4A and 4B , to produce and transmit bulk REQ  270  to MTS  124  via modem  122 . It will be understood that other backhaul components may be involved in the process, for example, if alternative backhaul systems are used, e.g., any backhaul system that relies on a request grant protocol. 
     Step  518  of method  500  sends UE1 grant to UE1 and UE2 grant to UE2. An example of step  518  is small cell  110  transmitting grant  222 ( 1 ) and  222 ( n ) to UE  102 ( 1 ) and  102 (N), respectively. 
     Step  520  of method  500  receives bulk grant from backhaul system. An example of step  520  is MTS generating a bulk grant  280  that is then received by small cell  110  from MTS  124  via modem  122 . 
     Step  522  of method  500  receives UE1 and UE 2 data and optionally receives a second BSR1 from UE1 and a second BSR2 from UE2. An example of step  520  is small cell  110  receiving data  224 ( 1 ) and  224 ( n ) from UEs  102 ( 1 ) and  102 ( n ), respectively. Optionally, small cell  110  may also receive a new BSR from UE  102 ( 1 ), BSR_A, and a new BSR from UE  102 ( n ), BSR_B. 
     Step  524  of method  500  process bulk grant and bulk request to determine if the bulk grant accommodates all of UE1 and UE 2 Data. An example of step  522  is small cell  100  determining if the bulk grant received in step  520  satisfies the bulk REQ  270 , sent is step  516 . 
     Decision step  526  of method  500  provides a decision based on the results of step  524 , determining if the bulk grant accommodates all of UE1 and UE 2 Data. If it is determined that the bulk grant does not accommodate all of the data described in the bulk request, decision method  500  moves to step  550  of  FIG. 5C , described further below. If step  526  determines that the bulk grant satisfies the bulk request, then method  500  moves to step  528 . An example of step  524  is small cell  110  processing the result of a comparison between the bulk grant and the bulk request. 
     Step  528  of method  500  groups UE1 data and UE2 data for transmission to the mobile core via the backhaul system. One example of step  528  is small cell  110  packaging data A+B  412 , as described in  FIG. 4A . 
     Step  530  of method  500  transmits UE1 Data and UE2 Data to the Mobile Core via the Backhaul system. One example of step  530  is small cell  110  transmitting data  224 ( 1 )+ 224 ( n ) to mobile core  130  via modem  222  and MTS  224 , as described in  FIG. 4A . 
       FIG. 5B  shows a method  540 , which branches from step  512  of method  500 ,  FIG. 5A , for handling a partial small cell grant. 
     In step  542  method  540  generates a UE1 and UE2 partial grant to accommodate a portion of the requested resources as described in BSR1 and BSR2. One example of step  542  is small cell  110  processing the results of step  506  and BSR  226 ( 1 ) and BSR  226 ( n ) to generate a partial grant for BSR  226 ( 1 ) and a partial grant for BSR  226 ( n ). 
     In step  544  method  540  combines UE1 and UE2 partial grants to generate bulk request and transmits the bulk request to the backhaul system for processing. One example of step  544  is small cell  110  combining partial grants (not shown) to produce a bulk request, similar to bulk REQ  270 , and transmitting it to MTS  124  via modem  122 . 
     In Step  546  method  540  transmits the partial grants, generated in step  542 , to UE1 UE2. One example of step  546  is small cell  110  transmitting partial grants, similar to grants  222 ( 1 ) and  222 ( n ), to UEs  102 ( 1 ) and  102 ( n ). 
     In step  548  method  540  receives a bulk grant from the backhaul system. One example of step  548  is small cell  110  receives a bulk grant, similar to bulk grant  280  of  FIG. 4A , from MTS  124  via modem  122 . 
     In step  550  method  540  receive data and optionally new BSRs from the UEs. One example of step  550  is small cell  110  receiving data, similar to data  224 ( 1 ) and  224 ( n ) from UEs  102 ( 1 ) and  102 ( n ). Method  540  then moves to step  524  of  FIG. 4 . 
       FIG. 5C  shows a method  560 , which branches from step  526  of method  500 ,  FIG. 5A , for handling a partial backhaul grant. 
     In step  562  method  560  performs a logical channel grouping by grouping together all UE data by Logical Channel Group (LCG) such that, for example, all UE1-UEn data designated as Logical Channel Group 0 (LCG0) are grouped together, all UE1-UEn data designated as Logical Channel Group 1 (LCG1) are grouped together, etc. One example of step  562  is LC grouper  304  taking in data  224 ( 1 ) and  224 ( n ) and placing LCG0_1 data with LCG0_n data in LCG0  306 , placing LCG1_1 data with LCG1_n data in LCG1  307 , placing LCG2_1 data with LCG2_n data in LCG2  308 , placing LCG3_1 data with LCG3_n data in LCG3  309 , as described in  FIGS. 3 and 4B . Alternatively, metadata describing LCG0-LCG3 may be grouped together or otherwise organized for analysis in the later steps of method  560  to determine what LCG data the grant may accommodate. 
     In step  564  method  560  performs an upstream fit calculus by analyzing if the bulk grant can accommodate the LCG0 data. Method  560  then moves to decision step  566  where method  560  makes a decision based on the result of step  564 . If the bulk grant cannot accommodate all of the LCG0 data then method  560  moves to step  590 , where method  560  buffers any un-accommodated LCG data for later transmission. 
     Alternatively, if the bulk grant cannot accommodate all of the LCG0 data then method  560  may perform a second analysis (not shown) to determine if the bulk grant can accommodate LCG0 data from a UE in order of priority. For example, UE 1 (e.g., a medical device) may have a higher priority than UE2 (e.g., a gaming device) such that if the bulk grant cannot accommodate all of LCG0 data (e.g., UE1 LCG0 data plus UE2 LCG0 data) then method  560  may determine if the bulk grant can accommodate LCG0 data from high priority UE1 only. If the bulk grant can only accommodate UE1 LCG0 data, then method  560  moves UE2 LCG0 data to step  590 , buffering it for later transmission and UE1 LCG0 data is moved through the rest of method  560  or just prepared for transmission if the bulk grant cannot accommodate any other data. Although it will not be repeated again, the above alternative process may be included with any similar steps described below. 
     If it is determined in step  566  that the bulk grant can accommodate all of the LCG0 data then decision step  566  moves to step  567 . 
     In step  567  method  560  prepares the LCG0 data for transmission. One example of step  567  is LCG0_1 and LCG0_n data being sent to transmit buffer  328 ,  FIG. 3 . 
     In step  568  method  560  performs an upstream fit calculus by analyzing if the bulk grant can accommodate the LCG1 data. Method  560  then moves to decision step  570  where method  560  makes a decision based on the result of step  568 . If the bulk grant cannot accommodate all of the LCG1 data then method  560  moves to step  590 , where method  560  buffers any un-accommodated LCG data for later transmission. If it is determined in step  570  that the bulk grant can accommodate all of the LCG1 data then decision step  570  moves to step  571 . 
     In step  571  method  560  prepares the LCG1 data for transmission. One example of step  571  is LCG1_1 and LCG1_n data being sent to transmit buffer  328 ,  FIG. 3 . 
     In step  572  method  560  performs an upstream fit calculus by analyzing if the bulk grant can accommodate the LCG2 data. Method  560  then moves to decision step  574  where method  560  makes a decision based on the result of step  572 . If the bulk grant cannot accommodate all of the LCG2 data then method  560  moves to step  590 , where method  560  buffers any un-accommodated LCG data for later transmission. If it is determined in step  574  that the bulk grant can accommodate all of the LCG1 data then decision step  574  moves to step  575 . 
     In step  575  method  560  prepares the LCG2 data for transmission. One example of step  575  is LCG2_1 and LCG2_n data sent to transmit buffer  328 ,  FIG. 3 . 
     In step  576  method  560  performs an upstream fit calculus by analyzing if the bulk grant can accommodate the LCG3 data. Method  560  then moves to decision step  578  where method  560  makes a decision based on the result of step  576 . If the bulk grant cannot accommodate all of the LCG3 data then method  560  moves to step  590 , where method  560  buffers any un-accommodated LCG data for later transmission. If it is determined in step  578  that the bulk grant can accommodate all of the LCG3 data then decision step  578  moves to step  579 . 
     In step  579  method  560  prepares the LCG3 data for transmission. One example of step  579  is LCG3_1 and LCG3_n data being sent to transmit buffer  328 ,  FIG. 3 . 
     In step  580  all data that can be accommodated by the bulk grant is sent, via the backhaul system to its destination, e.g., a mobile or Wi-Fi core. 
     It is not necessary that the steps described here for method  560  be performed in the order described. For example, all processing steps may be performed prior to all decision steps. Furthermore, additional steps may be included that are not shown. For example, the method and associated system may package any buffered un-accommodated data such that the packaged data may be easily added to a forth coming backhaul bulk request. The method and associated system may also monitor the portions of data within the buffered un-accommodated data to determine if any of that data has become “stale.” Any stale data may be removed and the remaining data may be repackaged so it may be added to any forth coming backhaul bulk request. 
       FIG. 6  is a communication diagram  601  implemented by a system  600  for a prior art grant assignment process, in an embodiment. 
     The system  600  of  FIG. 6  is similar to system  400  and  450  of  FIGS. 4A and 4B , with the exception that only a single user device (UE)  102  is shown, SC  110  of  FIGS. 4A and 4B  is split into remote Small Cell (rSC)  610  and centralized Small Cell (cSC)  630  (which together may be viewed as an implementation of SC  110 ), MTS  124  is split into a Remote PHY Device (RPD)  623  and a virtual MTS (vMTS)  624  (which together can be viewed as an implementation of MTS  124 ), and mobile core  130  is not shown for sake of clarity. Depending on the split points within the protocol, solutions can be implemented on small cells, such as SC  110  or the combination of rSC  610  and cSC  630 , and the MTS, such as MTS  124  or the combination of RPD  623  and vMTS  624  to synchronize the REQ-GNT process with LTE. One non-limiting example of a REQ-GNT process is a DOCSIS REQ-GNT process. 
     Communication diagram  601  is shown after the transmission and processing of a service requests (SR) and receipt of a BSR Grant associated with the transmission of a Buffer Status Report (BSR)  670 . This process is similar to but not the same as that shown in part in  FIGS. 4A and 4B  and their associated descriptions. In communication diagram  601  UE  102  wirelessly transmits BSR  670  to cSC  630  via rSC  610 , modem  122 , RDP  623 , and vMTS  624 . cSC  630  then processes BSR  670  in an UpLink (UL) grant generation  675  process to generate an UL Grant  680 . UL Grant  680  is then transmitted from cSC  630  to UE  102  via vMTS  624 , RPD  623 , Modem  122 , and rSC  610 . In response to the receipt of UL grant  680  UE  102  transmits UL data+BSR  625  to rSC  610 . rSC buffers UL data+BSR  625  and then transmits it to modem  122 . Upon receipt of UL data+BSR  625  modem  122  transmits a REQ  626  to vMTS  624  via RPD  623 . vMTS  624  process REQ  626  to generate a MAP  627 , which is sent back to modem  122  via RPD  623 . Upon receipt of MAP  627  modem  122  transmits UL data+BSR  625  to vMTS  624 . vMTS  624  forwards UL data+BSR  625  to cSC  630  for processing. 
     One potential area for improvement in communication diagram  601  is a latency reduction accomplished by generating a MAP for an unsolicited grant at vMTS  624  (or MTS  124 ) for modem  122 . This allows modem  122  to forward UL data as soon as it is received thus avoiding delays linked with REQ  626  and MAP  627  of  FIG. 6 . Such a solution is detailed in  FIG. 7 . 
       FIG. 7  is a communication diagram  651  implemented by system  600  for the present unsolicited grant process, in an embodiment, which reduces latency by pre-scheduling resources via the vMTS for the modem. 
     As for communication diagram  601   FIG. 6 , above, communication diagram  651  is shown after the transmission and processing of a service requests (SR) and receipt of a BSR Grant associated with the transmission of a Buffer Status Report (BSR)  670 , as in known in the art. In communication diagram  651  UE  102  wirelessly transmits BSR  670  to cSC  630  via rSC  610 , modem  122 , RDP  623 , and vMTS  624 . 
     This is where the unsolicited grant process described in communication diagram  651  diverges from the process described in diagram  601 . In one embodiment cSC  630  processes BSR  670  in an UpLink (UL) grant and summary generation process  676  to generate an UL Grant  680  and an UL grant summary  690 . As detailed above for diagram  601 , UL Grant  680  is transmitted from cSC  630  to UE  102  via vMTS  624 , RPD  623 , Modem  122 , and rSC  610 . cSC  630  also transmits UL grant summary  690  to vMTS  624 . vMTS  624  processes UL grant summary  690  in a scheduling and MAP generation process  692  to generate an MAP for an unsolicited grant  694 , which is sent to modem  122  via RPD  623 . By pre-generating the MAP for the unsolicited grant  694  for modem  122 , modem  122  is prepared to forward any data, e.g., data+BSR  625  to vMTS  624  and UL data+BSR  625  to cSC  630 , at the instance modem  122  receives the data from rSC  610 , as discussed below. 
     Returning to UE  102  after the receipt of UL grant  680 , in response to the receipt of UL grant  680  UE  102  transmits UL data+BSR  625  to rSC  610 . rSC  610  buffers UL data+BSR  625  then transmits it to modem  122 . Upon receipt of UL data+BSR  625  modem  122  utilizes data associated with the MAP for uplink grant  694  to forward UL data+BSR  625  to vMTS  624  via RPD  623  utilizing the prescheduled resources. vMTS  624  then forwards the UL data+BSR  625  to cSC  630 . 
     Thus, removing the REQ  626 /MAP  627  steps described in communication diagram  601  by pre-generating a MAP for unsolicited grant  694  advantageously reduces latency. 
     The above described process relies on a cSC  630  provided grant summary for vMTS  624  to generate the MAP for unsolicited grant  694 . It will be understood that other processes and mechanisms may be utilized. For example, in another embodiment cSC  630  only transmits an uplink grant, one example of which is UL grant  680 , to UE  102  via the process detailed above, which includes the receipt and transmission of UL grant  680  via vMTS  624 . In this embodiment vMTS  624  intercepts or otherwise generates a copy of UL grant  680  prior to forwarding it to UE  102 . vMTS  624  may then access the intercepted or copy of the UL grant  680  data. vMTS  624  then executes the scheduling and MAP generation process  692  utilizing the accessed uplink grant data. 
     In another embodiment, vMTS  624  may intercept or otherwise copy BSR  670  prior to forwarding it to cSC  630 . vMTS  624  may then process the BSR  670  data in a scheduling and MAP generation process  692  to generate the MAP for UL grant  694 . 
     Changes may be made in the above methods and systems without departing from the scope hereof. It should thus be noted that the matter contained in the above description or shown in the accompanying drawings should be interpreted as illustrative and not in a limiting sense. The following claims are intended to cover all generic and specific features described herein, as well as all statements of the scope of the present method and system, which, as a matter of language, might be said to fall there between.