This is SLIP for SunOS 4.0.

Although the SLIP distribution is quite usable by itself for a simple direct
point-to-point link, you may want to install some programs that make dialout
SLIP convenient, or allows you to better integrate the point-to-point link
into your network.

The packages I'm referring to are:

- tip w/ slip.
  This is a new version of the BSD tip that supports SLIP dialout, login
  scripts, and new dialers (incl. TrailBlazer). This version will likely
  find its way into a future BSD release.

- gated.
  If you intend to integrate your point-to-point link into a complicated
  network, 'routed' will not deal properly with such links.  Instead you
  should get 'gated', the current version is kept available by anonymous
  FTP from devvax.tn.cornell.edu in pub/gated/gated.tar.Z.

- YAPT 5.5c.
  The latest in a long line of (Yet Another) Patch Tapes from Sun, which
  fix problems related to serial ports: flow control, ALM1s, ALM2s, busy
  ports (e.g. fast UUCP), character dropping, miscellaneous port hangups
  and panic conditions.  These patches will be part of SunOS 4.0.3.  Sun
  is making them publically available so all customers running 4.0.[012]
  can get these problems fixed.

- slip for 4.2BSD/SunOS3.x.
  There are several versions of this code that might interest you if for
  some reason you have to deal with a non-STREAMS host on the SLIP link.
  The version that I know from personal experience will work under SunOS
  3.x is the one from here (U of Toronto).  Fetch it by anonymous FTP to
  neat.ai.toronto.edu in pub/slip-3.x.tar.Z if you need it.  The version
  that used to work under 4.2BSD is also included in an RCS file in that
  tar archive.


To save you running around to find these, a collective tar file will be
available at some archive locations under the name of slipware.tar.Z.


To run SLIP, do the following:

1.	Add:

	os/tty_slip.c		optional slip

	to /sys/conf.common/files.cmn

2.	Copy tty_slip.c to /sys/os/tty_slip.c

3.	Add

	...
	#include "slip.h"
	...
	#if	NSLIP > 0
	extern struct streamtab slipinfo;
	#endif
	...
	#if	NSLIP > 0
		{ "slip",	&slipinfo },
	#endif
	...

	to /sys/sun/str_conf.c

4.	Add

	pseudo-device slip5

	to your CONFIG file.  If you want to preattach all the interfaces,
	use
	
	pseudo-device slip5 init slip_attach

5.	Copy slip.h to /usr/include/sys/slip.h (and /sys/sys/slip.h)

6.	Configure your kernel and install and boot it

7.	Compile and install the sliplogin program suid root.


The test setup I used on a Sun3/50:

	After making sure that there is no getty on /dev/tty[ab], install
	a cable with TD/RD crossed, and DCD/DTR crossed (I used a 1-foot
	4-wire cable for testing).  Then do:

		stty -tostop
		sliplogin 192.12.180.1 192.12.180.2 < /dev/ttya &
		sliplogin 192.12.180.2 192.12.180.1 < /dev/ttyb &


Then you can telnet and ftp to your heart's content.


Known Problems:

- You may want to adjust the max. transmission unit (SLIPMTU) if you use
  it with a SLIP implementation that uses a larger MTU.

- Don't do 'stty > /dev/slip' or similar while SLIP is running, you will
  be surprised at the effect.

- If you get kernel panics related to the MCP routines, it is not a SLIP-
  specific problem.  What happens is that some random code gets into the
  mbuf manipulation macros or code (which runs at splimp() priority), and
  is interrupted by the MCP which might indirectly run code (e.g. inside
  SLIP) which also does mbuf manipulation but isn't locked out of accessing
  the data structures.  The fix is to decrease the interrupt priority of
  your MCP (ALM1/2) board (on the hardware and in the kernel).

- If SLIP routes aren't announced to the world, either you aren't running
  'gated', or it is misconfigured.  The 'routed' program can't deal with
  point-to-point routes.

- If you experience interoperability problems, check and double-check the
  baudrate of the line at both ends.  One way to force the baudrate is to
  use:  (stty 19200 ; sliplogin ... ) < /dev/ttyb > /dev/ttyb &

Thanks to:	Doug Kingston for testing this in a real environment and
		for the tip w/ slip and sliplogin support;

		Guy Harris for bringing the documentation in line with
		SunOS standards and for stylistic cleanups in the code;

		Greg Earle for the tip/uucp compatible locking in sliplogin.

Let me know if you make fixes or major changes to any of this stuff.

Rayan Zachariassen <rayan@ai.toronto.edu>
881003,890601
