After the new cache system, nft raises a table error
flushing a chain in a transaction.

 # nft "flush chain ip nftlb filter-newfarm ; \
    add rule ip nftlb filter-newfarm update \
    @persist-newfarm {  ip saddr : ct mark } ; \
    flush chain ip nftlb nat-newfarm"
 Error: No such file or directory
 flush chain ip nftlb filter-newfarm ; add rule ip nftlb (...)
                                                   ^^^^^

This patch sets the cache flag properly to save this
case.

Fixes: 01e5c6f0ed031 ("src: add cache level flags")
Signed-off-by: Laura Garcia Liebana <nev...@gmail.com>
---
 src/cache.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/cache.c b/src/cache.c
index 0d38034e..6f5fc342 100644
--- a/src/cache.c
+++ b/src/cache.c
@@ -71,6 +71,9 @@ static unsigned int evaluate_cache_flush(struct cmd *cmd, 
unsigned int flags)
        case CMD_OBJ_METER:
                flags |= NFT_CACHE_SET;
                break;
+       case CMD_OBJ_CHAIN:
+               flags |= NFT_CACHE_CHAIN;
+               break;
        case CMD_OBJ_RULESET:
                flags |= NFT_CACHE_FLUSHED;
                break;
-- 
2.11.0

Reply via email to