copy from intranet.
This commit is contained in:
379
docs/CHANGELOG
Normal file
379
docs/CHANGELOG
Normal file
@@ -0,0 +1,379 @@
|
||||
$Id: CHANGELOG 2449 2010-04-04 06:39:38Z aturner $
|
||||
|
||||
04/04/2010 Version 3.4.4
|
||||
- Set default timing method to either gtod or abstime (#404)
|
||||
- Fix IPv6 parsing of CIDR's (#405)
|
||||
- Add support for preloading the memory cache (#410)
|
||||
- Generate more useful error when packets are too small (#411)
|
||||
- Update to libopts/Autogen 5.9.9 (#412)
|
||||
- Ship Win32Readme.txt file (#413)
|
||||
- Update copyright notice to 2010 (#416)
|
||||
- Dramatically enhance --portmap option (#417)
|
||||
- Update autotools (#423)
|
||||
- Add support for printing statistics periodically during the run (#424)
|
||||
- Warn user when pcap snaplen < 65535 (#425)
|
||||
- Add 802.1q processing support tcpprep (#428)
|
||||
|
||||
06/25/2009: Version 3.4.3
|
||||
- Link libnl when newer versions of libpcap require it (#397)
|
||||
- Ship m4 directory (#398)
|
||||
- Upgrade to latest autotools scripts (#400)
|
||||
- Fix error message when running autogen.sh (#401)
|
||||
|
||||
05/20/2009: Version 3.4.2
|
||||
- Added extensive IPv6 support to tcprewrite & tcpreplay-edit (#11)
|
||||
- Add IPv6 fragroute support (#388)
|
||||
- Add IPv6 decoding support to tcpprep (#11)
|
||||
- Fix compile time error in err.h (#390)
|
||||
- Add --endpoints support in tcpreplay-edit (#393)
|
||||
|
||||
02/18/2009: Version 3.4.1
|
||||
- Sendpacket method did not match documentation (#361)
|
||||
- Fix compile issue on systems without err.h (#363)
|
||||
- Fix tcpprep --mac not processing non-IPv4 packets (#369)
|
||||
- Always build tcpreplay w/ editing features as tcpreplay-edit (#372)
|
||||
- Fix potential tcpbridge issues under OS X & *BSD (#373)
|
||||
- Fix crash on 4 byte strictly aligned systems (#377)
|
||||
- Add MTU truncation to tcprewrite/tcpreplay-edit (#379)
|
||||
|
||||
01/15/2009: Version 3.4.0
|
||||
- Add libdnet and remove libnet support for sending packets (#302)
|
||||
- Fix numerous 802.11 decoder bugs (#325)
|
||||
- Fix compile issue under Linux (#326)
|
||||
- Fix Mbps/sec nonsense (#327)
|
||||
- Fix tcprewrite crash when packets have no L3+ data (#328)
|
||||
- Clean up err.c/err.h code and improve performance for non-debug builds (#331)
|
||||
- Fix timesdiv() timer code (#332)
|
||||
- Improve high-performance packet sending via multiple packets/interval (#334)
|
||||
- Fix statistics report errors (#335)
|
||||
- Fix BPF filters not being used in tcpbridge (#336)
|
||||
- Improve tcpbridge performance (#337)
|
||||
- Only use two libpcap handles for tcpbridge (#338)
|
||||
- Fix autotools usage errors (#340)
|
||||
- Clean up 'make test' results (#341)
|
||||
- Update to AutoGen/AutoOpts 5.9.7 (#342)
|
||||
- Fix compiler warnings from GCC 4.2 (#344)
|
||||
- Fix numerous memory corruption bugs in libtcpedit DLT plugin code (#345)
|
||||
- Add support for editing IPv4 TOS/DiffServ/ECN (#348)
|
||||
- Update autotools to more recent versions (#349)
|
||||
- Report injection method via -V (#352)
|
||||
- Fix DLT_USER l2len check bug (#353)
|
||||
- Replace man2html w/ groff (#354)
|
||||
- Fix false pcap_inject() detection under Windows/Winpcap (#355)
|
||||
- tcpbridge now builds under Win32/Cygwin
|
||||
- libdnet is no longer an option for Win32/Cygwin (#57)
|
||||
- tcpbridge now supports --listnics (#357)
|
||||
|
||||
06/20/2008: Version 3.3.2
|
||||
- Fix (again) tcpbridge --unidir assert error (#308)
|
||||
- Fix tcpbridge bug where all packets that were sent were all zeros
|
||||
- Fix tcpbridge not honoring --include/exclude flags (#311)
|
||||
- Fix ip_in_cidr() debug messages (#312)
|
||||
- Report packets which have timestamps which go backwards in time (#315)
|
||||
- Clean up --sleep-accel code to use options struct (#316)
|
||||
- Remove really old and out of date RPM .spec file (#317)
|
||||
- Warn when sending on non-Ethernet interface (#318)
|
||||
- Re-enable tcpreplay --listnics (#319)
|
||||
- Fix sendpacket always reporting using PF_PACKET, even when it doesn't (#322)
|
||||
- Fix major packet timing issue under old versions of glibc (#324)
|
||||
|
||||
05/17/2008: Version 3.3.1
|
||||
- Fix limitation of PF_PACKET only supporting Ethernet (#123)
|
||||
- Fix (again) /dev/bpf detection in FreeBSD 8.0 (#292)
|
||||
- Document building code from Subversion under Cygwin (#304)
|
||||
- Fix --enable-force-* under Linux (#305)
|
||||
- Fix tcpbridge --unidir assert error (#308)
|
||||
|
||||
05/04/2008: Version 3.3.0
|
||||
- Improve tcpreplay timing accuracy between packets (#41)
|
||||
- Add tcprewrite fragroute support (#42)
|
||||
- Fix tcprewrite --efcs option (#277)
|
||||
- Updated Win32/Cygwin documentation (#280)
|
||||
- Add dmalloc support (#282)
|
||||
- Fix tcpprep broken handling of VLAN tagged frames (#290)
|
||||
- Fix tcprewrite crash when cache file has NO_SEND packets (#291)
|
||||
- Fix /dev/bpf detection in FreeBSD 8.0 (#292)
|
||||
- Add tcprewrite --ttl editing option (#294)
|
||||
- Fix autoconf AM_PROG_CC_C_O warning (#295)
|
||||
- Add tcpprep --reverse option to split by matching client addresses (#297)
|
||||
- Update version of autoconf to 1.10.1 (#298)
|
||||
- Improved GNU Autogen detection and warnings (#299)
|
||||
- Track EAGAIN errors separately from ENOBUFS (#301)
|
||||
- Automatically detect Winpcap on Cygwin (#303)
|
||||
|
||||
01/23/2008: Version 3.2.5
|
||||
- Fix linker error with --enable-tcpreplay-edit and --enable-dynamic-link (#288)
|
||||
- Fix compile errors with Sun Studio compiler (#286)
|
||||
|
||||
01/16/2008: Version 3.2.4
|
||||
- Fix crash in tcpreplay when --enable-tcpreplay-edit (#281)
|
||||
- Display if --enable-tcpreplay-edit in -V (#283)
|
||||
|
||||
11/01/2007: Version 3.2.3
|
||||
- Fix compile issue under Linux and other OS's (#275)
|
||||
|
||||
10/31/2007: Version 3.2.2
|
||||
- Enable source MAC spoofing for OS X (#142, #151)
|
||||
* Tcpreplay now requires OS X 10.5 (Leopard)
|
||||
- Fix crash/memory access error with tcpreplay -N (#273)
|
||||
|
||||
10/25/2007: Version 3.2.1
|
||||
- Fix tcprewrite segfault in 'make test' under Linux (#200)
|
||||
- Major performance improvement in tcpprep for large pcaps (#261)
|
||||
- Fix strsignal already defined error under Cygwin/Windows (#199)
|
||||
- Fix compile errors for older versions of GCC (#201)
|
||||
- Remove flowreplay code (#262)
|
||||
- Fix DLT rewrite code causing corrupted ethernet protocol type (#268)
|
||||
- Try to fix inet_aton() issue under Solaris (#260)
|
||||
|
||||
08/26/2007: Version 3.2
|
||||
- Return a more useful error message when tcpprep fails (#187)
|
||||
- Add Tomahawk test tool client/server detection algorithm (#186)
|
||||
- Improved AutoGen support (#191)
|
||||
- Improved documentation (#164, #198)
|
||||
- Added Doxygen markup (#176)
|
||||
- configure now honors --with-tcpdump flag (#192)
|
||||
- configure now defaults to --enable-64bits which breaks backwards
|
||||
compatibility in certain situations. Use --disable-64bits if this
|
||||
concerns you (#195)
|
||||
- Use safe_free() to detect bugs earlier in development (#197)
|
||||
|
||||
07/19/2007: Version 3.1.1
|
||||
- Upgrade libopts tearoff to 29:0:4 so that everyone else in the world can
|
||||
compile tcpreplay (#189)
|
||||
|
||||
07/18/2007: Version 3.1.0
|
||||
- Add tcprewrite --srcmap & --dstmap for rewriting only source or destination IP's (#185)
|
||||
- ./configure now reports configuration at end (#155)
|
||||
- Fix svn:keywords (#160)
|
||||
- Optimize performance of dlt_en10mb plugin (#161)
|
||||
- Performance improvements on strictly aligned systems (#162)
|
||||
- Improve tcpprep error messages and handling (#163)
|
||||
- Add support for warnings in libtcpedit (#165)
|
||||
- Only use __attribute__((unused)) w/ GCC (#168)
|
||||
- Fix compile issues under Solaris (#178)
|
||||
- Gracefully handle systems w/o static libraries (#179)
|
||||
- Fix segfault when using BPF filters (#182)
|
||||
- Add additional DLT Plugins:
|
||||
- 802.11 (#103)
|
||||
- 802.11 w/ Radiotap (#177)
|
||||
|
||||
05/01/2007: Version 3.0.1
|
||||
- Stop tcpreplay causing OS X WiFi from disassociating (#167)
|
||||
- --pnat incorrectly matched all IP addresses (#170)
|
||||
- Fix serious memory leak in core common library (#175)
|
||||
- Fix tcprewrite --enet-vlan on little endian systems (#174)
|
||||
- Bad pcap timestamps were causing excessive delays (#169)
|
||||
- Code cleanup (#173)
|
||||
|
||||
04/20/2007: Version 3.0
|
||||
- By default, no longer try to use libnet. You must now specify --enable-libnet (#148)
|
||||
- Improve documentation (#30)
|
||||
- General code cleanup (#47)
|
||||
- Warn when GNU Autogen version < 5.9 (#153)
|
||||
- Remove support for pcap_snapshot_override which was never added to libpcap (#140)
|
||||
- Fix support for C99/GCC 4.3 "inline". Rely on -O3 for better performance. (#149)
|
||||
- Prioritize 64 bit libraries over 32 bit counterparts (#150)
|
||||
|
||||
04/14/2007: Version 3.0.RC1
|
||||
- Fix tcpbridge and make it compile by default (#15)
|
||||
- Fix tcprewrite crash on little-endian systems (#127)
|
||||
- Gracefully handle broken pcap files where the snaplen < caplen (#130)
|
||||
- Note: Fix was made in libpcap and will be part of 0.9.6
|
||||
- Fix numerous bugs with the sendpacket code (#137)
|
||||
- Add optional support for editing packets with tcpreplay (#61)
|
||||
- Fix 'make test' on little endian systems (#64)
|
||||
- tcprewrite -s is no longer endian dependent (#65)
|
||||
- /docs cleaned up (#66)
|
||||
- Fix detection/compile of libpcap. Now support versions >= 0.7.2 (#80, #144)
|
||||
- Add official support Cygwin/Win32 support (#110)
|
||||
- Clean up libpcap version code (#111)
|
||||
- Add support for interface alias names for Win32 (#113)
|
||||
- Warn user on DLT miss-match (#125)
|
||||
- Fix tcprewrite segfault with --fixlen=pad (#134)
|
||||
- Add loop/cache support for better performance (#136)
|
||||
- inline debugging code for better performance (#138)
|
||||
- configure now supports selecting injection method (#139)
|
||||
- Fix configure/compile errors under OpenBSD (#146)
|
||||
- Add tcpbridge --verbose mode (#28)
|
||||
- Fix compile issues under HP-UX & strictly aligned systems (#141)
|
||||
- --enable-dynamic-link supports 64bit libraries (#143)
|
||||
|
||||
|
||||
03/22/2007: Version 3.0.beta13
|
||||
- Fixed detection of IPv4 packets in libtcpedit on little-endian boxes (#115, #116)
|
||||
- Fixed TCP/UDP checksum calculation on little-endian boxes (#126)
|
||||
- Added --quiet flag to tcpreplay for Lothar (#109)
|
||||
- The --seed flag should now generate the same IPs on both little-endian & big-endian boxes (#65)
|
||||
- The --skipl2broadcast flag now works as documented (#112)
|
||||
- Adding L2 header for DLT_RAW encapsulated packets now works (#16)
|
||||
- Clean up documentation (#66, #75)
|
||||
- Start initial support for Win32 port (#110, #111)
|
||||
- Finish DLT plugin rewrite (#82)
|
||||
- Fix compile on systems without tcpdump installed
|
||||
|
||||
02/22/2007: Version 3.0.beta12
|
||||
- Fix compile under RH ES 3.x (gcc 3.2.2) (#79)
|
||||
- Fix compile on MIPS, ARM, HPPA, etc (#81, #88)
|
||||
- Rewrite L2/DLT code in tcpedit/tcprewrite to be plugin based (#82)
|
||||
- Create Ethernet Plugin (#99)
|
||||
- Create User Plugin (#100)
|
||||
- Create Cisco HDLC Plugin (#101)
|
||||
- Create DLT_LINUX_SLL Plugin (#102)
|
||||
- Create DLT_RAW Plugin (#104)
|
||||
- Create DLT_NULL Plugin (#105)
|
||||
- Create DLT_LOOP Plugin (#106)
|
||||
- Properly decode ethernet frames when they are VLAN tagged (#84)
|
||||
- Do not install man2html (#85)
|
||||
- Add configure --disable-libopts-install option (#86)
|
||||
- Enhance tcpreplay --oneatatime (#90)
|
||||
- libtcpedit can now return warnings & errors (#92)
|
||||
- Fix tcpprep --include/exclude (#96)
|
||||
- Upgrade AutoGen tearoff (libopts) to latest version (5.9.0) (#97)
|
||||
- Don't do L4 checksums for non-fragment offset == 0 (#107)
|
||||
|
||||
08/07/2006: Version 3.0.beta11
|
||||
- Fix distribution to ship missing src/tcpr.h (#73)
|
||||
- Add support to tcprewrite to alter output file DLT (#74)
|
||||
- Fix errors in 'make test' (little endian still broken) (#77)
|
||||
- Tweak Autogen .def files documentation (#78)
|
||||
|
||||
08/05/2006: Version 3.0.beta10
|
||||
- tcpprep & tcprewrite no longer require root access (#3)
|
||||
- Develop wrapper API for libnet, libpcap, BPF and PF_PACKET (#4, #24)
|
||||
- Enhance do_sleep() to support looping for better accuracy (#6)
|
||||
- Prefer inet_pton over older, deprecated routines (#26)
|
||||
- Remove libnet as a requirement (#29)
|
||||
- Optionally don't rewrite broadcast/multicast IP/MAC addresses (#38)
|
||||
- Remove libnids dependancy for flowreplay (#55)
|
||||
- Fix build issues when libpcapnav is installed (#56)
|
||||
- Fix truncate feature not putting correct packet length in IP header (#59)
|
||||
- Internal error reporting fixes in libtcpedit (#60)
|
||||
- Support --enable-debug when building under gcc 3.x (#62)
|
||||
- tcpedit_stub.h wasn't being generated automatically from SVN (#63)
|
||||
- Fix 'make doxygen' (#67)
|
||||
- Fix some Makefile issues (#68)
|
||||
- tcprewrite --endpoints should require a cache file (#70)
|
||||
- Improve IP randomizer code to be more random (#71)
|
||||
|
||||
07/17/2006: Version 3.0.beta9
|
||||
- Fix compile issue for users not having AutoOpts installed (#54)
|
||||
- Fix compile issue for users w/ AutoOpts 5.8.4 (upgrade to 5.8.4)
|
||||
|
||||
07/16/2006: Version 3.0.beta8
|
||||
- Fix -M running in MBps rather then Mbps
|
||||
- Fix tcpbridge segfault/bus error reported by Steven Z. (Gerry)
|
||||
- Improve tcpbridge man page
|
||||
- Massive tcprewrite fixes & cleanup (#50)
|
||||
- Much improved README document
|
||||
- Reorganize packet editing code into a standalone module (tcpedit)
|
||||
which has been librarized. (#5)
|
||||
- Strict code cleanup (#27)
|
||||
- Fix tcpprep from generating bad cache files (#48)
|
||||
- Add MAC split mode for tcpprep (#1)
|
||||
- Improve dbg() to list file/line (#32)
|
||||
- Add tcpprep statistical reports (#2)
|
||||
- Reorganize flowreplay code (#46)
|
||||
- Fix conflicting speed_t for Debian (#33)
|
||||
- Too many other things to document
|
||||
|
||||
08/07/2005: Version 3.0.beta7
|
||||
- New 'make doxygen' target builds pretty source code docs in
|
||||
docs/web/doxygen/html
|
||||
- Fix tcpprep auto/router mode which was sending all packets out the
|
||||
secondary interface
|
||||
- Fix endian issue on little-endian systems which made tcpprep think all
|
||||
packets were not IP
|
||||
- Improve debugability of tcpprep
|
||||
- Fix UDP header offset bug in flowreplay
|
||||
|
||||
06/28/2005: Version 3.0.beta6
|
||||
- Fix rpm .spec file which was still based on tcpreplay 2.x (untested)
|
||||
- Detect and manually include pcap-bpf.h which fixes compile problem
|
||||
- Fix tcprewrite -S crash with only one MAC
|
||||
- Fix tcpreplay using 2nd NIC split mode
|
||||
- Fix tcpreplay packet counter initialization
|
||||
- Fix tcpprep to properly handle missing -i and -c with -I and -P
|
||||
|
||||
06/14/2005: Version 3.0.beta5
|
||||
- Fix --decode flag
|
||||
- Fix compile under AMD64/RHEL4 where libraries are in /usr/lib64
|
||||
- tarball now ships with a full test subdir
|
||||
- Fix compile of src/common/get.c under strictly aligned architectures
|
||||
- Fix ./configure --enable-64bits flag
|
||||
- Fix bug on little endian systems which prevented tcprewrite from
|
||||
editing packets
|
||||
- Fix tcprewrite linktype checks
|
||||
- Add --pktlen for when the pcap snaplen lies to us
|
||||
- Add --enable-dynamic-link for those who want to dynamically link their
|
||||
libs
|
||||
|
||||
06/05/2005: Version 3.0.beta4
|
||||
- Really fix compile problems with dlt2desc with old versions of libpcap
|
||||
- All libraries are now statically linked and full-path #includes. This
|
||||
should fix problems with people who have different versions of
|
||||
libraries installed in different locations.
|
||||
- Fix problems compiling on systems with libpcapnav
|
||||
- Add support for libpcap 0.5 such as on OpenBSD
|
||||
- Fix tcpprep --verbose
|
||||
- Close STDIN prior to re-opening it for certain OS's
|
||||
|
||||
05/04/2005: Version 3.0.beta3
|
||||
- Fix autoconf problems with --with-libnet
|
||||
- Fix compile problems with dlt2desc with old versions of libpcap
|
||||
- Fix compile problem due to not shipping flowreplay_opts.h and
|
||||
tcpbridge_opts.h
|
||||
|
||||
04/19/2005: Version 3.0.beta2
|
||||
- Significant improvements to FAQ and manual
|
||||
- Use autoopts for flowreplay
|
||||
- Be more cautious about memcpy's
|
||||
- Fix numerous warnings during compile
|
||||
- Allow overriding L2 protocol field for DLT_RAW
|
||||
- tcpprep -I & -P now take the cache filename
|
||||
- Lots of cleanup
|
||||
- Added tcpbridge utility
|
||||
- Fix tcpreplay --mbps which was being interpreted as bps
|
||||
- Add --no-arg-comment feature for tcpprep
|
||||
- Improve auto-tests and fix old broken ones
|
||||
- Fix Makefile errors in the docs directory
|
||||
- Upgrade libopts tear off to v5.7pre12 which fixes problems with
|
||||
loading config files
|
||||
- Add support for forcing the use of the local libopts tearoff code
|
||||
|
||||
02/27/2005: Version 3.0.beta1
|
||||
- Major code cleanups and rewriting
|
||||
- Rip out all edit functions from tcpreplay and put into tcprewrite
|
||||
- Improve tcpreplay performance by about 5% for raw sending
|
||||
- Move around utility functions for greater code-reuse
|
||||
- Move MAC Address funcs into mac.c
|
||||
- Move global defines into defines.h
|
||||
- Standardize use of structs and typedefs
|
||||
- Start passing const's when we don't need to modify
|
||||
- Start using GNU AutoOpts for arg/config file processing
|
||||
- Start using automake and autoheader
|
||||
- Major rewrite of configure.in
|
||||
- Add support for printing which interface packets go out
|
||||
- 64bit counters are optional via --enable-64bits
|
||||
- Can now rewrite L2 data per outbound interface
|
||||
- Add support for additional DLT types
|
||||
|
||||
- Non-Code changes
|
||||
- I now own the full copyright for tcpreplay
|
||||
- Removed the evil 4th clause from the BSD license
|
||||
- Start updating the FAQ and split some content to make a manual
|
||||
- Automatically generate man pages based via autogen
|
||||
|
||||
- New Applications:
|
||||
- tcprewrite
|
||||
|
||||
- Removed Applications: (Ethereal has better utilities)
|
||||
- capinfo
|
||||
- pcapmerge
|
||||
|
||||
- Merge fixes from 2.x/stable branch:
|
||||
- portmap.c endian bugs
|
||||
- edit_packet.c handle corrupted pcap's where caplen < len
|
||||
- configure now properly uses --with-libnet and --with-libpcap
|
||||
|
||||
*** Fork 3.x Branch from v2.3.1 ***
|
||||
59
docs/CREDIT
Normal file
59
docs/CREDIT
Normal file
@@ -0,0 +1,59 @@
|
||||
$Id: CREDIT 2308 2009-05-06 19:05:38Z aturner $
|
||||
|
||||
tcpreplay and it's associated utilities (tcpprep, tcprewrite and flowreplay)
|
||||
were designed and written by Aaron Turner.
|
||||
|
||||
This product includes software developed by the University of California,
|
||||
Berkeley, Lawrence Berkeley Laboratory and its contributors.
|
||||
|
||||
The following is a list of people in no particular order who have kindly
|
||||
submitted patches or code snippets for me to use in tcpreplay.
|
||||
|
||||
Matt Bing <matt@mutedwarf.com>
|
||||
- Matt helped write a lot of the 1.x code
|
||||
|
||||
Branden Moore <bmoore-at-cse.nd.edu>
|
||||
- Patch to pad truncated packets
|
||||
- Patch to allow specifying a destination MAC w/ only a single NIC
|
||||
|
||||
Scott Mace <smace@intt.org>
|
||||
- Patch for tcpreplay to support CIDR mode
|
||||
- Patch for ignoring martian IP packets
|
||||
|
||||
Jeffrey Guttenfelder <guttenfelder@sourceforge.net>
|
||||
- Code for pausing/restarting tcpreplay via signals.
|
||||
|
||||
John Carlson
|
||||
- Patch for improved timerdiv() accuracy
|
||||
|
||||
Frey Kuo <kero@3sheep.com>
|
||||
- Patch to replace pause option with packets/sec
|
||||
|
||||
Seth Robertson (seth at sysd dot com)
|
||||
- Patch to allow replaying of live traffic
|
||||
|
||||
Nick Mathewson <nickm@freehaven.net>
|
||||
- Kindly giving me his BSD licensed implimentation of poll()
|
||||
using select() so I don't have to worry about cross platform
|
||||
issues.
|
||||
|
||||
Denis McLaughlin <denism@cyberus.ca>
|
||||
- Patch to allow TCP/UDP port translation
|
||||
|
||||
Andrew Edgecombe <andrew.edgecombe@nec.com.au>
|
||||
- Patch to support caching pcap files in memory when looping
|
||||
which provides a significant performance improvement
|
||||
- Patch to fix issue with -M option
|
||||
|
||||
Joerg Mayer <jmayer@loplof.de>
|
||||
- Patch for auto* to fix various warnings & errors
|
||||
|
||||
Jim West <jim_west@agilent.com>
|
||||
- Patch to fix Solaris compiling issues
|
||||
|
||||
Bojan Smojver <bojan@rexursive.com>
|
||||
- For maintaining the RPM package and helping with portability issues
|
||||
|
||||
Stas Grabois <sagig@radware.com>
|
||||
- For his efforts to add IPv6 support to tcpprep and the tcpedit engine
|
||||
- For adding IPv6 support to fragroute
|
||||
61
docs/HACKING
Normal file
61
docs/HACKING
Normal file
@@ -0,0 +1,61 @@
|
||||
$Id: HACKING 1782 2007-04-02 04:21:30Z aturner $
|
||||
Guide to Hacking Tcpreplay
|
||||
|
||||
[Note: Pay attention to the last update date at the top of this file. If it
|
||||
was significantly long ago, this document may be out of date.]
|
||||
|
||||
0. Contributing Code
|
||||
|
||||
If you contribute code the following will happen:
|
||||
a) You will be given credit in the CREDITS file
|
||||
b) Your code will be licensed under the same license as that of tcpreplay
|
||||
c) You will be assigning your copyright to me- Aaron Turner
|
||||
|
||||
If you have any questions regarding any of the three above stipulations,
|
||||
feel free to email the list at: tcpreplay-users@lists.sourceforge.net
|
||||
|
||||
|
||||
1. Introduction
|
||||
|
||||
If you're reading this to find out how to add a new feature or fix a bug in
|
||||
tcpreplay or tcpprep, then you've come to the right place. This isn't the
|
||||
place to find answers regarding how to use tcpreplay, the meaning of life,
|
||||
etc.
|
||||
|
||||
2. File Layout
|
||||
|
||||
The file layout is pretty simple:
|
||||
|
||||
/ - Base directory
|
||||
/lib - 3rd party libraries stolen verbatim
|
||||
/libopts - GNU AutoOpts tearoff
|
||||
/src - Main code routines
|
||||
/src/common - Common routines for all binaries
|
||||
/src/tcpedit - libtcpedit
|
||||
/docs - Where to find documentation
|
||||
/test - Test scripts and stuff which is used during 'make test'
|
||||
|
||||
3. Coding Standards
|
||||
1) Indent 4 spaces using spaces, not tabs
|
||||
2) Opening braces for control blocks (if, while, etc) should be on the same line
|
||||
3) Opening braces for functions should be on next line
|
||||
4) Use provided warnx, dbg, and errx functions provided in err.h
|
||||
5) Use provided safe_strdup, safe_malloc and safe_realloc functions provided
|
||||
in common/utils.h
|
||||
6) Use provided strl* functions in lib/strlcat.c and lib/strlcpy.c
|
||||
|
||||
4. Adding support for additional DLTs (Data Link Types)
|
||||
|
||||
libtcpedit supports a plugin based architecture for handling different DLT
|
||||
types. If you wish to add support for another DLT type, you should read:
|
||||
|
||||
http://tcpreplay.synfin.net/trac/wiki/tcpeditDeveloper
|
||||
|
||||
Which contains information on creating new DLT plugins.
|
||||
|
||||
5. Hacking tcprewrite
|
||||
|
||||
Tcprewrite is basically a front-end to libtcpedit. Hence any packet editing
|
||||
improvements should be done there. However, please remember that tcprewrite
|
||||
is not the only application which uses libtcpedit (tcpbridge is another
|
||||
example) so make sure you test your code there too.
|
||||
6
docs/INSTALL
Normal file
6
docs/INSTALL
Normal file
@@ -0,0 +1,6 @@
|
||||
$Id: INSTALL 1762 2007-03-24 20:42:05Z aturner $
|
||||
|
||||
NOTE: This information is out of date. Please see the tcpreplay wiki
|
||||
for updated information:
|
||||
|
||||
http://tcpreplay.synfin.net/trac/wiki/manual#GettingTcpreplayInstalled
|
||||
31
docs/LICENSE
Normal file
31
docs/LICENSE
Normal file
@@ -0,0 +1,31 @@
|
||||
$Id: LICENSE 2441 2010-03-30 03:21:52Z aturner $
|
||||
Copyright (c) 2001-2010 Aaron Turner. aturner at synfin dot net
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. 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.
|
||||
3. Neither the names of the copyright owners nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED ``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 AUTHORS OR COPYRIGHT HOLDERS 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.
|
||||
|
||||
This product includes software developed by the University of California,
|
||||
Berkeley, Lawrence Berkeley Laboratory and its contributors.
|
||||
41
docs/Makefile.am
Normal file
41
docs/Makefile.am
Normal file
@@ -0,0 +1,41 @@
|
||||
MAKEFLAGS=-s
|
||||
|
||||
.PHONY: manpages
|
||||
|
||||
docs: clean-docs manpages
|
||||
|
||||
web/tcpreplay.html:
|
||||
@GROFF@ -Thtml -mman ../src/tcpreplay.1 > web/tcpreplay.html
|
||||
|
||||
web/tcpprep.html:
|
||||
@GROFF@ -Thtml -mman ../src/tcpprep.1 > web/tcpprep.html
|
||||
|
||||
web/tcprewrite.html:
|
||||
@GROFF@ -Thtml -mman ../src/tcprewrite.1 > web/tcprewrite.html
|
||||
|
||||
web/tcpbridge.html:
|
||||
@GROFF@ -Thtml -mman ../src/tcpbridge.1 > web/tcpbridge.html
|
||||
|
||||
web/tcpreplay-edit.html:
|
||||
@GROFF@ -Thtml -mman ../src/tcpreplay-edit.1 > web/tcpreplay-edit.html
|
||||
|
||||
manpages: web/tcpreplay.html web/tcpprep.html web/tcprewrite.html \
|
||||
web/tcpbridge.html web/tcpreplay-edit.html
|
||||
|
||||
postweb: manpages
|
||||
rsync -qe ssh --exclude '.svn/' --exclude '/**/.svn/' --exclude '/**~' \
|
||||
--exclude '*~' -avz web/ \
|
||||
aturner@malbec.synfin.net:/var/vhosts/tcpreplay/
|
||||
scp CHANGELOG TODO aturner@malbec.synfin.net:/var/vhosts/tcpreplay/
|
||||
|
||||
|
||||
EXTRA_DIST = CHANGELOG CREDIT HACKING INSTALL LICENSE Win32Readme.txt
|
||||
|
||||
clean-docs: clean
|
||||
-rm -f web/*.html
|
||||
|
||||
maintainer-clean-local: clean-docs
|
||||
-rm -f web/*.html
|
||||
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
|
||||
422
docs/Makefile.in
Normal file
422
docs/Makefile.in
Normal file
@@ -0,0 +1,422 @@
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
target_triplet = @target@
|
||||
subdir = docs
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in INSTALL TODO
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/libopts/m4/libopts.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
|
||||
CONFIG_HEADER = $(top_builddir)/src/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOGEN = @AUTOGEN@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CUT = @CUT@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DMALLOC_LIB = @DMALLOC_LIB@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO = @ECHO@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
GROFF = @GROFF@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDNETINC = @LDNETINC@
|
||||
LDNETLIB = @LDNETLIB@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBOPTS_CFLAGS = @LIBOPTS_CFLAGS@
|
||||
LIBOPTS_DIR = @LIBOPTS_DIR@
|
||||
LIBOPTS_LDADD = @LIBOPTS_LDADD@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIPO = @LIPO@
|
||||
LNAVLIB = @LNAVLIB@
|
||||
LNAV_CFLAGS = @LNAV_CFLAGS@
|
||||
LN_S = @LN_S@
|
||||
LPCAPINC = @LPCAPINC@
|
||||
LPCAPLIB = @LPCAPLIB@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PCAP_BPF_H_FILE = @PCAP_BPF_H_FILE@
|
||||
PRINTF = @PRINTF@
|
||||
RANLIB = @RANLIB@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
TCPREPLAY_RELEASE = @TCPREPLAY_RELEASE@
|
||||
TCPREPLAY_VERSION = @TCPREPLAY_VERSION@
|
||||
VERSION = @VERSION@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
debug_flag = @debug_flag@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
lt_ECHO = @lt_ECHO@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
nic1 = @nic1@
|
||||
nic2 = @nic2@
|
||||
oldincludedir = @oldincludedir@
|
||||
pcncfg = @pcncfg@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target = @target@
|
||||
target_alias = @target_alias@
|
||||
target_cpu = @target_cpu@
|
||||
target_os = @target_os@
|
||||
target_vendor = @target_vendor@
|
||||
tcpdump_path = @tcpdump_path@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
MAKEFLAGS = -s
|
||||
EXTRA_DIST = CHANGELOG CREDIT HACKING INSTALL LICENSE Win32Readme.txt
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu docs/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile
|
||||
installdirs:
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic \
|
||||
maintainer-clean-local
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am:
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
|
||||
distclean distclean-generic distclean-libtool distdir dvi \
|
||||
dvi-am html html-am info info-am install install-am \
|
||||
install-data install-data-am install-dvi install-dvi-am \
|
||||
install-exec install-exec-am install-html install-html-am \
|
||||
install-info install-info-am install-man install-pdf \
|
||||
install-pdf-am install-ps install-ps-am install-strip \
|
||||
installcheck installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic maintainer-clean-local mostlyclean \
|
||||
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||
uninstall uninstall-am
|
||||
|
||||
|
||||
.PHONY: manpages
|
||||
|
||||
docs: clean-docs manpages
|
||||
|
||||
web/tcpreplay.html:
|
||||
@GROFF@ -Thtml -mman ../src/tcpreplay.1 > web/tcpreplay.html
|
||||
|
||||
web/tcpprep.html:
|
||||
@GROFF@ -Thtml -mman ../src/tcpprep.1 > web/tcpprep.html
|
||||
|
||||
web/tcprewrite.html:
|
||||
@GROFF@ -Thtml -mman ../src/tcprewrite.1 > web/tcprewrite.html
|
||||
|
||||
web/tcpbridge.html:
|
||||
@GROFF@ -Thtml -mman ../src/tcpbridge.1 > web/tcpbridge.html
|
||||
|
||||
web/tcpreplay-edit.html:
|
||||
@GROFF@ -Thtml -mman ../src/tcpreplay-edit.1 > web/tcpreplay-edit.html
|
||||
|
||||
manpages: web/tcpreplay.html web/tcpprep.html web/tcprewrite.html \
|
||||
web/tcpbridge.html web/tcpreplay-edit.html
|
||||
|
||||
postweb: manpages
|
||||
rsync -qe ssh --exclude '.svn/' --exclude '/**/.svn/' --exclude '/**~' \
|
||||
--exclude '*~' -avz web/ \
|
||||
aturner@malbec.synfin.net:/var/vhosts/tcpreplay/
|
||||
scp CHANGELOG TODO aturner@malbec.synfin.net:/var/vhosts/tcpreplay/
|
||||
|
||||
clean-docs: clean
|
||||
-rm -f web/*.html
|
||||
|
||||
maintainer-clean-local: clean-docs
|
||||
-rm -f web/*.html
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
151
docs/TODO
Normal file
151
docs/TODO
Normal file
@@ -0,0 +1,151 @@
|
||||
This is a general list of things which should/could/may be done.
|
||||
If any of these features interest you let me know- especially if you're
|
||||
willing and able to help code it. In general, higher priority tasks are
|
||||
tracked on the tcpreplay website: http://tcpreplay.synfin.net/
|
||||
|
||||
Legend:
|
||||
- = Not started
|
||||
+ = Done
|
||||
O = Mostly done
|
||||
o = Started work
|
||||
. = Canceled
|
||||
? = To think about
|
||||
|
||||
GENERAL:
|
||||
|
||||
+ Improve config file format
|
||||
+ better variable names
|
||||
+ use "var: value" format
|
||||
+ have tcpreplay, tcpprep, tcprewrite sections
|
||||
+ Being solved using GNU AutoOpts
|
||||
|
||||
+ Improve autoconf detection of libraries
|
||||
|
||||
+ Re-organize source tree
|
||||
|
||||
+ tcpdump decoder should print packets syncronously w/ the main process
|
||||
|
||||
+ Better use of GNU Autotools
|
||||
|
||||
+ Improve CLI/config file parsing
|
||||
|
||||
+ Only tcpreplay/tcpbridge should need to run as root.
|
||||
|
||||
+ Tcpreplay should use raw sockets or BPF directly for writing rather then
|
||||
libnet where applicable for theoretically higher performance.
|
||||
|
||||
- Detect system version of libopts b/c we need a recent version
|
||||
|
||||
+ Generalize packet editing and printing code so it can be shipped as a
|
||||
seperate library and plugged into tcpreplay/tcprewrite/flowreplay/etc
|
||||
|
||||
+ See about removing libnet_init() from all binaries other then tcprewrite
|
||||
so we don't have to run as root:
|
||||
. libnet_addr2name4 (ignore, doesn't require libnet_t context)
|
||||
+ libnet_name2addr4
|
||||
+ libnet_get_hwaddr
|
||||
+ libnet_do_checksum
|
||||
|
||||
TCPREPLAY:
|
||||
|
||||
. Add support for dual-nic send on one intf, wait for packet, send next.
|
||||
would be really useful for testing the effectiveness of how well an IPS
|
||||
detects and blocks attacks. (TP's tomahawk does this even better then
|
||||
described here, so why re-invent the wheel?)
|
||||
|
||||
- Rewrite do_sleep() to handle sub sleep times by only nanosleep()'ing
|
||||
once for multiple packets when the timestamps are close enough. We
|
||||
also need to time nanosleep, since different architectures have lower
|
||||
minimum sleep times (Linux/Alpha is 1ms vs. 10ms for Linux/x86)
|
||||
|
||||
+ Tcpreplay should say which interface each packet is going out
|
||||
|
||||
TCPBRIDGE:
|
||||
|
||||
- Duplicate all tcprewrite functionality
|
||||
|
||||
TCPREWRITE:
|
||||
|
||||
- Support fragrouter like features
|
||||
- basic IP fragmenation
|
||||
- TCP fudging
|
||||
- then more advanced stuff
|
||||
- Can we integrate FR's code?
|
||||
|
||||
+ Look at VLAN (802.1q) packets
|
||||
- others non-vanilla types?
|
||||
+ Add tags? Remove tags? Change tags?
|
||||
- Tag only one side of the connection
|
||||
- Support Q-in-Q tags:
|
||||
http://www.informit.com/articles/article.asp?p=101367&rl=1
|
||||
- Cisco's ISL trunking?
|
||||
|
||||
- Add support for MPLS
|
||||
|
||||
- Add support for GRE
|
||||
http://www.linuxguruz.com/iptables/howto/2.4routing-5.html
|
||||
Perhaps this should be done via the hardware interface rather then the GRE
|
||||
virtual interface since libnet doesn't support the GRE virtual
|
||||
|
||||
+ Add support for setting the ethernet protocol field so we can use
|
||||
-I, -K to fill out an entire ethernet header w/o using -2
|
||||
|
||||
+ Add a secondary interface full layer two rewrite option
|
||||
|
||||
+ Fix MAC rewriting to allow sending packets with a MAC of 00:00:00:00:00:00
|
||||
|
||||
- Add support for more linktypes (Prism Monitor, 802.11, FDDI, etc)
|
||||
+ Make it easier for others to add support for others
|
||||
|
||||
+ Rip out packet munger from tcpreplay and put it into another tool so
|
||||
that tcpreplay can be more optimized
|
||||
? perhaps use libnetdude?
|
||||
? make into a library?
|
||||
+ definately put it into a seperate binary (tcprewrite)
|
||||
|
||||
- Add the ability to modify packet data via regex(es) in tcprewrite
|
||||
- Should support pcre
|
||||
- Support (foo) and $1, etc so new data can include old
|
||||
- Limit matching which packets via BPF filter and tcpprep cache
|
||||
(client/server)
|
||||
- Step through packets ala tcpreplay and provide option to edit (Y/n)
|
||||
|
||||
- Support connection tracking and generating 3way handshake for connections
|
||||
missing them.
|
||||
|
||||
- Bump Syn/Ack numbers by a pseudo random or given value so that running
|
||||
the same pcap will behave as different streams.
|
||||
|
||||
- IPv6 support? People ask for this every few months, but nobody actually
|
||||
says they "need" or "really want" it; seems more of "gee, wouldn't it be
|
||||
nice". What does that mean anyways???
|
||||
|
||||
- tcprewrite should be able to remove the two byte ethernet FCS (checksums)
|
||||
at the end of the frame.
|
||||
|
||||
+ Support randomization of IP addresses in ARP packets
|
||||
|
||||
- Add support for rewriting MAC addresses in the ARP body for
|
||||
tcprewrite/tcpbridge to allow proxy-arp like behaviour
|
||||
|
||||
- Add support for IP fragmenting frames which are > MTU
|
||||
|
||||
|
||||
TCPPREP:
|
||||
|
||||
+ When splitting traffic via tcpprep print out each packet (tcpdump style)
|
||||
so end users know where each packet is going
|
||||
|
||||
FLOWREPLAY:
|
||||
|
||||
- Improve flowreplay so it actually works
|
||||
. Use libnids to read the pcaps. This seems DOA at this time since
|
||||
libnids is GPL and the author is unwilling to make it support multiple
|
||||
threads which flowreplay probably needs to be. The only other option is
|
||||
a major rewrite which would break API compatibility. Doesn't seem worth
|
||||
it.
|
||||
- Allow handoff to a socket after user specified client/server exchanges
|
||||
|
||||
- Perhaps integrate stick/snot/fpg logic into flowreplay:
|
||||
http://www.geschke-online.de/FLoP/fpg.8.html
|
||||
to do full 3way handshakes
|
||||
106
docs/Win32Readme.txt
Normal file
106
docs/Win32Readme.txt
Normal file
@@ -0,0 +1,106 @@
|
||||
$Id: Win32Readme.txt 2102 2009-01-04 22:52:51Z aturner $
|
||||
This document attempts to explain how to get tcpreplay compiled and running
|
||||
under Windows. Please note that this document is a work in progress and
|
||||
Windows support in general considered EXPERIMENTAL right now.
|
||||
|
||||
|
||||
Background:
|
||||
|
||||
Tcpreplay is not a native Win32 application right now. Hence it requires
|
||||
Cygwin. (http://www.cygwin.com). Cygwin creates a Linux-like environment
|
||||
on your Windows system which allows Linux/UNIX programs to run after a
|
||||
recompile.
|
||||
|
||||
Tcpreplay supports numerous API's for sending packets depending on the
|
||||
operating system. Under Windows, the only supported method of sending
|
||||
packets is with WinPcap 4.0. (http://www.winpcap.org) Please be sure to
|
||||
install both the WinPcap driver AND the developer pack.
|
||||
|
||||
Right now, I've only done testing under Windows XP. My guess is that 2000
|
||||
and 2003 should have no problems. Since WinPcap and Cygwin are EOL'ing
|
||||
support for Win98/ME, I doubt that they'll ever be supported. Not sure
|
||||
the story on Vista, but I assume WinPcap & Cygwin will support them sooner
|
||||
or later if not already. Would love to hear if anyone has any luck one
|
||||
way or another.
|
||||
|
||||
What you will need:
|
||||
|
||||
- Cygwin environment
|
||||
- GCC compiler and system header files
|
||||
- WinPcap 4.0 DLL
|
||||
- WinPcap 4.0 Developer Pack aka WpdPack (headers, etc)
|
||||
|
||||
Additional requirements if building from SVN:
|
||||
- GNU build chain tools (Autoconf, Automake, Autoheader)
|
||||
- GNU Autogen (*)
|
||||
|
||||
* NOTE: The guile package which comes with Cygwin is broken and breaks
|
||||
Autogen, so you'll need to compile guile from scratch to fix. Hence, I
|
||||
strongly suggest you build Tcpreplay from the tarball and not SVN. See
|
||||
below for how to "fix" this issue if you want to compile from SVN.
|
||||
|
||||
|
||||
|
||||
******************************* IMPORTANT ******************************
|
||||
Note 1:
|
||||
People have reported problems with WpdPack (the developer pack for
|
||||
Winpcap) being installed outside of the Cygwin root directory. Hence, I
|
||||
strongly recommend you install it under the Cygwin root as /WpdPack.
|
||||
|
||||
Note 2:
|
||||
There's a big problem with the Cygwin Guile package which breaks
|
||||
GNU Autogen which Tcpreplay depends on when building from Subversion.
|
||||
|
||||
What this means is that to build from Subversion you must do the following:
|
||||
- Download GNU Guile from http://www.gnu.org/software/guile/guile.html
|
||||
|
||||
- Extract the tarball and do the following:
|
||||
libtoolize --copy --force
|
||||
./configure
|
||||
make
|
||||
make install
|
||||
|
||||
This will install guile in /usr/local.
|
||||
|
||||
The other problem is that guile-config returns the linker flags in the wrong
|
||||
order. To fix this, rename /usr/local/bin/guile-config to
|
||||
/usr/local/bin/guile-config.original and create a new shell script in it's
|
||||
place:
|
||||
|
||||
---- BEGIN SHELL SCRIPT ----
|
||||
#!/bin/bash
|
||||
# Replacement /usr/local/bin/guile-config script
|
||||
if test -z "$1" ; then
|
||||
guile-config.original
|
||||
elif test "$1" == "link"; then
|
||||
echo "-L/usr/local/lib -lguile -lltdl -lgmp -lcrypt -lm -lltdl"
|
||||
else
|
||||
guile-config.original $1
|
||||
fi
|
||||
---- END SHELL SCRIPT ----
|
||||
|
||||
******************************* IMPORTANT ******************************
|
||||
|
||||
Directions:
|
||||
- Install all the requirements
|
||||
|
||||
- Enter into the Cygwin environment by clicking on the Cygwin icon
|
||||
|
||||
- If you checked out the code from SVN, see Note 2 above and then run
|
||||
the autogen.sh bootstrapper:
|
||||
./autogen.sh
|
||||
|
||||
- Configure tcpreplay:
|
||||
./configure --enable-debug
|
||||
|
||||
- Build tcpreplay:
|
||||
make
|
||||
|
||||
- Install:
|
||||
make install
|
||||
|
||||
- Try it out!
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user