Azinix

nmDoxy.h

Go to the documentation of this file.
00001 /**
00002  \file nmDoxy.h 
00003 
00004  \brief Main page    
00005 
00006 */
00007 
00008 ////////////////////////////////////////////////////////////////////////////////////
00009 
00010 /** 
00011   \mainpage  Programmer overview
00012 
00013 Azinix is designed to be extensible.
00014 
00015 The code base consists of approximately 30,000 lines of custom-written
00016 C code, in addition to the various libraries Azinix links to.
00017 Azinix's source code is organized as a set of packages;
00018 each is in a directory under <code>src</code>.  The basic
00019 organization is as follows:
00020                                                                                                         
00021 <ul>
00022 <li>  <code>evl</code>: rule evaluation, action implementation
00023 <li>  <code>pkt</code>: creation and manipulation
00024 <li>  <code>rlp</code>: input parser 
00025 <li>  <code>q</code>:   routines implementing queuing
00026 <li>  <code>os</code>:   OS specific code
00027 <li>  <code>nm</code>:  UI code, exports Azinix functions to Tcl
00028 <li>  <code>util</code>: common data structures, utilities 
00029 </ul>
00030 
00031 The  <code>util</code> package includes the following data structures:
00032  <code>array</code>,  <code>heap</code>,  <code>st</code> (hash),  <code>util_int_array</code> (integer array),
00033  <code>ls</code> (list),  <code>var_set</code> (bit-vector), and  <code>bdd</code> (binary decision diagram).
00034 It also has macros and defines for min/max, maxint; code timing; random numbers; and
00035 safe memory allocation.  Packet capture and injection are managed by the
00036  <code>pcap</code> and  <code>libnet</code> libraries.  The user interface is handled by  <code>Tcl</code>.
00037 
00038 The <code>ctags</code> system is very useful for browsing the code base.
00039 */