aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc
diff options
context:
space:
mode:
authorDaniel Willmann <dwillmann@sysmocom.de>2016-04-08 12:11:35 +0200
committerDaniel Willmann <dwillmann@sysmocom.de>2016-04-08 12:11:35 +0200
commit42024336fef37effeb04e61d819ef46e1fd0f2db (patch)
treeca1f952fe4174d6dfa2ce1baa1267eebf08d1fe3 /openbsc
parentbb81326719a30e74e0682932087986b5eb6eedd2 (diff)
sgsn: Pass RAB ID to iu_rab_act_ps() function
Diffstat (limited to 'openbsc')
-rw-r--r--openbsc/include/openbsc/iu.h2
-rw-r--r--openbsc/src/gprs/gprs_gmm.c2
-rw-r--r--openbsc/src/gprs/sgsn_libgtp.c2
-rw-r--r--openbsc/src/libiu/iu.c5
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);
}