diff options
author | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2016-05-20 21:59:55 +0200 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2017-08-27 17:40:53 +0200 |
commit | 2188a778b54562948641abf7b2597ef2a7d1dae6 (patch) | |
tree | 348648ff45097a04d35dd68f4346fe76447c515d /src/gprs/gprs_gmm.c | |
parent | c9a352f4164ae9054d83a037323138437d0d5a22 (diff) |
Implement IuCS (large refactoring and addition)
osmo-nitb becomes osmo-msc
add DIUCS debug log constant
add iucs.[hc]
add msc vty, remove nitb vty
add libiudummy, to avoid linking Iu deps in tests
Use new msc_tx_dtap() instead of gsm0808_submit_dtap()
libmgcp: add mgcpgw client API
bridge calls via mgcpgw
Enable MSC specific CTRL commands, bsc_base_ctrl_cmds_install() still needs to
be split up.
Change-Id: I5b5b6a9678b458affa86800afb1ec726e66eed88
Diffstat (limited to 'src/gprs/gprs_gmm.c')
-rw-r--r-- | src/gprs/gprs_gmm.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/gprs/gprs_gmm.c b/src/gprs/gprs_gmm.c index 577af1bf3..15e2fedf6 100644 --- a/src/gprs/gprs_gmm.c +++ b/src/gprs/gprs_gmm.c @@ -295,6 +295,10 @@ static void msgid2mmctx(struct sgsn_mm_ctx *mm, const struct msgb *msg) mm->gb.nsei = msgb_nsei(msg); /* In case a Iu connection is reconnected we need to update the ue ctx */ mm->iu.ue_ctx = msg->dst; + if (mm->ran_type == MM_CTX_T_UTRAN_Iu + && mm->iu.ue_ctx) + mm->iu.ue_ctx->rab_assign_addr_enc = + sgsn->cfg.iu.rab_assign_addr_enc; } /* Store BVCI/NSEI in MM context */ @@ -978,7 +982,7 @@ void activate_pdp_rabs(struct sgsn_mm_ctx *ctx) if (ctx->ran_type != MM_CTX_T_UTRAN_Iu) return; llist_for_each_entry(pdp, &ctx->pdp_list, list) { - iu_rab_act_ps(pdp->nsapi, pdp, 1); + iu_rab_act_ps(pdp->nsapi, pdp); } } #endif @@ -2897,14 +2901,16 @@ int gprs_gmm_rx_resume(struct gprs_ra_id *raid, uint32_t tlli, } #ifdef BUILD_IU -int iu_rab_act_ps(uint8_t rab_id, struct sgsn_pdp_ctx *pdp, bool use_x213_nsap) +int iu_rab_act_ps(uint8_t rab_id, struct sgsn_pdp_ctx *pdp) { struct msgb *msg; struct sgsn_mm_ctx *mm = pdp->mm; struct ue_conn_ctx *uectx; uint32_t ggsn_ip; + bool use_x213_nsap; uectx = mm->iu.ue_ctx; + use_x213_nsap = (uectx->rab_assign_addr_enc == NSAP_ADDR_ENC_X213); /* Get the IP address for ggsn user plane */ memcpy(&ggsn_ip, pdp->lib->gsnru.v, pdp->lib->gsnru.l); |