This repository contains the codebase for CAFE, designed to support research in context-aware vehicular networking. We have open-sourced this project under the GNU General Public License v2.0 to ensure the reproducibility of our published results and to encourage further academic exploration.
This project has been tested and verified on the following platforms:
- Ubuntu 22.04 (amd64)
- Ubuntu 24.04 (amd64)
sudo apt update
sudo apt-get install cmake python3 g++ libxerces-c-dev libfox-1.6-dev libgdal-dev libproj-dev libgl2ps-dev swiggit clone --recursive https://github.com/eclipse/sumo
export SUMO_HOME="$HOME/sumo"
mkdir -p sumo/build_config/cmake-build
cd sumo/build_config/cmake-build
cmake ../..
make -j$(nproc)Add the following to your ~/.bashrc:
export SUMO_HOME="$HOME/sumo"
export PATH=$PATH:"$SUMO_HOME/bin"Apply the changes:
source ~/.bashrcsudo apt install build-essential libsqlite3-dev libboost-all-dev libssl-dev git python3-setuptools castxmlgit clone https://github.com/solvedbiscuit71/CAFE.git
cd CAFE
CXXFLAGS="-std=c++17" ./waf configure --disable-python --disable-examples
./wafsudo apt install -y mercurial qtcreator qtbase5-dev qtchooser qt5-qmake cmake qtbase5-dev-toolscd netanim
make clean
qmake NetAnim.pro
makeTo recreate the results presented in the paper (specifically Table 4), run the provided scenario script:
python3 scripts/scene.pyThis will generate a result.csv file.
By default, the simulation includes context-aware logic. To replicate the broadcast flooding baseline, you must manually disable the geobroadcast logic:
- Open
src/ndnSIM/NFD/daemon/fw/caf-forwarder.cpp. - Comment out the relevant geobroadcast logic sections.
- Re-run
./wafand the simulation script.