netdev
[Top] [All Lists]

Re: [BK PATCH] Misc IPv6 Updates

To: Krishna Kumar <kumarkr@xxxxxxxxxx>
Subject: Re: [BK PATCH] Misc IPv6 Updates
From: Brian Haley <Brian.Haley@xxxxxx>
Date: Wed, 10 Nov 2004 16:18:48 -0500
Cc: YOSHIFUJI Hideaki / 吉藤英明 <yoshfuji@xxxxxxxxxxxxxx>, davem@xxxxxxxxxxxxx, netdev@xxxxxxxxxxx
In-reply-to: <OF8CA84FB0.6990A5CD-ON88256F48.0063D0E6-88256F48.0064C53C@xxxxxxxxxx>
Organization: HP Linux and Open Source Lab
References: <OF8CA84FB0.6990A5CD-ON88256F48.0063D0E6-88256F48.0064C53C@xxxxxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.3) Gecko/20040910
Krishna Kumar wrote:
> (sorry if my mailer mangles the code)
> 
> In :
> 
> +static inline int ipv6_addr_equal(const struct in6_addr *a1,
> +   const struct in6_addr *a2)
> +{
> + return (a1->s6_addr32[0] == a2->s6_addr32[0] &&
> + a1->s6_addr32[1] == a2->s6_addr32[1] &&
> + a1->s6_addr32[2] == a2->s6_addr32[2] &&
> + a1->s6_addr32[3] == a2->s6_addr32[3]);
> +}
> +
> 
> Is it faster to do :
> 
> +static inline int ipv6_addr_equal(const struct in6_addr *a1,
> +   const struct in6_addr *a2)
> +{
> + return (a1->s6_addr32[3] == a2->s6_addr32[3] &&
> + a1->s6_addr32[2] == a2->s6_addr32[2] &&
> + a1->s6_addr32[1] == a2->s6_addr32[1] &&
> + a1->s6_addr32[0] == a2->s6_addr32[0]);
> +}
> +
> 
> instead ?It should be faster for typical addresses, say 2000:a:b:c::1 
> and 2000:a:b:c::2. The device EUI-64 is
> normally going to be different for all devices while prefix can be same 
> (atleast on a link/local site) completely
> or to some prefix len portion.

I think it might be fastest to do 3-0-2-1 as that will more quickly tell
a global from a link-local address.

I will eventually do a 64-bit comparison to see if putting an
#ifdef CONFIG_64BIT is worth it.

-Brian


<Prev in Thread] Current Thread [Next in Thread>