francescoraves483 / LaMP_LaTe

LaTe is a flexible, client-server Latency Tester, based on the custom LaMP application layer protocol, for Linux. This repository is also the home for the custom LaMP protocol specifications.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

powered by...

LaTe - Flexible, client-server, multi-protocol* Latency Tester, based on the custom LaMP protocol (Latency Measurement Protocol) and running on Linux - version 0.1.7-beta-development

This repository is the main one for what concerns both LaTe and the LaMP custom protocol, including its specifications.

As we are still in a beta stage, we highly welcome any contribution, improvement, bug report or suggestion, both to LaTe and to the LaMP specifications. Other than using GitHub, you can freely write to francescorav.es483@gmail.com: we will try to reply you as soon as possible. Thank you!

You can find the LaMP specifications and the full LaTe documentation here: https://francescoraves483.github.io/LaMP_LaTe/

A simple Makefile is provided. This file can be used to compile LaTe in the Linux system in which this repository was cloned, with gcc. Any improvement to this file is highly welcome.

Additional targets are also defined; in particular:

  • compilePCdebug, to compile for the current platform, with gcc and the flag -g to generate debug informations, to be used with gdb.
  • compilePCfull, to compile an "extended" version of LaTe supporting also the AMQP 1.0 protocol (option -a), thanks to the Qpid Proton library. In order to use this target and compile LaTe with the AMQP 1.0 support, you need to install Qpid Proton C first (it can be downloaded here. To install it, after extracting the .tar.gz archive, you can refer to the instructions contained in the INSTALL.md file. Tested with versions 0.30.0 and 0.31.0.).
  • compilePCfulldebug, as compilePCfull, but adding the -g flag to generate debug informations, to be used with gdb.
  • compileAPU, as we also used LaTe to perform wireless latency measurements on PC Engines APU1D embedded boards, running OpenWrt, we defined an additional target to cross-compile LaTe for the boards. This command should work when targeting any x86_64 embedded board running OpenWrt, after the toolchain has been properly set up (tested with OpenWrt 18.06.1). If you want to cross-compile LaTe for other Linux-based platforms, you will need to change the value of CC_EMBEDDED inside the Makefile with the compiler you need to use.
  • compileAPUdebug, as before, but with the -g flag to generate debug informations for gdb.

The additional Makefile_termux makefile can be used when building the LaTe version supporting AMQP on a non-rooted Android device, using Termux. When installing Qpid Proton, you can choose to install it inside /data/data/com.termux/files/home/libs, which will make root privileges unnecessary when running make install. This makefile, when running make -f Makefile_termux compilePCfull will look for Qpid Proton inside /data/data/com.termux/files/home/libs, allowing you to compile also the full version of LaTe. In this particular case, before launching LaTe, after compiling it, remember to add the new library path to LD_LIBRARY_PATH:

export LD_LIBRARY_PATH=/data/data/com.termux/files/home/libs

Please note that in order to compile Qpid Proton on Android, you may need to manually patch the library. For your conveniency, an already patched QPid Proton C library (version 0.30.0) is available here.

LaTe has been extensively tested on Linux kernel versions 4.14, 4.15, 5.0 and 5.4 and it is currently using the Rawsock library, version 0.3.4.

How to compile

Clone this repository (--recursive is needed in order to clone the Rawsock library submodule too):

git clone --recursive https://github.com/francescoraves483/LaMP_LaTe.git
cd LaMP_LaTe
git checkout development --recurse-submodules

Compile:

make

The executable is called LaTe.

* In the current version, only LaMP over IPv4 and UDP (and LaMP over AMQP 1.0, via the additional Qpid Proton module, when LaTe is compiled with compilePCfull) is supported, but we plan to implement other protocols in the future.

Docker images

Docker images are also available, launching a LaTe server in daemon mode (see the documentation for more information). You can download them from DockerHub.

At the moment two images are available: one for testing over wired interfaces and one for testing over wireless interfaces.

Warning: Docker images does not include, for the time being, the latest version of LaTe.

Please have a look also at disclaimer.txt, as this work is also included in the European Union Horizon 2020 project 5G-CARMEN co-funded by the EU

About

LaTe is a flexible, client-server Latency Tester, based on the custom LaMP application layer protocol, for Linux. This repository is also the home for the custom LaMP protocol specifications.

License:GNU General Public License v2.0


Languages

Language:C 99.5%Language:Makefile 0.5%