[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <485B1337.2000202@miraclelinux.com>
Date: Fri, 20 Jun 2008 11:17:27 +0900
From: Toyo Abe <tabe@...aclelinux.com>
To: YOSHIFUJI Hideaki / 吉藤英明
<yoshfuji@...ux-ipv6.org>, davem@...emloft.net
CC: netdev@...r.kernel.org
Subject: Re: [IPV6] ADDRCONF: Defer dad for global address until dad for linklocal
is completed.
Hi,
I'm wondering why the fix inlined below is not included.
I'd tested this fix w/ TAHI test suite. Then, the failed test cases - v6LC.3.1.2 Part B, Part D,
v6LC.3.1.3 Part I, and Part J in IPv6 Stateless Address Autoconfiguration test - were all passed.
If just waiting for verification info, I'm really sorry for the lazy response.
I think this can be merged.
Thank you,
-toyo
YOSHIFUJI Hideaki / 吉藤英明 wrote:
> In article <4832C3CC.5070609@...aclelinux.com> (at Tue, 20 May 2008 21:27:56 +0900), Toyo Abe <tabe@...aclelinux.com> says:
>
>> I was also thinking so. And I tried it at first.
>> But then, many other test scenarios in TAHI test suite went to FAIL. It
>> was because
>> the tester node send RA with prefix option to the host right after it
>> receives DAD NS
>> from the host, which is obviously in autoconfiguration process for
>> linklocal address.
>
> If so, we should complain about the spec / tests.
>
>> Since current addrconf code actually accepts RA including prefix option
>> while DAD for
>> linklocal address is processing, changes of the behaviour looks like a
>> degradation for me.
>> Hence, I chose to accept RA at that moment and defer sending DAD NS for
>> global addresses.
>
> Well I don't think so.
> We should choose simpler way - avoid introducing new "unique" state so far.
>
> If you really think is worth accepting RA during DAD for link-local
> address, we should cancel all of on-going DADs for global address(es)
> if the RA for link-local address has failed, intead of deferring DAD
> for global address(es).
>
> ---
> [RFC PATCH] [IPV6] ADDRCONF: Do not generate "global" address unless valid link-local address is available.
>
> Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@...ux-ipv6.org>
> ---
> diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
> index e591e09..df99c5e 100644
> --- a/net/ipv6/addrconf.c
> +++ b/net/ipv6/addrconf.c
> @@ -1813,8 +1813,14 @@ void addrconf_prefix_rcv(struct net_device *dev, u8 *opt, int len)
>
> if (pinfo->prefix_len == 64) {
> memcpy(&addr, &pinfo->prefix, 8);
> - if (ipv6_generate_eui64(addr.s6_addr + 8, dev) &&
> - ipv6_inherit_eui64(addr.s6_addr + 8, in6_dev)) {
> + if (ipv6_inherit_eui64(addr.s6_addr + 8, in6_dev)) {
> + /*
> + * If a valid link-local address is not found,
> + * let's ignore autonomous flag.
> + */
> + if (net_ratelimit())
> + printk(KERN_DEBUG "IPv6 addrconf: valid link-local address not found on %s\n",
> + in6_dev->dev->name);
> in6_dev_put(in6_dev);
> return;
> }
>
> --yoshfuji
>
--
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