etherppp read.me file
 
 
Merit Network, Inc.
 
PPP Packet Driver Documentation     August 5, 1993
 
This PPP packet driver was developed at, and is copyrighted by, the Merit
Network, Inc. and the University of Michigan.  Merit and the University of
Michigan grant an unlimited license for use and redistribution of the
executable program provided that it is not sold for profit, either as is or
as part of another product.  Charges to cover the cost of duplication and
distribution are permitted.  The Packet Driver is offerred "as is" - neither
Merit nor the University of Michigan make any guarantees about the
performance or reliability of the software.

The Packet Driver was developed to allow NCSA TELNET, version 2.3, for DOS to
work over asynchronous serial connections including MichNet public dial-in
lines as well as hardwired SCP connections. The packet driver and NCSA are
bundled together as a package.  This is because the packet driver was written
with a PPP interface to applications, and the released NCSA software does not
support PPP packet interfaces.  The supported NCSA applications, telbin and
ftp server, have been modified by Merit/UM staff to support the PPP packet
driver.

In the future we expect to implement a Packet Driver that presents an
ethernet interface to the application and works over an async PPP network
connection.  When this is available, the PPP packet driver will (we hope)
work with NCSA TELNET as released, and with any other DOS applications, such
as POP (Post Office Protocol) mail, usenet news, or gopher which interface to
ethernet packet driver.  The NCSA services you are getting in this package
are a telnet client and an ftp server.  This documentation provides the
following information:

    I.  What is PPP?  
   II.  What is a packet driver?  
  III.  What files or programs are in this package?
   IV.  How to set your PPP parameters and load PPP
    V.  Information on the CONFIG.PPP file 
   VI.  Authorizing PPP sessions
  VII.  Information on the CONFIG.TEL file 
 VIII.  How to load NCSA
   IX.  Information on the TERMIN.COM file
    X.  Acknowledgements

    I.  What is PPP?
 
        PPP is Point-to-Point Protocol, an Internet standard
        protocol.  It can be faster than Serial Line Framing
        Protocol (SLFP) because of a feature called header
        compression.  For more details on PPP, see the
        September, 1991, MichNet News.  More information    
        can also be found in Request for Comments (RFC) numbers
        1331, 1332, and 1334.
 
   II.  What is a packet driver?
 
        A packet driver is a software program that acts as an         
        interface between applications running on  DOS machines and 
		lower networking layers.
 
  III.  Files or programs in this package 
 
        read.me file (documentation)
        ppp.exe program (packet driver)
        telbin.exe program (ncsa telnet)
        config.tel file (ncsa parameters)
        config.ppp file (optional packet driver parameters)
        stat.exe program  
        termin.com program (uninstalls packet driver)
 
   IV.  How to set your PPP parameters and load PPP
 
        Note:  If you are on a hardwired connection, you will need
        to check that your terminal type is set at the same speed     
        your connection.  See your SCP manager regarding this.
 
  To load the PPP packet driver you can simply enter:
 
         PPP
 
  at your DOS prompt.  This will cause the program to attempt to establish
   a network connection based on the default options of the program.             
  The default values are indicated in the command summary in the next section.
 
  If you need to use a value other than a default you can change the
  value with the "/<o> <v>" syntax where "<o>" is the option you wish
  to change, and "<v>" is the new value to be used.  For example:
 
          ppp /s 9600 /d atdt7473400
 
  would set the the speed to 9600 bps and pass the "atdt7473400" dial
  command to your modem.  You need only include options for the values
  you wish to change, all options not specified will be left at their
  defaults.
 
 
 
  -- Command line options:
 
   /b -- base address of communications (serial) port --             
         default = 0x3F8
 
     The default, 0x3F8, specifies communications (serial) port, 
     COM1. Use this option when base address/irq pair can not be 
     specified by the /c option.
 
   /c -- communications (serial) port -- default = 1 
 
     You can specify which serial port to use through either the "/c"
     option or the "/b" and "/i" options. The following table provides
     the default base address and irq values used for com ports 1-4.

	/c	/b	/i
	-	-----	-
	1	0x3F8	4
	2	0x2F8	3
	3	0x3E8	4
	4	0x2E8	3

     If you need a combination of values not given above, use the 
     /b and /i options to explicately specify them.
 
   /d -- dial commands -- default = ''
 

     This option provides you with a way to specify a connection script
	 to use in establishing initial connection. The default script is
	 set up for a hardwired connection to an SCP. If you are using a 
	 hardwired connection to MichNet you should use the default.
    
	 If you have a dial modem and are connecting to a MichNet SCP, you 
	 can modify the default script to include a modem command.  This 
	 is used to dial a MichNet number.  If your modem supports MNP 
	 you will need to include the AT commands to turn that off as part
	 of the dial string.  Various examples are provided below.

     The command:
 
          /d atdt7644800 
 
     will dial the Ann Arbor 2400bps number from a modem on a tone line. If
     you have a DSI 9624LE modem, and so need to turn off MNP, you would 
     use the command:
 
          /d at*E0dt7473400
 
     The commands for changing the setting of MNP are specific to a modem,
     so you will need to check your manual to determine the ones for your
     modem.  If you need to include a '%' in a modem command you will need
     to double it.  For example, to pass the command "at%E0dt7473400" 
     to your modem you would need to enter it as: /d at%%E0dt7473400  .
 
     If you are using a pulse line you would need to change the "dt" in the
     examples above to a "dp".
 
     In order to completly disable the initial connection sequence use:

	/d none

     If you are calling in to something other than a MichNet SCP it may
     be necessary to set up a connection script different than the
     default.  To do this, use the command:

	/d script
     
     to indicate to the packet driver that it is to get a script from
     the file dial.ppp in the directory where ppp.exe resides.
     The name of the dial script file may be over-riden by setting
     the environment variable DIAL.PPP.

     The file will consist of a series of send and recv commands.

     The format of the commands in the dial script are as follows:

	 send <string>

         recv <waitm> [ <string> ]
	
    where 
         <string> is a C style string.
         <waitms> is a number representing time in milliseconds.

    The string in the recv command is optional. If absent, the script
    receives characters for the time period, and then proceeds to the 
    next command.

    If present, it receives characters until a string match, or the timer
    expires.  If it expires, the script fails.

   An example of a string that might be used to call to the Livingston
   Portmaster to dial the number and wait for the "login:" prompt 
   before initiating PPP is

   send "at\r"
   recv 5000 "OK\r\n"
   send "atdt99999\r"
   recv 60000 "host:"
   recv 2000

   note that the 99999 would need to be changed to the number for the
   Livingston.

   PPP would then use PAP to send id and pw, as in the previous
   examples.
 
   /f -- fifo checking -- default = 1
 
     Initial FIFO check value. If set to one, PPP checks for a 16550a UART
     for the communications port. This allows the high performance FIFO on
     chip to be used. If set to zero, PPP assumes a normal 8250 chip set.
 
   /h -- handware flow-control -- default = 1

     If set to one, PPP uses hardware flow-control. Transmission is only
     allowed if clear-to-send (cts) is enabled. Currently, request-to-send (rts)
     is always enabled. Set to zero if CTS is always high, or not reliably
     asserted.

   /i -- IRQ -- default = 4
 
     The "/i" option sets the interrupt for the communications port.  
     Use this option if the base address/irq pair can not be specified
     by the /c option.
 
   /k -- packet driver class -- default = 1

     The option controls which class the packet driver presents to its
     client. If set to one, if appears as an ethernet class device. If
     set to 15, an SLFP class device.

   /p -- packet driver memory location -- default = 0x60
 
     This is memory address of your machine at which the PPP packet driver
     will be loaded.  You may need to use a different address if you have 
     other packet drivers loaded on your machine.
 
   /q -- "quit" paramter -- default = 0
 
     If set to "1", a soft hangup is performed when the terminate function
     is called. This only works with hayes-compatable modems, as this sends
     "+++" and "ATH0".  If set to "0", a hardware hangup is performed by
     dropping DTR.
 
   /s -- speed -- bit rate of line -- default = 9600

     If you have a hardwired connection you will want to make sure
     your speed matches the speed of your connection.  Also, make
     sure that /d is set to the default or none.
 
   /t -- timeout timer -- default = 180
 
     Various aspects of the connection establishment process use timers.  If 
     attempts to establish a connection are timing out you may need to
     supply a value greater than the 180 second default.
 
   /u -- user identification -- default = ''
 
     The value of this field is used during the connection authorization/
     authentication stage of the connection establishment process.  This 
     value can also be supplied through the CONFIG.PPP file. If you do 
     not supply a value with this option, and are connecting to MichNet
     from a dial-in or public terminal, you will be prompted for one when
     the connection is being setup. 
 
     The value supplied here should be your MichNet authorization code.  The
     code has two parts -- one is the name of the host your account is on
     and the other is the account on that machine.  The two parts are
     separated by a slash '/'.  For example:
 
            um/abcd
 
     would be the authorization code for someone whose userid is "ABCD" on
     the "UM" host at the University of Michigan.  If you do not have an
     authorization server account you can get "Basic Service" by entering the
     username of "anonymous".  When prompted for a password you will give
     the password for your authorization account, or in the case of
     "anonymous", you can enter "guest".
 
     A more complete discussion on PPP session authentication/authorization
     can be found below.
 
   /v -- turn on verbose mode
 
     The default is 0.  To turn it on you use /v 1.
 
 
 
 
  V.   The CONFIG.PPP file:
 
  The CONFIG.PPP file can be used to set the values of some options. The
  use of this file is optional, and can be set off by renaming the file
  provided to some other name.  If this file is turned off, the    
  following two commands are executed:
 
                  ppp quick
                  ppp lcp open
 
  DOS looks for an environment variable, CONFIG.PPP, to find the
  location of the CONFIG.PPP file.  If the file is not found,
  in DOS 3.0 and later, DOS looks for the CONFIG.PPP file in the
  directory where PPP.EXE was run from.  Otherwise, DOS looks
  in the current directory for CONFIG.PPP.
 
   ppp trace <n> -- ppp trace 0
 
     If set to 0, turns off tracing.  If set to 255, turns on all tracing.
     If greater than 0, turns on serious internal problems tracing
     If greater than 1, turns on interoperability problems tracing
     If set to 0x08, traces option negotiation
     If set to 0x40, traces option checking     
     If set to 0x80, gives entry information of every routine
 
     In general you will probably not need (or want) to have tracing turned
 
     on.  Removing this line from the CONFIG.PPP file, or setting the value
     to "0" will turn off tracing.
 
   ppp pap user -- setting user authentication
 
     The syntax of the command is <host>/<username> <password>
     This option allows you to provide authorization information (as outlined
     in the "/u" option above).  Using the "/u" option will override the value
     provided in the CONFIG.PPP file. 
 
        ppp pap user um/abcd
 
     While the password, if included, will be passed through on the
     authorization process, it is not generally a good idea to put
     passwords in files.
 
   ppp quick
 
     The "ppp quick" option sets up a number of defaults, including:
          - Async control character map set to 0x00000000
          - Van Jacobsen header compression turned on
          - Address control field compression turned on
          - Protocol field compression turned on
          - Magic numbers turned on
 
   ppp lcp open        
 
     Opens link control protocol.
 
   ppp ipcp open        
 
     Opens IP control protocol.
 
 
 
 
   VI.  Authenticating/authorizing PPP sessions:
 
     All PPP sessions that are established through "public" connections
     to MichNet (for example, dial-in and public access terminals) are
     required to be authenticated/authorized.  Two levels of service are
     available.
 
     -- Basic Service:
 
        If you do not have a MichNet authorization code you can enter
        "anonymous" at the PPP "User:" prompt. You can enter "guest" when
        prompted for a password.  With basic service you will be able to
        connect to ports 17, (quote of the day), 23 (telnet), and 21 & 20 
        (ftp connection and data), of MichNet hosts.
 
     -- Full Service:
 
        If you provide a validated authorization code and password when
        prompted, you will be given full service.  With full service you
        can telnet to hosts outside of MichNet, as well as reach services
        on ports other than those indicated under "Basic Service".
 
     Detailed information on authorization codes can be found in the
     "AUTHORIZATION server information" option under the ACCESS sub-menu
     of the MichNet help server.  The help server can be reached by entering
     HELP at the MichNet "Which Host?" prompt.
 
 
 
  VII.  The CONFIG.TEL file:
 
     The CONFIG.TEL file includes setup information for the NCSA telnet
     program.  The file includes information about Domain Name Serves,
     as well as options for the location of the PPP packet driver and
     the type of video card being used.  If you change the location of
     the packet driver with the "/p" command line parameter you will
     need to change that value in the CONFIG.TEL file as well.
 
     We have encountered some problems using the NCSA package over
     slow connections (1200bps or lower).  We will be doing some
     further testing and will provide a modified CONFIG.TEL file 
     when these problems have been resolved.
 

 
 
 VIII.  HOW TO LOAD NCSA
 
         At your DOS prompt type
 
             telbin <hostname>
 
         NCSA documentation is in the public domain and can
         be ftp-ed from the following site:
 
              ftp ftp.ncsa.uiuc.edu
 
              change to the PC/Telnet directory
 
 
   IX.  TERMIN.COM program:
 
     The TERMIN.COM program can be used to unload the PPP packet driver
     (and drop the modem connection), when you are done.  To use the
     program you enter:
 
          termin 0x60
 
     at the DOS prompt to remove the packet driver at the memory address
     "0x60" (which is the default).  If you have loaded the packet driver
     at a different address you will need to replace "0x60" with that 
     alternate value.
 
     If your modem doesn't hang up after executing TERMIN.COM,  
     make sure your modem does not ignore DTR.  Check your 
     modem manual to find out how to make your modem not ignore
     DTR.
 
               ***end of documentation***
 
  X.    ACKNOWLEDGEMENTS

	 The PPP core software engine is based on public domain code written
	 by William Allen Simpson, taken from KA9Q.  All modifications to
	 the PPP core software engine necessary to deveop the PPP packet
	 driver and bring the implementation to compliance with RFCs 1331,
	 1332, and 1334 have been performaed by Merit Network, Inc. and the
	 University of Michigan.

	 In recognition of his original work, William Allen Simpson has been
	 granted copyright for the PPP core software engine.  The TCP header
	 compression routines used in the Packet Driver were written by Van
	 Jacobsen and are Copyrigh 1989 REgents of the University of
	 California.  These routines were heavily modified by Katie Stevens
	 and William Allen Simpson.  Some routines written by Phil Karn are
	 covered by the KA9Q distribution copyright.

	 Primary development of the PPP packet driver at Merit Network,
	 Inc., and the University of Michigan was done by Glenn McGregor.


     If you have questions regarding any of this documentation,
     contact the computing help desk at your local institution.
 
 
     copyright, 1993, Merit Network, Inc.
