gatekeeper
gatekeeper copied to clipboard
gt: expire Ethernet cache of neighbors
Instances of the GT block maintain a cache of Ethernet header caches; see gt/main.c:gt_neigh_get_ether_cache(). While this cache removes entries when it's full (see drop_cache_entry_randomly()), it should also have an expiration of those entries as well. Whenever those entries are looked up (see lookup_ether_cache()) the expiration field should be updated.
This is important because IPv6 prefixes are so huge that they can easily be much larger than the entire cache. While the size of the cache can easily match the number of active IPv6 addresses, it can't match the size of an IPv6 prefix /64.