On Wed, Nov 30, 2016 at 1:46 PM, Yisu Peng <yisupeng@gmail.com> wrote:
So, how is the kernel check those staled arp entries? Or, what is the mechanism that the kernel uses to find the out of date entries?

​ok sure, well, each neighbor entry (struct neighbour) has a 'timer' (which is created during neighbor creation i.e. during neigh_alloc(...)). this timer gets 'serviced' by '​neigh_timer_handler(...)', which is the per neighbor garbage collector handler. 

when the state of the neighbor becomes NUD_FAILED, the neighbor is collected via invokation of 'neigh_release(...)' as indicated earlier.

​--
kind regards
anupam​

In the beginning was the lambda, and the lambda was with Emacs, and Emacs was the lambda.