From: Pablo Neira Ayuso <pablo@netfilter.org>
To: netfilter-devel@vger.kernel.org
Subject: [PATCH nft,v4 0/7] revisit overlap/automerge codebase
Date: Tue, 12 Apr 2022 16:47:04 +0200 [thread overview]
Message-ID: <20220412144711.93354-1-pablo@netfilter.org> (raw)
Hi,
This is another iteration of the set element automerge codebase rework,
posted last time in March 1st.
This series comes with a oneliner fix for Patch 2/7 "src: replace interval
segment tree overlap and automerge" that sets on i->elem_flags instead of
elem->elem_flags (this was breaking open intervals).
Now tests/monitor are passing fine in this batch.
This patchset removes the segment tree interval overlap/automerge codebase.
This is replaced with mergesort of the set elements + check for overlaps by
linearly iterating the set elements. This also allows to use automerge with
set element deletions.
This is passing tests/shell, tests/py and tests/monitor.
Pablo Neira Ayuso (7):
src: add EXPR_F_KERNEL to identify expression in the kernel
src: replace interval segment tree overlap and automerge
src: remove rbtree datastructure
mnl: update mnl_nft_setelem_del() to allow for more reuse
intervals: add support to automerge with kernel elements
evaluate: allow for zero length ranges
intervals: support to partial deletion with automerge
include/Makefile.am | 2 +-
include/expression.h | 7 +-
include/intervals.h | 12 +
include/mnl.h | 3 +-
include/rbtree.h | 98 ---
include/rule.h | 2 +
src/Makefile.am | 2 +-
src/cache.c | 6 +
src/evaluate.c | 75 +-
src/intervals.c | 740 ++++++++++++++++++
src/libnftables.c | 4 +-
src/mergesort.c | 1 +
src/mnl.c | 6 +-
src/netlink.c | 1 +
src/rbtree.c | 388 ---------
src/rule.c | 25 +-
src/segtree.c | 660 +---------------
.../shell/testcases/sets/0069interval_merge_0 | 28 +
.../sets/dumps/0069interval_merge_0.nft | 9 +
19 files changed, 895 insertions(+), 1174 deletions(-)
create mode 100644 include/intervals.h
delete mode 100644 include/rbtree.h
create mode 100644 src/intervals.c
delete mode 100644 src/rbtree.c
create mode 100755 tests/shell/testcases/sets/0069interval_merge_0
create mode 100644 tests/shell/testcases/sets/dumps/0069interval_merge_0.nft
--
2.30.2
next reply other threads:[~2022-04-12 14:47 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-12 14:47 Pablo Neira Ayuso [this message]
2022-04-12 14:47 ` [PATCH nft,v4 1/7] src: add EXPR_F_KERNEL to identify expression in the kernel Pablo Neira Ayuso
2022-04-12 14:47 ` [PATCH nft,v4 2/7] src: replace interval segment tree overlap and automerge Pablo Neira Ayuso
2022-04-12 14:47 ` [PATCH nft,v4 3/7] src: remove rbtree datastructure Pablo Neira Ayuso
2022-04-12 14:47 ` [PATCH nft,v4 4/7] mnl: update mnl_nft_setelem_del() to allow for more reuse Pablo Neira Ayuso
2022-04-12 14:47 ` [PATCH nft,v4 5/7] intervals: add support to automerge with kernel elements Pablo Neira Ayuso
2022-04-12 14:47 ` [PATCH nft,v4 6/7] evaluate: allow for zero length ranges Pablo Neira Ayuso
2022-04-12 14:47 ` [PATCH nft,v4 7/7] intervals: support to partial deletion with automerge Pablo Neira Ayuso
2022-04-13 12:54 ` Phil Sutter
2022-04-13 13:13 ` Pablo Neira Ayuso
2022-04-13 14:02 ` Phil Sutter
2022-04-13 14:27 ` Pablo Neira Ayuso
2022-04-13 14:38 ` Phil Sutter
2022-04-13 14:45 ` Pablo Neira Ayuso
2022-04-13 14:47 ` Pablo Neira Ayuso
2022-04-13 14:54 ` Pablo Neira Ayuso
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220412144711.93354-1-pablo@netfilter.org \
--to=pablo@netfilter.org \
--cc=netfilter-devel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).