netfilter-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH nft,v3 0/7] revisit overlap/automerge codebase
@ 2022-03-01 20:58 Pablo Neira Ayuso
  2022-03-01 20:58 ` [PATCH nft,v3 1/7] src: add EXPR_F_KERNEL to identify expression in the kernel Pablo Neira Ayuso
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: Pablo Neira Ayuso @ 2022-03-01 20:58 UTC (permalink / raw)
  To: netfilter-devel

Hi,

This is another iteration on the set element automerge codebase.

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 version also contains support to delete via automerge which allows
you to merge new ranges to existing ones as well as to perform partial
deletions.

This adds a new testcases/sets/0069interval_merge_0.

This is passing tests/shell and tests/py.

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


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-03-01 20:58 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-03-01 20:58 [PATCH nft,v3 0/7] revisit overlap/automerge codebase Pablo Neira Ayuso
2022-03-01 20:58 ` [PATCH nft,v3 1/7] src: add EXPR_F_KERNEL to identify expression in the kernel Pablo Neira Ayuso
2022-03-01 20:58 ` [PATCH nft,v3 2/7] src: replace interval segment tree overlap and automerge Pablo Neira Ayuso
2022-03-01 20:58 ` [PATCH nft,v3 3/7] src: remove rbtree datastructure Pablo Neira Ayuso
2022-03-01 20:58 ` [PATCH nft,v3 4/7] mnl: update mnl_nft_setelem_del() to allow for more reuse Pablo Neira Ayuso
2022-03-01 20:58 ` [PATCH nft,v3 5/7] intervals: add support to automerge with kernel elements Pablo Neira Ayuso
2022-03-01 20:58 ` [PATCH nft,v3 6/7] evaluate: allow for zero length ranges Pablo Neira Ayuso
2022-03-01 20:58 ` [PATCH nft,v3 7/7] intervals: support to partial deletion with automerge Pablo Neira Ayuso

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).