Skip to content

Latest commit

 

History

History
71 lines (49 loc) · 3.87 KB

README.md

File metadata and controls

71 lines (49 loc) · 3.87 KB
            _   _       _
 _ __   ___| |_| | __ _| |__
| '_ \ / _ \ __| |/ _' | '_ \
| | | |  __/ |_| | (_| | |_) |
|_| |_|\___|\__|_|\__,_|_.__/

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 [email protected]: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:

  • netlab version: Shows the current version number of netlab.
  • netlab test [filename]: Tests the given TOML file for errors but does not generate any output files.
  • netlab generate [filename] (or netlab gen [filename] for short): Loads the given TOML file and generates output files for all targets.

There are also some flags which might interest you:

  • -h --help: shows help (same as netlab help)
  • -v --version: shows the version (same as netlab version)
  • -d --debug: enabled debug output/logging
  • -o --overwrite: overwrites existing files (generate only)
  • -f <name> --folder <name>: outputs to the specified folder name instead of the default output (generate only)
  • -t <target> --target <target>: outputs for the specified target format. If specified, the targets definition from the TOML file will be ignored. Can be specified multiple times for multiple targets. Possible values are for example core, coreemu-lab and the-one. (generate only)
  • -b <path-to-bonnmotion> --bonnmotion <path-to-bonnmotion>: path of the BonnMotion executable to run, if not installed as bm in $PATH/%Path%. (generate only)

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.