- 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}, wheresizerepresents the number of metro locations in the topology. We have 10 variations of each topology size, andnumberrepresents 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_sizeand variationtopology_number. Eg: Runningpython cornifer.py -s 5 -n 1with find placement for topology_5_1.csv. This finds placement forl_optimal,k_optimal,mean_kmode, and writes the output under results/{mode}/topology_{size}_{number}.