[Xorp-users] Looping back PIM messages

Venketesan venkthi1 at iit.edu
Mon Aug 7 16:21:02 PDT 2006


Thanks for clarifying that it was an expected behaviour. I did put in 
a check to ignore my own packets . 
regards,
Venkat

----- Original Message -----
From: Pavlin Radoslavov <pavlin at icir.org>
Date: Monday, August 7, 2006 4:06 pm
Subject: Re: [Xorp-users] Looping back PIM messages

> > 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