Wireless Battle of the Mesh v7

Added by Pau Escrich over 10 years ago

The "Wireless Battle of the Mesh" is an event that aims to bring
together people from across the globe to test the performance of
different routing protocols for ad-hoc networks, like Babel,
B.A.T.M.A.N., BMX, OLSR, and 802.11s. Of course, new protocols (working
on OpenWRT) are always welcome!

This year, version 7 of the event will take place from Monday 12th till
Sunday 18th of May at the sublab ( in Leipzig, Germany.

The qMp team endorses and supports the Battle of the Mesh v7 because of
the efforts made by its community to advance the field of wireless mesh
networking and foster the development of grassroots community networks.
The qMp project will support the event by:

  • coming to the event and convince others to do the same
  • help to set up the testbed and analyze measurement results
  • give talks about advancement of our system and it's usage in communities

Many other communities endorse and support the Wireless Battle of The
Mesh v7, an up to date list of the endorsers of the Battlemesh v7 can be
found at the main Battlemesh website:

Join us!

New qMp map tool

Added by Pau Escrich almost 11 years ago

The qMp firmware has a new map agent based on the
Altermesh map tools which can be found here [1]. The difference with the
one included in qMp (b6m) is that this second one is distributed and
altermap is centralized and needs a central server to work.

It is very simple, easy to use and it consumes a very few amount of
resources in the node, so I have thought it would be nice to have it in
parallel with b6m. For quick deployments where nodes are moving, using
it does not have any sense but b6m yes.

To use it you need to have the last qMp version. Once it boots, every
hour it will send some information about the node to the central server
(which is currently managed by AlterMundi people). Execute
"altermap-agent" to force the refresh of the information.

Then the node owner must go to [3], select the network and click
the button "Add node". In the field have to be introduced the exact
hostname of the node (i.e GSalcolea46-fs), and then pick the map
position and you are done!!

I hope you enjoy it!


qMp visualization tool

Added by Pau Escrich about 11 years ago

Dr. Llorenç Cerdà from UPC is studying a mesh network deployed in Barcelona using qMp nodes.
He developed a very interessting visualization tool which shows the current state (1h updated) of the network.

It can be consulted from the Internet:

And from community network:

The code is under aGPLv3 and can be found here:

Wireless Battle of the Mesh v6

Added by Pau Escrich about 11 years ago

This year the event will take place from Monday 15th till Sunday 21st of April at the University of Aalborg, Denmark.

We explicitly endorse and support the Battle of the Mesh v6 because of the efforts made by its community to advance the field of wireless mesh networking and foster the development of grassroots community networks. We hope we will be able to share our experience in integrating optical fibre in community networks, customizing OpenWRT firmware, and in participating in international projects.

We will support the WBMv6 by:

  • helping to promote the event
  • members of qMp have already confirmed their attendance
  • give talks about advancement of our project
  • help setting up the firmware and testbed for protocol testing

Many other communities and projects endorse and support the Wireless Battle of The Mesh v6, an up to date list of the endorsers of the Battlemesh v6 can be found at the main Battlemesh website.

GSOC and qMp

Added by Pau Escrich over 11 years ago

In this last Google Summer of Code (2012) a project related with qMp was accepted and funded under to umbrella of the Freifunk organization0.

The GSOC proposal1 was sent by Joel Espunya, a computer's student and folk. It was about modify and extend the qMp system to work with the Guifi.net2 community network. The Quick Mesh Project is designed to use dynamic mesh protocols like OLSR, BMX6 and Babel. However the community (and also many others) are using BGP3, at least to interconnect the different clouds or zones.The main goal of this project was to add BGP support to our system. When we started doing the working schedule/plan, we realized there were two main points:

  1. Write an abstraction layer to execute BGP functions
  2. Find/customize some software to routes exchange (between dynamic protocols and BGP)

First stage

The Quick Mesh Project can be defined as an abstraction layer of OpenWRT which includes many features to make the job easier (web interface, autoconf. system, internet detect, etc.). Right now the core of this abstraction layer is written in shell script. You can execute commands like "qmpcontrol configure_network" to get the network automatically configured according some heuristics and a few configuration placed on "/etc/config/qmp".
However, some months ago, qMp developer team decided to rewrite this abstraction layer to LUA4. Why LUA? Because it is a programming language very tiny, optimized and also powerful. We are working in embedded hardware, which can be a 180MHz MIPS with 16MB of RAM and 4MB flash. The LUA interpreter and standard library of OpenWRT only take 90KB. So it fits perfectly in this environment. LUA has also been the choice of LUCI5, and it has a very nice API which can be reused.

Coming back to the GSOC project, instead of writing the BGP functions using Shell Script, we started the new LUA API. Not to develop it completely, but to have the basic features needed by the project. Here6 can be found a list of modules and functions of the library. And here7 can be found the code implemented. As can be seen there is a quagga module. Quagga8 is a software routing suit which includes a BGP daemon. It is a kind of standard suit, most of the current routing protocols have support for it, so all of them can easy exchange routes. At this point we started looking for the best way to use Quagga. Then we entered in the second stage.

Second stage

Quick Mesh Project uses BMX69 as main protocol and OLSR/BABEL/any as secondary (backup). The problem with BMX6 is that it didn't has support for Quagga. Then, instead of doing the routing exchange using some other crappy system, we decided to write a Quagga plugin for BMX6. However, Joel (the student) realized that it was out of his scope. He was not familiar with BMX6 implementation and neither with Quagga. So I (as a mentor) asked Axel Neumann for participate in the project. He was one of the B.A.T.M.A.N developers, and right now the BMX6 main maintainer. He accepted to contribute with us and made a very great job, the code can be found here10 and the documentation here11. At the end he received half of the funding.


So, at the end we have the Quagga plugin to automatic routes exchange and the LUA Quagga/BGP API to interact with the qMp system.

Right now (after the GSOC) we are still working on it. We are extending the API also to Network, WiFi, etc. To be used in the next release based on OpenWRT Attitude Adjustment12 which will include also BGP support. It will suppose an essential feature for the qMp/ integration and also for other network communities.




    Also available in: Atom