On Sunday 07 September 2014 07:42:36 Linus Lüssing wrote:
This patchset enables the usage of the batman-adv multicast optimizations for scenarios involving bridges on top of e.g. bat0, too.
Along come two more patches adding according debugging facilities to make it possible for the user to check why the multicast optimizations might not work ideally to give hints about what they might change about their topology.
The fourth one alters the forwarding behaviour for IGMP and MLD reports. For one thing this reduces overhead (especially for IGMPv3/MLDv2 reports). But more importantly this is necessary to make the optimizations work in bridged scenarios at all. For more details see: http://www.open-mesh.org/projects/batman-adv/wiki/Multicast-optimizations-li stener-reports
As discussed it would be great to clarify the text on that wiki page a little. It is not really clear (at least to me) why this is necessary. Simple english and not too many conditions and integrated remarks help. :)
Also note, that with PATCH 4/4 multicast optimizations do not build for kernels < 2.6.35 (net/mld.h didn't exist back then): If there are actually brave souls out there running such ancient end-of-life kernels, it is suggested to build batman-adv with the multicast-compile-time option disabled. Multicast optimizations for bridges does not half any benefits for kernels < 3.17 anyways.
How about you add some kind of #error in compat.h if multicast is enabled and the kernel is too old, and ask to disable the multicast feature? that should be better then just failing with "mld.h not found". Otherwise we could add a stub mld.h and stub compat functions as we do for newer kernels which do not yet support all the multicast fun.
Thanks Simon