Hi folks,
during the last batman developer meeting in Bruxelles we decided that it is
time to reorganize the batman-adv kernel interface to address numerous issues
and feature requests we have been hearing about throughout the last year. The
required changes are extensive, therefore it will take a while to get it all
sorted out.
Specifically we are targeting the following items:
* People with larger layer2 meshes have expressed the idea of having multiple
meshes running on the same device in order to build a node which sits
inbetween 2 (or more) mesh networks and routes the traffic from one to the other
(thereby reducing the overhead). Due to code limitations batman-adv can only
create a single mesh on a machine. There are numerous global variables and
functions that need to be modfied in order to support multiple meshes.
* Despite the fact that we have a growing number of events which would allow
user space applications to implement some intelligence to improve the mesh
experience batman-adv has no way of communicating these events back to
applications. To address this issue we will be moving batman-adv from /proc to
sysfs which empowers batman-adv to trigger uevents that can be handled from
user space.
* Since batman-adv's existence its parameter always were configurable using
simple commands like echo or cat. Although this interface was easy it is not
possible to direct error messages back to the shell, In case you misspelled a
parameter you had to check the system logs to learn about it. The following
patch introduces a way of exporting "allowed values", so that user space
applications can parse it and alert the user immediately. See batctl as an
example.
Please review and comment the following patches. As soon as those were
digested I will send more.
Known issues:
* When sending a wrong input value to aggregate_ogm or bonding the kernel
processes the input 3 times.
Cheers,
Marek