[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