On Tue, Mar 03, 2015 at 09:48:41AM -0500, Clint Armstrong wrote:
> So I have briefly tested a change that should allow OSPF broadcast over GRE
> so long as the multicast flag is set on the GRE interface, enabling the
> behavior you were initially expecting. I'd love to hear feedback on this,
> especially if anyone is aware of problems this might cause.
>
> diff --git sysdep/linux/netlink.c sysdep/linux/netlink.c
> index 860c860..4b543a0 100644
> --- sysdep/linux/netlink.c
> +++ sysdep/linux/netlink.c
> @@ -431,7 +431,7 @@ nl_parse_link(struct nlmsghdr *h, int scan)
> f.flags |= IF_MULTIACCESS | IF_LOOPBACK | IF_IGNORE;
> else if (fl & IFF_POINTOPOINT) /* PtP */
> f.flags |= IF_MULTICAST;
> - else if (fl & IFF_BROADCAST) /* Broadcast */
> + else if (fl & (IFF_BROADCAST || IFF_MULTICAST)) /* Broadcast */
> f.flags |= IF_MULTIACCESS | IF_BROADCAST | IF_MULTICAST;
> else
> f.flags |= IF_MULTIACCESS; /* NBMA */
This would work most likely without problems.
I would use just this one:
diff --git a/sysdep/linux/netlink.c b/sysdep/linux/netlink.c
index 860c860..48dd8ba 100644
--- a/sysdep/linux/netlink.c
+++ b/sysdep/linux/netlink.c
@@ -436,6 +436,9 @@ nl_parse_link(struct nlmsghdr *h, int scan)
else
f.flags |= IF_MULTIACCESS; /* NBMA */
+ if (fl & IFF_MULTICAST)
+ f.flags |= IF_MULTICAST;
+
ifi = if_update(&f);
if (!scan)
--
Elen sila lumenn' omentielvo
Ondrej 'Santiago' Zajicek (email: santiago@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."