FreeBSD support for Stanford NetFPGA

Responsible: Wojciech A. Koszek [mailto: wkoszek@FreeBSD.org]

Official project announcement:

[https://mailman.stanford.edu/pipermail/netfpga-beta/2009-September/000512.html]

The most recent source code is available at:

[http://freebsd.czest.pl/~wkoszek/netfpga/]

Please note the code won't be touched till I get an access to the NetFPGA cards.

State of the NetFPGA driver

Missing functionality


Linux ifconfig(8) output:

nf2c0     Link encap:Ethernet  HWaddr 00:4E:46:32:43:00
          BROADCAST MULTICAST  MTU:1986  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:177


nf2c1     Link encap:Ethernet  HWaddr 00:4E:46:32:43:01
          BROADCAST MULTICAST  MTU:1986  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:177

nf2c2     Link encap:Ethernet  HWaddr 00:4E:46:32:43:02
          BROADCAST MULTICAST  MTU:1986  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:177

nf2c3     Link encap:Ethernet  HWaddr 00:4E:46:32:43:03
          BROADCAST MULTICAST  MTU:1986  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:177

FreeBSD ifconfig(8) output:

nf2c0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=28<VLAN_MTU,JUMBO_MTU>
        ether 00:6e:66:32:63:30
        inet 192.168.1.2 netmask 0xffffff00 broadcast 192.168.1.255
        media: Ethernet autoselect (none)
        status: no carrier
nf2c1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=28<VLAN_MTU,JUMBO_MTU>
        ether 00:6e:66:32:63:31
        media: Ethernet autoselect (none)
        status: no carrier
nf2c2: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=28<VLAN_MTU,JUMBO_MTU>
        ether 00:6e:66:32:63:32
        media: Ethernet autoselect (none)
        status: no carrier
nf2c3: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=28<VLAN_MTU,JUMBO_MTU>
        ether 00:6e:66:32:63:33
        media: Ethernet autoselect (none)
        status: no carrier

Setup

These tests were done with NetPerf (version 2.4.5) default socket settings for both -t TCP_STREAM (TCP stream test) and -t UDP_STREAM (UDP stream test). Every test has been run 31 times. Result of each of tests is present on the X axis. Y axis represents result of the particular test.

Apart from -t <TEST>, no other parameter has been changed.

On the client side, there's FreeBSD system with Broadcom NIC:

FreeBSD n64.nomadiclab.com 8.0-CURRENT FreeBSD 8.0-CURRENT #0: Mon Jul  6 15:16:55 UTC 2009     root@n64.nomadiclab.com:/usr/src.20090706/sys/i386/compile/NOMADICLAB  i386

bge0: <Broadcom NetXtreme Gigabit Ethernet Controller, ASIC rev. 0xb002> mem 0xe2df0000-0xe2dfffff irq 17 at device 0.0 on pci7

It's used across all tests presented below.

On the server side, there's Linux system working with NetFPGA card and reference_nic bitstream from 1.1 Beta release and Intel Gigabit NIC:

Linux n55.nomadiclab.com 2.6.18-92.1.13.el5 #1 SMP Wed Sep 24 19:33:52 EDT 2008 i686 i686 i386 GNU/Linux

nf2: Found an NF2 device (cfg revision 0)...

07:00.0 Ethernet controller: Intel Corporation 82573L Gigabit Ethernet Controller

Performance without NetFPGA at all

This test is run between Broadcom card on FreeBSD and Intel card on Linux:

alt Broadcom to Intel performance

NetFPGA Linux kernel driver performance

This test is run between Broadcom card on FreeBSD and NetFPGA card on Linux

alt Linux driver performance

NetFPGA FreeBSD kernel driver performance

NOTYET

Comparison between Linux and FreeBSD driver

NOTYET

NetFPGA (last edited 2009-09-13 21:27:16 by WojciechKoszek)