[Xorp-users] Looping back PIM messages

Pavlin Radoslavov pavlin at icir.org
Mon Aug 7 16:06:02 PDT 2006


> I am sorry, i noticed in fact that the PIm control messages do go out 
> of the interface 1 in router B, but i still dont know why they are 
> also looped back to me when XORP is running. 

Yes, this is the expected behavior, because the IP_MULTICAST_LOOP
flag is explicitly set before transmitting the multicast packets.
E.g., see the following code inside fea/mfea_proto_comm.cc,
ProtoComm::proto_socket_write():

    if (dst.is_multicast()) {
        set_default_multicast_vif(mfea_vif->vif_index());
        set_multicast_loop(true);
        setloop = true;
    }

Hence, in your code you would have to explicitly ignore your own
control messages. E.g., see the following code inside pim/pim_vif.cc
PimVif::pim_process():

   // Ignore my own PIM messages
    if (pim_node().is_my_addr(src))
        return (XORP_ERROR);


If for whatever reason you cannot perform such check, then you can
try to comment-out the "set_multicast_loop(true)" statement inside
fea/mfea_proto_comm.cc.


Pavlin


> Thanks a lot.
> 
> venkat
>  
> ----- Original Message -----
> From: Venketesan <venkthi1 at iit.edu>
> Date: Thursday, August 3, 2006 6:44 pm
> Subject: [Xorp-users] Looping back PIM messages
> 
> > Hey all,
> > 
> > I am writing a multicast tunneling protocol in linux redhat 9. I 
> > have 
> > a program that 
> > receives encapsulated PIm control messages on an interface that 
> > basically connects to a non multicast router. 
> > The topology is the following
> > A---->0B1----->C
> > 
> > A is a non xorp linux box.
> > B is a xorp linux box with my code running in it too.
> > C is a pure XORP linux box.
> > 
> > I receive unicast encapsulated PIM control messages in B via A. My 
> > code 
> > receves thise control messages and decapsulates and sends them to 
> > C. I 
> > send these PIM-SM packets using a raw socket binded to IP address 
> > of 
> > interface 1 in B.
> > 
> > Now the issue is for some reason my program receves all the PIM 
> > control messages back that it was supposed to send out. Xorp is 
> > looping it back and not letting the packets go out of interface1 
> > in B. 
> > If i 
> > stop xorp everything is fine and the packets are received at C.
> > Note that i am not listening over any raw socket just sending PIM-
> > SM 
> > packets using them. The way i receive is in the kernel i intercept 
> > PIM-
> > SM packets, make a copy of the same and  pass it to my user space 
> > program using netlink sockets.
> > 
> > Can anyone guide me on this issue, is it a expected behaviour of 
> > XORP 
> > to loop back any PIM-SM control packet not orginated by itself.
> > I am using XORP 1.2
> > regards,
> > Venkat     
> > 
> > _______________________________________________
> > Xorp-users mailing list
> > Xorp-users at xorp.org
> > http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-users
> > 
> 
> _______________________________________________
> Xorp-users mailing list
> Xorp-users at xorp.org
> http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-users



More information about the Xorp-users mailing list