Subject: Re: regression: bind interface and transmit to ff02::2
To: David Young <dyoung@pobox.com>
From: JINMEI Tatuya / =?ISO-2022-JP?B?GyRCP0BMQEMjOkgbKEI=?= <jinmei@isl.rdc.toshiba.co.jp>
List: tech-net
Date: 03/23/2006 15:45:20
>>>>> On Wed, 22 Mar 2006 23:57:17 -0600, 
>>>>> David Young <dyoung@pobox.com> said:

> The kernel used to let me bind(2) to an IPv6 interface---e.g., [sin6_addr
> fe80::200:24ff:fec3:4bac sin6_scope_id 1]---and sendto(2) the destination
> [sin6_addr ff02::2 sin6_scope_id 0].  I cannot do that any longer.  Now,
> sendto exits with EHOSTUNREACH.

> I would expect sendto to fail if I hadn't bound the interface and/or set
> the multicast interface with setsockopt(,IPPROTO_IPV6,IPV6_MULTICAST_IF,),
> but I have done both.  The new behavior seems like a regression to me.

Do you mean the following pseudo code failed?

	s = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP);
	bind(s, fe80::200:24ff:fec3:4bac%1);
	setsockopt(s, IPPROTO_IPV6, IPV6_MULTICAST_IF, 1);
	sendto(s, buf, buflen, 0, ff02::2%0, sizeof(sockaddr_in6));

					JINMEI, Tatuya
					Communication Platform Lab.
					Corporate R&D Center, Toshiba Corp.
					jinmei@isl.rdc.toshiba.co.jp