4G/LTE - Basic Procedure

 

 

 

Sleep and Wakeup

 

In most mobile communication (e.g, LTE, WCDMA), Network configures UE to repeat a certain pattern of Wakeup-Sleep. This is mainly for reducing the energy consumption by mobile device. So how network sets the detailed configuration of this pattern and how efficiently UE implement those pattern become the critical factors in battery life of a mobile device.

I'll go through each pattern with the 3GPP rule behind it, and then put them on one time line. The last section shows where they collide, because a collision is where most field problems start.

Which cases create a Wakeup-Sleep pattern in LTE ?

In case of LTE, there are several cases in which these patterns happens. (Note : Measurement Gap is nothing to do with Wakeup/sleep but it also cause a 'break' in a technology, so I listed it in the same group).

Each of these cycles are relatively well investigated and defined and Idle mode DRX is being used in every network and some networks are using Connected mode DRX and SPS as well. But when all of these cycles are activated all togather, situation gets so complicated and it would take so long time to stabilize the combined operation not only on network side but also on UE side.

Before we look at each one, let's put the four side by side. They are controlled by different messages and defined in different specifications. So an engineer who tunes one of them often does not see the others in the same log.

 

Pattern

RRC state

Configured by

Specification

Period range

Idle mode DRX

RRC_IDLE

defaultPagingCycle and nB in SIB2, UE specific DRX from upper layers

36.304 clause 7.1

32, 64, 128 or 256 radio frames

Connected mode DRX

RRC_CONNECTED

DRX-Config in MAC-MainConfig

36.321 clause 5.7

long cycle 10 to 2560 subframes, short cycle 2 to 640 subframes

SPS

RRC_CONNECTED

SPS-Config

36.321 clause 5.10

DL interval 10 to 640 subframes

Measurement Gap

RRC_CONNECTED

MeasGapConfig in MeasConfig

36.133 clause 8.1.2.1

6 ms gap every 40 or 80 ms for pattern 0 and 1

 

The table shows one important difference. Idle mode DRX counts in radio frames of 10 ms, but the three connected mode patterns count in subframes of 1 ms. Connected mode DRX and SPS also have different jobs. DRX decides when the UE must monitor PDCCH. SPS decides when a PDSCH arrives without any PDCCH at all.

  • Four patterns, four configurations : Idle mode DRX comes from system information and NAS, and the other three come from dedicated RRC messages.
  • Different time units : idle mode DRX is set in radio frames, and connected mode patterns are set in subframes.
  • Measurement gap is not a sleep : the UE is busy on another frequency, but it is still unavailable for the serving cell.

How does Idle mode DRX decide when the UE wakes up ?

In RRC_IDLE the UE has no dedicated configuration, so it cannot be told directly when to wake up. It calculates its own paging occasion from its identity and from broadcast parameters. The eNB runs the same calculation, so both sides agree without any signalling for this UE.

36.304 v19.2.0 clause 7.1 gives the calculation. The UE wakes up in one Paging Frame, PF, per DRX cycle. The Paging Frame is the radio frame with SFN mod T = (T div N) x (UE_ID mod N). Inside that frame, the index i_s = floor(UE_ID / N) mod Ns picks the Paging Occasion, PO, from a subframe pattern in clause 7.2.

  • T is the DRX cycle. It is the shorter of the UE specific DRX value, if upper layers allocated one, and the default DRX value broadcast in system information. The default is defaultPagingCycle in PCCH-Config, with the values rf32, rf64, rf128 and rf256.
  • nB sets how many paging occasions the cell offers per cycle. It ranges from 4T down to T/256.
  • N = min(T, nB) is the number of paging frames per cycle, and Ns = max(1, nB/T) is the number of paging occasions per paging frame.
  • UE_ID is IMSI mod 1024 when the UE monitors P-RNTI on PDCCH. A UE connected to 5GC through E-UTRA uses 5G-S-TMSI mod 1024 instead.

Let's work through one example. Take IMSI 001010123456789, so UE_ID = 277. With T = 128 and nB = T, N is 128 and Ns is 1. The UE then wakes up in the frame with SFN mod 128 = 277 mod 128 = 21. This is SFN 21, 149, 277 and so on, once every 1.28 seconds. If the cell changes nB to T/4, N becomes 32, and the paging frame moves to SFN mod 128 = 4 x (277 mod 32) = 84.

This example shows why a broadcast parameter change can shift every UE in the cell. The UE does not choose its wake-up time. It inherits the time from its identity and from the cell's nB. During the remaining frames of the cycle the UE can sleep, apart from the measurements it needs for cell reselection.

Later releases stretch this pattern further. With extended DRX in clause 7.3, the UE monitors paging only inside a Paging Time Window. The window starts in a Paging Hyperframe, which the UE derives from a hashed S-TMSI. Clause 7.4 adds a Wake Up Signal for some UEs, such as NB-IoT and BL UEs. When the UE does not detect WUS, it does not have to monitor the following PO.

  • The UE computes its own paging occasion : PF and PO follow from UE_ID, T and nB, with no dedicated signalling.
  • T is the shorter of two values : a UE specific DRX value can shorten the cycle, but it cannot extend it beyond the broadcast default.
  • nB moves every UE : changing it changes N, and with N every paging frame in the cell.

How does Connected mode DRX decide when the UE wakes up ?

In RRC_CONNECTED the problem is different. The UE must be reachable within a few tens of milliseconds, but data arrives in bursts. Connected mode DRX lets the eNB trade latency for battery, with a set of timers that 36.321 v19.3.0 clause 5.7 defines.

The cycle starts when [(SFN x 10) + subframe number] modulo longDRX-Cycle = drxStartOffset. At that subframe the UE starts onDurationTimer and monitors PDCCH. If a PDCCH schedules a new transmission, the UE starts drx-InactivityTimer and stays awake. When that timer expires, the UE uses the Short DRX Cycle if one is configured, and it returns to the Long DRX Cycle when drxShortCycleTimer expires. For the short cycle, the offset check uses drxStartOffset modulo shortDRX-Cycle.

The UE monitors PDCCH during the Active Time. The Active Time includes the time while onDurationTimer, drx-InactivityTimer, drx-RetransmissionTimer or mac-ContentionResolutionTimer is running. It also includes the time while a Scheduling Request is pending, and a few other cases. So the UE can extend its own wake-up time by sending an SR.

  • onDurationTimer takes values from psf1 to psf200, counted in PDCCH subframes.
  • drx-InactivityTimer takes values from psf1 to psf2560.
  • longDRX-CycleStartOffset combines the long cycle, from sf10 to sf2560, with the drxStartOffset inside that cycle.
  • shortDRX-Cycle takes values from sf2 to sf640, and drxShortCycleTimer counts from 1 to 16 short cycles.
  • A DRX Command MAC control element stops onDurationTimer and drx-InactivityTimer. A Long DRX Command MAC control element also stops drxShortCycleTimer and moves the UE straight to the long cycle.

Let's take a simple configuration. With longDRX-Cycle sf40, drxStartOffset 5 and onDurationTimer psf8, the cycle starts in subframe 5 of every radio frame with SFN mod 4 = 0. If no data arrives, the UE is awake for 8 of every 40 subframes, which is 20 % of the time. Each new transmission extends this by drx-InactivityTimer, so the real duty cycle depends on the traffic.

DRX also changes what the UE sends in the uplink. Outside the Active Time the UE does not report type-0-triggered SRS or CQI/PMI/RI on PUCCH. With cqi-Mask, the UE reports CQI on PUCCH only while onDurationTimer runs. But HARQ feedback is always sent when it is expected, whether or not the UE is monitoring PDCCH.

  • DRX controls PDCCH monitoring : the UE decodes PDCCH only in the Active Time, and the timers define that time.
  • The start is a modulo rule : longDRX-Cycle and drxStartOffset place the on duration on a fixed subframe grid.
  • The UE can extend the Active Time : a pending SR or an ongoing retransmission keeps it awake beyond the on duration.

How do SPS and Measurement Gap add to the pattern ?

SPS and measurement gap do not follow the DRX timers. Each has its own periodic grid, and the UE must follow that grid even when DRX would let it sleep. So we need to know both grids before we can combine them with DRX.

SPS gives the UE a configured downlink assignment with semiPersistSchedIntervalDL, from sf10 to sf640. After the eNB activates it on PDCCH, a PDSCH arrives on this grid without a new PDCCH. The reception rule in 36.321 clause 5.3.1 asks only for two things. The TTI must carry a configured downlink assignment, and it must not be in a measurement gap. The rule does not refer to the Active Time.

A measurement gap is a time window in which the UE retunes its receiver to another frequency or RAT. 36.133 v19.5.0 Table 8.1.2.1-1 defines gap pattern 0 as a 6 ms gap every 40 ms, and gap pattern 1 as a 6 ms gap every 80 ms. The gap starts in the radio frame with SFN mod T = FLOOR(gapOffset/10), in subframe gapOffset mod 10, where T = MGRP/10. 36.331 v19.3.0 carries gapOffset as gp0 (0..39) or gp1 (0..79).

Inside a gap the UE is unavailable for the serving cell in both directions. It does not monitor PDCCH or receive a configured assignment. 36.321 Annex A also says that the UE does not transmit HARQ feedback, CQI/PMI/RI/PTI/CRI or SRS in a subframe that is part of a measurement gap. Release 14 adds shorter patterns, such as gap pattern 2 and 3 with a 3 ms gap.

  • SPS has its own grid : a configured downlink assignment is received on the SPS grid, without PDCCH and without reference to the Active Time.
  • A gap blocks both directions : no PDCCH monitoring, no configured reception, and no HARQ feedback, CQI or SRS inside it.
  • gp0 means 6 ms every 40 ms : that is 15 % of the time taken away from the serving cell.

What happens when these patterns run together ?

Each pattern works well on its own. The difficulty is their intersection, because the four grids have different periods and offsets. Let's put the examples from the sections above on one time line and see what the specifications say about each collision.

Take the DRX example again, with longDRX-Cycle sf40, drxStartOffset 5 and onDurationTimer psf8. Now add gap pattern 0 with gapOffset 0. The gap covers subframes 0 to 5 of each radio frame with SFN mod 4 = 0. The on duration starts in subframe 5 of the same frame, so its first subframe falls inside the gap. The UE does not monitor PDCCH in that subframe, and 7 of the 8 on duration subframes remain. A small change of drxStartOffset or gapOffset removes the overlap completely.

SPS interacts with DRX in a less obvious way. The configured assignment is received even outside the Active Time. But in clause 5.7, the rule that starts the HARQ RTT Timer for a configured assignment sits inside the Active Time branch. If that TB fails, the retransmission needs a PDCCH, and the UE must be awake to receive it. So an SPS occasion outside the Active Time is a weak point for retransmission, and an SPS grid inside the on duration avoids the question.

The UE side has a similar problem. A UE implementation has to wake its receiver early enough for each of these events, and each wake-up costs some ramp-up time. Four independent grids can leave only short sleep periods between them. The battery saving then becomes much smaller than the DRX duty cycle alone suggests. This is why the combined operation takes a long time to stabilise, as noted at the start of this page.

  • The measurement gap wins : it blocks PDCCH monitoring and configured reception, even inside the on duration.
  • Offsets decide the overlap : a gap and an on duration with the same period either always collide or never collide.
  • SPS outside the Active Time is fragile : the configured PDSCH is received, but a retransmission needs PDCCH, which the UE monitors only in the Active Time.

Reference

  • 3GPP TS 36.304 v19.2.0 - clause 7.1 Discontinuous Reception for paging, clause 7.3 Paging in extended DRX, clause 7.4 Paging with Wake Up Signal
  • 3GPP TS 36.321 v19.3.0 - clause 5.3.1 DL Assignment reception, clause 5.7 Discontinuous Reception, Annex A Handling of measurement gaps
  • 3GPP TS 36.331 v19.3.0 - DRX-Config, PCCH-Config, SPS-Config, MeasGapConfig
  • 3GPP TS 36.133 v19.5.0 - Table 8.1.2.1-1 Gap Pattern Configurations supported by the UE