Currently the debug output is very much debug output. We probably want to set the logging level to DEBUG_LOG_INFO, and make that output clean. The user should be able to tell what experiment is running, and still see updates to the console frequently enough that they know if stuff is working.
Next, we should clean up the repository so that we just have a single ./run.sh command in the root of the repository that installs dependencies and everything, rather than needing to do everything from within the mahimahi folder.
sudo apt-get install -y python-pip
Reading package lists... Done
Building dependency tree
Reading state information... Done
python-pip is already the newest version (8.1.1-2ubuntu0.4).
The following packages were automatically installed and are no longer required:
linux-headers-4.4.0-134 linux-headers-4.4.0-134-generic linux-image-4.4.0-134-generic
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
echo 'Installing Python TK for graph plotting'
Installing Python TK for graph plotting
sudo apt-get install -y python-tk
Reading package lists... Done
Building dependency tree
Reading state information... Done
python-tk is already the newest version (2.7.12-1~16.04).
The following packages were automatically installed and are no longer required:
linux-headers-4.4.0-134 linux-headers-4.4.0-134-generic linux-image-4.4.0-134-generic
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
pip install matplotlib
Requirement already satisfied: matplotlib in /usr/local/lib/python2.7/dist-packages (2.2.3)
Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python2.7/dist-packages (from matplotlib) (2.3.0)
Requirement already satisfied: backports.functools-lru-cache in /usr/local/lib/python2.7/dist-packages (from matplotlib) (1.5)
Requirement already satisfied: subprocess32 in /usr/local/lib/python2.7/dist-packages (from matplotlib) (3.5.3)
Requirement already satisfied: pytz in /usr/local/lib/python2.7/dist-packages (from matplotlib) (2018.7)
Requirement already satisfied: six>=1.10 in /usr/local/lib/python2.7/dist-packages (from matplotlib) (1.11.0)
Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python2.7/dist-packages (from matplotlib) (2.7.5)
Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python2.7/dist-packages (from matplotlib) (1.0.1)
Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python2.7/dist-packages (from matplotlib) (0.10.0)
Requirement already satisfied: numpy>=1.7.1 in /usr/local/lib/python2.7/dist-packages (from matplotlib) (1.15.4)
Requirement already satisfied: setuptools in /usr/lib/python2.7/dist-packages (from kiwisolver>=1.0.1->matplotlib) (20.7.0)
echo 'Installing Mahimahi'
Installing Mahimahi
sudo add-apt-repository -y ppa:keithw/mahimahi
gpg: keyring /tmp/tmp74qodba2/secring.gpg' created gpg: keyring /tmp/tmp74qodba2/pubring.gpg' created
gpg: requesting key 7BF6DFCD from hkp server keyserver.ubuntu.com
gpg: /tmp/tmp74qodba2/trustdb.gpg: trustdb created
gpg: key 7BF6DFCD: public key "Launchpad PPA for Keith Winstein" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
OK
sudo apt-get install -y mahimahi
Reading package lists... Done
Building dependency tree
Reading state information... Done
mahimahi is already the newest version (0.98+679-0ppa~ubuntu16.04.1).
The following packages were automatically installed and are no longer required:
linux-headers-4.4.0-134 linux-headers-4.4.0-134-generic linux-image-4.4.0-134-generic
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
++ date
echo Wed Nov 7 12:17:23 UTC 2018
Wed Nov 7 12:17:23 UTC 2018
When running bbr_experiment.py, sometime I see Mahimahi dying. Check if this error is important or it can be ignored.
[INFO] Running experiment [loss = 0.25, cong_ctrl = bbr]
Traceback (most recent call last):
File "client.py", line 82, in
_run_client()
File "client.py", line 77, in _run_client
s.send(msg)
socket.error: [Errno 32] Broken pipe
Died on std::runtime_error: stdbuf -o0 python client.py 5050 bbr': process exited with failure status 1 Died on std::runtime_error: packetshell': process exited with failure status 1
Died on std::runtime_error: mm-link 100Mbps.up 100Mbps.down --uplink-log=/tmp/bbr_log --meter-uplink --once -- stdbuf -o0 python client.py 5050 bbr': process exited with failure status 1 Died on std::runtime_error: packetshell': process exited with failure status 1
Died on std::runtime_error: mm-loss uplink 0.25 mm-link 100Mbps.up 100Mbps.down --uplink-log=/tmp/bbr_log --meter-uplink --once -- stdbuf -o0 python client.py 5050 bbr': process exited with failure status 1 Died on std::runtime_error: packetshell': process exited with failure status 1