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