Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 24 Jun 1995 16:39:12 -0400 (EDT)
From:      Network Coordinator <nc@ai.net>
To:        David Greenman <davidg@Root.COM>
Cc:        hackers@freebsd.org
Subject:   Re: FreeBSD as a router 
Message-ID:  <Pine.BSF.3.91.950624162711.1447G-100000@aries.ai.net>
In-Reply-To: <199506241954.MAA00491@corbin.Root.COM>

next in thread | previous in thread | raw e-mail | index | archive | help

> 
>    On a fast Pentium, it is possible to route packets at a rate >70Mbits/sec
> in FreeBSD-current. ...but this is talking raw data throughput. In terms of
> packets/sec, we don't do so well...about 10000 packets/sec is about tops. This
> is less than 1/10th the capability of 100BASE-TX.
> 

[I'm not questioning your results here, just curious.] How did you get 
the estimate of performance on a pentium? I tried [just to see a ball 
park figure] a tcpblast on 127.0.0.1 on a moderately loaded 486/66 and 
got about 1.1 Megabytes/second or 9.1 Mbits/second. I seem to have some 
foggy idea that the top limit of an ISA motherboard is about 10 
megabits/second, but that sounds too much like the standard ether limit. 

On a pentium, we are under the assumption that the bus and processor 
aren't the limiting factor, and just BSD is slowing things down. So what 
is it?

Second question, and related. Even if an software based router has to 
wait for an entire packet frame to come in before routing it, that 
strikes me only as a latency problem, and not a thruput problem, 
especially on cards that can multitask and have builtin buffers [32k in 
the SMC 100mbps I believe] Couldn't the driver be written to grab the 
entire contents of the buffer and route them all the packets at once? I 
can't imagine that a 486 or a Pentium is slower in horsepower than a 
Cisco box, even though a cisco may be able to turn them around faster. 
Actually, if memory serves, the clock interrupt hits many times a second. 
In BSD I think rtc0 is about 100 times per second. With a 32k buffer 
polled once per tick, you are getting MUCH higher thruput than 
100megabits assuming you are on a PCI bus [scratch the 486 in that 
scenario]. Assuming the same thing that is polling [probably built into 
the kernel] can have part of gated builtin [in a router that is using 
nearly 100% of its bus bandwidth for routing, there isn't much left for 
it to do anything else] that routes. Sort of a low-level approach to it, 
very similar to building everything into the driver, but it would HAVE to 
pull very good performance as far as I can tell. The only problem would 
be on networks with sporadic traffic, the latency bite might be a little 
high. On higher utilized networks, I can't imagine 10-12 ms latency on a 
80 megabit stream of packets is a problem. 

If I am missing something fundamental, please set me straight.

-Jerry.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.91.950624162711.1447G-100000>