This patchset wants to introduce a new client announcement mechanism (previously called HNA) which totally revises the old one.
B.A.T.M.A.N.-advanced manages clients by the means of two translation tables: a local table and a global table. The first one stores all the clients directly connected to the node itself while the second one stores all the clients which are announced by other nodes in the mesh network.
In the current implementation the whole local table is sent within each OGM causing a big protocol overhead.
The core of the new implementation, instead, consists in avoiding this part and replace this procedure by sending only the local table _changes_ which happened in the last OGM interval. In this way, every node will update its global table applying the changes it finds in the OGM.
A roaming improvement is also provided exploiting the newly implemented announcement mechanism.
Moreover the global and local translation table are now lock free and rcu protected :-)
Patchset description: 1) Rename all the variables/functions/constants from *hna* to *tt* 2) Implement the new announcement mechanism 3) Implement the roaming optimisation 4) Protect by RCU the local and global table
** Patch 2/4 also introduces a dependency on the crc16 module since the new mechanism uses the crc16 computation function provided by this module. **
For more details, please refer to the commit message of each patch.
Regards, Antonio Quartulli