
               ****************************************
               * IPSEC for Linux, Release 2.xx series *
               ****************************************



1. Files

The contents of linux/net/ipsec/ (see below) join the linux kernel source tree.
as provided for higher up.

The programs/ directory contains the user-level utilities which you need
to run IPSEC.  See the top-level top/INSTALL to compile and install them.

The testing/ directory contains test scripts.

The doc/ directory contains -- what else -- documentation. 

1.1. Kernel files

The following are found in net/ipsec/:

Makefile			The Makefile
Config.in			The configuration script for make menuconfig
defconfig			Configuration defaults for first time.

radij.c				General-purpose radix-tree operations

ipsec_ipcomp.c	   IPCOMP encapsulate/decapsulate code.
ipsec_ah.c	   Authentication Header (AH) encapsulate/decapsulate code.
ipsec_esp.c	   Encapsulated Security Payload (ESP) encap/decap code.

pfkey_v2.c			PF_KEYv2 socket interface code.
pfkey_v2_parser.c		PF_KEYv2 message parsing and processing code.

ipsec_init.c			Initialization code, /proc interface.
ipsec_radij.c			Interface with the radix tree code.
ipsec_netlink.c			Interface with the netlink code.
ipsec_xform.c			Routines and structures common to transforms.
ipsec_tunnel.c			The outgoing packet processing code.
ipsec_rcv.c			The incoming packet processing code.
ipsec_md5c.c			Somewhat modified RSADSI MD5 C code.
ipsec_sha1.c			Somewhat modified Steve Reid SHA-1 C code.

sysctl_net_ipsec.c		/proc/sys/net/ipsec/* variable definitions.

version.c			symbolic link to project version.

radij.h				Headers for radij.c

ipcomp.h			Headers used by IPCOMP code.

ipsec_radij.h			Interface with the radix tree code.
ipsec_netlink.h			Headers used by the netlink interface.
ipsec_encap.h			Headers defining encapsulation structures.
ipsec_xform.h			Transform headers.
ipsec_tunnel.h			Headers used by tunneling code.
ipsec_ipe4.h			Headers for the IP-in-IP code.
ipsec_ah.h			Headers common to AH transforms.
ipsec_md5h.h			RSADSI MD5 headers.
ipsec_sha1.h			SHA-1 headers.
ipsec_esp.h			Headers common to ESP transfroms.
ipsec_rcv.h			Headers for incoming packet processing code.

1.2. User-level files.

The following are found in utils/:

eroute.c	Create an "extended route" source code
spi.c		Set up Security Associations source code
spigrp.c        Link SPIs together source code.
tncfg.c         Configure the tunneling features of the virtual interface
		source code
klipsdebug.c	Set/reset klips debugging features source code.
version.c	symbolic link to project version.

eroute.8	Create an "extended route" manual page
spi.8		Set up Security Associations manual page
spigrp.8        Link SPIs together manual page
tncfg.8         Configure the tunneling features of the virtual interface
		manual page
klipsdebug.8	Set/reset klips debugging features manual page

eroute.5	/proc/net/ipsec_eroute format manual page
spi.5		/proc/net/ipsec_spi format manual page
spigrp.5	/proc/net/ipsec_spigrp format manual page
tncfg.5		/proc/net/ipsec_tncfg format manual page
klipsdebug.5	/proc/net/ipsec_klipsdebug format manual page
version.5	/proc/net/ipsec_version format manual page
pf_key.5	/proc/net/pf_key format manual page

Makefile	Utilities makefile.

*.8		Manpages for the respective utils.


1.3. Test files

The test scripts are locate in testing/ and and documentation is found
at doc/src/umltesting.html. Automated testing via "make check" is available
provided that the User-Mode-Linux patches are available.

