Hi, On Tue, Nov 12, 2019 at 08:10:07PM +0100, Phil Sutter wrote: > Make sure any intervals to delete actually exist, otherwise reject the > command. Without this, it is possible to mess up rbtree contents: > > | # nft list ruleset > | table ip t { > | set s { > | type ipv4_addr > | flags interval > | auto-merge > | elements = { 192.168.1.0-192.168.1.254, 192.168.1.255 } > | } > | } > | # nft delete element t s '{ 192.168.1.0/24 }' > | # nft list ruleset > | table ip t { > | set s { > | type ipv4_addr > | flags interval > | auto-merge > | elements = { 192.168.1.255-255.255.255.255 } > | } > | } Sadly, this breaks tests/monitor/testcases/set-simple.t. The reason is that 'add element' command does not add the new element to set in cache and my change requires for 'delete element' command to find the range in cache. Above test case basically does: | # nft 'add element ip t s { 10-20 }; delete element ip t s { 10-20 }' This is not really a common use-case, but still worth fixing IMO. Sorry, Phil