This repository contains experiments used for the evaluation of the orchestrator pipeline step duration.
It is part of the papers Low Impact Tenant Code Updates on Multi-tenant Programmable Switches
and Resilient Multi-Tenant Network Programmability for Adaptive Service Placement
.
This repositories contains code which was using proprietary hardware and software. Due to their license, these code parts were removed and must be added again, or triggered manually to achieve the experiment setup used in the proposed paper!
- Root is necessary for the switch warm up.
- iPerf3 must be installed on both hosts.
- You need rust installed on the host for the self-implemented speedtest tool using an example UDP application layer.
- Also, the Experiments used proprietary hardware and software for the switch initialization and communication. Due to their license, this is not part of this repository! If you want to have the same experience these steps must be implemented again!
Add the missing code parts and parameters to this repository.
For this setup, you need also a proper python environment like a virtual environment with OMuProCU-utils package installed.
python3 -m venv .venv
source .venv/bin/activate
pip3 install ../OMuProCU-utils
pip3 install -r requirements.txt # primarly required for the postprocessing.
Experiment for the paper Low Impact Tenant Code Updates on Multi-tenant Programmable Switches
To start the experience after implementing the missing steps again, you can enter
./meta-run-experiment.sh
which will start a tmux session where experiment is done.
After a successful experiment run, the following command can be executed in the virtual environment to generate plots and evaluation files:
python3 evaluation/timemeasurement_postprocessing.py
Experiment for the paper Resilient Multi-Tenant Network Programmability for Adaptive Service Placement
For the first experiment, the following steps must be done:
- VXLAN must be configured correctly (
./enable_vxlan_h1_pinger.sh
) - Pinger must be deployed correctly
To start the experiment, the following command must be executed in the virtual environment:
python3 pinger-test.py
or
pinger-experiment.sh
which will do all steps accordingly.
After a successful experiment run, the following command can be executed in the virtual environment which generates plots and evaluation files:
python3 evaluation/ping-results-evaluation.py
As second experiment for this paper, the following steps must be done.
- VXLAN must be configured correctly (
./enable_vxlan_h1_pinger.sh
) - Pinger must be deployed correctly
- Rust must be installed on the host
To build the speedtest tool, the following command must be executed:
cd speedtest
cargo build --release --bin UDPClient
# If you want to run the server on a host
cargo build --release --bin UDPServer
The speedtest tool must be configured with the correct IP addresses of the hosts. This can be done by editing the speedtest/client_config.yaml
file.
The client also supports an experiment mode, which can be enabled by setting the experiment_mode
parameter to true
. In this mode, the client will send a fixed number of packets to the server and measure the time it takes to send and receive the packets.
If you are running the experiment on a host using the speedtest server, the server configuration must be edited in the speedtest/server_config.yaml
file.
If you need to run the server on a host, the following command must be executed to start the speedtest server:
cargo run --release --bin UDPServer
To start the experiment, the following command must be executed to start the speedtest tool:
cargo run --release --bin UDPClient
After a successful experiment run, the following command can be executed in the virtual environment which generates evaluation files:
python3 speedtest/evaluation.py