Skip to content

The central piece of the LDACS MCSOTDMA Simulator, providing an installation script that downloads the other simulator components, defines simulation scenarios, result evaluation and graph creation.

License

Notifications You must be signed in to change notification settings

ComNetsHH/ldacs_simulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DOI

The L-Band Digital Aeronautical Communications System (LDACS) simulator provides an installation script for the simulator that downloads the other simulator components, defines simulation scenarios and provides result evaluation and graph creation.
Copyright (C) 2023  Sebastian Lindner, Konrad Fuger, Musab Ahmed Eltayeb Ahmed, Andreas Timm-Giel, Institute of Communication Networks, Hamburg University of Technology, Hamburg, Germany

This program is free software: you can 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 <https://www.gnu.org/licenses/>.

This repository is part of the L-Band Digital Aeronautical Communications System (LDACS) Air-Air (A/A) mode simulator that implements the proposed Medium Access Control (MAC) protocol "Multi Channel Self-Organized TDMA (MCSOTDMA)".

This repository provides an installation script for the simulator that downloads the other simulator components, defines simulation scenarios and provides result evaluation and graph creation.

Overview

Hi there! This is the main repository for all things MCSOTDMA-related.

The simulator is OMNeT++ v5.6.2, together with the inet framework v4.2.5. All custom code is C++, mostly in libraries. To track development on these, they are in their own repos. A wrapper integrates the different components into OMNeT++. All result evaluation and plotting is done with Python.

Installation

tl;dr: install cppunit (for unit testing) and pipenv (for Python-based graph creation) on your system, open install.sh and adjust the number of cores NUM_CPUS to use for compiling; then run ./install.sh if you're on Linux or ./install.sh mac if you're on Mac.

Long version: all simulator components are bundled together into one installation script install.sh. By passing mac as an argument to the install script, it downloads the Mac version of the OMNeT++ simulator instead of the Linux version; this is the only difference between Linux and Mac versions of this simulator. Please run it, and pay attention to the output. For example, it downloads the OMNeT++ simulator of the right version from GitHub. If this download via wget doesn't succeed, for example because GitHub's servers are beyond their capacity (you'll get a 503 error), then later parts of the script fail. This is a very simple Bash script, so peek inside, it's easy to understand, and there's no error recovery built-in, so please debug using common sense! Also cppunit is used for unit testing, so please install this, it is a rather common package and should be available through your package manager.

Result parsing and graph generation is done using Python in respective scripts in scenarios/results/. The packages that are required for this are installed in local pipenv environments, so make sure that you have pipenv available on your system!

Debug mode

By default, the simulator is compiled in release mode so that simulations run faster. To compile in debug mode, respective lines are commented-out in the install.sh. Comment them in if you need debug mode.

If you get errors, chances are high that some component is still in release mode: every LDACS simulator component, the OMNeT++ simulator itself and the inet framework must all be in debug mode.

Navigation

Code

All custom code lives under omnetpp-5.6.2/workspace/<component>. Except omnetpp-5.6.2/workspace/inet4, that's the a very slightly modified inet framework that comes with the OMNeT++ simulator. Note that the omnetpp-5.6.2/workspace folder is only populated after installation.

Simulations

All network scenarios live under scenarios. At first, you won't want to touch these files, but to see the nitty and gritty of the simulation setups, this is where you'll find it.

All results are generated from the scenarios/results folder. Please go there and read its readme after installation!

Simulator Components

The LDACS MCSOTDMA Simulator is composed of the following parts, which the install.sh downloads:

The OMNeT++ Simulator

v5.6.2 is downloaded from GitHub.com.

The INET Framework

v4.2.5 in a slightly modified version is downloaded from GitHub.com.

The glue Library

v1.1 is downloaded from Zenodo.org.

The RLC Library

v1.1 is downloaded from Zenodo.org.

The ARQ Library

v1.1 is downloaded from Zenodo.org.

The MCSOTDMA Library

v1.0 is downloaded from Zenodo.org.

The Channel Model

v1.0 is downloaded from Zenodo.org.

The Trace-Based App

v1.0 is downloaded from Zenodo.org.

The Wrapper Library

v1.1 is downloaded from Zenodo.org.

The modified GPSR Protocol

v1.0 is downloaded from Zenodo.org.

About

The central piece of the LDACS MCSOTDMA Simulator, providing an installation script that downloads the other simulator components, defines simulation scenarios, result evaluation and graph creation.

Resources

License

Stars

Watchers

Forks

Packages

No packages published