Batman-adv 2012.1.0 released
The B.A.T.M.A.N. team is delighted to announce its newest release, 2012.1.0, bringing mainly bug fixes and code cleanups. Also part of the release is a newly developed routing algorithm framework which allows switching between different routing algorithms. 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:
- Alexey Fisher <firstname.lastname@example.org>
- Antonio Quartulli <email@example.com>
- Danny Kukawka <firstname.lastname@example.org>
- Marek Lindner <email@example.com>
- Martin Hundebøll <firstname.lastname@example.org>
- Simon Wunderlich <email@example.com>
- Sven Eckelmann <firstname.lastname@example.org>
and to all those that supported us with good advice or rigorous testing:
- Filippo Sallemi <email@example.com>
Most changes coming with this release happened under the hood to either improve stability or pave the way for new features, most notably the routing algorithm abstraction. Over the last months several ideas centering around the question how to improve the current routing algorithm have surfaced. To better experiment with these ideas while keeping a working system for our users the routing algorithm abstraction was added. It allows to easily develop and test new routing concepts while taking advantage of the existing batman-adv features and infrastructure. The API will be further refined with the next releases to enable alternative algorithms to be included as well.
The translation table code received further attention which led to the discovery of endless loops in the tt-request mechanism (under certain circumstances). This was addressed along with a TT_CLIENT_NEW flag race condition when a new client was added to the internal hash. All batman-adv internal timeouts have been converted to milliseconds for consistency purposes. Even the batman-adv makefile was modernized to provide an install target and a selection system for conveniently compiling features into the module.
Each batman-adv (layer 2) ICMP packet used to ping or traceroute a node comes with a sequence number to detect failures. Prior to this release batctl ping/traceroute did not compare the outgoing sequence number with the incoming sequence number to verify whether they indeed match. In WiFi environments exhibiting high packet loss and excessive packet retransmissions this missing check led to false results.
Furthermore, the return code of batctl ping was improved to properly indicate a failure.
The B.A.T.M.A.N. team