summaryrefslogtreecommitdiffstats
path: root/net/netfilter/nf_tables_api.c
diff options
context:
space:
mode:
authorPablo Neira Ayuso2017-11-06 05:57:13 +0100
committerPablo Neira Ayuso2017-11-07 01:00:30 +0100
commit644e334eeec01a25138b62ebd576b3a798183c7c (patch)
tree6bddc584ce4a2259f70f4de1f3e0869d5488c7f0 /net/netfilter/nf_tables_api.c
parentnetfilter: conntrack: use power efficient workqueue (diff)
downloadkernel-qcow2-linux-644e334eeec01a25138b62ebd576b3a798183c7c.tar.gz
kernel-qcow2-linux-644e334eeec01a25138b62ebd576b3a798183c7c.tar.xz
kernel-qcow2-linux-644e334eeec01a25138b62ebd576b3a798183c7c.zip
netfilter: nf_tables: performance set policy skips size description in selection
Use the complexity and space notations if policy is performance, this results in placing the bitmap set representation over the hashtable for key <= 16 for better performance as we discussed during the last NFWS in Faro, Portugal. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'net/netfilter/nf_tables_api.c')
-rw-r--r--net/netfilter/nf_tables_api.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c
index 929927171426..3b4a0739ee39 100644
--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
@@ -2549,14 +2549,9 @@ nft_select_set_ops(const struct nft_ctx *ctx,
case NFT_SET_POL_PERFORMANCE:
if (est.lookup < best.lookup)
break;
- if (est.lookup == best.lookup) {
- if (!desc->size) {
- if (est.space < best.space)
- break;
- } else if (est.size < best.size) {
- break;
- }
- }
+ if (est.lookup == best.lookup &&
+ est.space < best.space)
+ break;
continue;
case NFT_SET_POL_MEMORY:
if (!desc->size) {