Subject: Re: [PATCH net-next 2/3] ipv6: use newly introduced __ipv6_addr_needs_scope_id and ipv6_iface_scope_id

From: Brian Haley <[email-masked]>
Date: Thu, 14 Feb 2013 14:31:06 -0500

On 02/14/2013 01:53 PM, Hannes Frederic Sowa wrote:
> On Thu, Feb 14, 2013 at 10:25:46AM -0500, Brian Haley wrote:
>>> [PATCH net-next RFC] ipv6: introduce new type ipv6_addr_props to hold type and scope
>>>
>>> ---
>>>  include/net/ipv6.h       | 16 +++++---
>>>  net/ipv6/addrconf.c      | 27 +++++++-------
>>>  net/ipv6/addrconf_core.c | 97 +++++++++++++++++++++++++++++++-----------------
>>>  net/ipv6/datagram.c      | 12 +++---
>>>  4 files changed, 95 insertions(+), 57 deletions(-)
>>>
>>> diff --git a/include/net/ipv6.h b/include/net/ipv6.h
>>> index 851d541..3a3ec1cc 100644
>>> --- a/include/net/ipv6.h
>>> +++ b/include/net/ipv6.h
>>> @@ -298,20 +298,26 @@ static inline int ip6_frag_mem(struct net *net)
>>>  #define IPV6_FRAG_LOW_THRESH	(3 * 1024*1024)	/* 3145728 */
>>>  #define IPV6_FRAG_TIMEOUT	(60 * HZ)	/* 60 seconds */
>>>  
>>> -extern int __ipv6_addr_type(const struct in6_addr *addr);
>>> +struct ipv6_addr_props {
>>> +	u16 type;
>>> +	s16 scope;
>>> +};
>>
>> Seeing this makes me think we should unify the flags and scope members of
>> inet6_ifaddr to something like this, moving to a single set of values for IPv6
>> addresses.  Then ipv6_dev_get_saddr() wouldn't have to use __ipv6_adr_type() as
>> much since the address struct would already have the values.  Possible future
>> work...
> 
> Thanks for your feedback. I will incooperate it in my patch.

Ok, just don't worry about this above one right now, once you dig into it you
will realize it's not straightforward.  I'd just fix any existing bugs first.
I'll see if I can find the time to send out an RFC patch of what I mean...

-Brian