Quick start
These steps describes basic workflow for experiments.
Boot new firmware into card
Note
The nfb-boot tool expects that some NDK firmware is already loaded in the FPGA. If this is not your case, follow the FPGA card manufacturer’s instructions for loading the FPGA firmware.
$ nfb-boot -f0 n6010-nic-230603.nfw
Check base board information
$ nfb-info -v
--------------------------------------- Board info ----
Board name : COMBO-GENERIC
Serial number : 0
Network interfaces : 2
* Interface 0 : QSFP
* Interface 1 : QSFP
Temperature : 56.2 C
------------------------------------ Firmware info ----
Card name : N6010
Project name : NDK_NIC
Project variant : 100G2
Project version : 0.3.2
Built at : 2023-06-03 00:30:22
Build tool : Quartus Version 22.4.0 Build 94 12/07/2022 SC Pro Edition
Build author : no-reply@liberouter.org
RX queues : 16
TX queues : 16
ETH channels : 2
* Channel 0 : 100G
* Channel 1 : 100G
-------------------------------------- System info ----
PCIe Endpoint 0:
* PCI slot : 0000:03:00.0
* PCI speed : 8 GT/s
* PCI link width : x16
* NUMA node : -1
Write and read CSR (configuration and status registers)
$ # write 32b value 0xdeadbeef to address 0x1c
$ nfb-bus -c cesnet,ofm,mi_test_space 1c deadbeef
$
$ # read 32b value from address 0x1c
$ nfb-bus -c cesnet,ofm,mi_test_space 1c
deadbeef
Check ethernet modes and features
$ nfb-eth -i0 -Pv |grep -A 7 "PMA types"
Supported PMA types ->
* : 100GBASE-SR4
* [active] : 100GBASE-LR4
* : 100GBASE-ER4
Supported PMA features ->
* : PMA local loopback
* : PMA remote loopback
* : Low power
Enable input + output MAC, enable FEC and set internal loopback
$ nfb-eth -e1
$ nfb-eth -Pc "100GBASE-SR4"
$ nfb-eth -Pc "+PMA local loopback"
Send 2x10 random frames (without payload) on first two DMA queues
$ ndp-generate -s 64-128 -i0,1 -p 10
------------------------------- NDP generate stats ----
Packets : 20
Bytes : 2112
Avg speed [Mpps] : 0.001
Avg speed L1 [Mb/s] : 0.747
Avg speed L2 [Mb/s] : 0.631
Time : 0.028
Check statistics on DMA queues and MAC
$ nfb-dma -i0,1
------------------------------ RX00 NDP controller ----
Received : 0
Received bytes : 0
Discarded : 20
Discarded bytes : 2752
------------------------------ RX01 NDP controller ----
Received : 0
Received bytes : 0
Discarded : 0
Discarded bytes : 0
------------------------------ TX00 NDP controller ----
Sent : 10
Sent bytes : 1056
------------------------------ TX01 NDP controller ----
Sent : 10
Sent bytes : 1056
$ nfb-eth -i0
----------------------------- Ethernet interface 0 ----
Speed : 100 Gb/s
Transceiver status : Not plugged
Transceiver cage : QSFP-0
------------------------------------- RXMAC Status ----
RXMAC status : ENABLED
Link status : UP
HFIFO overflow occurred : False
Received octets : 2192
Processed : 20
Received : 20
Erroneous : 0
Overflowed : 0
------------------------------------- TXMAC Status ----
TXMAC status : ENABLED
Transmitted octets : 2192
Processed : 20
Transmitted : 20
Erroneous : 0
Repeater status : Unknown