BSR, PHR & Scheduling Request in LTE 4G
How the UE tells the eNB what it has to send (BSR/SR) and how much power it has (PHR).
The eNB cannot see inside your phone. It has no idea when the UE has uplink data waiting, how much of it there is, or whether the UE still has any transmit-power margin left. Three small MAC-layer reports cure that blindness: the Scheduling Request (SR) asks for a grant, the Buffer Status Report (BSR) says how much data is queued, and the Power Headroom Report (PHR) says how much power is in reserve. All three are defined in TS 36.321, and together they drive the entire uplink scheduling loop.
Introduction
Uplink in LTE is scheduled by the eNB, but all the information the scheduler needs lives inside the UE. Downlink is easy — the eNB owns its own buffers and its own power amplifier. Uplink is opaque: only the UE knows when data arrived, how much is queued on each bearer, and how much transmit-power margin remains at the current path loss. SR, BSR and PHR are the three MAC-layer reports that make the invisible visible so the scheduler can act on fact instead of guesswork.
They run constantly during an active connection. Every time a UE with no grant gets new data, an SR fires; every time the buffer picture changes or a periodic timer expires, a BSR fires; every time path loss shifts or a timer expires, a PHR fires. Between them they open, size and power-check every uplink transmission that is not on a pre-configured grant.
Because the three reports chain into one another — SR wins a foothold, BSR quantifies the need, PHR rides on the data that follows — a stall almost always lives in one specific handoff. Knowing which report failed (no grant after SR? wrong grant size after BSR? power-limited allocation?) narrows the root cause enormously, which is exactly why a step-by-step reading of the trio pays off.
On this page
Why the Uplink Reporting Trio Exists
In plain words: imagine ordering at a busy deli counter you can't see over. First you take a ticket to be noticed at all (that's the SR). When the server looks up, you say how many sandwiches you want so they prepare the right amount (that's the BSR). And you mention you've only got a £10 note so they don't ring up more than you can pay (that's the PHR). Three small messages — notice me, this much, this is my limit — and the counter serves you efficiently without ever seeing your wallet.
Uplink scheduling in LTE is a chicken-and-egg problem. To send data the UE needs a grant, but the eNB only hands out grants when it knows the UE actually has something to send, how much of it there is, and whether the UE can reach the cell with enough power. Downlink is easy by comparison โ the eNB owns the buffers and knows exactly what it wants to transmit. Uplink is opaque: the data and the power budget both live in the UE. SR, BSR and PHR are the feedback that lets the scheduler act on fact instead of guesswork.
SR is a 1-bit "I need a grant" flag on PUCCH. BSR is a MAC Control Element reporting buffered data volume per Logical Channel Group. PHR is a MAC CE reporting the UE's remaining transmit-power margin. Each answers a different question: when, how much, and can you power it.
Without SR the eNB would not know when to schedule an idle UE; without BSR it would not know how much to grant, so it would over- or under-allocate; without PHR it might grant a wide, high-MCS allocation the UE physically cannot transmit at cell edge.
SR rides a dedicated PUCCH resource configured by RRC. BSR and PHR are MAC CEs multiplexed into a PUSCH MAC PDU, each identified by its own LCID in the MAC subheader. All three are event-triggered and timer-governed, so they self-refresh without polling.
These three reports are not independent trivia โ they form a pipeline. A BSR that has been triggered but has no PUSCH resource to travel on will itself trigger an SR; the SR wins a small grant; that grant carries the BSR; the BSR earns a right-sized grant; and the data PUSCH that follows can piggyback a PHR. Understanding the trio means understanding how each report hands off to the next.
One sentence each: SR = "give me a grant." BSR = "here is how many bytes I have, per group." PHR = "here is how much power I have left." The scheduler needs all three to make a good uplink decision.
Scheduling Request (SR)
The SR is the smallest signal in the whole system โ a single bit โ but it starts the entire uplink loop. When data arrives for a logical channel and the UE holds no valid uplink grant to send it on, the MAC entity triggers an SR. There is nowhere to put a BSR yet, so the UE must first raise its hand with the one-bit ask.
A 1-bit request transmitted on a configured dedicated PUCCH resource โ the D-SR (dedicated SR). RRC sets it up through SchedulingRequestConfig, which carries an sr-PUCCH-ResourceIndex pointing at the PUCCH resource and an sr-ConfigIndex that encodes the SR periodicity and subframe offset.
It is the UE's only way to say "grant me something" when it holds no grant at all. The eNB answers with a small UL grant, which the UE then spends on a BSR describing the real buffered volume so the next grant can be sized properly.
A pending SR is sent on the next SR PUCCH occasion. Retransmissions are bounded by dsr-TransMax and paced by sr-ProhibitTimer. If the UE exhausts its SR attempts, it declares SR failure and falls back to the Random Access procedure to get on the air.
The SR travels on PUCCH format 1/1a/1b as a single bit; the eNB's answer is a small uplink grant delivered as a DCI format 0 on PDCCH, CRC scrambled with the UE's C-RNTI, in the UE-specific search space. There is no separate "SR-RNTI" — the SR resource itself is UE-specific, so the eNB knows which UE asked purely from which PUCCH resource carried the bit.
The two SR timers and counters
Two RRC parameters govern how an SR behaves once triggered. The sr-ProhibitTimer is a rate limiter: after the UE transmits an SR, it must not send another until the prohibit timer expires, even if further SR occasions arrive in the meantime. This stops the UE spraying repeated one-bit requests while the eNB is still processing the first one. The dsr-TransMax counter, by contrast, is a give-up threshold: the MAC maintains an SR_COUNTER, incrementing it each time an SR is actually transmitted, and once the counter reaches dsr-TransMax the UE stops trying the D-SR path entirely, releases its PUCCH/SRS configurations, clears any downlink assignment and uplink grant, and initiates Random Access.
| Parameter | Role | Effect |
|---|---|---|
sr-ConfigIndex | Encodes SR periodicity + offset | Defines when the D-SR PUCCH occasions occur (e.g. every 10, 20, 40… ms). |
sr-PUCCH-ResourceIndex | Points at the PUCCH resource | Fixes where in the PUCCH region the 1-bit SR is sent. |
sr-ProhibitTimer | Minimum gap between SR transmissions | Caps the SR rate so the UE cannot flood the eNB while it processes. |
dsr-TransMax | Max number of SR transmissions | When SR_COUNTER hits this, D-SR is abandoned and Random Access starts. |
The RA-SR fallback
Not every UE always has a dedicated SR resource. If the UE has data to send but holds no configured D-SR PUCCH resource (and no grant), it cannot send a one-bit ask at all โ so it goes straight to the Random Access procedure as its scheduling request. This is the RA-SR (random-access SR) path. The same fallback catches the UE that did have a D-SR resource but exhausted dsr-TransMax attempts without a grant. In both cases the RACH preamble becomes the request, Msg2 (the Random Access Response) carries the initial UL grant, and Msg3 then carries the BSR โ Random Access substitutes for the missing or failed D-SR.
No D-SR resource, or SR exhausted? Either way the UE initiates Random Access to get scheduled. That is exactly why "SR failure" and "RACH for scheduling" are linked in exams: the D-SR and the RA-SR are two doors to the same room โ a first UL grant โ and the UE takes whichever one is open.
Reading the SR step in the logs
On the UE side the SR event shows when the bit was triggered, which resource carried it, the running SR_COUNTER, and whether a grant came back before dsr-TransMax. This is usually the first line you check for a "UE won't send uplink" ticket.
Representative UE MAC log (QXDM/QCAT-style) — illustrative, values vary by vendor/build:
| Field | Meaning | Example (from log) | Debugging check |
|---|---|---|---|
trigger | Why the SR fired — new data with no grant, or a pending regular/periodic BSR with no UL-SCH resource. | newData(noGrant) | Confirms it is a genuine no-grant condition and not a stuck buffer. |
sr_res_idx | The sr-PUCCH-ResourceIndex the bit was sent on. | 3 | Must match RRC config; a wrong resource means the eNB looks in the wrong place. |
sr_cfg_idx / period | The sr-ConfigIndex and the SR occasion period it decodes to. | 20 (20ms) | A long period delays every request; check it against latency budget. |
SR_COUNTER | Transmissions so far vs dsr-TransMax. | 2/8 | Climbing toward the max with no grant = eNB not answering; RA-SR fallback is imminent. |
prohibit | sr-ProhibitTimer gating the next SR. | 20ms | If set too long, SR retries are slow; too short risks flooding. |
✅ Debugging steps — SR
- Confirm the SR was actually triggered (new data arrived while the UE held no grant) and transmitted on the configured
sr-PUCCH-ResourceIndex. - Check whether a small UL grant (
DCI format 0underC-RNTI) came back within a few SR periods; if not, the eNB is not seeing/answering the SR. - Track
SR_COUNTERagainstdsr-TransMax— nearing the max means the UE is about to fall back to RACH. - Verify the SR occasion period from
sr-ConfigIndexand thesr-ProhibitTimerare sane for the latency target.
⚠ Common causes of failure — SR
- No D-SR
PUCCHresource configured, so the UE cannot raise a one-bit ask and must use RACH from the start. dsr-TransMaxreached with no grant — eNB missed the SR (weakPUCCH, interference) or ignored it under load; UE releasesPUCCH/SRS and initiates RACH.sr-ProhibitTimertoo long, throttling retries so the request is slow to be heard.- Poor uplink RF so the 1-bit SR is not detected at the eNB.
Buffer Status Report (BSR)
Once the UE has a grant, it tells the eNB how much data it has. The BSR is a MAC CE that reports the amount of buffered data, aggregated per Logical Channel Group (LCG). LTE defines exactly 4 LCGs (LCG ID 0–3), so the many logical channels a UE may run are bucketed into a handful of groups to keep the report compact. Each radio bearer is mapped to one LCG by RRC through the logicalChannelGroup field in its logical channel configuration, and grouping is usually by priority class โ for example signalling and voice in low-numbered, high-priority groups, best-effort data in another.
Short, Long and Truncated BSR
Because the report has to fit whatever grant is available, LTE defines three BSR formats. Each is a distinct MAC CE with its own LCID in the subheader, so the eNB knows from the header alone which format it is parsing.
| Format | Contents | Size | When used |
|---|---|---|---|
| Short BSR | One 2-bit LCG ID + one 6-bit buffer-size index for that single group. | 1 byte | When exactly one LCG has data to report. |
| Long BSR | Four 6-bit buffer-size fields, one per LCG (no bitmap in LTE โ all four are always present, in order). | 3 bytes | When more than one LCG has data to report. |
| Truncated BSR | Same 1-byte layout as Short, but reports the single highest-priority LCG with data. | 1 byte | When a regular/periodic BSR was triggered but the grant is too small to fit the full (Long) BSR. |
The Short and Truncated formats look identical on the wire โ both are one LCG ID plus one buffer-size index โ but they mean different things and use different LCID values. A Short BSR says "only this one group has data"; a Truncated BSR says "several groups have data, but there was only room to tell you about the most urgent one." That distinction lets the eNB know more grants are probably coming.
The 6-bit buffer-size index
The buffer size is never sent as a raw byte count. Instead each LCG's buffered volume is quantised to a 6-bit index into a buffer-size table โ 64 levels (indices 0–63) spanning from 0 bytes up to tens of kilobytes on a roughly logarithmic scale. The eNB reads the index, looks up the byte range it represents, and sizes the next grant accordingly. Because the mapping is coarse and each index represents a range, the eNB tends to round up, which is why a couple of BSR rounds are sometimes needed to drain a large burst cleanly.
| Index (concept) | Represented buffer size (bytes) | Note |
|---|---|---|
| 0 | 0 | Nothing buffered for this LCG. |
| 1 | ≤ 10 | Finest step at the bottom โ small control messages resolve precisely. |
| … (low) | tens of bytes | Near-linear at first; each index a small jump. |
| … (mid) | hundreds → low thousands | Steps grow geometrically as the index climbs. |
| 62 | tens of KB | Coarsest steps at the top โ large buffers resolve loosely. |
| 63 | > the largest table value | "At least this much" โ buffer exceeds the top level. |
The exact byte boundaries live in the buffer-size tables of TS 36.321; the concept to carry away is the logarithmic quantisation: precise for tiny buffers, coarse for huge ones, always erring toward over-grant rather than starving the UE.
What triggers a BSR
| Trigger | Cause | Resulting format tendency |
|---|---|---|
| Regular BSR | Data arrives for a logical channel of higher priority than anything already buffered, or data arrives when all buffers were empty. Also re-triggered when retxBSR-Timer expires while data still remains buffered. | Short or Long, depending on how many LCGs have data. |
| Periodic BSR | periodicBSR-Timer expires โ a routine refresh so the eNB's view of the buffer does not go stale. | Short or Long. |
| Padding BSR | An UL grant has leftover space that would otherwise be padding โ the UE fills it with a BSR instead of wasting bits (free information for the scheduler). | Truncated if space is tight, otherwise Short/Long. |
A subtlety of the Regular trigger: it fires only when higher-priority data arrives or when the buffers were previously empty โ not for every byte that lands in an already-busy lower-priority queue. That keeps regular BSRs meaningful (a genuine change in the priority picture) rather than constant. The Regular and Periodic triggers are the ones that can, in turn, trigger an SR; a Padding BSR never does, because by definition it only exists when there is already a grant to ride on.
Timers to know: periodicBSR-Timer drives periodic BSRs; retxBSR-Timer re-triggers a regular BSR if data is still buffered and no new grant arrived (a safety net against a lost BSR or ignored request). A Regular or Periodic BSR that has been triggered but cannot be sent this TTI (no UL-SCH resource) in turn triggers an SR โ closing the loop straight back to the request.
Reading the BSR step in the logs
The BSR trace shows the format, which LCGs reported, the 6-bit index per group, and the grant the eNB issued in response. Comparing the reported index against the next grant size is the fastest way to tell whether the eNB believed the buffer report.
Representative UE MAC log — illustrative, values vary by vendor/build:
| Field | Meaning | Example (from log) | Debugging check |
|---|---|---|---|
trigger | Regular / Periodic / Padding cause. | regular(higherPrioData) | A missing regular trigger on new high-priority data points to a MAC config/logic issue. |
format / lcid | Short / Long / Truncated and the matching LCID. | LONG / 30 | Truncated where Long was expected means the grant was too small — more rounds coming. |
LCGx idx | 6-bit buffer-size index per group. | LCG3 idx=42 | Index → byte range should roughly match the next grant; a tiny grant after a big index = scheduler under-serving. |
next grant tbs | The right-sized grant the eNB issued. | 1500B | Should scale with the reported index; if not, buffer report was ignored or mis-parsed. |
✅ Debugging steps — BSR
- Confirm the correct trigger fired for the event (regular on higher-priority/empty-buffer data; periodic on
periodicBSR-Timer; padding on spare grant). - Check the reported
LCGindices map to plausible byte volumes and that the eNB's next grant scaled with them. - If a Truncated BSR appears, verify the grant was genuinely too small for a Long BSR — not a wrongly small initial grant.
- Watch
retxBSR-Timer: repeated re-triggers with no new grant mean the eNB is not acting on the report.
⚠ Common causes of failure — BSR
- BSR not triggered because arriving data was not higher priority than what was already buffered (by design) — the buffer only drains on the next periodic/padding report.
- Grant too small to carry a Long BSR, forcing a Truncated report that hides lower-priority groups from the scheduler.
- Coarse 6-bit quantisation makes the eNB round the volume, so a large burst needs several BSR rounds to drain.
- Lost BSR on a faded uplink; recovered only when
retxBSR-Timerre-triggers it.
Power Headroom Report (PHR)
Knowing how much data to schedule is not enough โ the eNB also needs to know whether the UE can physically power the transmission. The PHR is a MAC CE reporting the difference between the UE's configured maximum transmit power and the power it would currently need for its PUSCH. It turns the UE's power budget, otherwise invisible to the network, into a number the scheduler can plan against.
A positive headroom means the UE has room to spare and can be scheduled a wider or higher-MCS allocation. A negative value means the UE is already power-limited โ it wanted more power than PCMAX,c allows and is transmitting at its ceiling โ so the eNB should be conservative with the RB allocation. The value is quantised into a power-headroom range and reported against the reference PCMAX,c, and it is only ever sent when the UE actually has a PUSCH transmission to piggyback it on.
Type 1 PH reports headroom for the PUSCH. (Type 2, in earlier releases, also accounted for a simultaneous PUCCH.) The core report is a single MAC CE: one 6-bit PH value plus PCMAX,c reference bits.
It lets the scheduler pick an MCS and allocation size the UE can actually transmit, and helps manage inter-cell interference by revealing which UEs sit near their power ceiling and should not be pushed harder.
Sent as a MAC CE on PUSCH, triggered by timers and by significant pathloss change. It is reported only when the UE has a PUSCH transmission and โ for pathloss triggers โ only after prohibitPHR-Timer has expired.
Extended and Dual-Connectivity PHR
The single-value PHR describes one carrier. LTE-Advanced added carrier aggregation, so a UE can transmit on several serving cells at once and the eNB needs a headroom figure for each. The Extended PHR MAC CE handles this: it carries a bitmap indicating which activated serving cells are being reported, followed by a Type 1 PH entry (and its PCMAX,c) for each cell flagged in the bitmap. That way one report covers the whole aggregated uplink.
Dual Connectivity (a UE connected to a Master eNB and a Secondary eNB simultaneously) pushed this further with the Dual-Connectivity PHR. Because the two cell groups โ the Master Cell Group (MCG) and Secondary Cell Group (SCG) โ schedule independently, the DC PHR reports headroom across the cells of both groups so each scheduler has a coherent view. It also reports both a real PH (for cells the UE is actually transmitting on) and a virtual PH (a reference-based estimate for cells it is not currently transmitting on), so the network can plan allocations on cells that are configured but idle.
What triggers a PHR
| Trigger | Cause | Gate |
|---|---|---|
| Periodic | periodicPHR-Timer expires โ a routine refresh of the headroom estimate. | None (timer-driven floor rate). |
| Pathloss change | Estimated downlink pathloss has changed by more than dl-PathlossChange (in dB) since the last report โ the UE moved or fading shifted. | Only after prohibitPHR-Timer has expired. |
| Configuration | PHR functionality is (re)configured or activated by RRC. | None. |
| SCell activation | An SCell with an uplink is activated (Extended/CA PHR), adding a carrier that needs a headroom figure. | None. |
Prohibit vs periodic: periodicPHR-Timer forces a floor rate of reporting; prohibitPHR-Timer caps the ceiling so pathloss-driven reports cannot flood. The dl-PathlossChange threshold decides whether movement is worth a report, and the prohibit timer decides how soon one may follow the last. Together they bound how often headroom is signalled โ the same "periodic timer + prohibit timer" pattern that governs SR (sr-ProhibitTimer) and BSR.
Reading the PHR step in the logs
The PHR trace shows the trigger, the reported headroom value (or per-cell values for Extended/DC PHR), and the reference PCMAX,c. A persistently negative headroom is the tell-tale of a power-limited cell-edge UE that the scheduler should not push harder.
Representative UE MAC log — illustrative, values vary by vendor/build:
| Field | Meaning | Example (from log) | Debugging check |
|---|---|---|---|
trigger | Periodic / pathloss / (re)config / SCell activation. | pathloss | Frequent pathloss triggers = mobility/fading; verify prohibitPHR-Timer is limiting the rate. |
PH | Headroom = PCMAX,c − estimated PUSCH power. | +8 dB / -2 dB | Negative = power-limited; scheduler should reduce RBs / MCS, not increase. |
Pcmax_c | Reference max UE Tx power for the cell. | 23 dBm | Sanity-check against UE power class and any configured back-off. |
ePHR bitmap | Which activated serving cells the Extended PHR covers. | SCell1 | A missing cell in the bitmap means no headroom figure for it — scheduler flies blind on that carrier. |
| real / virtual PH | Actually-transmitting cell vs reference estimate (DC/CA). | virtual +11 | Virtual PH is an estimate only; treat cautiously when activating an idle cell. |
✅ Debugging steps — PHR
- Confirm a PHR is actually being sent (only rides on a
PUSCHtransmission) and check its trigger. - Read the sign of PH: a negative value means the UE is power-limited — correlate with cell-edge RSRP/pathloss and reduce the allocation.
- For CA/DC, verify the Extended/DC PHR covers every activated UL cell (check the bitmap) and distinguish real from virtual PH.
- Check
periodicPHR-Timer,prohibitPHR-Timeranddl-PathlossChangeare set so headroom refreshes often enough without flooding.
⚠ Common causes of failure — PHR
- No PHR sent because the UE has no
PUSCHto piggyback it on — the scheduler's power view goes stale. - Persistently negative headroom at cell edge, but the scheduler keeps granting wide/high-MCS allocations the UE cannot power — repeated CRC failures.
prohibitPHR-Timertoo long, so fast fading is under-reported and the scheduler mis-estimates power.- Extended PHR bitmap omits an active SCell, leaving that carrier without a headroom figure.
Putting It Together โ SR → Grant → BSR → Right-Sized Grant
In a cold start โ data arrives while the UE holds no grant โ the three reports chain into the uplink scheduling loop. The SR buys a foothold, the BSR quantifies the need, and the PHR rides along on the data that follows.
If the UE already holds a grant when data arrives, it skips the SR entirely and sends the BSR straight away โ the request step only exists to break the deadlock of having data but no way to describe it. When a periodic timer fires, or a grant has spare padding, a BSR or PHR can hitch a ride with no explicit request at all. And when the D-SR path is missing or exhausted, the whole sequence simply begins one step earlier, at Random Access, with Msg3 carrying the first BSR.
The reason the loop needs two grants โ a small one then a right-sized one โ is that the eNB genuinely does not know the buffer volume until the BSR arrives. The first grant is a deliberately cheap probe just big enough to carry a BSR; only once the eNB reads the buffer-size indices can it allocate resource blocks proportional to the actual need, factoring in the PHR so it never grants more than the UE can power.
LTE ↔ NR: the trio survives into NR with the same roles but more flexibility. NR (TS 38.321) allows multiple SR configurations, each tied to specific logical channels via schedulingRequestID, so different traffic types raise different requests — and SR now rides PUCCH with several formats. NR expands buffer reporting to up to eight LCGs (versus LTE's four) and uses a bitmap-based Long BSR so only groups with data are listed, rather than always sending all four fields. PHR keeps the Type 1/Type 3 model with per-cell reporting for carrier aggregation. The RA-SR fallback (no SR resource, or SR exhausted → RACH) is unchanged in principle.
Summary and Quick Q&A
The trio divides one hard question โ "how should I schedule this UE's uplink?" โ into three answerable pieces. SR answers when with a single bit on PUCCH, bounded by sr-ProhibitTimer and dsr-TransMax with Random Access as the fallback. BSR answers how much with a per-LCG report in Short, Long or Truncated form, quantised through the 6-bit buffer-size index and triggered as Regular, Periodic or Padding. PHR answers can you power it with a Type 1 headroom value โ extended across carriers for CA and across cell groups for Dual Connectivity โ triggered by periodicPHR-Timer, by a dl-PathlossChange beyond threshold once prohibitPHR-Timer allows, or by (re)configuration.
To root-cause an uplink stall, walk the chain in order: did the SR get a grant? Did the BSR's reported index produce a right-sized grant? Did the PHR reveal the UE is power-limited? The first handoff that breaks tells you where — and usually why — the uplink stopped.
Q. What is the difference between an SR and a BSR?
A. An SR is a 1-bit request on PUCCH meaning "I need a grant" โ it carries no volume information. A BSR is a MAC CE, sent on PUSCH once you have a grant, reporting how much data is buffered per LCG. SR asks; BSR quantifies.
Q. What happens when the UE has data but no dedicated SR resource, or exhausts its SR attempts?
A. It falls back to Random Access (the RA-SR path). With no D-SR resource it cannot send a one-bit ask, and once SR_COUNTER reaches dsr-TransMax it abandons the D-SR path โ in both cases the RACH preamble becomes the scheduling request and Msg3 carries the first BSR.
Q. How many LCGs does LTE use, and name the three BSR formats and three triggers.
A. LTE uses 4 Logical Channel Groups (LCG ID 0–3). Formats: Short (one LCG), Long (all four LCGs), Truncated (highest-priority LCG only, when the grant is too small). Triggers: Regular (higher-priority data arrives, or data arrives to empty buffers, or retxBSR-Timer expiry), Periodic (periodicBSR-Timer expiry), and Padding (spare room in a grant).
Q. Why is the buffer size sent as a 6-bit index rather than a byte count?
A. To keep the report tiny. The 6 bits index a 64-level, roughly logarithmic buffer-size table โ precise for small buffers, coarse for large ones. The eNB looks up the byte range and rounds up, which is why draining a big burst can take a couple of BSR rounds.
Q. What does a PHR tell the eNB, and what triggers it?
A. It reports the UE's transmit-power margin (PCMAX,c minus estimated PUSCH power), so the scheduler picks an MCS and RB allocation the UE can actually power. Triggers: periodicPHR-Timer expiry; a pathloss change beyond dl-PathlossChange once prohibitPHR-Timer has expired; and (re)configuration or a new UL SCell for Extended PHR under carrier aggregation.
Q. What is the difference between Extended PHR and Dual-Connectivity PHR?
A. Extended PHR reports Type 1 headroom for multiple activated serving cells under carrier aggregation, using a bitmap to say which cells are included. Dual-Connectivity PHR extends that across both the MCG and SCG, and reports both real PH (cells actually transmitting) and virtual PH (reference-based estimates for cells that are not), so each independent scheduler has a full view.
Where these reports lead
SR, BSR and PHR are the inputs the eNB scheduler consumes and the MAC CEs the MAC PDU carries โ and PHR ties directly into how the UE sets its transmit power and how it shares a grant across bearers.