At Fri, 01 May 2009 18:33:50 +0100,
Bruce Simpson <b...@incunabulum.net> wrote:

> During the MLDv2 refactoring, I removed some old KAME code which 
> supports the ability to listen to *all* multicast groups.
> It isn't clear to me whether this code was still in use, and I couldn't 
> find information about it in the normative RFCs (2292, 3542) for IPv6 
> stack implementation.
> 
> This call needed super-user privileges to use, and I'm not sure if 
> anything is actually using it. Can anyone out there with possible 
> exposure to it clarify?

I believe you can safely remove it.  The KAME repository version of
that code was already deprecated long time ago.  See the change for
rev.1.433 at:
http://orange.kame.net/dev/cvsweb2.cgi/kame/kame/sys/netinet6/ip6_output.c

I also noted this strange behavior in a book about the KAME
implementation:

3684:                   mreq = mtod(m, struct ipv6_mreq *);
3685:                   if (IN6_IS_ADDR_UNSPECIFIED(&mreq->ipv6mr_multiaddr)) {
3686:                           /*
3687:                            * We use the unspecified address to specify to 
accept
3688:                            * all multicast addresses. Only super user is 
allowed
3689:                            * to do this.
3690:                            */
3692:                           if (suser(p))
3696:                           {
3697:                                   error = EACCES;
3698:                                   break;
3699:                           }

3684–3699
  ipv6mr_multiaddr field must hold a valid IPv6 multicast
  address. The KAME implementation allows a privileged application to
  specify the IPv6 unspecified address.  While the intention may be to
  allow the socket to accept packets from any multicast address, the
  system does not actually behave that way. First, the
  IN6_LOOKUP_MULTI() macro does not have a special matching rule for the
  unspecified address. Secondly, in order to accept any multicast
  addresses on an interface, it is necessary to specify the promiscuous
  mode for the interface’s multicast filter, which will not actually be
  done in this case. Later versions of the KAME implementation removed
  this code and similar code that exists for IPV6_LEAVE_GROUP.

Hope this helps,

---
JINMEI, Tatuya
Internet Systems Consortium, Inc.
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to