experiments
: contains experiments scripts used for the paperlab
: contains the Kathará network scenario, without the P4 source codep4src
: contains the P4 source code implementing the SRv6 Live-Live behaviorsim
: contains the ns3-bmv2 simulator source code, that allows to the same P4 source code into ns3
You need to install Kathará first. Follow the installation guide on the official repository.
To run the network scenario and experiment by yourself:
make run
This will copy the p4src
folder into the lab
folder and start the scenario.
To clean the scenario:
make clean
Go into the experiments
folder and install the Python3 requirements:
python3 -m pip install -r requirements.txt
You need at least Python3.11 to make it work.
To reproduce the same experiments of the paper, from the root folder:
make experiments_emulator
This will create a folder experiments/results
containing the results.
To plot the results:
make plot_experiments_emulator
This will create a folder experiments/figures
containing the figures of the paper evaluation.
If you want to run the experiments manually:
experiment_n_path.py <result_path> <max_path> <n_runs>
This will run a scenario with an increasing amount of multipaths from source to destination with four different configurations:
- Single: represents solutions that steer the traffic over the best path that has been pre-compute
- Random: random multi-path selection
- No Deduplication: same as SRv6 Live-Live but without the final deduplication
- SRv6 Live-Live
Parameters:
<result_path>
: path where to store the experiment results<max_path>
: experiments will be run from 2 paths to<max_path>
paths<n_runs>
: number of runs for each experiment
ns3 simulatiors are located into the sim
folder. We build a Docker container with p4c and ns3 to run the experiments without requiring to install dependencies on your host.
To build and start the container:
make start
When starting the container, the host ns-3.40
folder will be bind-mounted (if you want to edit files or to get experiment results).
In the container, enter the ns3/examples/srv6-live-live
folder. Here you will find different .sh
files to reproduce the experiments of the paper.