Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 08 Nov 2012 11:17:57 +0100
From:      Andre Oppermann <oppermann@networx.ch>
To:        "Alexander V. Chernikov" <melifaro@FreeBSD.org>
Cc:        freebsd-net@FreeBSD.org
Subject:   Re: arp/ndp default hash size
Message-ID:  <509B86D5.6090401@networx.ch>
In-Reply-To: <509AE539.5050102@FreeBSD.org>
References:  <509AE539.5050102@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 07.11.2012 23:48, Alexander V. Chernikov wrote:
> Hello list!
>
> Currently size of arp/ndp hash is the following:
> #define    LLTBL_HASHTBL_SIZE      32      /* default 32 ? */
>
> This may be OK for end hosts, but this is definitely not enough for router howadays. Especially
> given that IPv6 hosts generate 2 ndp records.
>
> Output from 2 random v4 / v6 routers from my $job:
> 2:23 [0] m@matisse arp -an | wc -l
>      1494
> 2:24 [0] m@singapore ndp -an | wc -l
>      3999
>
> Given that LIST_HEAD is just a pointer, and we currently have single global (actually per-VNET)
> instance for every l3 proto, bumping hash to, say, at least 4096 should do no harm.

A small list per hash bucket isn't bad.  The hash should be about 1/4
of the expected table size.

One problem here may be the memory consumption on smaller systems.  A
very large hash table size may hurt and isn't needed for a few entries.

For a compromise I'd say the default hash table size should be 256 or 512.

-- 
Andre




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?509B86D5.6090401>