Neighbour table overflow

I have some log like this:
Mar 21 07:20:07 myhost Neighbour table overflow.
Mar 21 07:20:13 myhost printk: 41 messages suppressed.
Mar 21 07:20:13 myhost Neighbour table overflow.
Mar 21 07:20:17 myhost printk: 40 messages suppressed.
Mar 21 07:20:17 myhost Neighbour table overflow.

It turns out to do with the routing and caching of the routes, where the system sees more than 128 different mac addresses. The neighbour table is generally known as ARP table. 128 is the default value set in
the parameter defined in /proc/sys/net/ipv4/neigh/default/gc_thresh1.

All the routing information is cached on an IP-IP pair basis. Part of the information is the destination mac address.

To fix it, raising the gc_thresh1 over the amount of mac addressess you would normally do these incrementally until the problem is gone:

echo 512 > /proc/sys/net/ipv4/neigh/default/gc_thresh1
echo 2048 > /proc/sys/net/ipv4/neigh/default/gc_thresh1
echo 4096 > /proc/sys/net/ipv4/neigh/default/gc_thresh1

However, there are 2 more values
/proc/sys/net/ipv4/neigh/default/gc_thresh2 and
/proc/sys/net/ipv4/neigh/default/gc_thresh3.

I cannot find information on these values. Anyone?

  1. Anonymous (not verified) on Tue, 02/08/2005 - 10:39am

    gc_thresh3 is a hard limit, don't ever grow past this limit.
    gc_thresh2 is a soft limit, if you pass this limit start culling crud.
    gc_thresh1 is the stop culling limit, once you drop to this point stop culling.