[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.1.10.0904140946130.5712@qirst.com>
Date: Tue, 14 Apr 2009 09:53:50 -0400 (EDT)
From: Christoph Lameter <cl@...ux.com>
To: Neil Horman <nhorman@...driver.com>
cc: netdev@...r.kernel.org, David Miller <davem@...emloft.net>
Subject: Re: Kernel sends multicast groups to sockets that did not subscribe
to the MC group
On Tue, 14 Apr 2009, Neil Horman wrote:
> > If I send a multicast message to 239.0.0.50 then both receive it. Why is
> > the process listening to 239.0.0.51 receiving the multicast message send
> > to 239.0.0.50?
> Its correct behavior. I had the same misunderstanding a few months back, but
> Dave stevens set me right:
> http://kerneltrap.org/index.php?q=mailarchive/linux-netdev/2008/7/11/2430904
Well its traditional behavior. The join operation occurs on a socket so
it is surprising that this means I join all multicast groups on an
interface. The reason given is that all unixes since BSD were as
braindead. Still crappy behavior since multiple applications that
subscribe to different groups but listen on the same port will get all
traffic of the other apps delivered to them.
Its trivial to fix as your patch shows since we already have per socket mc
lists required to support IGMPv3.
Maybe we can get this merged by adding a mc configuration variable
that switches between interface and socket based multicast subscriptions.
/proc/sys/net/mc_socket_based_join
Defaults to 0 and can be set to 1 to get sane behavior?
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists