Subject: Dropping UDP packets in heavy traffic
To: None <current-users@NetBSD.ORG>
From: Rafal Boni <>
List: current-users
Date: 01/18/1995 03:53:46
I've been hacking away on an ethernet driver for the 386 port, and in the
process came accross a wierd "feature" in my kernel.  Since all of my 2
Ethernet connected BSD boxes are using this same driver, I have no way to
easily verify if this is my problem, or normal behavior.

What I do, what happens:
	run TTCP in UDP send mode, with the "make random data" switch.
		[2048 buffers of 8K, usually against my Sparc or an HP
		 or IBM RISC box]
	First several packets go out OK, but as soon as the card's memory 
	buffers fill up, and the driver raises OACTIVE [the driver "cheats"
	with OACTIVE much the same way that the "ed" driver does, in that 
	it only raises OACTIVE when it has actually filled all the on-card
	buffers] packets start getting dropped all over the floor [what a 
	mess!].  Quite a few packets, ranging up to the 1000's are dropped 
	before the card catches up.

	I realize that UDP is an inherently unreliable protocol, but should
	the kernel be dropping UDP packets so soon?  I don't see this happen
	when I use the HP9k, Sparc or RS6k as the sending piece of the link..

	Someone want to test this with a card other than the 3c507, maybe a
	3c509 or a WD/SMC or even a (blah, yeck) NE2K?  Results and comments
	appreciated....	[If anyone wants to check this out, I can send you
	the exact copy of ttcp I used, so at least that is eliminated from 
	the equation]


+--------------------------------------------------------+ +------------------+
| In search of the stress-strain relationship governing  |/|       Rafal Boni |
| students of mechanics... Experimentally.               |\| |
+--------------------------------------------------------+ +------------------+