| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | 
							- $Id$ 
 
-                           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 Aaron Turner 
 
-        and Fred Klassen - Appneta Inc.
 
- 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
 
- /src/tcpedit/plugins - plugins for libtcpedit (mostly DLT)
 
- /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/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.
 
 
  |