Skip to main content
Cornell University

How to set up SoNIC

SoNIC consists of an FPGA development board, and a server/workstation. The server/workstation must be able to support "PCLMULQDQ" instruction (SSE4.2, available in Westmere, Sandy Bridge, and Ivy Bridge), and PCIe x8 Gen2.0. To achieve the best performance, it is recommended to have at least 8 cores to support two 10GbE ports. SoNIC kernel module is implemented and tested in Linux Kernel 2.6.38. We are currently updating the module to support recent Linux Kernel versions.
  1. Install SoNIC board. The board must be loaded with SoNIC firmware.
  2. Boot the machine, and check the status of the board (lspci)
  3. Once installation is done, compile and load the SoNIC module
  4. Create three character device files for control and data communications. The characer device major number can be found out by running
    grep sonic /proc/devices

    Then, run following three commands to create files.
    mknod "/dev/sonic/sonic_control" c 0
    mknod "/dev/sonic/sonic_port0" c 1
    mknod "/dev/sonic/sonic_port1" c 2
  5. Now, SoNIC is ready. Run test applications provided below.

Packet Generator

Packet Capturer