Programmer overview

Azinix is designed to be extensible.

The code base consists of approximately 30,000 lines of custom-written C code, in addition to the various libraries Azinix links to. Azinix's source code is organized as a set of packages; each is in a directory under src. The basic organization is as follows:

The util package includes the following data structures: array, heap, st (hash), util_int_array (integer array), ls (list), var_set (bit-vector), and bdd (binary decision diagram). It also has macros and defines for min/max, maxint; code timing; random numbers; and safe memory allocation. Packet capture and injection are managed by the pcap and libnet libraries. The user interface is handled by Tcl.

The ctags system is very useful for browsing the code base.