• Linus Lüssing's avatar
    batman-adv: mcast: add MRD + routable IPv4 multicast with bridges support · 7a68cc16
    Linus Lüssing authored
    This adds support for routable IPv4 multicast addresses
    (224.0.0.0/4, excluding 224.0.0.0/24) in bridged setups.
    
    This utilizes the Multicast Router Discovery (MRD, RFC4286) support
    in the Linux bridge. batman-adv will now query the Linux bridge for
    IPv4 multicast routers, which the bridge has previously learned about
    via MRD.
    
    This allows us to then safely send routable IPv4 multicast packets in
    bridged setups to multicast listeners and multicast routers only. Before
    we had to flood such packets to avoid potential multicast packet loss to
    IPv4 multicast routers, which we were not able to detect before.
    
    With the bridge MRD integration, we are now also able to perform more
    fine-grained detection of IPv6 multicast routers in bridged setups:
    Before we were "guessing" IPv6 multicast routers by looking up multicast
    listeners for the link-local All Routers multicast address (ff02::2),
    which every IPv6 multicast router is listening to. However this would
    also include more nodes than necessary: For instance nodes which are
    just a router for unicast, but not multicast would be included, too.
    Signed-off-by: default avatarLinus Lüssing <linus.luessing@c0d3.blue>
    Signed-off-by: default avatarSven Eckelmann <sven@narfation.org>
    Signed-off-by: default avatarSimon Wunderlich <sw@simonwunderlich.de>
    7a68cc16
multicast.c 68.5 KB