ldacs-greedy-k-hop-simulator
Science Score: 49.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 3 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.7%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: ComNetsHH
- License: lgpl-3.0
- Language: Python
- Default Branch: main
- Size: 1.1 MB
Statistics
- Stars: 1
- Watchers: 4
- Forks: 0
- Open Issues: 0
- Releases: 4
Metadata Files
README.md
LDACS-Greedy-K-Hop-Simulator
Copyright and License
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.
Overview
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.
Components
- 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.
Installation
Clone the repository and set up the simulation environment with the following commands:
bash
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
Configuration of Environment Variables for OMNeT++
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
~/.bashrcor~/.zshrc:bash 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: ```bash cd omnetpp-5.6.2/ WORKDIR=$(pwd) export PATH=$(pwd)/bin:$PATH
System Dependencies
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:
bash
sudo apt-get install dvipng
Scenario Evaluation Guide
Average PDR and HC with varying Equipage Fractions
Overview
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.
Targets and Execution
You can execute these simulations either locally or on a High-Performance Computing (HPC) environment, depending on your available resources and needs.
Local Execution
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:
bash
cd scenarios/results
make greedy-forwarding-equipageFraction-A2G
High-Performance Computing (HPC) Execution
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 thesbatchcommand.
Example command to run all simulations on HPC:
bash
cd scenarios/results
make run-all-simulations-from-hpc-equipageFraction
Results and Analysis
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:
bash
cd scenarios/results
make -j16 random-generate-all-equipageFraction-csv
make plot-equipage-fraction-metrics
Average Capture Ratio with varying Equipage Fractions
Overview
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.
Targets and Execution
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:
bash
cd scenarios/results
make run-average-khop-neighbors-simulations
Owner
- Name: Institute of Communication Networks
- Login: ComNetsHH
- Kind: organization
- Location: Hamburg, Germany
- Website: https://www.tuhh.de/comnets
- Repositories: 41
- Profile: https://github.com/ComNetsHH
Institute of Communication Networks (ComNets) at Hamburg University of Technology (TUHH)
GitHub Events
Total
- Watch event: 1
Last Year
- Watch event: 1