Re: [B.A.T.M.A.N.] Staging: batman-adv for 2.6.36 (3)

Daniel Seither
2010-07-10T00:42:45Z

Am 10.07.2010 01:07, Sven Eckelmann wrote:
> batman-adv works quite well for us - but that doesn't mean that it is good in
> context of the current kernel development. And who should know it better than
> the netdev guys.

Hagen Paul Pfeifer suggested in his message "a generalized architecture
and a user space implementation of the protocol". What came to my mind
when I read this again was a division of control plane and
data/forwarding plane as known from traditional routing.

The whole forwarding stuff would stay in the kernel, using a simple
routing table (for destination X, send to node Y on interface Z). The
processing of routing messages (OGMs) and creation/update of the routing
table based on the full originator table could be moved to a user space
daemon. Relative to packets of regular data transmissions, routing
messages are not sent and received that often such that processing them
in user space should not hurt performance (very much), especially when
compared to the original implementation of batman-adv in the user space.

Firstly, this approach would improve the architecture by separation of
concerns, which makes it easier to understand, debug and maintain the
code. Secondly, it would get easier to play with / improve the routing
protocol and the metrics if the latter parts were implemented in user
space. And maybe it is indeed possible to make the kernel part of the
code agnostic to the used protocol implementation, which would lead to
the generalized architecture that Hagen envisioned.

- Daniel