rws (empty) → 0.1.1.2
raw patch · 127 files changed
+7825/−0 lines, 127 filesdep +QuickCheckdep +basedep +binarysetup-changed
Dependencies added: QuickCheck, base, binary, bytestring, parsec, test-framework, test-framework-quickcheck2
Files
- LICENSE +30/−0
- Setup.hs +2/−0
- rws.cabal +82/−0
- samples/fragv4.pkt +7/−0
- samples/fragv4_ooo.pkt +10/−0
- samples/fragv6.pkt +6/−0
- samples/fragv6_awsome.m4 +28/−0
- samples/fragv6_awsome.pkt +162/−0
- samples/fragv6_awsome_hbh.m4 +28/−0
- samples/fragv6_dst.pkt +4/−0
- samples/fragv6_hbh.pkt +7/−0
- samples/gre.pkt +5/−0
- samples/gtp.pkt +7/−0
- samples/gtp2.pkt +11/−0
- samples/gtp3.pkt +12/−0
- samples/gtp_3.pkt +19/−0
- samples/gtp_33.pkt +21/−0
- samples/gtp_migration.pkt +24/−0
- samples/hex.pkt +1/−0
- samples/hopbyhop.pkt +3/−0
- samples/icmp.pkt +4/−0
- samples/icmp_nat.pkt +14/−0
- samples/icmp_tcp.pkt +8/−0
- samples/icmpv6.pkt +6/−0
- samples/icmpv6_short.pkt +3/−0
- samples/ip4ipv6.pkt +1/−0
- samples/ipv4_frag_ipv4.m4 +17/−0
- samples/ipv4_frag_ipv4.pkt +59/−0
- samples/ipv4_gre_udp.pkt +21/−0
- samples/ipv4_ipv4.pkt +12/−0
- samples/ipv4_ipv4_1280.pkt +3/−0
- samples/ipv4_ipv4_666.pkt +6/−0
- samples/ipv4_ipv4_overlapping.m4 +21/−0
- samples/ipv4_ipv4_overlapping.pkt +87/−0
- samples/ipv4_ipv4_udp.pkt +19/−0
- samples/ipv4_overlapping.m4 +19/−0
- samples/ipv4_overlapping.pkt +73/−0
- samples/ipv6_frag_ipv6.m4 +20/−0
- samples/ipv6_frag_ipv6.pkt +80/−0
- samples/ipv6_gtp_ipv4_teredo.pkt +54/−0
- samples/ipv6_ipv4.pkt +8/−0
- samples/ipv6_ipv4_666.pkt +3/−0
- samples/ipv6_multicast.pkt +3/−0
- samples/l2tp.pkt +8/−0
- samples/l2tp_invalid_len.pkt +9/−0
- samples/l2tp_ipv4_ipv6.pkt +16/−0
- samples/l2tp_ns_nr.pkt +56/−0
- samples/l2tp_off_no_len.pkt +8/−0
- samples/l2tp_teredo.pkt +18/−0
- samples/l2tp_too_large_off.pkt +9/−0
- samples/l2tpv6.pkt +16/−0
- samples/multi_payload.pkt +2/−0
- samples/nat.pkt +6/−0
- samples/nat4.pkt +25/−0
- samples/nat_col.pkt +18/−0
- samples/nat_l2tp.pkt +46/−0
- samples/nat_pb.pkt +12/−0
- samples/nat_teredo.pkt +23/−0
- samples/ppp.pkt +2/−0
- samples/rewrites.pkt +17/−0
- samples/rewrites_ipv6.pkt +7/−0
- samples/tcp.pkt +34/−0
- samples/tcp_moar.m4 +60/−0
- samples/tcp_moar.pkt +113/−0
- samples/tcp_ooo.m4 +27/−0
- samples/tcp_ooo.pkt +39/−0
- samples/tcp_ooo2.m4 +47/−0
- samples/tcp_ooo2.pkt +74/−0
- samples/tcp_ooo3.m4 +43/−0
- samples/tcp_ooo3.pkt +59/−0
- samples/tcp_ooo4.m4 +43/−0
- samples/tcp_ooo_wrap.pkt +35/−0
- samples/tcp_reset0.pkt +22/−0
- samples/tcp_reset1.pkt +9/−0
- samples/tcp_resyn.m4 +34/−0
- samples/tcp_retransmission.pkt +30/−0
- samples/tcp_retransmission2.pkt +39/−0
- samples/tcp_retransmission_with_drops.pkt +46/−0
- samples/tcp_simopen.m4 +55/−0
- samples/tcp_simopen.pkt +2168/−0
- samples/tcp_single.pkt +5/−0
- samples/tcp_ts.pkt +34/−0
- samples/tcp_wsc.pkt +34/−0
- samples/tcpv6.pkt +34/−0
- samples/teredo.pkt +4/−0
- samples/teredo2.pkt +6/−0
- samples/tipc2.pkt +2/−0
- samples/tunnel_madness.pkt +105/−0
- samples/udp.pkt +4/−0
- samples/udp_666.pkt +4/−0
- samples/udp_666_1280.pkt +4/−0
- samples/udp_666_4_cons.pkt +17/−0
- samples/udp_666_4_hosts.pkt +17/−0
- samples/udp_666_4_hosts_2_nets.pkt +17/−0
- samples/udp_666_ecn.pkt +4/−0
- samples/udp_666_ecn_ipv6.pkt +7/−0
- samples/udp_666b.pkt +8/−0
- samples/udp_esp_sha1.pkt +138/−0
- samples/udpv6.pkt +3/−0
- samples/udpv6_666_4_hosts_2_nets.pkt +13/−0
- samples/udpv6_multicast.pkt +19/−0
- samples/udpv6b.pkt +6/−0
- src/Ethernet.hs +183/−0
- src/Fragv6.hs +95/−0
- src/Gre.hs +103/−0
- src/Gtp.hs +109/−0
- src/HexPayload.hs +103/−0
- src/HopByHop.hs +93/−0
- src/IPv4.hs +235/−0
- src/IPv6.hs +222/−0
- src/Icmp.hs +102/−0
- src/IcmpV6.hs +109/−0
- src/L2tp.hs +120/−0
- src/Lexer.hs +63/−0
- src/Packet.hs +478/−0
- src/PadN.hs +92/−0
- src/Parser.hs +108/−0
- src/Payload.hs +32/−0
- src/Ppp.hs +94/−0
- src/PseudoSum.hs +23/−0
- src/Run.hs +42/−0
- src/SerializePcap.hs +114/−0
- src/Tcp.hs +177/−0
- src/Teredo.hs +95/−0
- src/Udp.hs +123/−0
- src/Util.hs +93/−0
- tests/Qt.hs +47/−0
+ LICENSE view
@@ -0,0 +1,30 @@+Copyright Procera Networks 2013++All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++ * Redistributions of source code must retain the above copyright+ notice, this list of conditions and the following disclaimer.++ * Redistributions in binary form must reproduce the above+ copyright notice, this list of conditions and the following+ disclaimer in the documentation and/or other materials provided+ with the distribution.++ * Neither the name of Procera Networks nor the names of other+ contributors may be used to endorse or promote products derived+ from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ rws.cabal view
@@ -0,0 +1,82 @@+-- rws.cabal auto-generated by cabal init. For additional options,+-- see+-- http://www.haskell.org/cabal/release/cabal-latest/doc/users-guide/authors.html#pkg-descr.+-- The name of the package.+Name: rws++-- The package version. See the Haskell package versioning policy+-- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for+-- standards guiding when and how versions should be incremented.+Version: 0.1.1.2++-- A short (one-line) description of the package.+Synopsis: Packet Generation++-- A longer description of the package.+Description: Generate pcaps from a simple packet description language++-- URL for the project homepage or repository.+Homepage: https://github.com/karknu/rws++-- The license under which the package is released.+License: BSD3++-- The file containing the license text.+License-file: LICENSE++-- The package author(s).+Author: Karl Knutsson++-- An email address to which users can send suggestions, bug reports,+-- and patches.+Maintainer: karl.knutsson@proceranetworks.com++-- A copyright notice.+-- Copyright: Procera Networks 2013++-- Stability of the pakcage (experimental, provisional, stable...)+Stability: Experimental++Category: Network++Build-type: Simple++-- Extra files to be distributed with the package, such as examples or+-- a README.+-- Extra-source-files: ++-- Constraint on the version of Cabal needed to build this package.+Cabal-version: >=1.8++Data-Files:+ samples/*.pkt+ samples/*.m4++Test-Suite test-qt+ type: exitcode-stdio-1.0+ hs-source-dirs: tests src+ main-is: Qt.hs+ Build-depends: base==4.*, bytestring, binary==0.5.*, parsec==3.1.*, test-framework, QuickCheck, test-framework-quickcheck2==0.3.0.1+ ghc-options: -Wall -fno-warn-missing-signatures -fno-warn-orphans -fno-warn-unused-do-bind -fexcess-precision -rtsopts -auto-all -fhpc+ cpp-options: -DHRWS_TEST+++Executable rws+ -- .hs or .lhs file containing the Main module.+ Main-is: Run.hs+ + -- Packages needed in order to build this package.+ Build-depends: base==4.*, bytestring, binary==0.5.*, parsec==3.1.*+ + -- Modules not exported by this package.+ Other-modules: Ethernet, Icmp, Ppp, Fragv6, IcmpV6, PseudoSum, Gre, L2tp, Gtp, Lexer, SerializePcap, HexPayload, Packet, Tcp, HopByHop, PadN, Teredo, IPv4, Parser, Udp, IPv6, Payload, Util+ + -- Extra tools (e.g. alex, hsc2hs, ...) needed to build the source.+ -- Build-tools: + hs-source-dirs: src+ ghc-options: -Wall -fno-warn-missing-signatures -fno-warn-orphans -fno-warn-unused-do-bind -fexcess-precision -optc-O3 -optc-ffast-math -rtsopts -auto-all+++source-repository head+ type: git+ location: git://github.com/karknu/rws.git
+ samples/fragv4.pkt view
@@ -0,0 +1,7 @@+(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x2000 prot=17 id=1234+ (udp csum=0 fixcsum=false len=2072 (payload pattern=0 length=1040))))+(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x0083 prot=17 id=1234+ (payload pattern=1 length=1024)))+
+ samples/fragv4_ooo.pkt view
@@ -0,0 +1,10 @@+(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x2083 prot=17 id=1234+ (payload pattern=1 length=1024)))+(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x2000 prot=17 id=1234+ (udp csum=0xcda7 fixcsum=false len=3096 (payload pattern=0 length=1040))))+(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x0103 prot=17 id=1234+ (payload pattern=2 length=1024)))+
+ samples/fragv6.pkt view
@@ -0,0 +1,6 @@+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =1 id=0xffffffff (udp (payload pattern=0x1) csum=0xbaf5))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =64 id=0xffffffff (payload pattern=0x2))))
+ samples/fragv6_awsome.m4 view
@@ -0,0 +1,28 @@+define(`forloop',+ `pushdef(`$1', `$2')_forloop(`$1', `$2', `$3', `$4')popdef(`$1')')+define(`_forloop',+ `$4`'ifelse($1, `$3', ,+ `define(`$1', incr($1))_forloop(`$1', `$2', `$3', `$4')')')++define(`_len', 1312)++define(`_frag',+`(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =eval(1312 * $1 + 1) id=0xffffffff (payload pattern=$1 length=_len))))+')++dnl first frag+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =1 id=0xffffffff (udp len=65481 (payload pattern=0 length=eval(_len - 8)) csum=0xbaf5))))++forloop(`i', 1, 48, `_frag(`i')')++dnl last frag+dnl interesting last lengths 1247, 1208 and 1194+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =eval(1312 * 49) id=0xffffffff (payload pattern=49 length=1194))))++
+ samples/fragv6_awsome.pkt view
@@ -0,0 +1,162 @@++++++++(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =1 id=0xffffffff (udp len=65481 (payload pattern=0 length=1304) csum=0xbaf5))))++(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =1313 id=0xffffffff (payload pattern=1 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =2625 id=0xffffffff (payload pattern=2 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =3937 id=0xffffffff (payload pattern=3 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =5249 id=0xffffffff (payload pattern=4 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =6561 id=0xffffffff (payload pattern=5 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =7873 id=0xffffffff (payload pattern=6 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =9185 id=0xffffffff (payload pattern=7 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =10497 id=0xffffffff (payload pattern=8 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =11809 id=0xffffffff (payload pattern=9 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =13121 id=0xffffffff (payload pattern=10 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =14433 id=0xffffffff (payload pattern=11 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =15745 id=0xffffffff (payload pattern=12 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =17057 id=0xffffffff (payload pattern=13 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =18369 id=0xffffffff (payload pattern=14 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =19681 id=0xffffffff (payload pattern=15 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =20993 id=0xffffffff (payload pattern=16 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =22305 id=0xffffffff (payload pattern=17 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =23617 id=0xffffffff (payload pattern=18 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =24929 id=0xffffffff (payload pattern=19 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =26241 id=0xffffffff (payload pattern=20 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =27553 id=0xffffffff (payload pattern=21 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =28865 id=0xffffffff (payload pattern=22 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =30177 id=0xffffffff (payload pattern=23 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =31489 id=0xffffffff (payload pattern=24 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =32801 id=0xffffffff (payload pattern=25 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =34113 id=0xffffffff (payload pattern=26 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =35425 id=0xffffffff (payload pattern=27 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =36737 id=0xffffffff (payload pattern=28 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =38049 id=0xffffffff (payload pattern=29 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =39361 id=0xffffffff (payload pattern=30 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =40673 id=0xffffffff (payload pattern=31 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =41985 id=0xffffffff (payload pattern=32 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =43297 id=0xffffffff (payload pattern=33 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =44609 id=0xffffffff (payload pattern=34 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =45921 id=0xffffffff (payload pattern=35 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =47233 id=0xffffffff (payload pattern=36 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =48545 id=0xffffffff (payload pattern=37 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =49857 id=0xffffffff (payload pattern=38 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =51169 id=0xffffffff (payload pattern=39 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =52481 id=0xffffffff (payload pattern=40 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =53793 id=0xffffffff (payload pattern=41 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =55105 id=0xffffffff (payload pattern=42 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =56417 id=0xffffffff (payload pattern=43 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =57729 id=0xffffffff (payload pattern=44 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =59041 id=0xffffffff (payload pattern=45 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =60353 id=0xffffffff (payload pattern=46 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =61665 id=0xffffffff (payload pattern=47 length=1312))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =62977 id=0xffffffff (payload pattern=48 length=1312))))+++(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =64288 id=0xffffffff (payload pattern=49 length=1194))))++
+ samples/fragv6_awsome_hbh.m4 view
@@ -0,0 +1,28 @@+define(`forloop',+ `pushdef(`$1', `$2')_forloop(`$1', `$2', `$3', `$4')popdef(`$1')')+define(`_forloop',+ `$4`'ifelse($1, `$3', ,+ `define(`$1', incr($1))_forloop(`$1', `$2', `$3', `$4')')')++define(`_len', 1312)++define(`_frag',+`(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =eval(1312 * $1 + 1) id=0xffffffff (payload pattern=$1 length=_len))))+')++dnl first frag+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =1 id=0xffffffff (udp len=65481 (payload pattern=0 length=eval(_len - 8)) csum=0xbaf5))))++forloop(`i', 1, 48, `_frag(`i')')++dnl last frag+dnl interesting last lengths 1247, 1208 and 1194+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=17 off =eval(1312 * 49) id=0xffffffff (payload pattern=49 length=1194))))++
+ samples/fragv6_dst.pkt view
@@ -0,0 +1,4 @@+(eth type=0x86dd+ (ipv6 nh = 60+ (hopbyhop nh=17 len=13 (padn len=4+ (payload pattern=0x1)))))
+ samples/fragv6_hbh.pkt view
@@ -0,0 +1,7 @@+(eth type=0x86dd+ (ipv6 nh = 0+ (hopbyhop nh=44 len=0 (padn len=4+ (fragv6 nh=0 off =1 id=0xffffffff (hopbyhop nh=17 len=0 (padn len=4 (udp len=76 (payload pattern=0x1) csum=0xb721 fixcsum=false))))))))+(eth type=0x86dd+ (ipv6 nh = 44+ (fragv6 nh=0 off =80 id=0xffffffff (payload pattern=0x2 length=4))))
+ samples/gre.pkt view
@@ -0,0 +1,5 @@+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 ttl=64 src=90.0.0.3 dst=90.0.0.2 prot = 47+ (gre key=0x12345678 seq=0xaaaaaaaa+ (ipv4 ttl=64 src=10.0.0.3 dst=10.0.0.2 prot = 17+ (udp (payload pattern=0 length=8))))))
+ samples/gtp.pkt view
@@ -0,0 +1,7 @@+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 ttl=3 src=10.10.10.1 dst=10.10.10.2 ver=4 hlen=5 tos=0x11 + id=2 prot = 17 csum=0+ (udp src=1234 dst = 2152+ (gtp+ (ipv4 src=20.10.10.1 dst=20.10.10.2 prot=17+ (udp (payload pattern=0 length=8)))))))
+ samples/gtp2.pkt view
@@ -0,0 +1,11 @@+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 ttl=3 src=10.10.10.1 dst=10.10.10.2 ver=4 hlen=5 tos=0x11 + id=2 prot = 17 csum=0+ (udp src=1234 dst = 2152+ (gtp teid=0xcafebabe+ (ipv4 src=20.10.10.1 dst=20.10.10.2 prot=17+ (udp dst=1701+ (l2tp tid=0xaaaa+ (ppp+ (ipv4 src=30.10.10.1 dst=30.10.10.1 prot=17+ (udp (payload pattern=0 length=8)))))))))))
+ samples/gtp3.pkt view
@@ -0,0 +1,12 @@+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4src=10.10.10.1 dst=10.10.10.2 prot = 17+ (udp src=2152 dst = 2152+ (gtp teid=0xcafebabe+ (ipv4 src=20.10.10.1 dst=20.10.10.2 prot=17+ (udp dst=1701 (payload pattern=0 length=8)))))))+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4src=10.10.10.1 dst=10.10.10.2 prot = 17+ (udp src=2152 dst = 2152+ (gtp teid=0xcafebabe+ (ipv4 src=20.10.10.1 dst=20.10.10.2 prot=17+ (udp dst=1701 (payload pattern=0 length=8)))))))
+ samples/gtp_3.pkt view
@@ -0,0 +1,19 @@+(eth+ (ipv4 src=10.10.10.1 dst=10.10.10.2 prot = 17+ (udp src=1234 dst = 2152+ (gtp teid=0x1+ (ipv4 src=30.10.10.1 dst=20.10.10.1 prot=1+ (icmp (payload pattern=0 length=666)))))))+(eth+ (ipv4 src=10.10.10.1 dst=10.10.10.2 prot = 17+ (udp src=1234 dst = 2152+ (gtp teid=0x2+ (ipv4 src=30.10.10.1 dst=20.10.10.2 prot=1+ (icmp (payload pattern=0 length=666)))))))+(eth+ (ipv4 src=10.10.10.1 dst=10.10.10.2 prot = 17+ (udp src=1234 dst = 2152+ (gtp teid=0x3+ (ipv4 src=30.10.10.1 dst=20.10.10.3 prot=1+ (icmp (payload pattern=0 length=666)))))))+
+ samples/gtp_33.pkt view
@@ -0,0 +1,21 @@+(eth+ (ipv4 src=10.10.10.1 dst=10.10.10.2 prot = 17+ (udp src=1234 dst = 2152+ (gtp teid=0x1+ (ipv4 src=30.10.10.1 dst=20.10.10.1 prot=1+ (icmp (payload pattern=0 length=666)))))))+(eth+ (ipv4 src=10.10.10.1 dst=10.10.10.2 prot = 17+ (udp src=1234 dst = 2152+ (gtp teid=0x2+ (ipv4 src=30.10.10.1 dst=20.10.10.2 prot=4+ (ipv4 src=30.10.10.1 dst=20.10.10.1 prot=1+ (icmp (payload pattern=0 length=666))))))))+(eth+ (ipv4 src=10.10.10.1 dst=10.10.10.2 prot = 17+ (udp src=1234 dst = 2152+ (gtp teid=0x3+ (ipv4 src=30.10.10.1 dst=20.10.10.3 prot=4+ (ipv4 src=30.10.10.1 dst=20.10.10.1 prot=1+ (icmp (payload pattern=0 length=666))))))))+
+ samples/gtp_migration.pkt view
@@ -0,0 +1,24 @@+(eth type=0x0800+ (ipv4 src=10.10.10.1 dst=10.10.10.2 prot = 17+ (udp src=2152 dst = 2152+ (gtp teid=0x1+ (ipv4 src=20.10.10.1 dst=20.10.10.2 prot=17+ (udp src=1234 (payload pattern=0 length=8)))))))+(eth type=0x0800+ (ipv4 src=10.10.10.2 dst=10.10.10.1 prot = 17+ (udp src=2152 dst = 2152+ (gtp teid=0x101+ (ipv4 src=20.10.10.2 dst=20.10.10.1 prot=17+ (udp dst=1234 (payload pattern=0 length=8)))))))+(eth type=0x0800+ (ipv4 src=10.10.10.1 dst=10.10.10.2 prot = 17+ (udp src=2152 dst = 2152+ (gtp teid=0x2+ (ipv4 src=20.10.10.1 dst=20.10.10.2 prot=17+ (udp src=1234 (payload pattern=0 length=8)))))))+(eth type=0x0800+ (ipv4 src=10.10.10.2 dst=10.10.10.1 prot = 17+ (udp src=2152 dst = 2152+ (gtp teid=0x102+ (ipv4 src=20.10.10.2 dst=20.10.10.1 prot=17+ (udp dst=1234 (payload pattern=0 length=8)))))))
+ samples/hex.pkt view
@@ -0,0 +1,1 @@+(eth (ipv4 (udp (hex data=64313a7264323a696432))))
+ samples/hopbyhop.pkt view
@@ -0,0 +1,3 @@+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv6 nh =0+ (hopbyhop nh=17 len=0 (padn len=4 (udp csum=0xdb4d fixcsum=false (payload))))))
+ samples/icmp.pkt view
@@ -0,0 +1,4 @@+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 ttl=3 src=0.0.0.0 dst=0.0.0.0 ver=4 hlen=5 tos=0x11 + id=2 prot = 1 csum=0+ (icmp (payload pattern=0 length=8))))
+ samples/icmp_nat.pkt view
@@ -0,0 +1,14 @@+(eth type=0x0800+ (ipv4 src=10.255.255.2 dst=192.168.1.1 prot=1+ (icmp type=8 code=0 seq=1 (payload pattern=0 length=8))))+(eth type=0x0800+ (ipv4 dst=100.100.100.2 src=192.168.1.1 prot=1+ (icmp type=0 code=0 seq=1 id=0 (payload pattern=0 length=8))))+(eth type=0x0800+ (ipv4 src=10.255.255.2 dst=192.168.1.1 prot=1+ (icmp type=8 code=0 seq=2 (payload pattern=0 length=8))))+(eth type=0x0800+ (ipv4 dst=100.100.100.2 src=192.168.1.1 prot=1+ (icmp type=0 code=0 seq=2 id= 0 (payload pattern=0 length=8))))++
+ samples/icmp_tcp.pkt view
@@ -0,0 +1,8 @@+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 src=1.1.1.1 dst=1.1.1.2 id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=11 ackno=1010 (payload length=1100))))+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 src=9.9.9.1 dst=1.1.1.1 ver=4 hlen=5 tos=0x11 id=2 prot = 1 csum=0+ (icmp type=3 code=9+ (ipv4 src=1.1.1.1 dst=1.1.1.2 id=2 prot = 6 csum=0 off=1234+ (tcp src=1234 ack seqno=11 ackno=1010 (payload length=1100))))))
+ samples/icmpv6.pkt view
@@ -0,0 +1,6 @@+(eth type=0x86dd+ (ipv6 nh=58 src=20:0:0:0:0:0:0:1 dst=20:0:0:0:0:0:0:2+ (icmpv6 type=128 code=0 pad=0xcafebabe (payload pattern=0x42) fixcsum=true)))+(eth type=0x86dd+ (ipv6 nh=58 src=20:0:0:0:0:0:0:2 dst=20:0:0:0:0:0:0:1+ (icmpv6 type=129 code=0 pad=0xcafebabe (payload pattern=0x42) fixcsum=true)))
+ samples/icmpv6_short.pkt view
@@ -0,0 +1,3 @@+(eth type=0x86dd+ (ipv6 nh=58 src=20:0:0:0:0:0:0:1 dst=20:0:0:0:0:0:0:2+ (payload pattern=0x42 length=2)))
+ samples/ip4ipv6.pkt view
@@ -0,0 +1,1 @@+(eth (ipv4 prot=41 (ipv6 (udp (payload )))))
+ samples/ipv4_frag_ipv4.m4 view
@@ -0,0 +1,17 @@+define(_frag,`+(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x2000 prot=17 id=$1+ (udp csum=0 fixcsum=false len=2024 (payload pattern=0 length=1040))))+(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x0083 prot=17 id=$1+ (payload pattern=1 length=1024)))+')++_frag(1)+_frag(2)+_frag(3)+_frag(5)+_frag(6)+_frag(7)+_frag(8)+
+ samples/ipv4_frag_ipv4.pkt view
@@ -0,0 +1,59 @@++++(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x2000 prot=17 id=1+ (udp csum=0 fixcsum=false len=2024 (payload pattern=0 length=1040))))+(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x0083 prot=17 id=1+ (payload pattern=1 length=1024)))+++(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x2000 prot=17 id=2+ (udp csum=0 fixcsum=false len=2024 (payload pattern=0 length=1040))))+(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x0083 prot=17 id=2+ (payload pattern=1 length=1024)))+++(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x2000 prot=17 id=3+ (udp csum=0 fixcsum=false len=2024 (payload pattern=0 length=1040))))+(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x0083 prot=17 id=3+ (payload pattern=1 length=1024)))+++(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x2000 prot=17 id=5+ (udp csum=0 fixcsum=false len=2024 (payload pattern=0 length=1040))))+(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x0083 prot=17 id=5+ (payload pattern=1 length=1024)))+++(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x2000 prot=17 id=6+ (udp csum=0 fixcsum=false len=2024 (payload pattern=0 length=1040))))+(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x0083 prot=17 id=6+ (payload pattern=1 length=1024)))+++(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x2000 prot=17 id=7+ (udp csum=0 fixcsum=false len=2024 (payload pattern=0 length=1040))))+(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x0083 prot=17 id=7+ (payload pattern=1 length=1024)))+++(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x2000 prot=17 id=8+ (udp csum=0 fixcsum=false len=2024 (payload pattern=0 length=1040))))+(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x0083 prot=17 id=8+ (payload pattern=1 length=1024)))++
+ samples/ipv4_gre_udp.pkt view
@@ -0,0 +1,21 @@+(eth+ (ipv4 dst=10.0.0.2 src=20.0.0.2 + id=2 prot = 47 csum=0+ (gre key=0xcafecafe seq=0xaaaaaaaa+ (ipv4 ttl=64 dst=10.0.0.1 src=20.0.0.2 tos=0x02+ id=2 prot = 17 csum=0+ (udp (payload pattern=0 length=638))))))+(eth type = 0x86dd+ (ipv6 nh=47+ (gre key=0x12345678 seq=0xaaaaaaaa+ (ipv4 ttl=64 dst=10.0.0.1 src=20.0.0.2 tos=0x02+ id=2 prot = 47 csum=0+ (gre key=0 seq = 0+ (ipv4 ttl=64 dst=10.0.0.1 src=20.0.0.2 tos=0x02+ id=2 prot = 17 csum=0+ (udp (payload pattern=0 length=638))))))))+(eth+ (ipv4 dst=10.0.0.1 src=20.0.0.2 tos=0x03+ id=2 prot = 17 csum=0+ (udp (payload pattern=0 length=638))))+
+ samples/ipv4_ipv4.pkt view
@@ -0,0 +1,12 @@+(eth+ (ipv4 src=9.9.9.1 dst=9.9.9.2 prot=4+ (ipv4 src=19.19.19.1 dst=19.19.19.2 (udp (payload)))))+(eth+ (ipv4 src=9.9.9.2 dst=9.9.9.1 prot=4+ (ipv4 src=19.19.19.2 dst=19.19.19.1 (udp (payload)))))+(eth+ (ipv4 src=9.9.9.1 dst=9.9.9.2 prot=4+ (ipv4 src=19.19.19.1 dst=19.19.19.2 (udp (payload)))))+(eth+ (ipv4 src=9.9.9.2 dst=9.9.9.1 prot=4+ (ipv4 src=19.19.19.2 dst=19.19.19.1 (udp (payload)))))
+ samples/ipv4_ipv4_1280.pkt view
@@ -0,0 +1,3 @@+(eth src=00:11:22:33:44:55+ (ipv4 src=9.9.9.1 dst=9.9.9.2 prot=4+ (ipv4 src=19.19.19.1 dst=19.19.19.2 (udp (payload pattern=0 length=1280)))))
+ samples/ipv4_ipv4_666.pkt view
@@ -0,0 +1,6 @@+(eth src=00:11:22:33:44:55+ (ipv4 src=9.9.9.1 dst=9.9.9.2 prot=4+ (ipv4 src=19.19.19.1 dst=19.19.19.2 (udp (payload pattern=0 length=638)))))+(eth dst=00:11:22:33:44:55+ (ipv4 src=9.9.9.2 dst=9.9.9.1 prot=4+ (ipv4 src=19.19.19.2 dst=19.19.19.1 (udp (payload pattern=0 length=638)))))
+ samples/ipv4_ipv4_overlapping.m4 view
@@ -0,0 +1,21 @@+define(_frag,`+(eth type=0x0800+ (ipv4 src=11.0.0.1 dst=11.0.0.2 prot=4+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x2000+ id=$1 prot = 17 csum=0+ (udp csum=0 fixcsum=false len=1040 (payload pattern=0 length=1024)))))+(eth type=0x0800+ (ipv4 src=11.0.0.1 dst=11.0.0.2 prot=4+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x0001+ id=$1 prot = 17 csum=0+ (udp (payload pattern=0 length=1024)))))+')++_frag(1)+_frag(2)+_frag(3)+_frag(5)+_frag(6)+_frag(7)+_frag(8)+
+ samples/ipv4_ipv4_overlapping.pkt view
@@ -0,0 +1,87 @@++++(eth type=0x0800+ (ipv4 src=11.0.0.1 dst=11.0.0.2 prot=4+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x2000+ id=1 prot = 17 csum=0+ (udp csum=0 fixcsum=false len=1040 (payload pattern=0 length=1024)))))+(eth type=0x0800+ (ipv4 src=11.0.0.1 dst=11.0.0.2 prot=4+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x0001+ id=1 prot = 17 csum=0+ (udp (payload pattern=0 length=1024)))))+++(eth type=0x0800+ (ipv4 src=11.0.0.1 dst=11.0.0.2 prot=4+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x2000+ id=2 prot = 17 csum=0+ (udp csum=0 fixcsum=false len=1040 (payload pattern=0 length=1024)))))+(eth type=0x0800+ (ipv4 src=11.0.0.1 dst=11.0.0.2 prot=4+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x0001+ id=2 prot = 17 csum=0+ (udp (payload pattern=0 length=1024)))))+++(eth type=0x0800+ (ipv4 src=11.0.0.1 dst=11.0.0.2 prot=4+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x2000+ id=3 prot = 17 csum=0+ (udp csum=0 fixcsum=false len=1040 (payload pattern=0 length=1024)))))+(eth type=0x0800+ (ipv4 src=11.0.0.1 dst=11.0.0.2 prot=4+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x0001+ id=3 prot = 17 csum=0+ (udp (payload pattern=0 length=1024)))))+++(eth type=0x0800+ (ipv4 src=11.0.0.1 dst=11.0.0.2 prot=4+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x2000+ id=5 prot = 17 csum=0+ (udp csum=0 fixcsum=false len=1040 (payload pattern=0 length=1024)))))+(eth type=0x0800+ (ipv4 src=11.0.0.1 dst=11.0.0.2 prot=4+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x0001+ id=5 prot = 17 csum=0+ (udp (payload pattern=0 length=1024)))))+++(eth type=0x0800+ (ipv4 src=11.0.0.1 dst=11.0.0.2 prot=4+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x2000+ id=6 prot = 17 csum=0+ (udp csum=0 fixcsum=false len=1040 (payload pattern=0 length=1024)))))+(eth type=0x0800+ (ipv4 src=11.0.0.1 dst=11.0.0.2 prot=4+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x0001+ id=6 prot = 17 csum=0+ (udp (payload pattern=0 length=1024)))))+++(eth type=0x0800+ (ipv4 src=11.0.0.1 dst=11.0.0.2 prot=4+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x2000+ id=7 prot = 17 csum=0+ (udp csum=0 fixcsum=false len=1040 (payload pattern=0 length=1024)))))+(eth type=0x0800+ (ipv4 src=11.0.0.1 dst=11.0.0.2 prot=4+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x0001+ id=7 prot = 17 csum=0+ (udp (payload pattern=0 length=1024)))))+++(eth type=0x0800+ (ipv4 src=11.0.0.1 dst=11.0.0.2 prot=4+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x2000+ id=8 prot = 17 csum=0+ (udp csum=0 fixcsum=false len=1040 (payload pattern=0 length=1024)))))+(eth type=0x0800+ (ipv4 src=11.0.0.1 dst=11.0.0.2 prot=4+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x0001+ id=8 prot = 17 csum=0+ (udp (payload pattern=0 length=1024)))))++
+ samples/ipv4_ipv4_udp.pkt view
@@ -0,0 +1,19 @@+(eth+ (ipv4 dst=10.0.0.2 src=20.0.0.2 + id=2 prot = 4 csum=0+ (ipv4 ttl=64 dst=10.0.0.1 src=20.0.0.2 tos=0x02+ id=2 prot = 17 csum=0+ (udp (payload pattern=0 length=638)))))+(eth type=0x86dd+ (ipv4 dst=10.0.0.3 src=20.0.0.2 + id=2 prot = 4 csum=0+ (ipv4 ttl=64 dst=10.0.0.1 src=20.0.0.2 tos=0x02+ id=2 prot = 4 csum=0+ (ipv4 ttl=64 dst=10.0.0.1 src=20.0.0.2 tos=0x02+ id=2 prot = 17 csum=0+ (udp (payload pattern=0 length=638))))))+(eth+ (ipv4 dst=10.0.0.1 src=20.0.0.2 tos=0x03+ id=2 prot = 17 csum=0+ (udp (payload pattern=0 length=638))))+
+ samples/ipv4_overlapping.m4 view
@@ -0,0 +1,19 @@+define(_frag,`+(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x2000+ id=$1 prot = 17 csum=0+ (udp csum=0 fixcsum=false len=1040 (payload pattern=0 length=1024))))+(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x0001+ id=$1 prot = 17 csum=0+ (udp (payload pattern=0 length=1024))))+')++_frag(1)+_frag(2)+_frag(3)+_frag(5)+_frag(6)+_frag(7)+_frag(8)+
+ samples/ipv4_overlapping.pkt view
@@ -0,0 +1,73 @@++++(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x2000+ id=1 prot = 17 csum=0+ (udp csum=0 fixcsum=false len=1040 (payload pattern=0 length=1024))))+(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x0001+ id=1 prot = 17 csum=0+ (udp (payload pattern=0 length=1024))))+++(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x2000+ id=2 prot = 17 csum=0+ (udp csum=0 fixcsum=false len=1040 (payload pattern=0 length=1024))))+(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x0001+ id=2 prot = 17 csum=0+ (udp (payload pattern=0 length=1024))))+++(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x2000+ id=3 prot = 17 csum=0+ (udp csum=0 fixcsum=false len=1040 (payload pattern=0 length=1024))))+(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x0001+ id=3 prot = 17 csum=0+ (udp (payload pattern=0 length=1024))))+++(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x2000+ id=5 prot = 17 csum=0+ (udp csum=0 fixcsum=false len=1040 (payload pattern=0 length=1024))))+(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x0001+ id=5 prot = 17 csum=0+ (udp (payload pattern=0 length=1024))))+++(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x2000+ id=6 prot = 17 csum=0+ (udp csum=0 fixcsum=false len=1040 (payload pattern=0 length=1024))))+(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x0001+ id=6 prot = 17 csum=0+ (udp (payload pattern=0 length=1024))))+++(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x2000+ id=7 prot = 17 csum=0+ (udp csum=0 fixcsum=false len=1040 (payload pattern=0 length=1024))))+(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x0001+ id=7 prot = 17 csum=0+ (udp (payload pattern=0 length=1024))))+++(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x2000+ id=8 prot = 17 csum=0+ (udp csum=0 fixcsum=false len=1040 (payload pattern=0 length=1024))))+(eth type=0x0800+ (ipv4 src=10.0.0.1 dst=10.0.0.2 off=0x0001+ id=8 prot = 17 csum=0+ (udp (payload pattern=0 length=1024))))++
+ samples/ipv6_frag_ipv6.m4 view
@@ -0,0 +1,20 @@+define(_frag,`+(eth type=0x86dd+ (ipv6 hl=32 src=20:0:0:0:0:0:0:2 dst=30:0:0:0:0:0:0:1 nh=44+ (fragv6 nh=4 off =1 id=0x1234+ (ipv4 src=10.0.0.1 dst=10.0.0.2 prot=17 id=$1 len=2072+ (udp csum=0 fixcsum=false len=2024 (payload pattern=0 length=1020))))))+(eth type=0x86dd+ (ipv6 hl=32 src=20:0:0:0:0:0:0:2 dst=30:0:0:0:0:0:0:1 nh=44+ (fragv6 nh=4 off = 1048 id=0x1234+ (payload pattern=1 length=1024))))+')++_frag(1)+_frag(2)+_frag(3)+_frag(5)+_frag(6)+_frag(7)+_frag(8)+
+ samples/ipv6_frag_ipv6.pkt view
@@ -0,0 +1,80 @@++++(eth type=0x86dd+ (ipv6 hl=32 src=20:0:0:0:0:0:0:2 dst=30:0:0:0:0:0:0:1 nh=44+ (fragv6 nh=4 off =1 id=0x1234+ (ipv4 src=10.0.0.1 dst=10.0.0.2 prot=17 id=1 len=2072+ (udp csum=0 fixcsum=false len=2024 (payload pattern=0 length=1020))))))+(eth type=0x86dd+ (ipv6 hl=32 src=20:0:0:0:0:0:0:2 dst=30:0:0:0:0:0:0:1 nh=44+ (fragv6 nh=4 off = 1048 id=0x1234+ (payload pattern=1 length=1024))))+++(eth type=0x86dd+ (ipv6 hl=32 src=20:0:0:0:0:0:0:2 dst=30:0:0:0:0:0:0:1 nh=44+ (fragv6 nh=4 off =1 id=0x1234+ (ipv4 src=10.0.0.1 dst=10.0.0.2 prot=17 id=2 len=2072+ (udp csum=0 fixcsum=false len=2024 (payload pattern=0 length=1020))))))+(eth type=0x86dd+ (ipv6 hl=32 src=20:0:0:0:0:0:0:2 dst=30:0:0:0:0:0:0:1 nh=44+ (fragv6 nh=4 off = 1048 id=0x1234+ (payload pattern=1 length=1024))))+++(eth type=0x86dd+ (ipv6 hl=32 src=20:0:0:0:0:0:0:2 dst=30:0:0:0:0:0:0:1 nh=44+ (fragv6 nh=4 off =1 id=0x1234+ (ipv4 src=10.0.0.1 dst=10.0.0.2 prot=17 id=3 len=2072+ (udp csum=0 fixcsum=false len=2024 (payload pattern=0 length=1020))))))+(eth type=0x86dd+ (ipv6 hl=32 src=20:0:0:0:0:0:0:2 dst=30:0:0:0:0:0:0:1 nh=44+ (fragv6 nh=4 off = 1048 id=0x1234+ (payload pattern=1 length=1024))))+++(eth type=0x86dd+ (ipv6 hl=32 src=20:0:0:0:0:0:0:2 dst=30:0:0:0:0:0:0:1 nh=44+ (fragv6 nh=4 off =1 id=0x1234+ (ipv4 src=10.0.0.1 dst=10.0.0.2 prot=17 id=5 len=2072+ (udp csum=0 fixcsum=false len=2024 (payload pattern=0 length=1020))))))+(eth type=0x86dd+ (ipv6 hl=32 src=20:0:0:0:0:0:0:2 dst=30:0:0:0:0:0:0:1 nh=44+ (fragv6 nh=4 off = 1048 id=0x1234+ (payload pattern=1 length=1024))))+++(eth type=0x86dd+ (ipv6 hl=32 src=20:0:0:0:0:0:0:2 dst=30:0:0:0:0:0:0:1 nh=44+ (fragv6 nh=4 off =1 id=0x1234+ (ipv4 src=10.0.0.1 dst=10.0.0.2 prot=17 id=6 len=2072+ (udp csum=0 fixcsum=false len=2024 (payload pattern=0 length=1020))))))+(eth type=0x86dd+ (ipv6 hl=32 src=20:0:0:0:0:0:0:2 dst=30:0:0:0:0:0:0:1 nh=44+ (fragv6 nh=4 off = 1048 id=0x1234+ (payload pattern=1 length=1024))))+++(eth type=0x86dd+ (ipv6 hl=32 src=20:0:0:0:0:0:0:2 dst=30:0:0:0:0:0:0:1 nh=44+ (fragv6 nh=4 off =1 id=0x1234+ (ipv4 src=10.0.0.1 dst=10.0.0.2 prot=17 id=7 len=2072+ (udp csum=0 fixcsum=false len=2024 (payload pattern=0 length=1020))))))+(eth type=0x86dd+ (ipv6 hl=32 src=20:0:0:0:0:0:0:2 dst=30:0:0:0:0:0:0:1 nh=44+ (fragv6 nh=4 off = 1048 id=0x1234+ (payload pattern=1 length=1024))))+++(eth type=0x86dd+ (ipv6 hl=32 src=20:0:0:0:0:0:0:2 dst=30:0:0:0:0:0:0:1 nh=44+ (fragv6 nh=4 off =1 id=0x1234+ (ipv4 src=10.0.0.1 dst=10.0.0.2 prot=17 id=8 len=2072+ (udp csum=0 fixcsum=false len=2024 (payload pattern=0 length=1020))))))+(eth type=0x86dd+ (ipv6 hl=32 src=20:0:0:0:0:0:0:2 dst=30:0:0:0:0:0:0:1 nh=44+ (fragv6 nh=4 off = 1048 id=0x1234+ (payload pattern=1 length=1024))))++
+ samples/ipv6_gtp_ipv4_teredo.pkt view
@@ -0,0 +1,54 @@+(eth type=0x86dd+ (ipv6 src=2001:0:0:0:0:0:0:1 dst=2001:0:0:0:0:0:0:2+ (udp src=2152 dst=2152+ (gtp teid=0xcafebabe+ (ipv4 src=20.10.10.1 dst=99.99.99.99 prot=17+ (udp src=1234 dst=5678+ (teredo fixsrc=true fixdst=true+ (ipv6+ (udp src=2222 (payload length=128))))))))))+(eth type=0x86dd+ (ipv6 dst=2001:0:0:0:0:0:0:1 src=2001:0:0:0:0:0:0:2+ (udp src=2152 dst=2152+ (gtp teid=0xbabecafe+ (ipv4 dst=20.10.10.1 src=99.99.99.99 prot=17+ (udp dst=1234 src=5678+ (teredo fixsrc=true fixdst=true+ (ipv6+ (udp dst=2222 (payload length=128))))))))))+(eth type=0x86dd+ (ipv6 dst=2001:0:0:0:0:0:0:1 src=2001:0:0:0:0:0:0:2+ (udp src=2152 dst=2152+ (gtp teid=0xbabecafe+ (ipv4 dst=20.10.10.1 src=99.99.99.99 prot=17+ (udp dst=1234 src=5678+ (teredo fixsrc=true fixdst=true+ (ipv6+ (udp dst=2223 (payload length=128))))))))))+(eth type=0x86dd+ (ipv6 src=2001:0:0:0:0:0:0:1 dst=2001:0:0:0:0:0:0:2+ (udp src=2152 dst=2152+ (gtp teid=0xcafebabf+ (ipv4 src=20.10.10.2 dst=99.99.99.99 prot=17+ (udp src=1234 dst=5678+ (teredo fixsrc=true fixdst=true+ (ipv6+ (udp src=2222 (payload length=128))))))))))+(eth type=0x86dd+ (ipv6 dst=2001:0:0:0:0:0:0:1 src=2001:0:0:0:0:0:0:2+ (udp src=2152 dst=2152+ (gtp teid=0xbabfcafe+ (ipv4 dst=20.10.10.2 src=99.99.99.99 prot=17+ (udp dst=1234 src=5678+ (teredo fixsrc=true fixdst=true+ (ipv6+ (udp dst=2222 (payload length=128))))))))))+(eth type=0x86dd+ (ipv6 dst=2001:0:0:0:0:0:0:1 src=2001:0:0:0:0:0:0:2+ (udp src=2152 dst=2152+ (gtp teid=0xbabfcafe+ (ipv4 dst=20.10.10.2 src=99.99.99.99 prot=17+ (udp dst=1234 src=5678+ (teredo fixsrc=true fixdst=true+ (ipv6+ (udp dst=2223 (payload length=128))))))))))
+ samples/ipv6_ipv4.pkt view
@@ -0,0 +1,8 @@+(eth (ipv6 src=2001:0:0:0:0:0:0:1 dst=2001:0:0:0:0:0:0:2 nh=4+ (ipv4 src=1.1.1.1 dst=1.1.1.2 (udp (payload length=1400)))))+(eth (ipv6 src=2001:0:0:0:0:0:0:2 dst=2001:0:0:0:0:0:0:1 nh=4+ (ipv4 src=1.1.1.2 dst=1.1.1.1 (udp (payload length=1400)))))+(eth (ipv6 src=2001:0:0:0:0:0:0:1 dst=2001:0:0:0:0:0:0:2 nh=4+ (ipv4 src=1.1.1.1 dst=1.1.1.2 (udp (payload length=1400)))))+(eth (ipv6 src=2001:0:0:0:0:0:0:2 dst=2001:0:0:0:0:0:0:1 nh=4+ (ipv4 src=1.1.1.2 dst=1.1.1.1 (udp (payload length=1400)))))
+ samples/ipv6_ipv4_666.pkt view
@@ -0,0 +1,3 @@+(eth type=0x86dd (ipv6 src=2001:0:0:0:0:0:0:1 dst=2001:0:0:0:0:0:0:2 nh=4+ (ipv4 src=1.1.1.1 dst=1.1.1.2 (udp (payload length=638)))))+
+ samples/ipv6_multicast.pkt view
@@ -0,0 +1,3 @@+(eth src=00:11:22:33:44:55 type=0x86dd+ (ipv6 dst=0xff01:0:0:0:0:0:0:1+ (udp src=0 dst = 0 (payload pattern=64) fixcsum=true)))
+ samples/l2tp.pkt view
@@ -0,0 +1,8 @@+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 ttl=3 src=10.10.10.1 dst=10.10.10.2 ver=4 hlen=5 tos=0x11 + id=2 prot = 17 csum=0+ (udp src=1234 dst = 1701+ (l2tp+ (ppp address=0xff protocol=0xcafe+ (ipv4 src=20.10.10.1 dst=20.10.10.1 prot=17+ (udp (payload pattern=0 length=8))))))))
+ samples/l2tp_invalid_len.pkt view
@@ -0,0 +1,9 @@+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 src=10.10.10.1 dst=10.10.10.2 ver=4 hlen=5 tos=0x11 + id=2 prot = 17 csum=0+ (udp src=1234 dst = 1701+ (l2tp flags=0x4a02 ns=12 nr=1 offset=4 length=1200+ (ppp address=0xff+ (ipv4 src=20.10.10.2 dst=20.10.10.1 prot=17+ (udp (payload pattern=0 length=8))))))))+
+ samples/l2tp_ipv4_ipv6.pkt view
@@ -0,0 +1,16 @@+(eth+ (ipv4 src=10.10.10.10 dst=10.10.10.11+ (udp src=1701 dst = 1701+ (l2tp+ (ppp address=0xff protocol=0x0057+ (ipv6 nh=17+ (udp (payload pattern=0 length=8))))))))+(eth + (ipv4 src=10.10.10.10 dst=10.10.10.11+ (udp src=1701 dst = 1701+ (l2tp+ (ppp address=0xff protocol=0x0057+ (ipv6 ver = 5 nh=17+ (udp (payload pattern=0 length=8))))))))++
+ samples/l2tp_ns_nr.pkt view
@@ -0,0 +1,56 @@+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 src=10.10.10.1 dst=10.10.10.2 ver=4 hlen=5 tos=0x11 + id=2 prot = 17 csum=0+ (udp src=1234 dst = 1701+ (l2tp flags=0x4a02 ns=12 nr=1 offset=3+ (ppp address=0xff+ (ipv4 src=20.10.10.2 dst=20.10.10.1 prot=17+ (udp (payload pattern=0 length=8))))))))+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 src=10.10.10.1 dst=10.10.10.2 ver=4 hlen=5 tos=0x11 + id=2 prot = 17 csum=0+ (udp src=1234 dst = 1701+ (l2tp flags=0x4a02 ns=12 nr=1 offset=2+ (ppp address=0xff+ (ipv4 src=20.10.10.2 dst=20.10.10.1 prot=17+ (udp (payload pattern=0 length=8))))))))+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 src=10.10.10.1 dst=10.10.10.2 ver=4 hlen=5 tos=0x11 + id=2 prot = 17 csum=0+ (udp src=1234 dst = 1701+ (l2tp flags=0x4a02 ns=12 nr=1 offset=0+ (ppp address=0xff+ (ipv4 src=20.10.10.2 dst=20.10.10.1 prot=17+ (udp (payload pattern=0 length=8))))))))+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 src=10.10.10.1 dst=10.10.10.2 ver=4 hlen=5 tos=0x11 + id=2 prot = 17 csum=0+ (udp src=1234 dst = 1701+ (l2tp flags=0x4a02 ns=12 nr=1 offset=32+ (ppp address=0xff+ (ipv4 src=20.10.10.2 dst=20.10.10.1 prot=17+ (udp (payload pattern=0 length=8))))))))+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 src=10.10.10.1 dst=10.10.10.2 ver=4 hlen=5 tos=0x11 + id=2 prot = 17 csum=0+ (udp src=1234 dst = 1701+ (l2tp flags=0x4a02 ns=12 nr=1 offset=16+ (ppp address=0xff+ (ipv4 src=20.10.10.2 dst=20.10.10.1 prot=17+ (udp (payload pattern=0 length=8))))))))+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 src=10.10.10.1 dst=10.10.10.2 ver=4 hlen=5 tos=0x11 + id=2 prot = 17 csum=0+ (udp src=1234 dst = 1701+ (l2tp flags=0x4a02 ns=12 nr=1 offset=4+ (ppp address=0xff+ (ipv4 src=20.10.10.2 dst=20.10.10.1 prot=17+ (udp (payload pattern=0 length=8))))))))+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 src=10.10.10.1 dst=10.10.10.2 ver=4 hlen=5 tos=0x11 + id=2 prot = 17 csum=0+ (udp src=1234 dst = 1701+ (l2tp flags=0x0a02 ns=12 nr=1 offset=4+ (ppp address=0xff+ (ipv4 src=20.10.10.2 dst=20.10.10.1 prot=17+ (udp (payload pattern=0 length=8))))))))
+ samples/l2tp_off_no_len.pkt view
@@ -0,0 +1,8 @@+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 src=10.10.10.1 dst=10.10.10.2 ver=4 hlen=5 tos=0x11 + id=2 prot = 17 csum=0+ (udp src=1234 dst = 1701+ (l2tp flags=0x0a02 ns=12 nr=1 offset=4+ (ppp address=0xff+ (ipv4 src=20.10.10.2 dst=20.10.10.1 prot=17+ (udp (payload pattern=0 length=8))))))))
+ samples/l2tp_teredo.pkt view
@@ -0,0 +1,18 @@+(eth type=0x0800+ (ipv4 src=1.1.1.1 dst=2.2.2.2 prot = 17+ (udp src=1234 dst = 1701+ (l2tp tid=1 sid=1+ (ppp+ (ipv4 src=20.10.10.10 dst=40.40.40.1 prot = 17+ (udp dst=1235 src=1024 (teredo fixsrc=true fixdst=true+ (ipv6 nh=41+ (ipv6+ (udp (payload pattern=0 length=8))))))))))))+(eth type=0x0800+ (ipv4 src=1.1.1.1 dst=2.2.2.2 prot = 17+ (udp src=1234 dst = 1701+ (l2tp tid=2 sid=2+ (ppp protocol=0x0057+ (ipv6+ (udp (payload pattern=0 length=8))))))))+
+ samples/l2tp_too_large_off.pkt view
@@ -0,0 +1,9 @@+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 src=10.10.10.1 dst=10.10.10.2 ver=4 hlen=5 tos=0x11 + id=2 prot = 17 csum=0+ (udp src=1234 dst = 1701+ (l2tp flags=0x4a02 ns=12 nr=1 offset=400 addoffset=false+ (ppp address=0xff+ (ipv4 src=20.10.10.2 dst=20.10.10.1 prot=17+ (udp (payload pattern=0 length=8))))))))+
+ samples/l2tpv6.pkt view
@@ -0,0 +1,16 @@+(eth src=00:11:22:33:44:55 type=0x86dd+ (ipv6 nh = 17+ (udp src=1701 dst = 1701+ (l2tp+ (ppp address=0xff protocol=0x0057+ (ipv6 nh=17+ (udp (payload pattern=0 length=8))))))))+(eth src=00:11:22:33:44:55 type=0x86dd+ (ipv6 nh = 17+ (udp src=1701 dst = 1701+ (l2tp+ (ppp address=0xff protocol=0x0057+ (ipv6 ver = 5 nh=17+ (udp (payload pattern=0 length=8))))))))++
+ samples/multi_payload.pkt view
@@ -0,0 +1,2 @@+(eth type=0x800 {(ipv4 (udp {(payload pattern=0xbb),(payload pattern=0xaa)})), (payload pattern=0xab)})+(eth type=0x800 (ipv4 (udp)))
+ samples/nat.pkt view
@@ -0,0 +1,6 @@+(eth+ (ipv4 src=10.10.10.1 dst=99.99.99.99 prot = 17+ (udp src=34561 dst=7)))+(eth+ (ipv4 dst=100.100.100.2 src=99.99.99.99 prot = 17+ (udp src=7 dst=6665)))
+ samples/nat4.pkt view
@@ -0,0 +1,25 @@+(eth+ (ipv4 src=10.10.10.1 dst=99.99.99.99 prot = 17+ (udp src=34561 dst=7)))+(eth+ (ipv4 dst=100.100.100.2 src=99.99.99.99 prot = 17+ (udp src=7 dst=6667)))+(eth+ (ipv4 src=10.10.10.2 dst=99.99.99.99 prot = 17+ (udp src=34561 dst=7)))+(eth+ (ipv4 dst=100.100.100.2 src=99.99.99.99 prot = 17+ (udp src=7 dst=6669)))+(eth+ (ipv4 src=10.10.10.3 dst=99.99.99.99 prot = 17+ (udp src=34561 dst=7)))+(eth+ (ipv4 dst=100.100.100.2 src=99.99.99.99 prot = 17+ (udp src=7 dst=6671)))+(eth+ (ipv4 src=10.10.10.4 dst=99.99.99.99 prot = 17+ (udp src=34561 dst=7)))+(eth+ (ipv4 dst=100.100.100.2 src=99.99.99.99 prot = 17+ (udp src=7 dst=6673)))+
+ samples/nat_col.pkt view
@@ -0,0 +1,18 @@+(eth+ (ipv4 dst=100.100.100.2 src=99.99.99.99 prot = 17+ (udp src=7 dst=6665)))+(eth+ (ipv4 src=10.10.10.1 dst=99.99.99.99 prot = 17+ (udp src=34561 dst=7)))+(eth+ (ipv4 src=10.10.10.1 dst=99.99.99.99 prot = 17+ (udp src=34561 dst=7)))+(eth+ (ipv4 dst=100.100.100.2 src=99.99.99.99 prot = 17+ (udp src=7 dst=6665)))+(eth+ (ipv4 src=10.10.10.1 dst=99.99.99.99 prot = 17+ (udp src=34561 dst=7)))+(eth+ (ipv4 dst=100.100.100.2 src=99.99.99.99 prot = 17+ (udp src=7 dst=6665)))
+ samples/nat_l2tp.pkt view
@@ -0,0 +1,46 @@+(eth+ (ipv4 src=10.10.10.1 dst=99.99.99.99 prot = 17+ (udp src=2048 dst=1701+ (l2tp tid=1 sid=1+ (ppp+ (ipv4 src=20.20.20.1 dst=222.222.222.222+ (udp (payload pattern=0 length=8))))))))+(eth+ (ipv4 dst=100.100.100.2 src=99.99.99.99 prot = 17+ (udp dst=6666 src=1701+ (l2tp tid=1 sid=1+ (ppp+ (ipv4 dst=20.20.20.1 src=222.222.222.222+ (udp (payload pattern=0 length=8))))))))+(eth+ (ipv4 dst=100.100.100.2 src=99.99.99.99 prot = 17+ (udp dst=6666 src=1701+ (l2tp tid=1 sid=1+ (ppp+ (ipv4 dst=20.20.20.1 src=222.222.222.222+ (udp (payload pattern=0 length=8))))))))+(eth+ (ipv4 src=10.10.10.2 dst=99.99.99.99 prot = 17+ (udp src=2049 dst=1701+ (l2tp tid=1 sid=1+ (ppp+ (ipv4 src=20.20.20.1 dst=222.222.222.222+ (udp (payload pattern=0 length=8))))))))+(eth+ (ipv4 dst=100.100.100.2 src=99.99.99.99 prot = 17+ (udp dst=6667 src=1701+ (l2tp tid=1 sid=1+ (ppp+ (ipv4 dst=20.20.20.1 src=222.222.222.222+ (udp (payload pattern=0 length=8))))))))+(eth+ (ipv4 dst=100.100.100.2 src=99.99.99.99 prot = 17+ (udp dst=6667 src=1701+ (l2tp tid=1 sid=1+ (ppp+ (ipv4 dst=20.20.20.1 src=222.222.222.222+ (udp (payload pattern=0 length=8))))))))++++
+ samples/nat_pb.pkt view
@@ -0,0 +1,12 @@+(eth+ (ipv4 src=10.10.10.1 dst=99.99.99.99 prot = 17+ (udp src=34561 dst=7)))+(eth+ (ipv4 dst=100.100.100.2 src=99.99.99.99 prot = 17+ (udp src=7 dst=6667)))+(eth+ (ipv4 dst=100.100.100.2 src=99.99.99.98 prot = 17+ (udp src=7 dst=6667)))+++
+ samples/nat_teredo.pkt view
@@ -0,0 +1,23 @@+(eth+ (ipv4 src=10.10.10.1 dst=99.99.99.99 prot = 17+ (udp src=2048 dst=1234+ (teredo fixsrc=false fixdst=false+ (ipv6 src=0x2001:0x0:0xcafe:0xbabe:0x0:0xe5f5:0x9b9b:0x9bfd+ dst=0x2001:0x0:0xcafe:0xbabe:0x0:0xfb2d:0x9c9c:0x9c9c+ (udp (payload pattern=0 length=8)))))))+(eth+ (ipv4 dst=100.100.100.2 src=99.99.99.99 prot = 17+ (udp dst=6666 src=1234+ (teredo fixsrc=true fixdst=true+ (ipv6 + (udp (payload pattern=0 length=8)))))))+(eth+ (ipv4 dst=100.100.100.2 src=99.99.99.99 prot = 17+ (udp dst=6666 src=1234+ (teredo fixsrc=true fixdst=true+ (ipv6 + (udp src=777 dst=777 (payload pattern=0 length=8)))))))++++
+ samples/ppp.pkt view
@@ -0,0 +1,2 @@+(ppp )+
+ samples/rewrites.pkt view
@@ -0,0 +1,17 @@+(eth type=0x0800+ (ipv4 src=10.10.10.1 tos=0x28 dst=10.10.10.2 prot = 17+ (udp src=1234 (payload pattern=0 length=8))))+(eth type=0x0800+ (ipv4 src=100.100.100.2 tos=0x28 dst=10.10.10.1 prot = 17+ (udp dst=1234 (payload pattern=0 length=8))))+(eth type=0x0800+ (ipv4 src=10.10.10.1 tos=0 dst= 10.10.10.2 prot = 6+ (tcp src=1234 ack seqno=2 ackno=1001 (payload length=8))))+(eth type=0x0800+ (ipv4 tos=0x28 src=100.100.100.2 dst=10.10.10.1 prot = 6+ (tcp dst=1234 ack ackno=10 seqno=1001 (payload length=8))))+++ ++
+ samples/rewrites_ipv6.pkt view
@@ -0,0 +1,7 @@+(eth type=0x86dd+ (ipv6 tcl = 10 nh = 17 (udp src=1234 (payload pattern=0 length=8))))+++ ++
+ samples/tcp.pkt view
@@ -0,0 +1,34 @@+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 syn seqno=1 ackno=0)))+(eth type=0x0800 dst=00:00:00:00:00:01 src=00:00:00:00:00:02+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 syn ack ackno=2 seqno=1000)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=2 ackno=1001)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=2 ackno=1001 (payload length=8))))+(eth type=0x0800 dst=00:00:00:00:00:01 src=00:00:00:00:00:02+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 ack ackno=10 seqno=1001 (payload length=8))))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 fin ack seqno=10 ackno=1009)))+(eth type=0x0800 dst=00:00:00:00:00:01 src=00:00:00:00:00:02+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 fin ack ackno=11 seqno=1009)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=11 ackno=1010)))++
+ samples/tcp_moar.m4 view
@@ -0,0 +1,60 @@+define(_base_seqA, 0x1)+define(_base_seqB, 0xf00000)+define(_plen, 1480)+define(_seqA, _base_seqA)+define(_seqB, _base_seqB)++define(_tcp_sndA,+`(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 seqno=_seqA ackno=_seqB $1)))')+define(_tcp_sndB,+`(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 seqno=_seqB ackno=_seqA $1)))')++define(_tcp_sndDataA,+`(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=_seqA ackno=_seqB (payload length=$1 pattern=$2))))+ define(`_seqA', eval(_seqA + $1))')++define(_tcp_sndDataB,+`(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=_seqB ackno=_seqA (payload length=$1 pattern=$2))))+ define(`_seqB', eval(_seqB + $1))')++(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 seqno=_seqA ackno=0 syn)))+define(`_seqA', eval(_seqA + 1))+_tcp_sndB(`syn ack') define(`_seqB', eval(_seqB + 1))+_tcp_sndA(`ack')+_tcp_sndDataA(1480, 0)+_tcp_sndDataA(1480, 1)+_tcp_sndDataA(1480, 1)+_tcp_sndDataA(1480, 1)+_tcp_sndDataA(1480, 1)+_tcp_sndDataA(1480, 1)+_tcp_sndDataA(1480, 1)+_tcp_sndDataA(1480, 1)+_tcp_sndDataA(1480, 1)+_tcp_sndDataA(1480, 1)+_tcp_sndDataA(1480, 1)+_tcp_sndDataA(1480, 1)+_tcp_sndDataB(1480, 0)+_tcp_sndDataB(1480, 1)+_tcp_sndA(`fin ack') define(`_seqA', eval(_seqA + 1))+_tcp_sndB(`fin ack') define(`_seqB', eval(_seqB + 1))+_tcp_sndA(`ack')+++++
+ samples/tcp_moar.pkt view
@@ -0,0 +1,113 @@++++++++++++++(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 seqno=0x1 ackno=0 syn)))++(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 seqno=0xf00000 ackno=2 syn ack))) +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 seqno=2 ackno=15728641 ack)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=2 ackno=15728641 (payload length=1480 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=1482 ackno=15728641 (payload length=1480 pattern=1))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=2962 ackno=15728641 (payload length=1480 pattern=1))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=4442 ackno=15728641 (payload length=1480 pattern=1))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=5922 ackno=15728641 (payload length=1480 pattern=1))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=7402 ackno=15728641 (payload length=1480 pattern=1))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=8882 ackno=15728641 (payload length=1480 pattern=1))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=10362 ackno=15728641 (payload length=1480 pattern=1))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=11842 ackno=15728641 (payload length=1480 pattern=1))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=13322 ackno=15728641 (payload length=1480 pattern=1))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=14802 ackno=15728641 (payload length=1480 pattern=1))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=16282 ackno=15728641 (payload length=1480 pattern=1))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15728641 ackno=17762 (payload length=1480 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15730121 ackno=17762 (payload length=1480 pattern=1))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 seqno=17762 ackno=15731601 fin ack))) +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 seqno=15731601 ackno=17763 fin ack))) +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 seqno=17763 ackno=15731602 ack)))+++++
+ samples/tcp_ooo.m4 view
@@ -0,0 +1,27 @@+define(_base_seq, 0x1)+define(_plen, 1480)+define(_tcp_snd, `(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=eval(`2 + $1') ackno=2 (payload length=_plen))))')++(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 syn seqno=_base_seq ackno=0)))+(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 syn ack ackno=eval(_base_seq+1) seqno=1000)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=eval(_base_seq+1) ackno=1001)))+_tcp_snd(eval(1 * _plen))+_tcp_snd(eval(1 * _plen - 450))+_tcp_snd(eval(2 * _plen))+_tcp_snd(eval(2 * _plen))+_tcp_snd(eval(0 * _plen))+++
+ samples/tcp_ooo.pkt view
@@ -0,0 +1,39 @@+++++(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 syn seqno=0x1 ackno=0)))+(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 syn ack ackno=2 seqno=1000)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=2 ackno=1001)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=1482 ackno=2 (payload length=1480))))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=1032 ackno=2 (payload length=1480))))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=2962 ackno=2 (payload length=1480))))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=2962 ackno=2 (payload length=1480))))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=2 ackno=2 (payload length=1480))))+++
+ samples/tcp_ooo2.m4 view
@@ -0,0 +1,47 @@+define(_base_seq, 0x1)+define(_plen, 1480)+define(_tcp_snd, `(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=eval(`2 + $1') ackno=2 (payload length=_plen))))')++(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 syn seqno=_base_seq ackno=0)))+(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 syn ack ackno=eval(_base_seq+1) seqno=1000)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=eval(_base_seq+1) ackno=1001)))+_tcp_snd(eval(1 * _plen))+_tcp_snd(eval(3 * _plen))+_tcp_snd(eval(5 * _plen))+_tcp_snd(eval(7 * _plen))+_tcp_snd(eval(9 * _plen))+_tcp_snd(eval(8 * _plen))+_tcp_snd(eval(6 * _plen))+_tcp_snd(eval(4 * _plen))+_tcp_snd(eval(2 * _plen))+_tcp_snd(eval(0 * _plen))++(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 fin ack ackno=eval(_base_seq+1 + 10*_plen) seqno=1001)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 fin ack seqno=eval(_base_seq+1 + 10*_plen) ackno=1002)))+(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 ack ackno=eval(_base_seq+2 + 10*_plen) seqno=1002)))+++++
+ samples/tcp_ooo2.pkt view
@@ -0,0 +1,74 @@+++++(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 syn seqno=0x1 ackno=0)))+(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 syn ack ackno=2 seqno=1000)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=2 ackno=1001)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=1482 ackno=2 (payload length=1480))))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=4442 ackno=2 (payload length=1480))))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=7402 ackno=2 (payload length=1480))))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=10362 ackno=2 (payload length=1480))))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=13322 ackno=2 (payload length=1480))))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=11842 ackno=2 (payload length=1480))))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=8882 ackno=2 (payload length=1480))))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=5922 ackno=2 (payload length=1480))))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=2962 ackno=2 (payload length=1480))))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=2 ackno=2 (payload length=1480))))++(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 fin ack ackno=14802 seqno=1001)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 fin ack seqno=14802 ackno=1002)))+(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 ack ackno=14803 seqno=1002)))+++++
+ samples/tcp_ooo3.m4 view
@@ -0,0 +1,43 @@+define(_base_seq, 0x1)+define(_plen, 1480)+define(_tcp_snd, `(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack wsc=2 offset=24 seqno=eval(`2 + $1') ackno=2+ (payload length=_plen pattern=$2))))')++(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 syn wsc=2 offset=24 seqno=_base_seq ackno=0)))+(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 wsc=2 offset=24 syn ack ackno=eval(_base_seq+1) seqno=1000)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=eval(_base_seq+1) ackno=1001)))+_tcp_snd(eval(2 * _plen), 2)+_tcp_snd(eval(4 * _plen), 4)+_tcp_snd(eval(0 * _plen), 0)+_tcp_snd(eval(3 * _plen), 3)+_tcp_snd(eval(1 * _plen), 1)++(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 fin ack ackno=eval(_base_seq+1 + 4*_plen) seqno=1001)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 fin ack seqno=eval(_base_seq+1 + 4*_plen) ackno=1002)))+(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 ack ackno=eval(_base_seq+2 + 4*_plen) seqno=1002)))+++++
+ samples/tcp_ooo3.pkt view
@@ -0,0 +1,59 @@+++++(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 syn wsc=2 offset=24 seqno=0x1 ackno=0)))+(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 wsc=2 offset=24 syn ack ackno=2 seqno=1000)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=2 ackno=1001)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack wsc=2 offset=24 seqno=2962 ackno=2+ (payload length=1480 pattern=2))))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack wsc=2 offset=24 seqno=5922 ackno=2+ (payload length=1480 pattern=4))))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack wsc=2 offset=24 seqno=2 ackno=2+ (payload length=1480 pattern=0))))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack wsc=2 offset=24 seqno=4442 ackno=2+ (payload length=1480 pattern=3))))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack wsc=2 offset=24 seqno=1482 ackno=2+ (payload length=1480 pattern=1))))++(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 fin ack ackno=5922 seqno=1001)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 fin ack seqno=5922 ackno=1002)))+(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 ack ackno=5923 seqno=1002)))+++++
+ samples/tcp_ooo4.m4 view
@@ -0,0 +1,43 @@+define(_base_seq, 0x1)+define(_plen, 1480)+define(_tcp_snd, `(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack wsc=2 offset=24 seqno=eval(`2 + $1') ackno=2+ (payload length=_plen pattern=$2))))')++(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 syn wsc=2 offset=24 seqno=_base_seq ackno=0)))+(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 wsc=2 offset=24 syn ack ackno=eval(_base_seq+1) seqno=1000)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=eval(_base_seq+1) ackno=1001)))+_tcp_snd(eval(2 * _plen), 2)+_tcp_snd(eval(4 * _plen), 4)+_tcp_snd(eval(0 * _plen), 0)+_tcp_snd(eval(3 * _plen), 3)+_tcp_snd(eval(1 * _plen), 1)++(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 fin ack ackno=eval(_base_seq+1 + 4*_plen) seqno=1001)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 fin ack seqno=eval(_base_seq+1 + 4*_plen) ackno=1002)))+(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 ack ackno=eval(_base_seq+2 + 4*_plen) seqno=1002)))+++++
+ samples/tcp_ooo_wrap.pkt view
@@ -0,0 +1,35 @@+++++(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 syn seqno=0xfffffa23 ackno=0)))+(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 syn ack ackno=0xfffffa24 seqno=1000)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=0xfffffa24 ackno=1001)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=2940 ackno=2 (payload length=1480))))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=1460 ackno=2 (payload length=1480))))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=0xffffffec ackno=2 (payload length=1480))))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=0xfffffa24 ackno=2 (payload length=1480))))+++
+ samples/tcp_reset0.pkt view
@@ -0,0 +1,22 @@+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 syn seqno=1 ackno=0)))+(eth type=0x0800 dst=00:00:00:00:00:01 src=00:00:00:00:00:02+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 syn ack ackno=2 seqno=1000)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=2 ackno=1001)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=2 ackno=1001 (payload length=8))))+(eth type=0x0800 dst=00:00:00:00:00:01 src=00:00:00:00:00:02+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 ack rst ackno=10 seqno=1001)))++
+ samples/tcp_reset1.pkt view
@@ -0,0 +1,9 @@+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 syn seqno=1 ackno=0)))+(eth type=0x0800 dst=00:00:00:00:00:01 src=00:00:00:00:00:02+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 rst ackno=2 seqno=1000)))+
+ samples/tcp_resyn.m4 view
@@ -0,0 +1,34 @@+define(_base_seqA, 0x1)+define(_base_seqB, 0xf00000)+define(_plen, 1480)+define(_tcp_snd, `(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=eval(`2 + $1') ackno=eval(2 + _base_seqB) (payload length=_plen))))')++(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2+ id=2 prot = 6 csum=0+ (tcp src=1234 syn seqno=_base_seqA ackno=0)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2+ id=2 prot = 6 csum=0+ (tcp src=1234 syn seqno=_base_seqA ackno=0)))+(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 syn ack seqno=eval(_base_seqB + 1) ackno=eval(_base_seqA+1))))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2+ id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=eval(_base_seqA+1) ackno=eval(_base_seqB + 2))))++_tcp_snd(eval(0 * _plen))+_tcp_snd(eval(1 * _plen))+_tcp_snd(eval(2 * _plen))+_tcp_snd(eval(3 * _plen))+++++
+ samples/tcp_retransmission.pkt view
@@ -0,0 +1,30 @@+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2+ id=2 prot = 6 csum=0+ (tcp src=1234 syn seqno=1 ackno=0)))+(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 syn ack ackno=2 seqno=1000)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2+ id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=2 ackno=1001)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2+ id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=2 ackno=1001 (payload length=8))))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2+ id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=2 ackno=1001 (payload length=8))))++(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack ackno=10 seqno=1001 (payload length=8))))+(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack ackno=10 seqno=1001 (payload length=8))))+
+ samples/tcp_retransmission2.pkt view
@@ -0,0 +1,39 @@+#1+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2+ id=2 prot = 6 csum=0+ (tcp src=1234 syn seqno=1 ackno=0)))+#2+(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 syn ack ackno=2 seqno=1000)))+#3+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2+ id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=2 ackno=1001)))+#4+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2+ id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=2 ackno=1001 (payload length=8))))+#5 dropped by pre+(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack ackno=10 seqno=1001 (payload length=8))))+#6 retransmission of 4+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2+ id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=2 ackno=1001 (payload length=8))))+#7+(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack ackno=10 seqno=1001 (payload length=8))))++++
+ samples/tcp_retransmission_with_drops.pkt view
@@ -0,0 +1,46 @@+#1+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2+ id=2 prot = 6 csum=0+ (tcp src=1234 syn seqno=1 ackno=0)))+#2+(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 syn ack ackno=2 seqno=1000)))+#3+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2+ id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=2 ackno=1001)))+#4+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2+ id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=10 ackno=1001 (payload length=8))))+#5+(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack ackno=2 seqno=1001)))+#6+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2+ id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=2 ackno=1001 (payload length=8))))+#7+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2+ id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=10 ackno=1001 (payload length=8))))+#8+(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack ackno=18 seqno=1001 (payload length=8))))+#9+(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack ackno=18 seqno=1009 (payload length=8))))+
+ samples/tcp_simopen.m4 view
@@ -0,0 +1,55 @@+define(_base_seqA, 0x1)+define(_base_seqB, 0xf00000)+define(_plen, 1480)+define(_seqA, _base_seqA)+define(_seqB, _base_seqB)++define(_tcp_sndA,+`(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 seqno=_seqA ackno=_seqB $1)))')+define(_tcp_sndB,+`(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 seqno=_seqB ackno=_seqA $1)))')++define(_tcp_sndDataA,+`(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=_seqA ackno=_seqB (payload length=$1 pattern=$2))))+ define(`_seqA', eval(_seqA + $1))')++define(_tcp_sndDataB,+`(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=_seqB ackno=_seqA (payload length=$1 pattern=$2))))+ define(`_seqB', eval(_seqB + $1))')++(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 seqno=_seqA ackno=0 syn)))+define(`_seqA', eval(_seqA + 1))+(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 seqno=_seqB ackno=0 syn)))+define(`_seqB', eval(_seqB + 1))+_tcp_sndA(`syn ack') define(`_seqA', eval(_seqA + 1))+_tcp_sndB(`syn ack') define(`_seqB', eval(_seqB + 1))+_tcp_sndDataA(1480, 0)+_tcp_sndDataA(1480, 1)+_tcp_sndDataB(1480, 0)+_tcp_sndDataB(1480, 1)+_tcp_sndA(`fin ack') define(`_seqA', eval(_seqA + 1))+_tcp_sndB(`fin ack') define(`_seqB', eval(_seqB + 1))+_tcp_sndA(`ack')+++++
+ samples/tcp_simopen.pkt view
@@ -0,0 +1,2168 @@++++++++++++++(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 seqno=0x1 ackno=0 syn)))++(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 seqno=0xf00000 ackno=0 syn)))++(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 seqno=2 ackno=15728641 syn ack))) +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 seqno=15728641 ackno=3 syn ack))) +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=3 ackno=15728642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=1403 ackno=15728642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15728642 ackno=2803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15730042 ackno=2803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=2803 ackno=15731442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=4203 ackno=15731442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15731442 ackno=5603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15732842 ackno=5603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=5603 ackno=15734242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=7003 ackno=15734242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15734242 ackno=8403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15735642 ackno=8403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=8403 ackno=15737042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=9803 ackno=15737042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15737042 ackno=11203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15738442 ackno=11203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=11203 ackno=15739842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=12603 ackno=15739842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15739842 ackno=14003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15741242 ackno=14003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=14003 ackno=15742642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=15403 ackno=15742642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15742642 ackno=16803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15744042 ackno=16803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=16803 ackno=15745442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=18203 ackno=15745442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15745442 ackno=19603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15746842 ackno=19603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=19603 ackno=15748242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=21003 ackno=15748242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15748242 ackno=22403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15749642 ackno=22403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=22403 ackno=15751042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=23803 ackno=15751042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15751042 ackno=25203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15752442 ackno=25203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=25203 ackno=15753842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=26603 ackno=15753842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15753842 ackno=28003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15755242 ackno=28003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=28003 ackno=15756642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=29403 ackno=15756642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15756642 ackno=30803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15758042 ackno=30803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=30803 ackno=15759442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=32203 ackno=15759442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15759442 ackno=33603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15760842 ackno=33603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=33603 ackno=15762242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=35003 ackno=15762242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15762242 ackno=36403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15763642 ackno=36403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=36403 ackno=15765042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=37803 ackno=15765042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15765042 ackno=39203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15766442 ackno=39203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=39203 ackno=15767842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=40603 ackno=15767842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15767842 ackno=42003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15769242 ackno=42003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=42003 ackno=15770642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=43403 ackno=15770642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15770642 ackno=44803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15772042 ackno=44803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=44803 ackno=15773442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=46203 ackno=15773442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15773442 ackno=47603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15774842 ackno=47603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=47603 ackno=15776242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=49003 ackno=15776242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15776242 ackno=50403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15777642 ackno=50403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=50403 ackno=15779042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=51803 ackno=15779042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15779042 ackno=53203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15780442 ackno=53203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=53203 ackno=15781842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=54603 ackno=15781842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15781842 ackno=56003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15783242 ackno=56003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=56003 ackno=15784642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=57403 ackno=15784642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15784642 ackno=58803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15786042 ackno=58803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=58803 ackno=15787442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=60203 ackno=15787442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15787442 ackno=61603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15788842 ackno=61603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=61603 ackno=15790242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=63003 ackno=15790242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15790242 ackno=64403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15791642 ackno=64403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=64403 ackno=15793042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=65803 ackno=15793042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15793042 ackno=67203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15794442 ackno=67203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=67203 ackno=15795842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=68603 ackno=15795842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15795842 ackno=70003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15797242 ackno=70003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=70003 ackno=15798642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=71403 ackno=15798642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15798642 ackno=72803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15800042 ackno=72803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=72803 ackno=15801442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=74203 ackno=15801442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15801442 ackno=75603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15802842 ackno=75603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=75603 ackno=15804242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=77003 ackno=15804242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15804242 ackno=78403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15805642 ackno=78403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=78403 ackno=15807042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=79803 ackno=15807042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15807042 ackno=81203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15808442 ackno=81203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=81203 ackno=15809842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=82603 ackno=15809842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15809842 ackno=84003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15811242 ackno=84003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=84003 ackno=15812642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=85403 ackno=15812642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15812642 ackno=86803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15814042 ackno=86803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=86803 ackno=15815442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=88203 ackno=15815442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15815442 ackno=89603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15816842 ackno=89603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=89603 ackno=15818242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=91003 ackno=15818242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15818242 ackno=92403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15819642 ackno=92403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=92403 ackno=15821042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=93803 ackno=15821042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15821042 ackno=95203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15822442 ackno=95203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=95203 ackno=15823842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=96603 ackno=15823842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15823842 ackno=98003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15825242 ackno=98003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=98003 ackno=15826642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=99403 ackno=15826642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15826642 ackno=100803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15828042 ackno=100803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=100803 ackno=15829442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=102203 ackno=15829442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15829442 ackno=103603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15830842 ackno=103603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=103603 ackno=15832242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=105003 ackno=15832242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15832242 ackno=106403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15833642 ackno=106403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=106403 ackno=15835042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=107803 ackno=15835042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15835042 ackno=109203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15836442 ackno=109203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=109203 ackno=15837842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=110603 ackno=15837842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15837842 ackno=112003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15839242 ackno=112003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=112003 ackno=15840642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=113403 ackno=15840642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15840642 ackno=114803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15842042 ackno=114803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=114803 ackno=15843442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=116203 ackno=15843442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15843442 ackno=117603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15844842 ackno=117603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=117603 ackno=15846242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=119003 ackno=15846242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15846242 ackno=120403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15847642 ackno=120403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=120403 ackno=15849042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=121803 ackno=15849042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15849042 ackno=123203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15850442 ackno=123203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=123203 ackno=15851842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=124603 ackno=15851842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15851842 ackno=126003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15853242 ackno=126003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=126003 ackno=15854642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=127403 ackno=15854642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15854642 ackno=128803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15856042 ackno=128803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=128803 ackno=15857442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=130203 ackno=15857442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15857442 ackno=131603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15858842 ackno=131603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=131603 ackno=15860242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=133003 ackno=15860242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15860242 ackno=134403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15861642 ackno=134403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=134403 ackno=15863042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=135803 ackno=15863042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15863042 ackno=137203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15864442 ackno=137203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=137203 ackno=15865842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=138603 ackno=15865842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15865842 ackno=140003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15867242 ackno=140003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=140003 ackno=15868642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=141403 ackno=15868642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15868642 ackno=142803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15870042 ackno=142803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=142803 ackno=15871442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=144203 ackno=15871442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15871442 ackno=145603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15872842 ackno=145603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=145603 ackno=15874242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=147003 ackno=15874242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15874242 ackno=148403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15875642 ackno=148403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=148403 ackno=15877042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=149803 ackno=15877042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15877042 ackno=151203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15878442 ackno=151203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=151203 ackno=15879842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=152603 ackno=15879842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15879842 ackno=154003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15881242 ackno=154003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=154003 ackno=15882642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=155403 ackno=15882642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15882642 ackno=156803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15884042 ackno=156803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=156803 ackno=15885442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=158203 ackno=15885442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15885442 ackno=159603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15886842 ackno=159603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=159603 ackno=15888242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=161003 ackno=15888242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15888242 ackno=162403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15889642 ackno=162403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=162403 ackno=15891042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=163803 ackno=15891042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15891042 ackno=165203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15892442 ackno=165203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=165203 ackno=15893842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=166603 ackno=15893842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15893842 ackno=168003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15895242 ackno=168003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=168003 ackno=15896642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=169403 ackno=15896642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15896642 ackno=170803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15898042 ackno=170803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=170803 ackno=15899442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=172203 ackno=15899442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15899442 ackno=173603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15900842 ackno=173603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=173603 ackno=15902242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=175003 ackno=15902242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15902242 ackno=176403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15903642 ackno=176403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=176403 ackno=15905042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=177803 ackno=15905042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15905042 ackno=179203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15906442 ackno=179203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=179203 ackno=15907842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=180603 ackno=15907842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15907842 ackno=182003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15909242 ackno=182003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=182003 ackno=15910642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=183403 ackno=15910642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15910642 ackno=184803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15912042 ackno=184803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=184803 ackno=15913442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=186203 ackno=15913442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15913442 ackno=187603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15914842 ackno=187603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=187603 ackno=15916242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=189003 ackno=15916242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15916242 ackno=190403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15917642 ackno=190403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=190403 ackno=15919042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=191803 ackno=15919042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15919042 ackno=193203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15920442 ackno=193203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=193203 ackno=15921842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=194603 ackno=15921842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15921842 ackno=196003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15923242 ackno=196003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=196003 ackno=15924642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=197403 ackno=15924642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15924642 ackno=198803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15926042 ackno=198803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=198803 ackno=15927442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=200203 ackno=15927442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15927442 ackno=201603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15928842 ackno=201603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=201603 ackno=15930242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=203003 ackno=15930242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15930242 ackno=204403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15931642 ackno=204403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=204403 ackno=15933042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=205803 ackno=15933042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15933042 ackno=207203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15934442 ackno=207203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=207203 ackno=15935842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=208603 ackno=15935842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15935842 ackno=210003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15937242 ackno=210003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=210003 ackno=15938642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=211403 ackno=15938642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15938642 ackno=212803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15940042 ackno=212803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=212803 ackno=15941442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=214203 ackno=15941442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15941442 ackno=215603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15942842 ackno=215603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=215603 ackno=15944242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=217003 ackno=15944242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15944242 ackno=218403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15945642 ackno=218403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=218403 ackno=15947042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=219803 ackno=15947042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15947042 ackno=221203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15948442 ackno=221203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=221203 ackno=15949842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=222603 ackno=15949842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15949842 ackno=224003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15951242 ackno=224003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=224003 ackno=15952642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=225403 ackno=15952642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15952642 ackno=226803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15954042 ackno=226803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=226803 ackno=15955442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=228203 ackno=15955442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15955442 ackno=229603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15956842 ackno=229603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=229603 ackno=15958242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=231003 ackno=15958242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15958242 ackno=232403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15959642 ackno=232403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=232403 ackno=15961042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=233803 ackno=15961042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15961042 ackno=235203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15962442 ackno=235203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=235203 ackno=15963842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=236603 ackno=15963842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15963842 ackno=238003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15965242 ackno=238003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=238003 ackno=15966642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=239403 ackno=15966642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15966642 ackno=240803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15968042 ackno=240803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=240803 ackno=15969442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=242203 ackno=15969442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15969442 ackno=243603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15970842 ackno=243603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=243603 ackno=15972242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=245003 ackno=15972242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15972242 ackno=246403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15973642 ackno=246403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=246403 ackno=15975042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=247803 ackno=15975042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15975042 ackno=249203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15976442 ackno=249203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=249203 ackno=15977842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=250603 ackno=15977842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15977842 ackno=252003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15979242 ackno=252003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=252003 ackno=15980642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=253403 ackno=15980642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15980642 ackno=254803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15982042 ackno=254803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=254803 ackno=15983442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=256203 ackno=15983442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15983442 ackno=257603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15984842 ackno=257603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=257603 ackno=15986242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=259003 ackno=15986242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15986242 ackno=260403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15987642 ackno=260403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=260403 ackno=15989042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=261803 ackno=15989042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15989042 ackno=263203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15990442 ackno=263203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=263203 ackno=15991842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=264603 ackno=15991842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15991842 ackno=266003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15993242 ackno=266003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=266003 ackno=15994642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=267403 ackno=15994642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15994642 ackno=268803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15996042 ackno=268803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=268803 ackno=15997442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=270203 ackno=15997442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15997442 ackno=271603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=15998842 ackno=271603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=271603 ackno=16000242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=273003 ackno=16000242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=16000242 ackno=274403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=16001642 ackno=274403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=274403 ackno=16003042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=275803 ackno=16003042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=16003042 ackno=277203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=16004442 ackno=277203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=277203 ackno=16005842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=278603 ackno=16005842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=16005842 ackno=280003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=16007242 ackno=280003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=280003 ackno=16008642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=281403 ackno=16008642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=16008642 ackno=282803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=16010042 ackno=282803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=282803 ackno=16011442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=284203 ackno=16011442 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=16011442 ackno=285603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=16012842 ackno=285603 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=285603 ackno=16014242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=287003 ackno=16014242 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=16014242 ackno=288403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=16015642 ackno=288403 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=288403 ackno=16017042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=289803 ackno=16017042 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=16017042 ackno=291203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=16018442 ackno=291203 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=291203 ackno=16019842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=292603 ackno=16019842 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=16019842 ackno=294003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=16021242 ackno=294003 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=294003 ackno=16022642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=295403 ackno=16022642 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=16022642 ackno=296803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 ack seqno=16024042 ackno=296803 (payload length=1400 pattern=0))))+ +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 seqno=296803 ackno=16025442 fin ack))) +(eth type=0x0800 src=00:00:00:00:00:02 dst=00:00:00:00:00:01+ (ipv4 src=1.1.1.2 dst=1.1.1.1+ id=2 prot = 6 csum=0+ (tcp dst=1234 seqno=16025442 ackno=296804 fin ack))) +(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 seqno=296804 ackno=16025443 ack)))+++++
+ samples/tcp_single.pkt view
@@ -0,0 +1,5 @@+(eth type=0x0800+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 syn seqno=1 ackno=0)))+
+ samples/tcp_ts.pkt view
@@ -0,0 +1,34 @@+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 syn seqno=1 ackno=0 offset=32 ts=0xdeadbeefcafebabe )))+(eth type=0x0800 dst=00:00:00:00:00:01 src=00:00:00:00:00:02+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 syn ack ackno=2 seqno=1000)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=2 ackno=1001)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=2 ackno=1001 (payload length=8))))+(eth type=0x0800 dst=00:00:00:00:00:01 src=00:00:00:00:00:02+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 ack ackno=10 seqno=1001 (payload length=8))))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 fin ack seqno=10 ackno=1009)))+(eth type=0x0800 dst=00:00:00:00:00:01 src=00:00:00:00:00:02+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 fin ack ackno=11 seqno=1009)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=11 ackno=1010)))++
+ samples/tcp_wsc.pkt view
@@ -0,0 +1,34 @@+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 syn wsc=2 offset=24 seqno=1 ackno=0)))+(eth type=0x0800 dst=00:00:00:00:00:01 src=00:00:00:00:00:02+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 syn ack wsc = 2 offset=24 ackno=2 seqno=1000)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=2 ackno=1001)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=2 ackno=1001 (payload length=8))))+(eth type=0x0800 dst=00:00:00:00:00:01 src=00:00:00:00:00:02+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 ack ackno=10 seqno=1001 (payload length=8))))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 fin ack seqno=10 ackno=1009)))+(eth type=0x0800 dst=00:00:00:00:00:01 src=00:00:00:00:00:02+ (ipv4 src=1.1.1.2 dst=1.1.1.1 + id=2 prot = 6 csum=0+ (tcp dst=1234 fin ack ackno=11 seqno=1009)))+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=1.1.1.1 dst=1.1.1.2 + id=2 prot = 6 csum=0+ (tcp src=1234 ack seqno=11 ackno=1010)))++
+ samples/tcpv6.pkt view
@@ -0,0 +1,34 @@+(eth type=0x86dd src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv6 src=2001:0:0:0:0:0:0:1 dst=2001:0:0:0:0:0:0:2 + nh = 6 + (tcp src=1234 syn seqno=1 ackno=0)))+(eth type=0x86dd dst=00:00:00:00:00:01 src=00:00:00:00:00:02+ (ipv6 src=2001:0:0:0:0:0:0:2 dst=2001:0:0:0:0:0:0:1 + nh = 6 + (tcp dst=1234 syn ack ackno=2 seqno=1000)))+(eth type=0x86dd src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv6 src=2001:0:0:0:0:0:0:1 dst=2001:0:0:0:0:0:0:2 + nh = 6 + (tcp src=1234 ack seqno=2 ackno=1001)))+(eth type=0x86dd src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv6 src=2001:0:0:0:0:0:0:1 dst=2001:0:0:0:0:0:0:2 + nh = 6 + (tcp src=1234 ack seqno=2 ackno=1001 (payload length=8))))+(eth type=0x86dd dst=00:00:00:00:00:01 src=00:00:00:00:00:02+ (ipv6 src=2001:0:0:0:0:0:0:2 dst=2001:0:0:0:0:0:0:1 + nh = 6 + (tcp dst=1234 ack ackno=10 seqno=1001 (payload length=8))))+(eth type=0x86dd src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv6 src=2001:0:0:0:0:0:0:1 dst=2001:0:0:0:0:0:0:2 + nh = 6 + (tcp src=1234 fin ack seqno=10 ackno=1009)))+(eth type=0x86dd dst=00:00:00:00:00:01 src=00:00:00:00:00:02+ (ipv6 src=2001:0:0:0:0:0:0:2 dst=2001:0:0:0:0:0:0:1 + nh = 6 + (tcp dst=1234 fin ack ackno=11 seqno=1009)))+(eth type=0x86dd src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv6 src=2001:0:0:0:0:0:0:1 dst=2001:0:0:0:0:0:0:2 + nh = 6 + (tcp src=1234 ack seqno=11 ackno=1010)))++
+ samples/teredo.pkt view
@@ -0,0 +1,4 @@+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 ttl=3 src=20.10.10.10 dst=40.40.40.1 ver=4 hlen=5 tos=0x11 + id=2 prot = 17 csum=0+ (udp dst=1234 src=1024 (teredo fixsrc=true fixdst=true (ipv6 (udp (payload pattern=0 length=8)))))))
+ samples/teredo2.pkt view
@@ -0,0 +1,6 @@+(eth type=0x0800+ (ipv4 id = 1 src=20.10.10.10 dst=40.40.40.1 prot = 17+ (udp dst=1234 src=1024 (teredo fixsrc=true fixdst=true (ipv6 (udp (payload pattern=0 length=1280)))))))+(eth type=0x0800+ (ipv4 id = 2 src=20.10.10.10 dst=40.40.40.1 prot = 17+ (udp dst=1234 src=1024 (teredo fixsrc=true fixdst=true (ipv6 (udp (payload pattern=0 length=1280)))))))
+ samples/tipc2.pkt view
@@ -0,0 +1,2 @@+(eth type=0x88CA (tipc hsize=8 mtype=3 onode=0x010203 dnode=0x040506 (payload length= 0)))+
+ samples/tunnel_madness.pkt view
@@ -0,0 +1,105 @@+++(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))+(eth type=0x86dd (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 nh=41 (ipv6 (udp (payload length=8))))))))))))))))))))))))))))))))))++
+ samples/udp.pkt view
@@ -0,0 +1,4 @@+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 ttl=3 src=0.0.0.0 dst=0.0.0.0 ver=4 hlen=5 tos=0x11 + id=2 prot = 17 csum=0+ (udp (payload pattern=0 length=8))))
+ samples/udp_666.pkt view
@@ -0,0 +1,4 @@+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 ttl=3 src=10.0.0.1 dst=10.0.0.2 ver=4 hlen=5 tos=0x11 + id=2 prot = 17 csum=0+ (udp (payload pattern=0 length=638))))
+ samples/udp_666_1280.pkt view
@@ -0,0 +1,4 @@+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 ttl=64 src=10.0.0.1 dst=10.0.0.2 ver=4 hlen=5 tos=0x02+ id=2 prot = 17 csum=0+ (udp (payload pattern=0 length=1280))))
+ samples/udp_666_4_cons.pkt view
@@ -0,0 +1,17 @@+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 ttl=32 src=10.0.0.1 dst=10.0.0.2 ver=4 hlen=5 tos=0x11 + id=2 prot = 17 csum=0+ (udp src=99 (payload pattern=0 length=638))))+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 ttl=32 src=10.0.0.1 dst=10.0.0.2 ver=4 hlen=5 tos=0x11 + id=2 prot = 17 csum=0+ (udp src=89 (payload pattern=0 length=638))))+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 ttl=32 src=10.0.0.1 dst=10.0.0.2 ver=4 hlen=5 tos=0x11 + id=2 prot = 17 csum=0+ (udp src=79 (payload pattern=0 length=638))))+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 ttl=32 src=10.0.0.1 dst=10.0.0.2 ver=4 hlen=5 tos=0x11 + id=2 prot = 17 csum=0+ (udp src=69 (payload pattern=0 length=638))))+
+ samples/udp_666_4_hosts.pkt view
@@ -0,0 +1,17 @@+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 ttl=32 src=10.0.0.1 dst=10.0.0.2 ver=4 hlen=5 tos=0x11 + id=2 prot = 17 csum=0+ (udp src=99 (payload pattern=0 length=638))))+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 ttl=32 src=10.0.0.1 dst=10.0.0.3 ver=4 hlen=5 tos=0x11 + id=2 prot = 17 csum=0+ (udp src=89 (payload pattern=0 length=638))))+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 ttl=32 src=10.0.0.1 dst=10.0.0.4 ver=4 hlen=5 tos=0x11 + id=2 prot = 17 csum=0+ (udp src=79 (payload pattern=0 length=638))))+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 ttl=32 src=10.0.0.1 dst=10.0.0.5 ver=4 hlen=5 tos=0x11 + id=2 prot = 17 csum=0+ (udp src=69 (payload pattern=0 length=638))))+
+ samples/udp_666_4_hosts_2_nets.pkt view
@@ -0,0 +1,17 @@+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 ttl=32 src=10.0.0.1 dst=10.0.0.2 ver=4 hlen=5 tos=0x11 + id=2 prot = 17 csum=0+ (udp src=99 (payload pattern=0 length=638))))+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 ttl=32 src=10.0.0.1 dst=10.0.0.3 ver=4 hlen=5 tos=0x11 + id=2 prot = 17 csum=0+ (udp src=89 (payload pattern=0 length=638))))+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 ttl=32 src=10.0.0.1 dst=10.0.1.4 ver=4 hlen=5 tos=0x11 + id=2 prot = 17 csum=0+ (udp src=79 (payload pattern=0 length=638))))+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv4 ttl=32 src=10.0.0.1 dst=10.0.1.5 ver=4 hlen=5 tos=0x11 + id=2 prot = 17 csum=0+ (udp src=69 (payload pattern=0 length=638))))+
+ samples/udp_666_ecn.pkt view
@@ -0,0 +1,4 @@+(eth src=00:11:22:33:44:55 type=0x86dd+ (ipv4 ttl=64 src=10.0.0.1 dst=10.0.0.2 ver=4 hlen=5 tos=0x02+ id=2 prot = 17 csum=0+ (udp (payload pattern=0 length=638))))
+ samples/udp_666_ecn_ipv6.pkt view
@@ -0,0 +1,7 @@+(eth type=0x86dd+ (ipv6 tcl = 0x12 nh = 17 (udp src=1234 (payload pattern=0 length=8))))+++ ++
+ samples/udp_666b.pkt view
@@ -0,0 +1,8 @@+(eth type=0x0800 src=00:00:00:00:00:01 dst=00:00:00:00:00:02+ (ipv4 src=10.0.0.1 dst=10.0.0.2 ver=4 hlen=5 tos=0x11+ prot = 17 csum=0+ (udp src=1234 dst=7 (payload pattern=0 length=638))))+(ethtype=0x0800 dst=00:00:00:00:00:01 src=00:00:00:00:00:02+ (ipv4 src=10.0.0.2 dst=10.0.0.1 ver=4 hlen=5+ id=2 prot = 17 csum=0+ (udp src=7 dst=1234 (payload pattern=0 length=638))))
+ samples/udp_esp_sha1.pkt view
@@ -0,0 +1,138 @@+++++++(eth type=0x0800+ (ipv4 src=9.9.9.1 dst=9.9.9.2 prot = 17 csum=0+ (udp src = 2223 dst = 4500+ (esp aalg=sha1 spi=0xcafebabe nh=4 seq=1+ (ipv4 src=11.11.11.1 dst=11.11.11.2 prot = 17 csum=0+ (udp src=12345 (payload pattern=0 length=1)))))))+ (eth type=0x0800+ (ipv4 src=9.9.9.2 dst=9.9.9.1 prot = 17 csum=0+ (udp src = 4500 dst = 2223+ (esp aalg=sha1 spi=0xdeadbeef nh=4 seq=1+ (ipv4 src=11.11.11.2 dst=11.11.11.1 prot = 17 csum=0+ (udp dst = 12345 (payload pattern=0 length=1)))))))+(eth type=0x0800+ (ipv4 src=9.9.9.1 dst=9.9.9.2 prot = 17 csum=0+ (udp src = 2223 dst = 4500+ (esp aalg=sha1 spi=0xcafebabe nh=4 seq=2+ (ipv4 src=11.11.11.1 dst=11.11.11.2 prot = 17 csum=0+ (udp src=12345 (payload pattern=0 length=2)))))))+ (eth type=0x0800+ (ipv4 src=9.9.9.2 dst=9.9.9.1 prot = 17 csum=0+ (udp src = 4500 dst = 2223+ (esp aalg=sha1 spi=0xdeadbeef nh=4 seq=2+ (ipv4 src=11.11.11.2 dst=11.11.11.1 prot = 17 csum=0+ (udp dst = 12345 (payload pattern=0 length=2)))))))+(eth type=0x0800+ (ipv4 src=9.9.9.1 dst=9.9.9.2 prot = 17 csum=0+ (udp src = 2223 dst = 4500+ (esp aalg=sha1 spi=0xcafebabe nh=4 seq=3+ (ipv4 src=11.11.11.1 dst=11.11.11.2 prot = 17 csum=0+ (udp src=12345 (payload pattern=0 length=3)))))))+ (eth type=0x0800+ (ipv4 src=9.9.9.2 dst=9.9.9.1 prot = 17 csum=0+ (udp src = 4500 dst = 2223+ (esp aalg=sha1 spi=0xdeadbeef nh=4 seq=3+ (ipv4 src=11.11.11.2 dst=11.11.11.1 prot = 17 csum=0+ (udp dst = 12345 (payload pattern=0 length=3)))))))+(eth type=0x0800+ (ipv4 src=9.9.9.1 dst=9.9.9.2 prot = 17 csum=0+ (udp src = 2223 dst = 4500+ (esp aalg=sha1 spi=0xcafebabe nh=4 seq=4+ (ipv4 src=11.11.11.1 dst=11.11.11.2 prot = 17 csum=0+ (udp src=12345 (payload pattern=0 length=4)))))))+ (eth type=0x0800+ (ipv4 src=9.9.9.2 dst=9.9.9.1 prot = 17 csum=0+ (udp src = 4500 dst = 2223+ (esp aalg=sha1 spi=0xdeadbeef nh=4 seq=4+ (ipv4 src=11.11.11.2 dst=11.11.11.1 prot = 17 csum=0+ (udp dst = 12345 (payload pattern=0 length=4)))))))+(eth type=0x0800+ (ipv4 src=9.9.9.1 dst=9.9.9.2 prot = 17 csum=0+ (udp src = 2223 dst = 4500+ (esp aalg=sha1 spi=0xcafebabe nh=4 seq=5+ (ipv4 src=11.11.11.1 dst=11.11.11.2 prot = 17 csum=0+ (udp src=12345 (payload pattern=0 length=5)))))))+ (eth type=0x0800+ (ipv4 src=9.9.9.2 dst=9.9.9.1 prot = 17 csum=0+ (udp src = 4500 dst = 2223+ (esp aalg=sha1 spi=0xdeadbeef nh=4 seq=5+ (ipv4 src=11.11.11.2 dst=11.11.11.1 prot = 17 csum=0+ (udp dst = 12345 (payload pattern=0 length=5)))))))+(eth type=0x0800+ (ipv4 src=9.9.9.1 dst=9.9.9.2 prot = 17 csum=0+ (udp src = 2223 dst = 4500+ (esp aalg=sha1 spi=0xcafebabe nh=4 seq=6+ (ipv4 src=11.11.11.1 dst=11.11.11.2 prot = 17 csum=0+ (udp src=12345 (payload pattern=0 length=6)))))))+ (eth type=0x0800+ (ipv4 src=9.9.9.2 dst=9.9.9.1 prot = 17 csum=0+ (udp src = 4500 dst = 2223+ (esp aalg=sha1 spi=0xdeadbeef nh=4 seq=6+ (ipv4 src=11.11.11.2 dst=11.11.11.1 prot = 17 csum=0+ (udp dst = 12345 (payload pattern=0 length=6)))))))+(eth type=0x0800+ (ipv4 src=9.9.9.1 dst=9.9.9.2 prot = 17 csum=0+ (udp src = 2223 dst = 4500+ (esp aalg=sha1 spi=0xcafebabe nh=4 seq=7+ (ipv4 src=11.11.11.1 dst=11.11.11.2 prot = 17 csum=0+ (udp src=12345 (payload pattern=0 length=7)))))))+ (eth type=0x0800+ (ipv4 src=9.9.9.2 dst=9.9.9.1 prot = 17 csum=0+ (udp src = 4500 dst = 2223+ (esp aalg=sha1 spi=0xdeadbeef nh=4 seq=7+ (ipv4 src=11.11.11.2 dst=11.11.11.1 prot = 17 csum=0+ (udp dst = 12345 (payload pattern=0 length=7)))))))+(eth type=0x0800+ (ipv4 src=9.9.9.1 dst=9.9.9.2 prot = 17 csum=0+ (udp src = 2223 dst = 4500+ (esp aalg=sha1 spi=0xcafebabe nh=4 seq=8+ (ipv4 src=11.11.11.1 dst=11.11.11.2 prot = 17 csum=0+ (udp src=12345 (payload pattern=0 length=8)))))))+ (eth type=0x0800+ (ipv4 src=9.9.9.2 dst=9.9.9.1 prot = 17 csum=0+ (udp src = 4500 dst = 2223+ (esp aalg=sha1 spi=0xdeadbeef nh=4 seq=8+ (ipv4 src=11.11.11.2 dst=11.11.11.1 prot = 17 csum=0+ (udp dst = 12345 (payload pattern=0 length=8)))))))+(eth type=0x0800+ (ipv4 src=9.9.9.1 dst=9.9.9.2 prot = 17 csum=0+ (udp src = 2223 dst = 4500+ (esp aalg=sha1 spi=0xcafebabe nh=4 seq=9+ (ipv4 src=11.11.11.1 dst=11.11.11.2 prot = 17 csum=0+ (udp src=12345 (payload pattern=0 length=9)))))))+ (eth type=0x0800+ (ipv4 src=9.9.9.2 dst=9.9.9.1 prot = 17 csum=0+ (udp src = 4500 dst = 2223+ (esp aalg=sha1 spi=0xdeadbeef nh=4 seq=9+ (ipv4 src=11.11.11.2 dst=11.11.11.1 prot = 17 csum=0+ (udp dst = 12345 (payload pattern=0 length=9)))))))+(eth type=0x0800+ (ipv4 src=9.9.9.1 dst=9.9.9.2 prot = 17 csum=0+ (udp src = 2223 dst = 4500+ (esp aalg=sha1 spi=0xcafebabe nh=4 seq=10+ (ipv4 src=11.11.11.1 dst=11.11.11.2 prot = 17 csum=0+ (udp src=12345 (payload pattern=0 length=10)))))))+ (eth type=0x0800+ (ipv4 src=9.9.9.2 dst=9.9.9.1 prot = 17 csum=0+ (udp src = 4500 dst = 2223+ (esp aalg=sha1 spi=0xdeadbeef nh=4 seq=10+ (ipv4 src=11.11.11.2 dst=11.11.11.1 prot = 17 csum=0+ (udp dst = 12345 (payload pattern=0 length=10)))))))+(eth type=0x0800+ (ipv4 src=9.9.9.1 dst=9.9.9.2 prot = 17 csum=0+ (udp src = 2223 dst = 4500+ (esp aalg=sha1 spi=0xcafebabe nh=4 seq=11+ (ipv4 src=11.11.11.1 dst=11.11.11.2 prot = 17 csum=0+ (udp src=12345 (payload pattern=0 length=11)))))))+ (eth type=0x0800+ (ipv4 src=9.9.9.2 dst=9.9.9.1 prot = 17 csum=0+ (udp src = 4500 dst = 2223+ (esp aalg=sha1 spi=0xdeadbeef nh=4 seq=11+ (ipv4 src=11.11.11.2 dst=11.11.11.1 prot = 17 csum=0+ (udp dst = 12345 (payload pattern=0 length=11)))))))
+ samples/udpv6.pkt view
@@ -0,0 +1,3 @@+(eth src=00:11:22:33:44:55 type=0x0800+ (ipv6+ (udp src=0 dst = 0 (payload pattern=64) fixcsum=true)))
+ samples/udpv6_666_4_hosts_2_nets.pkt view
@@ -0,0 +1,13 @@+(eth type=0x86dd+ (ipv6 hl=32 src=20:0:0:0:0:0:0:2 dst=30:0:0:0:0:0:0:1 nh=17+ (udp (payload pattern=0 length=618))))+(eth type=0x86dd+ (ipv6 hl=32 src=20:0:0:0:0:0:0:2 dst=30:0:0:0:0:0:0:2 nh=17+ (udp (payload pattern=0 length=618))))+(eth type=0x86dd+ (ipv6 hl=32 src=20:0:0:0:0:0:0:2 dst=30:0:1:0:0:0:0:1 nh=17+ (udp (payload pattern=0 length=618))))+(eth type=0x86dd+ (ipv6 hl=32 src=20:0:0:0:0:0:0:2 dst=30:0:1:0:0:0:0:2 nh=17+ (udp (payload pattern=0 length=618))))+
+ samples/udpv6_multicast.pkt view
@@ -0,0 +1,19 @@+(eth type=0x86dd+ (ipv6 src=0xff00:0:0:0:0:0:0:2 dst=20:0:0:0:0:0:0:1+ (udp src=7 dst = 77 (payload pattern=64) fixcsum=true)))+(eth type=0x86dd+ (ipv6 src=0:0:0:0:0:0:0:0 dst=20:0:0:0:0:0:0:1+ (udp src=7 dst = 77 (payload pattern=64) fixcsum=true)))+(eth type=0x86dd+ (ipv6 src=0:0:0:0:0:0:0:1 dst=20:0:0:0:0:0:0:1+ (udp src=7 dst = 77 (payload pattern=64) fixcsum=true)))+(eth type=0x86dd+ (ipv6 dst=0xff00:0:0:0:0:0:0:2 src=20:0:0:0:0:0:0:1+ (udp src=7 dst = 77 (payload pattern=64) fixcsum=true)))+(eth type=0x86dd+ (ipv6 dst=0:0:0:0:0:0:0:0 src=20:0:0:0:0:0:0:1+ (udp src=7 dst = 77 (payload pattern=64) fixcsum=true)))+(eth type=0x86dd+ (ipv6 dst=0:0:0:0:0:0:0:1 src=20:0:0:0:0:0:0:1+ (udp src=7 dst = 77 (payload pattern=64) fixcsum=true)))+
+ samples/udpv6b.pkt view
@@ -0,0 +1,6 @@+(eth type=0x86dd+ (ipv6+ (udp (payload pattern=0x42) fixcsum=true)))+(ethtype=0x86dd+ (ipv6+ (udp (payload pattern=0x42 length=1400) fixcsum=true)))
+ src/Ethernet.hs view
@@ -0,0 +1,183 @@+{-# LANGUAGE CPP #-}+module Ethernet where++import Data.Binary.Put+import Data.Bits+import qualified Data.ByteString.Lazy as B+import Data.Char+import Data.Word+import Text.ParserCombinators.Parsec+import Text.ParserCombinators.Parsec.Perm++import Packet+import Lexer+import Util++#ifdef HRWS_TEST+import Debug.Trace+import Test.QuickCheck hiding ((.&.))+import Test.Framework (Test)+import Test.Framework.Providers.QuickCheck2 (testProperty)+#endif++macAddressPart :: Parser Word8+macAddressPart = do+ h1 <- hexDigit+ h2 <- hexDigit+ char ':'+ let w = digitToInt h1 `shiftL` 4 .|. digitToInt h2+ return (fromIntegral w)++macAddressPart' :: Parser Word8+macAddressPart' = do+ h1 <- hexDigit+ h2 <- hexDigit+ let w = digitToInt h1 `shiftL` 4 .|. digitToInt h2+ return (fromIntegral w)++macAddressDecl :: Parser MacAddress+macAddressDecl = do+ h0 <- macAddressPart+ h1 <- macAddressPart+ h2 <- macAddressPart+ h3 <- macAddressPart+ h4 <- macAddressPart+ h5 <- macAddressPart'+ return (MacAddress h0 h1 h2 h3 h4 h5)++parseMacAddress :: String -> Parser MacAddress+parseMacAddress s = do+ symbol s+ symbol "="+ a <- macAddressDecl+ whiteSpace+ return a++parseEthFrame :: Parser Packet -> Parser EthernetFrame+parseEthFrame f = permute+ (tuple <$?> (MacAddress 0 0 0 0 0 1, parseMacAddress "dst" )+ <|?> (MacAddress 0 0 0 0 0 2, parseMacAddress "src" )+ <|?> (0x800, parseIntAttribute "type")+ <|?> ([PPayload defaultPayload], parsePayload f))+ where+ tuple a b c = EthernetFrame (Ethernet a b c)++ethDecl :: Parser Packet -> Parser Packet+ethDecl f = do+ symbol "eth"+ ef <- parseEthFrame f+ return $ PEth ef++macAddressWrite :: MacAddress -> Put+macAddressWrite a = do+ putWord8 (macAddress0 a)+ putWord8 (macAddress1 a)+ putWord8 (macAddress2 a)+ putWord8 (macAddress3 a)+ putWord8 (macAddress4 a)+ putWord8 (macAddress5 a)++ethernetWriteHdr :: Ethernet -> Put+ethernetWriteHdr f = do+ macAddressWrite (ethernetDst f)+ macAddressWrite (ethernetSrc f)+ putWord16be (ethernetType f)++ethernetWrite :: Ethernet -> Maybe Packet -> B.ByteString -> Put+ethernetWrite h _ bs = do+ ethernetWriteHdr h+ putLazyByteString bs++instance PacketWriteable EthernetFrame where packetWrite f = ethernetWrite (ethernFrameHeader f)++#ifdef HRWS_TEST+{- Unit Tests -}++instance Arbitrary MacAddress where+ arbitrary = do+ w0 <- arbitrary+ w1 <- arbitrary+ w2 <- arbitrary+ w3 <- arbitrary+ w4 <- arbitrary+ w5 <- arbitrary+ return (MacAddress w0 w1 w2 w3 w4 w5)++instance Arbitrary Ethernet where+ arbitrary = do+ dst <- arbitrary+ src <- arbitrary+ t <- arbitrary+ return (Ethernet dst src t)++testValidParse :: String -> (Ethernet -> Bool) -> Bool+testValidParse str fn =+ case parse (dummyParsePacket ethDecl) "packet parse" str of+ Left err -> trace (show err) False+ Right val -> fn $ testEthFrame val++testInvalidParse :: String -> Bool+testInvalidParse str =+ case parse (dummyParsePacket ethDecl) "packet parse" str of+ Left _ -> True+ Right _ -> False++testEthDefault :: () -> Bool+testEthDefault _ = let cmp f = defaultEthernet == f in+ testValidParse "(eth)" cmp++testEthFrame :: Packet -> Ethernet+testEthFrame (PEth f) = ethernFrameHeader f+testEthFrame _ = error "Unexpected packet type"++testEthType :: Word16 -> Bool+testEthType t = let cmp f = defaultEthernet {ethernetType = t} == f in+ testValidParse ("(eth type=" ++ show t ++ ")") cmp++testEthDst :: MacAddress -> Bool+testEthDst a =+ let cmp f = defaultEthernet {ethernetDst = a} == f in+ testValidParse ("(eth dst=" ++ show a ++ ")") cmp++testEthSrc :: MacAddress -> Bool+testEthSrc a =+ let cmp f = defaultEthernet {ethernetSrc = a} == f in+ testValidParse ("(eth src=" ++ show a ++ ")") cmp++testEthFrame0 :: Ethernet -> Bool+testEthFrame0 f =+ let cmp a = f == a in+ testValidParse ("(eth dst=" ++ show (ethernetDst f) ++ " src=" ++ show (ethernetSrc f) +++ " type=" ++ show (ethernetType f) ++ ")") cmp++testEthInvFrame0 :: () -> Bool+testEthInvFrame0 _ = testInvalidParse "(eth src=asdf)"++testEthInvFrame1 :: () -> Bool+testEthInvFrame1 _ = testInvalidParse "(eth dst=1:2:2 )"++testEthInvFrame2 :: () -> Bool+testEthInvFrame2 _ = testInvalidParse "(eth type=src=banan )"++testEthWrite :: () -> Bool+testEthWrite _ =+ let expFrame = B.pack [0x00, 0x11, 0x22, 0x33, 0x44, 0x55, -- dst+ 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, -- src+ 0xca, 0xfe] in -- type + let cmp f = runPut (ethernetWrite f Nothing B.empty) == expFrame in+ testValidParse "(eth dst=00:11:22:33:44:55 src=66:77:88:99:aa:bb type=0xcafe)" cmp++ethTests :: [Test]+ethTests = [+ testProperty "Ethernet: Default Packet" testEthDefault,+ testProperty "Ethernet: Type" testEthType,+ testProperty "Ethernet: Destination" testEthDst,+ testProperty "Ethernet: Source" testEthSrc,+ testProperty "Ethernet: valid frame" testEthFrame0,+ testProperty "Ethernet: invalid frame 0" testEthInvFrame0,+ testProperty "Ethernet: invalid frame 1" testEthInvFrame1,+ testProperty "Ethernet: invalid frame 2" testEthInvFrame2,+ testProperty "Ethernet: Write" testEthWrite+ ]++#endif
+ src/Fragv6.hs view
@@ -0,0 +1,95 @@+{-# LANGUAGE CPP #-}+module Fragv6 where++import Data.Binary.Put+import qualified Data.ByteString.Lazy as B+import Text.ParserCombinators.Parsec+import Text.ParserCombinators.Parsec.Perm++import Util+import Packet+import Lexer++#ifdef HRWS_TEST+import Debug.Trace+import Test.QuickCheck hiding ((.&.))+import Test.Framework (Test)+import Test.Framework.Providers.QuickCheck2 (testProperty)+#endif+++parseFragv6Pkt :: Parser Packet -> Parser Fragv6Pkt+parseFragv6Pkt f = permute+ (tuple <$?> (17, parseIntAttribute "nh")+ <|?> (0, try (parseIntAttribute "res"))+ <|?> (0, try (parseIntAttribute "off"))+ <|?> (0, try (parseIntAttribute "id"))+ <|?> ([PPayload defaultPayload], parsePayload f))+ where+ tuple nh r o i =+ Fragv6Pkt (Fragv6 nh r o i)++fragv6Decl :: Parser Packet -> Parser Packet+fragv6Decl f = do+ symbol "fragv6"+ g <- parseFragv6Pkt f+ return (PFragv6 g)++fragv6WriteHdr :: Fragv6 -> Put+fragv6WriteHdr p = do+ putWord8 $ fragv6Nh p+ putWord8 $ fragv6Res p+ putWord16be $ fragv6Off p+ putWord32be $ fragv6Id p++fragv6Write :: Fragv6 -> Maybe Packet -> B.ByteString -> Put+fragv6Write h _ bs = do+ fragv6WriteHdr h+ putLazyByteString bs++instance PacketWriteable Fragv6Pkt where packetWrite p = fragv6Write $ fragv6PktHeader p++#ifdef HRWS_TEST+{- Unit Tests -}++instance Arbitrary Fragv6 where+ arbitrary = do+ nh <- arbitrary+ res <- arbitrary+ off <- arbitrary+ i <- arbitrary+ return (Fragv6 nh res off i)++testValidParse :: String -> (Fragv6 -> Bool) -> Bool+testValidParse str fn =+ case parse (dummyParsePacket fragv6Decl) "packet parse" str of+ Left err -> trace (show err) False+ Right val -> fn $ testFragv6Pkt val++testFragv6Pkt :: Packet -> Fragv6+testFragv6Pkt (PFragv6 p) = fragv6PktHeader p+testFragv6Pkt _ = error "Unexpected packet type"++testFragv6Default :: () -> Bool+testFragv6Default _ = let cmp f = defaultFragv6 == f in+ testValidParse "(fragv6)" cmp++testFragv6Pkt0 :: Fragv6 -> Bool+testFragv6Pkt0 f = let cmp a = f == a in+ testValidParse ("(fragv6 nh=" ++ show (fragv6Nh f) ++ " res=" ++ show (fragv6Res f) +++ " off=" ++ show (fragv6Off f) ++ " id=" ++ show (fragv6Id f) ++ ")") cmp++testFragv6Write :: () -> Bool+testFragv6Write _ =+ let expFrag = B.pack [0x11, 0x00, 0x00, 0x40, 0xff, 0xff, 0xff, 0xff] in+ let cmp f = runPut (fragv6Write f Nothing B.empty) == expFrag in+ testValidParse "(fragv6 nh=17 off =64 id=0xffffffff)" cmp++fragv6Tests :: [Test]+fragv6Tests = [+ testProperty "Fragv6: Default" testFragv6Default,+ testProperty "Fragv6: Frag0" testFragv6Pkt0,+ testProperty "Fragv6: Write" testFragv6Write+ ]+#endif+
+ src/Gre.hs view
@@ -0,0 +1,103 @@+{-# LANGUAGE CPP #-}+module Gre where++import Control.Monad+import Data.Binary.Put+import Data.Bits+import qualified Data.ByteString.Lazy as B+import Text.ParserCombinators.Parsec+import Text.ParserCombinators.Parsec.Perm++import Util+import Packet+import Lexer++#ifdef HRWS_TEST+import Debug.Trace+import Test.QuickCheck hiding ((.&.))+import Test.Framework (Test)+import Test.Framework.Providers.QuickCheck2 (testProperty)+import Text.Printf+#endif++parseGrePkt :: Parser Packet -> Parser GrePkt+parseGrePkt f = permute+ (tuple <$?> (0x3000, parseIntAttribute "flags")+ <|?> (0x0800, parseIntAttribute "protocol")+ <|?> (0xcafecafe, parseIntAttribute "key")+ <|?> (0, try (parseIntAttribute "seq"))+ <|?> ([PPayload defaultPayload], parsePayload f))+ where+ tuple fl prot k s =+ GrePkt (Gre fl prot k s)+++greDecl :: Parser Packet -> Parser Packet+greDecl f = do+ symbol "gre"+ g <- parseGrePkt f+ return (PGre g)++greWriteHdr :: Gre -> Put+greWriteHdr p = do+ putWord16be (greFlags p)+ putWord16be (greProtocol p)+ -- Optional Key Field+ when (greFlags p .&. 0x2000 == 0x2000) $+ putWord32be $ greKey p+ when (greFlags p .&. 0x1000 == 0x1000) $+ putWord32be $ greSeq p++greWrite :: Gre -> Maybe Packet -> B.ByteString -> Put+greWrite h _ bs = do+ greWriteHdr h+ putLazyByteString bs++instance PacketWriteable GrePkt where packetWrite p = greWrite (grePktHeader p)+++#ifdef HRWS_TEST+{- Unit Tests -}++instance Arbitrary Gre where+ arbitrary = do+ f <- arbitrary+ p <- arbitrary+ k <- arbitrary+ s <- arbitrary+ return (Gre f p k s)++testValidParse :: String -> (Gre -> Bool) -> Bool+testValidParse str fn =+ case parse (dummyParsePacket greDecl) "packet parse" str of+ Left err -> trace (show err) False+ Right val -> fn $ testGrePkt val++testGreDefault :: () -> Bool+testGreDefault _ = let cmp f = defaultGre == f in+ testValidParse "(gre)" cmp++testGrePkt :: Packet -> Gre+testGrePkt (PGre f) = grePktHeader f+testGrePkt _ = error "Unexpected packet type"++testGrePacket :: Gre -> Bool+testGrePacket pkt =+ let cmp p = pkt == p in+ testValidParse (printf "(gre flags=%d protocol=%d key=%d seq=%d)" (greFlags pkt)+ (greProtocol pkt) (greKey pkt) (greSeq pkt)) cmp++testGreWrite :: () -> Bool+testGreWrite _ =+ let expPkt = B.pack [0x30, 0x00, 0x08, 0x00, 0x12, 0x34, 0x56, 0x78, 0xaa, 0xaa, 0xaa, 0xaa] in+ let cmp p = runPut (greWrite p Nothing B.empty) == expPkt in+ testValidParse "(gre flags=0x3000 protocol=0x0800 key=0x12345678 seq=0xaaaaaaaa)" cmp++greTests :: [Test]+greTests = [+ testProperty "GRE: Default Packet" testGreDefault,+ testProperty "GRE: Packet" testGrePacket,+ testProperty "GRE: Write" testGreWrite+ ]+#endif+
+ src/Gtp.hs view
@@ -0,0 +1,109 @@+{-# LANGUAGE CPP #-}++module Gtp where++import Data.Binary.Put+import qualified Data.ByteString.Lazy as B+import Text.ParserCombinators.Parsec+import Text.ParserCombinators.Parsec.Perm++import Util+import Packet+import Lexer++#ifdef HRWS_TEST+import Debug.Trace+import Test.QuickCheck hiding ((.&.))+import Test.Framework (Test)+import Test.Framework.Providers.QuickCheck2 (testProperty)+import Text.Printf+#endif++parseGtpPkt :: Parser Packet -> Parser GtpPkt+parseGtpPkt f = permute+ (tuple <$?> (0x32, parseIntAttribute "flags")+ <|?> (0xff, try $ parseIntAttribute "type")+ <|?> (0, parseIntAttribute "len")+ <|?> (0x012345678, try $ parseIntAttribute "teid")+ <|?> (0, parseIntAttribute "seq")+ <|?> (0, try $ parseIntAttribute "npdu")+ <|?> (0, try $ parseIntAttribute "nh")+ <|?> ([PPayload defaultPayload], parsePayload f))+ where+ tuple fl t l teid s np nh = GtpPkt (Gtp fl t l teid s np nh)+++gtpDecl :: Parser Packet -> Parser Packet+gtpDecl f = do+ symbol "gtp"+ g <- parseGtpPkt f+ return (PGtp g)++gtpWriteHdr :: Gtp -> Put+gtpWriteHdr p = do+ putWord8 (gtpFlags p)+ putWord8 (gtpType p)+ putWord16be (gtpLen p)+ putWord32be (gtpTeid p)+ putWord16be (gtpSeq p)+ putWord8 (gtpNpdu p)+ putWord8 (gtpNh p)++gtpWrite :: Gtp -> Maybe Packet -> B.ByteString -> Put+gtpWrite h _ bs = do+ gtpWriteHdr h {gtpLen = fromIntegral $ B.length bs}+ putLazyByteString bs++instance PacketWriteable GtpPkt where packetWrite p = gtpWrite (gtpPktHeader p)+++#ifdef HRWS_TEST+{- Unit Tests -}++instance Arbitrary Gtp where+ arbitrary = do+ f <- arbitrary+ t <- arbitrary+ l <- arbitrary+ teid <- arbitrary+ s <- arbitrary+ np <- arbitrary+ nh <- arbitrary+ return (Gtp f t l teid s np nh)++testValidParse :: String -> (Gtp -> Bool) -> Bool+testValidParse str fn =+ case parse (dummyParsePacket gtpDecl) "packet parse" str of+ Left err -> trace (show err) False+ Right val -> fn $ testGtpPkt val++testGtpPkt :: Packet -> Gtp+testGtpPkt (PGtp p) = gtpPktHeader p+testGtpPkt _ = error "Unexpected packet type"++testGtpDefault :: () -> Bool+testGtpDefault _ =+ let cmp p = defaultGtp == p in+ testValidParse "(gtp)" cmp++testGtpPacket :: Gtp -> Bool+testGtpPacket pkt =+ let cmp p = pkt == p in+ testValidParse (printf "(gtp flags=%d type=%d len=%d teid=%d seq=%d npdu=%d nh=%d)"+ (gtpFlags pkt) (gtpType pkt) (gtpLen pkt) (gtpTeid pkt) (gtpSeq pkt)+ (gtpNpdu pkt) (gtpNh pkt)) cmp++testGtpWrite :: () -> Bool+testGtpWrite _ =+ let expPkt = B.pack [0x32, 0xff, 0x00, 0x0, 0xcc, 0xcc, 0xcc, 0xcc, 0x00, 0x03, 0x02, 0x00] in+ let cmp p = runPut (gtpWrite p Nothing B.empty) == expPkt in+ testValidParse "(gtp flags=0x32 type=0xff len=0 teid=0xcccccccc seq=3 npdu=2 nh=0)" cmp++gtpTests :: [Test]+gtpTests = [+ testProperty "GTP: Default" testGtpDefault,+ testProperty "GTP: Packet" testGtpPacket,+ testProperty "GTP: Write" testGtpWrite+ ]++#endif
+ src/HexPayload.hs view
@@ -0,0 +1,103 @@+{-# LANGUAGE CPP #-}++module HexPayload where++import Data.Binary.Put+import Data.Bits+import Data.Char+import Data.Word+import Text.ParserCombinators.Parsec+import Text.ParserCombinators.Parsec.Perm++import Packet+import Lexer++#ifdef HRWS_TEST+import qualified Data.ByteString.Lazy as B+import Debug.Trace+import Test.QuickCheck hiding ((.&.))+import Test.Framework (Test)+import Test.Framework.Providers.QuickCheck2 (testProperty)+import Text.Printf+import Util+#endif++hexByte :: Parser Word8+hexByte = do+ h1 <- hexDigit+ h2 <- hexDigit+ let w = digitToInt h1 `shiftL` 4 .|. digitToInt h2+ return (fromIntegral w)+++parseHexData :: Parser [Word8]+parseHexData = do+ symbol "data"+ symbol "="+ many hexByte++hexPayloadPkt :: Parser Packet -> Parser HexPayload+hexPayloadPkt _ = permute+ (tuple <$?> (replicate 64 0, parseHexData))+ where+ tuple = HexPayload++hexPayloadDecl :: Parser Packet -> Parser Packet+hexPayloadDecl f = do+ symbol "hex"+ p <- hexPayloadPkt f+ return (PHexPayload p)++hexPayloadWrite :: HexPayload -> Put+hexPayloadWrite p =+ mapM_ putWord8 (hexPayloadData p)++instance PacketWriteable HexPayload where packetWrite p _ _= hexPayloadWrite p++#ifdef HRWS_TEST+{- Unit Tests -}++instance Arbitrary HexPayload where+ arbitrary = do+ d <- arbitrary+ l <- choose (1, 16)+ return (HexPayload (replicate (2*l) d))++testHexPayloadString :: HexPayload -> String+testHexPayloadString h =+ concatMap (printf "%02x") (hexPayloadData h)++testValidParse :: String -> (HexPayload -> Bool) -> Bool+testValidParse str fn =+ case parse (dummyParsePacket hexPayloadDecl) "packet parse" str of+ Left err -> trace (show err) False+ Right val -> fn $ testHexPayloadPkt val++testHexPayloadPkt :: Packet -> HexPayload+testHexPayloadPkt (PHexPayload p) = p+testHexPayloadPkt _ = error "Unexpected packet type"++testHexPayloadDefault :: () -> Bool+testHexPayloadDefault _ =+ let cmp p = defaultHexPayload == p in+ testValidParse "(hex)" cmp++testHexPayloadPacket :: HexPayload -> Bool+testHexPayloadPacket pkt =+ let cmp p = pkt == p in+ testValidParse (printf "(hex data=%s)" (testHexPayloadString pkt)) cmp++testHexPayloadWrite :: () -> Bool+testHexPayloadWrite _ =+ let expPkt = B.pack [0x80, 0x00, 0xb1, 0x4c, 0xca, 0xfe, 0xba, 0xbe] in+ let cmp p = runPut (hexPayloadWrite p) == expPkt in+ testValidParse "(hex data=8000b14ccafebabe)" cmp++hexPayloadTests :: [Test]+hexPayloadTests = [+ testProperty "HexPayload: Default" testHexPayloadDefault,+ testProperty "HexPayload: Packet" testHexPayloadPacket,+ testProperty "HexPayload: Write" testHexPayloadWrite+ ]+#endif+
+ src/HopByHop.hs view
@@ -0,0 +1,93 @@+{-# LANGUAGE CPP #-}+module HopByHop where++import Data.Binary.Put+import qualified Data.ByteString.Lazy as B+import Text.ParserCombinators.Parsec+import Text.ParserCombinators.Parsec.Perm++import Util+import Packet+import Lexer++#ifdef HRWS_TEST+import Debug.Trace+import Test.QuickCheck hiding ((.&.))+import Test.Framework (Test)+import Test.Framework.Providers.QuickCheck2 (testProperty)+import Text.Printf+#endif+++parseHopByHopPkt :: Parser Packet -> Parser HopByHopPkt+parseHopByHopPkt f = permute+ (tuple <$?> (17, parseIntAttribute "nh")+ <|?> (0, try (parseIntAttribute "len"))+ <|?> ([PPayload defaultPayload], parsePayload f))+ where+ tuple nh l = HopByHopPkt (HopByHop nh l)+++hopByHopDecl :: Parser Packet -> Parser Packet+hopByHopDecl f = do+ symbol "hopbyhop"+ g <- parseHopByHopPkt f+ return (PHopByHop g)++hopByHopWriteHdr :: HopByHop -> Put+hopByHopWriteHdr p = do+ putWord8 $ hopByHopNh p+ putWord8 $ hopByHopLen p++hopByHopWrite :: HopByHop -> Maybe Packet -> B.ByteString -> Put+hopByHopWrite h _ bs = do+ hopByHopWriteHdr h+ putLazyByteString bs++instance PacketWriteable HopByHopPkt where packetWrite p = hopByHopWrite $ hopByHopPktHeader p+++#ifdef HRWS_TEST+{- Unit Tests -}++instance Arbitrary HopByHop where+ arbitrary = do+ nh <- arbitrary+ l <- arbitrary+ return (HopByHop nh l)++testValidParse :: String -> (HopByHop -> Bool) -> Bool+testValidParse str fn =+ case parse (dummyParsePacket hopByHopDecl) "packet parse" str of+ Left err -> trace (show err) False+ Right val -> fn $ testHopByHopPkt val++testHopByHopPkt :: Packet -> HopByHop+testHopByHopPkt (PHopByHop p) = hopByHopPktHeader p+testHopByHopPkt _ = error "Unexpected packet type"++testHopByHopDefault :: () -> Bool+testHopByHopDefault _ =+ let cmp p = defaultHopByHop == p in+ testValidParse "(hopbyhop)" cmp++testHopByHopPacket :: HopByHop -> Bool+testHopByHopPacket pkt =+ let cmp p = pkt == p in+ testValidParse (printf "(hopbyhop nh=%d len=%d)" (hopByHopNh pkt)+ (hopByHopLen pkt)) cmp++testHopByHopWrite :: () -> Bool+testHopByHopWrite _ =+ let expPkt = B.pack [0x11, 0x00] in+ let cmp p = runPut (hopByHopWrite p Nothing B.empty) == expPkt in+ testValidParse "(hopbyhop nh=17 len=0)" cmp++hopByHopTests :: [Test]+hopByHopTests = [+ testProperty "HopByHop: Default" testHopByHopDefault,+ testProperty "HopByHop: Packet" testHopByHopPacket,+ testProperty "HopByHop: Write" testHopByHopWrite+ ]++#endif
+ src/IPv4.hs view
@@ -0,0 +1,235 @@+{-# LANGUAGE CPP #-}+module IPv4 where++import Data.Binary.Put+import Data.Bits+import qualified Data.ByteString.Lazy as B+import Data.Word+import Text.ParserCombinators.Parsec+import Text.ParserCombinators.Parsec.Perm++import Util+import Packet+import Lexer++#ifdef HRWS_TEST+import Debug.Trace+import Test.QuickCheck hiding ((.&.))+import Test.Framework (Test)+import Test.Framework.Providers.QuickCheck2 (testProperty)+#endif+++parseIPv4Ver :: Parser Word8 +parseIPv4Ver = parseIntAttribute "ver"++parseIPv4Hlen :: Parser Word8+parseIPv4Hlen = parseIntAttribute "hlen"++parseIPv4Tos :: Parser Word8+parseIPv4Tos = parseIntAttribute "tos"++parseIPv4Len :: Parser Word16+parseIPv4Len = parseIntAttribute "len"++parseIPv4Id :: Parser Word16+parseIPv4Id = parseIntAttribute "id"++parseIPv4Ttl :: Parser Word8+parseIPv4Ttl = parseIntAttribute "ttl"++parseIPv4Prot :: Parser Word8+parseIPv4Prot = parseIntAttribute "prot"++parseIPv4Csum :: Parser Word16+parseIPv4Csum = parseIntAttribute "csum"++parseIPv4Offset :: Parser Word16+parseIPv4Offset = parseIntAttribute "off"++parseIPv4Pkt :: Parser Packet -> Parser IPv4Pkt+parseIPv4Pkt f = permute+ (tuple <$?> (0xa0a0a0a1, parseIPv4Address "src")+ <|?> (0xa0a0a0a2, parseIPv4Address "dst")+ <|?> (4, parseIPv4Ver)+ <|?> (5, parseIPv4Hlen)+ <|?> (0, parseIPv4Len)+ <|?> (0x1234, parseIPv4Id)+ <|?> (17, parseIPv4Prot)+ <|?> (0, try parseIPv4Tos)+ <|?> (64, try parseIPv4Ttl)+ <|?> (0, parseIPv4Csum)+ <|?> (0, parseIPv4Offset)+ <|?> ([PPayload defaultPayload], parsePayload f)+ <|?> (True, parseBoolAttribute "fixcsum"))+ where+ tuple s d v hl l id_ p tos ttl csum off pl cc =+ IPv4Pkt (IPv4 v hl tos l id_ off ttl p csum s d cc) pl++ipv4Decl :: Parser Packet -> Parser Packet+ipv4Decl f = do+ symbol "ipv4"+ p <- parseIPv4Pkt f+ return (PIPv4 p)++pseudoIpv4Write :: IPv4 -> Word16 -> Put+pseudoIpv4Write p l = do+ putWord32be (ipv4Src p)+ putWord32be (ipv4Dst p)+ putWord8 0+ putWord8 (ipv4Prot p)+ putWord16be l++ipv4WriteHdr :: IPv4 -> Put+ipv4WriteHdr p = do+ putWord8 ((ipv4Ver p `shiftL` 4) .|. ipv4Hlen p)+ putWord8 (ipv4Tos p)+ putWord16be (ipv4Len p)+ putWord16be (ipv4Id p)+ putWord16be (ipv4Offset p)+ putWord8 (ipv4Ttl p)+ putWord8 (ipv4Prot p)+ putWord16be (ipv4Csum p)+ putWord32be (ipv4Src p)+ putWord32be (ipv4Dst p)++instance PacketWriteable IPv4Pkt where packetWrite p = ipv4Write $ ipv4PktHeader p++ipv4Write :: IPv4 -> Maybe Packet -> B.ByteString -> Put+ipv4Write h _ bs = do+ let hdr = h {ipv4Len = fromIntegral $ 20 + B.length bs}+ let sum32 = if ipv4CorrectCsum hdr+ then csumFin $ csumAdd (B.unpack $ runPut $+ ipv4WriteHdr hdr) 0+ else ipv4Csum hdr+ ipv4WriteHdr hdr {ipv4Csum = sum32}+ putLazyByteString bs+++#ifdef HRWS_TEST+{- Unit Tests -}++instance Arbitrary IPv4 where+ arbitrary = do+ v <- choose (0, 15)+ hl <- choose (0, 15)+ tos <- arbitrary+ len <- arbitrary+ i <- arbitrary+ off <- arbitrary+ ttl <- arbitrary+ p <- arbitrary+ cs <- arbitrary+ src <- arbitrary+ dst <- arbitrary+ return (IPv4 v hl tos len i off ttl p cs src dst True)++testValidParse :: String -> (IPv4 -> Bool) -> Bool+testValidParse str fn =+ case parse (dummyParsePacket ipv4Decl) "packet parse" str of+ Left err -> trace (show err) False+ Right val -> fn $ testIPv4Frame val++testIPv4Frame :: Packet -> IPv4+testIPv4Frame (PIPv4 p) = ipv4PktHeader p+testIPv4Frame _ = error "Unexpected packet type"++testIPv4Default :: () -> Bool+testIPv4Default _ = let cmp f = defaultIPv4 == f in+ testValidParse "(ipv4)" cmp++testIPv4Version :: Word8 -> Bool+testIPv4Version v = let cmp f = defaultIPv4 {ipv4Ver = v} == f in+ testValidParse ("(ipv4 ver=" ++ show v ++ ")") cmp++testIPv4Hlen :: Word8 -> Bool+testIPv4Hlen hl = let cmp f = defaultIPv4 {ipv4Hlen = hl} == f in+ testValidParse ("(ipv4 hlen=" ++ show hl ++ ")") cmp++testIPv4Tos :: Word8 -> Bool+testIPv4Tos t = let cmp f = defaultIPv4 {ipv4Tos = t} == f in+ testValidParse ("(ipv4 tos=" ++ show t ++ ")") cmp++testIPv4Len :: Word16 -> Bool+testIPv4Len l = let cmp f = defaultIPv4 {ipv4Len = l} == f in+ testValidParse ("(ipv4 len=" ++ show l ++ ")") cmp++testIPv4Id :: Word16 -> Bool+testIPv4Id i = let cmp f = defaultIPv4 {ipv4Id =i} == f in+ testValidParse ("(ipv4 id=" ++ show i ++ ")") cmp++testIPv4Offset :: Word16 -> Bool+testIPv4Offset o = let cmp f = defaultIPv4 {ipv4Offset = o} == f in+ testValidParse ("(ipv4 off=" ++ show o ++ ")") cmp++testIPv4Ttl :: Word8 -> Bool+testIPv4Ttl ttl = let cmp f = defaultIPv4 {ipv4Ttl = ttl} == f in+ testValidParse ("(ipv4 ttl=" ++ show ttl ++ ")") cmp++testIPv4Prot :: Word8 -> Bool+testIPv4Prot p = let cmp f = defaultIPv4 {ipv4Prot = p} == f in+ testValidParse ("(ipv4 prot=" ++ show p ++ ")") cmp++testIPv4Csum :: Word16 -> Bool+testIPv4Csum c = let cmp f = defaultIPv4 {ipv4Csum = c} == f in+ testValidParse ("(ipv4 csum=" ++ show c ++ ")") cmp++testIPv4Src :: Word32 -> Bool+testIPv4Src ip = let cmp f = defaultIPv4 {ipv4Src = ip} == f in+ testValidParse ("(ipv4 src=" ++ showIPv4Address ip ++ ")") cmp++testIPv4Dst :: Word32 -> Bool+testIPv4Dst ip = let cmp f = defaultIPv4 {ipv4Dst = ip} == f in+ testValidParse ("(ipv4 dst=" ++ showIPv4Address ip ++ ")") cmp++testIPv4FixCsum :: () -> Bool+testIPv4FixCsum _ = let cmp p = defaultIPv4 {ipv4CorrectCsum = False} == p in+ testValidParse "(ipv4 fixcsum=false)" cmp++testIPv4Pkt0 :: IPv4 -> Bool+testIPv4Pkt0 ip = let cmp p = ip == p in+ testValidParse ("(ipv4 ver=" ++ show (ipv4Ver ip) ++ " hlen=" ++ show (ipv4Hlen ip) +++ " tos=" ++ show (ipv4Tos ip) ++ " len=" ++ show (ipv4Len ip) +++ " id=" ++ show (ipv4Id ip) ++ " off=" ++ show (ipv4Offset ip) +++ " ttl=" ++ show (ipv4Ttl ip) ++ " prot=" ++ show (ipv4Prot ip) +++ " csum=" ++ show (ipv4Csum ip) ++ "src=" ++ showIPv4Address (ipv4Src ip) +++ " dst=" ++ showIPv4Address (ipv4Dst ip) ++ "fixcsum=true)") cmp++testIPv4Write :: () -> Bool+testIPv4Write _ =+ let expPkt = B.pack [0x45, 0x0c, 0x00, 0x14, 0xbe, 0xef, 0x00, 0x00,+ 0x0a, 0x07, 0xdd, 0x9d, 0x0a, 0x00, 0x00, 0x01,+ 0x0a, 0x00, 0x00, 0x02] in+ let cmp p = runPut (ipv4Write p Nothing B.empty) == expPkt in+ testValidParse "(ipv4 ver=4 hlen=5 tos=12 len=20 id=0xbeef off=0 ttl=0xa prot=7 csum=0xdd9d src=10.0.0.1 dst=10.0.0.2 fixcsum=false)" cmp++testIPv4PseudoWrite :: () -> Bool+testIPv4PseudoWrite _ =+ let expPh = B.pack [0x0a, 0x00, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x02, 0x00, 0x07, 0x00, 0x5c] in+ let cmp p = runPut (pseudoIpv4Write p 92) == expPh in+ testValidParse "(ipv4 ver=4 hlen=5 tos=12 len=92 id=0xbeef off=0 ttl=0xa prot=7 csum=0xdd9d src=10.0.0.1 dst=10.0.0.2)" cmp++ +ipv4Tests :: [Test]+ipv4Tests = [+ testProperty "IPv4: Default Packet" testIPv4Default,+ testProperty "IPv4: Version" testIPv4Version,+ testProperty "IPv4: Header Length" testIPv4Hlen,+ testProperty "IPv4: Type of Service" testIPv4Tos,+ testProperty "IPv4: Length" testIPv4Len,+ testProperty "IPv4: ID" testIPv4Id,+ testProperty "IPv4: Offset" testIPv4Offset,+ testProperty "IPv4: TTL" testIPv4Ttl,+ testProperty "IPv4: Protocol" testIPv4Prot,+ testProperty "IPv4: Checksum" testIPv4Csum,+ testProperty "IPv4: Source" testIPv4Src,+ testProperty "IPv4: Dest" testIPv4Dst,+ testProperty "IPv4: Correct Checksum" testIPv4FixCsum,+ testProperty "IPv4: Packet 0" testIPv4Pkt0,+ testProperty "IPv4: Write" testIPv4Write,+ testProperty "IPv4: Write Pseudo Header" testIPv4PseudoWrite+ ]++#endif++
+ src/IPv6.hs view
@@ -0,0 +1,222 @@+{-# LANGUAGE CPP #-}+module IPv6 where++import Data.Binary.Put+import Data.Bits+import qualified Data.ByteString.Lazy as B+import Data.Word+import Text.ParserCombinators.Parsec+import Text.ParserCombinators.Parsec.Perm++import Lexer+import Packet+import Util++#ifdef HRWS_TEST+import Debug.Trace+import Test.QuickCheck hiding ((.&.))+import Test.Framework (Test)+import Test.Framework.Providers.QuickCheck2 (testProperty)+#endif++parseIPv6Ver :: Parser Word8 +parseIPv6Ver = parseIntAttribute "ver"++parseIPv6Flow :: Parser Word32+parseIPv6Flow = parseIntAttribute "flow"++parseIPv6Tcl :: Parser Word8+parseIPv6Tcl = parseIntAttribute "tcl"++parseIPv6Len :: Parser Word16+parseIPv6Len = parseIntAttribute "len"++parseIPv6Hl :: Parser Word8+parseIPv6Hl = parseIntAttribute "hl"++parseIPv6Nh :: Parser Word8+parseIPv6Nh = parseIntAttribute "nh"++ipv6AddressDecl :: Parser IPv6Addr +ipv6AddressDecl = do+ a0 <- integer+ char ':'+ a1 <- integer+ char ':'+ a2 <- integer+ char ':'+ a3 <- integer+ char ':'+ a4 <- integer+ char ':'+ a5 <- integer+ char ':'+ a6 <- integer+ char ':'+ a7 <- integer++ let fix a b = fromIntegral a `shiftL` 16 .|. b++ return (IPv6Addr (fromIntegral (fix a0 a1))+ (fromIntegral (fix a2 a3))+ (fromIntegral (fix a4 a5))+ (fromIntegral (fix a6 a7)))++parseIPv6Address :: String -> Parser IPv6Addr+parseIPv6Address s = do+ symbol s+ symbol "="+ a <- ipv6AddressDecl+ whiteSpace+ return a++parseIPv6Pkt :: Parser Packet -> Parser IPv6Pkt+parseIPv6Pkt f = permute+ (tuple <$?> (IPv6Addr 0x2001000 0 0 1, parseIPv6Address "src")+ <|?> (IPv6Addr 0x2001000 0 0 2, parseIPv6Address "dst")+ <|?> (6, parseIPv6Ver)+ <|?> (0, try parseIPv6Tcl)+ <|?> (0, try parseIPv6Flow)+ <|?> (0, parseIPv6Len)+ <|?> (17, parseIPv6Nh)+ <|?> (64, parseIPv6Hl)+ <|?> ([PPayload defaultPayload], parsePayload f))+ where+ tuple s d v tcl fl l nh hl =+ IPv6Pkt (IPv6 v tcl fl l nh hl s d)++ipv6Decl :: Parser Packet -> Parser Packet+ipv6Decl f = do+ symbol "ipv6"+ p <- parseIPv6Pkt f+ return (PIPv6 p)++ipv6AddrWrite :: IPv6Addr -> Put+ipv6AddrWrite a = do+ putWord32be $ ipv6Addr0 a+ putWord32be $ ipv6Addr1 a+ putWord32be $ ipv6Addr2 a+ putWord32be $ ipv6Addr3 a++ipv6WriteHdr :: IPv6 -> Put+ipv6WriteHdr p = do+ -- pl_uint8_t vertcl+ putWord8 $ ipv6Ver p `shiftL` 4 .|. ipv6Tcl p `shiftR` 4+ -- pl_uint8_t tclflow XXX byte order of ipv6Flow!!!+ putWord8 $ ipv6Tcl p `shiftL` 4 .|. fromIntegral (ipv6Flow p `shiftR` 16)+ -- pl_uint16_t flow_id+ putWord16be $ fromIntegral $ ipv6Flow p .&. 0xffff+ putWord16be $ ipv6Length p+ putWord8 $ ipv6Nh p+ putWord8 $ ipv6Hl p+ ipv6AddrWrite $ ipv6Src p + ipv6AddrWrite $ ipv6Dst p++ipv6Write :: IPv6 -> Maybe Packet -> B.ByteString -> Put+ipv6Write h _ bs = do+ ipv6WriteHdr h {ipv6Length = fromIntegral $ B.length bs}+ putLazyByteString bs++pseudoIpv6Write :: IPv6 -> Word16 -> Put+pseudoIpv6Write p l = do+ ipv6AddrWrite $ ipv6Src p + ipv6AddrWrite $ ipv6Dst p+ putWord16be l+ putWord8 0+ putWord8 0+ putWord8 0+ putWord8 $ ipv6Nh p++instance PacketWriteable IPv6Pkt where packetWrite p = ipv6Write (ipv6PktHeader p)++#ifdef HRWS_TEST+{- Unit Tests -}++instance Arbitrary IPv6Addr where+ arbitrary = do+ a0 <- arbitrary+ a1 <- arbitrary+ a2 <- arbitrary+ a3 <- arbitrary+ return (IPv6Addr a0 a1 a2 a3)++instance Arbitrary IPv6 where+ arbitrary = do+ v <- arbitrary+ tcl <- arbitrary+ flow <- arbitrary+ len <- arbitrary+ nh <- arbitrary+ hl <- arbitrary+ src <- arbitrary+ dst <- arbitrary+ return (IPv6 v tcl flow len nh hl src dst)++testValidParse :: String -> (IPv6 -> Bool) -> Bool+testValidParse str fn =+ case parse (dummyParsePacket ipv6Decl) "packet parse" str of+ Left err -> trace (show err) False+ Right val -> fn $ testIPv6Pkt val++testIPv6Pkt :: Packet -> IPv6+testIPv6Pkt (PIPv6 p) = ipv6PktHeader p+testIPv6Pkt _ = error "Unexpected packet type"++testIPv6Default :: () -> Bool+testIPv6Default _ = let cmp f = defaultIPv6 == f in+ testValidParse "(ipv6)" cmp++ipv6ToPktStr :: IPv6 -> String+ipv6ToPktStr ip = "ipv6 ver=" ++ show (ipv6Ver ip) ++ " tcl=" ++ show (ipv6Tcl ip) +++ " flow=" ++ show (ipv6Flow ip) ++ " len=" ++ show (ipv6Length ip) +++ " nh=" ++ show (ipv6Nh ip) ++ " hl=" ++ show (ipv6Hl ip) +++ " src=" ++ show (ipv6Src ip) ++ " dst=" ++ show (ipv6Dst ip)+++testIPv6Pkt0 :: IPv6 -> Bool+testIPv6Pkt0 ip = let cmp p = ip == p in+ testValidParse ("(" ++ ipv6ToPktStr ip ++ ")") cmp++testIPv6InIPv6 :: IPv6 -> Bool+testIPv6InIPv6 inner =+ let outer = inner {ipv6Nh = 41} in+ let cmp p = p == outer in+ testValidParse ("(" ++ ipv6ToPktStr outer ++ "(" ++ ipv6ToPktStr inner ++ "))") cmp+ ++testIPv6Write :: () -> Bool+testIPv6Write _ =+ let expPkt = B.pack [0x60, 0xf0, 0xbe, 0xef, 0x00, 0x00, 0x04, 0x40,+ 0x07, 0xd1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,+ 0x07, 0xd1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02] in+ let cmp p = runPut (ipv6Write p Nothing B.empty) == expPkt in+ testValidParse "(ipv6 ver=6 tcl=0xf flow=0xbeef len=0 hl=64 src=2001:0:0:0:0:0:0:1 dst=2001:0:0:0:0:0:0:2 nh=4)" cmp++testIPv6PseudoWrite :: () -> Bool+testIPv6PseudoWrite _ =+ let expPkt = B.pack [0x07, 0xd1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,+ 0x07, 0xd1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,+ 0x00, 0x54, 0x00, 0x00, 0x00, 0x04] in+ let cmp p = runPut (pseudoIpv6Write p 84) == expPkt in+ testValidParse "(ipv6 ver=6 tcl=0xf flow=0xbeef len=84 hl=64 src=2001:0:0:0:0:0:0:1 dst=2001:0:0:0:0:0:0:2 nh=4)" cmp++ +++ipv6Tests :: [Test]+ipv6Tests = [+ testProperty "IPv6: Default" testIPv6Default,+ testProperty "IPv6 Packet 0" testIPv6Pkt0,+ testProperty "IPv6 in IPv6" testIPv6InIPv6,+ testProperty "IPv6 Write" testIPv6Write,+ testProperty "IPv6 Pesudo Write" testIPv6PseudoWrite+ ]++#endif+++
+ src/Icmp.hs view
@@ -0,0 +1,102 @@+{-# LANGUAGE CPP #-}+module Icmp where++import Data.Binary.Put+import qualified Data.ByteString.Lazy as B+import Text.ParserCombinators.Parsec+import Text.ParserCombinators.Parsec.Perm++import Util+import Packet+import Lexer++#ifdef HRWS_TEST+import Debug.Trace+import Test.QuickCheck hiding ((.&.))+import Test.Framework (Test)+import Test.Framework.Providers.QuickCheck2 (testProperty)+import Text.Printf+#endif++parseIcmpPkt :: Parser Packet -> Parser IcmpPkt+parseIcmpPkt f = permute+ (tuple <$?> (8, parseIntAttribute "type")+ <|?> (0, try (parseIntAttribute "code"))+ <|?> (0, try (parseIntAttribute "csum"))+ <|?> (0xcafe, parseIntAttribute "id")+ <|?> (0x1, parseIntAttribute "seq")+ <|?> (True, parseBoolAttribute "fixcsum")+ <|?> ([PPayload defaultPayload], parsePayload f))+ where+ tuple t c cs i s fc = IcmpPkt (Icmp t c cs i s fc)+++icmpDecl :: Parser Packet -> Parser Packet+icmpDecl f = do+ symbol "icmp"+ g <- parseIcmpPkt f+ return (PIcmp g)++icmpWriteHdr :: Icmp -> Put+icmpWriteHdr p = do+ putWord8 $ icmpType p+ putWord8 $ icmpCode p+ putWord16be $ icmpCsum p+ putWord16be $ icmpId p+ putWord16be $ icmpSeq p++icmpWrite :: Icmp -> Maybe Packet -> B.ByteString -> Put+icmpWrite h _ bs = do+ icmpWriteHdr h+ putLazyByteString bs++instance PacketWriteable IcmpPkt where packetWrite p = icmpWrite (icmpPktHeader p)++#ifdef HRWS_TEST+{- Unit Tests -}++instance Arbitrary Icmp where+ arbitrary = do+ t <- arbitrary+ c <- arbitrary+ cs <- arbitrary+ i <- arbitrary+ s <- arbitrary+ return (Icmp t c cs i s True)++testValidParse :: String -> (Icmp -> Bool) -> Bool+testValidParse str fn =+ case parse (dummyParsePacket icmpDecl) "packet parse" str of+ Left err -> trace (show err) False+ Right val -> fn $ testIcmpPkt val++testIcmpPkt :: Packet -> Icmp+testIcmpPkt (PIcmp p) = icmpPktHeader p+testIcmpPkt _ = error "Unexpected packet type"++testIcmpDefault :: () -> Bool+testIcmpDefault _ =+ let cmp p = defaultIcmp == p in+ testValidParse "(icmp)" cmp++testIcmpPacket :: Icmp -> Bool+testIcmpPacket pkt =+ let cmp p = pkt == p in+ testValidParse (printf "(icmp type=%d code=%d csum=%d id=%d seq=%d fixcsum=true)" (icmpType pkt)+ (icmpCode pkt) (icmpCsum pkt) (icmpId pkt) (icmpSeq pkt)) cmp++testIcmpWrite :: () -> Bool+testIcmpWrite _ =+ let expPkt = B.pack [0x08, 0x00, 0xab, 0xcd, 0x04, 0xd2, 0x16, 0x2e] in+ let cmp p = runPut (icmpWrite p Nothing B.empty) == expPkt in+ testValidParse "(icmp id=1234 seq=5678 csum=0xabcd)" cmp++icmpTests :: [Test]+icmpTests = [+ testProperty "ICMP: Default" testIcmpDefault,+ testProperty "ICMP: Packet" testIcmpPacket,+ testProperty "ICMP: Write" testIcmpWrite+ ]++#endif+
+ src/IcmpV6.hs view
@@ -0,0 +1,109 @@+{-# LANGUAGE CPP #-}+module IcmpV6 where++import Control.Monad+import Data.Binary.Put+import qualified Data.ByteString.Lazy as B+import Text.ParserCombinators.Parsec+import Text.ParserCombinators.Parsec.Perm++import Lexer+import Packet+import PseudoSum+import Util++#ifdef HRWS_TEST+import Debug.Trace+import Test.QuickCheck hiding ((.&.))+import Test.Framework (Test)+import Test.Framework.Providers.QuickCheck2 (testProperty)+import Text.Printf+#endif++parseIcmpV6Pkt :: Parser Packet -> Parser IcmpV6Pkt+parseIcmpV6Pkt f = permute+ (tuple <$?> (8, parseIntAttribute "type")+ <|?> (0, try (parseIntAttribute "code"))+ <|?> (0, try (parseIntAttribute "csum"))+ <|?> (0xffffffff, try (parseIntAttribute "pad"))+ <|?> (True, parseBoolAttribute "fixcsum")+ <|?> ([PPayload defaultPayload], parsePayload f))+ where+ tuple t c cs pad fc = IcmpV6Pkt (IcmpV6 t c cs pad fc)+++icmpV6Decl :: Parser Packet -> Parser Packet+icmpV6Decl f = do+ symbol "icmpv6"+ g <- parseIcmpV6Pkt f+ return (PIcmpV6 g)++icmpV6WriteHdr :: IcmpV6 -> Put+icmpV6WriteHdr p = do+ putWord8 $ icmpV6Type p+ putWord8 $ icmpV6Code p+ putWord16be $ icmpV6Csum p+ when (icmpV6Pad p /= 0xffffffff) $ putWord32be $ icmpV6Pad p++icmpV6Write :: IcmpV6 -> Maybe Packet -> B.ByteString -> Put+icmpV6Write h mp bs = do+ let hdrLen = if icmpV6Pad h /= 0xffffffff+ then 8+ else 4+ let len = hdrLen + fromIntegral (B.length bs)+ let csum = if icmpV6CorrectCsum h+ then let sum32 = csumAdd (B.unpack $ runPut $ icmpV6WriteHdr h) $ genPseudoSum mp len in+ csumFin $ csumAdd (B.unpack bs) sum32+ else icmpV6Csum h++ icmpV6WriteHdr h {icmpV6Csum = csum}+ putLazyByteString bs++instance PacketWriteable IcmpV6Pkt where packetWrite p = icmpV6Write $ icmpV6PktHeader p+++#ifdef HRWS_TEST+{- Unit Tests -}++instance Arbitrary IcmpV6 where+ arbitrary = do+ t <- arbitrary+ c <- arbitrary+ cs <- arbitrary+ pad <- arbitrary+ return (IcmpV6 t c cs pad True)++testValidParse :: String -> (IcmpV6 -> Bool) -> Bool+testValidParse str fn =+ case parse (dummyParsePacket icmpV6Decl) "packet parse" str of+ Left err -> trace (show err) False+ Right val -> fn $ testIcmpV6Pkt val++testIcmpV6Pkt :: Packet -> IcmpV6+testIcmpV6Pkt (PIcmpV6 p) = icmpV6PktHeader p+testIcmpV6Pkt _ = error "Unexpected packet type"++testIcmpV6Default :: () -> Bool+testIcmpV6Default _ =+ let cmp p = defaultIcmpV6 == p in+ testValidParse "(icmpv6)" cmp++testIcmpV6Packet :: IcmpV6 -> Bool+testIcmpV6Packet pkt =+ let cmp p = pkt == p in+ testValidParse (printf "(icmpv6 type=%d code=%d csum=%d pad=%d)" (icmpV6Type pkt)+ (icmpV6Code pkt) (icmpV6Csum pkt) (icmpV6Pad pkt)) cmp++testIcmpV6Write :: () -> Bool+testIcmpV6Write _ =+ let expPkt = B.pack [0x80, 0x00, 0xb1, 0x4c, 0xca, 0xfe, 0xba, 0xbe] in+ let cmp p = runPut (icmpV6Write p Nothing B.empty) == expPkt in+ testValidParse "(icmpv6 type=128 code=0 pad=0xcafebabe csum=0xb14c fixcsum=false)" cmp++icmpV6Tests :: [Test]+icmpV6Tests = [+ testProperty "ICMPv6: Default" testIcmpV6Default,+ testProperty "ICMPv6: Packet" testIcmpV6Packet,+ testProperty "ICMPv6: Write" testIcmpV6Write+ ]+#endif
+ src/L2tp.hs view
@@ -0,0 +1,120 @@+{-# LANGUAGE CPP #-}+module L2tp where++import Control.Monad+import Data.Binary.Put+import Data.Bits+import Text.ParserCombinators.Parsec+import qualified Data.ByteString.Lazy as B+import Text.ParserCombinators.Parsec.Perm+import Util+import Packet+import Lexer++#ifdef HRWS_TEST+import Debug.Trace+import Test.QuickCheck hiding ((.&.))+import Test.Framework (Test)+import Test.Framework.Providers.QuickCheck2 (testProperty)+import Text.Printf+#endif++parseL2tpPkt :: Parser Packet -> Parser L2tpPkt+parseL2tpPkt f = permute+ (tuple <$?> (0x0002, parseIntAttribute "flags")+ <|?> (0, parseIntAttribute "length")+ <|?> (0x1234, parseIntAttribute "tid")+ <|?> (0x5678, parseIntAttribute "sid")+ <|?> (0, try (parseIntAttribute "ns"))+ <|?> (0, try (parseIntAttribute "nr"))+ <|?> (0, parseIntAttribute "offset")+ <|?> (True, parseBoolAttribute "addoffset")+ <|?> ([PPayload defaultPayload], parsePayload f))+ where+ tuple fl l tid sid ns nr offset ao =+ L2tpPkt (L2tp fl l tid sid ns nr offset ao)+++l2tpDecl :: Parser Packet -> Parser Packet+l2tpDecl f = do+ symbol "l2tp"+ g <- parseL2tpPkt f+ return (PL2tp g)++l2tpWriteHdr :: L2tp -> Put+l2tpWriteHdr p = do+ putWord16be (l2tpFlags p)+ -- Optional Length Field+ when (l2tpFlags p .&. 0x4000 == 0x4000) $+ putWord16be $ l2tpLength p+ putWord16be (l2tpTid p)+ putWord16be (l2tpSid p)+ -- Optional Ns and Nr Field+ when (l2tpFlags p .&. 0x0800 == 0x0800) $+ do+ putWord16be (l2tpNs p)+ putWord16be (l2tpNr p)+ -- Optional Offset Size Field XXX add actual offset+ when (l2tpFlags p .&. 0x0200 == 0x0200) $+ do+ putWord16be (l2tpOffset p)+ when (l2tpCorrectOffset p) $+ putLazyByteString $ B.replicate (fromIntegral (l2tpOffset p)) 0x0++l2tpWrite :: L2tp -> Maybe Packet -> B.ByteString -> Put+l2tpWrite h _ bs = do+ l2tpWriteHdr h {l2tpLength = fromIntegral $ B.length bs}+ putLazyByteString bs++instance PacketWriteable L2tpPkt where packetWrite p = l2tpWrite (l2tpPktHeader p)+++#ifdef HRWS_TEST+{- Unit Tests -}++instance Arbitrary L2tp where+ arbitrary = do+ f <- arbitrary+ l <- arbitrary+ t <- arbitrary+ s <- arbitrary+ ns <- arbitrary+ nr <- arbitrary+ o <- arbitrary+ return (L2tp f l t s ns nr o True)++testValidParse :: String -> (L2tp -> Bool) -> Bool+testValidParse str fn =+ case parse (dummyParsePacket l2tpDecl) "packet parse" str of+ Left err -> trace (show err) False+ Right val -> fn $ testL2tpPkt val++testL2tpDefault :: () -> Bool+testL2tpDefault _ = let cmp f = defaultL2tp == f in+ testValidParse "(l2tp)" cmp++testL2tpPkt :: Packet -> L2tp+testL2tpPkt (PL2tp f) = l2tpPktHeader f+testL2tpPkt _ = error "Unexpected packet type"++testL2tpPacket :: L2tp -> Bool+testL2tpPacket pkt =+ let cmp p = pkt == p in+ testValidParse (printf "(l2tp flags=%d length=%d tid=%d sid=%d ns=%d nr=%d offset=%d)"+ (l2tpFlags pkt) (l2tpLength pkt) (l2tpTid pkt) (l2tpSid pkt)+ (l2tpNs pkt) (l2tpNr pkt) (l2tpOffset pkt)) cmp++testL2tpWrite :: () -> Bool+testL2tpWrite _ =+ let expPkt = B.pack [0x00, 0x02, 0xb0, 0xb1, 0xc1, 0xc2] in+ let cmp p = runPut (l2tpWrite p Nothing B.empty) == expPkt in+ testValidParse "(l2tp flags=0x2 tid=0xb0b1 sid=0xc1c2)" cmp++l2tpTests :: [Test]+l2tpTests = [+ testProperty "L2TP: Default Packet" testL2tpDefault,+ testProperty "L2TP: Packet" testL2tpPacket,+ testProperty "L2TP: Write" testL2tpWrite+ ]+#endif+
+ src/Lexer.hs view
@@ -0,0 +1,63 @@+module Lexer (parens, braces, semiSep, semiSep1, commaSep, commaSep1, brackets,+ whiteSpace, symbol, identifier, reserved, reservedOp, integer,+ hexadecimal, float, charLiteral, stringLiteral,+ naturalOrFloat) where++import Text.ParserCombinators.Parsec+import qualified Text.ParserCombinators.Parsec.Token as P+import Text.ParserCombinators.Parsec.Language( javaStyle )+++lexer = P.makeTokenParser techlDef++techlDef = javaStyle+ {+ P.commentLine = "#",+ P.reservedNames = [+ "ipv6", "ipv4", "eth", "src", "dst", "type" , "ack", "ackno",+ "urg", "urgno", "syn", "ecne", "cwr", "psh", "rst", "fin"+ ],+ P.reservedOpNames = ["=", "+", "-", ":", ">>", "<<", "&", "|"],+ P.opLetter = oneOf (concat (P.reservedOpNames techlDef)),+ P.caseSensitive = False,+ P.identLetter = alphaNum <|> oneOf "_'."+ }++parens :: Parser a -> Parser a+parens = P.parens lexer+braces :: Parser a -> Parser a+braces = P.braces lexer+semiSep :: Parser a -> Parser [a]+semiSep = P.semiSep lexer+semiSep1 :: Parser a -> Parser [a]+semiSep1 = P.semiSep1 lexer+commaSep :: Parser a -> Parser [a]+commaSep = P.commaSep lexer+commaSep1 :: Parser a -> Parser [a]+commaSep1 = P.commaSep1 lexer+brackets :: Parser a -> Parser a+brackets = P.brackets lexer+whiteSpace :: Parser ()+whiteSpace = P.whiteSpace lexer+symbol :: String -> Parser String+symbol = P.symbol lexer+identifier :: Parser String+identifier = P.identifier lexer+reserved :: String -> Parser ()+reserved = P.reserved lexer+reservedOp :: String -> Parser ()+reservedOp = P.reservedOp lexer+integer :: Parser Integer+integer = P.integer lexer+hexadecimal :: Parser Integer+hexadecimal = P.hexadecimal lexer+float :: Parser Double+float = P.float lexer+charLiteral :: Parser Char+charLiteral = P.charLiteral lexer+stringLiteral :: Parser String+stringLiteral = P.stringLiteral lexer+naturalOrFloat :: Parser (Either Integer Double)+naturalOrFloat = P.naturalOrFloat lexer++
+ src/Packet.hs view
@@ -0,0 +1,478 @@+module Packet where++import Data.Binary.Put+import Data.Bits+import qualified Data.ByteString.Lazy as B+import Data.Word+import Text.Printf++class PayloadCarrier a where+ payloadCarried :: a -> [Packet]++class PacketWriteable a where+ packetWrite :: a -> Maybe Packet -> B.ByteString -> Put++data MacAddress = MacAddress {+ macAddress0 :: Word8,+ macAddress1 :: Word8,+ macAddress2 :: Word8,+ macAddress3 :: Word8,+ macAddress4 :: Word8,+ macAddress5 :: Word8+} deriving Eq++instance Show MacAddress where show = showMacAddress+showMacAddress :: MacAddress -> String+showMacAddress a = printf "%02x:%02x:%02x:%02x:%02x:%02x" (macAddress0 a) (macAddress1 a)+ (macAddress2 a) (macAddress3 a) (macAddress4 a) (macAddress5 a) ++data Ethernet = Ethernet {+ ethernetDst :: MacAddress,+ ethernetSrc :: MacAddress,+ ethernetType :: Word16+} deriving (Show,Eq)++data EthernetFrame = EthernetFrame {+ ethernFrameHeader :: Ethernet,+ ethernPayload :: [Packet]+} deriving (Show,Eq)++instance PayloadCarrier EthernetFrame where payloadCarried = ethernPayload++defaultEthernet :: Ethernet+defaultEthernet = Ethernet (MacAddress 0 0 0 0 0 1) + (MacAddress 0 0 0 0 0 2)+ 0x800+defaultEthernetFrame :: EthernetFrame+defaultEthernetFrame = EthernetFrame defaultEthernet+ [PPayload defaultPayload]++data IPv6Addr = IPv6Addr {+ ipv6Addr0 :: !Word32,+ ipv6Addr1 :: !Word32,+ ipv6Addr2 :: !Word32,+ ipv6Addr3 :: !Word32+} deriving Eq++instance Show IPv6Addr where show = showIPv6Addr+showIPv6Addr :: IPv6Addr -> String+showIPv6Addr a = printf "0x%04x:0x%04x:0x%04x:0x%04x:0x%04x:0x%04x:0x%04x:0x%04x"+ (ipv6Addr0 a `shiftR` 16) (ipv6Addr0 a .&. 0xffff)+ (ipv6Addr1 a `shiftR` 16) (ipv6Addr1 a .&. 0xffff)+ (ipv6Addr2 a `shiftR` 16) (ipv6Addr2 a .&. 0xffff)+ (ipv6Addr3 a `shiftR` 16) (ipv6Addr3 a .&. 0xffff)++data IPv6 = IPv6 {+ ipv6Ver :: !Word8,+ ipv6Tcl :: !Word8,+ ipv6Flow :: !Word32,+ ipv6Length :: !Word16,+ ipv6Nh :: !Word8,+ ipv6Hl :: !Word8,+ ipv6Src :: !IPv6Addr,+ ipv6Dst :: !IPv6Addr+} deriving (Show,Eq)++data IPv6Pkt = IPv6Pkt {+ ipv6PktHeader :: IPv6,+ ipv6PktPayload :: [Packet]+} deriving (Show,Eq)++instance PayloadCarrier IPv6Pkt where payloadCarried = ipv6PktPayload++defaultIPv6 :: IPv6+defaultIPv6 = IPv6 6 0 0 0 17 64 (IPv6Addr 0x2001000 0 0 1) (IPv6Addr 0x2001000 0 0 2)+defaultIPv6Packet :: IPv6Pkt+defaultIPv6Packet = IPv6Pkt defaultIPv6 [PPayload $ Payload 0 0]++++data IPv4 = IPv4 {+ ipv4Ver :: !Word8,+ ipv4Hlen :: !Word8,+ ipv4Tos :: !Word8,+ ipv4Len :: !Word16,+ ipv4Id :: !Word16,+ ipv4Offset :: !Word16,+ ipv4Ttl :: !Word8,+ ipv4Prot :: !Word8,+ ipv4Csum :: !Word16,+ ipv4Src :: !Word32,+ ipv4Dst :: !Word32,+ ipv4CorrectCsum :: Bool+} deriving (Show,Eq)++defaultIPv4 :: IPv4+defaultIPv4 = IPv4 4 5 0 0 0x1234 0 64 17 0 0xa0a0a0a1 0xa0a0a0a2 True+defaultIPv4Packet :: IPv4Pkt+defaultIPv4Packet = IPv4Pkt defaultIPv4 [PPayload defaultPayload]++data IPv4Pkt = IPv4Pkt {+ ipv4PktHeader :: IPv4,+ ipv4PktPayload :: [Packet]+} deriving (Show,Eq)++instance PayloadCarrier IPv4Pkt where payloadCarried = ipv4PktPayload++data Udp = Udp {+ udpSrc :: !Word16,+ udpDst :: !Word16,+ udpLen :: !Word16,+ udpCsum :: !Word16,+ udpCorrectCsum :: Bool+} deriving (Show,Eq)++data UdpPkt = UdpPkt {+ udpPktHeader :: Udp,+ udpPktPayload :: [Packet]+} deriving (Show,Eq)++instance PayloadCarrier UdpPkt where payloadCarried = udpPktPayload++defaultUdp :: Udp+defaultUdp = Udp 7 7 8 0 True+defaultUdpPacket :: UdpPkt+defaultUdpPacket = UdpPkt defaultUdp [PPayload defaultPayload]++data Tcp = Tcp {+ tcpSrc :: !Word16,+ tcpDst :: !Word16,+ tcpSeqNo :: !Word32,+ tcpAckNo :: !Word32,+ tcpFlags :: !Word16,+ tcpWin :: !Word16,+ tcpCsum :: !Word16,+ tcpUrg :: !Word16,+ tcpOffset :: !Word8,+ tcpCorrectCsum :: Bool,+ tcpWindowScale :: !Word8,+ tcpTimeStamp :: !Word64+ -- options+} deriving (Show,Eq)++defaultTcp :: Tcp+defaultTcp = Tcp 7 7 0 0 0x5000 0xffff 0 0 20 True 0 0+defaultTcpPacket :: TcpPkt+defaultTcpPacket = TcpPkt defaultTcp [PPayload $ Payload 0 0]++++data TcpPkt = TcpPkt {+ tcpPktHeader :: Tcp,+ tcpPktPayload :: [Packet]+} deriving (Show,Eq)++instance PayloadCarrier TcpPkt where payloadCarried = tcpPktPayload++data Gtp = Gtp {+ gtpFlags :: !Word8,+ gtpType :: !Word8,+ gtpLen :: !Word16,+ gtpTeid :: !Word32,+ gtpSeq :: !Word16,+ gtpNpdu :: !Word8,+ gtpNh :: !Word8+} deriving (Show,Eq)++defaultGtp :: Gtp+defaultGtp = Gtp 0x32 0xff 0 0x012345678 0 0 0+defaultGtpPacket :: GtpPkt+defaultGtpPacket = GtpPkt defaultGtp [PPayload defaultPayload]+++data GtpPkt = GtpPkt {+ gtpPktHeader :: Gtp,+ gtpPktPayload :: [Packet]+} deriving (Show,Eq)++instance PayloadCarrier GtpPkt where payloadCarried = gtpPktPayload++data Ppp = Ppp {+ pppAddress :: !Word8,+ pppControl :: !Word8,+ pppProtocol :: !Word16+} deriving (Show,Eq)++data PppPkt = PppPkt {+ pppPktHeader :: Ppp,+ pppPktPayload :: [Packet]+} deriving (Show,Eq)++instance PayloadCarrier PppPkt where payloadCarried = pppPktPayload++defaultPpp :: Ppp+defaultPpp = Ppp 0xff 0x03 0x0021+defaultPppPacket :: PppPkt+defaultPppPacket = PppPkt defaultPpp [PPayload $ Payload 0 0]++data L2tp = L2tp {+ l2tpFlags :: !Word16,+ l2tpLength :: !Word16,+ l2tpTid :: !Word16,+ l2tpSid :: !Word16,+ l2tpNs :: !Word16,+ l2tpNr :: !Word16,+ l2tpOffset :: !Word16,+ l2tpCorrectOffset :: Bool+} deriving (Show,Eq)++data L2tpPkt = L2tpPkt {+ l2tpPktHeader :: L2tp,+ l2tpPktPayload :: [Packet]+} deriving (Show,Eq)++defaultL2tp :: L2tp+defaultL2tp = L2tp 0x2 0 0x1234 0x5678 0 0 0 True+defaultL2tpPacket :: L2tpPkt+defaultL2tpPacket = L2tpPkt defaultL2tp [PPayload $ Payload 0 0]++instance PayloadCarrier L2tpPkt where payloadCarried = l2tpPktPayload++data Gre = Gre {+ greFlags :: !Word16,+ greProtocol :: !Word16,+ greKey :: !Word32,+ greSeq :: !Word32+} deriving (Show,Eq)++data GrePkt = GrePkt {+ grePktHeader :: Gre,+ grePktPayload :: [Packet]+} deriving (Show,Eq)++defaultGre :: Gre+defaultGre = Gre 0x3000 0x0800 0xcafecafe 0+defaultGrePacket :: GrePkt+defaultGrePacket = GrePkt defaultGre [PPayload $ Payload 0 0]++instance PayloadCarrier GrePkt where payloadCarried = grePktPayload++data Icmp = Icmp {+ icmpType :: !Word8,+ icmpCode :: !Word8,+ icmpCsum :: !Word16,+ icmpId :: !Word16,+ icmpSeq :: !Word16,+ icmpCorrectCsum :: Bool+} deriving (Show,Eq)++defaultIcmp :: Icmp+defaultIcmp = Icmp 8 0 0 0xcafe 1 True+defaultIcmpPacket :: IcmpPkt+defaultIcmpPacket = IcmpPkt defaultIcmp [PPayload $ Payload 0 0]++data IcmpPkt = IcmpPkt {+ icmpPktHeader :: Icmp,+ icmpPktPayload :: [Packet]+} deriving (Show,Eq)++instance PayloadCarrier IcmpPkt where payloadCarried = icmpPktPayload++data IcmpV6 = IcmpV6 {+ icmpV6Type :: !Word8,+ icmpV6Code :: !Word8,+ icmpV6Csum :: !Word16,+ icmpV6Pad :: !Word32,+ icmpV6CorrectCsum :: Bool+} deriving (Show,Eq)++defaultIcmpV6 :: IcmpV6+defaultIcmpV6 = IcmpV6 8 0 0 0xffffffff True+defaultIcmpV6Packet :: IcmpV6Pkt+defaultIcmpV6Packet = IcmpV6Pkt defaultIcmpV6 [PPayload $ Payload 0 0]++data IcmpV6Pkt = IcmpV6Pkt {+ icmpV6PktHeader :: IcmpV6,+ icmpV6PktPayload :: [Packet]+} deriving (Show,Eq)++instance PayloadCarrier IcmpV6Pkt where payloadCarried = icmpV6PktPayload++data Teredo = Teredo {+ teredoOrgTag :: !Word16,+ teredoOrgPort :: !Word16,+ teredoAddr :: !Word32,+ teredoAuthTag :: !Word16,+ teredoAuthIdLen :: !Word8,+ teredoAuthAuLen :: !Word8,+ teredoHaveOrg :: Bool,+ teredoHaveAuth :: Bool,+ teredoFixSrc :: Bool,+ teredoFixDst :: Bool+} deriving (Show,Eq)++defaultTeredo :: Teredo+defaultTeredo = Teredo 0 0 0 0 0 0 False False True True+defaultTeredoPacket :: TeredoPkt+defaultTeredoPacket = TeredoPkt defaultTeredo $ PPayload $ Payload 0 0++data TeredoPkt = TeredoPkt {+ teredoPktHeader :: Teredo,+ teredoPktPayload :: Packet+} deriving (Show,Eq)++data EngineId = EngineId {+ eid0 :: Word8,+ eid1 :: Word8,+ eid2 :: Word8,+ eid3 :: Word8,+ eid4 :: Word8,+ eid5 :: Word8+} deriving (Show,Eq)++data ConnSync = ConnSync {+ connSyncVer :: !Word32,+ connSyncArmcs :: !Word32,+ connSyncDst :: !Word32,+ connSyncSrc :: !Word32,+ connSyncType :: !Word8,+ connSyncExtVer :: !Word8,+ connSyncExtEid :: !EngineId,+ connSyncId :: !Word32+} deriving (Show,Eq)++data ConnSyncPkt = ConnSyncPkt {+ connSyncPktHeader :: ConnSync,+ connSyncPktPayload :: [Packet]+} deriving (Show,Eq)++instance PayloadCarrier ConnSyncPkt where payloadCarried = connSyncPktPayload++data ConnSyncSeen = ConnSyncSeen {+ connSyncSeenPcid :: !Word32,+ connSyncSeenPeid :: !EngineId,+ connSyncSeenHasFsService :: !Word8,+ connSyncSeenCtype :: !Word8,+ connSyncSeenBaseService :: !Word32,+ connSyncSeenFsService :: !Word32+} deriving (Show,Eq)++data ConnSyncSeenPkt = ConnSyncSeenPkt {+ connSyncSeenPktHeader :: ConnSyncSeen,+ connSyncSeenPktPayload :: [Packet]+} deriving (Show,Eq)++instance PayloadCarrier ConnSyncSeenPkt where payloadCarried = connSyncSeenPktPayload++data ConnSyncIpv4 = ConnSyncIpv4 {+ connSyncIpv4Int :: !Word32,+ connSyncIpv4Ext :: !Word32,+ connSyncIpv4IntPort :: !Word16,+ connSyncIpv4ExtPort :: !Word16,+ connSyncIpv4Prot :: !Word32+} deriving (Show,Eq)++data ConnSyncIpv4Pkt = ConnSyncIpv4Pkt {+ connSyncIpv4PktHeader :: ConnSyncIpv4,+ connSyncIpv4PktPayload :: [Packet]+} deriving (Show,Eq)++instance PayloadCarrier ConnSyncIpv4Pkt where payloadCarried = connSyncIpv4PktPayload++data ConnSyncUpdate = ConnSyncUpdate {+ connSyncUpdateSeq :: !Word16,+ connSyncUpdateFlags :: !Word8,+ connSyncUpdateService :: !Word32,+ connSyncUpdateCid :: !Word32,+ connSyncUpdateEid :: !EngineId,+ connSyncUpdateIn :: !Word16,+ connSyncUpdateOut :: !Word16+} deriving (Show,Eq)++data ConnSyncUpdatePkt = ConnSyncUpdatePkt {+ connSyncUpdatePktHeader :: ConnSyncUpdate,+ connSyncUpdatePktPayload :: [Packet]+} deriving (Show,Eq)++instance PayloadCarrier ConnSyncUpdatePkt where payloadCarried = connSyncUpdatePktPayload++data Fragv6 = Fragv6 {+ fragv6Nh :: !Word8,+ fragv6Res :: !Word8,+ fragv6Off :: !Word16,+ fragv6Id :: !Word32+} deriving (Show,Eq)++data Fragv6Pkt = Fragv6Pkt {+ fragv6PktHeader :: Fragv6,+ fragv6PktPayload :: [Packet]+} deriving (Show,Eq)++defaultFragv6 :: Fragv6+defaultFragv6 = Fragv6 17 0 0 0+defaultFragv6Packet :: Fragv6Pkt+defaultFragv6Packet = Fragv6Pkt defaultFragv6 [PPayload $ Payload 0 0]++instance PayloadCarrier Fragv6Pkt where payloadCarried = fragv6PktPayload++data HopByHop = HopByHop {+ hopByHopNh :: !Word8,+ hopByHopLen :: !Word8+} deriving (Show,Eq)++data HopByHopPkt = HopByHopPkt {+ hopByHopPktHeader :: HopByHop,+ hopByHopPktPayload :: [Packet]+} deriving (Show,Eq)++defaultHopByHop :: HopByHop+defaultHopByHop = HopByHop 17 0+defaultHopByHopPacket :: HopByHopPkt+defaultHopByHopPacket = HopByHopPkt defaultHopByHop [PPayload $ Payload 0 0]++instance PayloadCarrier HopByHopPkt where payloadCarried = hopByHopPktPayload++data PadN = PadN {+ padNCode :: !Word8,+ padNLen :: !Word8+} deriving (Show,Eq)++data PadNPkt = PadNPkt {+ padNPktHeader :: PadN,+ padNPktPayload :: [Packet]+} deriving (Show,Eq)++defaultPadN :: PadN+defaultPadN = PadN 1 0+defaultPadNPacket :: PadNPkt+defaultPadNPacket = PadNPkt defaultPadN [PPayload $ Payload 0 0]++instance PayloadCarrier PadNPkt where payloadCarried = padNPktPayload++data Payload = Payload {+ payloadPattern :: Word32,+ payloadLength :: Word16+} deriving (Show,Eq)++defaultPayload :: Payload+defaultPayload = Payload 0 64++data HexPayload = HexPayload {+ hexPayloadData :: [Word8]+} deriving (Show,Eq)++defaultHexPayload :: HexPayload+defaultHexPayload = HexPayload (replicate 64 0)++data Packet =+ PEth EthernetFrame+ | PIPv4 IPv4Pkt+ | PUdp UdpPkt+ | PPayload Payload+ | PHexPayload HexPayload+ | PGtp GtpPkt+ | PL2tp L2tpPkt+ | PPpp PppPkt+ | PIPv6 IPv6Pkt+ | PTcp TcpPkt+ | PTeredo TeredoPkt+ | PGre GrePkt+ | PIcmp IcmpPkt+ | PIcmpV6 IcmpV6Pkt+ | PFragv6 Fragv6Pkt+ | PHopByHop HopByHopPkt+ | PPadN PadNPkt+ deriving (Show,Eq)+++
+ src/PadN.hs view
@@ -0,0 +1,92 @@+{-# LANGUAGE CPP #-}+module PadN where++import Data.Binary.Put+import qualified Data.ByteString.Lazy as B+import Text.ParserCombinators.Parsec+import Text.ParserCombinators.Parsec.Perm++import Util+import Packet+import Lexer++#ifdef HRWS_TEST+import Debug.Trace+import Test.QuickCheck hiding ((.&.))+import Test.Framework (Test)+import Test.Framework.Providers.QuickCheck2 (testProperty)+import Text.Printf+#endif++parsePadNPkt :: Parser Packet -> Parser PadNPkt+parsePadNPkt f = permute+ (tuple <$?> (1, parseIntAttribute "code")+ <|?> (0, try (parseIntAttribute "len"))+ <|?> ([PPayload defaultPayload], parsePayload f))+ where+ tuple nh l = PadNPkt (PadN nh l)+++padNDecl :: Parser Packet -> Parser Packet+padNDecl f = do+ symbol "padn"+ g <- parsePadNPkt f+ return (PPadN g)++padNWriteHdr :: PadN -> Put+padNWriteHdr p = do+ putWord8 $ padNCode p+ putWord8 $ padNLen p+ let bs = B.replicate (fromIntegral $ padNLen p) 0+ putLazyByteString bs++padNWrite :: PadN -> Maybe Packet -> B.ByteString -> Put+padNWrite h _ bs = do+ padNWriteHdr h+ putLazyByteString bs++instance PacketWriteable PadNPkt where packetWrite p = padNWrite $ padNPktHeader p++#ifdef HRWS_TEST+{- Unit Tests -}++instance Arbitrary PadN where+ arbitrary = do+ c <- arbitrary+ l <- arbitrary+ return (PadN c l)++testValidParse :: String -> (PadN -> Bool) -> Bool+testValidParse str fn =+ case parse (dummyParsePacket padNDecl) "packet parse" str of+ Left err -> trace (show err) False+ Right val -> fn $ testPadNPkt val++testPadNDefault :: () -> Bool+testPadNDefault _ = let cmp f = defaultPadN == f in+ testValidParse "(padn)" cmp++testPadNPkt :: Packet -> PadN+testPadNPkt (PPadN f) = padNPktHeader f+testPadNPkt _ = error "Unexpected packet type"++testPadNPacket :: PadN -> Bool+testPadNPacket pkt =+ let cmp p = pkt == p in+ testValidParse (printf "(padn code=%d len=%d)" (padNCode pkt) (padNLen pkt)) cmp++testPadNWrite :: () -> Bool+testPadNWrite _ =+ let expPkt = B.pack [0x01, 0x04, 0x00, 0x00, 0x00, 0x00] in+ let cmp p = runPut (padNWrite p Nothing B.empty) == expPkt in+ testValidParse "(padn len=4)" cmp++padNTests :: [Test]+padNTests = [+ testProperty "GRE: Default Packet" testPadNDefault,+ testProperty "GRE: Packet" testPadNPacket,+ testProperty "GRE: Write" testPadNWrite+ ]+#endif++
+ src/Parser.hs view
@@ -0,0 +1,108 @@+{-# LANGUAGE CPP #-}+module Parser where++import Text.ParserCombinators.Parsec++import Packet+import IPv4+import IPv6+import Ethernet+import Udp+import Gtp+import L2tp+import Ppp+import Payload+import Lexer+import Tcp+import Teredo+import Gre+import Icmp+import IcmpV6+import Fragv6+import HopByHop+import PadN+import HexPayload++#ifdef HRWS_TEST+--import Debug.Trace+import Test.Framework (Test)+import Test.Framework.Providers.QuickCheck2 (testProperty)+#endif++parsePacket :: Parser [Packet]+parsePacket = do+ whiteSpace+ many1 packetDecl++packetDeclH :: Parser Packet+packetDeclH = choice [+ try $ ipv4Decl packetDecl,+ try $ ipv6Decl packetDecl,+ try $ icmpV6Decl packetDecl,+ try $ icmpDecl packetDecl,+ udpDecl packetDecl,+ try $ tcpDecl packetDecl,+ ethDecl packetDecl,+ try $ gtpDecl packetDecl,+ try $ greDecl packetDecl,+ l2tpDecl packetDecl,+ try $ payloadDecl packetDecl,+ try $ pppDecl packetDecl,+ try $ padNDecl packetDecl,+ try $ teredoDecl packetDecl,+ try $ fragv6Decl packetDecl,+ try $ hopByHopDecl packetDecl,+ try $ hexPayloadDecl packetDecl+ ]++packetDecl :: Parser Packet+packetDecl = do+ char '('+ p <- packetDeclH+ char ')'+ whiteSpace+ return p++readPacket :: String -> [Packet]+readPacket input = case parse parsePacket "packet parse" input of+ Left err -> error $ show err+ Right val -> val++#ifdef HRWS_TEST+{- Unit Tests -}++testParserIPv4Udp :: () -> Bool+testParserIPv4Udp _ =+ let expPkt = PEth defaultEthernetFrame {ethernPayload = [PIPv4 defaultIPv4Packet {+ ipv4PktPayload = [PUdp defaultUdpPacket]}]} in+ let pkts = readPacket "(eth (ipv4 (udp)))" in+ (length pkts == 1) && (head pkts == expPkt)++testParserIPv6Tcp :: () -> Bool+testParserIPv6Tcp _ =+ let expPkt = PEth defaultEthernetFrame {ethernPayload = [PIPv6 defaultIPv6Packet {+ ipv6PktPayload = [PTcp defaultTcpPacket]}]} in+ let pkts = readPacket "(eth (ipv6 (tcp)))" in+ (length pkts == 1) && (head pkts == expPkt)++testParserIPv6Gtp :: () -> Bool+testParserIPv6Gtp _ =+ let expPkt = PEth defaultEthernetFrame {ethernPayload = [PIPv6 defaultIPv6Packet {+ ipv6PktPayload = [PUdp defaultUdpPacket {+ udpPktPayload = [PGtp defaultGtpPacket {+ gtpPktPayload = [PIPv4 defaultIPv4Packet {+ ipv4PktPayload = [PUdp defaultUdpPacket]}]}]}]}]} in+ let pkts = readPacket "(eth (ipv6 (udp (gtp (ipv4 (udp))))))" in+ (length pkts == 1) && (head pkts == expPkt)++++parserTests :: [Test]+parserTests = [+ testProperty "Parser: Eth IPv4 Udp " testParserIPv4Udp,+ testProperty "Parser: Eth IPv6 Tcp" testParserIPv6Tcp,+ testProperty "Parser: Eth IPv6 Gtp" testParserIPv6Gtp+ ]++#endif+
+ src/Payload.hs view
@@ -0,0 +1,32 @@+module Payload where++import Data.Binary.Put+import qualified Data.ByteString.Lazy as B+import Text.ParserCombinators.Parsec+import Text.ParserCombinators.Parsec.Perm++import Packet+import Lexer+import Util++payloadPkt :: Parser Packet -> Parser Payload+payloadPkt _ = permute+ (tuple <$?> (0, parseIntAttribute "pattern")+ <|?> (64, parseIntAttribute "length"))+ where+ tuple = Payload++payloadDecl :: Parser Packet -> Parser Packet+payloadDecl f = do+ symbol "payload"+ p <- payloadPkt f+ return (PPayload p)++payloadWrite :: Payload -> Put+payloadWrite p = do+ let bs = B.replicate (fromIntegral $ payloadLength p)+ (fromIntegral $ payloadPattern p)+ putLazyByteString bs++instance PacketWriteable Payload where packetWrite p _ _ = payloadWrite p+
+ src/Ppp.hs view
@@ -0,0 +1,94 @@+{-# LANGUAGE CPP #-}+module Ppp where++import Data.Binary.Put+import qualified Data.ByteString.Lazy as B+import Text.ParserCombinators.Parsec+import Text.ParserCombinators.Parsec.Perm++import Util+import Packet+import Lexer++#ifdef HRWS_TEST+import Debug.Trace+import Test.QuickCheck hiding ((.&.))+import Test.Framework (Test)+import Test.Framework.Providers.QuickCheck2 (testProperty)+import Text.Printf+#endif++parsePppPkt :: Parser Packet -> Parser PppPkt+parsePppPkt f = permute+ (tuple <$?> (0xff, parseIntAttribute "address")+ <|?> (0x03, parseIntAttribute "control")+ <|?> (0x0021, parseIntAttribute "protocol")+ <|?> ([PPayload defaultPayload], parsePayload f))+ where+ tuple a c prot = PppPkt (Ppp a c prot)+++pppDecl :: Parser Packet -> Parser Packet+pppDecl f = do+ symbol "ppp"+ g <- parsePppPkt f+ return (PPpp g)++pppWriteHdr :: Ppp -> Put+pppWriteHdr p = do+ putWord8 (pppAddress p)+ putWord8 (pppControl p)+ putWord16be (pppProtocol p)++pppWrite :: Ppp -> Maybe Packet -> B.ByteString -> Put+pppWrite h _ bs = do+ pppWriteHdr h+ putLazyByteString bs++instance PacketWriteable PppPkt where packetWrite p = pppWrite (pppPktHeader p)+++#ifdef HRWS_TEST+{- Unit Tests -}++instance Arbitrary Ppp where+ arbitrary = do+ a <- arbitrary+ c <- arbitrary+ p <- arbitrary+ return (Ppp a c p)++testValidParse :: String -> (Ppp -> Bool) -> Bool+testValidParse str fn =+ case parse (dummyParsePacket pppDecl) "packet parse" str of+ Left err -> trace (show err) False+ Right val -> fn $ testPppPkt val++testPppDefault :: () -> Bool+testPppDefault _ = let cmp f = defaultPpp == f in+ testValidParse "(ppp)" cmp++testPppPkt :: Packet -> Ppp+testPppPkt (PPpp f) = pppPktHeader f+testPppPkt _ = error "Unexpected packet type"++testPppPacket :: Ppp -> Bool+testPppPacket pkt =+ let cmp p = pkt == p in+ testValidParse (printf "(ppp address=%d control=%d protocol=%d)" (pppAddress pkt)+ (pppControl pkt) (pppProtocol pkt)) cmp++testPppWrite :: () -> Bool+testPppWrite _ =+ let expPkt = B.pack [0xff, 0x03, 0xca, 0xfe] in+ let cmp p = runPut (pppWrite p Nothing B.empty) == expPkt in+ testValidParse "(ppp address=0xff protocol=0xcafe)" cmp++pppTests :: [Test]+pppTests = [+ testProperty "PPP: Default Packet" testPppDefault,+ testProperty "PPP: Packet" testPppPacket,+ testProperty "PPP: Write" testPppWrite+ ]+#endif+
+ src/PseudoSum.hs view
@@ -0,0 +1,23 @@+module PseudoSum where++import Data.Binary.Put+import qualified Data.ByteString.Lazy as BL+import Data.Maybe+import Data.Word++import IPv4+import IPv6+import Packet+import Util++genPseudoSum :: Maybe Packet -> Word16 -> Word32+genPseudoSum mp _ | isNothing mp = 0+genPseudoSum mp l =+ case fromJust mp of+ (PIPv4 ipv4) -> csumAdd (BL.unpack $ runPut $+ pseudoIpv4Write (ipv4PktHeader ipv4) l) 0+ (PIPv6 ipv6) -> csumAdd (BL.unpack $ runPut $+ pseudoIpv6Write (ipv6PktHeader ipv6) l) 0+ _ -> 0++
+ src/Run.hs view
@@ -0,0 +1,42 @@++import System.Environment+import qualified Data.ByteString.Lazy as BL+import Data.Binary.Put+import System.Console.GetOpt++import Parser+import SerializePcap++data Flag = Input String | Output String deriving Show++options :: [OptDescr Flag]+options = [+ Option "i"["input"] (ReqArg Input "FILE") "Input File name , e.g. example.pkt",+ Option "o" ["output"] (ReqArg Output "FILE") "Output File name, e.g out.pcap"+ ]++getInput :: [Flag] -> String+getInput [] = error "Specify input file with '-i <file name>'"+getInput (Input i:_) = i+getInput (_:xs) = getInput xs++getOutput :: [Flag] -> String+getOutput [] = error "Specify output file with '-o <file name>'"+getOutput (Output o:_) = o+getOutput (_:xs) = getOutput xs++main :: IO ()+main = do++ args <- getArgs+ let ( actions, _, _ ) = getOpt RequireOrder options args+ let input = getInput actions+ let output = getOutput actions++ pktfile <- readFile input+ let pkts = readPacket pktfile+ + --sequence_ (map (BL.putStr . runPut . packetWrite) pkts)+ (BL.writeFile output . runPut . pcapWrite) pkts+ -- print pkts+
+ src/SerializePcap.hs view
@@ -0,0 +1,114 @@+module SerializePcap (pcapWrite) where++import Data.Binary.Put+import qualified Data.ByteString.Lazy as BL+import Data.Word++import Ethernet()+import Fragv6()+import Gre()+import Gtp()+import HexPayload()+import HopByHop()+import Icmp()+import IcmpV6()+import IPv4()+import IPv6()+import L2tp()+import Packet+import PadN()+import Ppp()+import Payload()+import Tcp()+import Teredo+import Udp()++data PcapFileHdr = PcapFileHdr {+ pcapFileHdrMagic :: !Word32,+ pcapFileHdrMajVer :: !Word16,+ pcapFileHdrMinVer :: !Word16,+ pcapFileHdrTsZone :: !Word32,+ pcapFileHdrSigFigs :: !Word32,+ pcapFileHdrSnapLen :: !Word32,+ pcapFileHdrLink :: !Word32+}++data PcapPktHdr = PcapPktHdr {+ pcapPktHdrTsSec :: !Word32,+ pcapPktHdrTsUsec :: !Word32,+ pcapPktHdrIncLen :: !Word32,+ pcapPktHdrOrgLen :: !Word32+}+++pcapFileWrite :: PcapFileHdr -> Put+pcapFileWrite f = do+ putWord32host $ pcapFileHdrMagic f+ putWord16host $ pcapFileHdrMajVer f+ putWord16host $ pcapFileHdrMinVer f+ putWord32host $ pcapFileHdrTsZone f+ putWord32host $ pcapFileHdrSigFigs f+ putWord32host $ pcapFileHdrSnapLen f+ putWord32host $ pcapFileHdrLink f++mkPcapFile :: PcapFileHdr+mkPcapFile = PcapFileHdr {+ pcapFileHdrMagic = 0xa1b2c3d4,+ pcapFileHdrMajVer = 2,+ pcapFileHdrMinVer = 4,+ pcapFileHdrTsZone = 0,+ pcapFileHdrSigFigs = 0,+ pcapFileHdrSnapLen = 1600,+ pcapFileHdrLink = 1 }+++packPayloadCarried :: PayloadCarrier a => a -> Maybe Packet -> BL.ByteString+packPayloadCarried a mp = let ps = payloadCarried a in+ if ps == [] then BL.empty+ else BL.concat $ map (\ pl -> runPut (pcapPacketWrite pl mp)) ps++pcapPktHeaderWrite :: PcapPktHdr -> Put+pcapPktHeaderWrite p = do+ putWord32host $ pcapPktHdrTsSec p+ putWord32host $ pcapPktHdrTsUsec p+ putWord32host $ pcapPktHdrIncLen p+ putWord32host $ pcapPktHdrOrgLen p++pcapWriteEntry :: Packet -> Word32 -> Word32 -> Put+pcapWriteEntry pkt s us = do+ let bs = runPut $ pcapPacketWrite pkt Nothing+ let l = fromIntegral $ BL.length bs+ let ph = PcapPktHdr s us l l+ pcapPktHeaderWrite ph+ putLazyByteString bs++pcapPacketWrite :: Packet -> Maybe Packet -> Put+pcapPacketWrite (PEth p) mp = packetWrite p mp $ packPayloadCarried p mp+pcapPacketWrite (PFragv6 p) mp = packetWrite p mp $ packPayloadCarried p mp+pcapPacketWrite (PGtp p) mp = packetWrite p mp $ packPayloadCarried p mp+pcapPacketWrite (PGre p) mp = packetWrite p mp $ packPayloadCarried p mp+pcapPacketWrite (PHexPayload p) mp = packetWrite p mp BL.empty+pcapPacketWrite (PHopByHop p) mp = packetWrite p mp $ packPayloadCarried p mp+pcapPacketWrite (PIcmp p) mp = packetWrite p mp $ packPayloadCarried p mp+pcapPacketWrite (PIcmpV6 p) mp = packetWrite p mp $ packPayloadCarried p mp+pcapPacketWrite (PIPv4 p) _ = packetWrite p Nothing $ packPayloadCarried p $ Just (PIPv4 p)+pcapPacketWrite (PIPv6 p) _ = packetWrite p Nothing $ packPayloadCarried p $ Just (PIPv6 p)+pcapPacketWrite (PL2tp p) mp = packetWrite p mp $ packPayloadCarried p mp+pcapPacketWrite (PPayload p) mp = packetWrite p mp BL.empty+pcapPacketWrite (PPadN p) mp = packetWrite p mp $ packPayloadCarried p mp+pcapPacketWrite (PPpp p) mp = packetWrite p mp $ packPayloadCarried p mp+pcapPacketWrite (PTcp p) mp = packetWrite p mp $ packPayloadCarried p mp+pcapPacketWrite (PUdp p) mp = packetWrite p mp $ packPayloadCarried p mp+pcapPacketWrite (PTeredo p) mp = do -- no auth and org support yet+ let ph = teredoPktHeader p+ let pl = maybe (teredoPktPayload p)+ (fixTeredoAddresses (teredoFixSrc ph) (teredoFixDst ph)+ (teredoPktPayload p)) mp+ let bs = runPut (pcapPacketWrite pl mp)+ putLazyByteString bs++pcapWrite :: [Packet] -> Put+pcapWrite pkts = do+ pcapFileWrite mkPcapFile+ mapM_ (\ p -> pcapWriteEntry p 0 1) pkts+
+ src/Tcp.hs view
@@ -0,0 +1,177 @@+{-# LANGUAGE CPP #-}+module Tcp where++import Control.Monad+import Data.Binary.Put+import Data.Bits+import qualified Data.ByteString.Lazy as B+import Data.Word+import Text.ParserCombinators.Parsec+import Text.ParserCombinators.Parsec.Perm++import Packet+import Lexer+import PseudoSum+import Util++#ifdef HRWS_TEST+import Debug.Trace+import Test.QuickCheck hiding ((.&.))+import Test.Framework (Test)+import Test.Framework.Providers.QuickCheck2 (testProperty)+#endif++finFlag :: Word16+finFlag = 0x0001 :: Word16+synFlag :: Word16+synFlag = 0x0002 :: Word16+rstFlag :: Word16+rstFlag = 0x0004 :: Word16+pshFlag :: Word16+pshFlag = 0x0008 :: Word16+ackFlag :: Word16+ackFlag = 0x0010 :: Word16+urgFlag :: Word16+urgFlag = 0x0020 :: Word16+ecneFlag :: Word16+ecneFlag = 0x0040 :: Word16+cwrFlag :: Word16+cwrFlag = 0x0080 :: Word16++parseTcpFlag :: String -> Word16 -> Parser Word16+parseTcpFlag s f = do+ reserved s+ return f+++parseTcpPkt :: Parser Packet -> Parser TcpPkt+parseTcpPkt f = permute+ (tuple <$?> (7, try $ parseIntAttribute "src")+ <|?> (7, parseIntAttribute "dst")+ <|?> (0, try $ parseIntAttribute "seqno")+ <|?> (0, try $ parseIntAttribute "ackno")+ <|?> (0, try $ parseIntAttribute "flags")+ <|?> (0xffff, parseIntAttribute "win")+ <|?> (0, try $ parseIntAttribute "csum")+ <|?> (0, try $ parseIntAttribute "urgno")+ <|?> (20, parseIntAttribute "offset") -- in bytes+ <|?> (0x0, try $ parseTcpFlag "fin" finFlag)+ <|?> (0x0, try $ parseTcpFlag "syn" synFlag)+ <|?> (0x0, parseTcpFlag "rst" rstFlag)+ <|?> (0x0, parseTcpFlag "psh" pshFlag)+ <|?> (0x0, try $ parseTcpFlag "ack" ackFlag)+ <|?> (0x0, try $ parseTcpFlag "urg" urgFlag)+ <|?> (0x0, parseTcpFlag "ecne" ecneFlag)+ <|?> (0x0, try $ parseTcpFlag "cwr" cwrFlag)+ <|?> (True, try $ parseBoolAttribute "fixcsum")+ <|?> (0x0, try $ parseIntAttribute "wsc")+ <|?> (0x0, try $ parseIntAttribute "ts")+ <|?> ([PPayload (Payload 0 0)], parsePayload f))+ where+ tuple s d sq ack fl win c u hl ff sf rf pf af uf ef cf fc wsc ts =+ TcpPkt (Tcp s d sq ack+ (fl .|. ff .|. sf .|. rf .|. af .|. pf .|. uf .|. ef .|.+ cf .|. (fromIntegral hl `shiftL` 10))+ win c u hl fc wsc ts)++tcpDecl :: Parser Packet -> Parser Packet+tcpDecl f = do+ symbol "tcp"+ u <- parseTcpPkt f+ return (PTcp u)++tcpWriteHdr :: Tcp -> Put+tcpWriteHdr p = do+ putWord16be (tcpSrc p)+ putWord16be (tcpDst p)+ putWord32be (tcpSeqNo p)+ putWord32be (tcpAckNo p)+ putWord16be (tcpFlags p)+ putWord16be (tcpWin p)+ putWord16be (tcpCsum p)+ putWord16be (tcpUrg p)+ when (tcpWindowScale p /= 0) $+ do+ putWord8 3; -- Kind = Window Scale+ putWord8 3; -- Len = 3+ putWord8 (tcpWindowScale p); -- Shift Count+ putWord8 0; -- End of Option List++ when (tcpTimeStamp p /= 0) $+ do+ putWord8 8 -- Kind = timestamp+ putWord8 10 -- len = 10+ putWord64be (tcpTimeStamp p)+ putWord8 1 -- no option+ putWord8 0 -- end of option list++tcpWrite :: Tcp -> Maybe Packet -> B.ByteString -> Put+tcpWrite h mp bs = do+ let len = shiftR (tcpFlags h) 12 * 4 + fromIntegral (B.length bs)+ let csum = if tcpCorrectCsum h+ then let sum32 = csumAdd (B.unpack $ runPut $ tcpWriteHdr h) $ genPseudoSum mp len in+ csumFin $ csumAdd (B.unpack bs) sum32+ else tcpCsum h+ tcpWriteHdr h {tcpCsum = csum}+ putLazyByteString bs++instance PacketWriteable TcpPkt where packetWrite p = tcpWrite (tcpPktHeader p)++#ifdef HRWS_TEST+{- Unit Tests -}+++instance Arbitrary Tcp where+ arbitrary = do+ src <- arbitrary+ dst <- arbitrary+ sq <- arbitrary+ ack <- arbitrary+ flags <- arbitrary+ win <- arbitrary+ csum <- arbitrary+ urg <- arbitrary+ return (Tcp src dst sq ack flags win csum urg 0 True 0 0)++testValidParse :: String -> (Tcp -> Bool) -> Bool+testValidParse str fn =+ case parse (dummyParsePacket tcpDecl) "packet parse" str of+ Left err -> trace (show err) False+ Right val -> fn $ testTcpPkt val++testTcpPkt :: Packet -> Tcp+testTcpPkt (PTcp p) = tcpPktHeader p+testTcpPkt _ = error "Unexpected packet type"++testTcpDefault :: () -> Bool+testTcpDefault _ = let cmp f = defaultTcp == f in+ testValidParse "(tcp)" cmp++testTcpPkt0 :: Tcp -> Bool+testTcpPkt0 p = let cmp f = p == f in+ testValidParse ("(tcp offset=0 src=" ++ show (tcpSrc p) ++ " dst=" ++ show (tcpDst p) +++ " seqno=" ++ show (tcpSeqNo p) ++ " ackno=" ++ show (tcpAckNo p) +++ " flags=" ++ show (tcpFlags p) ++ " win=" ++ show (tcpWin p) ++ " csum=" +++ show (tcpCsum p) ++ " urgno=" ++ show (tcpUrg p) ++ ")") cmp++testTcpWrite :: () -> Bool+testTcpWrite _ =+ let expPkt = B.pack [0x04, 0xd2, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0a,+ 0x00, 0x00, 0x03, 0xf1, 0x50, 0x11, 0xff, 0xff,+ 0x24, 0x7b, 0x00, 0x00] in+ let cmp p = runPut (tcpWrite p Nothing B.empty) == expPkt in+ testValidParse "(tcp src=1234 fin ack seqno=10 ackno=1009 csum=0x247b fixcsum=false)" cmp+++tcpTests :: [Test]+tcpTests = [+ testProperty "TCP: Default Packet" testTcpDefault,+ testProperty "TCP: Packet 0" testTcpPkt0,+ testProperty "TCP: Write" testTcpWrite+ ]++#endif++++
+ src/Teredo.hs view
@@ -0,0 +1,95 @@+{-# LANGUAGE CPP #-}+module Teredo where++import Text.ParserCombinators.Parsec+import Text.ParserCombinators.Parsec.Perm+import Data.Word+import Data.Bits++import Lexer+import Packet+import Util++#ifdef HRWS_TEST+import Debug.Trace+import Test.QuickCheck hiding ((.&.))+import Test.Framework (Test)+import Test.Framework.Providers.QuickCheck2 (testProperty)+import Text.Printf+#endif++parseTeredoPkt :: Parser Packet -> Parser TeredoPkt+parseTeredoPkt f = permute+ (tuple <$?> (True, try $ parseBoolAttribute "fixsrc")+ <|?> (True, try $ parseBoolAttribute "fixdst")+ <|?> (PPayload (Payload 0 0), f))+ where+ tuple fs fd =+ TeredoPkt (Teredo 0 0 0 0 0 0 False False fs fd)++teredoDecl :: Parser Packet -> Parser Packet+teredoDecl f = do+ symbol "teredo"+ u <- parseTeredoPkt f+ return (PTeredo u)++mkTeredoAddress :: Word32 -> Word16 -> IPv6Addr+mkTeredoAddress host port =+ let host' = complement host in+ let port' = fromIntegral $ complement port in+ IPv6Addr 0x20010000 0xcafebabe port' host'++fixTeredoAddresses :: Bool -> Bool -> Packet -> Packet -> Packet+fixTeredoAddresses False False p _ = p+fixTeredoAddresses s d (PIPv6 v6) (PIPv4 v4) =+ let (sp, dp) = case head (ipv4PktPayload v4) of+ PUdp u -> (udpSrc $ udpPktHeader u, udpDst $ udpPktHeader u)+ _ -> error "Need a UDP header to generate teredo addresses" in+ PIPv6 v6 {ipv6PktHeader =+ (ipv6PktHeader v6) {ipv6Src = if s then mkTeredoAddress (ipv4Src $ ipv4PktHeader v4) sp+ else ipv6Src $ ipv6PktHeader v6,+ ipv6Dst = if d then mkTeredoAddress (ipv4Dst $ ipv4PktHeader v4) dp+ else ipv6Dst $ ipv6PktHeader v6}}+fixTeredoAddresses _ _ p _ = p++++#ifdef HRWS_TEST+{- Unit Tests -}++instance Arbitrary Teredo where+ arbitrary = do+ fs <- arbitrary+ fd <- arbitrary+ return (Teredo 0 0 0 0 0 0 False False fs fd)++testValidParse :: String -> (Teredo -> Bool) -> Bool+testValidParse str fn =+ case parse (dummyParsePacket teredoDecl) "packet parse" str of+ Left err -> trace (show err) False+ Right val -> fn $ testTeredoPkt val++testTeredoDefault :: () -> Bool+testTeredoDefault _ = let cmp f = defaultTeredo == f in+ testValidParse "(teredo)" cmp++testTeredoPkt :: Packet -> Teredo+testTeredoPkt (PTeredo f) = teredoPktHeader f+testTeredoPkt _ = error "Unexpected packet type"++testTeredoPacket :: Teredo -> Bool+testTeredoPacket pkt =+ let cmp p = pkt == p in+ testValidParse (printf "(teredo fixsrc=%s fixdst=%s)"+ (showBool (teredoFixSrc pkt))+ (showBool (teredoFixDst pkt))) cmp++teredoTests :: [Test]+teredoTests = [+ testProperty "Teredo: Default Packet" testTeredoDefault,+ testProperty "Teredo: Packet" testTeredoPacket+ ]+#endif+++
+ src/Udp.hs view
@@ -0,0 +1,123 @@+{-# LANGUAGE CPP #-}+module Udp where++import Data.Binary.Put+import qualified Data.ByteString.Lazy as B+import Data.Word++import Text.ParserCombinators.Parsec+import Text.ParserCombinators.Parsec.Perm++import Lexer+import Packet+import PseudoSum+import Util++#ifdef HRWS_TEST+import Debug.Trace+import Test.QuickCheck hiding ((.&.))+import Test.Framework (Test)+import Test.Framework.Providers.QuickCheck2 (testProperty)+#endif++parseUdpSrc :: Parser Word16+parseUdpSrc = parseIntAttribute "src"++parseUdpDst :: Parser Word16+parseUdpDst = parseIntAttribute "dst"++parseUdpLen :: Parser Word16+parseUdpLen = parseIntAttribute "len"++parseUdpCsum :: Parser Word16+parseUdpCsum = parseIntAttribute "csum"++parseUdpFixCsum :: Parser Bool+parseUdpFixCsum = parseBoolAttribute "fixcsum"++parseUdpPkt :: Parser Packet -> Parser UdpPkt+parseUdpPkt f = permute+ (tuple <$?> (7, parseUdpSrc)+ <|?> (7, parseUdpDst)+ <|?> (8, parseUdpLen)+ <|?> (0, parseUdpCsum)+ <|?> ([PPayload defaultPayload], parsePayload f)+ <|?> (True, parseUdpFixCsum))+ where+ tuple s d l c p fc = UdpPkt (Udp s d l c fc) p++udpDecl :: Parser Packet -> Parser Packet+udpDecl f = do+ symbol "udp"+ u <- parseUdpPkt f+ return (PUdp u)++udpWriteHdr :: Udp -> Put+udpWriteHdr p = do+ putWord16be (udpSrc p)+ putWord16be (udpDst p)+ putWord16be (udpLen p)+ putWord16be (udpCsum p)++udpWrite :: Udp -> Maybe Packet -> B.ByteString -> Put+udpWrite h mp bs = do+ let ulen = fromIntegral $ 8 + B.length bs+ let hdr = h {udpLen = ulen}+ let csum = if udpCorrectCsum hdr+ then+ let sum32 = csumAdd (B.unpack $ runPut $ udpWriteHdr hdr) $ genPseudoSum mp ulen in+ csumFin $ csumAdd (B.unpack bs) sum32+ else udpCsum hdr+ udpWriteHdr hdr {udpCsum = csum}+ putLazyByteString bs++instance PacketWriteable UdpPkt where packetWrite p = udpWrite (udpPktHeader p)++#ifdef HRWS_TEST+{- Unit Tests -}++instance Arbitrary Udp where+ arbitrary = do+ src <- arbitrary+ dst <- arbitrary+ len <- arbitrary+ csum <- arbitrary+ return (Udp src dst len csum True)++testValidParse :: String -> (Udp -> Bool) -> Bool+testValidParse str fn =+ case parse (dummyParsePacket udpDecl) "packet parse" str of+ Left err -> trace (show err) False+ Right val -> fn $ testUdpPkt val++testUdpPkt :: Packet -> Udp+testUdpPkt (PUdp p) = udpPktHeader p+testUdpPkt _ = error "Unexpected packet type"++testUdpDefault :: () -> Bool+testUdpDefault _ = let cmp f = defaultUdp == f in+ testValidParse "(udp)" cmp+++testUdpPkt0 :: Udp -> Bool+testUdpPkt0 u = let cmp p = u == p in+ testValidParse ("(udp src=" ++ show (udpSrc u) ++ " dst=" ++ show (udpDst u) ++ " len=" +++ show (udpLen u) ++ " csum=" ++ show (udpCsum u) ++ " fixcsum=true)") cmp++testUdpWrite :: () -> Bool+testUdpWrite _ =+ let expPkt = B.pack [0x00, 0x08, 0x00, 0x07, 0x00, 0x08, 0xff, 0xc0] in+ let cmp p = runPut (udpWrite p Nothing B.empty) == expPkt in+ testValidParse "(udp dst=7 src=8 len=8 csum=0xffc0 fixcsum=false)" cmp++udpTests :: [Test]+udpTests = [+ testProperty "UDP: default" testUdpDefault,+ testProperty "UDP: Pkt0" testUdpPkt0,+ testProperty "UDP: Write" testUdpWrite+ ]++#endif+++
+ src/Util.hs view
@@ -0,0 +1,93 @@+{-# LANGUAGE CPP #-}++module Util where+import Data.Word+import Data.Bits+import Packet+import Text.ParserCombinators.Parsec++import Lexer++csumAdd :: [Word8] -> Word32 -> Word32+csumAdd [] s = s+csumAdd [a] s = s + fromIntegral a+csumAdd (a:b:as) s =+ let s' = s + shiftL (fromIntegral b) 8 + fromIntegral a in+ csumAdd as s'++csumFin :: Word32 -> Word16+csumFin s =+ let s' = shiftR s 16 + (.&.) s 0xffff in+ let s'' = fromIntegral (complement $ shiftR s' 16 + s') in+ shiftL s'' 8 .|. shiftR s'' 8+++parseBoolAttribute :: String -> Parser Bool+parseBoolAttribute s = do+ symbol s+ symbol "="+ do { symbol "true"; return True} <|> do { symbol "false"; return False}++parseIntAttribute :: Num b => String -> Parser b+parseIntAttribute s = do+ symbol s+ symbol "="+ a <- integer+ whiteSpace+ return (fromIntegral a)++ipv4AddressDecl :: Parser Word32+ipv4AddressDecl = do+ a0 <- integer+ char '.'+ a1 <- integer+ char '.'+ a2 <- integer+ char '.'+ a3 <- integer+ let a = a0 `shiftL` 24 .|. a1 `shiftL` 16 .|. a2 `shiftL` 8 .|. a3+ return (fromIntegral a)++parseIPv4Address :: String -> Parser Word32+parseIPv4Address s = do+ symbol s+ symbol "="+ a <- ipv4AddressDecl+ whiteSpace+ return a++showIPv4Address :: Word32 -> String+showIPv4Address ip =+ let a0 = ip `shiftR` 24 in+ let a1 = ip `shiftR` 16 .&. 0xff in+ let a2 = ip `shiftR` 8 .&. 0xff in+ let a3 = ip .&. 0xff in+ show a0 ++ "." ++ show a1 ++ "." ++ show a2 ++ "." ++ show a3++parsePacketList :: Parser Packet -> Parser [Packet]+parsePacketList f = do+ whiteSpace+ char '{'+ pls <- commaSep f+ char '}'+ whiteSpace+ return pls++parsePayload :: Parser Packet -> Parser [Packet]+parsePayload f =+ try (parsePacketList f) <|> do { p <- f; return [p]}++#ifdef HRWS_TEST++dummyParsePacket :: (Parser Packet -> Parser Packet) -> Parser Packet+dummyParsePacket f= do+ char '('+ p <- f (dummyParsePacket f)+ char ')'+ return p++showBool :: Bool -> String+showBool True = "true"+showBool False = "false"++#endif
+ tests/Qt.hs view
@@ -0,0 +1,47 @@+{-# LANGUAGE CPP#-}+++import Test.Framework (Test, defaultMain)++import Ethernet+import Fragv6+import Gre+import Gtp+import HexPayload+import HopByHop+import Icmp+import IcmpV6+import IPv4+import IPv6+import L2tp+import PadN+import Parser+import Ppp+import Tcp+import Teredo+import Udp++main :: IO ()+main = defaultMain tests++tests ::[Test]+tests =+ ethTests +++ fragv6Tests +++ greTests +++ gtpTests +++ hexPayloadTests +++ hopByHopTests +++ icmpTests +++ icmpV6Tests +++ ipv4Tests +++ ipv6Tests +++ l2tpTests +++ padNTests +++ parserTests +++ pppTests +++ tcpTests +++ teredoTests +++ udpTests++