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/regression/ip | |
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/regression/ip')
-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 |
3 files changed, 52 insertions, 0 deletions
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 ] + |