aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2020-06-26 12:09:34 +0200
committerPau Espin Pedrol <pespin@sysmocom.de>2020-06-26 12:20:57 +0200
commitb3e10aa8ebc2eab9df22bb598fd1344cfbbc3e63 (patch)
tree01b66e9f948b4aec9db058102ed6ca5b9cc5e05c
parent36ecddb705300c1dedd10a05e1f6c0f1a52e4caa (diff)
sgsn_libgtp: Avoid ps-paging MS on GMM Suspended state
The MS notifies movement to GMM SUSPEND state because it is for instance handling a call and cannot use PDCH anymore. Once it releases the TCH it will ASAP move to either dedicated mode or trigger RAU, which means it will get out of SUSPEND state. So it doesn't make sense to try paging the MS when in that state. This change makes test TC_suspend_nopaging pass. Related: OS#4616 Change-Id: Ia245899eb9f16c7f839785def4ceb721a1c3a11b
-rw-r--r--src/sgsn/sgsn_libgtp.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/sgsn/sgsn_libgtp.c b/src/sgsn/sgsn_libgtp.c
index 717df4ab0..581e74d4b 100644
--- a/src/sgsn/sgsn_libgtp.c
+++ b/src/sgsn/sgsn_libgtp.c
@@ -660,12 +660,10 @@ static int cb_data_ind(struct pdp_t *lib, void *packet, unsigned int len)
switch (mm->gmm_fsm->state) {
case ST_GMM_REGISTERED_SUSPENDED:
- /* initiate PS PAGING procedure */
- LOGMMCTXP(LOGL_INFO, mm, "Paging MS in GMM state %s\n",
+ LOGMMCTXP(LOGL_INFO, mm, "Dropping DL packet for MS in GMM state %s\n",
osmo_fsm_inst_state_name(mm->gmm_fsm));
- gprs_gb_page_ps_ra(mm);
- /* FIXME: queue the packet we received from GTP */
- break;
+ msgb_free(msg);
+ return -1;
case ST_GMM_REGISTERED_NORMAL:
OSMO_ASSERT(mm->gb.mm_state_fsm->state != ST_MM_IDLE);
if (mm->gb.mm_state_fsm->state == ST_MM_STANDBY) {