Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
queue Init strict priority queueing Oct 6, 2015



Download Network Simulator (NS) 2.34 and unzip it.

$ tar -zxvf ns-allinone-2.34.tar.gz

Copy pFabric.patch to the top ns-2.34 folder (ns-allinone-2.34) and apply the patch. Then install NS2.

$ cd ns-allinone-2.34
$ patch -p1 --ignore-whitespace -i pFabric.patch
$ ./install

Copy files in tcp folder to ns-allinone-2.34/ns-2.34/tcp/.

Copy files in queue folder to ns-allinone-2.34/ns-2.34/queue/.

Add queue/priority.o to ns-allinone-2.34/ns-2.34/Makefile.

Run make on /ns-allinone-2.34/ns-2.34.

Simulation Results

Please see our latest online version which is modified from the original NSDI version. In this new version, we update demotion threshold derivation and fix some bugs that may degrade the performance of PIAS.

Running Large-Scale Simulations

You can find simulation scrips in scripts folder:

There are many parameters to configue in run_[transport]_[workload].py. Note that you need to modify ns_path and sim_script correspondingly.

For each simulation, it will create a folder whose name is [workload]_[transport]_[load]. For example, if we run PIAS using the websearch workload at 90% load, we will get a folder named websearch_pias_90.

Each folder contains two files: and The gives flow completion time results with the following format:

number of packets, flow completion time, number of timeouts, src ID, dst ID

You can use to parse files as follows:

$ python -a -i [path]/


If you have any question about PIAS simulation code, please contact Wei Bai.


We thank Mohammad Alizadeh for sharing pFabric simulation code.