diff mbox

[nft,v2] src: evaluate: Show error for fanout without balance

Message ID 20160408112652.GA3580@salvia
State RFC
Delegated to: Pablo Neira
Headers show

Commit Message

Pablo Neira Ayuso April 8, 2016, 11:26 a.m. UTC
On Thu, Apr 07, 2016 at 10:58:54PM +0530, Shivani Bhardwaj wrote:
> The idea of fanout option is to improve the performance by indexing CPU
> ID to map packets to the queues. This is used for load balancing.
> Fanout option is not required when there is a single queue specified.
> 
> According to iptables, queue balance should be specified in order to use
> fanout. Following that, throw an error in nftables if the range of
> queues for load balancing is not specified with the fanout option.
> 
> After this patch,
> 
> $ sudo nft add rule ip filter forward counter queue num 0 fanout
> <cmdline>:1:46-46: Error: fanout requires queue num range to be specified
> add rule ip filter forward counter queue num 0 fanout
>                                              ^

Thanks, I'm applying this with updates, basically adding this chunk to
your patch:


I'm basically reseting the location here.

So the error printing look like:

    $ sudo nft add rule ip filter forward counter queue num 0 fanout
    <cmdline>:1:46-46: Error: fanout requires a range to be specified
    add rule ip filter forward counter queue num 0 fanout
                                             ^^^^^

which seems slightly better.

We can probably use expr_binary_error() instead expr_error() so we get
something like:

    $ sudo nft add rule ip filter forward counter queue num 0 fanout
    <cmdline>:1:46-46: Error: fanout requires a range to be specified
    add rule ip filter forward counter queue num 0 fanout
                                             ^^^^^ ~~~~~~

But this requires revisiting the parser to convert the flags to
expressions, let's have a look at this later.
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/src/parser_bison.y b/src/parser_bison.y
index 4b7c1f5..444ed4c 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
                        {