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
This commit is contained in:
Philipp Maier 2017-02-01 12:00:45 +01:00
parent d9f6129350
commit 6b986c2422
1 changed files with 4 additions and 4 deletions

View File

@ -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);