summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/evaluate.c5
-rw-r--r--src/parser_bison.y1
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
{