From e540acb8c1e16c9a9afc4c800ce524e47be803d4 Mon Sep 17 00:00:00 2001 From: Florian Westphal Date: Wed, 12 Aug 2015 03:23:40 +0200 Subject: 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 --- tests/regression/inet/tcp.t | 2 ++ tests/regression/inet/tcp.t.payload.inet | 8 ++++++++ tests/regression/inet/tcp.t.payload.ip | 8 ++++++++ tests/regression/inet/tcp.t.payload.ip6 | 8 ++++++++ tests/regression/ip/ip.t | 4 ++++ tests/regression/ip/ip.t.payload | 21 +++++++++++++++++++++ tests/regression/ip/ip.t.payload.inet | 27 +++++++++++++++++++++++++++ 7 files changed, 78 insertions(+) (limited to 'tests') 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 ] + -- cgit v1.2.3