diff options
Diffstat (limited to 'src/gprs/gprs_gb.c')
-rw-r--r-- | src/gprs/gprs_gb.c | 20 |
1 files changed, 2 insertions, 18 deletions
diff --git a/src/gprs/gprs_gb.c b/src/gprs/gprs_gb.c index 43af4347e..65342cf22 100644 --- a/src/gprs/gprs_gb.c +++ b/src/gprs/gprs_gb.c @@ -28,25 +28,11 @@ #include "bscconfig.h" +#include <osmocom/sgsn/gprs_mm_state_gb_fsm.h> #include <osmocom/sgsn/gprs_sgsn.h> #include <osmocom/sgsn/gprs_gmm.h> #include <osmocom/sgsn/debug.h> -/* Update the MM context state */ -static void gsm0408_gprs_notify_pdu_gb(struct sgsn_mm_ctx *mmctx) -{ - switch (mmctx->gb.mm_state) { - case MM_STANDBY: - mmctx_set_mm_state(mmctx, MM_READY); - break; - case MM_READY: /* RE-arm the timer upon receival of Gb PDUs */ - mmctx_state_timer_start(mmctx, 3314); - break; - default: - break; - } -} - /* Main entry point for incoming 04.08 GPRS messages from Gb */ int gsm0408_gprs_rcvmsg_gb(struct msgb *msg, struct gprs_llc_llme *llme, bool drop_cipherable) @@ -63,13 +49,11 @@ int gsm0408_gprs_rcvmsg_gb(struct msgb *msg, struct gprs_llc_llme *llme, msgid2mmctx(mmctx, msg); rate_ctr_inc(&mmctx->ctrg->ctr[GMM_CTR_PKTS_SIG_IN]); mmctx->gb.llme = llme; + osmo_fsm_inst_dispatch(mmctx->gb.mm_state_fsm, E_MM_PDU_RECEPTION, NULL); } /* MMCTX can be NULL */ - if (mmctx) - gsm0408_gprs_notify_pdu_gb(mmctx); - switch (pdisc) { case GSM48_PDISC_MM_GPRS: rc = gsm0408_rcv_gmm(mmctx, msg, llme, drop_cipherable); |