Subject: gigE packet forwarding performance - how close to 1.5m pps can we get
To: None <tech-net@netbsd.org>
From: Dan Freedman <dan@fsa.ca>
List: tech-net
Date: 04/29/2002 08:10:58
Has anyone worked on getting NetBSD to forward IP packets at close to
wire speed between a couple of gigabit Ethernets? For minimum size
packets (64bytes), there can be about 1.5 million packets per second on
a saturated gigabit Ethernet (760mbps or so - you only get the full gbps
with larger packets due to inter-packet gaps, etc.). This gives about
660 nanoseconds to process each packet.

It seems that this level of performance would be too taxing for a normal
desktop PC (especially if PCI-based NICs are used). But on a newer
architecture PC (eg: 2GHz Xeon CPU, 400MHz DDR RAM, and Intel E7500
gluing the gigabit MACs to the CPU and RAM [3.2GBps throughput on the
E7500], there seems to be enough time to get the job done. I'm seeing
1320 CPU clock cycles available per packet, 264 RAM access cycles, and
16,896 bits of E7500 bandwidth per 512 bit [64 byte] packet to be
processed.

My questions: Do we know how fast NetBSD has been measured to forward
small IP packets between gigabit Ethernets? Do we know about similar
measurements that may have been made for other open-source O/S's? If we
don't have the measurements, can we speculate on how close to 1.5m pps
we might come without specialized hardware?

     Thanks

          Dan Freedman