diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2021-04-02 20:26:15 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2021-04-03 19:41:02 +0200 |
commit | df48e56e987f84bb32ea53dfe98569dfe3fb7e37 (patch) | |
tree | 945f098ec9d185504435f31cfe792b734e1efd0b /src/monitor.c | |
parent | 6b7b7d5d219dca4465390f4a69096383d17782d3 (diff) |
cache: add hashtable cache for sets
This patch adds a hashtable for set lookups.
This patch also splits table->sets in two:
- Sets that reside in the cache are stored in the new
tables->cache_set and tables->cache_set_ht.
- Set that defined via command line / ruleset file reside in
tables->set.
Sets in the cache (already in the kernel) are not placed in the
table->sets list.
By keeping separated lists, sets defined via command line / ruleset file
can be added to cache.
Adding 10000 sets, before:
# time nft -f x
real 0m6,415s
user 0m3,126s
sys 0m3,284s
After:
# time nft -f x
real 0m3,949s
user 0m0,743s
sys 0m3,205s
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/monitor.c')
-rw-r--r-- | src/monitor.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/monitor.c b/src/monitor.c index 047d89db..dc3f0848 100644 --- a/src/monitor.c +++ b/src/monitor.c @@ -632,7 +632,7 @@ static void netlink_events_cache_addset(struct netlink_mon_handler *monh, goto out; } - set_add_hash(s, t); + set_cache_add(s, t); out: nftnl_set_free(nls); } |