Commit 62480b99 authored by Martin Schiller's avatar Martin Schiller Committed by Jakub Kicinski
Browse files

net/lapb: fix t1 timer handling for LAPB_STATE_0



1. DTE interface changes immediately to LAPB_STATE_1 and start sending
   SABM(E).

2. DCE interface sends N2-times DM and changes to LAPB_STATE_1
   afterwards if there is no response in the meantime.

Signed-off-by: default avatarMartin Schiller <ms@dev.tdt.de>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent a4989fa9
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -85,11 +85,18 @@ static void lapb_t1timer_expiry(struct timer_list *t)
	switch (lapb->state) {

		/*
		 *	If we are a DCE, keep going DM .. DM .. DM
		 *	If we are a DCE, send DM up to N2 times, then switch to
		 *	STATE_1 and send SABM(E).
		 */
		case LAPB_STATE_0:
			if (lapb->mode & LAPB_DCE)
			if (lapb->mode & LAPB_DCE &&
			    lapb->n2count != lapb->n2) {
				lapb->n2count++;
				lapb_send_control(lapb, LAPB_DM, LAPB_POLLOFF, LAPB_RESPONSE);
			} else {
				lapb->state = LAPB_STATE_1;
				lapb_establish_data_link(lapb);
			}
			break;

		/*