IuPS: add Iu response to create_pdp_conf()
Change-Id: Iad65ca9b77c3166d4df9a58af527e6aef7e589ee
This commit is contained in:
parent
61329d45b8
commit
6b7b319d54
|
@ -30,4 +30,6 @@ int gprs_gmm_rx_resume(struct gprs_ra_id *raid, uint32_t tlli,
|
|||
|
||||
time_t gprs_max_time_to_idle(void);
|
||||
|
||||
int iu_rab_act_ps(uint8_t rab_id, struct sgsn_pdp_ctx *pdp, bool use_x213_nsap);
|
||||
|
||||
#endif /* _GPRS_GMM_H */
|
||||
|
|
|
@ -2419,3 +2419,28 @@ int gprs_gmm_rx_resume(struct gprs_ra_id *raid, uint32_t tlli,
|
|||
mmctx->mm_state = GMM_REGISTERED_NORMAL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef BUILD_IU
|
||||
int iu_rab_act_ps(uint8_t rab_id, struct sgsn_pdp_ctx *pdp, bool use_x213_nsap)
|
||||
{
|
||||
struct msgb *msg;
|
||||
struct sgsn_mm_ctx *mm = pdp->mm;
|
||||
struct ue_conn_ctx *uectx;
|
||||
uint32_t ggsn_ip;
|
||||
|
||||
uectx = mm->iu.ue_ctx;
|
||||
|
||||
/* Get the IP address for ggsn user plane */
|
||||
memcpy(&ggsn_ip, pdp->lib->gsnru.v, pdp->lib->gsnru.l);
|
||||
ggsn_ip = htonl(ggsn_ip);
|
||||
|
||||
LOGP(DRANAP, LOGL_DEBUG, "Assigning RAB: rab_id=%d, ggsn_ip=%x,"
|
||||
" teid_gn=%x, use_x213_nsap=%d\n",
|
||||
rab_id, ggsn_ip, pdp->lib->teid_gn, use_x213_nsap);
|
||||
|
||||
msg = ranap_new_msg_rab_assign_data(rab_id, ggsn_ip,
|
||||
pdp->lib->teid_gn, use_x213_nsap);
|
||||
msg->l2h = msg->data;
|
||||
return iu_rab_act(uectx, msg);
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -366,6 +366,14 @@ static int create_pdp_conf(struct pdp_t *pdp, void *cbp, int cause)
|
|||
/* Activate the SNDCP layer */
|
||||
sndcp_sm_activate_ind(&pctx->mm->gb.llme->lle[pctx->sapi], pctx->nsapi);
|
||||
return send_act_pdp_cont_acc(pctx);
|
||||
} else if (pctx->mm->ran_type == MM_CTX_T_UTRAN_Iu) {
|
||||
#ifdef BUILD_IU
|
||||
/* Activate a radio bearer */
|
||||
iu_rab_act_ps(pdp->nsapi, pctx, 1);
|
||||
return 0;
|
||||
#else
|
||||
return -ENOTSUP;
|
||||
#endif
|
||||
}
|
||||
|
||||
LOGP(DGPRS, LOGL_ERROR, "Unknown ran_type %d\n",
|
||||
|
|
Loading…
Reference in New Issue