From 8fe0feb21bbc7b031ff2b73377535de093ffbf41 Mon Sep 17 00:00:00 2001 From: Daniel Willmann Date: Tue, 19 Apr 2016 20:05:18 +0200 Subject: gprs: Activate RABs from RoutingArea update request as well --- openbsc/src/gprs/gprs_gmm.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'openbsc') diff --git a/openbsc/src/gprs/gprs_gmm.c b/openbsc/src/gprs/gprs_gmm.c index 05d66e4d2..b054a936d 100644 --- a/openbsc/src/gprs/gprs_gmm.c +++ b/openbsc/src/gprs/gprs_gmm.c @@ -706,13 +706,11 @@ static int gsm48_tx_gmm_ra_upd_ack(struct sgsn_mm_ctx *mm); void activate_pdp_rabs(struct sgsn_mm_ctx *ctx) { /* Send RAB activation requests for all PDP contexts */ - if (ctx->iu.service.type == 1) { - struct sgsn_pdp_ctx *pdp; - uint8_t rab_id; - llist_for_each_entry(pdp, &ctx->pdp_list, list) { - rab_id = rab_id_from_mm_ctx(ctx); - iu_rab_act_ps(rab_id, pdp); - } + struct sgsn_pdp_ctx *pdp; + uint8_t rab_id; + llist_for_each_entry(pdp, &ctx->pdp_list, list) { + rab_id = rab_id_from_mm_ctx(ctx); + iu_rab_act_ps(rab_id, pdp); } } @@ -807,7 +805,9 @@ static int gsm48_gmm_authorize(struct sgsn_mm_ctx *ctx) rc = gsm48_tx_gmm_service_ack(ctx); - activate_pdp_rabs(ctx); + if (ctx->iu.service.type == 1) { + activate_pdp_rabs(ctx); + } return rc; case GSM48_MT_GMM_RA_UPD_REQ: @@ -1734,6 +1734,7 @@ static int gsm0408_rcv_gmm(struct sgsn_mm_ctx *mmctx, struct msgb *msg, GPRS_ALGO_GEA0, NULL); } mmctx->mm_state = GMM_REGISTERED_NORMAL; + activate_pdp_rabs(mmctx); rc = 0; memset(&sig_data, 0, sizeof(sig_data)); -- cgit v1.2.3