aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2016-05-01 10:59:12 +0200
committerHarald Welte <laforge@gnumonks.org>2016-05-01 15:35:52 +0200
commit3b922064a478f3a403d3a40d3f22c9a5675390fa (patch)
tree4dc1ebe04dcb343ce606925762bae300f2c4f9a8 /openbsc/src
parent5b3fd465d16547f1175b211dd5366123f260fedb (diff)
SGSN: Use PDP Context NSAPI as RAB ID
As Dieter has pointed out, the RANAP spec requires the RAB ID to be equal to the NSAPI of the PDP context for which it is established.
Diffstat (limited to 'openbsc/src')
-rw-r--r--openbsc/src/gprs/gprs_gmm.c4
-rw-r--r--openbsc/src/gprs/gprs_sgsn.c6
-rw-r--r--openbsc/src/gprs/sgsn_libgtp.c6
3 files changed, 2 insertions, 14 deletions
diff --git a/openbsc/src/gprs/gprs_gmm.c b/openbsc/src/gprs/gprs_gmm.c
index 208faa93a..d734df014 100644
--- a/openbsc/src/gprs/gprs_gmm.c
+++ b/openbsc/src/gprs/gprs_gmm.c
@@ -709,10 +709,8 @@ void activate_pdp_rabs(struct sgsn_mm_ctx *ctx)
{
/* Send RAB activation requests for all PDP contexts */
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, 1);
+ iu_rab_act_ps(pdp->nsapi, pdp, 1);
}
}
diff --git a/openbsc/src/gprs/gprs_sgsn.c b/openbsc/src/gprs/gprs_sgsn.c
index 76ddd9199..70b0358e6 100644
--- a/openbsc/src/gprs/gprs_sgsn.c
+++ b/openbsc/src/gprs/gprs_sgsn.c
@@ -105,11 +105,6 @@ struct sgsn_mm_ctx *sgsn_mm_ctx_by_ue_ctx(const void *uectx)
return NULL;
}
-uint8_t rab_id_from_mm_ctx(struct sgsn_mm_ctx *mm)
-{
- return mm->iu.rab_id++;
-}
-
/* look-up a SGSN MM context based on TLLI + RAI */
struct sgsn_mm_ctx *sgsn_mm_ctx_by_tlli(uint32_t tlli,
const struct gprs_ra_id *raid)
@@ -208,7 +203,6 @@ struct sgsn_mm_ctx *sgsn_mm_ctx_alloc_iu(void *uectx)
ctx->ran_type = MM_CTX_T_UTRAN_Iu;
ctx->iu.ue_ctx = uectx;
- ctx->iu.rab_id = 1;
ctx->iu.new_key = 1;
ctx->mm_state = GMM_DEREGISTERED;
ctx->auth_triplet.key_seq = GSM_KEY_SEQ_INVAL;
diff --git a/openbsc/src/gprs/sgsn_libgtp.c b/openbsc/src/gprs/sgsn_libgtp.c
index 9277a5dcc..214859948 100644
--- a/openbsc/src/gprs/sgsn_libgtp.c
+++ b/openbsc/src/gprs/sgsn_libgtp.c
@@ -370,10 +370,7 @@ static int create_pdp_conf(struct pdp_t *pdp, void *cbp, int cause)
return send_act_pdp_cont_acc(pctx);
} else {
/* Activate a radio bearer */
- uint8_t rab_id;
-
- rab_id = rab_id_from_mm_ctx(pctx);
- iu_rab_act_ps(rab_id, pctx, 1);
+ iu_rab_act_ps(pdp->nsapi, pctx, 1);
return 0;
}
@@ -454,7 +451,6 @@ static int delete_pdp_conf(struct pdp_t *pdp, void *cbp, int cause)
sndcp_sm_deactivate_ind(&pctx->mm->gb.llme->lle[pctx->sapi], pctx->nsapi);
} else {
/* Dectivate a radio bearer */
- /* TODO: Save and use rab_id */
iu_rab_deact(pctx->mm->iu.ue_ctx, 1);
}