[Babel-users] Babel for use in a dense disconnected mesh network

Juliusz Chroboczek jch at pps.univ-paris-diderot.fr
Fri Jun 21 01:10:03 UTC 2013


> The system consists of a number of portable devices, one acting as
> a webserver/database server, one or more hand-held smart phones or
> tablets, and 10-100 measurement devices

10 or 100?

With 10 devices, ad-hoc mode will work fine.  With 100 devices all
within range, the amount of beaconing going on in ad-hoc could very
well make your mesh unstable.

Have you checked whether the handheld devices support ad-hoc?

> - The measurement devices would be placed 1-2 metres apart, either
>   in one or two rows or in a loop.

I'm curious about the application.

> At this point I am not sure whether an infrastructure mode or a mesh
> network would be better suited, so I have been experimenting with
> babel. The main issue with infrastructure mode would be that range
> could be an issue with only one access point.

I would use a backbone+access topology, using two frequencies.  More
about this below.

> I have had some success with a limited number of devices (9-12) in
> close proximity, but recent experiments with more devices (24-30)
> have caused an instability and now I have managed to break the mesh
> more frequently than I have in the past. I have a feeling that
> I have not configured babel or the wlan adapter appropriately for
> this number of devices, or that I may be running into the 802.11
> ad-hoc limitations.

Probably the latter.

> "Warning: bucket full, dropping packet to wlan0"
> "Warning: bucket full, dropping unicast packet to
> "Interface wlan0 has no link-local address"
> "setsocketopt(IPV6_LEAVE_GROUP): Cannot assign requested address" 
> "send(unicast): Cannot assign requested address"
> "send: Cannot assign requested address"

Are you running network manager or something similar?  These messages
indicate that your interfaces are going up/down at a tremendous rate.
Babel works best when the interface remains up even when connectivity
is lost.

> Are there any obvious settings that are required for babel to work
> in dense mesh networks? Would increasing the hello interval reduce
> the load on the network (though babel already appears to have
> a relatively low overhead).

I doubt it.  If killing network manager doesn't help, I'd suggest
switching to a different topology.  Let S be the server, M be the
measurement nodes, and R two-radio routers.

               R---M
              /
             /
            S--R---M
             \  \
              \  M
               \  
                R---R---M

Grab two or three two-radio nodes, either a nice router such as the
WNDR3800, or simply old laptops with two radios.  Pick two distinct
channels, call them the backbone frequency and the access frequency.

Set your server to ad-hoc mode, backbone frequency.  Set your
two-radio routers to ad-hoc mode, backbone frequency on one radio, and
AP mode, access frequency on the other radio.  Set your measurement
nodes to station mode, access frequency.

The server and the routers are communicating over ad-hoc at the
backbone frequency, while the measurement devices have associated with
one of the routers at the access frequency.

Now run Babel on all your nodes, and you're done.  Whenever
a measurement device switches to a different AP, Babel will reconverge
within two or three hello intervals.  Should an area of your building
have poor coverage, you just pop in an extra two-radio router.  Should
your backbone become congested, you add a third radio at a different
frequency and run Babel-Z.

-- Juliusz



More information about the Babel-users mailing list