ntl is a C++ template library for generating efficient FPGA networking applications with Xilinx Vivado HLS.
-
ntl/
contains the class library itself. -
examples/udp-firewall/
contains an example UDP firewall application. -
evaluation/
contains extra code and scripts for evaluating the UDP firewall example on a Mellanox Innova Flex SmartNIC and comparing against alternative implementations:hls-legacy/
andp4/
implement the same application without ntl, and using P4/SDNet respectively, in order to compare with the ntl example.scripts/
,verilog/
, andxci/
provide necessary code to build a bitstream for the Innova.
ntl has been tested with Xilinx Vivado HLS, and Xilinx Vivado 2018.2, and the evaluation P4 application has been tested with Xilinx SDNet 2018.2.
ntl relies on Boost libraries, and was tested with version 1.54.0.
The C simulation test of the UDP firewall example requires googletest and libpcap.
Building a bitstream for the Innova card requires downloading the SDK from Mellanox. We have used version 2768 of the SDK.