netfilter: nf_tables: handle nft_object lookups via rhltable
authorFlorian Westphal <fw@strlen.de>
Tue, 8 Jan 2019 14:45:59 +0000 (15:45 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Fri, 18 Jan 2019 14:02:33 +0000 (15:02 +0100)
commit4d44175aa5bb5f68772b1eb0306554812294ca52
treefc4e7b368bdbfc6c51435d0e49d0a67e8b431c1a
parentd152159b89118841ebc0f7be2aadf79a22c6c501
netfilter: nf_tables: handle nft_object lookups via rhltable

Instead of linear search, use rhlist interface to look up the objects.
This fixes rulesets with thousands of named objects (quota, counters and
the like).

We only use a single table for this and consider the address of the
table we're doing the lookup in as a part of the key.

This reduces restore time of a sample ruleset with ~20k named counters
from 37 seconds to 0.8 seconds.

Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
include/net/netfilter/nf_tables.h
net/netfilter/nf_tables_api.c
net/netfilter/nft_objref.c