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