diff options
-rw-r--r-- | openbsc/include/openbsc/iu.h | 2 | ||||
-rw-r--r-- | openbsc/src/gprs/gprs_gmm.c | 2 | ||||
-rw-r--r-- | openbsc/src/gprs/sgsn_libgtp.c | 2 | ||||
-rw-r--r-- | openbsc/src/libiu/iu.c | 5 |
4 files changed, 5 insertions, 6 deletions
diff --git a/openbsc/include/openbsc/iu.h b/openbsc/include/openbsc/iu.h index 62fc9fc6b..4c4e6ae86 100644 --- a/openbsc/include/openbsc/iu.h +++ b/openbsc/include/openbsc/iu.h @@ -35,7 +35,7 @@ int iu_init(void *ctx, const char *listen_addr, uint16_t listen_port, int iu_tx(struct msgb *msg, uint8_t sapi); int iu_rab_act_cs(struct ue_conn_ctx *ue_ctx, uint32_t rtp_ip, uint16_t rtp_port); -int iu_rab_act_ps(struct sgsn_pdp_ctx *pdp); +int iu_rab_act_ps(uint8_t rab_id, struct sgsn_pdp_ctx *pdp); int iu_rab_deact(struct ue_conn_ctx *ue_ctx, uint8_t rab_id); int iu_tx_sec_mode_cmd(struct ue_conn_ctx *uectx, struct gsm_auth_tuple *tp, int send_ck); diff --git a/openbsc/src/gprs/gprs_gmm.c b/openbsc/src/gprs/gprs_gmm.c index 6ece0e9ab..c1a4e508a 100644 --- a/openbsc/src/gprs/gprs_gmm.c +++ b/openbsc/src/gprs/gprs_gmm.c @@ -787,7 +787,7 @@ static int gsm48_gmm_authorize(struct sgsn_mm_ctx *ctx) if (ctx->iu.service.type == 1) { struct sgsn_pdp_ctx *pdp; llist_for_each_entry(pdp, &ctx->pdp_list, list) { - iu_rab_act_ps(pdp); + iu_rab_act_ps(1, pdp); } } diff --git a/openbsc/src/gprs/sgsn_libgtp.c b/openbsc/src/gprs/sgsn_libgtp.c index a637086f6..21e8ebce5 100644 --- a/openbsc/src/gprs/sgsn_libgtp.c +++ b/openbsc/src/gprs/sgsn_libgtp.c @@ -370,7 +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 */ - iu_rab_act_ps(pctx); + iu_rab_act_ps(1, pctx); return 0; } diff --git a/openbsc/src/libiu/iu.c b/openbsc/src/libiu/iu.c index 56b6ec1d3..5edf22126 100644 --- a/openbsc/src/libiu/iu.c +++ b/openbsc/src/libiu/iu.c @@ -91,7 +91,7 @@ int iu_rab_act_cs(struct ue_conn_ctx *ue_ctx, uint32_t rtp_ip, uint16_t rtp_port return iu_rab_act(ue_ctx, msg); } -int iu_rab_act_ps(struct sgsn_pdp_ctx *pdp) +int iu_rab_act_ps(uint8_t rab_id, struct sgsn_pdp_ctx *pdp) { struct msgb *msg; struct sgsn_mm_ctx *mm = pdp->mm; @@ -104,8 +104,7 @@ int iu_rab_act_ps(struct sgsn_pdp_ctx *pdp) memcpy(&ggsn_ip, pdp->lib->gsnru.v, pdp->lib->gsnru.l); ggsn_ip = htonl(ggsn_ip); - /* FIXME: Generate unique RAB ID per UE */ - msg = ranap_new_msg_rab_assign_data(1, ggsn_ip, pdp->lib->teid_own); + msg = ranap_new_msg_rab_assign_data(rab_id, ggsn_ip, pdp->lib->teid_own); msg->l2h = msg->data; return iu_rab_act(uectx, msg); } |