The scripts in this directory serve the experiment conduction.
dispatch_experiments.py
runs all experiments as
described in descs.yaml
.
setup_exp.sh
ensures the environment for
dispatch_experiments.py
is run in the background in one TMUX session (called
icnlowpan-sfr
) with insurance 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):
libtmux
v0.8.0pexpect
v4.8.0iotlabcli
v2.6.0iotlab_controller
v0.3.0pyyaml
v5.3
The required packages are listed in requirements.txt
and
can be installed using
pip3 install -r requirements.txt
You will also require a version of the ssh
command (e.g. openssh-client
) to
interact with the IoT-LAB nodes.
tmux
is required to multiplex the terminal in the background.
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 conducts all experiments described in descs.yaml
.
./dispatch_experiments.py
For each run, mode
, vrep
, prefix
, data_len
, count
, and delay
can be
set to configure the application. reflash
enforces the rebuild
and reflashing of the application to all nodes. Have a look at
descs.example.yaml
to see how a set of experiments can be described.
Experiments can also be described for an already running IoT-LAB experiment by assigning an object to the ID of that IoT-LAB experiment
226556:
channel: 20
iotlab_site: grenoble
consumer: m3-273
forwarders:
- m3-281
- m3-289
producers:
- m3-2
- m3-72
# ...
Just make sure, the nodes listed are actually booked for the provided IoT-LAB experiment at the given site.
The resulting logs of a run will be stored in DATA_PATH
under the name
icnlowpan_comp_cr_c<channel>_m<mode-incl-SFR-params>-<count>x<delay>ms<data_len>B_<timestamp>.log
If you want to sniff the IEEE 802.15.4 traffic during the experiment, add
sniffer: true
to the experiment's description. The resulting PCAP file will be
stored in DATA_PATH
under the name
icnlowpan_comp_cr_c<channel>_m<mode-incl-SFR-params>-<count>x<delay>ms<data_len>B_<timestamp>.pcap
DATA_PATH
: (default:./../../results
) Path to store the resulting logs and PCAPs in
Helper script to automatically put dispatch_experiments.py
(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.