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.
Architecture
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