]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
tests: add concatenations and maps; combine them too
authorPablo Neira Ayuso <pablo@netfilter.org>
Thu, 3 Sep 2015 16:23:18 +0000 (18:23 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Fri, 11 Sep 2015 18:05:47 +0000 (20:05 +0200)
This patch adds simple tests for concatenation and maps, including more
advanced tests that combine them.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
tests/regression/any/ct.t
tests/regression/any/ct.t.payload
tests/regression/any/meta.t
tests/regression/any/meta.t.payload
tests/regression/ip/dnat.t
tests/regression/ip/dnat.t.payload.ip
tests/regression/ip/ip.t.payload
tests/regression/ip/ip.t.payload.inet

index 6ec05261bd49d476d656e73be6097c11489feb68..ab4b167df8ecec584aada5e0032f6237698d79a1 100644 (file)
@@ -105,3 +105,8 @@ ct helper "12345678901234567";fail
 # <cmdline>:1:37-39: Error: datatype mismatch, expected invalid, expression has type Internet protocol
 # add rule ip test input ct proto-dst udp
 #                        ~~~~~~~~~~~~ ^^^
+
+ct state . ct mark { new . 0x12345678};ok
+ct state . ct mark { new . 0x12345678, new . 0x34127856, established . 0x12785634};ok
+ct direction . ct mark { original . 0x12345678};ok
+ct state . ct mark vmap { new . 0x12345678 : drop};ok
index f77c2842d735e1aff17f14311355179ebea88725..2e7c1ff7ddeac05920ef1e55d1ea640bc7a1dd66 100644 (file)
@@ -237,3 +237,39 @@ ip test-ip4 output
   [ ct load helper => reg 1 ]
   [ cmp eq reg 1 0x00707466 0x00000000 0x00000000 0x00000000 ]
 
+# ct state . ct mark { new . 0x12345678}
+set%d test 3
+set%d test 0
+       element 00000008 12345678  : 0 [end]
+ip test-ip4 output
+  [ ct load state => reg 1 ]
+  [ ct load mark => reg 9 ]
+  [ lookup reg 1 set set%d ]
+
+# ct state . ct mark { new . 0x12345678, new . 0x34127856, established . 0x12785634}
+set%d test-ip4 3
+set%d test-ip4 0
+       element 00000008 12345678  : 0 [end]    element 00000008 34127856  : 0 [end]    element 00000002 12785634  : 0 [end]
+ip test-ip4 output
+  [ ct load state => reg 1 ]
+  [ ct load mark => reg 9 ]
+  [ lookup reg 1 set set%d ]
+
+# ct direction . ct mark { original . 0x12345678}
+set%d test 3
+set%d test 0
+       element 00000000 12345678  : 0 [end]
+ip test-ip4 output
+  [ ct load direction => reg 1 ]
+  [ ct load mark => reg 9 ]
+  [ lookup reg 1 set set%d ]
+
+# ct state . ct mark vmap { new . 0x12345678 : drop}
+map%d test-ip4 b
+map%d test-ip4 0
+        element 00000008 12345678  : 0 [end]
+ip test-ip4 output
+  [ ct load state => reg 1 ]
+  [ ct load mark => reg 9 ]
+  [ lookup reg 1 set map%d dreg 0 ]
+
index 24bcafa873f6fc38fe1b6a893d7426f075855106..ddb360dd464d3bf2dde1cfa80f0c0c3bce2ab4a0 100644 (file)
@@ -187,3 +187,7 @@ 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 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
index 921e42e3886420260a5a43ecc6a63f1a0bdb4fc3..0243d808a8fa715857127a1a9a5287ecfca1919f 100644 (file)
@@ -705,3 +705,32 @@ ip test-ip4 input
   [ byteorder reg 1 = hton(reg 1, 4, 4) ]
   [ lookup reg 1 set set%d ]
 
+
+# meta iif . meta oif { lo . eth0 }
+set%d test-ip4 3
+set%d test-ip4 0
+       element 00000001 00000002  : 0 [end]
+ip test-ip4 output
+  [ meta load iif => reg 1 ]
+  [ meta load oif => reg 9 ]
+  [ lookup reg 1 set set%d ]
+
+# 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]
+ip test-ip4 output
+  [ meta load iif => reg 1 ]
+  [ meta load oif => reg 9 ]
+  [ meta load mark => reg 10 ]
+  [ lookup reg 1 set set%d ]
+
+# meta iif . meta oif vmap { lo . eth0 : drop }
+map%d test-ip4 b
+map%d test-ip4 0
+       element 00000001 00000002  : 0 [end]
+ip test-ip4 output
+  [ meta load iif => reg 1 ]
+  [ meta load oif => reg 9 ]
+  [ lookup reg 1 set map%d dreg 0 ]
+
index 78fc454da60717aa2f8eb5f07764ddc2cf60701b..cdb7811699167956f96f95c0d899961034d111cb 100644 (file)
@@ -10,3 +10,6 @@ iifname "eth0" tcp dport {80, 90, 23} dnat 192.168.3.2;ok
 # nft: src/evaluate.c:975: expr_evaluate_relational: Assertion '0' failed.
 
 iifname "eth0" tcp dport != 23-34 dnat 192.168.3.2;ok
+
+dnat ct mark map { 0x00000014 : 1.2.3.4};ok
+dnat ct mark . ip daddr map { 0x00000014 . 1.1.1.1 : 1.2.3.4};ok
index 93c4d68ba7dfc778b57b3a010e8b14cf24878720..026e87195b4f21999b64df2a9ed1dc98b3560790 100644 (file)
@@ -48,3 +48,22 @@ ip test-ip4 prerouting
   [ immediate reg 1 0x0203a8c0 ]
   [ nat dnat ip addr_min reg 1 addr_max reg 0 ]
 
+# dnat ct mark map { 0x00000014 : 1.2.3.4}
+map%d test-ip4 b
+map%d test-ip4 0
+       element 00000014  : 04030201 0 [end]
+ip test-ip4 prerouting
+  [ ct load mark => reg 1 ]
+  [ lookup reg 1 set map%d dreg 1 ]
+  [ nat dnat ip addr_min reg 1 addr_max reg 0 ]
+
+# dnat ct mark . ip daddr map { 0x00000014 . 1.1.1.1 : 1.2.3.4}
+map%d test-ip4 b
+map%d test-ip4 0
+       element 00000014 01010101  : 04030201 0 [end]
+ip test-ip4 output
+  [ ct load mark => reg 1 ]
+  [ payload load 4b @ network header + 16 => reg 9 ]
+  [ lookup reg 1 set map%d dreg 1 ]
+  [ nat dnat ip addr_min reg 1 addr_max reg 0 ]
+
index 7a77dc4098fbdd8329bd00306d14f05944316a9a..147923c29985db9ea17e1f5a2783f00754c28634 100644 (file)
@@ -353,3 +353,13 @@ ip test-ip4 input
   [ bitwise reg 1 = (reg=1 & 0x0000ffff ) ^ 0x00000000 ]
   [ cmp eq reg 1 0x0000ffff ]
 
+# ip saddr . ip daddr . ip protocol { 1.1.1.1 . 2.2.2.2 . tcp, 1.1.1.1 . 3.3.3.3 . udp}
+set%d test-ip 3
+set%d test-ip 0
+       element 01010101 02020202 00000006  : 0 [end]   element 01010101 03030303 00000011  : 0 [end]
+ip test-ip input
+  [ payload load 4b @ network header + 12 => reg 1 ]
+  [ payload load 4b @ network header + 16 => reg 9 ]
+  [ payload load 1b @ network header + 9 => reg 10 ]
+  [ lookup reg 1 set set%d ]
+
index dbc7852b11a7d46a324a50d0dd6a4d1510daa169..4caea1e31884c949fb9548412ef35218dac9d1d2 100644 (file)
@@ -465,3 +465,15 @@ inet test-inet input
   [ bitwise reg 1 = (reg=1 & 0x0000ffff ) ^ 0x00000000 ]
   [ cmp eq reg 1 0x0000ffff ]
 
+# ip saddr . ip daddr . ip protocol { 1.1.1.1 . 2.2.2.2 . tcp, 1.1.1.1 . 3.3.3.3 . udp}
+set%d test-ip 3
+set%d test-ip 0
+        element 01010101 02020202 00000006  : 0 [end]   element 01010101 03030303 00000011  : 0 [end]
+inet test-ip input
+  [ meta load nfproto => reg 1 ]
+  [ cmp eq reg 1 0x00000002 ]
+  [ payload load 4b @ network header + 12 => reg 1 ]
+  [ payload load 4b @ network header + 16 => reg 9 ]
+  [ payload load 1b @ network header + 9 => reg 10 ]
+  [ lookup reg 1 set set%d ]
+