move non-type-specific methods of proc_t to its base class.
procedure state machine was simplified via a future-type. Now procedures dont get stuck until the user reads the procedure outcome.
made the NAS procedures more event trigger/reaction-based.
before cell reselection was postponed to the next TTI but this is not possible in
the case where the serving cell changes.
if the "old" serving cell is no longer suitable, we would directly go to RRC IDLE below.
Therefore we need to select the new serving cell before sending the reestablishment
request.
this is tested in TC_8_5_1_1
this allows a simpler main that just signals NAS to switch on the UE
but doesn't block until the action is completed.
For making sure the UE also attached if the first attempt failed
the NAS needs to be extended to support the correct timers.
the main issue was the plmn_selected variable. the solution
was to create a function to enter the deregistered state that resets the variable
and performs all other actions that need to be performed, like clearing
EPS bearers.
The patch also extends the SS to support AT commands to enable/disable
data services and now succesfully passes TC_9_2_2_1_7
using the local rx count has caused issues when our UE
missed one NAS message was therefore out-of-sync and then
dropped all following NAS messages due to integrity failure
the NAS spec clearly states that the UE should use the
count received as an input for the integrity check calculation
when going RRC idle, NAS gets informed and currently
clears all registered EPS bearers. This is wrong because
the EPS can outlive a RRC session.
Also in the conformance tests it's clearly seen
that after a RRC release a dedicatated EPS bearer is
created with a linked EPS bearer ID that has been
created _before_ RRC went idle.