[Xorp-users] Multicast without PIM on internal interface while PIM on external

Pavlin Radoslavov pavlin@icir.org
Wed, 15 Jun 2005 17:51:30 -0700


> >>	I'm almost sure. At the time I seen it there has been no active PIM 
> >>routers on any interface (i have statis RP configured in), so NOCACHE 
> >>can't be trigered by PIM activity.
> > 
> > Can you replicate the problem by running a multicast receiver
> > (only). I have suspicions that the multicast data packets originated
> > by an application that is both a sender and a receiver are the
> > trigger for the NOCACHE.
> 
> 	I'm not sure what configuration I should try.
> 
> 	Do you request I run a multicast receiver on router ? On a station ? 
> With static RP or with current configuration ?
> 
> 	With current configuration there are still some NOCACHE messages but 
> originated from external interface (example is bellow).
> 
> 	But I'm lost a lot. What's the problem now ? Do you think the kernel 
> should not generate NOCACHE message ?

I was referring to your comment that IGMP messages from receivers
appear to be triggering NOCACHE kernel upcalls. We know that the
Linux kernel has such bug, but I was a bit surprised that you have
seen similar behavior on FreeBSD.

Even if FreeBSD has such bug (which I doubt), this bug should not
have any show-stopping impact on your setup, so it is up to you
whether you want to pursue that further.

If you really want to double-check your suspicion that IGMP Joins do
trigger NOCACHE, you could do something like:

 * Enable MFEA, IGMP and PIM-SM on an interface, and enable the TRACE
   messages as well. You can add static RP configuration, but it
   doesn't really matter, because you will be looking only for
   specific TRACE messages in the MFEA and IGMP.

 * Run tcpdump on the interface toward a host that will be a
   receiver (only) and listen for multicast packets. You need to do
   this to double-check that the receiver doesn't generate any
   multicast data packets.

 * Start on the above-chosen host a multicast receiver that you know
   does NOT send multicast data packets. MGEN is probably a good
   choice: http://tang.itd.nrl.navy.mil/5522/mgen/mgen_index.html

After you start the multicast receiver, look in the XORP output for
NOCACHE TRACE messages with src = the receiver's address.
If you see such messages, and if all tcpdump recorded from that
receiver were IGMP messages, then the FreeBSD kernel has
NOCACHE-related bug.


The fact that in the log included below you see IGMP JOIN trace
messages immediately followed by NOCACHE signal does not mean that
the JOIN message triggered the NOCACHE. It is more likely that an
application program was started, and that application has started
sending multicast data almost the same time it has joined the
multicast group.

About the "src = 128.40.89.156 is NOT directly connected" message
below, are you sure that this TRACE message was in the original
source code?
It is normal to receive NOCACHE signal with src that is not directly
connected, because NOCACHE is triggered when the multicast
forwarding plane sees a multicast data packet (eventually from a
sender several hops away) and the forwarding plane doesn't have a
matching forwarding entry for that packet.

Pavlin

>   ===============
> [ 2005/06/16 01:45:10 TRACE xorp_igmp MLD6IGMP ] RX 
> IGMP_V2_MEMBERSHIP_REPORT from 195.113.27.138 to 224.2.127.254 on vif 
> vlan666
> [ 2005/06/16 01:45:10 TRACE xorp_igmp MLD6IGMP ] JOIN: 195.113.27.138 
> joined group 224.2.127.254
> [ 2005/06/16 01:45:10 TRACE xorp_pimsm4 PIM ] Add membership for 
> (0.0.0.0,224.2.127.254) on vif vlan666
> [ 2005/06/16 01:45:10 TRACE xorp_fea MFEA ] RX kernel signal: 
> message_type = 1 vif_index = 1 src = 194.160.23.22 dst = 224.2.127.254
> [ 2005/06/16 01:45:10 TRACE xorp_pimsm4 PIM ] RX NOCACHE signal from 
> MFEA_4: vif_index = 1 src = 194.160.23.22 dst = 224.2.127.254
> [ 2005/06/16 01:45:10 TRACE xorp_pimsm4 PIM ] src = 194.160.23.22 is NOT 
> directly connected
> [ 2005/06/16 01:45:10 TRACE xorp_pimsm4 PIM ] install a MFC in the kernel
> [ 2005/06/16 01:45:10 TRACE xorp_pimsm4 PIM ] Add MFC entry: 
> (194.160.23.22,224.2.127.254) iif = 1 olist = ..O.
> [ 2005/06/16 01:45:11 TRACE xorp_fea MFEA ] RX kernel signal: 
> message_type = 1 vif_index = 1 src = 128.40.89.156 dst = 224.2.127.254
> [ 2005/06/16 01:45:11 TRACE xorp_pimsm4 PIM ] RX NOCACHE signal from 
> MFEA_4: vif_index = 1 src = 128.40.89.156 dst = 224.2.127.254
> [ 2005/06/16 01:45:11 TRACE xorp_pimsm4 PIM ] src = 128.40.89.156 is NOT 
> directly connected
> ...