aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc
diff options
context:
space:
mode:
authorDaniel Willmann <dwillmann@sysmocom.de>2016-01-25 16:49:53 +0100
committerNeels Hofmeyr <nhofmeyr@sysmocom.de>2016-08-27 13:29:33 +0200
commit746c7896cba944c1978b48a40c4588a7aeb4eb84 (patch)
treead250dd47a0998861a05194af8cc57509759a734 /openbsc
parentf4daf16c8d26b98063747b608070fa44944e0527 (diff)
gprs_gmm: Fix bit mask when determining update/attach type
Bit 4 is reserved in 3GPP TS 04.08 so exclude it from the type. In 3GPP TS 24.008 it indicates if a follow-on request is pending by the MS, but only in Iu mode. According to the spec it is not required to react to that request with a follow-on proceed so this field can be ignored for now. See 3GPP TS 24.008 Ch. 4.4: "Unless it has specific permission from the network (follow-on proceed) the mobile station side should await the release of the RR connection used for a MM specific procedure before a new MM specific procedure or MM connection establishment is started." as well as Ch. 4.4.4.6: "If the network wishes to prolong the RR connection to allow the mobile station to initiate MM connection establishment (for example if the mobile station has indicated in the LOCATION UPDATING REQUEST that it has a follow-on request pending) the network shall send "follow on proceed" in the LOCATION UPDATING ACCEPT and start timer T3255." Change-Id: If1dff960c406060e257dafc54132687ffc42ad8f
Diffstat (limited to 'openbsc')
-rw-r--r--openbsc/src/gprs/gprs_gmm.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/openbsc/src/gprs/gprs_gmm.c b/openbsc/src/gprs/gprs_gmm.c
index 036164f57..efa25c61e 100644
--- a/openbsc/src/gprs/gprs_gmm.c
+++ b/openbsc/src/gprs/gprs_gmm.c
@@ -874,8 +874,10 @@ static int gsm48_rx_gmm_att_req(struct sgsn_mm_ctx *ctx, struct msgb *msg,
goto err_inval;
cur += msnc_len;
+ /* TODO: In iu mode - handle follow-on request */
+
/* aTTACH Type 10.5.5.2 */
- att_type = *cur++ & 0x0f;
+ att_type = *cur++ & 0x07;
/* DRX parameter 10.5.5.6 */
drx_par = *cur++ << 8;
@@ -1171,8 +1173,10 @@ static int gsm48_rx_gmm_ra_upd_req(struct sgsn_mm_ctx *mmctx, struct msgb *msg,
enum gsm48_gmm_cause reject_cause;
int rc;
+ /* TODO: In iu mode - handle follow-on request */
+
/* Update Type 10.5.5.18 */
- upd_type = *cur++ & 0x0f;
+ upd_type = *cur++ & 0x07;
rate_ctr_inc(&sgsn->rate_ctrs->ctr[CTR_GPRS_ROUTING_AREA_REQUEST]);
LOGP(DMM, LOGL_INFO, "-> GMM RA UPDATE REQUEST type=\"%s\"\n",