On Wed, Oct 25, 2017 at 01:40:29PM +0200, Phil Sutter wrote: > In the past, CLI as a potentially long running process had to make sure > it kept it's cache up to date with kernel's rule set. A simple test case > is this: > > | shell a | shell b > | | # nft -i > | # nft add table ip t | > | | nft> list ruleset > | | table ip t { > | | } > | # nft flush ruleset | > | | nft> list ruleset > | | nft> > > In order to make sure interactive CLI wouldn't incorrectly list the > table again in the second 'list' command, it immediately flushed it's > cache after every command execution. > > This patch eliminates the need for that by making cache updates depend > on kernel's generation ID: A cache update stores the current rule set's > ID in struct nft_cache, consecutive calls to cache_update() compare that > stored value to the current generation ID received from kernel - if the > stored value is zero (i.e. no previous cache update did happen) or if it > doesn't match the kernel's value (i.e. cache is outdated) the cache is > flushed and fully initialized again. Applied, thanks Phil. -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html