aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/gsm_04_08.c
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2010-12-22 12:11:01 +0100
committerHolger Hans Peter Freyther <zecke@selfish.org>2010-12-22 20:25:38 +0100
commitd4e6872d6c9d5cdc0658180091710d4b34c9f723 (patch)
tree17fc1071d78598a4af7ade51541a522c360ade08 /openbsc/src/gsm_04_08.c
parent434bb3f39f86cd40b2b737ce5ecc220fa193d5dd (diff)
gsm48: Release the LU procedure only after the TMSI REALL_COMPL
We send a LU Accept with the TMSI as the MI. According to the spec the phone should store this new TMSI and send a TMSI REALLOCATION COMPLETE to us. We will release the LU then and this should trigger the release procedure.
Diffstat (limited to 'openbsc/src/gsm_04_08.c')
-rw-r--r--openbsc/src/gsm_04_08.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/openbsc/src/gsm_04_08.c b/openbsc/src/gsm_04_08.c
index 5eb6a241c..c3bf64f21 100644
--- a/openbsc/src/gsm_04_08.c
+++ b/openbsc/src/gsm_04_08.c
@@ -282,8 +282,11 @@ static int _gsm0408_authorize_sec_cb(unsigned int hooknum, unsigned int event,
subscr_update(conn->subscr, conn->bts,
GSM_SUBSCRIBER_UPDATE_ATTACHED);
- /* try to close channel ASAP */
- release_loc_updating_req(conn);
+ /*
+ * The gsm0408_loc_upd_acc sends a MI with the TMSI. The
+ * MS needs to respond with a TMSI REALLOCATION COMPLETE
+ * (even if the TMSI is the same).
+ */
break;
default:
@@ -969,6 +972,7 @@ static int gsm0408_rcv_mm(struct gsm_subscriber_connection *conn, struct msgb *m
conn->subscr ?
subscr_name(conn->subscr) :
"unknown subscriber");
+ release_loc_updating_req(conn);
break;
case GSM48_MT_MM_IMSI_DETACH_IND:
rc = gsm48_rx_mm_imsi_detach_ind(msg);