From c4f9bf3142f54b63174f653b07103dd6ab36b1ae Mon Sep 17 00:00:00 2001 From: Jacob Erlbeck Date: Tue, 11 Nov 2014 08:55:13 +0100 Subject: 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 --- openbsc/src/gprs/gprs_gmm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'openbsc/src') 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 */ -- cgit v1.2.3