diff options
author | Alexander Couzens <lynxis@fe80.eu> | 2017-02-03 22:16:05 +0100 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2019-08-20 17:48:47 +0200 |
commit | 39cbecd273b16d72dd7b4aa8b307e5d4bc643474 (patch) | |
tree | c9329192f33f3833f73d2664d909ad5c1750565b /src/gprs/gprs_sgsn.c | |
parent | 5ed3f67f96ce29a1afcd9db89b45752c1d69ac8c (diff) |
gprs/gprs_gmm: implement T3314. Timeout to reset MM state READY->STANDBY
When a MS MM state is READY its exact location is known (PCU).
On Gb, T3314 (aka TS 23.060 "READY timer") sets the MM state from
READY to STANDBY, where only the RA is known.
Introduce a second set of timer variables, because state timer
can run while another packet state timer is timing out.
Related: OS#1941
Change-Id: I4ce23ebe50d141076c20c9c56990b7103cd25e55
Diffstat (limited to 'src/gprs/gprs_sgsn.c')
-rw-r--r-- | src/gprs/gprs_sgsn.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gprs/gprs_sgsn.c b/src/gprs/gprs_sgsn.c index eb04846eb..9f02d5420 100644 --- a/src/gprs/gprs_sgsn.c +++ b/src/gprs/gprs_sgsn.c @@ -341,6 +341,11 @@ void sgsn_mm_ctx_cleanup_free(struct sgsn_mm_ctx *mm) osmo_timer_del(&mm->timer); } + if (osmo_timer_pending(&mm->gb.state_timer)) { + LOGMMCTXP(LOGL_INFO, mm, "Cancelling MM state timer %u\n", mm->gb.state_T); + osmo_timer_del(&mm->gb.state_timer); + } + memset(&sig_data, 0, sizeof(sig_data)); sig_data.mm = mm; osmo_signal_dispatch(SS_SGSN, S_SGSN_MM_FREE, &sig_data); |