Vector Packet Processor is an Linux Foundation (fd.io) project for high-speed packet processing.
In line with the push toward research reproducibility, vpp-bench
is a repository used to keep track of our research data about VPP and, more generally, high-speed software frameworks.
This repo contains:
startup.conf
)This repository is meant to be used in conjunction with other github repos:
TAGS Checkout to tags v16.04 for the scripts valid for VPP 16.04 Master: VPP 19.04
By default, we locate scripts in /usr/local/etc/scripts
. This is exported to an environment variable, named $CONFIG_DIR
.
If git is not available, or if you just want the scripts directory, export with this command:
svn export https://github.com/theleos88/vpp-bench/trunk/scripts --force $CONFIG_DIR
This will update the config scripts with the latest version. I also put an alias in the bashrc, command update-conf
and force-update-conf
.
NOTE: vpp-bench was a fork of the repository github.com/TeamRossi/vpp-bench, which is now deprecated.
Source the config.sh
inside the scripts folder to load in your shell the env variables.
Some of the scripts require additional tools or write permission to specific locations:
/tmp/
$VPP_ROOT
(see config.sh
)$PATH
$CONFIG_DIR
in $PATH
Scripts are organized following a specific convention:
[tool name]_[script name]
For example:
vpp_change-frame-size.sh
Where:
There are currently 5 sets of tools:
The majority of the scripts are bash/shell scripts (e.g. .sh). Python scripts are used mainly for dataset creation. Lua files are used for traffic generation. Files with .pkt extension are a sequence of DPDK pktgen commands, to be used for very simple experiments on packet generation.
git clone [URL]/vpp_dev.git
2.a) Source the env variable
2.b) Compile your project
cd [name] && make
Run one of the scripts.
Enjoy vpp.
It is important to check a set of requirements. This is described in details in the wiki page.
Check NUMA nodes: each core should be assigned to the same NUMA node of the Line Card e.g. If core0 is located in NUMA #0 and LC1 is located in NUMA #0, then core0 can be assigned to LC1.
No Turbo boost active: the turbo boost randomly increments the CPU frequency, but it decreases over time. So performance predictability gets lost.
Performs the test to compute the VPP's forwarding rate as a function of the vector size. By default, runs for XC or IP forwarding, and with static, roundrobin and uniform mode.