The scripts in this directory serve the experiment setup and conduction.
construct_network.py
constructs a network of up to 50 nodes (may be less due
to bookings within the selected site).
create_ff_descs.py
creates a descs.yaml
for the experiments conducted in
Section IV. COMPARISON OF FRAGMENT FORWARDING METHODS.
create_cc_descs.py
creates a descs.yaml
for the experiments conducted in
Section V. EVALUATION OF CONGESTION CONTROL WITH SFR.
dispatch_experiments.py
conducts the experiments as described in the current
descs.yaml
.
Finally, setup_exp.sh
ensures the environment for dispatch_experiments.py
that the script is run in the background in one TMUX session (called
6lo-comp
). It also ensures that an SSH authentication agent was started and
configured to communicate with the IoT-LAB frontend server.
The scripts assume they are run with Python 3.
The following python packages are required (version numbers indicate tested versions):
iotlab_controller
(see https://github.com/miri64/iotlab_controller)networkx
v2.5matplotlib
v3.1scipy
v1.7
The required packages are listed in requirements.txt
and can be installed
using
pip3 install -r requirements.txt
You must also configure your IoT-LAB credentials using iotlab-auth
which is
provided by the iotlabcli
python package (which is automatically installed
with iotlab_controller
). See
iotlab-auth -h
for further instructions.
This script constructs a sink-oriented network using predefined values. See
./construct_network.py -h
for further information. The resulting edgelist.gz
file will be stored in
./../../results
DATA_PATH
: (default:./../../results
) Path to store the edge list file in
This script creates a descs.yaml
with experiment descriptions for
dispatch_experiments.py
to conduct the experiments in Section IV. COMPARISON
OF FRAGMENT FORWARDING METHODS. See
./create_ff_descs.py -h
for further information. The resulting descs.yaml
will be created in this
directory. descs.example.ff.yaml
provides an example output of the script.
This script creates a descs.yaml
with experiment descriptions for
dispatch_experiments.py
to conduct the experiments in Section V. EVALUATION
OF CONGESTION CONTROL WITH SFR. See
./create_cc_descs.py -h
for further information. The resulting descs.yaml
will be created in this
directory. descs.example.cc.yaml
provides an example output of the script.
This script conducts the experiments with a given configuration on a
selection of M3 nodes in the IoT-LAB testbed. An experiments configuration
is described by a descs.yaml
file as generated by one of the
create_{cc,ff}_descs.py
in the object description language YAML. See
./dispatch_experiments.py -h
for further information.
Helper script to automatically put dispatch_runs.sh
(and its generated TMUX
windows) in a TMUX session with proper SSH authentication agent configuration.
As such, when starting the script, it might ask you for your SSH key passphrase. It is used to store your key in the SSH authentication agent, so the called scripts can communicate with the IoT-LAB SSH frontend.