Reference Function and Dependencies

The reference Network Function here is not intended to be performant, but rather a proof of concept for evaluating basic behavior in the face of differing network conditions and flow inputs. The ultimate output of the project is a specification that we expect ICS vendors will use to implement the functionality in their own products.

The reference NF, test orchestration framework, and analysis tools are written in Python. Below we list both the software and other requirements for utilizing these tools.

Test Topology Builder (

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

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

  • geni-lib (properly configured with your GENI credentials)


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 topology builder will function with the libraries above, although it sets up an environment that 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 (

The experiment orchestration system does not require that you use a topology in the GENI environment, but the experiment runner script provided here has weak dependencies on that topology. If you have an interest in setting up the experiment topology on other resources and still using the script in your environment, please contact UH Netlab and we can assist you.

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

Output Analysis (

The analysis script requires the following python libraries to be installed:


This documentation can be rebuilt out of the primary repository.

Should you choose to do so you will need the following python libraries and tools:

If you choose to produce PDF documentation you may also need latex packages for your system.