- Make sure you are runnning python 3.8 or above.
- Install pip3.
- Install matplotlib, pandas, numpy, scipy or run
pip3 install -r requirements.txt
. If you are manually installing these packages, you can find the required versions in requirements.txt,
- metro-pop-slo: This comprises the latencies for each metro-pop pair at a given percentile. We use the 90th percentile window in our implementation.
- topologies: This comprises all the synthetic topologies generated by CORNIFER. All the files are in the format of
topology_{size}_{number}
, wheresize
represents the number of metro locations in the topology. We have 10 variations of each topology size, andnumber
represents any number between 1 and 10. - results: Once you run CORNIFER, the results will be placed here. It currently has an example output for your reference.
Note that all the latency measurements are synthetic.
- Clone the repository.
- Run
python cornifer.py -s <topology_size> -n <topology_number>
to find the virtual WAN placement of topology of sizetopology_size
and variationtopology_number
. Eg: Runningpython cornifer.py -s 5 -n 1
with find placement for topology_5_1.csv. This finds placement forl_optimal
,k_optimal
,mean_k
mode, and writes the output under results/{mode}/topology_{size}_{number}.