$Header: /src/carson/nistnet/RCS/INSTALL,v 1.4 2000/03/22 16:06:26 carson Exp $

How to install the Linux "NIST Net Version 1.3bis" emulation package:

-1. Prerequisites: Currently requires 2.0.27-2.0.37 level kernel!  This
version should compile with either "linux" libc headers or "glibc" libc
headers (tested with glibc 2.0.7), with the proviso that the kernel files
can't be compiled with glibc headers! 

0. tar -xvzf nistnet.tar.gz -- produces a directory "nistnet" and a bunch
of files in it.  That is the directory referred to as "this dir" below.

1. Make sure you can build and install usable kernels:

	cd /usr/src/linux
	make config (or menuconfig/xconfig)  -- answer questions appropriately
	make install	-- make sure new kernel boots properly

2. Install the fast timer and packet handling kernel patches:

	If you have installed previous versions of these, run:
		./Update.Kernel
	to update timer patches to get the current versions.

	If you haven't installed these before, run:
		./Patch.Kernel

	These run from this dir, but do the following in /usr/src/linux
	[That is to say, since this seems to cause confusion, that the
	scripts do these things. You don't do them yourself (unless you'd
	rather not use the scripts)!!] 
			patch -p0 < patch/fast.patches (patches kernel)
			tar -xvf patch/fast.tar (adds fast timer code)
	Make sure the patches install correctly!

	When patching, you will be given the opportunity to install 
	additional new timer code patches.  These seem to make the system
	clock much more accurate, but have the downside of taking you out
	of the normal kernel stream.  (The mainstream kernel patches,
	whenever they arrive, are likely to be a bit different.)  So
	these changes have been made optional.

	Note: if you have installed NIST Net 1.3 previously, you don't
	need to do the kernel patching procedure described here.
	HOWEVER, some copies got out with a debugging breakpoint left
	in.  (Sorry about that.)  To get rid of it, you can either
	run the Update.Kernel script mentioned above, or simply
	edit the file /usr/src/linux/arch/i386/kernel/fast_timer.c.
	Look at around line 26 in this file.  If it has the line

	#define BREAKPOINT() asm("   int $3");

	which is not surrounded by #ifdef BREAK_DEBUG or
	#ifdef __DEBUG_HACK__, you've got the bad version.  Simply
	eliminate every line containing BREAKPOINT in the file.

3. Now, configure and build the patched kernel:

	cd /usr/src/linux
	make config (or menuconfig/xconfig)  -- say "y" to CONFIG_FAST_TIMER
						and CONFIG_REPACK (at end,
						under "kernel hacks")
	make dep
	make install	-- may want to save a previous kernel version for
			   failsafe; then reboot and make sure things work

4. Check the configuration and create the appropriate Makefile:

	cd <this dir>
	edit Makefile	-- 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.
	cd <this dir>/monitor
	edit Imakefile	-- may want to use an alternative to the Xaw widget set
			   Tested with Athena Xaw and neXtaw
	xmkmf		-- creates customized Makefile

5. Build and install the nistnet module, API library, and user interface

	cd <this dir>
	make
	make install

6. Try things out:

	insmod nistnet	-- loads "nistnet" emulator module into kernel
	nistnet	-- runs user 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

7. To turn off:

	hitbox -d or "on/off" button in nisnet -- 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

8. 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
www.sunsite.unc.edu, 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.

Comments? Questions? Let us know at nistnet-dev@antd.nist.gov
[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory  -  
[CMP]nistnet.2.0alpha.4.tar.gz2000-08-25 02:39 1.2M 

Apache/2.4.58 (Debian) Server at fly.isti.cnr.it Port 80