BSR is a MAC UpLink control element.
Truncated BSR LCID value is “11100” in binary and 28 in decimal
Short BSR LCID value is “11101” in binary and 29 in decimal
Long BSR LCID value is “11110” in binary and 30 in decimal
BSR is used to indicate how much data are buffered in UE memory for uplink radio resource allocation.
UE needs to send the BSR to the eNB to indicate the amount of data is there in UE buffer that needs to be transmitted in each LCGID.
It means UE is asking eNB to grant the buffer to be transmitted. If accepted by network, it will allocate bare minimum UL grant (resource for PUSCH).
With the help of BSR, network can optimize UL resources, by allocating when it is necessary and not allocating too much of resources.
There are 2 formats that are defined for BSR
1. Long BSR
2. Short BSR
3. Truncated BSR, that is a part of Short BSR with different LCID value.
1. Short BSR:
It is used to deliver buffer status information for only one LCG.
So if eNB receives Short BSR from the UE, it means that only one LCG included in short BSR is having data to send and other LCG do not have any data.
If you see the above image, it as a LCG ID field to indicate for which LCG short BSR is referring to.
Decoding Short BSR MAC PDU:
MAC PDU : 1D 25
Decode the sub header and check if there are additional sub header and has MAC CE?
1D => 0001 1101
Here “E = 0”, so no additional sub header.
“11101” => This represents shortBSR. Hence concentrate on next octate.
“25” => 0010 0101
LCG ID: 00
Buffer Index: 100101
2. Truncated BSR:
It has the same format as short BSR with different LCID.
This is send when UE cannot include a Long BSR in the MAC PDU and when more than one LCG have data to send.
When eNB receives a Truncated BSR, it knows that other LCGs that are not indicated in the Truncated BSR also have data to send.
3. Long BSR:
It is longer than short BSR. It is used to deliver the buffer status information for 4 Logical Channel Groups.
Logical Channel Groups are the grouping of logical channel with similar attributes into 4 LCG and making UE to report the buffer status per LCG.
Buffer Size #0 is BSR index for LCG 0
Buffer Size #1 is BSR index for LCG 1
Buffer Size #2 is BSR index for LCG 2
Buffer Size #3 is BSR index for LCG 3
Note:
Irrespective of the type, the buffer size is always 6 bits. It means it can vary from 0 to 63.
We take that value and compare it with Buffer size levels for BSR table as below:
The above types of BSR is related to Data Structure. Depending upon timing there are 3 different types:
1. Regular BSR : It is send when a new data is available in UL buffer and it has higher priority than the one already present.
2. Periodic BSR : It is sent with the predefined periodicity.
3. Padding BSR : It is sent when the number of padding bits in a data message is larger than the size of BSR
IE’s present in “radioResourceConfigDedicated” in RRC Connection Reconfiguration:
periodicBSR-Timer
retxBSR-Timer
Situations when a BSR is triggered:
1. When a data arrives for a logical channel which has a higher priority that the already present logical channel buffers. In this case UE will trigger Regular BSR.
2. When data is available for UE buffer which is empty. It will trigger Regular BSR.
3. When retxBSR-Timer expires [retransmission BSR Timer] and there is still data in UE’s buffer. In this case it will trigger Regular BSR.
4. When periodicBSR-Timer expires. It will trigger Periodic BSR. Periodic BSR is used for the UE periodically deliver updated buffer status.
5. UE got the UL Grant and the padding data is larger than the size of BSR CE and the subheader
What is the need of periodic buffer status report?
Initially there is data available in only one Logical Channel, that is arriving continuously at UE’s buffer and the UE is in the middle of transaction of the data. In this case short BSR is triggered, and no data will be available in other logical channels.
Suppose in future, more data may arrive at the other local channel, and that logical channel may be discarded. To prevent this from happening, periodically BSR needs to be transmitted.
When to send Long BSR and Short BSR?
if the number of LCG with allocated data > 1, then long BSR, else short BSR.
retxBSR-Timer:
Suppose UE sends regularBSR to eNB, eNB will send uplink grant.
So, how much time does UE needs to wait for eNB to response?
This is taken care by “retxBSR-Timer”. UE will start this timer when UE sends BSR to eNB. Upon the expiry of this timer, again regular BSR is triggered.
eNB will send the value for this timer in RRC Connection Reconfig in macMainConfig and can vary from 320ms till 10.24 seconds