This is an old revision of the document!
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<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
NetFPGA Linux kernel driver performance
This test was done with NetPerf 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.
<link to the chart>
NetFPGA FreeBSD kernel driver performance
NOTYET
Comparison between Linux and FreeBSD driver
NOTYET