lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20130214185326.GB8611@order.stressinduktion.org>
Date:	Thu, 14 Feb 2013 19:53:26 +0100
From:	Hannes Frederic Sowa <hannes@...essinduktion.org>
To:	Brian Haley <brian.haley@...com>
Cc:	YOSHIFUJI Hideaki <yoshfuji@...ux-ipv6.org>, netdev@...r.kernel.org
Subject: Re: [PATCH net-next 2/3] ipv6: use newly introduced __ipv6_addr_needs_scope_id and ipv6_iface_scope_id

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.

> >  	if ((st & htonl(0xFFC00000)) == htonl(0xFEC00000))
> > -		return (IPV6_ADDR_SITELOCAL | IPV6_ADDR_UNICAST |
> > -			IPV6_ADDR_SCOPE_TYPE(IPV6_ADDR_SCOPE_SITELOCAL));		/* addr-select 3.1 */
> > +		/* addr-select 3.1 */
> > +		return (struct ipv6_addr_props){
> > +			.type = IPV6_ADDR_LINKLOCAL|IPV6_ADDR_UNICAST,
> > +			.scope = IPV6_ADDR_SCOPE_SITELOCAL,
> > +		};
> 
> type here is wrong, should be IPV6_ADDR_SITELOCAL not linklocal.

Oops, of course. :)

> > @@ -653,13 +653,15 @@ int ip6_datagram_send_ctl(struct net *net, struct sock *sk,
> >  					rcu_read_unlock();
> >  					return -ENODEV;
> >  				}
> > -			} else if (addr_type & IPV6_ADDR_LINKLOCAL) {
> > +			} else if (addr_props.type & IPV6_ADDR_LINKLOCAL) {
> 
> Could be (addr_props.scope == IPV6_ADDR_SCOPE_LINKLOCAL), right?

This code will be changed by my other patches (see the series I posted
about introducing helper functions for checking for sin6_scope_id, patch
1/2). I think I will let it as is for the time being.

Thanks,

  Hannes

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ