Monday, October 8, 2012

DRX Feature in LTE

Main Points before Dig Deeper:

1) DRX is the feature which is to enhanace battery life to UE.
2) Below are the parameters/configuration details that plays rols in DRX handling (from 36.331 spec)
           longDRXCycleOffset (LongDrxCycleTimer  and DRXOffset)

Important points to note on above:
a) onDurationTimer should be >= shortDRX/longDRXCycleTimer
b) onDurationTimer duration is part of ShortDRX/longDRXCycleTimer
c) If Both Short and LongDrxCycle timer values are configured then, longDRXCycle should be multiple of shortDRXCycleTimer.
d) if shortDRXCycle and longDRXCycle are configured then shortDRXCycle takes first then it moves to longDRXCycle
e) the drxOffset helps UE to know when UE should start onDurationTimer after inActivieTimer gets expired. Formulae available in 36.321 (Pasting below from same)
      i) If the Short DRX Cycle is used 
       (SFN * 10) + subframe number] modulo (shortDRX-Cycle) =(drxStartOffset) modulo (shortDRX-Cycle)
     ii) if the Long DRX Cycle is used and 
          [(SFN * 10) + subframe number] modulo (longDRX-Cycle) = drxStartOffset: 
             start onDurationTimer.

f) When UE has multi-RAB and each RAB is configured with different DRX configurations, then UE should consider the minimum of the DRX configurations.


Order or usage at UE during DRX:

    -> ShortDRXCycles's onDurationTimer
           -> Rest of Short DRXCycleTimer
               -> numberof Times ShortDRXCycle gets executed which is equal to drxShortCycleTimer
                    -> After completion of shortDRXCycle, move to longDRXCycle (Here also onDurationTimer first                
                        and rest of the longDRXCycle - onDurationTimer
                   -> Fromt this point onwards only longDRXCycle is active

   Below are the sample configured Values:
                onDurationTimer = sf200
                drx_InactivityTimer = sf80
                drx_reTransmissionTimer = sf2 
                longDrxCycleOffset = sf1280=5
                 ShortDrxCycle = sf640
                drxShortCycleTimer = 1

and let us suppose we received DL SCH data in below SFN/SFs 
                SFN/SF = 370 – 8 ---> DL-SCH received for UE attached
                SFN/SF = 704 – 6  ---> Next DL-SCH received for the same attached UE

And Below is the way of  understanding:

                Inactivity Timer 80 ms = SFN+8 i.e
                And from the formula Short DRX Cycle is used and [(SFN * 10) + subframe number] modulo (shortDRX-Cycle) = (drxStartOffset) modulo (shortDRX-Cycle);
384-5 OnDuration Timer Can start
+ShortDRXCycle (sf640) (Being drxShortCycleTimer =1 only once ShortDRXCycle executed)
384+64 – 5 =  448-5
+LongDRXCycle (sf1280)
448+128 -  5  = 576 – 5
576+128 – 5 = 704 – 5

And we can receive  downlink packet from 704-6 as observed .
Reg. DRXReTXTimer: This is like even there is no DL/UL data but retransmissions are happening because of HARQ NACKs. So, untill retransmissions are getting over DRX will not get activitate because of retransmissions even there is no NEW DL/UL Data.

Attaching the Image: (Thanks to the blogs and authors helping me to understand the same)


  1. Good. The example helps a lot. Thanks for sharing.

  2. Good and nice example

  3. Hi venkat,
    Could you please explain the same from , when eNB mac gets Drx configuration.?