Subject: Re: IGMP joins come from the wrong SA/interface

From: Hannes Frederic Sowa <[email-masked]>
Date: Thu, 30 Jan 2014 23:44:11 +0100

On Thu, Jan 30, 2014 at 07:12:29PM +0100, Steinar H. Gunderson wrote:
> On Thu, Jan 30, 2014 at 04:08:11PM -0200, Flavio Leitner wrote:
> > No special multicast route, so it should go out on em1/default route.
> 
> Well, that's not really relevant for my bug then, is it? My problem is that
> it goes out on the default unicast route, whereas it shouldn't.

Hmm, it looks to me that Flavio showed that it should actually work
correctly.

> > Maybe your application is using wrong values to IP_MULTICAST_IF?
> > strace and /proc/net/igmp as suggested might help you find out.
> 
> This goes for at least vlc+mplayer+xbmc. I don't think they would all be
> buggy in the same way? (Actually I don't think any of them set
> IP_MULTICAST_IF.)

The routing lookup is done at IP_ADD_MEMBERSHIP time. I really wonder why you
have routed the 239.0.0.0/8 range to eth0.11. It seems to me that the kernel
does what you told it to do. ;)

multicast flag on ip route is just used for multicast forwarding and does not
matter for local multicast. Also if we find unicast route first (more
specific) kernel does not do backtracking if destination is in multicast
scope.

Greetings,

  Hannes