*BSD News Article 30124


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)