[Xorp-hackers] PIM and IGMP

Pavlin Radoslavov pavlin@icir.org
Thu, 07 Jul 2005 10:50:29 -0700


> How hard would it be to hack the code so that I could get certain multicast
> addresses from being advertised across 2 different interfaces.  Say I have 2
> NIC cards and one is on an external network and one on the internal.
> 239.x.x.x multicast is external and needs to be seen by hosts internally and
> 238.x.x.x multicast is internal and should never be known externally.  Would
> there be a particular file that I could put a filter in?

There is some initial support for multicast scoping, but it is
incomplete, and it doesn't cover what you need.
Basically, what we have is:

 * A generic class PimScopeZoneTable that contains information about
   configured multicast filters per interfaces.

 * XRL interface to configure those filters:
   "add_config_scope_zone_by_*" and "delete_config_scope_zone_by_*"
   inside xrl/interfaces/pim.xif

 * Support in the PIM Bootstrap implementation to use the above
   scoping information.

What we don't have is:

 * Hooks in the rtrmgr templates (etc/templates/pimsm4.tp and
   etc/templates/pimsm6.tp) to configure the multicast filters.
   Adding those hooks should be trivial.

 * Support in the handling of the PIM Join/Prune and Assert messages
   to consider the PimScopeZoneTable when accepting or transmitting
   those control messages.
   Adding support for this shouldn't be very difficult, but requires
   some careful considerations where exactly to put the mods.
   E.g., in case of PIM Join/Prune messages we need to filter out
   only some of the entries inside the message rather than the whole
   message.

   In any case, the existing code for the Bootstrap scoping per
   interface (search for pim_scope_zone_table) can help to
   understand the code.

 * Documentation to describe the configuration once it is
   implemented :)

Hope that helps,
Pavlin