svn commit: r206452 - head/sys/netinet

Bjoern A. Zeeb bz at FreeBSD.org
Fri Apr 16 10:40:09 UTC 2010


On Fri, 16 Apr 2010, Bruce Simpson wrote:

> On 04/16/10 09:23, Alexander Leidinger wrote:
>> 
>>> IP multicast group membership is always scoped to physical links [1]. The 
>>> 4.4BSD API originally used the "primary IP address" to identify each link. 
>>> Unfortunately this is not a persistent identifier, especially so in the 
>>> use-case which had problems.
>> 
>> 
>> Is/was this the reason why multicast does not work in jails?
>
> The above point is totally unrelated to jail.
>
> I think the problem with jail is the fact that to receive multicast, sockets 
> normally need to be bound to INADDR_ANY. Obviously, jail changes socket 
> behaviour in interesting ways.
>
> This may require refactoring udp_input() considerably. We use the 4.4BSD 
> legacy LIST_FOREACH() loop to deliver, rather than using a fan-in map (which 
> is the Windows/Solaris approach).
>
> Linux also has 4.4BSD semantics, but can work around this by examining the 
> SO_BINDTODEVICE option in the same path.

SO_BINDTODEVICE would not be enough of a check unless the interface
could be dedicated to a jail which classic jails did and do not
support.  Virtual network stacks will be the solution for this.

-- 
Bjoern A. Zeeb         It will not break if you know what you are doing.


More information about the svn-src-all mailing list