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:09:37 +0200
commitda69ced35393a86f03b3a5e503bf3ae1ec80ba41 (patch)
treeca98bbc04b8791a20c5c9726ca4710f9b3b5beb6
parent36ecddb705300c1dedd10a05e1f6c0f1a52e4caa (diff)
sgsn_libgtp: Avoid ps-paging MS on GMM Suspended statepespin/pspaging
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. Related: OS#4616 Change-Id: Ia245899eb9f16c7f839785def4ceb721a1c3a11b
-rw-r--r--src/sgsn/sgsn_libgtp.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/sgsn/sgsn_libgtp.c b/src/sgsn/sgsn_libgtp.c
index 717df4ab..e237eed3 100644
--- a/src/sgsn/sgsn_libgtp.c
+++ b/src/sgsn/sgsn_libgtp.c
@@ -661,11 +661,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) {