From owner-freebsd-current Thu Dec 23 12:32:43 1999 Delivered-To: freebsd-current@freebsd.org Received: from apollo.backplane.com (apollo.backplane.com [216.240.41.2]) by hub.freebsd.org (Postfix) with ESMTP id 5329D14D4B for ; Thu, 23 Dec 1999 12:32:41 -0800 (PST) (envelope-from dillon@apollo.backplane.com) Received: (from dillon@localhost) by apollo.backplane.com (8.9.3/8.9.1) id MAA07521; Thu, 23 Dec 1999 12:32:34 -0800 (PST) (envelope-from dillon) Date: Thu, 23 Dec 1999 12:32:34 -0800 (PST) From: Matthew Dillon Message-Id: <199912232032.MAA07521@apollo.backplane.com> To: Bill Paul Cc: julian@whistle.com, scottm@CS.UCLA.EDU, jlemon@americantv.com, brad@shub-internet.org, jabley@patho.gen.nz, phk@critter.freebsd.dk, wollman@khavrinen.lcs.mit.edu, current@freebsd.org Subject: Re: Woa! May have found something - 'rl' driver and small packets (was Re: Odd TCP glitches in new currents) References: <199912231930.OAA11526@skynet.ctr.columbia.edu> Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG :Okay, I patched if_rl.c in -current to fixe the problem demonstrated by :Matt's linktest program. The bug was actually on the receive side of the :rl driver, not the transmit side. A packet can wrap from the end of the :RX buffer back to the beginning, and in some cases these packets would :get lost due to botched use of m_pullup(). I can run the linktest :program now without losing any frames. : :There's another way around this which is to allocate a whole mbuf :cluster when you know the packet is wrapped and bcopy the data manually :instead of using m_devget(), but I'm not sure I want to waste a whole :cluster just for that case. : :-Bill : :-- :============================================================================= :-Bill Paul (212) 854-6020 | System Manager, Master of Unix-Fu Great! Thanks for your help, Bill! -Matt To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message