This repo contains code for simulating the overhead in the system described in our VNC2018 paper "Guarding the Guards: Accountable Authorities in VANETs ".
- Published version
- Preprint version (free of charge)
The simulation implements the key dissemination protocol described in the paper. It is written in C++ and runs inside the Omnet++ simulator, using Veins to connect to SUMO.
For convinience and reproducibility, the environment is provided as a Dockerfile
docker
cd {project-dir}
docker build -t omsim .
docker run --env RUN_MODE=cmd -v "${PWD}"/code:/workspace omsim
xhost +local:docker
cd {project-dir}
docker run --net=host --cap-add SYS_ADMIN --env DISPLAY=$DISPLAY --volume="$HOME/.Xauthority:/root/.Xauthority:rw" -v "${PWD}"/code:/workspace --detach --memory-swappiness=0 omsim
When omnet opens, and you are prompted to select a workspace, select:
/workspace
Then choose to not import/install inet and examples. After that:
File -> Import
Select: General > Existing projects into workspace
Type in /workspace in "Select root directory"
Finish
Then:
Project -> clean
select "clean all projects"
clean
Then run project by right-clicking dissemination -> simulations -> omnetpp.ini and selecting Run As -> Omnet++ simulation
Install xquarts, then:
ip={your-ip}
docker build -t omsim .
/opt/X11/bin/xhost + $ip
docker run --net=host --cap-add SYS_ADMIN --env DISPLAY=$ip:0 --volume="/tmp/.X11-unix:/root/.Xauthority:rw" -v "${PWD}"/code:/workspace --detach omsim
Configure an X server as described in: https://somatorio.org/en/post/running-gui-apps-with-docker/
Then do as described for linux.
If you don't want to use the supplied docker container and instead run the code native, use the following install guides: