[PATCH] babel: Drop check for IF_MULTICAST interface flag
santiago at crfreenet.org
Mon Apr 19 16:32:59 UTC 2021
On Mon, Apr 19, 2021 at 03:55:18PM +0200, Toke Høiland-Jørgensen wrote:
> Ondrej Zajicek <santiago at crfreenet.org> writes:
> > Is there a reason why to disregard the IF_MULTICAST flag? This seems to me
> > more like a bug in FreeBSD Wireguard implementation that should be fixed
> > there. Is this flag properly checked on Linux, or is there some reason why
> > the flag is missing?
> We did fix Wireguard - see:
> However, that didn't help, Babel still refused to use the interface.
> Looking at krt-sock.c, the IF_MULTICAST flag is only set on
> IFF_POINTOPOINT or IFF_BROADCAST on bsd. The Linux code (in netlink.c)
> has a further:
> if (fl & IFF_MULTICAST)
> f.flags |= IF_MULTICAST;
> beneath the other flag checks, so maybe that's really what's missing on
> the BSD side?
Yes, it is likely that it is an issue in sysdep/bsd code.
> > Routing protocols in BIRD generally follow this flag (and perhaps use
> > it to switch to unicast-only mode), so i do not see why Babel should
> > behave differently.
> Yeah, I do believe I originally copied that check from one of the other
> protocols. I can see how it makes sense to check the flag and change
> operation mode based on it, but given that Babel doesn't do that it just
> seems kinda redundant? If the interface *actually* is unable to send
> multicast packets, the subsequent socket operation is going to fail, and
> at least that produces an error message instead of just silently
> ignoring the interface like that flag check does :)
Well, i am OK with generating a warning in cases of non-matching interface
type, instead of ignoring it silently. (In contrast to iface down or missing
lladdr, which should be silent, as it may correct later.)
Elen sila lumenn' omentielvo
Ondrej 'Santiago' Zajicek (email: santiago at crfreenet.org)
OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net)
"To err is human -- to blame it on a computer is even more so."
More information about the WireGuard