How to install the NIST Net emulation package, version 2.0.10

Note: These install instructions are for version 2.0.10. If you choose
instead an older version, follow the instructions included with it.

  1. Prerequisites: NIST Net version 2.0.10 should run on most versions of
     Linux available today. It has been tested on 2.0.xx (2.0.27 - 2.0.39),
     2.2.xx (2.2.5 - 2.2.18) and 2.4.xx (2.4.0 - 2.4.2) level kernels. Some
     tweaking may be required for 2.1 or 2.3 kernels. It should compile with
     either "linux" libc headers or "glibc" libc headers, with the proviso
     that of course kernel files can't be compiled with glibc headers.
  2. Click here to get the NIST Net source package, version 2.0.10. The
     source comes in a gzipped tar file, nistnet.2.0.10.tar.gz.
  3. tar -xvzf nistnet.2.0.10.tar.gz - produces a directory nistnet and a
     bunch of files in it. That is the directory referred to as nistnet
     below.
  4. This version does not require any kernel patching! If you have
     installed previous versions of NIST Net, and want to remove the old
     patches, you can either install a fresh kernel source tree, or run the
     ./Unpatch.Kernel script provided with the distribution.
  5. Optional: There are patches for Alpha and Sparc processors which can be
     installed with the Arch.Kernel script. If you have one of these and
     want to experiment with them, be my guest. Note, however, that these
     patches are totally untested!
  6. Check the configuration and create the appropriate Makefile:
     cd nistnet
     edit Config
          - Decide whether or not you want support for explicit congestion
          notification processing. If not, remove the -DCONFIG_ECN from the
          Makefile. If you do want it, you need do nothing. Also, decide
          whether you want COS (class of service) selection support. If so,
          uncomment -DCONFIG_COS.
     cd nistnet/monitor
     edit Imakefile
          - may want to use an alternative to the Xaw3d widget set.
          - Tested with Athena Xaw, Xaw3d, and neXtaw
     xmkmf -a
          - creates customized Makefiles.
          (Note: you *must* run xmkmf, even if you don't change the
          Imakefile! That's because I'm using XFree86 4.0.1, and you almost
          certainly are not. So you'll have to regenerate the Makefiles.)
  7. Build and install the nistnet module, API library, and user interface
     cd nistnet
     make
     make install
  8. Try things out:
     Load.Nistnet
          - loads "nistnet" emulator module into kernel
     xnistnet
          - runs (X-based) user interface
     cnistnet -h
          - usage info for command-line interface
     insmod mungemod
          - loads "mungebox," a sample emulator add-on
     mungebox -u -a src dest -S
          - view traffic between src and dest
     insmod nistspy
          - loads "nistspy" sample add-on (note: only one add-on can be
          installed at a time)
     nistspy -u -a src port dest port newdest newport
          - duplicate traffic to newdest/port
  9. To turn off:
     cnistnet -d or "off" button in xnistnet
          - turns off emulator
     nistspy -d
          - turn off duplicator
          (mungebox shuts itself off automatically)
     rmmod mungemod (or nistspy)
          - removes add-on module (must be done before removing nistnet)
     rmmod nistnet
          - removes module from kernel
 10. If you want to try congestion notification, ping.tar has source for a
     modified version of ping which allows setting and checking the ECN
     bits. To build it, you need a copy of netkit-base-0.10, available from
     SunSite (www.sunsite.unc.edu) Walnut Creek (www.cdrom.com) and many
     other fine sites. Get it and configure it, then overlay the ping code
     in it with the source here.
     This level of testing just shows the bits being set, of course. Things
     are more interesting if you have an implementation of TCP with ECN to
     test with. (This is available in the latest versions of Linux, for
     example.)
 11. For more usage information, check the README.WhatsNew file found in the
     top-level nistnet directory.

----------------------------------------------------------------------------
Comments? Questions? Let us know at nistnet-dev@antd.nist.gov.
----------------------------------------------------------------------------
