Skip to content
Adam edited this page Jan 14, 2013 · 4 revisions

NetFPGA: Four Port Network Interface Card (NIC)

The NetFPGA reference NIC design implements a quad-port Gigabit Ethernet Network Interface Card (NIC) function. The design supports the set of features described below. Each feature has a corresponding test (NIC_Tests) that verifies the functionality of that feature. A master regression test is included with the NIC distribution that allows a single script to test most features.

Functionally, the NetFPGA implements a quad-port GiGE NIC that:

  • fits into a 32-bit, 33 MHz PCI slot of a Host PC
    • We have tested the NetFPGA with the:
      • in a desktop PC with an ASUS M2NPV-VM motherboard
      • in a the Dell 2950 2U rackmount PC
  • has a Linux device driver that
    • Compiles for Linux CentOS 4.4 (test 1.1)
    • Installs as a loadable driver (test 1.2)
    • Provides four nf2c[0-3] GigE interfaces (test 1.3)
    • Loads with Modprobe (test 1.4)
    • Advertises a MTU of 1500 bytes (test 1.5)
    • Allows IP addresses to be assigned to each interface (test 1.6)
  • has FPGA-implemented hardware that
    • Transmits, receives, checks, and counts 60-1514 byte packets (test 2.1.1-3)
    • Checks for bad CRCs (test 2.1.4)
    • Drops packets when queues overflow (test 2.1.5)
    • Allows an IP address to be assigned to each interface (test 2.1.6)
The NIC does not:
  • Transport jumbo frames
Ethernet packets with a length > 2,000 bytes are not supported 
  • support Virtual LANs (VLAN)
VLANs were not tested in the Beta 1.0 release 
  • support IPV6
IPV6 was not tested for the Beta 1.0 release 
  • connect to Ethernets links running at 10 Mbps or 100 Mbps
(it only operates at a link speed of 1 Gbps) 
  • operate in a non-promiscuous mode
(all packets received are forwarded up to the host) 

Details about how each feature is tested is documented in the NIC Regression Test document.

Instructions on how to install and use the Linux driver, synthesize the source code for the software and hardware components, and run the regression tests are documented in the NetFPGA Guide

Clone this wiki locally