Hi! A few months ago my ADSL line started dropping out, claiming too many LQR packets lost. Seems like my telco changed the hardware at the other end. You get that a lot here. So, I just turned off LQR and left it at that.
Unfortunately, when the other end loses its marbles the link just hangs now instead of ppp detecting it and reconnecting. I decided to patch ppp. I found Mike Tancsa's patch but didn't like it. I rolled my own, which seems to be working so far. It works by switching from LQR to simple echo requests when LQR times out. This should be tuned a bit so that people with working LQR (well, at least one correct LQR exchange in a given session) don't have to wait for the echo requests to time out too before a dead connection is detected. I'd have to have a carrier that supported LQR to test that though. :-) Stephen. (This is a patch against ppp in FreeBSD 4.8. I haven't tried the ppp in -current yet as -current is still a wild and woolly place that scares me.) Index: lqr.c =================================================================== RCS file: /cvs/src/usr.sbin/ppp/lqr.c,v retrieving revision 1.40.2.4 diff -u -r1.40.2.4 lqr.c --- lqr.c 1 Sep 2002 02:12:28 -0000 1.40.2.4 +++ lqr.c 24 Jul 2004 02:12:51 -0000 @@ -165,8 +165,16 @@ lcp->fsm.link->name); log_Printf(LogLQM, "%s: Too many LQR packets lost\n", lcp->fsm.link->name); - p->hdlc.lqm.method = 0; - datalink_Down(p->dl, CLOSE_NORMAL); + p->hdlc.lqm.method &= ~LQM_LQR; + if (p->hdlc.lqm.method == 0) + datalink_Down(p->dl, CLOSE_NORMAL); + else { + log_Printf(LogPHASE, "%s: ** Switching to LQR ECHO **\n", + lcp->fsm.link->name); + log_Printf(LogLQM, "%s: Switching to LQR ECHO\n", + lcp->fsm.link->name); + SendEchoReq(lcp); + } } else { SendLqrData(lcp); p->hdlc.lqm.lqr.resent++; _______________________________________________ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "[EMAIL PROTECTED]"