================================================================================ Readme for reproducibility submission of paper ID #2 ("Efficient, Scalable, and Resilient Vehicle-Centric Certificate Revocation List Distribution in VANETs"). A) Source code info Repository: N/A Programming Language: C, C++, Python Additional Programming Language info: N/A Compiler Info: - gcc/g++ - (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 - Python 2.7, Python 3 Packages/Libraries Needed: - OpenSSL v1.0.2g - Boost C++ libraries v1.58.0.1 - Omnetpp 5.0 - sumo-0.25.0 - veins 4.4 B) Datasets info Repository: LuST dataset (https://github.com/lcodeca/LuSTScenario/releases/tag/v1.0) Data generators: N/A C) Hardware Info C1) Processor (architecture, type, and number of processors/sockets) - Host: 8 x Intel(R) Xeon(R) CPU E5-1620 v2 @ 3.70GHz - Virtual Machine: 4 vCPUs C2) Caches (number of levels, and size of each level) - L1d cache: 32K - L1i cache: 32K - L2 cache: 256K - L3 cache: 10240K C3) Memory (size and speed) - Host: 4 * 4GiB DIMM DDR3 Synchronous 1600 MHz (0,6 ns) - Virtual Machine: 4096 MB C4) Secondary Storage (type: SSD/HDD/other, size, performance: random read/sequential read/random write/sequential write) - Type: HDD - Size: 60G - Sequential read/write - 29324/29234 KB/s - Random read/write - 725/730 KB/s D) Experimentation Info D1) Scripts and how-tos to generate all necessary data or locate datasets N/A D2) Scripts and how-tos to prepare the software for system Download the VM appliance from the following link: https://kth.box.com/v/WisecRep18 Import WisecRep18.ova into your VirtualBox (File -> Import Appliance) to create an Ubuntu 16.04 (64-bit) machine with all the necessary material for ACM WiSec 2018 Reproducibility Label. Before starting the VM, you need to allocate at least 10 CPUs and increase its memory to at least 16GB (Right click -> settings -> System -> Processor/Base Memory). For most of the experiments, 16GB of memory is enough. However, one experiment (corresponding to Fig9a) needs higher memory (32GB is recommended). Login details for the Ubuntu machine are as follows: login: wisec password: stockholm D3) Scripts and how-tos for all experiments executed for the paper # To remove the current simulation data cd ~/Utilities/VPKISimulations/simulations/results/Wisec-Rep-Label/ ./cleanall.sh # To validate the deletion of the simulated data, plot all figures and verify if they are empty. Note that Fig3, Fig4, and Fig10a are plotted without simulation results. cd ~/Utilities/VPKISimulations/simulations/WisecRep18/ ./plotall.sh # Figures could be found at: ~/Utilities/VPKISimulations/simulations/WisecRep18/Figures #Open a new terminal to run the SUMO Module; this needs to be executed only once. cd ~/Utilities/veins-veins-4.4/ python2.7 sumo-launchd.py --verbose --logfile logfile -vv -c sumo Note: By default, the scripts to execute the experiments utilize all available CPUs; it is recommended to allocate as many as CPUs to the VM in order to expedite concurrent executions. In fact, there are 106 processes to be executed. The number of processes per figure are: Fig5-Fig7-Preparation: 2 processes, each takes 3-4 days. Fig5: 6 processes, each takes several 3-4 days. Fig6a: 60 processes, each takes 4-5 days. Fig6b: 5 processes, each takes several hours. Fig7: 2 processes, each takes several weeks. Fig8a: 6 processes, each takes 2-3 days. Fig8b: 6 processes, each takes several hours. Fig9a: 6 processes, each takes 2-3 days. Fig9b: 6 processes, each takes several hours. Fig10b: 7 processes, each takes several weeks. For example, with 12 CPUs, the experiments corresponding to Fig5 (6 processes) and Fig8b (6 processes) could be run in parallel. Note: The experiments to plot Fig7b and Fig10b are time-consuming (a couple of weeks). However, during their execution, the corresponding figures can be plotted to see their convergence. For example, the experiments for Fig7b takes several weeks to accomplish. By running the experiments for a few days, the cumulative probability of the results converges to the results, plotted in the paper. Plotting Fig10b during its execution shows its convergence over system time. In short, by running any of the experiments for shorter time, the figures can be plotted, but they might not be identical with the ones plotted in the paper. (In case of stopping a python script, the actual execution will not be killed; you can kill them manually [kill -9 pid]). Note: The experiments to plot Fig9a need at least 30GB memory. If affording such a requirement is not possible, you can execute the scripts with fewer number of CPUs, i.e., rather than executing all such memory-consuming tasks in parallel, you can run them with fewer CPUs. To do so, you can pass an argument to the script; for example, "#python3 ./rep-fig9a.py" utilizes all available CPUs and "#python3 ./rep-fig9a.py -n 3" utilizes up to 3 CPUs to execute this script. Note: In order to plot Fig5 and Fig7, the "Preparation Script" should be executed first. In order to perform the experiments corresponding to a specific figure, open a new terminal and run the following commands: #Preparation Script for Fig5 and Fig7: cd ~/Utilities/VPKISimulations/simulations/ export PATH=$PATH:~/Utilities/omnetpp-5.0/bin python3 ./rep-fig5-fig7-prep.py #For Fig5: cd ~/Utilities/VPKISimulations/simulations/ export PATH=$PATH:~/Utilities/omnetpp-5.0/bin python3 ./rep-fig5.py #For Fig6a: cd ~/Utilities/VPKISimulations/simulations/ export PATH=$PATH:~/Utilities/omnetpp-5.0/bin python3 ./rep-fig6a.py #For Fig6b: cd ~/Utilities/VPKISimulations/simulations/ export PATH=$PATH:~/Utilities/omnetpp-5.0/bin python3 ./rep-fig6b.py #For Fig7: cd ~/Utilities/VPKISimulations/simulations/ export PATH=$PATH:~/Utilities/omnetpp-5.0/bin python3 ./rep-fig7.py #For Fig8a: cd ~/Utilities/VPKISimulations/simulations/ export PATH=$PATH:~/Utilities/omnetpp-5.0/bin python3 ./rep-fig8a.py #For Fig8b: cd ~/Utilities/VPKISimulations/simulations/ export PATH=$PATH:~/Utilities/omnetpp-5.0/bin python3 ./rep-fig8b.py #For Fig9a: cd ~/Utilities/VPKISimulations/simulations/ export PATH=$PATH:~/Utilities/omnetpp-5.0/bin python3 ./rep-fig9a.py #For Fig9b: cd ~/Utilities/VPKISimulations/simulations/ export PATH=$PATH:~/Utilities/omnetpp-5.0/bin python3 ./rep-fig9b.py #For Fig10b: cd ~/Utilities/VPKISimulations/simulations/ export PATH=$PATH:~/Utilities/omnetpp-5.0/bin python3 ./rep-fig10b.py D4) Scripts on generating figures #To plot all figures cd ~/Utilities/VPKISimulations/simulations/WisecRep18/ ./plotall.sh # To plot a specific figure #Fig3 cd ~/Utilities/VPKISimulations/simulations/WisecRep18/ python3 ./plot-figs.py -f fig3 #Fig4 cd ~/Utilities/VPKISimulations/simulations/WisecRep18/ python3 ./plot-figs.py -f fig4 #Fig5 cd ~/Utilities/VPKISimulations/simulations/WisecRep18/ python3 ./plot-figs.py -f fig5 #Fig6 cd ~/Utilities/VPKISimulations/simulations/WisecRep18/ python3 ./plot-figs.py -f fig6 #Fig7 cd ~/Utilities/VPKISimulations/simulations/WisecRep18/ python3 ./plot-figs.py -f fig7 #Fig8 cd ~/Utilities/VPKISimulations/simulations/WisecRep18/ python3 ./plot-figs.py -f fig8 #Fig9 cd ~/Utilities/VPKISimulations/simulations/WisecRep18/ python3 ./plot-figs.py -f fig9 #Fig10 cd ~/Utilities/VPKISimulations/simulations/WisecRep18/ python3 ./plot-figs.py -f fig10 # Figures could be found at: ~/Utilities/VPKISimulations/simulations/WisecRep18/Figures ================================================================================