diff options
author | Daniel Willmann <dwillmann@sysmocom.de> | 2016-01-25 16:58:18 +0100 |
---|---|---|
committer | Daniel Willmann <dwillmann@sysmocom.de> | 2016-02-04 15:52:19 +0100 |
commit | 1f2f2cf0eb588b65fdc7a0d1e5a08540f45e8f76 (patch) | |
tree | 64a2d22a41cd428d90798170d6a952e5b78b857e /openbsc/src/gprs/sgsn_iu.c | |
parent | c7290f11399d805a9130d2c4fccae2eb9bf4782b (diff) |
WIP: Wait for radio bearer before sending pdp context accept
Diffstat (limited to 'openbsc/src/gprs/sgsn_iu.c')
-rw-r--r-- | openbsc/src/gprs/sgsn_iu.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/openbsc/src/gprs/sgsn_iu.c b/openbsc/src/gprs/sgsn_iu.c index 6da8f7224..0782513e6 100644 --- a/openbsc/src/gprs/sgsn_iu.c +++ b/openbsc/src/gprs/sgsn_iu.c @@ -30,6 +30,7 @@ struct ue_conn_ctx { struct llist_head list; struct osmo_sua_link *link; uint32_t conn_id; + struct sgsn_pdp_ctx *pdp; }; static LLIST_HEAD(conn_ctx_list); @@ -60,13 +61,15 @@ struct ue_conn_ctx *ue_conn_ctx_find(struct osmo_sua_link *link, uint32_t conn_i * RANAP handling ***********************************************************************/ -int gprs_iu_rab_act(struct sgsn_mm_ctx *mm, uint32_t gtp_ip, uint32_t gtp_tei) +int gprs_iu_rab_act(struct sgsn_pdp_ctx *pdp, uint32_t gtp_ip, uint32_t gtp_tei) { + struct sgsn_mm_ctx *mm = pdp->mm; struct ue_conn_ctx *uectx; struct osmo_scu_prim *prim; struct msgb *msg; uectx = mm->iu.ue_ctx; + uectx->pdp = pdp; msg = ranap_new_msg_rab_assign_data(1, gtp_ip, gtp_tei); msg->l2h = msg->data; @@ -217,7 +220,9 @@ static int ranap_handle_co_iu_rel_req(struct ue_conn_ctx *ctx, RANAP_Iu_ReleaseR return 0; } -static int ranap_handle_co_rab_ass_resp(void *ctx, RANAP_RAB_AssignmentResponseIEs_t *ies) +int send_act_pdp_cont_acc(struct sgsn_pdp_ctx *pctx); + +static int ranap_handle_co_rab_ass_resp(struct ue_conn_ctx *ctx, RANAP_RAB_AssignmentResponseIEs_t *ies) { int i, rc; @@ -236,6 +241,8 @@ static int ranap_handle_co_rab_ass_resp(void *ctx, RANAP_RAB_AssignmentResponseI LOGPC(DRANAP, LOGL_INFO, "\n"); + send_act_pdp_cont_acc(ctx->pdp); + return rc; } |