From 788c986343bc24bd0272e8aa409121ffe51f1ef3 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Mon, 15 Aug 2016 13:14:18 +0200 Subject: src: quote user-defined strings when used from rule selectors The following selectors display strings using quotes: * meta iifname * meta oifname * meta ibriport * meta obriport However, the following do not: * meta oif * meta iif * meta skuid * meta skgid * meta iifgroup * meta oifgroup * meta rtclassid * ct label Given they refer to user-defined values, neither keywords nor internal built-in known values, let's quote the output of this. This patch modifies symbolic_constant_print() so we can signal this to indicate if the string needs to be quoted. Signed-off-by: Pablo Neira Ayuso --- tests/py/any/dup.t | 4 +-- tests/py/any/dup.t.payload | 4 +-- tests/py/any/fwd.t | 4 +-- tests/py/any/fwd.t.payload | 4 +-- tests/py/any/meta.t | 68 ++++++++++++++++++++++----------------------- tests/py/any/meta.t.payload | 50 ++++++++++++++++----------------- 6 files changed, 67 insertions(+), 67 deletions(-) (limited to 'tests/py/any') diff --git a/tests/py/any/dup.t b/tests/py/any/dup.t index 7df24a1c..d42cf343 100644 --- a/tests/py/any/dup.t +++ b/tests/py/any/dup.t @@ -2,6 +2,6 @@ *netdev;test-netdev;ingress -dup to lo;ok -dup to mark map { 0x00000001 : lo, 0x00000002 : lo};ok +dup to "lo";ok +dup to mark map { 0x00000001 : "lo", 0x00000002 : "lo"};ok diff --git a/tests/py/any/dup.t.payload b/tests/py/any/dup.t.payload index b1d6d164..4a615b2f 100644 --- a/tests/py/any/dup.t.payload +++ b/tests/py/any/dup.t.payload @@ -1,9 +1,9 @@ -# dup to lo +# dup to "lo" netdev test-netdev ingress [ immediate reg 1 0x00000001 ] [ dup sreg_dev 1 ] -# dup to mark map { 0x00000001 : lo, 0x00000002 : lo} +# dup to mark map { 0x00000001 : "lo", 0x00000002 : "lo"} __map%d test-netdev b __map%d test-netdev 0 element 00000001 : 00000001 0 [end] element 00000002 : 00000001 0 [end] diff --git a/tests/py/any/fwd.t b/tests/py/any/fwd.t index fb15aced..d9b4514e 100644 --- a/tests/py/any/fwd.t +++ b/tests/py/any/fwd.t @@ -2,6 +2,6 @@ *netdev;test-netdev;ingress -fwd to lo;ok -fwd to mark map { 0x00000001 : lo, 0x00000002 : lo};ok +fwd to "lo";ok +fwd to mark map { 0x00000001 : "lo", 0x00000002 : "lo"};ok diff --git a/tests/py/any/fwd.t.payload b/tests/py/any/fwd.t.payload index 0402b7a9..696b55ef 100644 --- a/tests/py/any/fwd.t.payload +++ b/tests/py/any/fwd.t.payload @@ -1,9 +1,9 @@ -# fwd to lo +# fwd to "lo" netdev test-netdev ingress [ immediate reg 1 0x00000001 ] [ fwd sreg_dev 1 ] -# fwd to mark map { 0x00000001 : lo, 0x00000002 : lo} +# fwd to mark map { 0x00000001 : "lo", 0x00000002 : "lo"} __map%d test-netdev b __map%d test-netdev 0 element 00000001 : 00000001 0 [end] element 00000002 : 00000001 0 [end] diff --git a/tests/py/any/meta.t b/tests/py/any/meta.t index 909de8bc..9015a219 100644 --- a/tests/py/any/meta.t +++ b/tests/py/any/meta.t @@ -61,10 +61,10 @@ meta mark or 0x03 != 0x01;ok;mark | 0x00000003 != 0x00000001 meta mark xor 0x03 == 0x01;ok;mark 0x00000002 meta mark xor 0x03 != 0x01;ok;mark != 0x00000002 -meta iif eth0 accept;ok;iif eth0 accept -meta iif eth0 accept;ok;iif eth0 accept -meta iif != eth0 accept;ok;iif != eth0 accept -meta iif != eth0 accept;ok;iif != eth0 accept +meta iif "eth0" accept;ok;iif "eth0" accept +meta iif "eth0" accept;ok;iif "eth0" accept +meta iif != "eth0" accept;ok;iif != "eth0" accept +meta iif != "eth0" accept;ok;iif != "eth0" accept meta iifname "eth0";ok;iifname "eth0" meta iifname != "eth0";ok;iifname != "eth0" @@ -80,10 +80,10 @@ meta iiftype ether;ok;iiftype ether meta iiftype != ppp;ok;iiftype != ppp meta iiftype ppp;ok;iiftype ppp -meta oif lo accept;ok;oif lo accept -meta oif != lo accept;ok;oif != lo accept -meta oif {eth0, lo} accept;ok -- meta oif != {eth0, lo} accept;ok +meta oif "lo" accept;ok;oif "lo" accept +meta oif != "lo" accept;ok;oif != "lo" accept +meta oif {"eth0", "lo"} accept;ok +- meta oif != {"eth0", "lo"} accept;ok meta oifname "eth0";ok;oifname "eth0" meta oifname != "eth0";ok;oifname != "eth0" @@ -97,10 +97,10 @@ meta oiftype {ether, ppp, ipip, ipip6, loopback, sit, ipgre};ok meta oiftype != ether;ok;oiftype != ether meta oiftype ether;ok;oiftype ether -meta skuid {bin, root, daemon} accept;ok;skuid { 0, 1, 2} accept -- meta skuid != {bin, root, daemon} accept;ok -meta skuid root;ok;skuid 0 -meta skuid != root;ok;skuid != 0 +meta skuid {"bin", "root", "daemon"} accept;ok;skuid { 0, 1, 2} accept +- meta skuid != {"bin", "root", "daemon"} accept;ok +meta skuid "root";ok;skuid 0 +meta skuid != "root";ok;skuid != 0 meta skuid lt 3000 accept;ok;skuid < 3000 accept meta skuid gt 3000 accept;ok;skuid > 3000 accept meta skuid eq 3000 accept;ok;skuid 3000 accept @@ -109,10 +109,10 @@ meta skuid != 2001-2005 accept;ok;skuid != 2001-2005 accept meta skuid { 2001-2005} accept;ok;skuid { 2001-2005} accept - meta skuid != { 2001-2005} accept;ok -meta skgid {bin, root, daemon} accept;ok;skgid { 0, 1, 2} accept -- meta skgid != {bin, root, daemon} accept;ok -meta skgid root;ok;skgid 0 -meta skgid != root;ok;skgid != 0 +meta skgid {"bin", "root", "daemon"} accept;ok;skgid { 0, 1, 2} accept +- meta skgid != {"bin", "root", "daemon"} accept;ok +meta skgid "root";ok;skgid 0 +meta skgid != "root";ok;skgid != 0 meta skgid lt 3000 accept;ok;skgid < 3000 accept meta skgid gt 3000 accept;ok;skgid > 3000 accept meta skgid eq 3000 accept;ok;skgid 3000 accept @@ -140,15 +140,15 @@ meta mark set 0xffffffde or 0x16;ok;mark set 0xffffffde meta mark set 0x32 or 0xfffff;ok;mark set 0x000fffff meta mark set 0xfffe xor 0x16;ok;mark set 0x0000ffe8 -meta iif lo;ok;iif lo -meta oif lo;ok;oif lo +meta iif "lo";ok;iif "lo" +meta oif "lo";ok;oif "lo" meta oifname "eth2" accept;ok;oifname "eth2" accept meta skuid 3000;ok;skuid 3000 meta skgid 3000;ok;skgid 3000 # BUG: meta nftrace 1;ok # :1:1-37: Error: Could not process rule: Operation not supported - meta nftrace 1;ok -meta rtclassid cosmos;ok;rtclassid cosmos +meta rtclassid "cosmos";ok;rtclassid "cosmos" meta pkttype broadcast;ok;pkttype broadcast meta pkttype unicast;ok;pkttype unicast @@ -167,22 +167,22 @@ meta cpu { 2,3};ok;cpu { 2,3} meta cpu { 2-3, 5-7};ok -meta cpu != { 2,3};ok; cpu != { 2,3} -meta iifgroup 0;ok;iifgroup default -meta iifgroup != 0;ok;iifgroup != default -meta iifgroup default;ok;iifgroup default -meta iifgroup != default;ok;iifgroup != default -meta iifgroup {default};ok;iifgroup {default} -- meta iifgroup != {default};ok +meta iifgroup 0;ok;iifgroup "default" +meta iifgroup != 0;ok;iifgroup != "default" +meta iifgroup "default";ok;iifgroup "default" +meta iifgroup != "default";ok;iifgroup != "default" +meta iifgroup {"default"};ok;iifgroup {"default"} +- meta iifgroup != {"default"};ok meta iifgroup { 11,33};ok meta iifgroup {11-33};ok - meta iifgroup != {11,33};ok - meta iifgroup != {11-33};ok -meta oifgroup 0;ok;oifgroup default -meta oifgroup != 0;ok;oifgroup != default -meta oifgroup default;ok;oifgroup default -meta oifgroup != default;ok;oifgroup != default -meta oifgroup {default};ok;oifgroup {default} -- meta oifgroup != {default};ok +meta oifgroup 0;ok;oifgroup "default" +meta oifgroup != 0;ok;oifgroup != "default" +meta oifgroup "default";ok;oifgroup "default" +meta oifgroup != "default";ok;oifgroup != "default" +meta oifgroup {"default"};ok;oifgroup {"default"} +- meta oifgroup != {"default"};ok meta oifgroup { 11,33};ok meta oifgroup {11-33};ok - meta oifgroup != {11,33};ok @@ -197,9 +197,9 @@ meta cgroup != 1048577-1048578;ok;cgroup != 1048577-1048578 meta cgroup {1048577-1048578};ok;cgroup { 1048577-1048578} # meta cgroup != { 1048577-1048578};ok;cgroup != { 1048577-1048578} -meta iif . meta oif { lo . eth0 };ok -meta iif . meta oif . meta mark { lo . eth0 . 0x0000000a };ok -meta iif . meta oif vmap { lo . eth0 : drop };ok +meta iif . meta oif { "lo" . "eth0" };ok +meta iif . meta oif . meta mark { "lo" . "eth0" . 0x0000000a };ok +meta iif . meta oif vmap { "lo" . "eth0" : drop };ok meta random eq 1;ok;meta random 1 meta random gt 1000000;ok;meta random > 1000000 diff --git a/tests/py/any/meta.t.payload b/tests/py/any/meta.t.payload index acd78510..0affd925 100644 --- a/tests/py/any/meta.t.payload +++ b/tests/py/any/meta.t.payload @@ -193,25 +193,25 @@ ip test-ip4 input [ meta load mark => reg 1 ] [ cmp neq reg 1 0x00000002 ] -# meta iif eth0 accept +# meta iif "eth0" accept ip test-ip4 input [ meta load iif => reg 1 ] [ cmp eq reg 1 0x00000002 ] [ immediate reg 0 accept ] -# meta iif eth0 accept +# meta iif "eth0" accept ip test-ip4 input [ meta load iif => reg 1 ] [ cmp eq reg 1 0x00000002 ] [ immediate reg 0 accept ] -# meta iif != eth0 accept +# meta iif != "eth0" accept ip test-ip4 input [ meta load iif => reg 1 ] [ cmp neq reg 1 0x00000002 ] [ immediate reg 0 accept ] -# meta iif != eth0 accept +# meta iif != "eth0" accept ip test-ip4 input [ meta load iif => reg 1 ] [ cmp neq reg 1 0x00000002 ] @@ -273,19 +273,19 @@ ip test-ip4 input [ meta load iiftype => reg 1 ] [ cmp eq reg 1 0x00000200 ] -# meta oif lo accept +# meta oif "lo" accept ip test-ip4 input [ meta load oif => reg 1 ] [ cmp eq reg 1 0x00000001 ] [ immediate reg 0 accept ] -# meta oif != lo accept +# meta oif != "lo" accept ip test-ip4 input [ meta load oif => reg 1 ] [ cmp neq reg 1 0x00000001 ] [ immediate reg 0 accept ] -# meta oif {eth0, lo} accept +# meta oif {"eth0", "lo"} accept __set%d test-ip4 3 __set%d test-ip4 0 element 00000002 : 0 [end] element 00000001 : 0 [end] @@ -340,7 +340,7 @@ ip test-ip4 input [ meta load oiftype => reg 1 ] [ cmp eq reg 1 0x00000001 ] -# meta skuid {bin, root, daemon} accept +# meta skuid {"bin", "root", "daemon"} accept __set%d test-ip4 3 __set%d test-ip4 0 element 00000001 : 0 [end] element 00000000 : 0 [end] element 00000002 : 0 [end] @@ -349,12 +349,12 @@ ip test-ip4 input [ lookup reg 1 set __set%d ] [ immediate reg 0 accept ] -# meta skuid root +# meta skuid "root" ip test-ip4 input [ meta load skuid => reg 1 ] [ cmp eq reg 1 0x00000000 ] -# meta skuid != root +# meta skuid != "root" ip test-ip4 input [ meta load skuid => reg 1 ] [ cmp neq reg 1 0x00000000 ] @@ -405,7 +405,7 @@ ip test-ip4 input [ lookup reg 1 set __set%d ] [ immediate reg 0 accept ] -# meta skgid {bin, root, daemon} accept +# meta skgid {"bin", "root", "daemon"} accept __set%d test-ip4 3 __set%d test-ip4 0 element 00000001 : 0 [end] element 00000000 : 0 [end] element 00000002 : 0 [end] @@ -414,12 +414,12 @@ ip test-ip4 input [ lookup reg 1 set __set%d ] [ immediate reg 0 accept ] -# meta skgid root +# meta skgid "root" ip test-ip4 input [ meta load skgid => reg 1 ] [ cmp eq reg 1 0x00000000 ] -# meta skgid != root +# meta skgid != "root" ip test-ip4 input [ meta load skgid => reg 1 ] [ cmp neq reg 1 0x00000000 ] @@ -510,12 +510,12 @@ ip test-ip4 input [ immediate reg 1 0x0000ffe8 ] [ meta set mark with reg 1 ] -# meta iif lo +# meta iif "lo" ip test-ip4 input [ meta load iif => reg 1 ] [ cmp eq reg 1 0x00000001 ] -# meta oif lo +# meta oif "lo" ip test-ip4 input [ meta load oif => reg 1 ] [ cmp eq reg 1 0x00000001 ] @@ -536,7 +536,7 @@ ip test-ip4 input [ meta load skgid => reg 1 ] [ cmp eq reg 1 0x00000bb8 ] -# meta rtclassid cosmos +# meta rtclassid "cosmos" ip test-ip4 input [ meta load rtclassid => reg 1 ] [ cmp eq reg 1 0x00000000 ] @@ -631,17 +631,17 @@ ip test-ip4 input [ meta load iifgroup => reg 1 ] [ cmp neq reg 1 0x00000000 ] -# meta iifgroup default +# meta iifgroup "default" ip test-ip4 input [ meta load iifgroup => reg 1 ] [ cmp eq reg 1 0x00000000 ] -# meta iifgroup != default +# meta iifgroup != "default" ip test-ip4 input [ meta load iifgroup => reg 1 ] [ cmp neq reg 1 0x00000000 ] -# meta iifgroup {default} +# meta iifgroup {"default"} __set%d test-ip4 3 __set%d test-ip4 0 element 00000000 : 0 [end] @@ -676,17 +676,17 @@ ip test-ip4 input [ meta load oifgroup => reg 1 ] [ cmp neq reg 1 0x00000000 ] -# meta oifgroup default +# meta oifgroup "default" ip test-ip4 input [ meta load oifgroup => reg 1 ] [ cmp eq reg 1 0x00000000 ] -# meta oifgroup != default +# meta oifgroup != "default" ip test-ip4 input [ meta load oifgroup => reg 1 ] [ cmp neq reg 1 0x00000000 ] -# meta oifgroup {default} +# meta oifgroup {"default"} __set%d test-ip4 3 __set%d test-ip4 0 element 00000000 : 0 [end] @@ -753,7 +753,7 @@ ip test-ip4 input [ lookup reg 1 set __set%d ] -# meta iif . meta oif { lo . eth0 } +# meta iif . meta oif { "lo" . "eth0" } __set%d test-ip4 3 __set%d test-ip4 0 element 00000001 00000002 : 0 [end] @@ -762,7 +762,7 @@ ip test-ip4 output [ meta load oif => reg 9 ] [ lookup reg 1 set __set%d ] -# meta iif . meta oif . meta mark { lo . eth0 . 0x0000000a } +# meta iif . meta oif . meta mark { "lo" . "eth0" . 0x0000000a } __set%d test-ip4 3 __set%d test-ip4 0 element 00000001 00000002 0000000a : 0 [end] @@ -772,7 +772,7 @@ ip test-ip4 output [ meta load mark => reg 10 ] [ lookup reg 1 set __set%d ] -# meta iif . meta oif vmap { lo . eth0 : drop } +# meta iif . meta oif vmap { "lo" . "eth0" : drop } __map%d test-ip4 b __map%d test-ip4 0 element 00000001 00000002 : 0 [end] -- cgit v1.2.3