Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 4 Sep 2014 10:50:12 -0700
From:      =?UTF-8?B?56We5piO6YGU5ZOJ?= <jinmei@wide.ad.jp>
To:        John Baldwin <jhb@freebsd.org>
Cc:        Craig Rodrigues <rodrigc@freebsd.org>, FreeBSD Net <freebsd-net@freebsd.org>, bugzilla-noreply@freebsd.org, "Andrey V. Elsukov" <ae@freebsd.org>
Subject:   Re: [Bug 193246] Bug in IPv6 multicast join(), uncovered by Jenkins
Message-ID:  <CAJE_bqcjE-SKxgLvGrZ1Ts8iFRP3tQV_ZGVgAYuK=hsjQeJtNA@mail.gmail.com>
In-Reply-To: <3393302.jtrfEtP2nm@ralph.baldwin.cx>
References:  <bug-193246-2472@https.bugs.freebsd.org/bugzilla/> <54070758.2050405@FreeBSD.org> <CAG=rPVe05jnxrD8QDkvwThBhKz7GCECRKTjK=XenAhbKwUB%2BPw@mail.gmail.com> <3393302.jtrfEtP2nm@ralph.baldwin.cx>

next in thread | previous in thread | raw e-mail | index | archive | help
At Thu, 04 Sep 2014 10:42:59 -0400,
John Baldwin <jhb@freebsd.org> wrote:

> > It looks like on Solaris, they support IPv4-mapped multicast addresses for
> > IPV6, and things work when they create an IPv6 socket, and then put an
> > IPv4-mapped multicast address in it.  For Linux, they have specific
> > code paths in that function which seem to force creating an IPv4
> > socket.
>
> >From looking at the source, it doesn't look like the Linux workaround (using
> IP_ADD_MEMBERSHIP on an AF_INET6 socket) will work on FreeBSD.  I'm not sure
> how hard it would be to fix in6_mcast.c to support IPv4 groups.  bms@ might
> know.

(In my understanding) in general, BSD variants intentionally limit the
support for the APIs using to that standardized in RFC3493 because of
issues such as those described in
http://tools.ietf.org/html/draft-cmetz-v6ops-v4mapped-api-harmful-01
(where implications with multicast API are also discussed).  So I
suspect it'll be generally difficult to extend the support for
IPv4-mapped IPv6 addresses.

As usual in the case where a deployed application relies on
non-standard, non-portable API, making the decision is difficult.
Personally, I'd first consider dealing it in the JDK so it'll be more
portable.  (Even though there are only two OSes today: FreeBSD and
Linux:-) that will be helpful for other BSD variants, and also for even more
minor systems that don't support the non-standard API.

--
JINMEI, Tatuya



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJE_bqcjE-SKxgLvGrZ1Ts8iFRP3tQV_ZGVgAYuK=hsjQeJtNA>