summaryrefslogtreecommitdiffstats
path: root/include/libipset
diff options
context:
space:
mode:
authorJozsef Kadlecsik <kadlec@netfilter.org>2020-09-21 10:21:39 +0200
committerJozsef Kadlecsik <kadlec@netfilter.org>2020-09-21 10:21:39 +0200
commitde340a7f1a9cf21931d94ea8814545c4b2d172b0 (patch)
tree0a69eaed9d425a233d4213e3cb3e129d5d25796f /include/libipset
parentdfdbad53f9c5a7bc3f357b53f11a840c8fda3635 (diff)
Add bucketsize parameter to all hash types
The parameter defines the upper limit in any hash bucket at adding new entries from userspace - if the limit would be exceeded, ipset doubles the hash size and rehashes. It means the set may consume more memory but gives faster evaluation at matching in the set. Signed-off-by: Jozsef Kadlecsik <kadlec@netfilter.org>
Diffstat (limited to 'include/libipset')
-rw-r--r--include/libipset/args.h1
-rw-r--r--include/libipset/data.h1
-rw-r--r--include/libipset/linux_ip_set.h4
3 files changed, 5 insertions, 1 deletions
diff --git a/include/libipset/args.h b/include/libipset/args.h
index 616cca5..93b4456 100644
--- a/include/libipset/args.h
+++ b/include/libipset/args.h
@@ -56,6 +56,7 @@ enum ipset_keywords {
IPSET_ARG_SKBMARK, /* skbmark */
IPSET_ARG_SKBPRIO, /* skbprio */
IPSET_ARG_SKBQUEUE, /* skbqueue */
+ IPSET_ARG_BUCKETSIZE, /* bucketsize */
IPSET_ARG_MAX,
};
diff --git a/include/libipset/data.h b/include/libipset/data.h
index 851773a..cce6407 100644
--- a/include/libipset/data.h
+++ b/include/libipset/data.h
@@ -67,6 +67,7 @@ enum ipset_opt {
IPSET_OPT_SKBPRIO,
IPSET_OPT_SKBQUEUE,
IPSET_OPT_IFACE_WILDCARD,
+ IPSET_OPT_BUCKETSIZE,
/* Internal options */
IPSET_OPT_FLAGS = 48, /* IPSET_FLAG_EXIST| */
IPSET_OPT_CADT_FLAGS, /* IPSET_FLAG_BEFORE| */
diff --git a/include/libipset/linux_ip_set.h b/include/libipset/linux_ip_set.h
index 7fd9948..e67116f 100644
--- a/include/libipset/linux_ip_set.h
+++ b/include/libipset/linux_ip_set.h
@@ -96,7 +96,7 @@ enum {
IPSET_ATTR_HASHSIZE,
IPSET_ATTR_MAXELEM,
IPSET_ATTR_NETMASK,
- IPSET_ATTR_PROBES,
+ IPSET_ATTR_BUCKETSIZE, /* was unused IPSET_ATTR_PROBES */
IPSET_ATTR_RESIZE,
IPSET_ATTR_SIZE,
/* Kernel-only */
@@ -214,6 +214,8 @@ enum ipset_cadt_flags {
enum ipset_create_flags {
IPSET_CREATE_FLAG_BIT_FORCEADD = 0,
IPSET_CREATE_FLAG_FORCEADD = (1 << IPSET_CREATE_FLAG_BIT_FORCEADD),
+ IPSET_CREATE_FLAG_BIT_BUCKETSIZE = 1,
+ IPSET_CREATE_FLAG_BUCKETSIZE = (1 << IPSET_CREATE_FLAG_BIT_BUCKETSIZE),
IPSET_CREATE_FLAG_BIT_MAX = 7,
};