Reference Experiment and Dependencies

The reference experiment here is intended to be fictitious with the sole goal to illustrate how uhexp framework enables automation of various aspects of experimental objectives in networking research.

The reference experiment execution and reservation scripts are written in Python. Below we list both the software and infrastructure requirements for utilizing these scripts.

Topology Builder ( GENI Infrastructure

To build the test topology using the script you will need a valid GENI credential in order to use the VTS or CloudLab testbed employed. If you do not have GENI credentials you can find instructions for acquiring credentials at the NSF GENI Portal.


The default Vagrant installation of geni-lib builds a 32-bit virtual machine whose base OS has conflicts with the libraries required for operation of this experiment. You can use virtualenv to build an isolated environment on that VM to separate your use of this code from the base OS. The vagrant installation instructions are posted here.


System Packages If you are using the vagrant installation for geni-lib your system may need the following to be installed:

sudo apt-get install mercurial libfreetype6-dev pkg-config libpng12-dev

Your environment will require the installation of the following python libraries:

The topology builder can be called using the libraries listed above.


VTS infrastructure and Dropbox upload feature:

The resulting environment for an experiment on the VTS infrastructure will require that you link a Dropbox account with the VTS site you use, in order to automatically transfer the experiment data out of the isolated topology that VTS creates. You can easily do this using the documentation here.

Experiment Runner (

If you have an interest in setting up the experiment topology on other resources than listed in this repository, and still using the script in your environment, please contact UH Netlab and we can assist you.

The experiment run script requires the following python libraries be installed: