[Xorp-users] IGMP/PIM question ?

Pavlin Radoslavov pavlin at icir.org
Wed Jul 19 16:36:31 PDT 2006


> pavlin>The PIM-SM spec <draft-ietf-pim-sm-v2-new-12.txt, Section 4.2.  Data
> pavlin>Packet Forwarding Rules) mandates that the iif is always excluded
> pavlin>from the oiflist:
> pavlin>
> pavlin><QUOTE>
> pavlin>On receipt of data from S to G on interface iif:
> pavlin>...
> pavlin> oiflist = oiflist (-) iif
> pavlin> forward packet on all interfaces in oiflist
> pavlin></QUOTE>
> pavlin>
> pavlin>The reason for excluding the iif from the oiflist is because
> pavlin>forwarding multcast data back on the interface it came from can
> pavlin>result in multicast loops, and such loops can bring down a whole
> pavlin>network.
> 
> Loops and duplicates can be avoided with filtering based on the IP ID 
> field for UDP packets and maintaining a state for either a two-tuple 
> (Source, ID) or a three-tuple (Source, DestGroup, ID). Of course, the IP 
> ID has been designed for for support of packet fragmentation, so one has 
> to be careful
> Several multicast ad-hoc implementations use IP ID. I intend to insert 
> the mechanism as a module in the kernel or as part of the kernel itself. 

PIM-SM has been designed to avoid loops, duplicates and blackholes
at the tree construction level, and for that purpose it uses a
number of mechanisms: RPF checks, the Assert mechanism, etc.

All those mechanisms are tightly coupled, so removing some of them
requires very detailed understanding of the the PIM-SM protocol
internals. E.g., see the Bidir-PIM proposal that removes the Asserts
and few other mechanisms:

http://www.ietf.org/internet-drafts/draft-ietf-pim-bidir-08.txt

What you describe is quite different mechanism for doing multicast
routing, and I doubt you can easily reuse the PIM-SM machinery for
that purpose.

> pavlin>
> pavlin>In addition, if we take into account the PIM assert mechanism,
> pavlin>then the iif might be excluded anyway from the oiflist.
> pavlin>
> 
> Is there some more information you (or anyone else) can give me about 
> this. 

The PIM-SM spec itself is the best source of information about how
the Assert mechanism works. See also the Bidir-PIM I-D cited above
that describes a solution without the Assert mechanism.

On the subject of ad-hoc multicast routing itself.
PIM-SM hasn't been designed with ad-hoc routing in mind, so most
likely you would need a very different protocol/solution.
A quick search for ad-hoc multicast routing reveals a number of
publications about various solutions.

E.g., the following URL contains such list:

http://en.wikipedia.org/wiki/Ad_hoc_routing_protocol_list#Multicast


Regards,
Pavlin



More information about the Xorp-users mailing list