This archive contains changes to the kernel and slattach
to implement compressed (Van Jacobson TCP header compression) SLIP
(aka CSLIP) for Amiga Unix.

I have tested the changes on Amiga Unix 2.03 and 2.1c, and I've used
both SLIP and CSLIP modes successfully.


INSTALLATION
------------

To apply the changes, here's a roadmap of the provided files. The 
`usr' directory starts a hierarchy that corresponds to the /usr 
hierarchy, and thus usr/amiga/bin/slattach corresponds to 
/usr/amiga/bin/slattach.

usr/amiga/bin:			a new slattach binary, understanding
slattach			new options `compressed', `autocomp'
				and `noicmp'.

usr/amiga/src/cmd/slattach:	diffs against the original slattach
slattach.c-diff			source to implement the new options.

usr/sys/amiga/driver:		kernel changes:
slcompress.c			new files. Implement compression/
slcompress.h			decompression.
slip.c-diff			diffs against the original slip.c


To integrate the changes, replace the slattach binary (make a backup
of the old one!) with the one in usr/amiga/bin. If you're interested
into the new source (and if you have installed the amigasrc package)
apply the slattach.c-diff patch to /usr/amiga/src/cmd/slattach/slattach.c.

To update the kernel, cd to /usr/sys/amiga/driver. Then do a 
  cp slip.c cslip.c
Now apply the slip.c-diff, this will change the cslip.c from being a 
copy of slip.c into the real cslip.c. (If you don't want to keep the old
driver slip.c, rename it to cslip.c and apply the patch. I don't
recommend this however, I always like to have backups to fall back on).

Copy slcompress.[ch] into this directory as well. 

Now to edit /usr/sys/amiga/driver/Makefile. Replace in the assignment 
to OBJ the "slip.o\" with "cslip.o slcompress.o\".

Then cd back to /usr/sys and make a new kernel.



WHAT'S NEW
----------
The old device is enhanced to handle CSLIP as well as SLIP, so no new
devices and/or streams modules are created. I added some code to 
slattach to set the new modes of the driver, so the syntax for slattach
is new:

slattach <speed> <local-addr> <remote-addr> [<new-opts>] [ifconfig opts]

with [<new-opts>] being optional, and a combination of:
  compress	enable CSLIP mode. When in this mode, SLIP tcp headers
		are *not* recognized.
  autocomp	run in SLIP mode. On receipt of a valid compressed 
		packet, automatically switch to CSLIP mode. This is the
		preferred mode of operation on the server side of the
		communication, so that both kinds of protocols are
		available in parallel.
  noicmp	when in CSLIP mode, supress ICMP traffic. This mode is 
		meant to be used in low-speed connections, so nobody
		can saturate the link with ICMP packets (such as 
		generated by /usr/sbin/ping). Don't set this flag if
		if you don't have problems with ICMP packets.

On my machine, I'm using "slattach ... compress" to connect to the
other side, where I run "slattach ... autocomp" to enable both, SLIP
and CSLIP clients to connect.


COPYRIGHT / DISCLAIMER
----------------------
Sources are copyrighted by the "Regents of the University of
California." Please see the header of slcompress.h for the full
copyright notice and disclaimer. I (Markus Wild) regard myself as
"contributor" according to the above Copyright.


Good luck!

If you find bugs, please tell me! You can reach me at:

<wild@nessie.cs.id.ethz.ch> and <wild@amiga.physik.unizh.ch>
