Question about arp caches
Hi, I'm reading the code about arp protocol. It seems like the kernel uses the neigh_table structure to keep track of caches, right? There should be some code that remove the stale entries in the cache, but I didn't find the code that does this job. Does anyone have an idea? Thanks, Yisu
On Tue, Nov 29, 2016 at 10:40 AM, Shawn Peng <yisupeng@gmail.com> wrote:
I'm reading the code about arp protocol. It seems like the kernel uses the neigh_table structure to keep track of caches, right?
yes.
There should be some code that remove the stale entries in the cache, but I didn't find the code that does this job. Does anyone have an idea?
look at neigh_release(...) and neigh_destroy(...). basically, neigh_release(...) decrements the reference count of a neighbor, and neigh_destroy(...) frees it when this reference count reaches zero. -- kind regards anupam In the beginning was the lambda, and the lambda was with Emacs, and Emacs was the lambda.
I find a lot references of the function neigh_release(), can you direct me to the one that releases a staled arp entry? Thanks. On 11/29/2016 12:50 AM, Anupam Kapoor wrote:
On Tue, Nov 29, 2016 at 10:40 AM, Shawn Peng <yisupeng@gmail.com <mailto:yisupeng@gmail.com>> wrote:
I'm reading the code about arp protocol. It seems like the kernel uses the neigh_table structure to keep track of caches, right?
yes.
There should be some code that remove the stale entries in the cache, but I didn't find the code that does this job. Does anyone have an idea?
look at neigh_release(...) and neigh_destroy(...). basically, neigh_release(...) decrements the reference count of a neighbor, and neigh_destroy(...) frees it when this reference count reaches zero.
-- kind regards anupam
In the beginning was the lambda, and the lambda was with Emacs, and Emacs was the lambda.
participants (2)
-
Anupam Kapoor -
Shawn Peng