stg-tud / bp2022_netlab

The repository provides software that creates configuration files for the BonnMotion, CORE, coreemu-lab and The ONE programmes from a single TOML file.
MIT License
0 stars 0 forks source link
            _   _       _
 _ __   ___| |_| | __ _| |__
| '_ \ / _ \ __| |/ _' | '_ \
| | | |  __/ |_| | (_| | |_) |
|_| |_|\___|\__|_|\__,_|_.__/

bp2022_netlab

netlab helps you to quickly generate configuration files for network experiment softwares such as CORE, coreemu-lab and The ONE using a single TOML file. Its aim is to make your work easier, thus it handles annoying tasks such as generating IP addresses, movement patterns (using BonnMotion) and multiple parameterized runs.

netlab was developed by a group of five students for the Software Technology Group as part of a bachelor internship of the department of computer science at TU Darmstadt in winter term 2022/23.

Requirements

In order to generate movement patterns, BonnMotion version 3.0.1 or higher must be installed. It must either be available under the name "bm" (which is default) in your $PATH/%Path% or you must specify the path of the BonnMotion executable using the -b <path-to-bonnmotion> flag of netlab.

If you do not want to use our pre-built Releases you will also need go version 1.19 or higher installed.

Installation

To install netlab, you can either use the pre-built binaries provided here or build one yourself. To build from source, run these commands:

# HTTPS:
git clone https://github.com/stg-tud/bp2022_netlab.git netlab
# SSH:
git clone git@github.com:stg-tud/bp2022_netlab.git netlab

cd netlab

# Linux, macOS:
go build -o netlab main.go
# Windows:
go build -o netlab.exe main.go

Usage

netlab is a simple command line application. Thus you have to run it from a command line. Either install it to a path in $PATH (%Path% for Windows respectively) or run it inside the current folder, like so:

# installed in $PATH:
netlab

# in current folder:
./netlab

The usage itself should be pretty self-explainatory. You can always run netlab help or netlab help <command> for help on that.

Currently, these commands are supported:

There are also some flags which might interest you:

Configuration files

netlab uses TOML files for experiment configurations. For more information on how to create those, have a look at the Wiki. You can also find a few example files in the examples folder.