==== FreeBSD support for Stanford NetFPGA ====
Responsible: [[/WojciechKoszek|WojciechKoszek]]
[[https://mailman.stanford.edu/pipermail/netfpga-beta/2009-September/000512.html|Project announcement on netfpga-beta mailing list]]
Please note the code won't be touched till I get an access to the %%NetFPGA%% cards.
=== State of the NetFPGA driver ===
* all 4 ports are working in terms of ''%%ping(8)%%'' and nc(1)
* interrupt dispatching isn't prepared to run %%NetPerf%% yet.
=== Missing functionality ===
* because we mitigate RX/TX descriptors in %%NetFPGA%%, some good managment is needed. Not sure why Linux driver code uses atomic operations in the interrupt handler. This is to be solved at the Brno meeting with John and Adam.
* ''%%polling(4)%%'' support
* definition for suspend/resume semantics is missing
* VLAN/Jumbo functionality isn't tested
=== Sketches related with my work on NetFPGA development ===
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 metric 0 mtu 1500
options=28
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 metric 0 mtu 1500
options=28
ether 00:6e:66:32:63:31
media: Ethernet autoselect (none)
status: no carrier
nf2c2: flags=8802 metric 0 mtu 1500
options=28
ether 00:6e:66:32:63:32
media: Ethernet autoselect (none)
status: no carrier
nf2c3: flags=8802 metric 0 mtu 1500
options=28
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: 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:
{{ wojciechkoszek/netfpga/netfpga-non.jpeg|alt Broadcom to Intel performance }}
=== NetFPGA Linux kernel driver performance ===
This test is run between Broadcom card on %%FreeBSD%% and %%NetFPGA%% card on Linux
{{ wojciechkoszek/netfpga/netfpga-linux.jpeg|alt Linux driver performance }}
=== NetFPGA FreeBSD kernel driver performance ===
NOTYET
=== Comparison between Linux and FreeBSD driver ===
NOTYET
----
{{tag>InactiveProject}}
{{tag>Stale}}