Batman-adv 2010.2.0 released¶
The B.A.T.M.A.N. team proudly presents the last batman-adv release in the year 2010, carrying the version number 2010.2.0. This release contains a mix of new features, Linux kernel compliance and bug fixes. 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.
The batman-adv module now supports multiple mesh clouds simultaneously which made changes to the 'bat0' interface behavior necessary: Mesh interfaces (such as bat0) are created only after 'real' interfaces (e.g. wlan0) have been assigned. Mesh interfaces that have no real interfaces assigned are removed from the system. Furthermore the mesh interface can be freely named such as bat5, mesh0, etc, therefore batman-adv might be active even though bat0 does not exist. More details can be found below as well as in our documentation.
Thanks to all people sending in patches:
- Andreas Langer <email@example.com>
- Andy Shevchenko <firstname.lastname@example.org>
- Chris Lang <email@example.com>
- Linus Lüssing <firstname.lastname@example.org>
- Marek Lindner <email@example.com>
- Simon Wunderlich <firstname.lastname@example.org>
- Sven Eckelmann <email@example.com>
- Tracey Dent <firstname.lastname@example.org>
- Vasiliy Kulikov <email@example.com>
and to all those that supported us with good advice or rigorous testing:
- Dan Carpenter <firstname.lastname@example.org>
- David S. Miller <email@example.com>
- Paul E. McKenney <firstname.lastname@example.org>
- Rafal Lesniak <email@example.com>
- Sam Yeung <firstname.lastname@example.org>
The work that nearly a year ago began has finally come to an end: Multiple mesh cloud support has been completed. This allows one host to participate in multiple meshes at the same time via different interfaces. This often requested feature is particularly useful to segment large batman-adv installations, thereby reducing overhead. Each mesh cloud can be individually configured, deals with its traffic flow independently and possesses its own batX interface. Also added was a layer 2 fragmentation for unicast data flowing through the mesh which will allow to run batman-adv over interfaces / connections that don't allow to increase the MTU beyond the standard Ethernet packet size of 1500 bytes. This initial fragmentation only supports splitting the large packets at "the beginning of mesh" whereas an extension which allows fragmenting "on the fly" anywhere in the mesh network will be included in the following release.
As usual, many improvements happened under the hood: The module uses the kernel supplied functions for network buffer manipulations instead of re-implementing them and takes advantage of the optimized kernel functionality for OGM counting. The RCU protected lists have been revamped and enhanced with referenced based counting which squashes quite some race conditions. The HNA handling needed some fixes too when it was stress tested with a very large local network. Many minor bugs such as false warnings, reduced memory usage and coding style issues were addressed.
To support the "multiple mesh clouds" feature batctl received a new (optional) parameter '-m' to specify the mesh cloud interface in order to query the mesh cloud of interest. If '-m' is not specified batctl will assume 'bat0' as mesh cloud interface which maintains backward compatibility and suits most users. The newly added fragmentation on/off switch also was added as well as batctl tcpdump support for fragmented packets. In addition, the batctl tcpdump can deal with multiple header encapsulation (e.g. HTTP in VLAN in BAT UNICAST in VLAN) and the batctl ping utilities' '-i' option is not silently ignored any longer. Various cleanups took place and a crash fixed if the HOME environment variable is not set.
The B.A.T.M.A.N. team