Thread (1 message) 1 message, 1 author, 2007-10-17

Re: multicast: bug or "feature"

From: Vlad Yasevich <hidden>
Date: 2007-10-17 20:19:37

Rick Jones wrote:
Vlad Yasevich wrote:
quoted
We've been trying to field some questions regarding multicast
behavior and one such behavior has stumped us.

I've reproduced the following behavior on 2.6.23.

The application opens 2 sockets.  One socket is the receiver
and it simply binds to 0.0.0.0:2000 and joins a multicast group
on interface eth0 (for the test we used 224.0.1.3).  The other
socket is the sender.  It turns off MULTICAST_LOOP, sets MULTICAST_IF
to eth1, and sends a packet to the group that the first socket
joined.

We are expecting to receive the data on the receiver socket, but
nothing comes back.

Running tcpdump on both interfaces during the test, I see the packet
on both interfaces, ie. I see it sent on eth0 and received on eth1 with
IP statistics going up appropriately.
I think you got things switched - in the beginning you said that the
receiver has joined a multicast group on eth0 and the sender set
MULTICAST_IF to eth1, but in the paragraph just above you say
transmission is on eth0 and reception is on eth1...
Yes, that was just the typing switch.  The send packet was on eth1
(the checksum wasn't finished yet), and the received packet was
on eth0.
I am _guessing_ that the MULITCAST_LOOP stuff is implemented with "is
this datagram's source IP one of the local IP's on the system" rather
than "is this datagram from my own socket"
Well, from what I've see, MULTICAST_LOOP is checked only on output, so
that doesn't seem to be the issue.

Also, IPv6 works as expected, i.e. I can receive the data in the app
above if I use IPv6 multicast addresses.

-vlad
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help