From dd05c561a02e2de3bf7bda8d51c8777cb7564ff1 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Fri, 20 Aug 2021 12:43:50 +0200 Subject: src: queue: consolidate queue statement syntax Print queue statement using the 'queue ... to' syntax to consolidate the syntax around Florian's proposal introduced in 6cf0f2c17bfb ("src: queue: allow use of arbitrary queue expressions"). Retain backward compatibility, 'queue num' syntax is still allowed. Update and add new tests. Signed-off-by: Pablo Neira Ayuso --- tests/py/any/queue.t | 22 ++++--- tests/py/any/queue.t.json | 75 ++++++++++++++++++++++ tests/py/any/queue.t.payload | 24 +++++++ .../nft-f/dumps/0012different_defines_0.nft | 6 +- 4 files changed, 116 insertions(+), 11 deletions(-) (limited to 'tests') diff --git a/tests/py/any/queue.t b/tests/py/any/queue.t index 446b8b18..f12acfaf 100644 --- a/tests/py/any/queue.t +++ b/tests/py/any/queue.t @@ -6,15 +6,15 @@ *arp;test-arp;output *bridge;test-bridge;output -queue;ok;queue num 0 -queue num 2;ok -queue num 65535;ok +queue;ok;queue to 0 +queue num 2;ok;queue to 2 +queue num 65535;ok;queue to 65535 queue num 65536;fail -queue num 2-3;ok -queue num 1-65535;ok -queue num 4-5 fanout bypass;ok;queue flags bypass,fanout num 4-5 -queue num 4-5 fanout;ok;queue flags fanout num 4-5 -queue num 4-5 bypass;ok;queue flags bypass num 4-5 +queue num 2-3;ok;queue to 2-3 +queue num 1-65535;ok;queue to 1-65535 +queue num 4-5 fanout bypass;ok;queue flags bypass,fanout to 4-5 +queue num 4-5 fanout;ok;queue flags fanout to 4-5 +queue num 4-5 bypass;ok;queue flags bypass to 4-5 queue to symhash mod 2 offset 65536;fail queue num symhash mod 65536;fail @@ -23,6 +23,12 @@ queue flags fanout to symhash mod 65536;fail queue flags bypass,fanout to symhash mod 65536;fail queue flags bypass to numgen inc mod 65536;ok queue to jhash oif . meta mark mod 32;ok +queue to 2;ok +queue to 65535;ok +queue flags bypass to 65535;ok +queue flags bypass to 1-65535;ok +queue flags bypass,fanout to 1-65535;ok +queue to 1-65535;ok queue to oif;fail queue num oif;fail queue flags bypass to oifname map { "eth0" : 0, "ppp0" : 2, "eth1" : 2 };ok diff --git a/tests/py/any/queue.t.json b/tests/py/any/queue.t.json index 162bdff8..5f7f9014 100644 --- a/tests/py/any/queue.t.json +++ b/tests/py/any/queue.t.json @@ -174,3 +174,78 @@ } ] +# queue to 2 +[ + { + "queue": { + "num": 2 + } + } +] + +# queue to 65535 +[ + { + "queue": { + "num": 65535 + } + } +] + +# queue flags bypass to 65535 +[ + { + "queue": { + "flags": "bypass", + "num": 65535 + } + } +] + +# queue flags bypass to 1-65535 +[ + { + "queue": { + "flags": "bypass", + "num": { + "range": [ + 1, + 65535 + ] + } + } + } +] + +# queue flags bypass,fanout to 1-65535 +[ + { + "queue": { + "flags": [ + "bypass", + "fanout" + ], + "num": { + "range": [ + 1, + 65535 + ] + } + } + } +] + +# queue to 1-65535 +[ + { + "queue": { + "num": { + "range": [ + 1, + 65535 + ] + } + } + } +] + diff --git a/tests/py/any/queue.t.payload b/tests/py/any/queue.t.payload index 02660afa..2f221930 100644 --- a/tests/py/any/queue.t.payload +++ b/tests/py/any/queue.t.payload @@ -55,3 +55,27 @@ ip [ meta load oifname => reg 1 ] [ lookup reg 1 set __map%d dreg 1 ] [ queue sreg_qnum 1 bypass ] + +# queue to 2 +ip + [ queue num 2 ] + +# queue to 65535 +ip + [ queue num 65535 ] + +# queue flags bypass to 65535 +ip + [ queue num 65535 bypass ] + +# queue flags bypass to 1-65535 +ip + [ queue num 1-65535 bypass ] + +# queue flags bypass,fanout to 1-65535 +ip + [ queue num 1-65535 bypass fanout ] + +# queue to 1-65535 +ip + [ queue num 1-65535 ] diff --git a/tests/shell/testcases/nft-f/dumps/0012different_defines_0.nft b/tests/shell/testcases/nft-f/dumps/0012different_defines_0.nft index e690f322..4734b2fd 100644 --- a/tests/shell/testcases/nft-f/dumps/0012different_defines_0.nft +++ b/tests/shell/testcases/nft-f/dumps/0012different_defines_0.nft @@ -12,9 +12,9 @@ table inet t { ip daddr . iif vmap { 10.0.0.0 . "lo" : accept } tcp dport 100-222 udp dport vmap { 100-222 : accept } - tcp sport 1 tcp dport 1 oifname "foobar" queue flags bypass num 0 - tcp sport 1 tcp dport 1 oifname "foobar" queue num 1-42 - tcp sport 1 tcp dport 1 oifname "foobar" queue flags bypass,fanout num 1-42 + tcp sport 1 tcp dport 1 oifname "foobar" queue flags bypass to 0 + tcp sport 1 tcp dport 1 oifname "foobar" queue to 1-42 + tcp sport 1 tcp dport 1 oifname "foobar" queue flags bypass,fanout to 1-42 tcp sport 1 tcp dport 1 oifname "foobar" queue to symhash mod 2 tcp sport 1 tcp dport 1 oifname "foobar" queue flags bypass to jhash tcp dport . tcp sport mod 4 } -- cgit v1.2.3