aboutsummaryrefslogtreecommitdiffstats
path: root/src/sgsn/sgsn_libgtp.c
diff options
context:
space:
mode:
authorAlexander Couzens <lynxis@fe80.eu>2019-10-08 17:31:10 +0200
committerlaforge <laforge@osmocom.org>2019-10-17 08:01:16 +0000
commit4d1d2e78b1f598101dadc8a6212b2c2e43044f5c (patch)
tree1adc3d471ea8735f5b0cfaca482de96b572fbee4 /src/sgsn/sgsn_libgtp.c
parent030824e172bbcc29edd01a9906e2108615541cf0 (diff)
sgsn: Gb: implementing PS Paging when MS is MM_STANDBY
When the MS is in MM_STANDBY, the Routing Area is known, but not the exact cell. Start the paging procedure. (Even this is only supported for the last known cell, not the Routing Area. Routing Area paging is not yet supported.) Change-Id: Icc2c6ba70f8f74054546a1e31741fc90b232a23c
Diffstat (limited to 'src/sgsn/sgsn_libgtp.c')
-rw-r--r--src/sgsn/sgsn_libgtp.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/sgsn/sgsn_libgtp.c b/src/sgsn/sgsn_libgtp.c
index a39687f8a..c45431ae3 100644
--- a/src/sgsn/sgsn_libgtp.c
+++ b/src/sgsn/sgsn_libgtp.c
@@ -54,6 +54,7 @@
#include <osmocom/sgsn/gprs_sndcp.h>
#include <osmocom/sgsn/gprs_ranap.h>
#include <osmocom/sgsn/gprs_gmm_fsm.h>
+#include <osmocom/sgsn/gprs_mm_state_gb_fsm.h>
#include <gtp.h>
#include <pdp.h>
@@ -664,6 +665,11 @@ static int cb_data_ind(struct pdp_t *lib, void *packet, unsigned int len)
/* FIXME: queue the packet we received from GTP */
break;
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)
+ gprs_gb_page_ps_ra(mm);
+
+ /* FIXME: queue the packet we received from GTP */
break;
default:
LOGP(DGPRS, LOGL_ERROR, "GTP DATA IND for TLLI %08X in state "