Dialup PPP, release 2.0

This software was developed to provide dialup on demand PPP over high speed
modems.  The software has been running on SunOS4.1.1 and seems to work.
It will probably not work on anything but SunOS4 (Solaris 1.0).
It relies on STREAMS support.  It is possible to make it work
in a non-streams environment, but I have not done that.

I don't have time to support this software in any way.  However,
I would be glad to here of any fixes for this software, and will try
to incorporate such fixes into future releases.  There is very little
documentation, so this may not be the best route for the faint hearted
system administrator.

Companies sell products that do things similar to this.  I believe that
this software incorporates some unique features and has value in itself.
However, if you want a supported product, you might want to shop around.
Morning Star Technologies is one company that I know of
(marketing@morningstar.com).

If you want on a mailing list for info about bug fixes or new releases,
just send me your email address.

				Kirk Smith
				Purdue Agricultural Computer Network
				ks@acn.purdue.edu


dp	This directory contains a slightly modified version of the CMU
	PPP code.  It has been modified to keep the network level interface
	"up" even though the hardware level interface has gone down for
	a while (disconnected due to some timeout).

dpd	This is originally based on the diald program from BBN.
	It has been heavily modified to handle PPP rather than slip,
	and to handle the different kernel interfaces.
	Some of the enhancements include.

	Expanded (backwards compatible) expect script syntax for quicker error
	handling.
	Handles connection requests that can include more than the IP header
	for possible future screening based on TCP or UDP ports.
	dplogin.c module provides a login shell with logging similar to dpd.
	uucp locking is compatible with Sun conventions.
	New configuration file allows setting of several options and timeouts.
	Timeout mechanism has been expanded.
	A modem rotary supports a list of modems to be used in rotation.
	Several other smaller enhancements were made.

sys	This is the kernel support.  dp_if.c is based on the ppp_if.c module
	from Clarkson University.  It has been expanded to keep track of
	connection status. Several timeouts have been implemented including:
	callwait:	time to wait for a call to complete
	failedcall:	time to wait before trying another call
	inactivity:	disconnect after no packets in A seconds.
	tcp_close:	disconnect C seconds after last TCP connection
			is closed and no packets.
	non_tcp:	disconnect U seconds after last non-TCP packet
			given no activity and no TCP connections.
	This stuff can be set from the dp configuration file.
	A completely new module keeps track of TCP connections in progress
	and will notice when all connections close and the line can be
	disconnected using one of the "fast timeouts" (tcp_close or non_tcp).
	The Van Jacobson header compression code is included and works well
	with this package.  ppp_dial.c is a streams device driver to shuffle
	requests for dialing from the kernel network inteface to the
	user level dialing program (dpd)

modem	This contains a program to set modem options on Hayes compatible
	modems.  The T1600 and T3000 modem scripts have been used.
	Be sure to turn on ttysoftcar before using these scripts.

dptrace A simple program to print the request trace file.
	This could be updated to use more symbolic names, but is useful
	as it is to figure out what protocols are using the network
	interfaces.

We have password file entries that look like the following:

    Pvigo:XXXXXXXXXXXXX:884:800:PPP Vigo county:/var/adm/dp:/usr/etc/dplogin

and a groups file entry like:

    ppp:*:800:ks,Pkoscius,Pmarion,Pmarshal,Pvigo

The installed files have these modes:

   2 -rw-------  1 root         1221 Mar 12 07:41 /etc/dp/config/dp-conf
   1 -rw-------  1 root          814 Mar 12 10:40 /etc/dp/config/suvon.access
   1 -rw-------  1 root          813 Mar 12 14:24 /etc/dp/config/toll.access

   2 -rw-r--r--  1 root         1868 Mar 11 13:20 /etc/dp/script/ppp-login
   1 -rw-r--r--  1 root          938 Mar  9 16:14 /etc/dp/script/t1600-dial
   2 -rw-r--r--  1 root         1040 Mar  9 16:15 /etc/dp/script/t3000-dial

  48 -rwxr-x---  1 root     ppp         49152 Mar  9 15:35 /usr/etc/dp
  56 -rwxr-xr-x  1 root     staff       57344 Mar 10 14:51 /usr/etc/dpd
  32 -rwsr-x---  1 root     ppp         32768 Mar 10 14:51 /usr/etc/dplogin
  40 -rwxr-sr-x  1 root     kmem        40960 Mar  9 07:20 /usr/etc/dpstats
  16 -rwxr-xr-x  1 root     staff       16384 Mar 12 09:30 /usr/etc/dptrace

We are using the same modem for dial in and dial out by using the Sun
device driver mechanisms.  We are running this software on both Sun ports and
ports on a Central Data scsiTerminal Server.

We found throughput on Telebit Trailblazer modems to be very erratic.
Sometimes it was good, but usually it sucked.
However, both the Telebit T1600 and T3000 modems work quite well.
V.32 throughput reported by ftp was about 1.5 Kbytes/sec for binary files
and about 2.5 Kbytes/sec for text files.

TODO:

Queue "interactive" packets in a "fast queue".
Provide more administration tools.
Provide link activity summaries.
Provide packet/byte counts on a per connection or per interface basis.
