Missing RRC inactivity timer + missing default DRX IE in S1 setup + UE S1 id unknown after Detach for switch off
Summary
The contribution should fix the following bugs:
- Missing RRC inactivity timer (not really a bug, more a missing feature).
- Missing default DRX information element (IE) in the S1 setup message from eNB to MME.
- eNB is unable to recover UE context from UE S1 id, after a Detach Request for switch-off from RRC Idle.
Steps to reproduce
-
The UE doesn't go to RRC IDLE after some time in RRC Connected without uplane data transmission.
-
Wireshark the S1 setup request after eNB wake up.
-
Switch off the UE in RRC Idle.
What is the expected correct behavior?
-
The so call RRC inactivity timer isn't defined in the official spec. Hence, its behaviour and duration are implementation dependent. Usually, the timeout is set to 10 sec and it is reset when the UE switch from Idle to Connected and each time uplane data are exchanged (DTCH). On timeout, the eNB should engage the release process with a S1 UE context release request message to MME. There is an existing related issue #18 (closed)
-
The S1 Setup Request message is sent by the eNB to the MME to engage a connection with it. The eNB sends only one request for each MME. The request concerns every cells managed by the eNB. In the IE, the eNB should indicate the default DRX value (used for Idle DRX). This value is the same for every cells of the eNB. At the moment, the value is set to default (0) instead of reading the config file pcch_default_PagingCycle value. Based on the request IEs from the spec (36.413), some parameters in the config file should be moved. For instance, the pcch_default_PagingCycle should be eNB specific and the TAC should be cell specific. This should be taken into account if the config file template is reworked one day.
-
When the UE sends a Detach Request for switch-off reason, the MME shouldn't send the Detach Accept and should directly sends the UE context release command. Then, the UE context should be removed based on the UE S1 id. This is normally not a problem, but if the UE was in RRC Idle and wakes up just to send the request, the eNB (in OAI code) didn't have the occasion to associate the S1 id to the UE initial id, and consequently consider the S1 id as unknown.
Possible fixes
Further discussion in the branch / merge section.