B.a.t.m.a.n.
Ian Smith
smithi at nimnet.asn.au
Tue May 15 10:18:15 UTC 2012
On Mon, 14 May 2012 16:02:40 +0300, Ivo Vachkov wrote:
> Hello all,
>
> On Mon, May 14, 2012 at 1:52 PM, Monthadar Al Jaberi <monthadar at gmail.com>wrote:
>
> > On Sun, May 13, 2012 at 2:49 PM, Ivan Voras <ivoras at gmail.com> wrote:
> > > On 13 May 2012 06:46, Ivo Vachkov <ivo.vachkov at gmail.com> wrote:
> > >> Please define "working"? Porting? Kernel-level implementation?
> > BSD-licensed
> > >> one?
> > >
> > > I'm just throwing the idea out, in case it catches the eye of someone
> > > who's looking for an interesting project. In the ideal world, I'd say
> > > BSD-licensed reimplementation, but I certainly won't get picky.
> > >
> > > It does have some documentation (e.g.
> > > http://tools.ietf.org/html/draft-wunderlich-openmesh-manet-routing-00
> > > , http://www.open-mesh.org/wiki/batman-adv/Doc-overview).
On seeing Ivan's message, I thought I'd go back and have another look at
this after my foray in '06-'07 looking at initially OLSR then batmand,
for a rural mesh that never eventuated due to ADSL availability :)
At that time, I'd have been happy to pay good money for that IETF draft,
which wasn't then available; scouring web docs then linked from olsr.org
and mailing lists looking through scant and early development docs left
me not much the wiser, and hunting for code wasn't just down the rabbit
hole, it was a large warren of dark twisty tunnels, many dead-end.
In any case, that draft refers to the now unmaintained or at least not
further developed batmand daemon which used layer 3 routing like olsrd,
whereas 'batman advanced' as included in linux since 2.26.something
routes at layer 2; I don't think there's much if any interoperability
between them, so the first thing anyone wanting to 'do' batman on
freebsd has to decide is which version to tackle (and why :) bearing in
mind that 'BATMAN V' is in development, perhaps also non-interoperable.
http://www.open-mesh.org/wiki/open-mesh/BranchesExplained
That the Serval Project is using linux and batman-adv for their BatPhone
(though also looking into using OLSR, they and olsr.org say) may push
development, particularly if carrier-free mobile mesh networks prove as
useful as many expect, though maybe that's just residual nationalism :)
http://developer.servalproject.org/site/docs/2011/Serval_Introduction.html
In any case, batman seems to be finding a place in both hacked routers
and on linux-based phones like Androids, maybe Symbians, maybe iOS.
Here's where the batman-adv code was first committed to linux, so an all
+ diff, some of which may help to serve as crude docs of what may be
needed at kernel net level, which looks at the very least to need a new
class for linsysfs(5) or an equivalent sysctl tree, but I've no idea
what else might be needed at either kernel level, or for a daemon:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=c6c8fea29769d998d94fcec9b9f14d4b52b349d3
> Since it's not standardized, isn't it more logical to proceed with either
> user-space implementation or kernel implementation of something that has
> RFC assigned to the name (just asking, no troll/flame here)? Other than
> that I have some experience with BMX, Babel and OLSR. Also, i'm personally
> not convinced that kernel level implementation is the most appropriate
> choice for routing protocol (still i may be wrong).
Among the wiki-mazes at open-mesg.org are a few older docs describing
the early development of and from olsrd at Freifunk Berlin, where OLSR
RFC3626-compliance basically didn't work at any scale. A good read is:
http://www.open-mesh.org/wiki/open-mesh/The-olsr-story
My impression is that with OLSR, the RFC more or less preceded working
code, and that the 'standard' became in many ways more an impediment to
a working mesh (at any useful scale), whereas with both batmand and
batman-adv, fast, furious and fairly anarchic hacking to get something
working on a scale of hundreds of nodes was the driving force, leaving
documentation, let alone another RFC candidate, to trail far behind ..
besides it's still a fast-moving target, as many of the wiki pages
attest, once you figure out what precedes or antecedes what - not easy
when very few of the pages are dated, even as to original year.
> > >> Are there any reasons to choose B.A.T.M.A.N. instead of bmx or babel?
> > ... or
> > >> OLSR? ... or HSLS?
> > >
> > > I've seen BATMAN work at a local Linux club meeting, and I was pretty
> > > much impressed by how easy it is to setup. I don't know about the
> > > other protocols you listed, but BATMAN is in the stock Linux kernel,
> > > making it a practical choice. I might be wrong but it seems to me that
> > > it, contrasted to 802.11s, requires no special support from the wifi
> > > driver side, making it easier to implement. Other than that, no, I
> >
>
> As mentioned already 802.11s is link-layer technology (that from our
> experiments and research seems to be limited to some 30 devices), in
> contrast those are network layer (L3) protocols that operate on top of IP.
batmand is/was layer 3 but batman-adv (as in the linux kernel module,
with its userland configuration program, batctl) routes at layer 2.
http://downloads.open-mesh.org/batman/manpages/batmand.8.html
http://downloads.open-mesh.org/batman/manpages/batctl.8.html
and that's it for manual pages .. unless there's a (4) in linuxland?
http://wwwtlc.iet.unipi.it/research/ggt-iswpc10.pdf compares 802.11s and
batman-adv as two layer 2 protocols, though it's a teensy little mesh ..
and there's later work on batman-adv addressing the PURGE_TIMEOUT issue,
so it's pretty much early days as far as long-term settled standards.
> I think it a better version of the Optimized Link State Routing
> > Protocol (OLSR) which is an IP routing algoritm, 802.11s is link level
> > routing, which needs a wifi driver that permits changing the mac
> > address.
> >
> > But there is no standard for it I think.
>
>
> OLSR: http://www.ietf.org/rfc/rfc3626.txt
If you read enough of the batman-adv wiki, up, down and sideways, repeat
and rinse a time or two the fog starts to clear, but it's heavy going.
Working from both the title and by-date indexes helps, as I only found
out after many hours - this explore cost me most of the last two days :)
may it help, Ian
More information about the freebsd-net
mailing list