Showing posts with label Buffer Status Reporting. Show all posts
Showing posts with label Buffer Status Reporting. Show all posts

LTE: Buffer Status Reporting Procedure

The Buffer Status reporting procedure is used to provide the serving eNB with the information about the amount of data available for transmission in the UL buffers of the UE
Trigger for BSR and the types of BSRs
There are three types of BSRs; Regular BSR, Periodic BSR, and Padding BSR
Before we learn about how BSR is triggered, it is important to know about RRC parameters which control BSR reporting. RRC configures two timers periodicBSR-Timer and retxBSR-Timer and optionally allocates a Logical Channel Group (LCG) to each logical channel.
Logical Channel Group is signalled under LogicalChannelConfig of each RB. The mapping of a RB (or logical channel) to a LCG is done at the time when RB is setup by the eNB which may be based on the corresponding QoS attributes of the radio bearers such as QCI. There are 4 LCGs numbered from 0 to 3. For SRB1 and SRB2, LCG is 0 by default
A Buffer Status Report (BSR) shall be triggered if any of the following events occur:
  • When UL data, for a logical channel which belongs to a LCG, becomes available for transmission in the RLC entity or in the PDCP entity and there is no data available for transmission for any of the logical channels which belong to any LCG (This is called as Regular BSR)
  • When UL data, for a logical channel which belongs to a LCG, becomes available for transmission in the RLC entity or in the PDCP entity and the data belongs to a logical channel with higher priority than the priorities of the logical channels whose buffers are not empty (This is also called as Regular BSR)
  • retxBSR-Timer expires and the UE has data available for transmission for any of the logical channels which belong to a LCG (Even this is also called as Regular BSR)
  • UE has UL resources allocated and number of padding bits is equal to or larger than the size of the BSR MAC CE + its subheader (This is referred to as Padding BSR)
  • When periodicBSR-Timer expires, the triggered BSR is called as Periodic BSR

retxBSR-Timer and periodicBSR-Timer
retxBSR-Timer is introduced to improve the robustness of UE’s buffer status reporting behavior. This avoids deadlock situation such as the case where the UE has transmitted BSR but never received an uplink grant. This could be for example; eNodeB has erroneously decoded data on PUSCH and transmitted NACK but UE detected NACK as ACK.
The UE starts/restarts retxBSR-Timer upon indication of a grant for transmission of new data on UL-SCH. Upon the expiry of this timer, regular BSR is triggered. This timer is configured by RRC and can vary from 320ms till 10.24 seconds     
periodicBSR-Timer triggers Periodic BSR. Periodic BSR is used to provide the eNodeB with the updated buffer status report. Unlike retxBSR-Timer, periodicBSR-Timer is optional and can be set to Infinity to disable this timer. Its’ values vary from 5ms to 2.56 seconds.
BSR Formats
BSR is UE’s MAC procedure and the BSR is sent as ‘Buffer Status Report MAC Control Element’
BSR MAC CE consists of either Short BSR/Truncated BSR or Long BSR.
Short BSR/Truncated BSR is 1-byte MAC CE, so it requires two bytes (including 1-byte subheader) for reporting using this format.
Long BSR requires 4-bytes (3-bytes of Long BSR MAC CE + 1-byte subheader)
LCID value of 11100 indicates Truncated BSR, 11101 indicates Short BSR and 11110 indicates Long BSR

Short/Truncated BSR and Long BSR formats are presented below. 
 


In Short/Truncated BSR, buffer status is reported for only one LCG. LCG ID identifies the LCG (0 to 3) for which buffer status is being reported. Since there are 4 LCGs, 2-bits are required to identity LCG.
Using Long BSR, the UE can report buffer status of all LCGs (0 to 3). So the Long BSR consists of four Buffer Size fields, corresponding to LCG IDs #0 through #3
In either Short/Truncated BSR or Long BSR, the buffer size field is of 6-bits size which indicates the total amount of data available across all logical channels of a LCG after the MAC PDU has been built. The amount of data is indicated in number of bytes. It shall include all data that is available for transmission in the RLC layer and in the PDCP layer. The size of the RLC and MAC headers are not considered in the buffer size computation.
The Buffer status is reported as one of the ‘Index’ shown in the below table which is based on the buffer size. The ‘Index’ value varies from 0 to 63 which requires exactly 6 bits

Relationship between BSR types and BSR formats
For Regular and Periodic BSR:
       -  if more than one LCG has data available for transmission in the TTI where the BSR 
                 is transmitted: report Long BSR;
       -  else report Short BSR.
For Padding BSR:
       -  if the number of padding bits is equal to or larger than the size of the Short BSR 
              plus its subheader but smaller than the size of the Long BSR plus its subheader:
         -  if more than one LCG has data available for transmission in the TTI where 
              the BSR is transmitted: report Truncated BSR of the LCG with the highest 
              priority logical channel with data available for transmission;
         -  else report Short BSR.
        -  else if the number of padding bits is equal to or larger than the size of the Long 
               BSR plus its subheader, report Long BSR.

If a Regular BSR is triggered, MAC triggers Scheduling Request procedure. If the UE has a valid PUCCH resource for transmission of SR, then SR is transmitted, otherwise, Random Access procedure is triggered
When a BSR other than Regular BSR is triggered, Scheduling Request shall not be triggered

In Release-9, a new IE logicalChannelSR-Mask-r9 under LogicalChannelConfig is introduced. This controls SR triggering on a logical channel basis when an uplink grant has been configured (UL SPS). For example, logical channel ID - 2 has IE logicalChannelSR-Mask setup, and if uplink has been configured (UL SPS), then the UE doesn’t trigger SR procedure. The UE may anyway use the configured grant to transmit data available on this logical channel so triggering SR would be unnecessary.

A MAC PDU shall contain at most one MAC BSR control element, even when multiple events trigger a BSR by the time a BSR can be transmitted in which case the Regular BSR and the Periodic BSR shall have precedence over the padding BSR

All triggered BSRs shall be cancelled in case the UL grant can accommodate all pending data available for transmission but is not sufficient to additionally accommodate the BSR MAC control element plus its subheader

All triggered BSRs shall be cancelled when a BSR is included in a MAC PDU for transmission

Long BSR example: Let us consider an example in which only Long BSR is being transmitted (the grant size is such that there is no padding also)

MAC PDU: 1E 2C 31 3F
Subheader: 1E 00011110 LC ID is the 5 least significant bits 11110 Long BSR MAC CE
Remaining 3 octets (24 bits) will carry Long BSR MAC CE which contains BSR for LCG ID#0 through LCG ID#3, where each LCG occupies 6 bits. Binary format of hex 2C 31 3F = 001011000011000100111111
BSR index for LCG ID#0 = 001011= 11 Buffer Size of LCG ID#0 is more than 42 bytes and less than or equal to 49 bytes.
         BSR index for LCG ID#1 = 000011= 3 (12 < Buffer Size (in bytes) <= 14)
         BSR index for LCG ID#2 = 000100= 4 (14 < Buffer Size (in bytes) <= 17)
         BSR index for LCG ID#3 = 001100 = 63 (Buffer Size (in bytes) > 150000)

Short BSR example: Let us consider an example in which only Short BSR is being transmitted (the grant size is such that there is no padding also)

MAC PDU: 1D 2C
Subheader: 1D 00011101 LCD ID is the 5 least significant bits 11101 Short BSR MAC CE
Second octet (2C) will carry Short BSR MAC CE. Binary format of 2C = 00101100. Two MSBs carry LCG ID, in this case, LCG ID = 0. Remaining 6-bits (101100) carry Buffer Size Index for LCG ID #0.
BSR index for LCG ID#0 = 101100= 44 Buffer Size of LCG ID#0 is more than 7505 bytes and less than or equal to 8787 bytes.