4G/LTE - DRX

 

 

 

eDRX (Extended/Enhanced DRX)

 

I assume that you already know what DRX (Discontinuous Reception) mean. You can think of DRX as a kind of 'Sleeping Mode'. 'Sleeping' on reciever side means 'You cannot Receive any data during the period'. This is why the sleeping mode is called 'Discontinuous Reception'.

There are largely two types of DRX in LTE. One is Idle mode DRX. This idle mode DRX is more commonly known as Paging Cycle which is explained in detail in Paging page. The other type is called C-DRX (Connected Mode DRX) which is described in C-DRX page.

eDRX is a mechanism that can extend the cycle (sleeping duration) of these two DRX (Idle mode DRX and C-DRX). The concept of eDRX can be illustrated as shown below.

Why do we want to extend this cycle (sleeping time) ? The answer is simple. To save energy (battery consumption). So eDRX would be mostly used in the application of IoT(Internet of Things) operating in energy saving mode.

 

A current consumption timeline through boot up, registration, idle and a call, labelled Normal DRX, with two zoomed panels below it labelled eDRX showing a very long idle cycle and a longer but shorter connected cycle

  • The upper trace is labelled Normal DRX on the right, and it runs the whole life of a call. The phases along the top read Power On, Boot up and App Loading, Frequency Scan, Cell Detection, Cell Selection, Registration, Idle, Call Establish, Data, C-DRX and Data.
  • Two green lines drop from that trace to the lower half, which is labelled eDRX. Each lower panel is the same stretch with the cycle stretched out.
  • The left panel comes from the Idle stretch. Two pulses sit at the ends with a long dashed line between them, and the caption reads SUPER LONG !!!!
  • The right panel comes from the C-DRX stretch. The pulses are further apart than in the trace above but still close together, and the caption reads LONG, but not extremely long.

The two captions are the whole point of the picture, because eDRX stretches both cycles and stretches the idle one very much further than the connected one. The last section on this page puts numbers on that difference.

We need a new clock ! - hyperSFN

A longer cycle needs a longer clock. The UE and the eNB have to agree on when a cycle starts. The counter they already share runs out long before an eDRX cycle does, and that is the problem this section solves.

The basic concept of eDRX would sound simple. Just extension of sleeping duration. So can it be implemented by adding a couple of large values Paging Cycle and DRX Cycle in RRC message ? As I always say, nothing in enginerring goes as easy as it sound. To perform DRX operation properly, both UE and eNB require a very accurate timer(clock) and the clock should be synchronized on both side. As you know, SFN (System Frame Number) and Subframe is the timer being used in current LTE for most of the synchronized operation. The maximum duration of SFN is 1024 radio frame meaning 10240 radio frame (around 10). However, eDRX cycle is designed to be much longer than this reaching several hours in case of Idle mode drx. So we got to need another kind of timer (clock) that can measure much longer time duration. This new timer is called hyperSFN.

The hyperSFN is running on top of SFN. When SFN hits the max (1023) and rollover to the beginning the hyperSFN gets incremented by 1. It means 1 hyperSFN corresponds to 1024 SFN (almost 3 hours).

As you may know, UE and eNB synchronize the SFN number by MIB (the first IE of MIB is SFN number). Then, how they synchronize on hyperSFN. They use SIB1 for this purpose. As you see in the following section, SIB1 would carry a special IE called hyperSFN to carry the current hyperSFN number.

 

One number in the arithmetic above is worth pinning down. A hyperSFN period is 1024 SFN cycles of 10.24 seconds each, which is 10485.76 seconds, or 2 hours 54 minutes. That figure returns below, where this page works out how long a cycle can be, because it is also the longest eDRX cycle any radio access type can ask for.

  • hyperSFN is a counter, not a timer : it counts SFN wraps, so one step of it is 10.24 seconds multiplied by 1024.
  • It travels in SIB1, not in MIB : MIB carries the SFN and SIB1 carries the hyperSFN, which is why the capture in the next section is a SIB1.
  • The clock sets the ceiling : no eDRX cycle can outrun one wrap of the hyperSFN, and the longest value in the specification is exactly one wrap.

RRC Messages for eDRX Operation

Three messages carry the eDRX additions, and each of them answers a different question. The captures below are one of each, and the fields that matter in them are the ones the author has coloured.

As you may guess, a couple of new IE (Information Elements) should be added to a couple of RRC messages that are related to DRX operation. These RRC messages are SystemInformationBlockType1 and Paging, RRC Connection Setup/Reconfiguration as shown below.

Capture : a SystemInformationBlockType1 as one network sent it. Nothing in it has been corrected against a specification.

+-c1 ::= CHOICE [systemInformationBlockType1]
  +-systemInformationBlockType1 ::= SEQUENCE [001]
    +-cellAccessRelatedInfo ::= SEQUENCE [0]
    +-cellSelectionInfo ::= SEQUENCE [0]
    +-p-Max ::= INTEGER OPTIONAL:Omit
    +-freqBandIndicator ::= INTEGER (1..maxFBI[64]) [1]
    +-schedulingInfoList ::= SEQUENCE OF SIZE(1..maxSI-Message[32]) [1]
    +-tdd-Config ::= SEQUENCE OPTIONAL:Omit
    +-si-WindowLength ::= ENUMERATED [ms1]
    +-systemInfoValueTag ::= INTEGER (0..31) [0]
    +-nonCriticalExtension ::= SEQUENCE [11] OPTIONAL:Exist
      +-lateNonCriticalExtension ::= OCTET STRING CONSTRAINTED [0000000100000000] OPTIONAL:Exist
      | +-SystemInformationBlockType1-v8h0-IEs ::= SEQUENCE [00]
      +-nonCriticalExtension ::= SEQUENCE [001] OPTIONAL:Exist
        +-ims-EmergencySupport-r9 ::= ENUMERATED OPTIONAL:Omit
        +-cellSelectionInfo-v920 ::= SEQUENCE OPTIONAL:Omit
        +-nonCriticalExtension ::= SEQUENCE [001] OPTIONAL:Exist
          +-tdd-Config-v1130 ::= SEQUENCE OPTIONAL:Omit
          +-cellSelectionInfo-v1130 ::= SEQUENCE OPTIONAL:Omit
          +-nonCriticalExtension ::= SEQUENCE [001] OPTIONAL:Exist
            +-cellAccessRelatedInfo-v1250 ::= SEQUENCE [0]
            | +-category0Allowed-r12 ::= ENUMERATED OPTIONAL:Omit
            +-cellSelectionInfo-v1250 ::= SEQUENCE OPTIONAL:Omit
            +-freqBandIndicatorPriority-r12 ::= ENUMERATED OPTIONAL:Omit
            +-nonCriticalExtension ::= SEQUENCE [110] OPTIONAL:Exist
              +-hyperSFN ::= BIT STRING SIZE(10) [0000000000] OPTIONAL:Exist
              +-eDRXAllowed ::= ENUMERATED [true] OPTIONAL:Exist
              +-nonCriticalExtension ::= SEQUENCE OPTIONAL:Omit

eDRXAllowed : Indicates if idle mode extended DRX is allowed in the cell. The UE shall not operate in idle mode extended DRX unless eDRXAllowed is set to TRUE.

  • The two coloured lines sit at the very end of a long chain of nonCriticalExtension, which is where Release 13 fields are added to a message defined in Release 8.
  • hyperSFN reads a 10 bit string of zeros here, so this capture was taken in the first hyperSFN period after the counter started.
  • eDRXAllowed reads true, which is the cell saying that idle mode eDRX may be used at all.

 

Capture : a Paging message as one network sent it. Nothing in it has been corrected against a specification.

+-c1 ::= CHOICE [paging]
  +-paging ::= SEQUENCE [0101]
    +-pagingRecordList ::= SEQUENCE OF OPTIONAL:Omit
    +-systemInfoModification ::= ENUMERATED [true] OPTIONAL:Exist
    +-etws-Indication ::= ENUMERATED OPTIONAL:Omit
    +-nonCriticalExtension ::= SEQUENCE [11] OPTIONAL:Exist
      +-lateNonCriticalExtension ::= OCTET STRING SIZE(ALIGNED) OPTIONAL:Exist
      +-nonCriticalExtension ::= SEQUENCE [01] OPTIONAL:Exist
        +-cmas-Indication-r9 ::= ENUMERATED OPTIONAL:Omit
        +-nonCriticalExtension ::= SEQUENCE [11] OPTIONAL:Exist
          +-eab-ParamModification-r11 ::= ENUMERATED [true] OPTIONAL:Exist
          +-nonCriticalExtension ::= SEQUENCE [010] OPTIONAL:Exist
            +-redistributionIndication-r13 ::= ENUMERATED OPTIONAL:Omit
            +-systemInfoModification-eDRX-r13 ::= ENUMERATED [true] OPTIONAL:Exist
            +-nonCriticalExtension ::= SEQUENCE OPTIONAL:Omit

systemInfoModification-eDRX : If present: indication of a BCCH modification other than SIB10, SIB11, SIB12 and SIB14 for UEs in extended DRX. This indication applies only to UEs having eDRX cycle longer than the BCCH modification period.

 

Capture : an RRC Connection Reconfiguration as one network sent it. Nothing in it has been corrected against a specification.

+-c1 ::= CHOICE [rrcConnectionReconfiguration]
  +-rrcConnectionReconfiguration ::= SEQUENCE
    +-rrc-TransactionIdentifier ::= INTEGER (0..3) [0]
    +-criticalExtensions ::= CHOICE [c1]
      +-c1 ::= CHOICE [rrcConnectionReconfiguration-r8]
        +-rrcConnectionReconfiguration-r8 ::= SEQUENCE [000100]
          +-measConfig ::= SEQUENCE OPTIONAL:Omit
          +-mobilityControlInfo ::= SEQUENCE OPTIONAL:Omit
          +-dedicatedInfoNASList ::= SEQUENCE OF OPTIONAL:Omit
          +-radioResourceConfigDedicated ::= SEQUENCE [000100] OPTIONAL:Exist
          | +-srb-ToAddModList ::= SEQUENCE OF OPTIONAL:Omit
          | +-drb-ToAddModList ::= SEQUENCE OF OPTIONAL:Omit
          | +-drb-ToReleaseList ::= SEQUENCE OF OPTIONAL:Omit
          | +-mac-MainConfig ::= CHOICE [explicitValue] OPTIONAL:Exist
          | | +-explicitValue ::= SEQUENCE [010]
          | |   +-ul-SCH-Config ::= SEQUENCE OPTIONAL:Omit
          | |   +-drx-Config ::= CHOICE [setup] OPTIONAL:Exist
          | |   | +-setup ::= SEQUENCE [0]
          | |   |   +-onDurationTimer ::= ENUMERATED [psf1]
          | |   |   +-drx-InactivityTimer ::= ENUMERATED [psf1]
          | |   |   +-drx-RetransmissionTimer ::= ENUMERATED [psf1]
          | |   |   +-longDRX-CycleStartOffset ::= CHOICE [sf2560]
          | |   |   | +-sf2560 ::= INTEGER (0..2559) [0]
          | |   |   +-shortDRX ::= SEQUENCE OPTIONAL:Omit
          | |   +-timeAlignmentTimerDedicated ::= ENUMERATED [sf500]
          | |   +-phr-Config ::= CHOICE OPTIONAL:Omit
          | |   +-EXTENSION ::= SEQUENCE [00101]
          | |     +-VERSION-BRACKETS1 ::= SEQUENCE OPTIONAL:Omit
          | |     +-VERSION-BRACKETS2 ::= SEQUENCE OPTIONAL:Omit
          | |     +-VERSION-BRACKETS3 ::= SEQUENCE [001] OPTIONAL:Exist
          | |     | +-stag-ToReleaseList-r11 ::= SEQUENCE OF OPTIONAL:Omit
          | |     | +-stag-ToAddModList-r11 ::= SEQUENCE OF OPTIONAL:Omit
          | |     | +-drx-Config-v1130 ::= SEQUENCE [111] OPTIONAL:Exist
          | |     |   +-drx-RetransmissionTimer-v1130 ::= ENUMERATED [psf0-v1130] OPTIONAL:Exist
          | |     |   +-longDRX-CycleStartOffset-v1130 ::= CHOICE [sf60-v1130] OPTIONAL:Exist
          | |     |   | +-sf60-v1130 ::= INTEGER (0..59) [0]
          | |     |   +-shortDRX-Cycle-v1130 ::= ENUMERATED [sf4-v1130] OPTIONAL:Exist
          | |     +-VERSION-BRACKETS4 ::= SEQUENCE OPTIONAL:Omit
          | |     +-VERSION-BRACKETS5 ::= SEQUENCE [01] OPTIONAL:Exist
          | |       +-extendedPHR2-r13 ::= ENUMERATED OPTIONAL:Omit
          | |       +-eDRX-Config-CycleStartOffset-r13 ::= CHOICE [setup] OPTIONAL:Exist
          | |         +-setup ::= CHOICE [sf10240]
          | |           +-sf10240 ::= INTEGER (0..3) [3]
          | +-sps-Config ::= SEQUENCE OPTIONAL:Omit
          | +-physicalConfigDedicated ::= SEQUENCE OPTIONAL:Omit
          | +-EXTENSION ::= SEQUENCE [00000]
          |   +-VERSION-BRACKETS1 ::= SEQUENCE OPTIONAL:Omit
          |   +-VERSION-BRACKETS2 ::= SEQUENCE OPTIONAL:Omit
          |   +-VERSION-BRACKETS3 ::= SEQUENCE OPTIONAL:Omit
          |   +-VERSION-BRACKETS4 ::= SEQUENCE OPTIONAL:Omit
          |   +-VERSION-BRACKETS5 ::= SEQUENCE OPTIONAL:Omit
          +-securityConfigHO ::= SEQUENCE OPTIONAL:Omit
          +-nonCriticalExtension ::= SEQUENCE OPTIONAL:Omit

eDRX-Config-CycleStartOffset : Indicates longDRX-Cycle and drxStartOffset in TS 36.321. The value of longDRX-Cycle is in number of subframes.

The value of drxStartOffset, in number of subframes, is indicated by the value of eDRX-Config-CycleStartOffset multiplied by 2560 plus the offset value configured in longDRX-CycleStartOffset. E-UTRAN only configures value setup when the value in longDRX-CycleStartOffset is sf2560.

  • The coloured lines fall in two groups. The first pair is longDRX-CycleStartOffset reading sf2560 with an offset of 0.
  • The second group is the eDRX field itself, and eDRX-Config-CycleStartOffset-r13 is set up with sf10240 and a value of 3. It sits in a version bracket alongside extendedPHR2-r13.
  • Those two groups work together rather than separately. The paragraph under the capture explains the multiplication, and the ASN.1 below shows why sf2560 has to be the value in the first group.

Following is based on 36.331 v19.3.0 (Release 19). This is the eDRX-Config-CycleStartOffset field of the MAC-MainConfig extension group.

	eDRX-Config-CycleStartOffset-r13	CHOICE {
		release							NULL,
		setup
										CHOICE {
		sf5120									INTEGER(0..1),
		sf10240									INTEGER(0..3)
		}
	}										OPTIONAL	-- Need ON

The capture shows only one of the two choices. 36.331 v19.3.0 offers sf5120 with a value of 0 or 1, as well as sf10240 with a value of 0 to 3. A connected mode eDRX cycle can therefore be 5120 subframes as easily as 10240.

One more field has appeared since the capture was taken. SIB1 now carries eDRX-Allowed-5GC beside eDRX-Allowed, and 36.331 splits their meanings by core network. The first permits idle mode eDRX for a UE connected to 5GC, and the second for a UE connected to EPC. A cell that sets only one of them permits eDRX for only one kind of UE.

  • Release 13 fields arrive at the end of the chain : every eDRX field in these captures hangs off a nonCriticalExtension, because the messages themselves are older than the feature.
  • The cell permits, the network configures : eDRXAllowed in SIB1 only says that idle mode eDRX is allowed, and the value itself arrives elsewhere.
  • Paging gained a second modification flag : systemInfoModification-eDRX exists because a UE in a long cycle can sleep through the window the original flag assumes.

How long can an eDRX cycle be ?

The page has said several times that an eDRX cycle is long. The two ceilings are worth stating exactly, because they are far apart, and because the picture at the top of this page draws that gap without naming it.

Connected mode is the shorter of the two, and the ASN.1 above is the whole answer. The field offers sf5120 and sf10240, so the longest connected mode eDRX cycle is 10240 subframes, which is 10.24 seconds. That is one SFN wrap and no more.

Idle mode does not come from RRC at all. The cycle is negotiated in NAS, in the Extended DRX parameters information element of 24.008, and the UE asks for it while the network answers with what it will give.

24.008 clause 10.5.5.32 lists the values for S1 mode. They run 5.12, 10.24, 20.48, 40.96, 61.44, 81.92, 102.4, 122.88, 143.36, 163.84, 327.68, 655.36, 1310.72 and 2621.44 seconds, and then two more at 5242.88 and 10485.76 seconds.

The last two carry a note, and the note is the interesting part. 24.008 applies 5242.88 and 10485.76 seconds only in NB-S1 and NB-N1 mode. A wideband LTE UE that receives either of them reads it as something else, so the longest idle mode eDRX cycle in ordinary LTE is 2621.44 seconds, which is 43 minutes 41 seconds.

The NB-IoT ceiling of 10485.76 seconds is not an arbitrary number either. It is 1024 SFN cycles, which is exactly one wrap of the hyperSFN from the section above. The clock and the longest cycle were designed to the same length.

  • Connected mode tops out at 10.24 seconds : sf10240 is the largest value the RRC field offers, and it is one SFN wrap.
  • Idle mode reaches 43 minutes in wideband LTE : 2621.44 seconds is the largest value 24.008 allows a WB-S1 UE to use.
  • NB-IoT goes four times further : 5242.88 and 10485.76 seconds are reserved for NB-S1 and NB-N1 mode.
  • The longest cycle is one hyperSFN : 10485.76 seconds is 1024 SFN cycles, which is why the clock in the section above had to exist before the cycle could.

Reference

The documents below are the sources for the field definitions and the cycle lengths on this page. A version is named only where the text was read in that version.

  • 36.331 : 3GPP - E-UTRA; Radio Resource Control (RRC) protocol specification, v19.3.0. The source of the ASN.1 tile above, of hyperSFN and eDRX-Allowed in SIB1, and of systemInfoModification-eDRX in Paging.
  • 24.008 : 3GPP - Mobile radio interface Layer 3 specification; Core network protocols; Stage 3, v20.0.0. Clause 10.5.5.32 is the Extended DRX parameters information element, and it holds the idle mode cycle lengths quoted here.
  • 36.321 : 3GPP - E-UTRA; Medium Access Control (MAC) protocol specification. Named by 36.331 as the home of longDRX-Cycle and drxStartOffset. Not read for this page.