There is some code in the ip_mroute and ip6_mroute kernel modules to
support running PIM-based multicast routing daemons.  Currently, the
implementation is unaware of FIBs and maintains a global routing table.
I've posted a set of patches to phabricator which introduce per-FIB
multicast routing tables for both IPv4 and IPv6; the first patch in the
series is here, and the rest are linked from the "stack" tab:
https://reviews.freebsd.org/D55236

The patches are somewhat large but are mostly just moving various
objects into a per-FIB structure rather than having a bunch of global
(per-VNET) state scattered around.  The end result is that one can run
an independent multicast routing daemon in each FIB on a system; the
routing tables and multicast interface indices managed by each daemon
are completely separate.

I'd appreciate any review or testing.  If anyone is interested in this
project, please let me know.  Thanks to Stormshield and Klara for
sponsoring this work.

Reply via email to