home *** CD-ROM | disk | FTP | other *** search
/ BUG 12 / BUGCD1998_03.ISO / internet / arachne / arachne.exe / DOSPPPD.TXT < prev    next >
Text File  |  1997-11-20  |  59KB  |  1,321 lines

  1.  
  2. Note: I created this file by merging README.TXT and PPPD.MAN from
  3. DOSPPPD.ZIP archive. Forget CHAT.EXE - Arachne uses it's own dialer,
  4. called MINITERM.EXE, which reads ARACHNE.CFG and can be used both as
  5. terminal for manual login or as dialer with autologin.
  6.  
  7. Arachne also automagicaly creates file PPPDRC.CFG used by PPPD.EXE,
  8. using values from ARACHNE.CFG configuration file.
  9.  
  10. Please send any comments to ARACHNE+DOSPPPD solution to xchaos@main.naf.cz
  11.  
  12. --- Begin (original filename: README.TXT) ---
  13. PPPD for DOS 0.6 beta               Copyright (c) 1997 Antonio Lopez Molero
  14.  
  15.  
  16. CONTENTS
  17.  
  18.         INTRODUCTION
  19.         WHO AM I
  20.         LICENSING
  21.         CREDITS
  22.         ACKNOWLEDGEMENTS
  23.         FEATURES
  24.         UNSUPPORTED FEATURES
  25.         FILES
  26.         INSTALLATION
  27.         CONFIGURATION AND USE
  28.         CONFIGURATION FILES
  29.         PAP/CHAP AUTHENTICATION
  30.         VJ HEADER COMPRESSION
  31.         BOOTP PROTOCOL EMULATION
  32.         PACKET DRIVER STATISTICS
  33.         REMOVING THE DRIVER
  34.         ABOUT THE VARIOUS DRIVER EXECUTABLES
  35.         DEBUGGING CONNECTION PROBLEMS
  36.         ABOUT CHAT AND CHAT0
  37.         UNIQUE DOS CHAT FEATURES
  38.         CONFIGURING DOS INTERNET APPLICATIONS
  39.         SITES WITH ADDITIONAL DOS INTERNET STUFF
  40.  
  41.  
  42. INTRODUCTION
  43.  
  44.     This is the second release of my DOS PPP packet driver. This work is
  45.     derived from various sources. The bulk of the PPP code is taken from
  46.     the ppp2.2.0f PPP daemon version, the serial port handling code is
  47.     derived from the KA9Q network operating system, and the packet driver
  48.     interface code is derived from the CRYNWR packet driver collection.
  49.  
  50.     I did the tedious work of joining all these pieces and making it work
  51.     as a TSR under our old friend DOS. I learned a lot about DOS TSR
  52.     programming and the PPP protocol internals.
  53.  
  54.     I was pushed into developing this driver by the necessity of having
  55.     something more stable than, and not as memory hungry as, the available
  56.     DOS PPP packet drivers. I also enjoy free software so I felt that
  57.     contributing to it in some way would be a nice thing to do.
  58.  
  59.     DOS still alive and there are a number of applications for this driver.
  60.     The most obvious is for surfing the NET, as there are a number of good
  61.     DOS programs for that. I enclose a list of locations where you can find
  62.     such applications later in document. Another interesting field of
  63.     application is in embedded PC computers used in industrial systems. For
  64.     some palmtop computers that can't run the Windows CE version, this
  65.     driver is a good alternative when used in conjunction with DOS internet
  66.     programs.
  67.  
  68.  
  69. WHO AM I
  70.  
  71.     My name is Antonio Lopez (Toni). I work at the R+D dept. of a Process
  72.     Automation firm in Spain. You can contact me at the following e-mail
  73.     addresses:
  74.  
  75.         tonilop@redestb.es
  76.         tonilop@ibm.net
  77.  
  78.     My English is not as good as I would like; I apologize for that.
  79.  
  80.     This work was done at home, and has nothing to do with my actual job.
  81.     I'm responsible for the entire project. Don't bother the authors of the
  82.     original code with bug reports; ask me.
  83.  
  84.  
  85. LICENSING
  86.  
  87.     The TERMIN.COM and PKTSTAT.COM programs are copyrighted by Russell
  88.     Nelson and are released under the GNU public license. I provided it
  89.     only as a convenience for users. You can download it from many places.
  90.  
  91.     COMTOOL.COM and COMTOOL.DOC are copyright by K.H. Weiss. They are
  92.     freely distributable for non commercial use. Again, I provide these
  93.     files only as a convenience for users.
  94.  
  95.     The CHAT source code is in the public domain, so CHAT.EXE and CHAT0.EXE
  96.     are in the public domain too.
  97.  
  98.     The PPP code on which my work is based holds the following copyright:
  99.  
  100.     ***********************************************************************
  101.     * Copyright (c) 1989 Carnegie Mellon University.                      *
  102.     * All rights reserved.                                                *
  103.     *                                                                     *
  104.     * Redistribution and use in source and binary forms are permitted     *
  105.     * provided that the above copyright notice and this paragraph are     *
  106.     * duplicated in all such forms and that any documentation,            *
  107.     * advertising materials, and other materials related to such          *
  108.     * distribution and use acknowledge that the software was developed    *
  109.     * by Carnegie Mellon University.  The name of the                     *
  110.     * University may not be used to endorse or promote products derived   *
  111.     * from this software without specific prior written permission.       *
  112.     * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR      *
  113.     * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED      *
  114.     * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. *
  115.     ***********************************************************************
  116.  
  117.     I release the package under the following conditions:
  118.  
  119.         All products mentioned in this documentation which are patented,
  120.         copyrighted or are trademarks are the property of their respective
  121.         owners.
  122.  
  123.         The various source modules written from scratch for DOS support,
  124.         the README.TXT, SAMPLES.TXT, DOSPPPD.FAQ, CHANGELO.TXT and
  125.         VJCSTAT.EXE files are Copyright (c) 1997 by Antonio Lopez Molero.
  126.         All applicable rights reserved.
  127.  
  128.         DOS PPPD can be freely distributed for NON COMMERCIAL use, provided
  129.         you include this copyright notice in all the copies or derivative
  130.         works.  You can charge money for the process of
  131.         copying/transferring the files, but not for the software itself.
  132.         You can't include DOS PPPD as part of a commercial package without
  133.         prior writen permission from the author.
  134.  
  135.         DOS PPPD IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, either
  136.         expressed or implied, including, but not limited to, the implied
  137.         warranties of merchantability and fitness for a particular purpose.
  138.         The entire risk as to the quality and performance of the product is
  139.         with the user. This documentation explicitly states that DOS PPPD
  140.         will not work properly in some circumstances; the user assumes the
  141.         cost of all necessary servicing, repair or correction.
  142.  
  143.         In no event will Antonio Lopez Molero be liable for damages,
  144.         including any general, special, incidental or consequential damages
  145.         arising out of the use of, or inability to use, DOS PPPD (including
  146.         but not limited to loss of data or data being rendered inaccurate
  147.         or losses sustained by the user or third parties or a failure of
  148.         the product to operate with any other programs), even if the author
  149.         has been advised of the possibility of such damages.
  150.  
  151.         You may use DOS PPPD only if you have read, understood and accepted
  152.         all of the above conditions.
  153.  
  154.         Please contact me to report bugs or errors in the document (even
  155.         minor ones). If you are an application developer or packet driver
  156.         programmer and have constructive suggestions for improving the
  157.         performance of DOS PPPD I'd be glad to hear from you.
  158.  
  159.     Although I have a real job, donations will be greatly appreciated if
  160.     you feel the need to make them ;-) If you are going to use DOS PPPD in
  161.     a bussines environment, then a donation is strongly encouraged, if only
  162.     for ethic purposes. Please contact me for details.
  163.  
  164.  
  165. CREDITS
  166.  
  167.     Credit for the PPP code goes to Al Longyear and Mike Callahan, the
  168.     creators of the ppp2.2.0f package. The original PPP code was created
  169.     by: Drew Perkins, Brad Clements, Karl Fox, Greg Christy, Brad Parker
  170.     and Paul Mackerras.
  171.  
  172.     Credit for the serial port code goes to Phil Kharn, the creator of the
  173.     excellent KA9Q Network Operating System.
  174.  
  175.     Credit for the packet driver code goes to Russell Nelson, the creator
  176.     and maintainer of the superb CRYNWR packet driver collection.
  177.  
  178.     Credit for the BOOTP code goes to Bruce Campbell, the creator of the
  179.     BOOTP packet driver add-on.
  180.  
  181.     I must mention Frank Molzahn, the creator of PPPPKT06. I used his
  182.     techniques for netmask calculation based in remote/local IP addresses.
  183.  
  184.  
  185. ACKNOWLEDGEMENTS
  186.  
  187.     Many people has provided feedback or even contributed to DOS PPPD
  188.     development, The following is a partial list:
  189.  
  190.     Jeffrey L. Hayes, he was the first beta tester for 0.5 release and did
  191.     a fine job making corrections to my poor written documentation. He also
  192.     provided his site for hosting DOS PPPD before it was submitted to
  193.     Simtelnet, and developed detailed instructions for use it with his ISP.
  194.  
  195.     John Lewis from the BOBCAT team, he trusted DOS PPPD enough for
  196.     including it as part of BOBCAT browser package.
  197.  
  198.     Frank Molzhan, who provided insight into important DOS & Internet
  199.     topics, and encouraged me for continuing DOS PPPD development. He
  200.     recently developed a very efficient SLIP/CSLIP drivers, which are a
  201.     very good alternative to DOS PPPD for users who still using that
  202.     connection method.  Look in the links section for a place where to find
  203.     his drivers.
  204.  
  205.     Ralph Shnelvar, who provided feedback and bussines oportunities for
  206.     other DOS TCP/IP tools development.
  207.  
  208.     Richard White, who trusted DOS PPPD so much, and do use it for serious
  209.     applications.
  210.  
  211.     Nigel Gorry, who maintains a WEB page about DOS and Internet, he
  212.     provided suggestions for a better DOS PPPD, has put links to DOS
  213.     PPPD archives on his page and provided some brief instructions aswell.
  214.  
  215.     Alfredo J. Coole, the developer of the enclosed SETUP program. He also
  216.     encouraged me and provided suggestions for DOS PPPD.
  217.  
  218.     Jeff Patterson, developer of the only IRC DOS client I can use every
  219.     day. He provided interesting discussions about DOS PPPD.
  220.  
  221.     Karl-Heinz Weiss, developer of the UKA_PPP package, he trusted DOS
  222.     PPPD enough for including it in the UKA_PPP package.
  223.  
  224.     Jim Casey, Sysop at the Internet Resources Forum on Compuserve, who
  225.     invited me to a forum discussing the future of DOS in Internet.
  226.  
  227.     Lots of people, in no particular order:
  228.     Carlos V. Gutierrez Fragosa, Matthew Grimm, Sam Bushman, Follower of
  229.     the Clawed Albino ??, Krishnamurti Subramanian, Morten Johansen,
  230.     Pablo Carboni, Paul Koukos, Kalle Pihlajasaari, Alberto Gonzalez
  231.     Talavan, Kevin CN Tan, Modhav Gokhale, Chris Blazie, Rian Coutinho,
  232.     Lars Wigrell, Michael Polak, Fernando Navarro Paez, Morgan Toal,
  233.     Soichiro Ishizuka, Super Ted, Juan H. Koers, Ki var, Brad Hlista,
  234.     Sean Doherty, Peter Bel, Jesus Barcelo, Andre LeClaire, Yury Semenov,
  235.     David Bernal, Agustin Vega, Don Johnson, Keith Weisshar, Ian Smith,
  236.     Rene Ludwig, Dave Mehler, Giancarlo Guareschi, ...
  237.  
  238.     I'm probably missing people from the list, but I can't remember every
  239.     one who contacted me, so I apologize for that.
  240.  
  241.  
  242. FEATURES
  243.  
  244.     The code is compiled for an 8088 CPU, so it should run on XT class
  245.     machines. I have no access to any XT machine, so I was unable to test
  246.     it on one. However, users of the previous release reported success in
  247.     using DOS PPPD on XT hardware.
  248.  
  249.     The 16550AFN UART is supported, allowing reliable communications up to
  250.     115200 baud speed. The chip is autodetected and the FIFO enabled with
  251.     an 8 byte receiver threshold. The transmitter is set up for a 16 byte
  252.     output FIFO.
  253.  
  254.     The drivers conforms to FTP packet driver specification 1.09, same as
  255.     the ones in the superb CRYNWR packet driver collection.
  256.  
  257.     Both class 1 (ethernet) and class 6 (serial line) drivers are included
  258.     in the package.
  259.  
  260.     The class 1 drivers emulate a BOOTP server, so automatic configuration
  261.     of DOS applications through BOOTP is possible.
  262.  
  263.     A DOS batch file for setting environment variables with the actual
  264.     TCP/IP data for the connection is created.
  265.  
  266.     Most of the original PPPD options are supported, including PAP/CHAP
  267.     authentication and VJ header compression. The next section covers what
  268.     is not supported.
  269.  
  270.  
  271. UNSUPPORTED FEATURES
  272.  
  273.     CCP (compression control protocol, used for negotiating data field
  274.     compression), IPX style packets, authentication of the peer (we can
  275.     authenticate ourselves using PAP, however), PPP server mode, PAP/CHAP
  276.     password encryption, defaultroute option, proxyarp option, noipdefault
  277.     option.
  278.  
  279.  
  280. FILES
  281.  
  282.     DOS PPPD is distributed as a single .ZIP file, containing:
  283.  
  284.         README.TXT      This file.
  285.  
  286.         SAMPLES.TXT     Some sample configurations for PPPD use. I use
  287.                         these to connect to my ISP.
  288.  
  289.         CHANGELO.TXT    Summary of changes among versions.
  290.  
  291.         DOSPPPD.FAQ     An atempt to make a recopilation of common problems
  292.                         with their solutions, based on users feedback.
  293.  
  294.         PPPD.MAN        A plain ASCII version of the UNIX pppd man page,
  295.                         adapted for the DOS version.
  296.  
  297.         CHAT.MAN        A plain ASCII version of the UNIX chat man page,
  298.                         adapted for the DOS version.
  299.  
  300.         PPPD.EXE        Class 6 (serial line) PPP driver without debug
  301.                         capability, no CHAP support, smallest.
  302.  
  303.         PPPDD.EXE       Class 6 (serial line) PPP driver with debug
  304.                         capability, no CHAP support.
  305.  
  306.         EPPPD.EXE       Class 1 (ethernet emulation) PPP driver without
  307.                         debug capability, no CHAP support. Emulates ARP and
  308.                         BOOTP replies to help configure DOS applications.
  309.  
  310.         EPPPDD.EXE      Same as above but with debug capability, no CHAP
  311.                         support, largest.
  312.  
  313.         VJCSTAT.EXE     Utility for displaying VJ header compression
  314.                         statistics.
  315.  
  316.         PKTSTAT.COM     Utility for displaying packet driver statistics.
  317.  
  318.         TERMIN.COM      Packet driver terminator.
  319.  
  320.         CHAT.EXE        Modem connection tool for use with the 'connect'
  321.                         option from PPPD. It can not be used standalone.
  322.  
  323.         CHAT0.EXE       Modem connection tool for standalone use.
  324.  
  325.         COMTOOL.COM     Tiny serial port manipulation utility.
  326.  
  327.         COMTOOL.DOC     Documentation for COMTOOL.
  328.  
  329.         SPANISH.ZIP     Archive containing spanish language documentation.
  330.  
  331.         CHAPSUPP.ZIP    Archive containing driver executables with CHAP
  332.                         support compiled in.
  333.  
  334.         SETUP.ZIP       Archive containing Alfredo J. Coole's DOS PPPD
  335.                         Setup program.
  336.  
  337.  
  338. INSTALLATION
  339.  
  340.     Create a directory of your choice, say C:\DOSPPP, and unzip the
  341.     distribution file in it. If you are (or speak) spanish, unzip the
  342.     SPANISH.ZIP in the same directory, all the documentation files will be
  343.     overwritten by spanish language versions. If you do need CHAP support,
  344.     unzip the CHAPSUPP.ZIP file in the same directory, PPP driver
  345.     executables will be overwritten by ones with CHAP support compiled in.
  346.     If you do want to use the helper SETUP application, unzip the SETUP.ZIP
  347.     file in the same directory.
  348.  
  349.     After unziping the required files, you must configure DOS PPPD before
  350.     being able to use it. For configuring DOS PPPD using the helper SETUP
  351.     application, please read the SETUP.TXT file. If you want to manually
  352.     configure it, please read the following sections of this document. It
  353.     is a good idea to read them even if you are going to use SETUP.
  354.  
  355.  
  356. CONFIGURATION AND USE
  357.  
  358.     I tried to mimic the original PPPD version as much as possible, so any
  359.     experience you might have with it may prove useful with this program.
  360.  
  361.     For a complete reference of PPPD and CHAT options, look at the files
  362.     PPPD.MAN and CHAT.MAN. These files were adapted from the original man
  363.     pages. The SAMPLES.TXT file contains detailed configuration examples, I
  364.     will give an usage overview here.
  365.  
  366.     The process of establishing a PPP link can be divided into two clearly
  367.     separate actions, connection of the physical serial line and execution
  368.     of a PPP process responsible for the actual TCP/IP communications.
  369.  
  370.     The physical serial line connection would be different for modem links
  371.     than for cable serial links. The former requires some mechanism for
  372.     talking to the modem, making it dial and establishing a connection with
  373.     the modem on the other end. The latter doesn't require that step, as
  374.     the serial ports are directly attached via a cable.
  375.  
  376.     For modem links you have two ways of making the connection. One is to
  377.     use some program prior to PPPD execution that interacts with the modem
  378.     and leaves the connection open after exiting. You then run PPPD, which
  379.     takes over the link and begins its negotiations. One such program is
  380.     KERMIT, a general purpose terminal emulator for the PC. You can also
  381.     use the enclosed CHAT0.EXE program to connect in that way.
  382.  
  383.     The second way is to use the 'connect' option from PPPD to specify a
  384.     program that must be run for modem handling. At the moment you can only
  385.     use the enclosed CHAT.EXE program for this, as the COM port is
  386.     internally handled by PPPD, and there is a private interface between
  387.     the two programs that allows CHAT to use whatever port PPPD is
  388.     configured to use. That is necessary because you can't do the serial
  389.     port stuff under DOS the same way you do under *NIX. When running under
  390.     *NIX OS, CHAT uses stdin/stdout for its I/O. Those file handles are
  391.     redirected by PPPD to the serial port before invoking the 'connect'
  392.     script.
  393.  
  394.     In any case you specify the serial port to use and some other stuff via
  395.     options to PPPD. Those options can be given on the command line or
  396.     taken from an options file. CHAT only supports command line options,
  397.     but the CHAT script can be in a file.
  398.  
  399.     A tiny sample usage of DOS PPPD with modem follows:
  400.  
  401.         pppd com1 38400 connect "chat '' AT&F OK ATDP055 CONNECT"
  402.  
  403.     In this sample we are using the enclosed CHAT.EXE program to talk to
  404.     the modem using the port settings inherited from DOS PPPD.
  405.  
  406.     The DOS PPPD program sets up COM1 at 38400 baud speed and then invokes
  407.     CHAT to establish the serial link. The chat script shown expects
  408.     nothing, sends AT&F, expects OK, sends ATDP055 and expects CONNECT. If
  409.     all of these expect/send pairs succeed, CHAT exits with a 0 exit code
  410.     signaling to PPPD that it can proceed with PPP negotiations. If some
  411.     error occured during the CHAT phase, the CHAT program returns a nonzero
  412.     exit code that signals to DOS PPPD that something was wrong with the
  413.     connection.
  414.  
  415.     Assuming CHAT succeeds, then DOS PPPD's next job is to negotiate IP
  416.     link establishment. Only when that link is successfully negotiated will
  417.     DOS PPPD stay resident in memory as a packet driver. In all other cases
  418.     the program exits with a nonzero exit code and does not remain
  419.     resident.
  420.  
  421.     A message showing the packet driver interrupt used by the driver will
  422.     be displayed upon successful link establishment. If the driver can't
  423.     establish a successful PPP link, an error message will be displayed.
  424.  
  425.     The DOS PPPD exit code may be checked in DOS batch files in order to
  426.     trigger the appropiate actions based on whether the connection was
  427.     successful or unsuccessful.
  428.  
  429.     For directly attached computers, one would simply do:
  430.  
  431.         pppd com1 38400 local
  432.  
  433.     The 'local' option forces DOS PPPD to ignore the CARRIER DETECT line,
  434.     which may not be available for the cable connection.
  435.  
  436.  
  437. CONFIGURATION FILES
  438.  
  439.     The DOS PPPD program looks for options in several places besides the
  440.     command line. The names and search order for the files are as follows:
  441.  
  442.         PPPD.CFG                in the current directory.
  443.         PPPD.CFG                in the same directory PPPD.EXE is located.
  444.         PPPDRC.CFG              in the current directory.
  445.         command line options
  446.         pppd 'file' option      full path given.
  447.         PPPDCOM?.CFG            in the current directory.
  448.  
  449.     PPPD.CFG can be viewed as a global options file, as it can be located
  450.     under the same directory PPPD.EXE resides.
  451.  
  452.     PPPDCOM?.CFG completes its name based on the COM port used, so invoking
  453.     'pppd com1' will look for a PPPDCOM1.CFG file.
  454.  
  455.     All the files excluding the one given with the 'file' option are
  456.     optional and don't need to exist for PPPD to operate. However, the use
  457.     of configuration files is a practical necessity due to restrictions on
  458.     the length of the the DOS command line.
  459.  
  460.     These files can be given hidden/system/read-only DOS attributes, as the
  461.     PAP/CHAP passwords (if used) must be included in them. I know that that
  462.     a very poor security implementation, but it is all that can be done
  463.     under DOS until I implement password encryption.
  464.  
  465.  
  466. PAP/CHAP AUTHENTICATION
  467.  
  468.     These methods of authentication are supported by the driver. There is
  469.     no /etc/pap-secrets nor /etc/chap-secrets file under DOS, so I took the
  470.     approach of implementing a new PPPD option, 'passwd'. This one, in
  471.     conjunction with the 'user' option, provides DOS PPPD with the
  472.     necessary data for authenticating itself with the peer. Note that there
  473.     is no way to specify a remote name, which original *NIX pppd uses for
  474.     selecting a secret from one of the authentication files. In CHAP mode
  475.     the remote adds its hostname to the CHAP challenge, so the local pppd
  476.     can look in the /etc/chap-secrets file for a secret that matches a
  477.     particular remote host. DOS PPPD always sends the same user/passwd
  478.     secret regardless of the remote hostname.
  479.  
  480.     A typical use would be:
  481.  
  482.         pppd com1 38400 user self passwd blah connect "chat '' ATDP055 CONNECT"
  483.  
  484.     These options can be include in a configuration file that has the
  485.     hidden attribute, for example the file myppp.cfg containing:
  486.  
  487.         com1
  488.         38400
  489.         modem
  490.         asyncmap 0
  491.         connect "chat '' AT&F OK ATDP055 CONNECT"
  492.         user someuser
  493.         passwd blah2blah
  494.  
  495.     You can run PPPD with:
  496.  
  497.         pppd file myppp.cfg
  498.  
  499.     In fact, the above options could be in any of the automatic
  500.     configuration files searched by PPPD and then you can forget the 'file'
  501.     option.
  502.  
  503.     The 'user' and 'passwd' fields can be surrounded in double quotes in
  504.     case there are embedded blanks or characters that may be interpreted by
  505.     PPPD's options parser.
  506.  
  507.     An alternative source for PAP/CHAP authentication data can be given
  508.     with the '+ua' option. You give the name of a file that contains the
  509.     user id and the password, for example assume a file called AUTHEN.DAT:
  510.  
  511.         pppuser
  512.         pppuser_password
  513.  
  514.     Then invoke PPPD as:
  515.  
  516.         pppd com1 38400 +ua authen.dat
  517.  
  518.     The file can have the hidden attribute set.
  519.  
  520.  
  521. VJ HEADER COMPRESSION
  522.  
  523.     This release supports VJ header compression, and the driver tries to
  524.     use it by default unless the peer forbid it during IPCP negotiations.
  525.     VJ compression reduces the length of TCP/IP headers, and theoretically
  526.     boosts performance over slow lines and interactive connections like
  527.     TELNET. I said theoretically because VJ compression involves some CPU
  528.     overhead, that might be noticed on slow CPUs (i.e. 4.77 Mhz 8088).
  529.     There are options for disabling it (-vj, DOS PPPD will not negotiate
  530.     nor allow the peer to use it), consult PPPD.MAN for more information.
  531.  
  532.  
  533. BOOTP PROTOCOL EMULATION
  534.  
  535.     Some DOS Internet applications support a method for automatic TCP/IP
  536.     configuration, called the BOOTP protocol. The Ethernet emulation
  537.     versions of the DOS PPPD driver support this form of configuration,
  538.     acting as fake BOOTP servers that generate a reply when they see a
  539.     BOOTP request.
  540.  
  541.     In order to fully support the BOOTP protocol, I added an option that
  542.     doesn't exist in the original DOS PPPD code. The option is 'namsrv' and
  543.     is intended for specifiying up to two nameservers' IP addresses that
  544.     will be sent to the application doing a BOOTP request. The rest of
  545.     BOOTP information is generated from the local/remote IPs negotiated by
  546.     DOS PPPD during the link establishment phase.
  547.  
  548.     The remote IP will be used for the gateway address and server address;
  549.     the local IP will be used for 'your_ip' address. The netmask is
  550.     calculated by the following method:
  551.  
  552.     First, a value is obtained based just on the class (i.e. class A, B or
  553.     C) of the local IP, specifically:
  554.  
  555.     class A ==> 255.0.0.0
  556.     class B ==> 255.255.0.0
  557.     class C ==> 255.255.255.0
  558.  
  559.     If this value is consistent with the gateway's IP number, that is, if:
  560.  
  561.     ( <netmask> & <gateway> ) = ( <netmask> & <localIP> )
  562.  
  563.     [where & represents logical AND], then this value is used as the
  564.     netmask.  (See RFC 950.) Otherwise, a different netmask value is
  565.     chosen: it is the largest number which (a) is consistent in the above
  566.     sense, and (b) has a binary form of 1's followed by 0's.
  567.  
  568.     This method is the same used by Frank Molzahn's PPPPKT06 driver. This
  569.     calculated value is then binary ORed with any user supplied value
  570.     through the 'netmask' option.
  571.  
  572.     This netmask calculation method applies to both the class 6 and class 1
  573.     versions of the drivers, regardless of the BOOTP support.
  574.  
  575.  
  576. PACKET DRIVER STATISTICS
  577.  
  578.     Starting with version 0.6 beta, the drivers support the 'get_stats()'
  579.     packet driver function call, so it is possible to make use of the
  580.     CRYNWR PKTSTAT program for displaying number of received packets,
  581.     number of transmit packets, number of receive errors, etc.
  582.  
  583.     Another utility specially developed for DOS PPPD is VJCSTAT, which
  584.     displays statistics about VJ header compression. This one is DOS PPP
  585.     specific, so it won't work with other packet drivers.
  586.  
  587.     Both utilities should be run from the command line, and accept an
  588.     optional parameter for the packet driver vector to look at. If you
  589.     don't provide a vector number, the first one found in the valid packet
  590.     driver vector range is reported.
  591.  
  592.     These utilities are useful for determining the reliability of the PPP
  593.     connection, and for debug purposes. For example, if PKTSTAT reports a
  594.     large number of dropped packets, but the received packet error count is
  595.     0, then it means that some application that uses the packet driver is
  596.     running out of buffers when packets arrive too fast. It can also mean
  597.     that you are receiving unsupported PPP frame types, like CCP or some
  598.     kind of Microsoft PPP protocol extensions.
  599.  
  600.  
  601. REMOVING THE DRIVER
  602.  
  603.     To remove the driver, use the enclosed TERMIN.COM program. This is a
  604.     general purpose packet driver terminator, part of the CRYNWR packet
  605.     driver collection.
  606.  
  607.     Call it as:
  608.  
  609.         TERMIN 0xnn
  610.  
  611.     Where nn is the hex number of the interrupt vector used by the
  612.     installed driver, i.e. TERMIN 0x60.
  613.  
  614.     The PPPD driver will send a Terminate request to the peer before being
  615.     removed, so the TERMIN return to the command line will be delayed a
  616.     little. This delay can be of maximum of 10 seconds, depending on how
  617.     fast the peer responds to the terminate request.
  618.  
  619.  
  620. ABOUT THE VARIOUS DRIVER EXECUTABLES
  621.  
  622.     As you noticed, there are four different DOS PPPD executables. The ones
  623.     called PPPD.EXE and PPPDD.EXE are class 6 packet drivers (serial line),
  624.     the later including some debug capabilities that can be used for
  625.     troubleshooting connection problems.
  626.  
  627.     The ones called EPPPD.EXE and EPPPDD.EXE are class 1 packet drivers
  628.     (Ethernet). EPPPDD.EXE contains additional code for debugging
  629.     connection problems. These emulate the behavior of a real Ethernet
  630.     driver, adding an Ethernet header to incoming packets and removing it
  631.     from sent packets. The need for emulation comes from the fact that many
  632.     DOS Internet applications were devised for Ethernet-only packet
  633.     drivers, and can't handle class 6 packet drivers. The Ethernet
  634.     emulation versions support BOOTP, a protocol used by TCP/IP networking
  635.     code to auto-configure workstations via a centralized server.
  636.  
  637.     As noted in the installation section, a separate archive contains
  638.     driver executables with CHAP support, but the names are the sames as
  639.     the above ones. If you require CHAP authentication, simply replace the
  640.     original (no CHAP support) drivers with the ones in CHAPSUPP.ZIP. I
  641.     decided to provide it as separate executables for reducing memory
  642.     requeriments in standar drivers if you do not require CHAP support,
  643.     which is the most common case.
  644.  
  645.  
  646. DEBUGGING CONNECTION PROBLEMS
  647.  
  648.     The executables with debugging capability generate various kinds of
  649.     messages on DOS standard output, and others on DOS standard error. You
  650.     can use redirection to log the standard output to a file; standard
  651.     error can be redirected with the help of some third party utilities.
  652.  
  653.     The debug level is affected by the 'debug' and 'kdebug' options,
  654.     supported only by the PPPDD.EXE and EPPPDD.EXE executables. Look in the
  655.     PPPD.MAN file for a deeper explanation.
  656.  
  657.     The debugging output stops as soon as the driver goes resident;
  658.     supporting disk I/O under DOS TSRs is a difficult task that isn't worth
  659.     the time wasted to implement it.
  660.  
  661.  
  662. ABOUT CHAT AND CHAT0
  663.  
  664.     The CHAT program takes a series of strings called the CHAT script and
  665.     executes an expect/send sequence until it consumes all the script or
  666.     any of the expectations fails.
  667.  
  668.     The CHAT script can be given in the command line or through a file. In
  669.     the DOS world where command line length is restricted, the script file
  670.     is the recommended way unless your CHAT script is very short.
  671.  
  672.     As noted elsewhere in this document, two CHAT versions are enclosed in
  673.     the package. CHAT.EXE is intended to be used with the 'connect' option
  674.     from PPPD. It accesses the serial port through a private interface in
  675.     PPPD.EXE, so it doesn't require options for COM port configuration. It
  676.     uses the port for which DOS PPPD is configured.
  677.  
  678.     CHAT0.EXE can be used standalone, as it incorporates its own routines
  679.     for COM access. Having two versions is convenient, because you can use
  680.     CHAT0.EXE to test your CHAT script before you actually use it with
  681.     CHAT.EXE and the DOS PPPD 'connect' option. CHAT0.EXE will leave the
  682.     DTR line high upon successful termination, so the modem connection will
  683.     be active, and you can run PPPD after that. This behavior is the same
  684.     as if you were using some other dialing program - KERMIT, for example.
  685.  
  686.  
  687. UNIQUE DOS CHAT FEATURES
  688.  
  689.     After porting CHAT code to DOS, I realized that it might be useful to
  690.     enhance it with additional features not found in the original *NIX
  691.     version. I added two new functions, interactive terminal mode and
  692.     string capture.
  693.  
  694.     Interactive terminal mode is useful when you log into systems which
  695.     require convoluted prompts or/and menus, or when you don't know the
  696.     required login sequence beforehand. Interactive mode can be entered at
  697.     an arbitrary chat script location, so it can be used for completing
  698.     selected parts of the login process, i.e.  user id and password. The
  699.     CHAT.MAN and SAMPLES.TXT files contain implementation details and
  700.     examples of CHAT interactive mode.
  701.  
  702.     String capture provides a mechanism for "grabbing" selected parts of
  703.     text sent by the remote system and assign them to DOS environment
  704.     variables. You can capture IP numbers, decimal numbers or arbitrary
  705.     strings; a DOS batch file is generated by CHAT, you can execute it for
  706.     setting the DOS environment variables. This feature is most useful for
  707.     SLIP dial out, where the local and remote IP are reported by the remote
  708.     through the serial line as plain text.
  709.  
  710.     Both CHAT.EXE and CHAT0.EXE support interactive mode and string capture
  711.     functions, althought these make more sense when using CHAT0.EXE as a
  712.     standalone dialer for SLIP links, or non standar PPP implementations
  713.     even.
  714.  
  715.  
  716. CONFIGURING DOS INTERNET APPLICATIONS
  717.  
  718.     There a number of different schemes used by DOS applications to
  719.     configure the required TCP/IP parameters.
  720.  
  721.     Some of them support the BOOTP protocol, a feature that is supported by
  722.     the EPPPD.EXE and EPPPDD.EXE drivers. WATTCP based applications will
  723.     try BOOTP configuration if the WATTCP.CFG file (or equivalent) can't be
  724.     found, or if you put a line: my_ip=bootp in such file. The POPMAIL and
  725.     MINUET applications will use BOOTP if you leave the Network
  726.     configuration dialog boxes blank. Consult the application documentation
  727.     for more info about how to use BOOTP.
  728.  
  729.     If your application doesn't support BOOTP, or if you are using the
  730.     PPPD.EXE or PPPDD.EXE drivers, the configuration must be done by
  731.     another means. All the four drivers generate a .BAT file called IP-
  732.     UP.BAT that is meant to be run after successful connection to set some
  733.     DOS environment variables. Then you can use those variables inside a
  734.     DOS batch file for generating text configuration files, for example the
  735.     WATTCP.CFG file required by WATTCP applications.
  736.  
  737.     The IP-UP.BAT generated by the PPP drivers looks like:
  738.  
  739.         SET MYIP=xxx.xxx.xxx.xxx
  740.         SET REMIP=yyy.yyy.yyy.yyy
  741.         SET NETMASK=zzz.zzz.zzz.zzz
  742.         SET PEERMRU=nnnn
  743.  
  744.     Some of the samples in SAMPLES.TXT file will make use of these
  745.     variables to show how to configure WATTCP applications (DOSLYNX) using
  746.     this technique.
  747.  
  748.     For MINUET and POPMAIL, the environment is searched for a variable
  749.     called MYIP if the corresponding field in the Network configuration
  750.     dialogs is blank. It the variable can't be found, these applications
  751.     try the BOOTP method.
  752.  
  753.     If none of these methods is suitable, you are forced to enter the
  754.     required configuration data every time you run the application. There
  755.     are some cases in which command line arguments can be used for the
  756.     TCP/IP configuration, like the PCGOPHER program (which supports BOOTP
  757.     also).
  758.  
  759.     The file SAMPLES.TXT contains some examples derived from my actual DOS
  760.     application configurations, including DOSLYNX and MINUET.
  761.  
  762.  
  763. SITES WITH ADDITIONAL DOS INTERNET STUFF
  764.  
  765.     The following sites hold lots of good DOS Internet stuff, these are the
  766.     places to go if you are looking for WEB browsers, mailers, etc.
  767.  
  768.     TVDog's DOS Internet page:
  769.  
  770.         http://www.agate.net/~tvdog/internet.html
  771.  
  772.     Frank Molzahn's SLIP/CSLIP packet drivers:
  773.  
  774.         http://home.cc.umanitoba.ca/~molzahn/cslip.html
  775.  
  776.     Nigel's DOS PPP applications unfinished list:
  777.  
  778.         http://www.palms.nq.net/ppp.html
  779.  
  780.     DOSLYNX home page:
  781.  
  782.         http://www.fdisk.com/
  783.  
  784.     KERMIT:
  785.  
  786.         http://www.columbia.edu/kermit/
  787.  
  788.     Althought not an Internet application in its own, kermit can be a
  789.     invaluable terminal emulator and modem dialer. Recent versions
  790.     incorporates the WATTCP TCP/IP kernel, so they can act as good TELNET
  791.     clients when used with a packet driver.
  792.  
  793.     WWW Browsers for DOS:
  794.  
  795.         http://www.concentric.net/~cruzing/dosinet/dosinet.shtml
  796.  
  797.     RealmSpace for the DOS:
  798.  
  799.         http://www.best.com/~darknerd/realmspace/rsdos.htm
  800.  
  801.     DOS INTERNET FILES, INFORMATION, AND LINKS:
  802.  
  803.         http://www.westsound.com/ptmudge/dos_inet.htm
  804.  
  805.     DOS Internet home page:
  806.  
  807.         http://www.wustl.edu/~hugh/dos-www.html
  808.  
  809. --- End (original filename: README.TXT) ---
  810.  
  811. --- Begin (original filename: PPPD.MAN) ---
  812. PPPD for DOS 0.6 beta
  813.  
  814. NAME
  815.        pppd - Point to Point Protocol packet driver
  816.  
  817. SYNOPSIS
  818.        pppd [ COMn ] [ speed ] [ options ]
  819.  
  820. DESCRIPTION
  821.        The Point-to-Point  Protocol (PPP)  provides a  method for
  822.        transmitting datagrams  over serial  point-to-point links.
  823.        PPP is composed of three parts: a method for encapsulating
  824.        datagrams over  serial links,  an extensible  Link Control
  825.        Protocol (LCP), and a family of Network Control  Protocols
  826.        (NCP) for establishing and configuring different  network-
  827.        layer protocols.
  828.  
  829.        DOS  pppd  provides the  encapsulation scheme,  basic LCP,
  830.        authentication support,  and an  NCP for  establishing and
  831.        configuring  the  Internet  Protocol  (IP) (called  the IP
  832.        Control Protocol, IPCP).
  833.  
  834. FREQUENTLY USED OPTIONS
  835.        <COMn>
  836.               Specifies  the  COM port  to use  for communicating
  837.               with the peer.  Port COM1 through COM4 can be used;
  838.               the  standard  base  address  and  IRQ  are assumed
  839.               unless you change the  default with  other options.
  840.               Basic testing (through BIOS) is done to ensure  COM
  841.               availability. If pppd fails with message:
  842.  
  843.                   Invalid COM device COM?
  844.  
  845.               Then probably you  have  a  non  standard  COM port
  846.               setup. Omit the COM? keyword from configuration and
  847.               specify  COM  port  values with  the  following two
  848.               options, base and irq.
  849.  
  850.        base <port address>
  851.               Specifies the base address for the COM port, in the
  852.               event that it is  a non-standard  one.  The  number
  853.               can be entered in hex, octal or decimal,  following
  854.               the C language rules for parsing numbers (0xnnn  is
  855.               hex for example). No attempt is made to verify that
  856.               a valid COM port exists at the address, so use this
  857.               option with care.
  858.  
  859.        irq <IRQ number>
  860.               Specifies the IRQ number used by the COM  port. The
  861.               same considerations as above apply.
  862.  
  863.        pktvec <interrupt number>
  864.               Specifies the interrupt vector number to  be hooked
  865.               by the packet driver interface.  The valid range is
  866.               from 0x60-0x66,  0x68-0x6F and  0x78-0x7E. If  this
  867.               option is  not used,  the driver  searches for  the
  868.               first free vector in this range (usually 0x60).
  869.  
  870.        namsrv <n>
  871.               Set  IP  addresses to  return in  the DNS  field of
  872.               BOOTP  replies.  Supported  only  by  the  ethernet
  873.               emulation versions EPPPD.EXE and EPPPDD.EXE.  Up to
  874.               two nameservers  can be  specified. This  option is
  875.               useful  for  configuring DOS  Internet applications
  876.               through BOOTP.
  877.  
  878.        <speed>
  879.               Specifies the speed for serial comunications. Up to
  880.               115200  baud  can  be  programmed, but  beware that
  881.               serial ports  that have  the old  8250 UART  cannot
  882.               handle  speeds  higher  than  9600  reliably.   The
  883.               number can be entered in hex, octal or  decimal, as
  884.               in the above options.
  885.  
  886.        asyncmap <map>
  887.               Set the  async character  map to  <map>.  This  map
  888.               describes  which   control  characters   cannot  be
  889.               successfully received over the  serial line.   pppd
  890.               will ask the peer to send these characters as a  2-
  891.               byte escape sequence.  The argument is a 32 bit hex
  892.               number with  each bit  representing a  character to
  893.               escape.  Bit 0 (00000001) represents the  character
  894.               0x00; bit  31 (80000000)  represents the  character
  895.               0x1f  or  ^  .   If multiple  asyncmap options  are
  896.               given,  the  values  are  ORed  together.    If  no
  897.               asyncmap option  is given,  no async  character map
  898.               will be negotiated for  the receive  direction; the
  899.               peer should then escape all control characters.
  900.  
  901.        connect <p>
  902.               Use  the  command specified  by <p>  to set  up the
  903.               serial line. The CHAT.EXE program must be used with
  904.               this option, as the COM port  is controled  by pppd
  905.               and a  private interface  is used  between the  two
  906.               programs for granting COM access to CHAT. pppd will
  907.               look in the current  directory first,  then in  the
  908.               same directory where pppd resides.
  909.  
  910.        crtscts
  911.               Use hardware flow control (i.e. RTS/CTS) to control
  912.               the flow of data  on the  serial port.   If neither
  913.               the crtscts nor the -crtscts option  is given,  the
  914.               hardware flow control setting  for the  serial port
  915.               is left unchanged.
  916.  
  917.        escape xx,yy,...
  918.               Specifies that certain characters should be escaped
  919.               on  transmission  (regardless of  whether the  peer
  920.               requests them to be escaped with its async  control
  921.               character map).  The characters  to be  escaped are
  922.               specified as  a list  of hex  numbers separated  by
  923.               commas.   Note  that  almost  any character  can be
  924.               specified  for  the  escape   option,  unlike   the
  925.               asyncmap   option   which   only   allows   control
  926.               characters to be specified.   The characters  which
  927.               may not be escaped are those with hex values 0x20 -
  928.               0x3f or 0x5e.
  929.  
  930.        file <f>
  931.               Read options from file <f> (the format is described
  932.               below).
  933.  
  934.        mru <n>
  935.               Set the MRU [Maximum Receive Unit] value to <n> for
  936.               negotiation.   pppd  will  ask  the  peer  to  send
  937.               packets of no more than <n> bytes.  The minimum MRU
  938.               value is 128.  The  default MRU  value is  1500.  A
  939.               value  of  296 is  recommended for  slow links  (40
  940.               bytes for TCP/IP header + 256 bytes of data).
  941.  
  942.        mtu <n>
  943.               Set the MTU [Maximum Transmit Unit]  value to  <n>.
  944.               Unless the peer requests  a smaller  value via  MRU
  945.               negotiation,  pppd  will  request  that the  kernel
  946.               networking code send data packets of no more than n
  947.               bytes through the PPP network interface.
  948.  
  949.        netmask <n>
  950.               Set the interface netmask to <n>, a 32  bit netmask
  951.               in "decimal dot" notation (e.g. 255.255.255.0).  If
  952.               this option is given, the value  specified is  ORed
  953.               with the default netmask.   The default  netmask is
  954.               chosen based on the  negotiated remote  IP address;
  955.               it is the appropriate network mask for the class of
  956.               the  local  IP  address  and  that   satisfies  the
  957.               following condition:
  958.  
  959.               (<netmask> & <remoteIP>) = (<netmask> & <localIP>)
  960.  
  961.               The  default  netmask is right shifted if necessary
  962.               until the above condition is reached.
  963.  
  964. OPTIONS
  965.        <local IP address>:<remote IP address>
  966.               Set the local and/or remote interface IP addresses.
  967.               Either one may be omitted. The IP addresses must be
  968.               given in decimal dot notation (e.g. 150.234.56.78).
  969.               IP addresses will be obtained from the peer  if not
  970.               specified in  any option.   Thus, in  simple cases,
  971.               this option  is not  required.  If  a local  and/or
  972.               remote IP  address is  specified with  this option,
  973.               pppd will  not accept  a different  value from  the
  974.               peer  in  the  IPCP  negotiation, unless  the ipcp-
  975.               accept-local and/or ipcp-accept-remote options are
  976.               given, respectively.
  977.  
  978.        -ac    Disable  Address/Control   compression  negotiation
  979.               (use   default,    i.e.    address/control    field
  980.               compression disabled).
  981.  
  982.        -all   Don't  request  or allow negotiation of any options
  983.               for LCP and IPCP (use default values).
  984.  
  985.        -am    Disable  asyncmap  negotiation  (use  the   default
  986.               asyncmap, i.e. escape all control characters).
  987.  
  988.        -as <n>
  989.               Same as asyncmap <n>
  990.  
  991.        -chap  Don't agree to authenticate using CHAP.
  992.  
  993.        chap-restart <n>
  994.               Set the CHAP restart interval (retransmission time-
  995.               out for challenges) to <n> seconds (default 3).
  996.  
  997.        -crtscts
  998.               Disable hardware flow control (i.e. RTS/CTS) on the
  999.               serial  port.   If  neither  the  crtscts  nor  the
  1000.               -crtscts option is given, the hardware flow control
  1001.               setting for the serial port is left unchanged.
  1002.  
  1003.        -d     Increase   debugging   level  (same  as  the  debug
  1004.               option).
  1005.  
  1006.        debug  Increase  debugging  level (same  as -d).   If this
  1007.               option is given, pppd will log the contents  of all
  1008.               control  packets  sent  or  received in  a readable
  1009.               form.  The packets are logged through DOS  standard
  1010.               output, which can be  redirected to  a file.   Some
  1011.               debug  output is sent to DOS  standard error.  This
  1012.               options is supported by PPPDD.EXE & EPPPDD.EXE.
  1013.  
  1014.        -ip
  1015.               Disable IP address negotiation.  If this  option is
  1016.               used, the remote IP address must be specified  with
  1017.               an  option  on the  command line  or in  an options
  1018.               file.
  1019.  
  1020.        ipcp-accept-local
  1021.               With this option, pppd will accept the peer's  idea
  1022.               of  our  local  IP  address, even  if the  local IP
  1023.               address was specified in an option.
  1024.  
  1025.        ipcp-accept-remote
  1026.               With this option, pppd will accept the peer's  idea
  1027.               of its (remote) IP address, even  if the  remote IP
  1028.               address was specified in an option.
  1029.  
  1030.        ipcp-max-configure <n>
  1031.               Set  the  maximum  number of IPCP configure-request
  1032.               transmissions to <n> (default 10).
  1033.  
  1034.        ipcp-max-failure <n>
  1035.               Set  the  maximum  number  of  IPCP  configure-NAKs
  1036.               returned before starting to  send configure-Rejects
  1037.               instead to <n> (default 10).
  1038.  
  1039.        ipcp-max-terminate <n>
  1040.               Set the maximum number  of  IPCP  terminate-request
  1041.               transmissions to <n> (default 3).
  1042.  
  1043.        ipcp-restart <n>
  1044.               Set  the  IPCP  restart   interval  (retransmission
  1045.               timeout) to <n> seconds (default 3).
  1046.  
  1047.        kdebug n
  1048.               Enable debugging code in the low-level  PPP driver.
  1049.               The argument n is a number which is the sum  of the
  1050.               following  values:  1  to   enable  general   debug
  1051.               messages,  2  to  request  that  the   contents  of
  1052.               received packets be printed, and 4 to request  that
  1053.               the  contents  of transmitted packets  be  printed.
  1054.               This option is supported by PPPDD.EXE & EPPPDD.EXE.
  1055.  
  1056.        lcp-echo-failure <n>
  1057.               If this option is given, pppd will presume the peer
  1058.               to be dead if n LCP echo-requests are  sent without
  1059.               receiving a valid LCP echo-reply.  If this happens,
  1060.               pppd will  terminate the  connection.  Use  of this
  1061.               option requires a non-zero value for  the lcp-echo-
  1062.               interval  parameter.   This option  can be  used to
  1063.               enable  pppd  to  terminate   after  the   physical
  1064.               connection  has  been broken  (e.g., the  modem has
  1065.               hung  up)  in  situations  where no  hardware modem
  1066.               control lines are available.
  1067.  
  1068.        lcp-echo-interval <n>
  1069.               If  this  option is  given, pppd  will send  an LCP
  1070.               echo-request  frame  to the  peer every  n seconds.
  1071.               Under  Linux,  the  echo-request  is  sent  when no
  1072.               packets  have  been received  from the  peer for  n
  1073.               seconds. Normally  the peer  should respond  to the
  1074.               echo-request by sending an echo-reply.  This option
  1075.               can  be  used with  the lcp-echo-failure  option to
  1076.               detect that the peer is no longer connected.
  1077.  
  1078.        lcp-max-configure <n>
  1079.               Set the maximum  number  of  LCP  configure-request
  1080.               transmissions to <n> (default 10).
  1081.  
  1082.        lcp-max-failure <n>
  1083.               Set  the  maximum  number  of  LCP   configure-NAKs
  1084.               returned before starting to  send configure-Rejects
  1085.               instead to <n> (default 10).
  1086.  
  1087.        lcp-max-terminate <n>
  1088.               Set  the  maximum  number  of LCP terminate-request
  1089.               transmissions to <n> (default 3).
  1090.  
  1091.        lcp-restart <n>
  1092.               Set  the   LCP  restart   interval  (retransmission
  1093.               timeout) to <n> seconds (default 3).
  1094.  
  1095.        local  Don't  use  the  modem  control  lines.   With this
  1096.               option,  pppd  will  ignore  the  state  of the  CD
  1097.               (Carrier Detect) signal from the modem and will not
  1098.               change the state of the DTR  (Data Terminal  Ready)
  1099.               signal.
  1100.  
  1101.        modem  Use the modem control  lines.  This  option is  the
  1102.               default.  With this option, pppd will wait for  the
  1103.               CD (Carrier  Detect) signal  from the  modem to  be
  1104.               asserted when opening the  serial device  (unless a
  1105.               connect script is specified), and it will drop  the
  1106.               DTR (Data Terminal Ready)  signal briefly  when the
  1107.               connection is terminated and  before executing  the
  1108.               connect script.
  1109.  
  1110.        -mn    Disable   magic   number  negotiation.   With  this
  1111.               option, pppd cannot detect a looped-back line.
  1112.  
  1113.        -mru   Disable  MRU  [Maximum  Receive  Unit] negotiation.
  1114.               With this  option, pppd  will use  the default  MRU
  1115.               value of 1500 bytes.
  1116.  
  1117.        -pap   Don't agree to authenticate using PAP.
  1118.  
  1119.        pap-max-authreq <n>
  1120.               Set the maximum number of  PAP authenticate-request
  1121.               transmissions to <n> (default 10).
  1122.  
  1123.        pap-restart <n>
  1124.               Set  the   PAP  restart   interval  (retransmission
  1125.               timeout) to <n> seconds (default 3).
  1126.  
  1127.        passwd <p>
  1128.               Set  the  user password to use  for  authenticating
  1129.               this machine with the peer using PAP/CHAP to <p>.
  1130.  
  1131.        -pc    Disable protocol field compression negotiation (use
  1132.               default, i.e. protocol field compression disabled).
  1133.  
  1134.        +ua <p>
  1135.               Agree to  authenticate using PAP/CHAP  if requested
  1136.               by the  peer,  and  use  the data  in file  <p> for
  1137.               the user and password to send to the peer. The file
  1138.               contains  the  remote  user  name,  followed  by  a
  1139.               newline, followed by the remote password,  followed
  1140.               by a newline.
  1141.  
  1142.        user <u>
  1143.               Set  the  user  name to use for authenticating this
  1144.               machine with the peer using PAP/CHAP to <u>.
  1145.  
  1146.        -vj    Disable negotiation of Van  Jacobson  style  TCP/IP
  1147.               header  compression  (use default, i.e. no compres-
  1148.               sion).
  1149.  
  1150.        -vjccomp
  1151.               Disable the connection-ID compression option in Van
  1152.               Jacobson  style  TCP/IP  header  compression.  With
  1153.               this option, pppd will not omit  the  connection-ID
  1154.               byte  from  Van Jacobson compressed TCP/IP headers,
  1155.               nor ask the peer to do so.
  1156.  
  1157.        vj-max-slots n
  1158.               Sets the number of connection slots to be  used  by
  1159.               the  Van  Jacobson  TCP/IP  header  compression and
  1160.               decompression code to n, which must  be  between  2
  1161.               and 16 (inclusive).
  1162.  
  1163.        xonxoff
  1164.               Use software  flow   control  (i.e.   XON/XOFF)  to
  1165.               control the flow of data on the serial port.
  1166.  
  1167. OPTIONS FILES
  1168.        Options can be taken  from files  as well  as the  command
  1169.        line. pppd reads options from the  files .\pppd.cfg  (also
  1170.        in the directory where  the pppd  program is  located) and
  1171.        .\pppdrc.cfg  before  looking at the command  line.  After
  1172.        parsing command line options, a file  named .\pppdcom?.cfg
  1173.        is tried, the ?   will be  replaced with  the current  COM
  1174.        number.
  1175.  
  1176.        An options file is parsed into a series of words delimited
  1177.        by whitespace.  Whitespace can  be included  in a  word by
  1178.        enclosing the word in quotes (").  A backslash  (\) quotes
  1179.        the following  character.  A  hash (#)  starts a  comment,
  1180.        which continues until the end of the line.
  1181.  
  1182.        If you need to put DOS path separators  in  options files,
  1183.        you must use the escape sequence \\, for example:
  1184.  
  1185.            +ua c:\\secrets\\paplogin
  1186.  
  1187.        This is needed because the \  character is  interpreted as
  1188.        the beginning of an escape control code.
  1189.  
  1190. AUTHENTICATION
  1191.        PAP/CHAP authentication with the peer is supported by this
  1192.        release.  It  doesn't support  authenticating the  peer to
  1193.        ourselves,  so it is not well suited for  acting as  a PPP
  1194.        server.
  1195.  
  1196.        You are required to supply two items for authentication, a
  1197.        user  name  and  a  password.  Options  are available  for
  1198.        setting these two items. An authentication  file can  also
  1199.        be used with the +ua filename option.
  1200.  
  1201. EXAMPLES
  1202.        In  the simplest case, you can connect the serial ports of
  1203.        two machines and issue a command like
  1204.  
  1205.               pppd com1 9600 passive
  1206.  
  1207.        If  the  other machine  is running  UNIX and  has a  getty
  1208.        process attached to the serial port  we want  to use,  the
  1209.        process of logging in  to the  other machine  and starting
  1210.        pppd can be automated by using the connect  option to  run
  1211.        chat, for example:
  1212.  
  1213.               pppd com1 38400 connect "chat '' '' 'login:'
  1214.               'username' 'Password:' 'password' '% '
  1215.               'exec pppd passive'"
  1216.  
  1217.        (Note however that running chat like this will  leave  the
  1218.        password  visible in the parameter list of pppd and chat.)
  1219.  
  1220.        If your serial connection is any  more complicated  than a
  1221.        piece of wire, you may need  to arrange  for some  control
  1222.        characters  to  be escaped.   In particular,  it is  often
  1223.        useful to escape XON  (^Q) and  XOFF (^S),  using asyncmap
  1224.        a0000.  If the path includes a telnet, you probably should
  1225.        escape  ^]  as  well  (asyncmap  200a0000).   If the  path
  1226.        includes an rlogin, you  will need  to use  the escape  ff
  1227.        option  on  the end  which is  running the  rlogin client,
  1228.        since  many  rlogin implementations  are not  transparent;
  1229.        they will  remove the  sequence [0xff,  0xff, 0x73,  0x73,
  1230.        followed by any 8 bytes] from the stream.
  1231.  
  1232. DIAGNOSTICS
  1233.        The debug  versions PPPDD.EXE  and EPPPDD.EXE  incorporate
  1234.        additional code for diagnostic purposes. The  log  will be
  1235.        sent to DOS standard output and error/informative messages
  1236.        will go to DOS standard error.
  1237.  
  1238.        Logging will cease after the driver goes resident,  so its
  1239.        usefulness is limited to debugging the link  establishment
  1240.        phase.
  1241.  
  1242.        The  debug  option  causes  the  contents  of all  control
  1243.        packets sent or received to be logged, that  is, all  LCP,
  1244.        PAP, CHAP or IPCP packets.  This can be useful if  the PPP
  1245.        negotiation does not succeed.  If debugging is enabled  at
  1246.        compile time, the debug option also causes other debugging
  1247.        messages to be logged.
  1248.  
  1249. FILES
  1250.  
  1251.        .\ip-up.bat
  1252.               A DOS batch file  generated by  pppd that  will set
  1253.               environment  variables  with the  current PPP  link
  1254.               parameters, such local IP, remote IP, etc. The file
  1255.               contains the following statements:
  1256.  
  1257.                   SET MYIP=xxx.xxx.xxx.xxx
  1258.                   SET REMIP=yyy.yyy.yyy.yyy
  1259.                   SET NETMASK=zzz.zzz.zzz.zzz
  1260.                   SET PEERMRU=nnnn
  1261.  
  1262.               This file can be called from  inside another  batch
  1263.               file and then use the environment variables for DOS
  1264.               Internet applications configuration.
  1265.  
  1266.        full_path_to_pppd\pppd.cfg
  1267.        .\pppd.cfg
  1268.               System default options for pppd, read  before  user
  1269.               default options or command-line options.
  1270.  
  1271.        .\pppdrc.cfg
  1272.               User  default  options,  read  before  command-line
  1273.               options.
  1274.  
  1275.        .\pppdcom?.cfg
  1276.               System default options for the  serial  port  being
  1277.               used, read after command-line options.
  1278.  
  1279. SEE ALSO
  1280.        RFC1144
  1281.               Jacobson,  V.   Compressing TCP/IP headers for low-
  1282.               speed serial links.  1990 February.
  1283.  
  1284.        RFC1321
  1285.               Rivest, R.  The MD5 Message-Digest Algorithm.  1992
  1286.               April.
  1287.  
  1288.        RFC1332
  1289.               McGregor,   G.    PPP  Internet   Protocol  Control
  1290.               Protocol (IPCP).  1992 May.
  1291.  
  1292.        RFC1334
  1293.               Lloyd,  B.;   Simpson,  W.A.    PPP  authentication
  1294.               protocols.  1992 October.
  1295.  
  1296.        RFC1548
  1297.               Simpson,  W.A.   The Point-to-Point Protocol (PPP).
  1298.               1993 December.
  1299.  
  1300.        RFC1549
  1301.               Simpson, W.A.  PPP in HDLC Framing.  1993 December.
  1302.  
  1303. NOTES
  1304.        You can use CTRL+BREAK to abort the driver before it  goes
  1305.        resident.  You must  use CTRL+BREAK,  CTRL+C doesn't  work
  1306.        To  close  the PPP link and deinstall the driver you  must
  1307.        use   a   standard  packet  driver  terminator,   such  as
  1308.        TERMIN.COM from Russell Nelson (CRYNWR). Call it with:
  1309.  
  1310.            TERMIN 0xnn
  1311.  
  1312.        Where nn is the hex number of the interrupt vector used by
  1313.        the installed driver, i.e. TERMIN 0x60.
  1314.  
  1315. AUTHORS
  1316.        DOS port by Antonio Lopez Molero, <tonilop@redestb.es>.
  1317.        Drew  Perkins, Brad Clements, Karl Fox, Greg Christy, Brad
  1318.        Parker, Paul Mackerras (paulus@cs.anu.edu.au).
  1319.  
  1320. --- End (original filename: PPPD.MAN) ---
  1321.