From: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
To: David Miller <davem@davemloft.net>
Cc: netdev@vger.kernel.org, YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Subject: Re: Rate Limitation of Router Reachability Probing for possible dead routers (is Re: ipv6: Do not depend on rt->n in rt6_probe().)
Date: Tue, 22 Jan 2013 12:47:42 +0900 [thread overview]
Message-ID: <50FE0BDE.2080206@linux-ipv6.org> (raw)
In-Reply-To: <20130121.154425.239941234471254414.davem@davemloft.net>
David Miller wrote:
> From: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
> Date: Tue, 22 Jan 2013 04:28:36 +0900
>
>> Ok, fix is easy, but in fact, we have broken router reachability
>> probing.
>>
>> Here rt->n was neighbour entry for (unreachable) router.
>> The specification says, we SHOUDLD probe such router, but we
>> should have some rate limit (once per minute, or so).
>>
>> We used "rt->n->updated" for this purpose, but now, if NS failed,
>> we may immediately removes neighbour entry for it. So,
>> we might continue sending NS to dead router every 1 second.
>>
>> Any ideas?
>
> I don't see exactly how looking up the neigh on demand is different
> from using a cached one in this context.
>
> In both cases there should be a neigh entry in nd_tbl, why would
> there not be one?
Well, now, the almost only refcnt holder except table is timer.
because each route does not have reference to neighbour (thus no
refcnt) anymore.
If n->nud_state become NUD_FAILED (or even in NUD_STALE),
the entry does not have any refcnt holders other than table,
and then, neigh_periodic_work() will purge such entries.
> If necessary, you can decide to mark entries in such a way that
> they would have a lower priority for neigh GC purging if that
> is the issue.
It seems that we removed check for gc_thresh1 (number of
minimum entries) in neigh_alloc() during 2.3.x but I cannot
remember the reason (or just I do not know it).
--yoshfuji
next prev parent reply other threads:[~2013-01-22 3:47 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-21 18:28 ipv6: Do not depend on rt->n in rt6_probe() Dan Carpenter
2013-01-21 18:41 ` YOSHIFUJI Hideaki
2013-01-21 19:28 ` Rate Limitation of Router Reachability Probing for possible dead routers (is Re: ipv6: Do not depend on rt->n in rt6_probe().) YOSHIFUJI Hideaki
2013-01-21 20:44 ` David Miller
2013-01-22 3:47 ` YOSHIFUJI Hideaki [this message]
2013-01-22 5:49 ` David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=50FE0BDE.2080206@linux-ipv6.org \
--to=yoshfuji@linux-ipv6.org \
--cc=davem@davemloft.net \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.