aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJacob Erlbeck <jerlbeck@sysmocom.de>2014-11-11 08:55:13 +0100
committerHolger Hans Peter Freyther <holger@moiji-mobile.com>2014-11-14 10:12:32 +0100
commitc4f9bf3142f54b63174f653b07103dd6ab36b1ae (patch)
tree0b3b599674b72507137d80bc735c136ef57f3a65
parent80d07e30c76f2bd72ee382b4b7941262c1d5865d (diff)
sgsn: Don't send XID reset after Detach Accept
Currently when a Detach Accept is received for an unknown TLLI (which is in general the case afer the SGSN has requested the detachment), an XID reset is sent to the BSS, causing a BSSGP Status message. This happens in gsm0408_rcv_gmm. This patch moves the corresponding call to gprs_llgmm_reset downwards so that it is not being called in that case. Addresses: SGSN->BSS TLLI: 0xd75b91d9 SAPI: LLGMM, UI (DTAP) (GMM) Detach Request BSS->SGSN TLLI: 0xd75b91d9 SAPI: LLGMM, UI (DTAP) (GMM) Detach Accept SGSN->BSS TLLI: 0xd75b91d9 SAPI: LLGMM, U, XID (Reset, IOV-UI) BSS->SGSN TLLI: --- BSSGP STATUS (Unknown MS) Sponsored-by: On-Waves ehf
-rw-r--r--openbsc/src/gprs/gprs_gmm.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/openbsc/src/gprs/gprs_gmm.c b/openbsc/src/gprs/gprs_gmm.c
index a2c30bee0..ac063afa1 100644
--- a/openbsc/src/gprs/gprs_gmm.c
+++ b/openbsc/src/gprs/gprs_gmm.c
@@ -1223,8 +1223,6 @@ static int gsm0408_rcv_gmm(struct sgsn_mm_ctx *mmctx, struct msgb *msg,
return 0;
}
- gprs_llgmm_reset(llme);
-
/* Don't reply or establish a LLME on DETACH_ACK */
if (gh->msg_type == GSM48_MT_GMM_DETACH_ACK) {
/* TLLI unassignment */
@@ -1232,6 +1230,8 @@ static int gsm0408_rcv_gmm(struct sgsn_mm_ctx *mmctx, struct msgb *msg,
GPRS_ALGO_GEA0, NULL);
}
+ gprs_llgmm_reset(llme);
+
/* Don't force it into re-attachment */
if (gh->msg_type == GSM48_MT_GMM_DETACH_REQ) {
/* Handle Detach Request */