This repository contains materials to reproduce the results of a paper, appearing at ACM SIGCOMM 2014, which explores the "learnability" of congestion control protocols through the use of an automated protocol design tool, Remy.
You will need a C++11 compiler, git, protobuf-2.4.1, Python 2.7, and numpy.
-
Get the base ns-2 tarball and untar it.
tar zxvf ns-allinone-2.35.tar.gz
-
cd into the untarred folder.
cd ns-allinone-2.35
-
Replace the original version of ns-2.35 with our modified ns-2.35 repository. (We leave the remaining components as is.)
rm -rf ns-2.35 git clone https://github.com/pratiksha/ns2.35 ns-2.35
-
For each figure in the paper, this repository contains a folder with a README file, which provides the SHA-1 hash for a specific commit in ns-2.35. Check out the ns-2.35 commit for the figure you wish to reproduce using the appropriate SHA-1 hash:
cd ns-2.35 git checkout <SHA-1-hash> cd ..
-
Now install ns-2.35 with all its components.
./install
-
cd to the decomposability folder in order to run the simulations.
cd ns-2.35/tcl/ex/decomposability/
-
Follow the instructions in the README file of the appropriate figure's folder to run the simulations and summarize the results. The graphmaker and ellipsemaker scripts in ns-2.35/tcl/ex/graphing-scripts can be used to generate the ellipse figures from the results.