5G/NR  -  Power Saving

 

 

 

Power Saving

In any wireless/celluar communication system, power saving would be one of the most important issue and this is especially more important for the mobile device which has limited amount of power source (pattery) comparing to other type of devices (like fixed wireless CPE or devices within a vehicle). This issue has become more important in 5G/NR since it has relatively widely experienced that a mobile device tend to drain power more quickly when it is in 5G than in other legacy technology(e.g, LTE).

I think the general philosophy of NR power saving is best summarized in RP-200494 as follows.

The substantial  power saving gains over the agreed baseline in UE power saving schemes with UE adaptation in frequency domain, time domain, antenna domain, DRX operations, and reducing PDCCH monitoring with different traffic types, such as FTP, IM, web browsing, video streaming, gaming and VoIP,  and network configurations.

If I turn this logic in my way, I would express it in a several bullets as below.

  • Park the connection to BWP with minimum allowable bandwidth when there is not such a huge traffic (Frequency Domain Adaptation)
  • Reduce the bandwidth allocation that is barely enough for the necessary traffic (Frequency Domain Adaptation)
  • Don't wake up unnecessarily in DRX cycle when there is no data being scheduled (DRX Operation Adaptation). Until Release 15, the wake up in DRX cycle is determined by a predefined cycle, but in release 16 there is a new mechanism to allow UE to sleep continously even when it is in Wakeup period. In release 16, UE would choose NOT to wake up unless it gets a specific signal called 'Wake Up Signal(WUS)' from network.
  • Don't active too many antenna when it is not really necessary (Antenna domain adaptation)

Unfornately, this kind of adaptation cannot be done by UE alone. As you know, in cellular communication Network is the one who determine the most of configuration listed above and NW does know in details about the exact time-to-time resource requirement. So for this adaptation to work effectively, NW would need some assisting information from UE. In other way, there should be some way in which UE can inform NW of it's necessary requirement. For this notification purpose, Release 16 introduced a lot of new parameters in UEAssistanceInformation as in RRC Parameter section.

Typical Power Saving Mechanism

The table below is worth reading as a timeline rather than a list. Release 15 saved power by removing things LTE always transmitted. Release 16 added mechanisms that let the UE skip work it would otherwise have done, and Release 17 pushed the same idea into the connected state.

The Comments column carries the reasoning, and one line in it is the one to keep. PDCCH decoding is the largest single contributor to UE energy consumption, which is why so many of the mechanisms below are about monitoring it less often rather than transmitting less.

Following table is the list of the NR protocol features that would have impact on power saving

Category

Mechanism

Comments

Release 15

On Demand CRS (no CRS)

In NR, there is no CRS which is always on and cause consistant energy consumption for channel estimation on UE

Control Channel Design

(CORESET and CORESET 0 etc)

In LTE, UE always need to decode the full channel band and at every subframe, but in NR the bandwidth and subframe for the control channel is configurable for the benefit of energy saving.

 

NOTE : In most of use cases, the largest contributors to engergy consumption is PDCCH decoding. So it is important to design power-efficient PDCCH design (Figure 8 of Ref [4])

Cross Slot Scheduling

Cross Slot Scheduling mean that PDCCH(DCI) and PDSCH/PUSCH is in different slot (i.e, k0 or k2 is greater than 0). In this case, UE can get into a micro sleep between PDCCH and PDSCH/PUSCH.

DRX

Same logic as LTE in terms of power saving (i.e, turning off physical layer processing periodically when there is no data traffic)

Rrc Inactive

Switching to a kind of dormant mode (RrcInactive) when there is no data traffic without completely release RRC.

 

NOTE : a comment worth paying attention to (Ref [4])

Overall, it is beneficial to UE power consumption especially if we consider heavy traffic load or long data packets.

For small data packets, the cost, including overhead, latency and power consumption, coming from random access procedure and RRC connection establishment is still too high relative to small data payload. Therefore, introduction of inactive state alone is not sufficient if small data transmission cannot be done under inactive state. This requires enhancements in further steps of 5G evolution.

BWP Adaptation/Switching

Allow to configure multiple BWP with different physical resources and switches to the specific BWP which consumes less energy. gNB can control energy consumption for each BWP by setting the different number of RBs and number of layers and other resources.

Release 16

WUS (Wake Up Signal)

This can be a kind of improvement on CDRX mechanism. This allows UE to continue to sleep even in CDRX wakeup periodic when there is no data.

2 Step RACH

I think the direct impact of 2 step rach would be latency reduction, but the reduction of signaling steps in this process may have indirect impact on power saving.

Secondary Cell Dormancy

When there is not so much traffic, an SCell can be put into a dormacy status where UE does not monitor PDCCH (CSI or RRM measurement is still being performed)

Dormant BWP

Within a SCell, the dormancy can be applied to BWP level as well.

UE assistance Info

(Release 16)

DRX parameters

 

maximum aggregated bandwidth

 

maximum number of secondary component carriers

 

maximum number of MIMO layers

 

minimum scheduling offset for cross-slot scheduling

this indicates the min gap in terms of symbols between PDCCH(DCI) and PDSCH/PUSCH. With this information, UE does need to buffer / process any symbols within the gap which may lead to more power saving.

Release 17 outlook

(written before the release)

Low data traffic in RRC Inactive

In current release (Rel 15,16), no data transfer is allowed in RRC Inactive status. So if even a small amount of data need to be transferred, it should go through RACH/RRC Signaling to switch to RRCConnected status which consumes large amount of power. If low data traffic is allowed in RRC Inactive, UE/gNB can transfer the data without switching to RRC Connected status

PDCCH Monitoring Adaptation

In current release (Rel 15,16), UE need to monitor PDCCH at ever slot unless it is in DRX sleep. We can save power if we can configure UE to monitor in a certain interval (not every slot). We may need to define a new DCI to specify this periodic PDCCH monitoring.

PDCCH Skipping

In current release (Rel 15,16), UE need to monitor PDCCH at ever slot unless it is in DRX sleep. We can save power if we can configure UE to stop PDCCH monitoring for a certain number of consecutive slots.  We may need to define a new DCI to specify this periodic PDCCH monitoring.

Multiple Antenna Pannel

When multiple Antenna Panel is configured, it would save power if we can configure a certain panel (or panels) which is not used for a certain moment instead of turining on all the configured pannels.

Release 17

as specified

Small Data Transmission (SDT)

Low data traffic in RRC Inactive, as it was specified. A UE in RRC_INACTIVE may send small amounts of data without moving to RRC_CONNECTED. Configured by sdt-Config-r17 inside SuspendConfig.

Search Space Set Group Switching

PDCCH monitoring adaptation, as specified. Two groups of search space sets are configured and the network switches between them, so monitoring can be dense when there is traffic and sparse when there is not. Configured by searchSpaceSwitchConfig-r17 in PDCCH-Config.

PDCCH Skipping

PDCCH skipping, as specified. A DCI tells the UE to stop monitoring for a stated duration. Configured by pdcch-SkippingDurationList-r17 in PDCCH-Config, which offers up to three durations.

Extended DRX in RRC_INACTIVE

DRX cycles longer than the connected mode range become available while the UE is inactive. Signalled as a capability by extendedDRX-CycleInactive-r17 in MAC-ParametersCommon.

Measurement Relaxation

A stationary or low mobility UE may relax how often it measures neighbours, and a RedCap UE may relax further. The criteria are broadcast in the relaxedMeasurement-r17 block of SIB2, and the UE reports the resulting state in UEAssistanceInformation.

Release 18

Cell DTX / DRX

The network side of the same idea. A cell may stop transmitting and receiving on a configured cycle, which saves energy at the gNB rather than at the UE. Configured by cellDTX-DRX-Config-r18 in ServingCellConfig.

IDC assistance split into FDM and TDM

The Release 16 in-device coexistence assistance was one structure. Release 18 separates it into idc-FDM-Assistance-r18 and idc-TDM-Assistance-r18, so the UE can say whether the clash is in frequency or in time.

Multiple receiver preference for FR2

A UE with more than one FR2 receive chain can ask to use only one of them. Carried by multiRx-PreferenceFR2-r18, whose values are single and multiple.

Release 19

Low Power Wake Up Signal (LP-WUS)

A separate low power receiver watches for a wake-up signal while the main receiver is off, so the UE no longer has to power up its full receive chain on every DRX cycle. Configured by LowPowerConfig-r19, with the UE preference carried in LPWUS-OffsetPreference-r19.

Low mobility evaluation for LP-WUS

SIB2 broadcasts lowMobilityEvaluationLPWUS-r19, so a UE that has not moved can be treated differently when the wake-up signal is in use.

One of the four candidates has no specified row beside it. Selecting among multiple antenna panels did not reach 38.331 as a UE panel selection field, and the closest Release 17 work is the unified TCI framework rather than a power saving parameter. It is left in the outlook block for that reason.

The direction of travel changed between Release 18 and Release 19. Everything up to Release 18 asks the UE to do less of what it was already doing, by monitoring less often or on a narrower bandwidth. The low power wake-up signal is different in kind, because it adds a second receiver that is cheap to run and lets the main one stay off.

  • The Release 17 candidates were specified : small data transmission, search space set group switching and PDCCH skipping all have RRC fields, and the Comments beside them describe the state before that happened.
  • PDCCH monitoring became two separate mechanisms : group switching is configured and semi-static, and skipping is commanded by DCI.
  • Release 18 added the network side : cell DTX and DRX save energy at the gNB, which no earlier row on this page covers.
  • Relaxation is reported, not only requested : the UE tells the network it has relaxed monitoring, so the network knows the measurements are less frequent.
  • LP-WUS changes the receiver, not the schedule : it is the first mechanism here that adds hardware rather than reducing activity.

RRC Parameters

The parameters below split by direction. The first group is what the UE tells the network about what it would prefer, and the second is what the network configures in return. Neither half works alone, because the UE cannot change its own configuration and the network cannot see the UE battery.

The assistance message is built as a chain of non-critical extensions, one per release, and each link adds the preferences that release introduced. Reading the chain in order is the quickest way to see what power saving has gained since Release 15.

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

UEAssistanceInformation-v1540-IEs ::= SEQUENCE {
    overheatingAssistance               OverheatingAssistance               OPTIONAL,
    nonCriticalExtension                UEAssistanceInformation-v1610-IEs   OPTIONAL
}

UEAssistanceInformation-v1610-IEs ::= SEQUENCE {
    idc-Assistance-r16                  IDC-Assistance-r16                  OPTIONAL,
    drx-Preference-r16                  DRX-Preference-r16                  OPTIONAL,
    maxBW-Preference-r16                MaxBW-Preference-r16                OPTIONAL,
    maxCC-Preference-r16                MaxCC-Preference-r16                OPTIONAL,
    maxMIMO-LayerPreference-r16         MaxMIMO-LayerPreference-r16         OPTIONAL,
    minSchedulingOffsetPreference-r16   MinSchedulingOffsetPreference-r16   OPTIONAL,
    releasePreference-r16               ReleasePreference-r16               OPTIONAL,
    sl-UE-AssistanceInformationNR-r16   SL-UE-AssistanceInformationNR-r16   OPTIONAL,
    referenceTimeInfoPreference-r16     BOOLEAN                             OPTIONAL,
    nonCriticalExtension                UEAssistanceInformation-v1700-IEs   OPTIONAL
}

UEAssistanceInformation-v1700-IEs ::= SEQUENCE {
    ul-GapFR2-Preference-r17              UL-GapFR2-Preference-r17              OPTIONAL,
    musim-Assistance-r17                  MUSIM-Assistance-r17                  OPTIONAL,
    overheatingAssistance-r17             OverheatingAssistance-r17             OPTIONAL,
    maxBW-PreferenceFR2-2-r17             MaxBW-PreferenceFR2-2-r17             OPTIONAL,
    maxMIMO-LayerPreferenceFR2-2-r17      MaxMIMO-LayerPreferenceFR2-2-r17      OPTIONAL,
    minSchedulingOffsetPreferenceExt-r17  MinSchedulingOffsetPreferenceExt-r17  OPTIONAL,
    rlm-MeasRelaxationState-r17           BOOLEAN                               OPTIONAL,
    bfd-MeasRelaxationState-r17           BIT STRING (SIZE (1..maxNrofServingCells)) OPTIONAL,
    nonSDT-DataIndication-r17             SEQUENCE {
        resumeCause-r17                       ResumeCause                       OPTIONAL
    }                                                                           OPTIONAL,
    scg-DeactivationPreference-r17        ENUMERATED { scg-DeactivationPreferred, noPreference }    OPTIONAL,
    uplinkData-r17                        ENUMERATED { true }                   OPTIONAL,
    rrm-MeasRelaxationFulfilment-r17      BOOLEAN                               OPTIONAL,
    propagationDelayDifference-r17        PropagationDelayDifference-r17        OPTIONAL,
    nonCriticalExtension                  UEAssistanceInformation-v1800-IEs     OPTIONAL
}

UEAssistanceInformation-v1800-IEs ::= SEQUENCE {
    idc-FDM-Assistance-r18                IDC-FDM-Assistance-r18                          OPTIONAL,
    idc-TDM-Assistance-r18                IDC-TDM-Assistance-r18                          OPTIONAL,
    multiRx-PreferenceFR2-r18             ENUMERATED {single, multiple }                  OPTIONAL,
    musim-Assistance-v1800                MUSIM-Assistance-v1800                          OPTIONAL,
    flightPathInfoAvailable-r18           ENUMERATED {true}                               OPTIONAL,
    ul-TrafficInfo-r18                    UL-TrafficInfo-r18                              OPTIONAL,
    n3c-RelayUE-InfoList-r18              SEQUENCE (SIZE (0..8)) OF N3C-RelayUE-Info-r18  OPTIONAL,
    sl-PRS-UE-AssistanceInformationNR-r18 SL-PRS-UE-AssistanceInformationNR-r18           OPTIONAL,
    nonCriticalExtension                  UEAssistanceInformation-v1900-IEs               OPTIONAL
}

UEAssistanceInformation-v1900-IEs ::= SEQUENCE {
    gapOccasionCancelRatio-r19            GapOccasionCancelRatio-r19                      OPTIONAL,
    lpwus-OffsetPreference-r19            LPWUS-OffsetPreference-r19                      OPTIONAL,
    applicabilityReportList-r19           ApplicabilityReportList-r19                     OPTIONAL,
    dataCollectionPreference-r19          DataCollectionPreference-r19                    OPTIONAL,
    loggedDataCollectionAssistance-r19    LoggedDataCollectionAssistance-r19              OPTIONAL,
    assisted-SSB-MTC-MG-Report-r19        BIT STRING (SIZE (7))                           OPTIONAL,
    fbs-Preference-r19                    ENUMERATED {preferred, notPreferred }           OPTIONAL,
    nonCriticalExtension                  SEQUENCE {}                                     OPTIONAL
}

Three releases have been added to that chain since this page was written. It stopped at UEAssistanceInformation-v1610-IEs, and v1700, v1800 and v1900 now follow it. Each is reached through the nonCriticalExtension field of the one before, so if an implementation stops decoding at Release 16, everything after it is silently dropped.

Release

Extension

What it added for power saving

15

UEAssistanceInformation-v1540-IEs

Overheating assistance only

16

UEAssistanceInformation-v1610-IEs

DRX, bandwidth, carrier, MIMO layer, scheduling offset and release preferences, plus in-device coexistence

17

UEAssistanceInformation-v1700-IEs

Relaxation state for radio link and beam failure monitoring, SCG deactivation preference, multi-SIM assistance, FR2-2 preferences

18

UEAssistanceInformation-v1800-IEs

Split in-device coexistence into FDM and TDM assistance, multi-receiver FR2 preference, uplink traffic information

19

UEAssistanceInformation-v1900-IEs

Low power wake-up signal offset preference, data collection preferences, gap occasion cancel ratio

  • Every field in the chain is OPTIONAL : a UE sends only the preferences it has something to say about, so a live message is far shorter than the listing.
  • The chain is how backward compatibility works : an older network stops at the extension it understands, and the rest is skipped rather than rejected.
  • Release 17 added relaxation, not just preference : rlm-MeasRelaxationState and bfd-MeasRelaxationState report that the UE has relaxed its monitoring, which is a state rather than a request.
  • Release 19 reaches the wake-up signal : lpwus-OffsetPreference-r19 is the low power wake-up signal, which is the successor to the DCP mechanism on the network side.
  • Overheating is not the same as power saving : it arrived first, in Release 15, and it cites heat rather than battery as the reason for asking.

The next group is what those preferences are made of. Most of them are a request to reduce something, so the same few reduction structures appear repeatedly, and one enumeration of bandwidths serves all of them.

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

OverheatingAssistance ::=           SEQUENCE {
    reducedMaxCCs                       ReducedMaxCCs-r16                   OPTIONAL,
    reducedMaxBW-FR1                    ReducedMaxBW-FRx-r16                OPTIONAL,
    reducedMaxBW-FR2                    ReducedMaxBW-FRx-r16                OPTIONAL,
    reducedMaxMIMO-LayersFR1            SEQUENCE {
        reducedMIMO-LayersFR1-DL            MIMO-LayersDL,
        reducedMIMO-LayersFR1-UL            MIMO-LayersUL
    } OPTIONAL,
    reducedMaxMIMO-LayersFR2            SEQUENCE {
        reducedMIMO-LayersFR2-DL            MIMO-LayersDL,
        reducedMIMO-LayersFR2-UL            MIMO-LayersUL
    } OPTIONAL
}

DRX-Preference-r16 ::=              SEQUENCE {
    preferredDRX-InactivityTimer-r16    ENUMERATED {
                                            ms0, ms1, ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30, ms40, ms50, ms60, ms80,
                                            ms100, ms200, ms300, ms500, ms750, ms1280, ms1920, ms2560, spare9, spare8,
                                            spare7, spare6, spare5, spare4, spare3, spare2, spare1} OPTIONAL,
    preferredDRX-LongCycle-r16          ENUMERATED {
                                            ms10, ms20, ms32, ms40, ms60, ms64, ms70, ms80, ms128, ms160, ms256, ms320, ms512,
                                            ms640, ms1024, ms1280, ms2048, ms2560, ms5120, ms10240, spare12, spare11, spare10,
                                            spare9, spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1 } OPTIONAL,
    preferredDRX-ShortCycle-r16         ENUMERATED {
                                            ms2, ms3, ms4, ms5, ms6, ms7, ms8, ms10, ms14, ms16, ms20, ms30, ms32,
                                            ms35, ms40, ms64, ms80, ms128, ms160, ms256, ms320, ms512, ms640, spare9,
                                            spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1 } OPTIONAL,
    preferredDRX-ShortCycleTimer-r16    INTEGER (1..16)    OPTIONAL
}

MaxBW-Preference-r16 ::=            SEQUENCE {
    reducedMaxBW-FR1-r16                ReducedMaxBW-FRx-r16                     OPTIONAL,
    reducedMaxBW-FR2-r16                ReducedMaxBW-FRx-r16                     OPTIONAL
}

MaxCC-Preference-r16 ::=            SEQUENCE {
    reducedMaxCCs-r16                   ReducedMaxCCs-r16                        OPTIONAL
}

MaxMIMO-LayerPreference-r16 ::=     SEQUENCE {
    reducedMaxMIMO-LayersFR1-r16        SEQUENCE {
        reducedMIMO-LayersFR1-DL-r16        INTEGER (1..8),
        reducedMIMO-LayersFR1-UL-r16        INTEGER (1..4)
    } OPTIONAL,
    reducedMaxMIMO-LayersFR2-r16        SEQUENCE {
        reducedMIMO-LayersFR2-DL-r16        INTEGER (1..8),
        reducedMIMO-LayersFR2-UL-r16        INTEGER (1..4)
    } OPTIONAL
}

MinSchedulingOffsetPreference-r16 ::= SEQUENCE {
    preferredK0-r16                       SEQUENCE {
        preferredK0-SCS-15kHz-r16             ENUMERATED {sl1, sl2, sl4, sl6}              OPTIONAL,
        preferredK0-SCS-30kHz-r16             ENUMERATED {sl1, sl2, sl4, sl6}              OPTIONAL,
        preferredK0-SCS-60kHz-r16             ENUMERATED {sl2, sl4, sl8, sl12}             OPTIONAL,
        preferredK0-SCS-120kHz-r16            ENUMERATED {sl2, sl4, sl8, sl12}             OPTIONAL
    }                                                                                  OPTIONAL,
    preferredK2-r16                       SEQUENCE {
        preferredK2-SCS-15kHz-r16             ENUMERATED {sl1, sl2, sl4, sl6}             OPTIONAL,
        preferredK2-SCS-30kHz-r16             ENUMERATED {sl1, sl2, sl4, sl6}             OPTIONAL,
        preferredK2-SCS-60kHz-r16             ENUMERATED {sl2, sl4, sl8, sl12}            OPTIONAL,
        preferredK2-SCS-120kHz-r16            ENUMERATED {sl2, sl4, sl8, sl12}            OPTIONAL
    }                                                                                 OPTIONAL
}

ReleasePreference-r16 ::=           SEQUENCE {
    preferredRRC-State-r16              ENUMERATED {idle, inactive, connected, outOfConnected}
}

ReducedMaxBW-FRx-r16 ::=            SEQUENCE {
    reducedBW-DL-r16                    ReducedAggregatedBandwidth,
    reducedBW-UL-r16                    ReducedAggregatedBandwidth
}

ReducedMaxCCs-r16 ::=               SEQUENCE {
    reducedCCsDL-r16                    INTEGER (0..31),
    reducedCCsUL-r16                    INTEGER (0..31)
}

ReducedAggregatedBandwidth ::= ENUMERATED {mhz0, mhz10, mhz20, mhz30, mhz40, mhz50, mhz60, mhz80, mhz100, mhz200, mhz300, mhz400}

IDC-Assistance-r16 ::=                  SEQUENCE {
    affectedCarrierFreqList-r16             AffectedCarrierFreqList-r16               OPTIONAL,
    affectedCarrierFreqCombList-r16         AffectedCarrierFreqCombList-r16           OPTIONAL,
    ...
}

VictimSystemType-r16 ::=    SEQUENCE {
    gps-r16                     ENUMERATED {true}        OPTIONAL,
    glonass-r16                 ENUMERATED {true}        OPTIONAL,
    bds-r16                     ENUMERATED {true}        OPTIONAL,
    galileo-r16                 ENUMERATED {true}        OPTIONAL,
    navIC-r16                   ENUMERATED {true}        OPTIONAL,
    wlan-r16                    ENUMERATED {true}        OPTIONAL,
    bluetooth-r16               ENUMERATED {true}        OPTIONAL,
    ...,
    [[
    uwb-r18                     ENUMERATED {true}        OPTIONAL
    ]]
}

One addition is worth noting here. VictimSystemType-r16 gained a Release 18 extension group carrying uwb-r18, so ultra wideband joins GNSS, WLAN and Bluetooth as a system the UE can name when it reports in-device coexistence trouble.

  • A preference is a request, not a command : the network is free to ignore every one of these, and the UE has to keep working if it does.
  • Reductions are expressed per frequency range : FR1 and FR2 carry separate bandwidth and MIMO layer entries throughout.
  • The scheduling offset preference is per subcarrier spacing : preferredK0 and preferredK2 each carry four entries, and the slot values differ between the lower and higher spacings.
  • ReleasePreference-r16 can ask to leave connected mode : preferredRRC-State-r16 offers idle, inactive, connected and outOfConnected, so the UE can ask to be released outright.
  • DRX preferences cover all four timers : inactivity timer, long cycle, short cycle and short cycle timer, which is the whole of what shapes a DRX cycle.

The last group is the network side. Two mechanisms appear, and they act at different points in the DRX cycle. DCP decides whether the UE wakes at all, and the dormant bandwidth part decides how little it does once awake.

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

PhysicalCellGroupConfig ::=         SEQUENCE {
    ...                                                                                 -- only the power saving member is shown
    dcp-Config-r16                      SetupRelease { DCP-Config-r16 }                 OPTIONAL,   -- Need M
    ...
}

DCP-Config-r16 ::=                  SEQUENCE {
    ps-RNTI-r16                         RNTI-Value,
    ps-Offset-r16                       INTEGER (1..120),
    sizeDCI-2-6-r16                     INTEGER (1..maxDCI-2-6-Size-r16),
    ps-PositionDCI-2-6-r16              INTEGER (0..maxDCI-2-6-Size-1-r16),
    ps-WakeUp-r16                       ENUMERATED {true}                               OPTIONAL,   -- Need S
    ps-TransmitPeriodicL1-RSRP-r16      ENUMERATED {true}                               OPTIONAL,   -- Need S
    ps-TransmitOtherPeriodicCSI-r16     ENUMERATED {true}                               OPTIONAL    -- Need S
}

ServingCellConfig ::=               SEQUENCE {
    ...                                                                                 -- only the power saving member is shown
    dormantBWP-Config-r16               SetupRelease { DormantBWP-Config-r16 }          OPTIONAL,   -- Need M
    ...
}

DormantBWP-Config-r16::=               SEQUENCE {
    dormantBWP-Id-r16                      BWP-Id                                       OPTIONAL,   -- Need M
    withinActiveTimeConfig-r16             SetupRelease { WithinActiveTimeConfig-r16 }  OPTIONAL,   -- Need M
    outsideActiveTimeConfig-r16            SetupRelease { OutsideActiveTimeConfig-r16 } OPTIONAL    -- Need M
}

WithinActiveTimeConfig-r16 ::=         SEQUENCE {
   firstWithinActiveTimeBWP-Id-r16         BWP-Id                                       OPTIONAL,   -- Need M
   dormancyGroupWithinActiveTime-r16       DormancyGroupID-r16                          OPTIONAL    -- Need R
}

OutsideActiveTimeConfig-r16 ::=        SEQUENCE {
   firstOutsideActiveTimeBWP-Id-r16        BWP-Id                                       OPTIONAL,   -- Need M
   dormancyGroupOutsideActiveTime-r16      DormancyGroupID-r16                          OPTIONAL    -- Need R
}

DormancyGroupID-r16 ::=         INTEGER (0..4)
  • DCP is DCI format 2_6 on its own RNTI : ps-RNTI-r16 addresses it, and sizeDCI-2-6-r16 with ps-PositionDCI-2-6-r16 locate the bits for this UE inside the shared payload.
  • ps-Offset-r16 is how far ahead of the on duration it arrives : the UE has to be awake briefly to receive the signal that tells it to stay asleep.
  • Absent ps-WakeUp means stay asleep on a miss : the field decides what the UE does when it fails to decode DCP at all, which is the case that matters most.
  • The dormant bandwidth part has two configurations : one for within DRX active time and one for outside it, each naming its own first bandwidth part.
  • DormancyGroupID-r16 runs 0 to 4 : secondary cells are grouped so that one indication can put a whole group into dormancy.

Reference :

[1] The 5G Evolution:3GPP Releases 16-17 (5G Americas)

[2] RP-200494 - UE Power Saving in NR (Work Item Description)

[3] TR 38.840 - Study on User Equipment (UE) power saving in NR

[4] Power Saving Techniques for 5G and Beyond

[5] 5G NR Power Saving Enhancements in Release 17 - Mediatek (Witepaper)

[6] 38.331 v19.3.0 : NR - Radio Resource Control (RRC) protocol specification. Every definition in the RRC Parameters section is quoted from it.

[7] TR 38.840 : Study on User Equipment (UE) power saving in NR. This is the study the Release 16 work item was built on.

YouTube