netfilter: nft_set_hash: add nft_hash_buckets()
Add nft_hash_buckets() helper function to calculate the number of hashtable buckets based on the elements. This function can be reused from the follow up patch to add non-resizable hashtables. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
parent
347b408d59
commit
2111515abc
|
@ -363,12 +363,17 @@ static void nft_rhash_destroy(const struct nft_set *set)
|
|||
(void *)set);
|
||||
}
|
||||
|
||||
static u32 nft_hash_buckets(u32 size)
|
||||
{
|
||||
return roundup_pow_of_two(size * 4 / 3);
|
||||
}
|
||||
|
||||
static bool nft_rhash_estimate(const struct nft_set_desc *desc, u32 features,
|
||||
struct nft_set_estimate *est)
|
||||
{
|
||||
if (desc->size)
|
||||
est->size = sizeof(struct nft_rhash) +
|
||||
roundup_pow_of_two(desc->size * 4 / 3) *
|
||||
nft_hash_buckets(desc->size) *
|
||||
sizeof(struct nft_rhash_elem *) +
|
||||
desc->size * sizeof(struct nft_rhash_elem);
|
||||
else
|
||||
|
|
Loading…
Reference in a new issue