Hi,
here are some raw references without any judgment. Maybe Marek will send some more information about that topic later.
Andi Kleen wrote:
Sven Eckelmann sven.eckelmann@gmx.de writes:
B.A.T.M.A.N. (better approach to mobile ad-hoc networking) is a routing protocol for multi-hop ad-hoc mesh networks. The networks may be wired or wireless. See http://www.open-mesh.org/ for more information and user space tools.
It seems rather unusual to have the complete routing protocol in kernel. And this is a lot of code. The normal way to do such things is to have the routing policy etc. in a user daemon and only let the kernel provide some services to this.
Could you elaborate a bit why this approach was not chosen?
I assume if it needs a switch it could have a switching "hot path" layer in kernel and the policy somewhere else.
https://lists.open-mesh.org/pipermail/b.a.t.m.a.n/2010-July/003119.html https://lists.open-mesh.org/pipermail/b.a.t.m.a.n/2010-July/003120.html https://lists.open-mesh.org/pipermail/b.a.t.m.a.n/2010-July/003121.html
Just as note: the mentioned parts which move to the userspace or stays inside the kernel doesn't include the parts which must be added as interface for other kernel modules/userspace daemon.
You write
+Batman advanced was implemented as a Linux kernel driver to re- +duce the overhead to a minimum. It does not depend on any (other)
What overhead exactly?
https://lists.open-mesh.org/pipermail/b.a.t.m.a.n/2010-June/003029.html
So the mentioned overhead was related to throughput and latency of the actual data packets send over the complete userspace implementation (receiving stuff, getting stuff from kernel, modifying it, putting it back in the kernel, sending it).
Best regards, Sven