On Wed, May 22, 2019 at 05:30:35PM +0200, Phil Sutter wrote: > index 21d9e146e587f..9964adcf9a601 100644 > --- a/src/evaluate.c > +++ b/src/evaluate.c [...] > @@ -3418,8 +3455,13 @@ static int cmd_evaluate_add(struct eval_ctx *ctx, struct cmd *cmd) > handle_merge(&cmd->set->handle, &cmd->handle); > return set_evaluate(ctx, cmd->set); > case CMD_OBJ_RULE: > + /* update cache with CMD_LIST so that rules are fetched, too */ > + ret = cache_update(ctx->nft, CMD_LIST, ctx->msgs); > + if (ret < 0) > + return ret; This also slows down addition for the non-index case. We should allow fetch the cache only when needed.