theleos88 / vpp-bench

VPP project, Newnet@TelecomParisTech
https://newnet.telecom-paristech.fr/
9 stars 4 forks source link
kernel-bypass network performance-evaluation software-defined-network traffic-generation vpp vpp-bench

vpp-bench

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:

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

Outline


1. Before starting

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.

Environment

Source the config.sh inside the scripts folder to load in your shell the env variables.

Requirements

Some of the scripts require additional tools or write permission to specific locations:


Conventions

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.

TODO

  1. Clone the repository to your main vpp source directory
    git clone [URL]/vpp_dev.git

2.a) Source the env variable

2.b) Compile your project

cd [name] && make 
  1. Run one of the scripts.

  2. Enjoy vpp.


2. Tips&Tricks for performance evaluation

It is important to check a set of requirements. This is described in details in the wiki page.


3. Experiments

test_vpp-forwarding-framesize.sh

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.