[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