Copyright (C) 2024 Musab Ahmed, Konrad Fuger, Institute of Communication Networks, Hamburg University of Technology, Hamburg, Germany
This program is free software: you are free to redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this program. If not, see GNU Licenses.
The LDACS-Greedy-K-Hop-Simulator is an open-source simulation model developed to enhance and evaluate geographic greedy routing in sparse LDACS air-to-air networks. It specifically simulates the application of a geographic greedy routing protocol that leverages k-hop neighborhood information. The simulator evaluates three distinct methods for selecting k-hop subsets: a random method, Farthest First Traversal (FFT), and Enhanced Farthest First Traversal (EFFT). These methods are tested within simulated French airspace scenario, allowing for comprehensive analysis of routing efficiency and the impact of different neighbor selection strategies on network performance. The simulation is implemented using OMNeT++ and Python, ensuring detailed and scalable simulation capabilities. Additionally, it is compatible with HPC environments using Slurm, making it suitable for large-scale simulation tasks.
- LDACS Greedy K-Hop Routing: Implements the greedy routing algorithm with a subset of k-hop neighborhood information for efficient forwarding in sparse environments.
- LDACS Dijkstra Routing: Implements the Dijkstra's shortest path routing algorithm which serves as the upper bound for the performance.
- LDACS Abstract TDMA MAC: Models an abstract LDACS air-to-air TDMA-based MAC protocol.
- LDACS Abstract Radio: Abstract model of LDACS radio communications for accurate air-to-air transmission simulation.
Clone the repository and set up the simulation environment with the following commands:
git clone https://github.com/ComNetsHH/LDACS-Greedy-K-Hop-Simulator.git
cd LDACS-Greedy-K-Hop-Simulator
bash install.sh # Installs all dependencies and sets up necessary submodules
To run simulations with OMNeT++, you need to ensure that the OMNeT++ binaries are included in your system's PATH. You have two options:
-
Permanent PATH Configuration: Add OMNeT++ to your system's environment variables permanently:
- For Linux/MacOS, add the following line to your
~/.bashrc
or~/.zshrc
:export PATH="/path/to/omnetpp-5.6.2/bin:$PATH"
- For Linux/MacOS, add the following line to your
-
Temporary PATH Configuration: You can also configure the PATH temporarily for each session where you run simulations:
cd omnetpp-5.6.2/ WORKDIR=$(pwd) export PATH=$(pwd)/bin:$PATH
Before running the project, ensure you have all necessary system dependencies installed. For Ubuntu/Linux users, dvipng
is required for rendering plots with Matplotlib when LaTeX is used. Install it using the following command:
sudo apt-get install dvipng
In this experiment, we examine the impact of varying equipage fractions on the average packet delivery ratio and hop count. The equipage fraction, denoted by ρ, represents the proportion of aircraft equipped with LDACS. This analysis helps in understanding how different levels of equipages can affect the reliability and effectiveness of the Greedy-1, Greedy-FFT, Greedy-EFFT, and Greedy-Random routing algorithms.
You can execute these simulations either locally or on a High-Performance Computing (HPC) environment, depending on your available resources and needs.
To run the simulations locally on your PC, use the following targets in the Makefile:
greedy-forwarding-1hop-equipageFraction-A2G
: Runs the Greedy-1 simulation for different equipage fractions.greedy-forwarding-2hop-equipageFraction-A2G
: Runs the Greedy-2 simulation for different equipage fractions.greedy-forwarding-equipageFraction-fft-m-4-A2G
: Runs the Greedy-FFT algorithm with m=4.greedy-forwarding-equipageFraction-efft-m-4-A2G
: Runs the Greedy-EFFT algorithm with m=4.greedy-forwarding-equipageFraction-random-m-4-A2G
: Runs the Greedy-Random algorithm with m=4.greedy-forwarding-equipageFraction-fft-m-6-A2G
: Runs the Greedy-FFT algorithm with m=6.greedy-forwarding-equipageFraction-efft-m-6-A2G
: Runs the Greedy-EFFT algorithm with m=6.greedy-forwarding-equipageFraction-random-m-6-A2G
: Runs the Greedy-Random algorithm with m=6.dijkstra-equipageFraction-A2G
: Runs the Dijkstra algorithm.
Similarly, add targets for m=6 variants if applicable.
Example command to run a specific simulation:
cd scenarios/results
make greedy-forwarding-equipageFraction-A2G
For large-scale simulations, using an HPC environment is recommended. This allows for faster execution times and handling of more extensive data sets.
run-all-simulations-from-hpc-equipageFraction
: This target submits batch jobs for all Greedy Forwarding scenarios to an HPC system using thesbatch
command.
Example command to run all simulations on HPC:
cd scenarios/results
make run-all-simulations-from-hpc-equipageFraction
Targets in the Makefile that analyze the results:
random-generate-all-equipageFraction-csv
: Creates CSV files for further analysis.plot-equipage-fraction-metrics
: Generates detailed plots for Packet Delivery Ratio (PDR) and Hop Count from the CSV files.
Example commands:
cd scenarios/results
make -j16 random-generate-all-equipageFraction-csv
make plot-equipage-fraction-metrics
The Average Capture Ratio experiment investigates the efficiency of the three proposed selection methods (Random, FFT, EFFT) within a network by measuring the proportion of 2nd and 3rd order neighbors identified by each selection method against the total number of neighbors present. This ratio is calculated for each node and then averaged across the entire network to evaluate the performance of each method under different levels of LDACS equipage.
You can execute this simulation locally on your PC.
To run the simulations locally on your PC and plot the results, use the following targets in the Makefile:
run-average-khop-neighbors-simulations
: Run simulations and plot the results of the average number of unique k-hop neighbors from the local PC.
Example commands:
cd scenarios/results
make run-average-khop-neighbors-simulations