Batman-adv 2014.2.0 released
June 09, 2014. The B.A.T.M.A.N. team today releases batman-adv 2014.2.0 adding a new major component - multicast optimizations - along with a series of bug fixes. As the kernel module always depends on the Linux kernel it is 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 <email@example.com>
- Fengguang Wu <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>
and to all those that supported us with good advice or rigorous testing:
- Sergei Shtylyov <firstname.lastname@example.org>
This release brings the first piece of a more efficient, group aware multicast forwarding infrastructure in batman-adv. In the past, batman-adv had treated multicast traffic like ordinary broadcast traffic and simply forwarded each multicast packet to every node in the network. Aiming to reduce unnecessary packet transmissions in large networks, this initial improvement announces multicast listeners via the translation table mechanism, thereby signaling interest in certain multicast traffic. Based on this information, batman-adv can make the decision to either drop multicast traffic if no listener is present or forwarding the multicast traffic via unicast if a single listener signaled interest. Alternatively, multicast traffic is forwarded to the entire network as before.
For now, these optimizations only apply if all nodes in the mesh have no bridge interface on top their batX interface. However, extending these optimizations beyond the realm of non-bridged interfaces as well as optimizing setups with more than one listener are on the roadmap.
Numerous reference counter imbalances in the heavily lifted routing code causing all sorts of shutdown issues like system hang on reboot have been addressed. Another reference counter balance was hidden in the fragmentation v2 code sparking similar shutdown issues. A kernel crash on accessing an insufficiently protected pointer in the gateway code has been eliminated. In some situations retrieving the originator table would also lead to a kernel crash due to improper checking. Fast adding and deletion of VLAN interfaces on top of batX drove batman-adv into an internal translation table state mismatch. The resulting translation table exchanges with neighbors were bogus, thus creating inconsistencies on every node in the network. On changing the batX mac address batman-adv did not inform the translation table to also update the entries of all VLAN interfaces on top of batX. Stale mac address announcements were the consequence.
The code documentation (kernel doc) has been extended, accompanied by the customary code cleanups & Linux coding style adjustments.
The newly added multicast optimizations can be enabled / disabled through batctl. Because the local and network-wide multicast mac address announcements are propagated via the translation table, batctl gained an option to filter multicast mac addresses and 'normal' client mac addresses upon translation table retrieval.
The tcpdump component received a fix for the erroneously printed IP src / dst fields (a regression introduced with the IPv6 parsing support). The local translation table skip table header parameter was updated to correctly skip the lengthened table header.
The detection and handling of once working but now broken network sockets has been improved. Alfred can easily encounter this situation if a local interface was recreated or a mac address changed e.g. due to manual assignment). The malfunctioning sockets are now closed and re-opened automatically.
The B.A.T.M.A.N. team