Emulation Environment

To give an answer to the often asked question "How to test/evaluate/debug mesh network protocols?", this document explains a virtual machine setup which can be used to test batman-adv in a controlled environment. The idea is to use QEMU (instead of pure simulation systems like NS-2) to run an unmodified Linux system with the unmodified source code as it is used in real world setups. Besides B.A.T.M.A.N., you could evaluate any routing protocol.

A simple setup is shown first and various extension and debugging helpers are explained later.


The test stack consists of the following components:

  • Host running the virtual instances
  • virtual instances (cloned) from a single image
  • virtual network to allow commmunication between the virtual instances
  • various debugging tools
  • optional external devices and services

Virtual Instances

The main components of the testing setup are the virtual instances. Various images can be used to create them. There is not a single image for all tasks but the right one has to be chosen.

Advanced virtual networks

The default virtual network is only creating a single broadcasting domain using a bridge. This cannot be used to simulate interesting topologies. More advanced techniques can be used to extend or replace the bridge to still achieve a reasonable setup

Debugging helpers