diff options
author | Florian Westphal <fw@strlen.de> | 2021-06-15 14:57:08 +0200 |
---|---|---|
committer | Florian Westphal <fw@strlen.de> | 2021-06-21 14:44:58 +0200 |
commit | 6cf0f2c17bfb96c05dd0c03e0b91a75d732917cf (patch) | |
tree | abb34028a9da0d2de41f26f1d40a61657022233c /doc/statements.txt | |
parent | 3486127e52426d1861a78b44f10e5997c3a69ff2 (diff) |
src: queue: allow use of arbitrary queue expressions
back in 2016 Liping Zhang added support to kernel and libnftnl to
specify a source register containing the queue number to use.
This was never added to nft itself, so allow this.
On linearization side, check if attached expression is a range.
If its not, allocate a new register and set NFTNL_EXPR_QUEUE_SREG_QNUM
attribute after generating the lowlevel expressions for the kernel.
On delinarization we need to check for presence of
NFTNL_EXPR_QUEUE_SREG_QNUM and decode the expression(s) when present.
Also need to do postprocessing for STMT_QUEUE so that the protocol
context is set correctly, without this only raw payload expressions
will be shown (@nh,32,...) instead of 'ip ...'.
Next patch adds test cases.
Signed-off-by: Florian Westphal <fw@strlen.de>
Diffstat (limited to 'doc/statements.txt')
-rw-r--r-- | doc/statements.txt | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/doc/statements.txt b/doc/statements.txt index 602a5b20..c2a61659 100644 --- a/doc/statements.txt +++ b/doc/statements.txt @@ -591,11 +591,15 @@ for details. ____ *queue* [*flags* 'QUEUE_FLAGS'] [*num* 'queue_number'] *queue* [*flags* 'QUEUE_FLAGS'] [*num* 'queue_number_from' - 'queue_number_to'] +*queue* [*flags* 'QUEUE_FLAGS'] [*to* 'QUEUE_EXPRESSION' ] 'QUEUE_FLAGS' := 'QUEUE_FLAG' [*,* 'QUEUE_FLAGS'] 'QUEUE_FLAG' := *bypass* | *fanout* +'QUEUE_EXPRESSION' := *numgen* | *hash* | *symhash* ____ +QUEUE_EXPRESSION can be used to compute a queue number +at run-time with the hash or numgen expressions. .queue statement values [options="header"] |