SGSN: Don't indicate GERAN in Iu mode PDP CTX ACT REQ to GGSN

Change-Id: Ifd9ff4342de342475609bad0257a23c50290e23b
This commit is contained in:
Harald Welte 2016-05-02 08:34:57 +02:00 committed by Neels Hofmeyr
parent ecd8c048fc
commit 46f4f14024
1 changed files with 20 additions and 10 deletions

View File

@ -247,12 +247,8 @@ struct sgsn_pdp_ctx *sgsn_create_pdp_ctx(struct sgsn_ggsn_ctx *ggsn,
memcpy(pdp->gsnlu.v, &sgsn->cfg.gtp_listenaddr.sin_addr,
sizeof(sgsn->cfg.gtp_listenaddr.sin_addr));
/* Assume we are a GERAN system */
pdp->rattype.l = 1;
pdp->rattype.v[0] = 2;
pdp->rattype_given = 1;
/* Include RAI and ULI all the time */
/* Routing Area Identifier with LAC and RAC fixed values, as
* requested in 29.006 7.3.1 */
pdp->rai_given = 1;
pdp->rai.l = 6;
raid = mmctx->ra;
@ -260,10 +256,24 @@ struct sgsn_pdp_ctx *sgsn_create_pdp_ctx(struct sgsn_ggsn_ctx *ggsn,
raid.rac = 0xFF;
gsm48_construct_ra(pdp->rai.v, &raid);
pdp->userloc_given = 1;
pdp->userloc.l = 8;
pdp->userloc.v[0] = 0; /* CGI for GERAN */
bssgp_create_cell_id(&pdp->userloc.v[1], &mmctx->ra, mmctx->gb.cell_id);
pdp->rattype.l = 1;
pdp->rattype_given = 1;
switch (mmctx->ran_type) {
case MM_CTX_T_GERAN_Gb:
case MM_CTX_T_GERAN_Iu:
pdp->rattype.v[0] = 2;
/* User Location Information */
pdp->userloc_given = 1;
pdp->userloc.l = 8;
pdp->userloc.v[0] = 0; /* CGI for GERAN */
bssgp_create_cell_id(&pdp->userloc.v[1], &mmctx->ra, mmctx->gb.cell_id);
break;
case MM_CTX_T_UTRAN_Iu:
pdp->rattype.v[0] = 1;
/* FIXME: Optional User Location Information with SAI */
break;
}
/* include the IMEI(SV) */
pdp->imeisv_given = 1;