[Xorp-hackers] PIM and IGMP
Weaver John-JWEAVER1
John.Weaver@motorola.com
Thu, 7 Jul 2005 15:30:16 -0500
Thanks. Sounds like I have some work to do.
-----Original Message-----
From: Pavlin Radoslavov [mailto:pavlin@icir.org]
Sent: Thursday, July 07, 2005 1:12 PM
To: Pavlin Radoslavov
Cc: Weaver John-JWEAVER1; xorp-hackers@icir.org
Subject: Re: [Xorp-hackers] PIM and IGMP
> > 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 :)
I forgot to add the following to the list:
* Support inside PIM-SM to filter-out the add/delete MLD/IGMP
group membership. This should be trivial and should be done
inside the PimNode::add_membership() and
PimNode::delete_membership() methods.
* Support to the MLD/IGMP module for multicast scoping.
Currently, the MLD/IGMP module doesn't have any support, but
it can be implemented by following the model in the PIM-SM
module.
Pavlin