]> git.ipfire.org Git - thirdparty/nftables.git/commit
src: queue: allow use of arbitrary queue expressions
authorFlorian Westphal <fw@strlen.de>
Tue, 15 Jun 2021 12:57:08 +0000 (14:57 +0200)
committerFlorian Westphal <fw@strlen.de>
Mon, 21 Jun 2021 12:44:58 +0000 (14:44 +0200)
commit6cf0f2c17bfb96c05dd0c03e0b91a75d732917cf
treeabb34028a9da0d2de41f26f1d40a61657022233c
parent3486127e52426d1861a78b44f10e5997c3a69ff2
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>
doc/statements.txt
src/evaluate.c
src/netlink_delinearize.c
src/netlink_linearize.c
src/parser_bison.y
src/statement.c