-
Notifications
You must be signed in to change notification settings - Fork 0
Contributed NIC by Mario Flajslik
nic
contrib-projects/nic
- NetFPGA-10G Specific cores
- Xilinx AXI Peripheral
- Microblaze Subsystem
- Other
This is a reference NIC project using the DMA engine. It includes many of the standard NetFPGA modules (microblaze, AXI interconnect, nf10_interface), but in addition it uses the DMA module to connect to the host over PCIe. The DMA module is connected to the rest of the NetFPGA system through AXIS (master+slave) for streaming packets and AXI4-LITE over which user code on the host can read/write any AXI register in the system.
The 10G NIC on NetFPGA is similar to other NICs. In the following sections, we will show how to run a iperf test between NetFPGA and another machine.
To run the test, you need two machines, A and B. Let's say Machine A is equipped with NetFPGA and Machine B is equipped with a third-party 10G NIC.
Download the reference_nic bitfile from contrib-projects/nic/bitfiles/nic.bit. (Refer to Production Test Manual if you don't know how to download the bitfile and/or not setup JTAG cable yet.)
Connect Machine A and Machine B using a 10G cable. Assume we use nf0 (the port nearest to the PCI Express) on Machine A and eth1 on Machine B.
Make the driver in the sw/host/driver directory and insert it as a module.
cd sw/host/driver
make
sudo insmod nf10.ko
dmesg
If everything went smoothly dmesg will output that nf10 device is ready.
On Machine A
sudo ifconfig nf0 192.168.0.1
On Machine B
sudo ifconfig eth1 192.168.0.2
On Machine A
[hyzeng@machine_A ~]$ ping 192.168.0.2
PING 192.168.0.2 192.168.0.2) 56(84) bytes of data.
64 bytes from 192.168.0.2: icmp_req=1 ttl=50 time=1.04 ms
64 bytes from 192.168.0.2: icmp_req=2 ttl=50 time=1.04 ms
64 bytes from 192.168.0.2: icmp_req=3 ttl=50 time=1.04 ms
64 bytes from 192.168.0.2: icmp_req=4 ttl=50 time=1.04 ms
iperf is a utility to measure the performance over an IP link.
First, make sure you have iperf installed on both machines. If not,
sudo yum install iperf
Setup iperf server on Machine A.
iperf -s
Setup iperf client on Machine B.
[hyzeng@machine_B ~]$ iperf -c 192.168.0.1
------------------------------------------------------------
Client connecting to localhost, TCP port 5001
TCP window size: 132 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.0.2 port 52787 connected with 192.168.0.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 9.35 GBytes 935 Mbits/sec