Linux arp cache timeout values

Posted by Jak on Server Fault See other posts from Server Fault or by Jak
Published on 2013-11-08T16:53:36Z Indexed on 2013/11/09 9:58 UTC
Read the original article Hit count: 229

Filed under:
|
|

I'm trying to configure sane values for the Linux kernel arp cache timeout, but I can't find a detailed explanation as to how they work anywhere. Even the kernel.org documentation doesn't give a good explanation, I can only find recommended values to alleviate overflow.

Here is an example of the values I have:

net.ipv4.neigh.default.gc_thresh1 = 128
net.ipv4.neigh.default.gc_thresh2 = 512
net.ipv4.neigh.default.gc_thresh3 = 1024

Now, from what I've gathered so far:

  • gc_thresh1 is the number of arp entries allowed before the garbage collector starts removing any entries at all.

  • gc_thresh2 is the soft-limit, which is the number of entries allowed before the garbage collector actively removes arp entries.

  • gc_thresh3 is the hard limit, where entries above this number are aggressively removed.

Now, if I understand correctly, if the number of arp entries goes beyond gc_thresh1 but remains below gc_thresh2, the excess will be removed periodically with an interval set by gc_interval.

My question is, if the number of entries goes beyond gc_thresh2 but below gc_thresh3, or if the number goes beyond gc_thresh3, how are the entries removed? In other words, what does "actively" and "aggressively" removed mean exactly? I assume it means they are removed more frequently than what is defined in gc_interval, but I can't find by how much.

© Server Fault or respective owner

Related posts about linux

Related posts about kernel