5G/NR - MAC CE            

 

 

 

 

MAC CE - Buffer Status Report MAC CEs  

 

The functionality of BSR in NR is exactly sa the LTE BSR. For the BSR functionality, refer to LTE BSR page. The dfference is the structure of MAC CE and the length of Buffer Size Bit field. It is understandable that the length of the BSR bit field in NR would be longer than LTE BSR. Another difference is that NR BSR has explcit bit field for LCG as shown below whereas LTE BSR specifies LCG implcitely.

 

Simply put, Buffer Status Report (BSR) is a message from UE to eNB (MAC layer command) saying 'I have this amount of data to send would you give grants big enough to transmit all of these data ?"

 

As a formal definition, 38.321-5.4.5 states as follows :

    The Buffer Status reporting (BSR) procedure is used to provide the serving gNB with information about UL data volume in the MAC entity.

 

 

 

Parameters for BSR and Overall Operation

 

In order to send BSR, the first thing UE has to do is to estimate how much data it has to transmit. This process is called 'Data Volumn Calculation'.  The data volumn to transmit is based on how much data is in RLC and PDCP. Regarding RLC layer data volumn calculation, there are several factors to be used to calculate the data volumn as listed below (based on 38.322-5.5)

  • RLC SDUs and RLC SDU segments that have not yet been included in an RLC data PDU;
  • RLC data PDUs that are pending for initial transmission;
  • RLC data PDUs that are pending for retransmission (RLC AM).

 

Regarding PDCP layer data volumn calculation, there are also factors to be used to calculate the data volumn as listed below (based on 38.322-5.5)

  • the PDCP SDUs for which no PDCP Data PDUs have been constructed;
  • the PDCP Data PDUs that have not been submitted to lower layers;
  • the PDCP Control PDUs;
  • for AM DRBs, the PDCP SDUs to be retransmitted according to 38.322-5.1.2;
  • for AM DRBs, the PDCP Data PDUs to be retransmitted according to 38.322-5.5.

 

Once Data Volumn Calculation is done, UE need to determine exactly when it needs to send BSR and for which logical channel it wants to send. There are multiple parameters affecting this decision making. According to 38.321-5.4.5, those parameters are as follows :

  • periodicBSR-Timer;
  • retxBSR-Timer;
  • logicalChannelSR-DelayTimerApplied;
  • logicalChannelSR-DelayTimer;
  • logicalChannelSR-Mask;
  • logicalChannelGroup.

These parameters can be configured by Rrc message.

 

 

 

Data Structure of BSR MAC CE

 

 

<  38.321-Figure 6.1.3.1-1: Short BSR and Short Truncated BSR MAC CE >

 

 

<  38.321-Figure 6.1.3.1-2: Long BSR and Long Truncated BSR MAC CE >

 

 

<  38.321-Table 6.1.3.1-1: Buffer size levels (in bytes) for 5-bit Buffer Size field >

 

 

<  38.321-Table 6.1.3.1-2: Buffer size levels (in bytes) for 8-bit Buffer Size field >

 

 

 

RRC Parameters for BSR

 

 

MAC-CellGroupConfig ::= SEQUENCE {

   drx-Config                   SetupRelease { DRX-Config } OPTIONAL, -- Need M

   schedulingRequestConfig      SchedulingRequestConfig OPTIONAL, -- Need M

   bsr-Config                   BSR-Config OPTIONAL, -- Need M

   tag-Config                   TAG-Config OPTIONAL, -- Need M

   phr-Config                   SetupRelease { PHR-Config } OPTIONAL, -- Need M

   skipUplinkTxDynamic          BOOLEAN,

   ...,

   [[

   csi-Mask-v1530               BOOLEAN OPTIONAL , -- Need M

   dataInactivityTimer-v1530    SetupRelease { DataInactivityTimer } OPTIONAL -- Need

   PCellOnly

   ]]

}

 

 

BSR-Config ::= SEQUENCE {

   periodicBSR-Timer              ENUMERATED { sf1, sf5, sf10, sf16, sf20, sf32, sf40, sf64,

                                               sf80, sf128, sf160, sf320, sf640, sf1280,

                                               sf2560, infinity },

   retxBSR-Timer                  ENUMERATED { sf10, sf20, sf40, sf80, sf160, sf320, sf640,

                                               sf1280, sf2560,sf5120, sf10240, spare5, spare4,

                                               spare3, spare2, spare1},

   logicalChannelSR-DelayTimer    ENUMERATED { sf20, sf40, sf64, sf128, sf512, sf1024,

                                               sf2560, spare1} OPTIONAL, -- Need R

...

}

 

 

Reference

 

[1]