This repository hosts PIX, a tool to automatically extract performance interfaces from NF code. PIX was published at NSDI'22 (paper).
Subdirectories have their own README files.
dpdk-nfs
- contains the set of NFs written using Intel's DPDK that we extracted performance interfaces for.ebpf-nfs
- contains the set of NFs written using the eBPF XDP framework that we extracted performance interfaces for.install.sh
- script to install all of PIX's dependenciesinstall
- patches and config files for PIX's dependencies
The install.sh
script installs all of PIX's dependencies.
Run ./pix/install.sh
from the directory containing PIX.
To list all the dependencies, run ./pix/install.sh --help
To extract performance interfaces for individual NFs, please refer to the READMEs within the respective subdirectories.
- All code in this repository was tested on Linux kernel versions <= 4.15.
- To run the DPDK NFs (but not necessarily to extract performance innterfaces), you need to set up hugepages for DPDK; see the DPDK documentation.
- At several points in the code,
pix
will be referred to asbolt
. This is because internally at DSLAB,pix
was a successor to thebolt
tool that extracted performance contracts from NF code (bolt source)