Revert "libosmocore/lapd: Fixed handling of sequence errors at lapd_core.c"

This reverts commit 506a3443ba.
This commit is contained in:
Sylvain Munaut 2012-01-10 13:00:04 +01:00
parent 506a3443ba
commit 4dbbab5e50
1 changed files with 3 additions and 21 deletions

View File

@ -1497,32 +1497,14 @@ static int lapd_rx_i(struct msgb *msg, struct lapd_msg_ctx *lctx)
"V(R)=%u\n", ns, dl->v_recv);
/* discard data */
msgb_free(msg);
if (dl->seq_err_cond != 1) {
if (!dl->seq_err_cond) {
/* FIXME: help me understand what exactly todo here
*/
dl->seq_err_cond = 1;
*/
lapd_send_rej(lctx, lctx->p_f);
} else {
/* If there are two subsequent sequence errors received,
* ignore it. (Ignore every second subsequent error.)
* This happens if our reply with the REJ is too slow,
* so the remote gets a T200 timeout and sends another
* frame with a sequence error.
* Test showed that replying with two subsequent REJ
* messages could the remote L2 process to abort.
* Replying too slow shouldn't happen, but may happen
* over serial link between BB and LAPD.
*/
dl->seq_err_cond = 2;
}
/* Even if N(s) sequence error, acknowledge to N(R)-1 */
/* 5.5.3.1: Acknowlege all transmitted frames up the N(R)-1 */
lapd_acknowledge(lctx); /* V(A) is also set here */
/* Send message, if possible due to acknowledged data */
lapd_send_i(lctx, __LINE__);
return 0;
return -EIO;
}
dl->seq_err_cond = 0;