aboutsummaryrefslogtreecommitdiffstats
path: root/src
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 /src
parent36ecddb705300c1dedd10a05e1f6c0f1a52e4caa (diff)
sgsn_libgtp: Avoid ps-paging MS on GMM Suspended stateHEADmaster
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
Diffstat (limited to 'src')
-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 717df4ab..581e74d4 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) {