This repository contains software framework for the Network Development Kit (NDK). The NDK allows users to quickly and easily develop new network applications based on FPGA acceleration cards. You can build the FPGA firmware for this card using the NDK-APP-Minimal application. The NDK-APP-Minimal is a reference FPGA application based on the NDK. The NDK software framework is used to manage and control FPGA cards with NDK firmware. It includes:
- Linux kernel driver
- libnfb userspace library
- nfb & ndp tools for basic usage
The NDK software documentation is automatically generated documentation based on the Sphinx (public GitHub Pages - built from main branch).
The prebuilt RPM packages can be obtained via Copr:
sudo dnf copr enable @CESNET/nfb-framework
sudo dnf install nfb-framework
We recommend using the Oracle Linux 8/9 operating system with Red Hat compatible kernel (RHCK), which we use for internal development. Here is a link to instructions on how to switch the default UEK kernel to the RHCK kernel on Oracle Linux. For other operating systems, the installation procedure may be slightly different.
-
First, you must enable the EPEL repositories that contain the required dependencies (libfdt-devel, etc.).
Instructions for Oracle Linux 8:
sudo dnf config-manager -y --set-enabled ol8_codeready_builder
sudo dnf install -y oracle-epel-release-el8
Instructions for Oracle Linux 9:
sudo dnf config-manager -y --set-enabled ol9_codeready_builder
sudo dnf install -y oracle-epel-release-el9
-
Install the linux-headers package for your kernel.
sudo dnf install -y kernel-headers-$(uname -r)
-
Enable our COPR repository containing the necessary packages.
sudo dnf copr enable -y @CESNET/nfb-framework
-
Install the nfb-framework package, which contains NFB driver and SW tools.
sudo dnf install nfb-framework
-
Optionally, you can install a package containing the NFB Python API.
sudo dnf install python3-nfb
-
Clone the repository from GitHub.
git clone https://github.com/CESNET/ndk-sw.git
cd ndk-sw
-
Install all prerequisites on supported Linux distributions.
sudo ./build.sh --bootstrap
-
Download and extract 3rd party code archive from the GitHub Release page.
./build.sh --prepare
-
Compile library and tools to the cmake-build folder.
./build.sh --make
-
Compile Linux driver.
cd drivers; ./configure; make; cd ..
-
Load Linux driver manually.
sudo insmod drivers/kernel/drivers/nfb/nfb.ko
Unless otherwise noted, the content of this repository is available under the BSD 3-Clause License. Please read LICENSE file.
- Martin Spinler (spinler AT cesnet.cz)