Corundum: open-source, FPGA-based, 100G NIC

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.
Jul 19, 2020
51
20
8
Here is a project that I have been working on for some time that I think some of you might find interesting:

corundum/corundum

Corundum is an open-source NIC design that targets several different FPGA boards, capable of operation at up to 100 Gbps. It provides a number of relatively standard NIC features including checksum offloading, RSS, scatter/gather DMA, and PTP time synchronization. It is primarily intended for datacenter networking research applications, including smart NICs, experimental network protocols, experimental network architectures, network measurement, and much more. It is written in relatively vendor-independent verilog, currently supporting Xilinx 7-series, ultrascale, and ultrascale+ devices, but I am starting the process to port it to Arria 10 and Stratix 10 DX. Currently, Corundum only supports operation with a driver for the Linux kernel networking stack, but we're going to be looking at adding support for DPDK relatively soon.

Now, the implementation of both the NIC itself as well as the driver are both still a bit rough around the edges - this is, after all, a research project and not a commercial product. That being said, I think it has a lot of potential, perhaps to form a hardware complement of sorts to DPDK.

I will also admit that I am not an expert on NIC performance characterization...so far I have been using multiple instances of iperf to test the NIC, and more recently I have been taking a look at the linux pktgen kernel module. What performance characteristics are the most interesting for NICs - anything besides bandwidth and latency? And what are the most robust measurement techniques? Also note that since it is an FPGA design, it can be instrumented to facilitate measurements in ways that are not possible with ASIC-based NICs.

Also, is anyone on here experienced with FPGA development, driver development, and/or working with frameworks such as DPDK? If corundum sounds like an interesting project that you might want to contribute to, please let me know!
 

jpmomo

Active Member
Aug 12, 2018
531
192
43
pm me when you get a chance. this project sounds like something I have been pursuing for a while.
thanks,
jp