From: Toke Høiland-Jørgensen Date: Mon, 10 May 2021 17:49:43 +0000 (+0200) Subject: BSD: Propagate OS-level IFF_MULTICAST to internal IF_MULTICAST flag X-Git-Tag: v2.0.9~76 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b17adf073594974b05a60ddaaa6e36da4eac4831;p=thirdparty%2Fbird.git BSD: Propagate OS-level IFF_MULTICAST to internal IF_MULTICAST flag The BSD code did not propagate the OS-level IFF_MULTICAST flag to the Bird-internal IF_MULTICAST flag, which causes problems with Wireguard interfaces on FreeBSD. The Linux sysdep code does propagate the flag already, so just copy over the same check and flag update. --- diff --git a/sysdep/bsd/krt-sock.c b/sysdep/bsd/krt-sock.c index ea0cc4d9a..5c905bc97 100644 --- a/sysdep/bsd/krt-sock.c +++ b/sysdep/bsd/krt-sock.c @@ -665,6 +665,9 @@ krt_read_ifinfo(struct ks_msg *msg, int scan) else f.flags |= IF_MULTIACCESS; /* NBMA */ + if (fl & IFF_MULTICAST) + f.flags |= IF_MULTICAST; + iface = if_update(&f); if (!scan)