Batman-adv 2012.4.0 released
The B.A.T.M.A.N. team proudly presents its newest release, batman-adv 2012.4.0, mostly dedicating itself to stability with some smaller enhancements to improve the user experience. As the kernel module always depends on the Linux kernel it was compiled against, it does not make sense to provide binaries on our website. As usual, you will find the signed tarballs in our download section:
as well as prepackaged binaries in your distribution.
Thanks to all people sending in patches:
- Antonio Quartulli <firstname.lastname@example.org>
- Def <email@example.com>
- Jonathan Corbet <firstname.lastname@example.org>
- Linus Lüssing <email@example.com>
- Marek Lindner <firstname.lastname@example.org>
- Martin Hundebøll <email@example.com>
- Simon Wunderlich <firstname.lastname@example.org>
- Sven Eckelmann <email@example.com>
The translation table (the core system for managing all non-mesh clients across the mesh network) has been supplemented by the "speedy join" mechanism. Speedy join was designed to make the location of non-mesh clients known throughout the mesh without depending on OGM messages. As soon as non-mesh clients issue a DHCP or ARP request or any other broadcast message they are immediately full participants of the network. This will lead to a faster network connection experience, especially when the mesh network has been configured with higher OGM intervals.
All remaining traffic counters were converted to the recently introduced traffic counting framework and its ethtool API, thereby completely replacing the old traffic counter mechanism for the purpose of better scalability. The bridge loop avoidance comes with an additional backbone gateway table (exported via debugfs) allowing to retrieve the list of all detected backbone gateways attached to the same LAN, regardless of whether or not it has claimed any non-mesh client.
Several reports about packet loss in combination with vlan tagging encouraged us to investigated the cause. A bug was found in the Linux kernel vlan code and a patch was submitted. At the same time a workaround was added to our out-of-tree kernel module which automatically takes effect for kernel versions older than Linux 3.8 (which contains the proper fix). This release also comes with a few bug fixes concerning the batman-adv code directly: with the intent of suppressing duplicate broadcast packets in the mesh the bridge loop avoidance computes CRC checksums for each broadcast packet it receives and compares them to a list of already received broadcast checksums. The check-summing code miscalculated the CRC leading to overly aggressive broadcast packet drops. Also addressed was the missing "no purge" flag for the batX mac addresses after manually changing its mac address. The code refactoring regression leading to route flapping in multiple interfaces setup was corrected along with wrong OGM counting on Intel x86.
As gradually more functionality of the batman-adv kernel module is optional and can be compiled out, batctl won't be able to find the corresponding files in sysfs or debugfs. Therefore, batctl now maintains a list of optional features and informs the user about a possibly deactivated optional feature. At the same time the sysfs / debugfs code has been refactored to remove redundant boilerplate code. Also removed was the code querying the traffic statistics through the old API because all statistics can be retrieved via the new API. The batctl utility also gained an option to display the newly added backbone gateway table.
The B.A.T.M.A.N. team