- nitk-nest
python3 -m pip install nitk-nest
- flent
sudo add-apt-repository ppa:tohojo/flent
sudo apt install flent
-
Install iproute2 (version >= 5.5) and apply the custom flent patches as mentioned here
-
Clone/Download the repository
git clone https://github.com/shashank68/aqm-evaluation
Use the --help
option to view the configurable network parameters
sudo python dumbbell_flent.py --help
usage: dumbbell_flent.py [-h] [--rtt RTT] [--ecn {Yes,No}] [--duration TIME] [--bottleneck_bw BANDWIDTH] [--qdisc {fq_codel,fq_pie,codel,pie,cake}] [--no_offloads {Yes,No}] [--number_of_tcp_flows NUM] [--qdelay_target TARGET] [--results_dir DIR]
optional arguments:
-h, --help show this help message and exit
--rtt RTT Round trip time for flows (ms)
--ecn {Yes, No} Turn on ECN
--duration TIME Duration of test in seconds
--bottleneck_bw BANDWIDTH
Bottleneck bandwidth (mbit)
--qdisc {fq_codel, fq_pie, codel, pie, cake}
AQM algorithm (qdisc)
--no_offloads {Yes, No}
Turn off GSO, GRO offloads
--number_of_tcp_flows NUM
Number of flows in tcp_nup flent test
--qdelay_target TARGET
Queue delay target (For qdisc)
--results_dir DIR Directory to store the results
The default values for the above parameters are defined in exp_config.py.
sudo python3 dumbbell_flent.py --rtt=100 --bottleneck_bw=80 --qdisc=fq_codel --ecn=No --no_offloads=Yes --results_dir=foo/bar
- The above script will create a result directory named using the parameter values specified.
AQM_FLOWS_BANDWIDTH_RTT....DATE-TIME
- To run tests with custom combination of parameters, create a
combinations_config.json
from the example given
cp combinations_config.json.example combinations_config.json
-
Modify the values in
combinations_config.json
if required -
To execute tests with the configured parameters run:
sudo python run_all_combinations.py
- If you do not create a
combinations_config.json
file then the default values inrun_all_combinations.py
will be used