This is the companion website to the paper “Flent: The Flexible Network Tester“ by Toke Høiland-Jørgensen, Carlo Augusto Grazia, Per Hurtig and Anna Brunstrom, which will be presented at ValueTools 2017. The paper presents Flent, a tool for easily running network experiments.

DOI

Test data

The full dataset from our experiments is available in the files below:

This file contains the log files and Flent data files generated in the experiments described in the paper. The data files can be explored with the Flent GUI tool.

Replicating our experiments

Our experiments can be replicated using Flent version 1.1 or newer. The flent-paper.batch file included with the Flent source code was used to generate the over-the-internet dataset and can be reused as-is. The contents of this file is also available below, stripped of comments. To run the testbed experiments, the batch file needs to be adjusted accordingly, which will depend on the exact makeup of the testbed. Anyone interested in replicating the testbed setup is welcome to contact us (contact details below) for help in setting up an appropriate testbed.

[Command::setup_qdisc]
exec = ./setup_qdisc.sh ${qdisc}
type = pre
essential = yes

[Batch::global]
extended_metadata = yes
socket_stats = yes
debug_error = yes
debug_log = yes
title = ${batch_title} qdisc:${qdisc} cc:${cc} rep:${repetition}
output_path = batch-${batch_time}-${batch_title}/${batch_name}
ip_version = 4
length = 140
hosts = netperf-eu.bufferbloat.net
test_parameters= tcp_cong_control=${cc};
filename_extra = ${qdisc}-${cc}-${repetition}
commands = setup_qdisc
repetitions = 1
pause = 5
abstract = yes
batch_title = untitled
qdisc = fq
for_cc = cubic, cubic_nopacing, bbr

[Batch::tcp-upload]
inherits = global
test_name = tcp_1up_noping
disabled = no

[Batch::rrul]
inherits = global
test_name = rrul
disabled = no

[Arg::cubic_nopacing]
cc = cubic
qdisc = fq_codel
hosts = vlan820-28.cs.kau.se

[Arg::cubic]
cc = cubic

[Arg::bbr]
cc = bbr

The setup_qdisc.sh script used to install the right qdisc at the beginning of each test run is listed below; the user running Flent needs sudo access to run the commands without supplying a password.

#!/bin/sh

set -o errexit
set -o nounset

IFACE=enp5s0
QDISC=$1
sudo ethtool -K $IFACE gso off tso off gro off
sudo sysctl -w net.ipv4.tcp_no_metrics_save=1
sudo tc qdisc replace dev $IFACE root $QDISC

Contact

This page written and maintained by Toke Høiland-Jørgensen. Questions, comments, etc. are very welcome on toke DOT hoiland-jorgensen AT kau DOT se.