diff options
-rw-r--r-- | src/evaluate.c | 5 | ||||
-rw-r--r-- | src/parser_bison.y | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/evaluate.c b/src/evaluate.c index d9ac8542..346e34fc 100644 --- a/src/evaluate.c +++ b/src/evaluate.c @@ -2006,6 +2006,11 @@ static int stmt_evaluate_queue(struct eval_ctx *ctx, struct stmt *stmt) if (!expr_is_constant(stmt->queue.queue)) return expr_error(ctx->msgs, stmt->queue.queue, "queue number is not constant"); + if (stmt->queue.queue->ops->type != EXPR_RANGE && + (stmt->queue.flags & NFT_QUEUE_FLAG_CPU_FANOUT)) + return expr_error(ctx->msgs, stmt->queue.queue, + "fanout requires a range to be " + "specified"); } return 0; } diff --git a/src/parser_bison.y b/src/parser_bison.y index 4b7c1f5a..444ed4c2 100644 --- a/src/parser_bison.y +++ b/src/parser_bison.y @@ -1722,6 +1722,7 @@ queue_stmt_args : queue_stmt_arg queue_stmt_arg : QUEUENUM stmt_expr { $<stmt>0->queue.queue = $2; + $<stmt>0->queue.queue->location = @$; } | queue_stmt_flags { |