Subject: Re: [PATCH] Disable router anycast address for /127 prefixes

From: Brian Haley <[email-masked]>
Date: Fri, 01 Jul 2011 15:09:57 -0400

On 07/01/2011 02:26 PM, Bjørn Mork wrote:
> Brian Haley <[email-masked]> writes:
>> On 07/01/2011 07:22 AM, Bjørn Mork wrote:
>>> RFC 6164 requires that routers MUST disable Subnet-Router anycast
>>> for the prefix when /127 prefixes are used.
>>>
>>> Signed-off-by: Bjørn Mork <[email-masked]>
>>> ---
>>
>>> @@ -1479,6 +1481,8 @@ static void addrconf_join_anycast(struct inet6_ifaddr *ifp)
>>>  static void addrconf_leave_anycast(struct inet6_ifaddr *ifp)
>>>  {
>>>  	struct in6_addr addr;
>>> +	if (ifp->prefix_len == 127) /* RFC 6164 */
>>> +		return;
>>>  	ipv6_addr_prefix(&addr, &ifp->addr, ifp->prefix_len);
>>>  	if (ipv6_addr_any(&addr))
>>>  		return;
>>
>> I'm not sure you'd need this part as there shouldn't be a /127 in the list to remove.
> 
> I don't understand exactly what you mean here.... 

If you never add an anycast address when the prefix length is 127, the address
wouldn't be there when you went to remove it.  In other words, the call to
__ipv6_dev_ac_dec() would return -ENOENT, which is ignored anyways.

It's not a common codepath so the two lines of code wouldn't hurt anything
I guess...

-Brian