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 "/ " syntax where "" is the option you wish to change, and "" 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 recv [ ] where is a C style string. 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 -- 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 / 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 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.