A competitive evaluation framework for defense protocols in Mobile Ad Hoc Environments (MANETs). Complete code will be available soon.
A competitive evaluation framework for defense protocols in Mobile Ad Hoc Environments (MANETs).
# Content
# Content
- Full C++ NS-3.36 code for the lightweight protcol, the DST protocol and the attack protocol
- Full C++ NS-3.36 code for the lightweight protcol, the DST protocol and the Velocity-threshold protocol (Coming Soon)
- Slurm file generation to automate NS3 simulations in High Performance Compute facilities (Like IRIDIS at Southampton, UK)
- Full C++ NS-3.36 code for each grey hole attack type (Probabilistic, Time-Based and Precusor-Based) (Coming Soon)
- Python Code to extract the NS3 simulation results.
- Slurm file generation to automate NS3 simulations in High Performance Compute facilities, Like IRIDIS at Southampton, UK.
- Python Code for bootstrapping and final results.
- Python Code to run MANET-Rank
# Requirements
# Installation
## Running MANET-Rank on Pre-processed data
To run MANET-Rank with the pre-processed data simple run:
```python MANET-Rank.py "results/"```
By default, this will create a DPDR/ folder in the "results/" folder which will hold 5 types of files:
- histogram_*.png files: these graphs will show the regret distributions for all strategies, per environment.
- first_placed_rank.csv: this will show the winning strategy for all environments.
- ranked_list_*.csv: this will show the rankings for each environment for MANET-Rank
- orig_first_placed_rank.csv: this will show the winning strategies for all environments (without bootstrapping).
- orig_ranked_list_*.csv: this will show the rankings for each environment for MANET-Rank (without bootstrapping).
If you ran MANET-Rank.py without editing the file, you would have created DPDR strategies, in the main section of MANET-Rank.py you can see a few commented lines of code:
- _processed_file_dir is the directory where the processed file is (specified at command line level).
- "Attack_DPDR/" is the folder name that we want to create
- "DPDR" is the metric of interest
- inversion=True/False mutliplies the performance metric by -1 if needed (in the case of EED, the performance metrics inside the CSV are already negative)
- attacker_analysis=True/False switches to the attack perspective, which will produce rankings of attack strategies.
# File Explanation
- ConfigFileCreate.py: This python file, in conjunction with ConfigFileHelper.py and StrategyHelper.py, will take a JSON file of attacker/defender strategies in combination with environment paramters to produce configuration files for the NS3 software.
- GenerateCommands.py: This python file generates slurm files for HPCs using hpc_template.slurm and master_template.slurm as a base.
- PostProcess.py: This python file takes a large amount of .csv files (generated from the NS3 software) and combines them into one csv file "processed_data.csv".