patch-2.1.27 linux/net/lapb/lapb_timer.c

Next file: linux/net/netbeui/af_netbeui.c
Previous file: linux/net/lapb/lapb_subr.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.26/linux/net/lapb/lapb_timer.c linux/net/lapb/lapb_timer.c
@@ -180,6 +180,24 @@
 				lapb_requeue_frames(lapb);
 			}
 			break;
+
+		/*
+		 *	Frame reject state, restransmit FRMR frames, up to N2 times.
+		 */
+		case LAPB_STATE_4:
+			if (lapb->n2count == lapb->n2) {
+				lapb_clear_queues(lapb);
+				lapb->state   = LAPB_STATE_0;
+				lapb->t2timer = 0;
+				lapb_disconnect_indication(lapb, LAPB_TIMEDOUT);
+#if LAPB_DEBUG > 0
+				printk(KERN_DEBUG "lapb: (%p) S4 -> S0\n", lapb->token);
+#endif
+			} else {
+				lapb->n2count++;
+				lapb_transmit_frmr(lapb);
+			}
+			break;
 	}
 
 	lapb->t1timer = lapb->t1;

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov