summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Westphal <fw@strlen.de>2015-08-07 20:52:04 +0200
committerFlorian Westphal <fw@strlen.de>2015-08-07 21:21:47 +0200
commitecf855b2f58f1718a6a1c3dcde13b140557844ec (patch)
treecc957aa0aae5f31f4d7bfd09564c8459b24f7834
parentb4100ba0a86b0f8ed5cfc6af9b754e2e97e50b69 (diff)
tests: add two test cases using binop w. payload
[ payload load 4b @ network header + 12 => reg 1 ] [ bitwise reg 1 = (reg=1 & 0xff000000 ) ^ 0x00000000 ] [ cmp eq reg 1 ... .. to make sure that later support to match header elements that have odd (non-byte aligned) lengths/offsets doesn't erronously eliminate explicitly added binops while searching expressions for implicit binops. Signed-off-by: Florian Westphal <fw@strlen.de>
-rw-r--r--tests/regression/ip/ip.t3
-rw-r--r--tests/regression/ip/ip.t.payload12
-rw-r--r--tests/regression/ip/ip.t.payload.inet16
3 files changed, 31 insertions, 0 deletions
diff --git a/tests/regression/ip/ip.t b/tests/regression/ip/ip.t
index fa864dfd..11a95981 100644
--- a/tests/regression/ip/ip.t
+++ b/tests/regression/ip/ip.t
@@ -105,3 +105,6 @@ ip saddr != 192.168.1.3-192.168.33.55;ok
ip daddr 192.168.0.1;ok
ip daddr 192.168.0.1 drop;ok
ip daddr 192.168.0.2 log;ok
+
+ip saddr \& 0xff == 1;ok;ip saddr & 0.0.0.255 == 0.0.0.1
+ip saddr \& 0.0.0.255 \< 0.0.0.127;ok;ip saddr & 0.0.0.255 < 0.0.0.127
diff --git a/tests/regression/ip/ip.t.payload b/tests/regression/ip/ip.t.payload
index 18db172a..ec4897e8 100644
--- a/tests/regression/ip/ip.t.payload
+++ b/tests/regression/ip/ip.t.payload
@@ -335,3 +335,15 @@ ip test-ip4 input
[ cmp eq reg 1 0x0200a8c0 ]
[ log prefix (null) ]
+# ip saddr \& 0xff == 1
+ip test-ip4 input
+ [ payload load 4b @ network header + 12 => reg 1 ]
+ [ bitwise reg 1 = (reg=1 & 0xff000000 ) ^ 0x00000000 ]
+ [ cmp eq reg 1 0x01000000 ]
+
+# ip saddr \& 0.0.0.255 \< 0.0.0.127
+ip test-ip4 input
+ [ payload load 4b @ network header + 12 => reg 1 ]
+ [ bitwise reg 1 = (reg=1 & 0xff000000 ) ^ 0x00000000 ]
+ [ cmp lt reg 1 0x7f000000 ]
+
diff --git a/tests/regression/ip/ip.t.payload.inet b/tests/regression/ip/ip.t.payload.inet
index be635cdb..1a2b1b5c 100644
--- a/tests/regression/ip/ip.t.payload.inet
+++ b/tests/regression/ip/ip.t.payload.inet
@@ -441,3 +441,19 @@ inet test-inet input
[ cmp eq reg 1 0x0200a8c0 ]
[ log prefix (null) ]
+# ip saddr \& 0xff == 1
+inet test-inet input
+ [ meta load nfproto => reg 1 ]
+ [ cmp eq reg 1 0x00000002 ]
+ [ payload load 4b @ network header + 12 => reg 1 ]
+ [ bitwise reg 1 = (reg=1 & 0xff000000 ) ^ 0x00000000 ]
+ [ cmp eq reg 1 0x01000000 ]
+
+# ip saddr \& 0.0.0.255 \< 0.0.0.127
+inet test-inet input
+ [ meta load nfproto => reg 1 ]
+ [ cmp eq reg 1 0x00000002 ]
+ [ payload load 4b @ network header + 12 => reg 1 ]
+ [ bitwise reg 1 = (reg=1 & 0xff000000 ) ^ 0x00000000 ]
+ [ cmp lt reg 1 0x7f000000 ]
+