[Xorp-users] IGMP/PIM question ?

Pavlin Radoslavov pavlin at icir.org
Wed Jul 19 10:28:30 PDT 2006


> Nope. I mean there exists only one interface and that is the interface on 
> which I have enabled PIM.
> 
> pavlin>
> pavlin>You cannot use PIM-SM for any effective multicast forwarding with a
> pavlin>single network interface. For example, every multicast forwarding
> pavlin>entry (as installed in the kernel) has an incoming interface, and a
> pavlin>set of outgoing interfaces. An incoming interface is automatically
> pavlin>excluded from the oifs set. Hence, with a single enabled interface
> pavlin>the oifs set is always empty.
> pavlin>
> 
> But is that not controlled by the "oifs_ttl" in the MfeaNode::add_mfc() 
> function which first sets all oifs_ttl to ZERO and then after performing a 
> test on oiflist   (oiflist.test(i)) mask, sets the TTL to MINTTL of 1. 
> And then the MfeaRouter::add_mfc() function is called to actually 
> implements the setsockopt() to tell the kernel about it.
> 
> In MfeaRouter::add_mfc() the first thing that is done is 
> 
>     oifs_ttl[iif_vif_index] = 0;  // Pre-caution
> 
> This precludes the kernel from using the iff as one of the legitimate 
> interfaces for output. 

The PIM-SM spec <draft-ietf-pim-sm-v2-new-12.txt, Section 4.2.  Data
Packet Forwarding Rules) mandates that the iif is always excluded
from the oiflist:

<QUOTE>
On receipt of data from S to G on interface iif:
...
 oiflist = oiflist (-) iif
 forward packet on all interfaces in oiflist
</QUOTE>

The reason for excluding the iif from the oiflist is because
forwarding multcast data back on the interface it came from can
result in multicast loops, and such loops can bring down a whole
network.

In addition, if we take into account the PIM assert mechanism,
then the iif might be excluded anyway from the oiflist.

> What I wonder is if this "Pre-caution" statement were commented, would 
> that be sufficient for the kernel to use the iff as one of the oif ??

You might be able to create such entry in the kernel, but this could
create various problems (see above).

> pavlin>A PIM Join toward the RP (R4) should have been generated
> pavlin>though. Could you send the output of the following commands:
> pavlin>
> pavlin> show pim join
> pavlin> show pim mrib
> pavlin> show pim interface
> pavlin> show pim neighbors
> pavlin> show pim rps
> pavlin> show igmp group
> 
> I have attached the following txt files:
> 
> xorpsh_before_receiver-app-started.txt 
>   xorp_after_receiver-app-started.txt
> xorpsh_after_receiver-app-started.txt
>   xorp_after_receiver-app-stopped.txt
> xorpsh_after_receiver-app-stopped.txt

I will have a look at the output an will reply in a separate email.

Regards,
Pavlin



More information about the Xorp-users mailing list