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. 

24 comments:

  1. Nice Explanation. There is just a typo "LC ID is the 6 least significant bits" instead of 5.

    ReplyDelete
  2. Maybe a silly question, but I just can't get over it: 36.321 states that the retxBSR timer is to be restarted when the UE is allocated UL resources and a BSR is to be sent if the timer expires.
    But what I am missing (in the standard) is that the timer is started again, when a BSR has been triggered following the expiry of the timer.
    What if the thus triggered BSR gets lost for some reason? Shouldn't the retxBSR timer be restarted directly upon expiry and triggering of BSR? Or is it implicitly clear to the "knowledgeable individual" that the timer is restarted in this case, as well?

    ReplyDelete
    Replies
    1. What do you mean by Triggered BSR gets lost for some reason? could you please elaborate? I don't see any reasons/scenarios where a triggered BSR gets lost...could you please provide an example?

      FYI.., The expiry of the retxBSR-Timer doesn't trigger a Regular BSR unless there is data available for transmission for any of the logical channels which belong to a LCG...

      Delete
    2. Thanks for responding.

      What I mean is this situation:
      * The retxBSR timer expires.
      * So the UE sends a BSR.
      * But the BSR happens to not be successfully decoded by the eNB. (It's a wireless link, so packet losses do happen.)

      What then? I would expect that the UE would send the BSR again after a certain period of waiting in vain for a reaction from the network. (This could e.g. be achieved by restarting the retrxBSR timer when the last BSR was sent out.) Otherwise the UE might wait for a needlessly long time (e.g. until higher prio data arrives in its buffer) for a chance to transmit data, while the network is not even aware of the UE having data to transmit.

      Delete
    3. Hi,

      Sorry for the very delayed response. Referring to your original question (after you explained it a bit more), the answer is Yes, the reTxBSR-Timer is restarted which is also specified in 36.321.

      Upon the expiry of retxBSR-Timer and the UE still has data available for transmission for any of the logical channels which
      belong to a LCG, in which case the regular BSR is triggered. This timer is started or restarted in the TTI where the UE has UL resources allocated for new transmission...

      Delete
    4. Hi,
      My understanding as per spec.. In case for Regular BSR (sent first timer or after reTxBSR-Timer expiry), if eNB haven't granted the UL resources (and no further UL resources to send BSR in next occasion) then SR request is sent. Upon UL grant regular BSR is sent.
      Correct me if am wrong...

      Delete
  3. How UE report the BSR to EnodeB with PHY layer .
    Example:
    SR is transmitted on PUCCH format 1 similar how BSR will be send to EnodeB

    ReplyDelete
    Replies
    1. BSR is sent on PUSCH when the grant becomes available

      Delete
  4. BSR needs a grant from the UE. That is why SR has been sent.

    ReplyDelete
    Replies
    1. Typo
      BSR needs a grant from the Network. That is why SR has been sent.

      Delete
  5. Hi Kumar, why does BSR with padding has less priority compared to those without padding? In Spec 36.321 (v12.9.0), section 5.4.3.1, indicates the same.

    ReplyDelete
    Replies
    1. Padding BSR is sent just to indicate the network with the current buffer status when the allocated grant allows space...Other BSRs for example Regular BSR and Periodic BSR are the main BSRs which are triggered when there is data to be sent in the UL Buffer. Hope this clarifies.

      Delete
  6. "When a BSR other than Regular BSR is triggered, Scheduling Request shall not be triggered"
    Here my question is , then how and at what instance other BSR are sent to eNB..It will be very useful if you can depict an diagram along with explanation .
    As explained by you , regular BSR are sent on PUCCH-UCI- PUCCH format 1
    regular BSR can be Short or longBSR MAC CE , can you please explain for the other BSR

    ReplyDelete
    Replies
    1. Q: how and at what instance other BSR are sent to eNB
      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.

      Q: regular BSR can be Short or longBSR MAC CE , can you please explain for the other BSR
      Periodic and Padding BSR can also be Long or Short. But Padding BSR can be truncated as well

      Delete
    2. Hi Sir,

      Hi,
      My understanding as per spec.. In case for Regular BSR (sent first timer or after reTxBSR-Timer expiry), if eNB haven't granted the UL resources (and no further UL resources to send BSR in next occasion) then SR request is sent. Upon UL grant regular BSR is sent.
      Correct me if am wrong...

      Here you are agreeing that SR would be sent after retxBSR timer expiry...It seems contradictory to me.

      Delete
  7. I have a makeshift network I am using. In one of the setups I have, the UE is constantly sending completely empty BSR Padding messages, making the throughput of the UL always 5.99Mbps. So I have 2 questions:
    1. What would cause the UE to constantly send the empty padding?
    2. Is this setup (where the BSR padding is constantly sent by the UE) viable/true in a real LTE network such as AT&T/Verizon?

    ReplyDelete
    Replies
    1. Yes it is true in real network as well.

      Delete
    2. It might be that, at those specific TTIs where Padding BSR indicated zero size, UL grant(s) in this TTI could accommodate all the data in the buffer in which case ZERO size padding BSR indicates not pending data in the UL buffers

      Delete
  8. Could you please explain the impact of Latency Ping LTE when we have the below 2 configuration?
    periodicBSR-Timer: 14 ( infinity)
    periodicBSR-Timer: 1 ( sf10)

    ReplyDelete
    Replies
    1. Based on the ping interval a regular BSR is anyway triggered.

      Delete
  9. Thank you for your information.what is difference between LCG and LCID and how both are related?

    ReplyDelete
  10. My understanding is, LCG 0 contains LCID 0, 1, 2. ( All SRB's). Higher LCID's are stored in LCG 1, 2 or 3. (stores DRB'S)

    ReplyDelete
  11. Hi,
    When does the UE sends the BSR with Size 0, is it similar to padding BSR and does enb should give UL grant for such BSR?

    Kindly reply

    ReplyDelete