diff options
author | Florian Westphal <fw@strlen.de> | 2015-08-12 03:23:40 +0200 |
---|---|---|
committer | Florian Westphal <fw@strlen.de> | 2015-09-18 00:06:12 +0200 |
commit | e540acb8c1e16c9a9afc4c800ce524e47be803d4 (patch) | |
tree | 8bdd03c6d0b9c34bff2aed1791816035927a1eb6 /tests | |
parent | 048a5e093fde9db515ebc7b14f91bceb6cbd5949 (diff) |
tests: add tests for ip version/hdrlength/tcp doff
Header fields of 4 bit lengths. Requires implicit masks and
shifting of RHS constant.
Signed-off-by: Florian Westphal <fw@strlen.de>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/regression/inet/tcp.t | 2 | ||||
-rw-r--r-- | tests/regression/inet/tcp.t.payload.inet | 8 | ||||
-rw-r--r-- | tests/regression/inet/tcp.t.payload.ip | 8 | ||||
-rw-r--r-- | tests/regression/inet/tcp.t.payload.ip6 | 8 | ||||
-rw-r--r-- | tests/regression/ip/ip.t | 4 | ||||
-rw-r--r-- | tests/regression/ip/ip.t.payload | 21 | ||||
-rw-r--r-- | tests/regression/ip/ip.t.payload.inet | 27 |
7 files changed, 78 insertions, 0 deletions
diff --git a/tests/regression/inet/tcp.t b/tests/regression/inet/tcp.t index 95267da5..53a16898 100644 --- a/tests/regression/inet/tcp.t +++ b/tests/regression/inet/tcp.t @@ -101,3 +101,5 @@ tcp urgptr { 33, 55, 67, 88};ok - tcp urgptr != { 33, 55, 67, 88};ok tcp urgptr { 33-55};ok - tcp urgptr != { 33-55};ok + +tcp doff 8;ok diff --git a/tests/regression/inet/tcp.t.payload.inet b/tests/regression/inet/tcp.t.payload.inet index e1673dbe..21b21abc 100644 --- a/tests/regression/inet/tcp.t.payload.inet +++ b/tests/regression/inet/tcp.t.payload.inet @@ -498,3 +498,11 @@ inet test-inet input [ payload load 2b @ transport header + 18 => reg 1 ] [ lookup reg 1 set set%d ] +# tcp doff 8 +inet test-inet input + [ meta load l4proto => reg 1 ] + [ cmp eq reg 1 0x00000006 ] + [ payload load 1b @ transport header + 12 => reg 1 ] + [ bitwise reg 1 = (reg=1 & 0x000000f0 ) ^ 0x00000000 ] + [ cmp eq reg 1 0x00000080 ] + diff --git a/tests/regression/inet/tcp.t.payload.ip b/tests/regression/inet/tcp.t.payload.ip index c21cca1b..34c97143 100644 --- a/tests/regression/inet/tcp.t.payload.ip +++ b/tests/regression/inet/tcp.t.payload.ip @@ -498,3 +498,11 @@ ip test-ip4 input [ payload load 2b @ transport header + 18 => reg 1 ] [ lookup reg 1 set set%d ] +# tcp doff 8 +ip test-ip4 input + [ payload load 1b @ network header + 9 => reg 1 ] + [ cmp eq reg 1 0x00000006 ] + [ payload load 1b @ transport header + 12 => reg 1 ] + [ bitwise reg 1 = (reg=1 & 0x000000f0 ) ^ 0x00000000 ] + [ cmp eq reg 1 0x00000080 ] + diff --git a/tests/regression/inet/tcp.t.payload.ip6 b/tests/regression/inet/tcp.t.payload.ip6 index 32115edc..44decab4 100644 --- a/tests/regression/inet/tcp.t.payload.ip6 +++ b/tests/regression/inet/tcp.t.payload.ip6 @@ -498,3 +498,11 @@ ip6 test-ip6 input [ payload load 2b @ transport header + 18 => reg 1 ] [ lookup reg 1 set set%d ] +# tcp doff 8 +ip6 test-ip6 input + [ payload load 1b @ network header + 6 => reg 1 ] + [ cmp eq reg 1 0x00000006 ] + [ payload load 1b @ transport header + 12 => reg 1 ] + [ bitwise reg 1 = (reg=1 & 0x000000f0 ) ^ 0x00000000 ] + [ cmp eq reg 1 0x00000080 ] + diff --git a/tests/regression/ip/ip.t b/tests/regression/ip/ip.t index 6e29ffb9..0339c2ac 100644 --- a/tests/regression/ip/ip.t +++ b/tests/regression/ip/ip.t @@ -111,3 +111,7 @@ ip saddr \& 0.0.0.255 \< 0.0.0.127;ok;ip saddr & 0.0.0.255 < 0.0.0.127 ip saddr \& 0xffff0000 == 0xffff0000;ok;ip saddr 255.255.0.0/16 +ip version 4 ip hdrlength 5;ok +ip hdrlength 0;ok +ip hdrlength 15;ok +ip hdrlength 16;fail diff --git a/tests/regression/ip/ip.t.payload b/tests/regression/ip/ip.t.payload index 147923c2..da2dc218 100644 --- a/tests/regression/ip/ip.t.payload +++ b/tests/regression/ip/ip.t.payload @@ -363,3 +363,24 @@ ip test-ip input [ payload load 1b @ network header + 9 => reg 10 ] [ lookup reg 1 set set%d ] +# ip version 4 ip hdrlength 5 +ip test-ip4 input + [ payload load 1b @ network header + 0 => reg 1 ] + [ bitwise reg 1 = (reg=1 & 0x000000f0 ) ^ 0x00000000 ] + [ cmp eq reg 1 0x00000040 ] + [ payload load 1b @ network header + 0 => reg 1 ] + [ bitwise reg 1 = (reg=1 & 0x0000000f ) ^ 0x00000000 ] + [ cmp eq reg 1 0x00000005 ] + +# ip hdrlength 0 +ip test-ip4 input + [ payload load 1b @ network header + 0 => reg 1 ] + [ bitwise reg 1 = (reg=1 & 0x0000000f ) ^ 0x00000000 ] + [ cmp eq reg 1 0x00000000 ] + +# ip hdrlength 15 +ip test-ip4 input + [ payload load 1b @ network header + 0 => reg 1 ] + [ bitwise reg 1 = (reg=1 & 0x0000000f ) ^ 0x00000000 ] + [ cmp eq reg 1 0x0000000f ] + diff --git a/tests/regression/ip/ip.t.payload.inet b/tests/regression/ip/ip.t.payload.inet index 4caea1e3..35f73ff7 100644 --- a/tests/regression/ip/ip.t.payload.inet +++ b/tests/regression/ip/ip.t.payload.inet @@ -477,3 +477,30 @@ inet test-ip input [ payload load 1b @ network header + 9 => reg 10 ] [ lookup reg 1 set set%d ] +# ip version 4 ip hdrlength 5 +inet test-inet input + [ meta load nfproto => reg 1 ] + [ cmp eq reg 1 0x00000002 ] + [ payload load 1b @ network header + 0 => reg 1 ] + [ bitwise reg 1 = (reg=1 & 0x000000f0 ) ^ 0x00000000 ] + [ cmp eq reg 1 0x00000040 ] + [ payload load 1b @ network header + 0 => reg 1 ] + [ bitwise reg 1 = (reg=1 & 0x0000000f ) ^ 0x00000000 ] + [ cmp eq reg 1 0x00000005 ] + +# ip hdrlength 0 +inet test-inet input + [ meta load nfproto => reg 1 ] + [ cmp eq reg 1 0x00000002 ] + [ payload load 1b @ network header + 0 => reg 1 ] + [ bitwise reg 1 = (reg=1 & 0x0000000f ) ^ 0x00000000 ] + [ cmp eq reg 1 0x00000000 ] + +# ip hdrlength 15 +inet test-inet input + [ meta load nfproto => reg 1 ] + [ cmp eq reg 1 0x00000002 ] + [ payload load 1b @ network header + 0 => reg 1 ] + [ bitwise reg 1 = (reg=1 & 0x0000000f ) ^ 0x00000000 ] + [ cmp eq reg 1 0x0000000f ] + |