Return to BSD News archive
Xref: sserve comp.os.386bsd.bugs:2205 comp.protocols.ppp:3993 Newsgroups: comp.os.386bsd.bugs,comp.protocols.ppp Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!msuinfo!agate!ihnp4.ucsd.edu!usc!math.ohio-state.edu!jussieu.fr!univ-lyon1.fr!frmug.fr.net!fasterix.frmug.fr.net!pb From: pb@fasterix.frmug.fr.net (Pierre Beyssac) Subject: priority queuing bug in *BSD ppp (if_ppp.c) Keywords: ppp BSD Organization: considered harmful Date: Sat, 7 May 1994 00:43:53 GMT Message-ID: <1994May7.004353.695@fasterix.frmug.fr.net> Summary: byte order problem with interactive connections detection Lines: 39 [ Mail copy to the FreeBSD/NetBSD mailing-lists and Paul Mackerras (paulus@cs.anu.edu.au) ] I think there is a bug in ppp 2.0.4 in the priority queuing for *BSD. It seems the bug is present in ppp 2.1 too. It is a byte order problem and only shows up on little endian machines. Apparently, the bug is present in all 386BSD-derived systems. In if_ppp.c, the line if (INTERACTIVE(p & 0xffff) || INTERACTIVE(p >> 16)) should be if (INTERACTIVE(ntohs(p & 0xffff)) || INTERACTIVE(ntohs(p >> 16))) I'm not sure it is the cleanest solution, though it looks like a sensible place to fix it. I can only say it works better now :-) The consequence of this bug was that telnet/rlogin/ftp control connections were not identified and were queued normally. It can be noticed when sending large amounts of data by ftp from a Intel *BSD machine and aborting the session while typing in a telnet : the telnet echo is received only after the full 14kbytes in the tcp buffers for the ftp have been transmitted. Since the fix is obvious, I thought it would be all right to post it directly to comp.os.386bsd.bugs and comp.protocols.ppp. For answers, please email me or post in the news, as I'm not subscribed to the freebsd-bugs or netbsd-bugs lists. -- Pierre Beyssac FreeBSD@home: pb@fasterix.frmug.fr.net FreeBSD, NetBSD, Linux -- Il y a moins bien, mais c'est plus cher. You can also get less bang for more bucks. (translation F. Berjon)