diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2021-04-13 20:00:10 +0200 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2021-04-13 20:36:06 +0200 |
commit | 223754fde5cf1b8720232b0185faa3c4d940e5a7 (patch) | |
tree | 97fb383f871cb5b24f5ec716752d12f6ca1677a9 | |
parent | f025e582bb278f4b263ec8f695fdd14c3ba84fa9 (diff) |
mm_state_iu_fsm: T3314 expiry must lead to PMM IDLE, not PMM DETACHED
This Iu timer is Osmocom specific, but is made to resemble T3314 timer
from GERAN (also named READY timer). The READY timer mission is to make
the MM state transition from READY to STANDBY, which in PMM (UTRAN)
matches the transition from CONNECTED to IDLE.
Instead, the patch introducing the timer was making it transition to
DETACHED directly, but this was clearly not the intention:
* Detaching a UE after 44 seconds (default value for T3314) is overkill.
* The comment describing it says: "Iu User inactivity timer. On expiry
release Iu connection". The release of Iu connection happens during
the CONNECTED->IDLE transition (that's basically the difference between
both states).
The transition CONNECTED->IDLE is done by means of calling
sgsn_ranap_iu_release_free(), which will eventually answer with a event
RANAP_IU_EVENT_IU_RELEASE from lower layers when the Release Complete is
received. At that point, osmo-sgsn code frees the connection and
transitions to IDLE state. This way we maintain the state according to
the connection existance.
Related: SYS#5389
Related: osmo-iuh.git Change-Id Iac822c74e56750dc40e94573eae0e20853ff68c0
Fixes: 3bad31bcb42c3449e6847ea7495578817029a2e1
Change-Id: I7279102ad51b0c39eb6d04c129986984112d15cc
-rw-r--r-- | src/sgsn/gprs_mm_state_iu_fsm.c | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/src/sgsn/gprs_mm_state_iu_fsm.c b/src/sgsn/gprs_mm_state_iu_fsm.c index 69b4ef008..7f2d3b4d3 100644 --- a/src/sgsn/gprs_mm_state_iu_fsm.c +++ b/src/sgsn/gprs_mm_state_iu_fsm.c @@ -64,7 +64,6 @@ static void st_pmm_connected(struct osmo_fsm_inst *fi, uint32_t event, void *dat break; case E_PMM_USER_INACTIVITY: sgsn_ranap_iu_release_free(ctx, &user_inactive_cause); - mm_state_iu_fsm_state_chg(fi, ST_PMM_DETACHED); break; case E_PMM_RA_UPDATE: break; |