Juliusz has problems sending this message to our list, hence I forward it for
---------- Forwarded Message ----------
Subject: [Babel-users] Wireless Battle Mesh -- a Babel perspective
Date: Thursday 16 April 2009
From: Juliusz Chroboczek <Juliusz.Chroboczek(a)pps.jussieu.fr>
CC: tmplab(a)lists.tmplab.org, bh(a)udev.org, b.a.t.m.a.n(a)open-mesh.net
WBM was good fun, as you can gather from Massoud's e-mail. There were
people from Paris, Vienna, Berlin and Brussels. It was a chance to meet
active implementers of three routing protocols (Babel, OLSR and Batman).
We spent four days flashing routers, measuring packet loss between a cave
and a railway track, and estimating routing protocol overhead. We had
a few chats about routing protocols, did a couple of impromptu presenta-
tions, watched the pretty pictures generated by three distinct network
graphing packages, drank too much beer, drank too much coffee, and ate
hallal sausages. We also looked at the passing trains.
I've had some extended chats with one of the Berlin people, and learnt
quite a lot about Batman. I'm convinced now that Batman is loop-free, I'm
also convinced that it has glacially slow convergence, and that the two
properties are linked -- any tweak to make Batman converge faster will
cause loops. (I'm willing to exchange the proof of loop-freedom for a pint
of good German beer.)
Some interesting developments on the OLSR side -- they appear to be
developing a link-state routing protocol that is almost, but not quite,
entirely unlike OLSR. A lot of interesting anecdotes about OLSR, too.
Together with one of the Belgian guys, we implemented a variant of Babel
that takes link diversity into account (using a gross simplification of the
MIC metric). In the particular configuration that we implemented (six
Foneras running on three different channels and pairwise connected by wired
Ethernet), the results are dramatic -- the algorithm is able to choose the
maximum diversity route, which leads to a 5-fold improvement in transfer
rate (Benjamin, do you have the exact figures?). The code we used for
testing is somewhat hackish, I need to think about it some more before
I can include such an algorithm within the Babel trunk.
I found two bugs in Babel, both related to retractions. First, retractions
were not properly sent after a redistributed route was removed; second,
resending of retractions was broken, and a retraction would only get sent
twice (rather than the expected 1 minute with exponential backoff). Both
bugs have been fixed in the Darcs tree, what will become Babel 0.95 as soon
as it's tested.
I've also seen one packet that looped. Just the one packet, granted, but
that is not supposed to happen. According to Murphy's law, I wasn't
capturing the traffic at the time, and I've never been able to reproduce it
again. I've spent much of today eyeballing the code, and I'm fairly
positive loops don't happen in Babel. I'm still worried, though.
A rather productive week-end, altogether, were it not for the fact that
I've been sick with the flu for two days now. I strongly suspect my flu
came from Vienna.