Buffer Status Reporting (BSR)

BSR is the MAC-layer mechanism by which a UE tells the gNB how much uplink data it has pending across its Logical Channel Groups (LCGs). Covers three trigger types (Regular, Periodic, Padding), four BSR formats (Short, Long, Short Truncated, Long Truncated), BSR index mapping, timer management, and 6G evolution (AI-predictive, compressed BSR, sensing-aware).

LCP → Scheduling → HARQ →

#1What Problem Does BSR Solve?

The gNB needs to decide how many bytes to grant the UE. Without BSR, it must guess. With BSR, the UE reports exact buffer sizes per LCG.

Without BSR

gNB guesses → grants too small (data stuck) or too large (wasted resources). No visibility into UE traffic.

With BSR

UE reports: "LCG-0: 200 B, LCG-1: 2000 B, ..." → gNB grants exactly what's needed. Demand-driven scheduling.

Logical Channel Groups (LCGs)

8 LCGs in 5G NR — group LCs with similar QoS to reduce overhead:

8 Logical Channel Groups — each reports total buffer per LCG in the BSR MAC CE


#2Three BSR Trigger Types

Regular BSR

Triggered when: (1) new data arrives at higher priority LC, (2) empty LCG gets new data, or (3) retxBSR-Timer expires with data pending.

Periodic BSR

Triggered when periodicBSR-Timer expires. Regular updates to keep gNB informed. Typical: SF20 (20 ms) for voice/video.

Padding BSR

Triggered when UL grant has leftover padding bytes after data + MAC CEs. Uses otherwise-wasted space for free buffer update.

BSR triggers over time — Regular (new data), Periodic (timer), and Padding (leftover space)


#3BSR Formats

FormatSizeReportsWhen Used
Short BSR2 bytes1 LCGOnly 1 LCG has data, or truncated
Long BSR1 + N bytesMultiple LCGs2+ LCGs have data (bitmap + sizes)
Short Truncated2 bytesHighest pri LCGPadding = 2 B, multiple LCGs active
Long Truncated1 + N bytesAll active LCGsPadding ≥ Long BSR size

BSR MAC CE byte-level structure — see how each format encodes LCG and buffer information


#4BSR Index Table

The 8-bit buffer size index maps to buffer ranges using logarithmic spacing:

IndexBuffer Size (bytes)Range
00Exact: 0 bytes
1≤ 100 < BS ≤ 10
10≤ 10090 < BS ≤ 100
25≤ 800720 < BS ≤ 800
40≤ 64005760 < BS ≤ 6400
60≤ 10240092160 < BS ≤ 102400
63> 150000Ceiling

Key Properties


#5BSR Timers & Procedure

BSR timer interaction — periodicBSR-Timer triggers scheduled reports, retxBSR-Timer ensures reliability

BSR Procedure Timeline

  TTI 0:  Data arrives at UE (LCG-1, higher priority)
          → TRIGGER: Regular BSR
          → TRIGGER: Scheduling Request (SR)

  TTI 1:  UE sends SR on PUCCH ("I need a grant")

  TTI 3:  gNB responds with DCI (UL grant: 500 bytes)

  TTI 5:  UE transmits on PUSCH:
          • BSR MAC CE (Short, LCG-1, Index=15 ≈ 200 B)
          • User data (498 B from LCP)
          → regularBSR-Timer restarted
          → periodicBSR-Timer restarted

  TTI 7:  gNB processes BSR → schedules next grant: 250 B

  TTI 9:  UE sends remaining data + Padding BSR (if padding available)

#6Field Considerations

PitfallImpactFix
periodicBSR-Timer too shortExcessive BSR overheadUse SF320+ for background
retxBSR-Timer too longData stuck in bufferSF40 for latency-sensitive
Too many LCGsLong BSR = 9 bytesGroup similar LCs
LCG mapping mismatchgNB can't distinguish QoSSeparate voice/web LCGs
BSR index overestimateGrant 10-20% too largegNB accounts for rounding

LTE vs 5G NR BSR

AspectLTE5G NR
LCGs48
Truncated BSRNot supportedSupported
Timer granularitySubframesSlots (SCS-aware)
Two-step RACH BSRNoYes (Rel-16)

#76G BSR Evolution

BSR evolution across generations — compare capabilities and architecture

Dimension5G NR6G Target
LCGs816+ (sensing, ML)
FormatsShort, Long, Truncated+ Compressed, Differential
Overhead2–9 bytes1–4 bytes (compressed)
TriggerRegular, Periodic, Padding+ AI-augmented, Predictive
Buffer range0–150 kB0–100 MB (extended)
Multi-linkDC (2 groups)Unified (WiFi+cell+sat)
Sensing dataN/ASensing LCG + metadata
PredictionNoneAI predicts buffer at gNB

6G Key BSR Innovations


#8Further Reading

3GPP Specifications

Companion Resources

LCP → Scheduling → ☆ IAB MAC →