summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2017-02-01 12:00:45 +0100
committerPhilipp Maier <pmaier@sysmocom.de>2017-02-07 13:39:01 +0100
commit6b986c24228a4cc83b22e1d8aae22b94fe36e6f2 (patch)
tree570547ad07d657ebf85bce5778c75b80492f40fa
parentd9f6129350bc79e803861f92e99dbf72e44b1ea3 (diff)
lapd_core: Fix MDL-ERROR ind after RELEASE ind
in lapd_t200_cb() The RELEASE INDICATION is transmitted before the MDL ERROR INIDCATION, this prevents the MDL ERROR INDICATION from being sent because the RELASE INDICATION close to connection eraly. This commit puts the messages into the correct order. Change-Id: Iae74777138fc27828f511e3aa321d1981861f4a5
-rw-r--r--src/gsm/lapd_core.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/gsm/lapd_core.c b/src/gsm/lapd_core.c
index 5af82aa2..5ee88a41 100644
--- a/src/gsm/lapd_core.c
+++ b/src/gsm/lapd_core.c
@@ -564,11 +564,11 @@ static void lapd_t200_cb(void *data)
/* NOTE: we must not change any other states or buffers
* and queues, since we may reconnect after handover
* failure. the buffered messages is replaced there */
+ /* send MDL ERROR INIDCATION to L3 */
+ mdl_error(MDL_CAUSE_T200_EXPIRED, &dl->lctx);
/* send RELEASE INDICATION to L3 */
send_dl_simple(PRIM_DL_REL, PRIM_OP_INDICATION,
&dl->lctx);
- /* send MDL ERROR INIDCATION to L3 */
- mdl_error(MDL_CAUSE_T200_EXPIRED, &dl->lctx);
break;
}
/* retransmit SABM command */
@@ -581,10 +581,10 @@ static void lapd_t200_cb(void *data)
case LAPD_STATE_DISC_SENT:
/* 5.4.4.3 */
if (dl->retrans_ctr + 1 >= dl->n200_est_rel + 1) {
- /* send RELEASE INDICATION to L3 */
- send_dl_simple(PRIM_DL_REL, PRIM_OP_CONFIRM, &dl->lctx);
/* send MDL ERROR INIDCATION to L3 */
mdl_error(MDL_CAUSE_T200_EXPIRED, &dl->lctx);
+ /* send RELEASE INDICATION to L3 */
+ send_dl_simple(PRIM_DL_REL, PRIM_OP_CONFIRM, &dl->lctx);
/* flush tx and send buffers */
lapd_dl_flush_tx(dl);
lapd_dl_flush_send(dl);