[Babel-users] Babelz: frequency-aware routing

Juliusz Chroboczek jch at pps.jussieu.fr
Fri Feb 4 11:42:34 UTC 2011


Dear all,

I've done some work over the last days on babelz.  While it needs more
testing, it appears to be running fine.

Pro memoria, babelz is the branch of Babel that performs frequency-aware
routing; please see [1] for an example of why this is important.  (Many
thanks to Zoobab, by the way, for explaining that to me at WBMv1.)


0. Getting babelz
*****************

darcs get http://www.pps.jussieu.fr/~jch/software/repos/babelz/


1. Using babelz
***************

Just replace your babeld binary with the one from the babelz branch, and
add the "-z3" option to the command line.  For example

  babeld -z3 eth0 wlan0 tun0


2. Checking things
******************

If you run babeld with "-d2", for each interface you'll see a message like

  Upped network wlan0 (wireless, cost=256, channel=11, IPv4).

Check that the channel makes sense.

If you produce a debugging dump ("-d1" or "kill -USR1") on a node that
is more than two hops away from a wireless node, you'll see information
about the channels taken by a route -- for example

  2001:660:3301:8063::33/128 metric 97 refmetric 1 id 02:0e:35:ff:fe:a5:36:e1 seqno 24394 chan (6) age 348 via alpha neigh fe80::4848:97ec:a01:4d02 (installed)

The entry "chan (6)" means that the route is at least two hops long, and
that the segment beyond the first hop uses channel 6 only.  (The channel
of the first hop is not stored with the route, it's determined on the
fly when needed.)  The special value 254 is used to mark interfering
hops (see below).


3. Tweaking things
******************

Some links are "far away", in the sense that nodes on one side of the
link cannot possibly interfere with nodes on the other side.  It is good
to tell babel about such links:

  interface tun0 faraway true

If for some reason Babel is unable to detect the channel of a given
interface, you may configure it manually:

  interface eth1 channel 42

Instead of the channel number, you may use the special values "interfering",
which means that a given hop interferes at all frequencies and should be
avoided, or "noninterfering", which means that a hop doesn't interfere
with any other hop (this is the default for wired links).


4. Hybrid networks
******************

Babelz interoerates with plain babel, but the results in a mixed network
will be suboptimal.  Nodes running with "-z3" will prefer other "-z3"
nodes, avoiding legacy nodes to the extent possible; in general, this
will lead to longish routes.

If you're running a hybrid network, "-z2" may be a better bet.

--Juliusz

[1] http://www.meshdynamics.com/performance-analysis.html



More information about the Babel-users mailing list