]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
BSD: Propagate OS-level IFF_MULTICAST to internal IF_MULTICAST flag
authorToke Høiland-Jørgensen <toke@toke.dk>
Mon, 10 May 2021 17:49:43 +0000 (19:49 +0200)
committerOndrej Zajicek (work) <santiago@crfreenet.org>
Mon, 10 May 2021 17:49:43 +0000 (19:49 +0200)
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.

sysdep/bsd/krt-sock.c

index ea0cc4d9a736e978140b2ff15d001a663fab78df..5c905bc97f05e4c1b495be3ccdb60aecd56c4ff6 100644 (file)
@@ -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)