Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gluon-mesh-batman-adv-brmldproxy: add package #2995

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Commits on Apr 16, 2024

  1. gluon-mesh-batman-adv-brmldproxy: add package

    Now that we have general support for routable IPv6 multicast address in
    Gluon master thanks to the newer Linux (bridge) and batman-adv versions
    it becomes more interesting to also support layer 3 IPv6 multicast
    routers.
    
    So far this was also not possible with the default settings in Gluon
    due to filtering MLD into the mesh. This now adds support for
    brmldproxy, a daemon which proxies MLD reports between bridge ports.
    
    For the Gluon scenario this package adds brmldproxy proxying
    configuration for the mesh side bat0 bridge port.
    
    The configuration is tuned in a way to enable the usage of
    layer 3 IPv6 multicast routers for routable IPv6 multicast
    address ranges. But with a lot smaller MLD overhead
    compared to the filter_membership_reports=false site.conf option.
    
    If a node has no multicast listener for a routable IPv6
    multicast address then this node will emit no MLD report
    into the mesh. Furthermore, if a node has multiple multicast
    listening hosts for routable IPv6 multicast addresses then the
    node will act in deputy and respond with combined, aggregated
    MLD reports on behalf.
    
    Signed-off-by: Linus Lüssing <[email protected]>
    T-X committed Apr 16, 2024
    Configuration menu
    Copy the full SHA
    a0e17f9 View commit details
    Browse the repository at this point in the history

Commits on Apr 17, 2024

  1. gluon-mesh-batman-adv-brmldproxy: avoid MLD report broadcasts

    So far batman-adv flooded all MLD reports. However in our use-case, with
    the limitations we already have (*) it is safe to send MLD reports to
    detected multicast routers only.
    
    This reduces MLD report overhead even further than brmldproxy alone
    already does. And in particular results in no MLD reports in the mesh
    if no multicast router is present.
    
    This should, after some more testing from others, potentially make the
    gluon-mesh-batman-adv-brmldproxy package suitable for being included by
    default. As overhead downsides should then be negligible.
    
    Note: This change to the MLD report forwarding behaviour is only applied if
    the gluon-mesh-batman-adv-brmldproxy is installed (and brmldproxy then
    not manually disabled). Otherwise these changes to batman-adv and batctl
    are unused.
    
    (*): non-Gluon nodes still need to manually set multicast_router=2 on
    the bat0 bridge port.
    
    Signed-off-by: Linus Lüssing <[email protected]>
    T-X committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    d79a680 View commit details
    Browse the repository at this point in the history
  2. gluon-ebtables: don't filter incoming MLD Reports with brmldproxy

    If there is no multicast router behind a bridge port then the Linux
    bridge multicast snooping code itself will refrain from forwarding a
    report, as recommended/required by RFC4541
    ("Considerations for Internet Group Management Protocol (IGMP)
      and Multicast Listener Discovery (MLD) Snooping Switches).
    So these rules are in most cases redundant.
    
    On the other hand, removing them allows to actually run an IPv6
    multicast router behind a Gluon node. Since OpenWrt 23.05 it will allow
    detecting multicast routers via Multicast Router Discovery (RFC4286).
    And removing these ebtables rules will allow a layer 3 multicast router
    to then receive MLD reports from the mesh properly and by that to learn
    about others listeners in the mesh.
    
    These incoming MLD report filtering rules are only removed when
    gluon-mesh-batman-adv-brmldproxy is installed, to avoid any other
    functional changes otherwise.
    
    Signed-off-by: Linus Lüssing <[email protected]>
    T-X committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    3895867 View commit details
    Browse the repository at this point in the history