Warning: This was written eons ago and is not maintained, and has not been touched since! Only here for old times sake. Network in a Box (NAB) http://nab.epfl.ch ** ** PREREQUISITES ** To compile and run NAB, you must have ocaml installed. The latest version of ocaml (3.08.3) is required. The official site to get ocaml is http://caml.inria.fr. You will also need gsl (http://www.gnu.org/software/gsl/), and the ocaml bindings to it (http://oandrieu.nerim.net/ocaml/gsl/). If you want to to build and use the gui functionality, you must install lablgtk 1.2. Lablgtk is available from http://wwwfun.kurims.kyoto-u.ac.jp/soft/olabl/lablgtk.html. Another, probably simpler option to install ocaml and lablgtk, is to use GODI - see http://www.ocaml-programming.de/godi/. ** ** DOCUMENTATION ** The html documentation and a tutorial are located under doc/ and can be browsed starting from doc/index.html. More detailed documentation of the internals can be generated from the source code with the ocamldoc tool - see COMPILING below. For pointers on getting started in ocaml, please see the documentation in doc/index.html ** ** SOURCE LAYOUT ** sim/ -> simulator core sim/interfaces/ -> core class and module interfaces sim/base/ -> implementation of core functions sim/pkt/ -> packet representations and related functions sim/mob/ -> mobility and related functions sim/mac/ -> mac layers and related functions proto/ -> protocol agents proto/ler -> last encounter routing (EASE/GREASE) proto/aodv -> AODV proto/grep -> GREP gui/ -> GUI-related code lib/ -> Helper libs lib/contrib -> Helper libs from external sources (GPL-level licenses) doc -> Documentation (see above) ** ** COMPILING ** To generate code documentation: (will be rooted at doc/gen/index.html) [Note: don't worry about warnings when building doc!] make htmldoc To compile an interactive toplevel: make nab-top To compile an interactive toplevel with gui support linked in: (requires lablgtk, see PREREQUISITES above) make nabviz-top To compile NAB to run script foo.ml in batch mode: (foo.ml is assumed to be in the scripts/ directory) make SCRIPT=foo.ml nab If foo.ml uses gui libraries: make SCRIPT=foo.ml nabviz To compile as native code (runs faster), pass OPT=y flag to make, as in make OPT=y SCRIPT=foo.ml nabviz Note: interactive toplevels cannot be compiled to native code. ** ** CONTRIBUTING ** If you have developed code (protocols, mac layers, mobility models, ..) that you would like to see integrated into the nab distribution, please contact henri.dubois-ferriere {AT} epfl.ch