4G/LTE - Measurement Report

 

 

 

PHR(Power Headroom Report)

 

The eNB schedules the uplink, but it cannot see how much transmit power the UE still has in reserve. If it grants too many resource blocks to a UE near the cell edge, the UE runs out of power and the transmission fails. The Power Headroom Report, or PHR, closes that gap: the UE tells the eNB how far its required power is from its maximum. This page covers what the value means, how it is coded, and when the UE sends it.

Followings are the topics to be covered in this page.

What is Power Headroom ?

Power headroom indicates how much transmission power left for a UE to use in addition to the power being used by current transmission. Simply put, it can be described by a simple formula as below.

    Power Headroom = UE Max Transmission Power - PUSCH Power = Pmax - P_pusch

If the Power Headroom value is (+), it indicates "I still have some space under the maximum power" implying "I can transmit more data if you allow".

If the power Headroom value is (-), it indicate "I am already transmitting the power greater than what I am allowed to transmit".

The simple formula above is the idea, and 36.213 v19.4.0 clause 5.1.1.2 gives the exact form. The UE computes a Type 1 report on serving cell c in subframe i, with PUSCH but no PUCCH, as follows.

    PH = PCMAX,c(i) - {10 log10(MPUSCH,c(i)) + PO_PUSCH,c(j) + αc(j) PLc + ΔTF,c(i) + fc(i)} [dB]

The term in braces is the PUSCH power that the power control formula asks for, before any limit to PCMAX,c is applied.

This detail explains the negative case. The UE never transmits above PCMAX,c, because it caps its actual power there. A negative PH means that the power the current grant requires is higher than that cap, so the UE is power limited. The eNB should then reduce the number of resource blocks or the MCS for this UE. When the UE has no PUSCH in the subframe, it still reports a value, computed for a reference PUSCH format of one resource block.

36.213 defines three types of power headroom, and the simple formula describes only the first one. The table below lists them.

 

Type

What it measures

When it is used

Type 1

PCMAX,c minus the PUSCH power

every serving cell with uplink

Type 2

PCMAX,c minus the PUSCH and PUCCH power together

the PCell, PSCell or PUCCH SCell, when PUCCH and PUSCH can be sent together

Type 3

PCMAX,c minus the SRS power

a serving cell where the UE sends SRS without PUSCH

 

For formal definition of PH(Power Headroom), see this page.

  • PH = PCMAX,c minus the required PUSCH power : 36.213 clause 5.1.1.2.
  • Negative PH means power limited : the UE caps its power, and the grant needs more.
  • Three types : Type 1 for PUSCH, Type 2 with PUCCH, Type 3 for SRS.

How does UE report Power Headroom Value ?

PHR is a type of MAC CE(MAC Control Element) that report the headroom between the current UE Tx power (estimated power) and the nominal power. eNodeB (Network) use this report value to estimate how much uplink bandwidth a UE can use for a specific subframe. Since the more resource block the UE is using, the higher UE Tx power gets, but the UE Tx power should not exceed the max power defined in the specification. So UE cannot use much resource block (bandwidth) if it does not have enough power headroom.

You will find the following fig and table from 36.321.

The figure and table below come from 36.321 clause 6.1.3.6. The PHR MAC control element is a single octet: two reserved bits and a 6-bit PH field. It is identified by LCID 11010 on the UL-SCH, which is still the value in 36.321 v19.3.0.

36.321 Figure 6.1.3.6-1 and Table 6.1.3.6-1, PHR MAC control element and power headroom levels

36.321 Figure 6.1.3.6-1 and Table 6.1.3.6-1. The 6-bit PH field gives 64 levels, POWER_HEADROOM_0 to POWER_HEADROOM_63.

How can I figure out real power value from this report value ? You can find the mapping table from 36.133 as shown below.

36.133 Table 9.1.8.4-1, power headroom report mapping

36.133 Table 9.1.8.4-1. Each level is a 1 dB step from -23 dB up to 40 dB and above.

The mapping is a simple offset. A reported value n from 0 to 62 means n - 23 <= PH < n - 22 dB, and value 63 means PH >= 40 dB. For example, a report of 40 means a headroom between 17 and 18 dB, and a report of 20 means between -3 and -2 dB. 36.133 v19.5.0 still uses this table and the same range of -23 to +40 dB.

This one-octet PHR covers only the primary cell. With carrier aggregation, the eNB configures extendedPHR, and the UE sends the Extended PHR MAC control element with LCID 11001. That element carries one PH per activated serving cell with uplink, and it can add the PCMAX,c value the UE used. With dual connectivity, the Dual Connectivity PHR with LCID 11000 also covers the cells of the other cell group.

  • One octet, 6-bit PH : LCID 11010 in 36.321 clause 6.1.3.6.
  • Value n means n - 23 to n - 22 dB : range -23 to +40 dB, 36.133 Table 9.1.8.4-1.
  • Extended PHR for CA, DC PHR for dual connectivity : LCID 11001 and 11000, one PH per cell.

When does UE transmit the Power Headroom Report ?

A PHR costs uplink resources, so the UE must not send it all the time. It must still send it often enough, and soon enough after a change, for the eNB to schedule with current information. RRC sets this balance with two timers and one threshold.

There are two triggers for PHR (Power Headroom Report).

    i) Path Loss Change greater than a certain threshold : UE can calculate the path loss based on RS(Reference Signal) power notified by network and the measured RS power at UE antenna port. If this value changes over a certain threshold UE transmit PHR.

    ii) By some peridic Timer.

These triggers are specified in RRC messages (e.g, RRC Connection Setup, RRC Connection Reconfiguration) as shown below.

The capture below shows the phr-Config inside mac-MainConfig of an RRC Connection Reconfiguration. The three fields in the red box are the whole PHR configuration.

RRC Connection Reconfiguration capture with phr-Config in mac-MainConfig highlighted

phr-Config in a captured RRC Connection Reconfiguration: periodicPHR-Timer sf500, prohibitPHR-Timer sf200 and dl-PathlossChange dB3.

The values are in subframes, so this UE sends a PHR at least every 500 ms. A pathloss change of more than 3 dB also triggers a PHR, but only when 200 ms have passed since the last one. Both timers restart each time the UE sends a PHR, and every pending trigger is then cancelled. A triggered PHR also waits for an uplink grant with room for the control element, because the PHR has no resource of its own.

The two triggers above are the original ones. 36.321 v19.3.0 clause 5.4.6 lists four more. A PHR is also triggered when RRC configures or reconfigures PHR, and when an SCell with uplink is activated. The addition of a PSCell triggers one too. The last trigger is a change of more than dl-PathlossChange dB in the power backoff for power management, P-MPRc. The P-MPR trigger also respects prohibitPHR-Timer.

The listing below is MAC-MainConfig from 36.331 v19.3.0. phr-Config sits in the Release 8 part, and later extension groups add extendedPHR-r10, dualConnectivityPHR and extendedPHR2-r13. The eNB configures those only when phr-Config is configured.

Following is based on 36.331 v19.3.0 (Release 19)

MAC-MainConfig ::=                  SEQUENCE {
    ul-SCH-Config                       SEQUENCE {
        maxHARQ-Tx                          ENUMERATED {
                                                n1, n2, n3, n4, n5, n6, n7, n8,
                                                n10, n12, n16, n20, n24, n28,
                                                spare2, spare1}     OPTIONAL,   -- Need ON
        periodicBSR-Timer                   PeriodicBSR-Timer-r12   OPTIONAL,   -- Need ON
        retxBSR-Timer                       RetxBSR-Timer-r12,
        ttiBundling                         BOOLEAN
    }                                                               OPTIONAL,   -- Need ON
    drx-Config                          DRX-Config                  OPTIONAL,   -- Need ON
    timeAlignmentTimerDedicated         TimeAlignmentTimer,
    phr-Config                          CHOICE {
        release                             NULL,
        setup                               SEQUENCE {
            periodicPHR-Timer                   ENUMERATED {sf10, sf20, sf50, sf100, sf200,
                                                            sf500, sf1000, infinity},
            prohibitPHR-Timer                   ENUMERATED {sf0, sf10, sf20, sf50, sf100,
                                                                sf200, sf500, sf1000},
            dl-PathlossChange                   ENUMERATED {dB1, dB3, dB6, infinity}
        }
    }                                                               OPTIONAL,   -- Need ON
    ...,
    [[  sr-ProhibitTimer-r9                 INTEGER (0..7)          OPTIONAL    -- Need ON
    ]],
    [[  mac-MainConfig-v1020                SEQUENCE {
            sCellDeactivationTimer-r10          ENUMERATED {
                                                    rf2, rf4, rf8, rf16, rf32, rf64, rf128,
                                                    spare}          OPTIONAL,   -- Need OP
            extendedBSR-Sizes-r10               ENUMERATED {setup}      OPTIONAL,   -- Need OR
            extendedPHR-r10                     ENUMERATED {setup}      OPTIONAL    -- Need OR
        }                                                           OPTIONAL    -- Need ON
    ]],
    [[  stag-ToReleaseList-r11              STAG-ToReleaseList-r11  OPTIONAL,   -- Need ON
        stag-ToAddModList-r11               STAG-ToAddModList-r11   OPTIONAL,   -- Need ON
        drx-Config-v1130                    DRX-Config-v1130        OPTIONAL    -- Need ON
    ]],
    [[  e-HARQ-Pattern-r12                  BOOLEAN                 OPTIONAL,   -- Need ON
        dualConnectivityPHR                 CHOICE {
            release                             NULL,
            setup                               SEQUENCE {
                phr-ModeOtherCG-r12                 ENUMERATED {real, virtual}
            }
        }                                                       OPTIONAL,   -- Need ON
        logicalChannelSR-Config-r12     CHOICE {
            release                             NULL,
            setup                               SEQUENCE {
                logicalChannelSR-ProhibitTimer-r12      ENUMERATED {sf20, sf40, sf64, sf128, sf512, sf1024, sf2560, spare1}
            }
        }                                                           OPTIONAL        -- Need ON
    ]],
    [[  drx-Config-v1310                    DRX-Config-v1310        OPTIONAL,       -- Need ON
        extendedPHR2-r13                    BOOLEAN     OPTIONAL,       -- Need ON
        eDRX-Config-CycleStartOffset-r13    CHOICE {
            release                         NULL,
            setup
                                            CHOICE {
            sf5120                                  INTEGER(0..1),
            sf10240                                 INTEGER(0..3)
            }
        }                                       OPTIONAL    -- Need ON
    ]],
    [[  drx-Config-r13                      CHOICE {
            release                             NULL,
            setup                               DRX-Config-r13
        }                                                           OPTIONAL    -- Need ON
    ]],
    [[  skipUplinkTx-r14                    CHOICE {
            release                             NULL,
            setup                               SEQUENCE {
                skipUplinkTxSPS-r14                 ENUMERATED {true}       OPTIONAL,   -- Need OR
                skipUplinkTxDynamic-r14             ENUMERATED {true}       OPTIONAL    -- Need OR
            }
        }                                                           OPTIONAL,   -- Need ON
        dataInactivityTimerConfig-r14       CHOICE {
            release                             NULL,
            setup                               SEQUENCE {
                dataInactivityTimer-r14             DataInactivityTimer-r14
            }
        }                                               OPTIONAL    -- Need ON
    ]],
    [[  rai-Activation-r14                  ENUMERATED {true}           OPTIONAL    -- Need OR
    ]],
    [[  shortTTI-AndSPT-r15             CHOICE {
            release                         NULL,
            setup                           SEQUENCE {
                drx-Config-r15                  DRX-Config-r15              OPTIONAL, -- Need ON
                periodicBSR-Timer-r15           ENUMERATED {
                                                    sf1, sf5, sf10, sf16, sf20, sf32, sf40,
                                                    sf64, sf80, sf128, sf160, sf320, sf640,
                                                    sf1280, sf2560, infinity}
                                                                            OPTIONAL, -- Need ON
                proc-Timeline-r15               ENUMERATED {nplus4set1, nplus6set1,
                                                nplus6set2, nplus8set2 }    OPTIONAL, -- Need ON
                ssr-ProhibitTimer-r15           INTEGER (0..7)              OPTIONAL -- Need ON
            }
        }                                                                   OPTIONAL, -- Need ON
        mpdcch-UL-HARQ-ACK-FeedbackConfig-r15   BOOLEAN     OPTIONAL,   -- Need ON
        dormantStateTimers-r15              CHOICE {
            release                             NULL,
            setup                               SEQUENCE {
                sCellHibernationTimer-r15           ENUMERATED {
                    rf2, rf4, rf8, rf16, rf32, rf64, rf128, spare}      OPTIONAL,   -- Need OR
                dormantSCellDeactivationTimer-r15   ENUMERATED {
                    rf2, rf4, rf8, rf16, rf32, rf64,
                    rf128, rf320, rf640, rf1280, rf2560,
                    rf5120, rf10240, spare3, spare2, spare1}            OPTIONAL    -- Need OR
            }
        }                                                               OPTIONAL    -- Need ON
    ]],
    [[  ce-ETWS-CMAS-RxInConn-r16               ENUMERATED {true}       OPTIONAL    -- Need OR
    ]],
    [[  offsetThresholdTA-r17                   SetupRelease {OffsetThresholdTA-r17}
                                                                OPTIONAL,   -- Need ON
        sr-ProhibitTimerOffset-r17              SetupRelease {SR-ProhibitTimerOffset-r17}
                                                            OPTIONAL -- Need ON
    ]]
}
  • periodicPHR-Timer : sf10 to sf1000 or infinity, the regular report.
  • prohibitPHR-Timer with dl-PathlossChange : a pathloss change of 1, 3 or 6 dB triggers a PHR, at most once per prohibit period.
  • More triggers since Release 10 : PHR configuration, SCell activation, PSCell addition and P-MPR change.

Reference

[1] 3GPP TS 36.321 v19.3.0 - clause 5.4.6, Power Headroom Reporting, and clause 6.1.3.6, PHR MAC control element

[2] 3GPP TS 36.213 v19.4.0 - clause 5.1.1.2, Power headroom

[3] 3GPP TS 36.133 v19.5.0 - clause 9.1.8.4, Power headroom report mapping

[4] 3GPP TS 36.331 v19.3.0 - MAC-MainConfig