This repo contains everything needed for executing the dtn7-go experiments.
For reproducing the experiments from our AdHoc-Now 2019 paper, you need first to install Docker and Docker Compose on you system. Follow the official guides to install Docker and Docker Compose.
Since our experimts are set up with MACI for reproducibility, you have to prepare MACI in the first step.
git clone --recursive https://github.com/umr-ds/maci-docker-compose dtn7
# remove the default maci_data folder
cd dtn7
rm -rf maci_data
Before executing the experiments, you need to clone this experiment repo as the new maci_data
folder:
git clone https://github.com/dtn7/adhocnow2019-evaluation.git maci_data
At this point, you have to run the MACI backend. This can be done with the following command in the root MACI Docker Compose folder you checked out in the first step:
docker-compose up -d
You need to know the IP address of the machine where you started the MACI backend for a later step.
Now, you have to build the Docker container for the experiments and start it pointing to the MACI backend. With Docker Compose, this can be done in a single step (this can take a while, since we have to build dtn7-go, Serval and IBR-DTN):
cd maci_data
BACKEND=<IP_TO_MACI_BACKEND> DISPLAY= docker-compose up -d --build
To start the experiments go to the following URL with your web browser: http://<IP_TP_MACI_BACKEND>:63658/
.
Then, click on "Create Experiment Study" and load "dtn7" in the "Experiment Templates" section in the top right section.
Finally, scroll to the very bottom of the page and click on "Run Experiment" and wait until all experiments are finished (you can check the state in the "Experiment Studies" page).
You have to know the Experiment ID of you experiment for the evaluation step later on, so remember it.
Use the provided Jupyter Notebook file to evaluate the results.
To do so, go to your web browser at open the following URL: http://<IP_TO_MACI_BACKEND>:8888/
.
First, open the chain_cpu-network.ipynb
notebook and set the EXPERIMENT_ID
variable to the ID from the step above.
Now you can simply execute all cells in the notebook and the results will be evaluated.
Repeat these steps in the chain_runtimes.ipynb
notebook to finilize the evaluation.