summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2017-11-06 05:57:13 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2017-11-07 01:00:30 +0100
commit644e334eeec01a25138b62ebd576b3a798183c7c (patch)
tree6bddc584ce4a2259f70f4de1f3e0869d5488c7f0 /net
parent0984d427c1d3cb2aa882c9ad9e787ba973cf2915 (diff)
downloadlinux-644e334eeec01a25138b62ebd576b3a798183c7c.tar.gz
linux-644e334eeec01a25138b62ebd576b3a798183c7c.tar.bz2
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')
-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) {