From owner-freebsd-hackers Wed Dec 20 19:18:25 1995 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id TAA05065 for hackers-outgoing; Wed, 20 Dec 1995 19:18:25 -0800 (PST) Received: from syzygy.zytek.com (syzygy.zytek.com [140.174.241.1]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id TAA05058 for ; Wed, 20 Dec 1995 19:18:22 -0800 (PST) Received: (from melvin@localhost) by syzygy.zytek.com (8.6.11/8.6.9) id TAA14161; Wed, 20 Dec 1995 19:18:19 -0800 Date: Wed, 20 Dec 1995 19:18:19 -0800 From: Stephen Melvin Message-Id: <199512210318.TAA14161@syzygy.zytek.com> To: imb@scgt.oz.au, mnewell@lupine.nsi.nasa.gov Subject: Re: User space PPP & leased line Cc: hackers@FreeBSD.org Sender: owner-hackers@FreeBSD.org Precedence: bulk >> We tried using the user mode PPP on our systems for a while, but under >> very heavy load after 2-3 minutes the line ALWAYS dropped. No indication >> of what caused it. We use the identical setup with the kernel PPP (pppd) >> and run for days with no line drops. > >This is most likely the result of dropping LCP echo packets on a busy line. >Try adding .. > > disable lqr > deny lqr > Actually, it may be due to *delayed* rather than *dropped* LCP echo packets and in that case, it would be nice to keep lqr enabled since it will cause the line to be dropped when there really is nobody on the other end. I reported on this problem a few months back. The code in lqr.c looks for a separation between sent and received packets of 5. I find that under heavy load, I am experiencing a separation of 6 (*but all packets are eventually echoed*). I applied the patch shown below to /usr/src/usr.sbin/ppp/lqr.c and everything works fine. I don't know if this violates some PPP protocol specification though. Regards, Stephen Melvin melvin@zytek.com -------- *** lqr.c Thu Sep 7 21:49:54 1995 --- lqr.c.orig Thu Sep 7 21:48:49 1995 *************** *** 116,122 **** lqrsendcnt++; } } else if (lqmmethod & LQM_ECHO) { ! if (echoseq - gotseq > 10) { LogPrintf(LOG_PHASE, "** Too many ECHO packets are lost. **\n"); LcpClose(); Cleanup(EX_ERRDEAD); --- 116,122 ---- lqrsendcnt++; } } else if (lqmmethod & LQM_ECHO) { ! if (echoseq - gotseq > 5) { LogPrintf(LOG_PHASE, "** Too many ECHO packets are lost. **\n"); LcpClose(); Cleanup(EX_ERRDEAD);