home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / slip2xv1.zip / readme < prev    next >
Text File  |  1993-08-18  |  24KB  |  578 lines

  1. ------------------------------------------------------------------------------
  2.  
  3.           OS/2 2.0 SLIP Driver for IBM TCP/IP v1.2.1
  4.  
  5.                  Version 1.0
  6.               David Bolen - db3l@ans.net
  7.  
  8.                     README
  9.  
  10. ------------------------------------------------------------------------------
  11.  
  12. This file describes the contents of the SLIP20V1.ZIP archive, and presents a
  13. brief description of how to install the SLIP driver and get everything up and
  14. running.
  15.  
  16. This file contains the following sections:
  17.  
  18.     Driver History        Release history for SLIP Driver
  19.     Archive Contents    Description of the contents of the archive
  20.     Installation        Basic Installation Instructions
  21.     Getting Connected    Establishing the SLIP connection
  22.     Attach scripts        Using Rexx scripts to make a connection
  23.     Executables        Brief usage descriptions of executables
  24.     Reporting Problems    What procedure to follow to report problems
  25.     Administrivia        How to contact me
  26.  
  27. I would appreciate if everyone could at least browse through this entire file
  28. prior to using the driver.  Having at least a general idea of the contents of
  29. this file can prove helpful when dealing with problems, since some points
  30. (such as the potential need for the sldetach utility) do not occur until late
  31. in the file.
  32.  
  33.  
  34. +----------------+
  35. | Driver History |
  36. +----------------+
  37.  
  38.     Version 1.0    August 18, 1993
  39.     -----------
  40.  
  41.     This is, finally, Version 1.0 of the driver.  The entire 
  42.     development/alpha/beta/release cycle for version 1.0 took almost a 
  43.     year, but I think the end result is a very stable and functional 
  44.     driver that many people have been and will be able to use.
  45.  
  46.     There are some changes between the Beta-1 release and Version 1.0.
  47.     Most are nothing more than reflecting the released status of the
  48.     driver and utilities.  The following changes are more significant:
  49.         - Compression is now off by default, and the default MTU
  50.           is 1006.  This is in contrast to the previous defaults
  51.           for these settings of "on" and 296 respectively.  The
  52.           change was made to simplify initial setup and to avoid
  53.           the confusion that default compression caused for some.
  54.           For those users previously using compression, the parameter
  55.           "compression=on" will need to be added to the interface
  56.           block in your slip.cfg file.  As explained in the comments
  57.           in slip.cfg, enabling compression will also automatically
  58.           decrease the MTU back to 296, unless the MTU is explicitly
  59.           specified in slip.cfg.
  60.         - Priority queueing has been improved.  The SLIP driver
  61.           no longer allows its entire internal buffer (2k) to be
  62.           filled and potentially delay interactive traffic.  This
  63.           should result in improved interactive performance during
  64.           heavy background traffic (such as file transfers) when
  65.           the transmitting side of the SLIP connection is running
  66.           this driver.
  67.         - The driver now dynamically determines the internal kernel
  68.           serial unit number to assign to the SLIP interface.  This
  69.           should have little impact on users as this is the only
  70.           current driver using the kernel serial interface, but it
  71.           will allow this driver to behave nicely in the presence
  72.           of other drivers using the interface in the future.  It 
  73.           does also involve a new startup error, of the form:
  74.              [MON ] Interface "sl0" is already attached (unit #).
  75.           This message will normally only appear if another copy
  76.           of the SLIP driver is already running, or if the previous
  77.           execution of the driver was abruptly terminated, such as
  78.           by a trap.  If the latter, the "sldetach" utility should
  79.           be used to detach the interface from the kernel.
  80.  
  81.  
  82.     Beta-1        April 12, 1993
  83.     ------
  84.  
  85.     Well, the alpha code turned out to be available for much longer and
  86.     more widely distributed than I had originally intended.  This release
  87.     is mostly a recognition of the fact that the code has already been
  88.     effectively tested as beta code.  It should be a short beta.  Note
  89.     that I did perform an internal code clean-up on the whole package, 
  90.     and there are a few externally-visible changes:
  91.         - All alpha/debugging output has been suppressed by
  92.           default.  A commmad line option of "-d" will re-enable
  93.           all debugging messages as before.
  94.         - A comma can now optionally be used in the slip.cfg
  95.           configuration file to separate elements.
  96.         - The Rexx script functions com_input and com_output have
  97.           been renamed to slip_com_input and slip_com_output.
  98.         - The return code from Rexx scripts now determines if the
  99.           driver exits.  A zero return code indicates success while
  100.           a non-zero value indicates failure.
  101.         The last two items above represent differences that will require
  102.     changes to any scripts that may have been written.  If you are using
  103.     the supplied slipup.cmd script, you can just use the new version
  104.     from this package.
  105.  
  106.  
  107.     Alpha-3        October 28, 1992
  108.     -------
  109.  
  110.     After a bit of a hiatus, I've added much of the functionality that
  111.     I want to go to beta with.  The big two user-visible items are a new
  112.     configuration file, and the support for calling a Rexx script to 
  113.     handle establishing the SLIP connection.  Internally, the core 
  114.     forwarding path has not changed, but a number of improvements have
  115.     been made to simplify handling multiple interfaces in the next update.
  116.     
  117.  
  118.     Alpha-2        September 24, 1992
  119.     -------
  120.  
  121.     This was a release solely of the SLIP Driver executable.  The new
  122.     executable contained a fix for the bug encountered when large packets
  123.     were received by the driver that exceeded the interface mtu.
  124.  
  125.  
  126.     Alpha-1        September 21 & 23, 1992
  127.     -------
  128.  
  129.     This was the first public release of the OS/2 2.0 SLIP Driver code.
  130.     The original release on 9/21 was augmented by a release of debugging
  131.     versions of the driver on 9/23 to aid in problem reporting.
  132.  
  133.  
  134. +------------------+
  135. | Archive Contents |
  136. +------------------+
  137.  
  138.  
  139. The SLIP20V1.ZIP archive contains the following files:
  140.  
  141.     readme        This file
  142.  
  143.     slip.exe    Main SLIP Driver
  144.     slipwait.exe    Utility to wait until SLIP is up and running
  145.     slipterm.exe    Simple terminal program for making SLIP connections
  146.     sliphold.exe    Utility to hold a COM port open
  147.     sldetach.exe    Utility for forceably detaching a SLIP interface
  148.     slcfg.exe    Utility to test parsing SLIP configuration files
  149.  
  150.     slip.cfg    Sample SLIP configuration file (store in ETC directory)
  151.     slipup.cmd    Sample SLIP attach script (keep somewhere in path)
  152.  
  153.     ifndisnl.sys    "Null" version of ifndis.sys.  This can be used in
  154.             place of the standard ifndis.sys if you are only using
  155.             the SLIP interface (no LAN interfaces)
  156.  
  157.  
  158. +--------------+
  159. | Installation |
  160. +--------------+
  161.  
  162. NOTE: In order to be able to use this SLIP driver, you must be running
  163.       OS/2 2.0, and you must have v1.2.1 of the IBM TCP/IP package, with
  164.       a corrective service of at least UB02252 installed.
  165.  
  166.       This is critical!  If you have an earlier version, depending on the
  167.       level, SLIP may simply not run, or it may crash your system.  Or if
  168.       it doesn't, some utilites, like "netstat" - may...
  169.  
  170.       The most common indication that you are not running an appropriate
  171.       version is the message "Error 22 during DosDevIOCtl(SLATTACH)" during
  172.       the startup of the SLIP driver.
  173.  
  174.       You can check your current TCP/IP level by using the SYSLEVEL command,
  175.       and the latest CSD for TCP/IP is available from ftp-os2.nmsu.edu,
  176.       ftp-os2.cdrom.com, or software.watson.ibm.com.
  177.  
  178.  
  179.  
  180. Step 1 - CONFIG.SYS
  181. -------------------
  182.  
  183. Presuming you have used ICAT to install TCP/IP, your CONFIG.SYS should
  184. already be pretty well set up.  However, it's not absolutely necessary to use
  185. ICAT, and in fact if you are just copying TCP/IP off of an already installed
  186. machine to set up a SLIP machine, it may prove easier to just do the setup
  187. manually.  Also, if you use ICAT but configure no other interfaces beyond
  188. SLIP, it does not add the necessary statements to your CONFIG.SYS file.
  189.  
  190. The important pieces of the puzzle are to have at least the following in your
  191. CONFIG.SYS:
  192.     DEVICE=\path\INET.SYS
  193.     DEVICE=\path\IFNDIS.SYS   (or IFNDISNL.SYS - see below)
  194.     RUN=\path\CNTRL.EXE
  195.    where "\path" is the location where you installed the TCP/IP binaries
  196.  
  197. If you are only using the SLIP interface (ie: a home machine), besides not
  198. requiring the protocol manager and assorted baggage, this SLIP driver does
  199. not really even require the ifndis.sys device driver.  If you like, you can
  200. replace ifndis.sys with the ifndisnl.sys (IFNDIS "Null") driver that is 
  201. supplied as part of this package.  This will save both the memory involved
  202. with ifndis.sys (all of the LAN interfaces and NDIS code), as well as
  203. several threads and 40-50K of stack in cntrl.exe.
  204.  
  205.  
  206. Step 2 - SLIP.CFG
  207. -----------------
  208.  
  209. You must place a file called SLIP.CFG in your ETC directory (pointed to by
  210. the ETC environment variable - normally \tcpip_root\ETC - where tcpip_root is
  211. where you installed TCP/IP).  A sample SLIP.CFG is supplied in the archive
  212. that describes in detail the format of the file and each of the parameters
  213. that you can use within the file.
  214.  
  215. For the most part, it is recommended that you start off with a default
  216. SLIP.CFG, and then experiment if you like after you have a running system.  
  217. Two common parameters that you might need or wish to change are:
  218.  
  219.     device        Set this to the COM device to run the SLIP
  220.             interface over (if something other than COM1)
  221.     compression    Set this to ON if the far end of the SLIP link
  222.             supports VJ header compression.  This will yield
  223.             significantly better performance for interactive
  224.             applications such as telnet and other TCP-based
  225.             protocols such as FTP.
  226.  
  227. So for an interface with compression using COM3, you would change the
  228. supplied SLIP.CFG file interface line from:
  229.  
  230.     interface sl0 { }
  231.  
  232. to
  233.  
  234.     interface sl0 { device=com3, compression=on }
  235.  
  236. Note that by default, the MTU of the SLIP interface is set to 1006, which is
  237. the older SLIP default MTU for an uncompressed link.  If you turn compression
  238. on, the MTU will be automatically decreased to the newer default of 296.
  239. This can be overridden by explicitly setting the MTU within slip.cfg.
  240.  
  241. Also, if at any point while the driver is running, a packet is received that
  242. is larger than the MTU of the SLIP interface, a message of the form:
  243.  
  244.     Warning: Received packet (#1) > MTU (#2)
  245.  
  246. will be displayed in the SLIP driver's window (#1 is the packet size
  247. received, and #2 is the MTU of the SLIP link).  You should verify with the
  248. remote end of the SLIP link that both ends are configured for the same MTU,
  249. and if not, fix one or both of the configurations.
  250.  
  251.  
  252.  
  253. Step 3 - SLIP Executables
  254. -------------------------
  255.  
  256. You should load the remaining SLIP executables into whatever directory you
  257. would like, and place that directory in your PATH for easy access to the
  258. utilities.  The sample script (SLIPUP) and any other scripts you may write
  259. should also be located either in the directory where you start the SLIP
  260. driver (SLIP.EXE) or somewhere along your PATH.
  261.  
  262.  
  263. +-------------------+
  264. | Getting Connected |
  265. +-------------------+
  266.  
  267. In general the following steps are the simplest for getting a SLIP connection
  268. up and running.  If you want to use the Rexx scripting capability for
  269. automating this process, see the next section.
  270.  
  271. 1. Configure your COM port appropriate for baud/parity, etc..  For example,
  272.     mode com1: 38400,n,8,1,buffer=auto,rts=hs
  273.    (Adjust the port number, baud rate, etc.. as appropriate.  If you have
  274.     a 16550 UART, I'd strongly suggest trying buffer=on for improved
  275.     performance)
  276.  
  277.    This can also be put in your CONFIG.SYS via a CALL= command if you like.
  278.  
  279. 2. In a separate OS/2 command process (window or full-screen), start the
  280.    SLIP driver (slip.exe).  You can also put it in its own window by
  281.    using the "start" command (ie: "start slip").
  282.  
  283.    In theory, the SLIP driver can be run as a background driver, as CNTRL.EXE
  284.    is, and could be started from config.sys.  However, in general I'd 
  285.    recommend leaving it in a window you can see, although you can certainly
  286.    minimize it, in case diagnostic messages are displayed.
  287.  
  288. 3. If you need to dial a number and perhaps log into a system to start
  289.    SLIP, run SLIPTERM at this point.  SLIPTERM will put up a banner,
  290.    request access to the COM port from SLIP, and then allow you to talk
  291.    to the modem directly.  SLIPTERM is just a very simple communications
  292.    program.  You will have to enter any dialing commands manually (ie: ATDT),
  293.    but it will allow you to perform any operations (such as logging in
  294.    and issuing some initial startup commands) that you may need to create
  295.    an active SLIP link.  Press F10 (or ESC) when done.
  296.  
  297. 4. Configure the SLIP interface with your SLIP address, and with the
  298.    address of the far end.  Note: Unlike IBM's driver, my SLIP driver sets
  299.    up serial interface "sl0", not just "sl":
  300.     > ifconfig sl0 147.225.2.15 147.225.2.1
  301.               (you)      (far end)
  302.    If you are configuring an office machine to perform routing from a SLIP
  303.    link to an office LAN (such as an ethernet), the easiest thing to do is
  304.    to get a local LAN address assigned to the far end of the SLIP link and
  305.    to reuse the LAN address of your office host as the local address of
  306.    the SLIP link.
  307.  
  308. 5. Configure other routes:
  309.      * For a home machine with no other network interface, you will likely
  310.        want to add a default route through the far end of the SLIP link:
  311.           > route add default 147.225.2.1 1
  312.                    (far end)
  313.  
  314.      * For an office machine with a LAN interface (such as an ethernet),
  315.        you will probably already have a default route.  However, if you
  316.        have assigned the SLIP interface a remote address from the network
  317.        on the LAN, you will have to publish an "arp" entry for the SLIP
  318.        host.  This is done with the following command:
  319.       > arp -s 147.225.2.1 xx:xx:xx:xx:xx:xx pub
  320.             (far end)
  321.        The "xx:xx..." number is the hardware address of your LAN interface.
  322.        This can be determined after booting your machine by looking in the
  323.        file LANTRAN.LOG in your C:\IBMCOM directory (or wherever you
  324.        installed the LAPS lan drivers).  Look for the "node address".
  325.  
  326. At this point you should be all up and running.
  327.  
  328. You can place all of this in a command file if you like.  If you do this,
  329. the command file can check ERRORLEVEL after running SLIPTERM.  If it is 
  330. non-zero, then SLIPTERM exited via ESC, while if it is 0, F10 was used.  This
  331. can be used to control whether the SLIP interface is actually configured.
  332.  
  333. Also, if you are automating this process, you may want to use either SLIPWAIT
  334. or the "-w" option on SLIPTERM.  SLIPWAIT takes a single numeric argument
  335. which is the # of seconds to wait for SLIP to complete starting up (and it
  336. defaults to 30).  This can be used to pause a command script while waiting
  337. for SLIP.EXE to fully start up.
  338.  
  339. Specifying "-w##" to SLIPTERM will cause it to also wait for SLIP to finish
  340. starting up.  ## specifies the number of seconds to wait, or if not given
  341. (ie: you just use "-w") it defaults to 30 seconds.
  342.  
  343.  
  344. +----------------+
  345. | Attach Scripts |
  346. +----------------+
  347.  
  348. One of the nicer features of this SLIP driver is the ability to use Rexx
  349. scripts to automate the attachment of a SLIP interface.  The SLIP driver will
  350. automatically execute an attach script when it starts up and is creating the
  351. SLIP interface.  Scripts are free to use the full power of Rexx and issue
  352. OS/2 commands as necessary.  In addition, the SLIP driver defines Rexx
  353. functions that can be used to access the COM port that the driver is using
  354. for the interface.
  355.  
  356.  
  357. Defining a Script
  358. -----------------
  359.  
  360. In order to use a script for an interface, you need to set the "attachcmd"
  361. and "attachparms" parameters in the interface definition in the SLIP
  362. configuration file SLIP.CFG.  For example, the entry:
  363.  
  364.      interface sl0 { attachcmd "slipcall", attachparms "these are parms" }
  365.  
  366. would cause SLIP to run the script "slipcall.cmd" and pass in the parameters
  367. "sl# , these are parms".  SLIP will always pass in the name of the interface
  368. for which the script is running as the first argument, with the attachparms
  369. value as the second argument.
  370.  
  371. In this version of the driver, the script is only executed once, when SLIP
  372. first starts up and creates the interface.
  373.  
  374.  
  375. SLIP Rexx Functions
  376. -------------------
  377.  
  378. The following functions are available to Rexx scripts running beneath the
  379. SLIP driver:
  380.  
  381.      slip_com_input ( interface , [ max_characters ] , [ timeout ] )
  382.  
  383.     Reads characters from an interface's COM port.  
  384.  
  385.     interface    The name of the interface (ie: sl0), and should be 
  386.             the same as the    interface name supplied as the first 
  387.             argument to the script.
  388.     max_characters    The maximum number of characters to return with 
  389.             this call.  It may return less.  The default is to
  390.             return up to 255.
  391.     timeout        How long to wait (in milliseconds) if no data is
  392.             available on the port.  If this is not specifed, or
  393.             is given as 0, it will wait forever until some data
  394.             arrives.
  395.  
  396.  
  397.      slip_com_output ( interface , string )
  398.  
  399.     Write characters to an interface's COM port.
  400.  
  401.     interface    The name of the interface (ie: sl0), and should be 
  402.             the same as the    interface name supplied as the first 
  403.             argument to the script.
  404.     string        Character string to be sent to COM port.  Nothing
  405.             is done to the string, nor is any automatic CR added,
  406.             so you must specify exactly what characters to send.
  407.  
  408.  
  409.     Note that even when this function returns to the Rexx script, not all
  410.     of the characters may have been physically transmitted over the COM 
  411.     port.  There are internal buffers within the SLIP driver that may 
  412.     hold the outgoing COM data while the port is busy or disconnected.
  413.  
  414.  
  415.      slip_getch ()
  416.  
  417.          Read a character (no echo) from the keyboard
  418.  
  419.     This function simply waits for the user to press a key and returns
  420.     that key.  It does not echo the keypress to the screen.  It is
  421.     designed to be used for when scripts need to prompt the user for
  422.     a password or other sensitive information.
  423.  
  424.     This function will only work if the SLIP driver is running within
  425.     an OS/2 command session where a user may interact with the driver.
  426.     If it is running as a detached session, this function will always
  427.     return an empty string.
  428.  
  429.  
  430. These functions are only available when a script is run automatically by the
  431. SLIP driver.  If the scripts are started directly from the command line,
  432. these functions will not be resolved.
  433.  
  434.  
  435. Sample Attachment Script
  436. ------------------------
  437.  
  438. The file SLIPUP.CMD in the archive is a sample script that I have used to
  439. make a SLIP attachment through our Xylogics Annex Terminal Server.  It may
  440. prove useful as an example on how to write such scripts for other
  441. environments.
  442.  
  443. More detailed comments are available within the script itself, however its
  444. basic purpose is to issue a dial command, handle the Annex logon, issue a
  445. SLIP command, and then parse the answer to appropriately configure the sl0
  446. interface with the right address.
  447.  
  448.  
  449. Comments
  450. --------
  451.  
  452. I'm very interested in feedback as to what sort of additional support the
  453. SLIP driver could provide to make it easier to write Rexx scripts for this
  454. sort of purpose.
  455.  
  456.  
  457. +-------------+
  458. | Executables |
  459. +-------------+
  460.  
  461. slip.exe    Main SLIP Driver
  462.  
  463.    Usage: slip [-d]
  464.  
  465.    -d enables debugging (voluminous) output.  You'll probably want to
  466.       redirect output to a file if you enable debugging.
  467.  
  468.    The SLIP driver requires the SLIP.CFG file to be accessible in the
  469.    "ETC" directory.
  470.  
  471. - - - - -
  472.  
  473. slipwait.exe    Utility to wait until SLIP is up and running
  474.  
  475.    Usage: slipwait [##]
  476.  
  477.    ## specifies # of seconds to wait (default = 30)
  478.  
  479. - - - - -
  480.  
  481. slipterm.exe    Simple terminal program for making SLIP connections
  482.  
  483.    Usage: slipterm [-w[##]] [-d]
  484.  
  485.    -w says to wait for SLIP.  ##=seconds and defaults to 30.
  486.    -d is debugging mode - continue without SLIP
  487.  
  488.    SLIPTERM requires the SLIP.CFG file to be accessible in the "ETC"
  489.    directory.  It uses this file to determine the appropriate COM port.
  490.  
  491.    When the program is exited with the ESC key, the exit code (testable
  492.    with ERRORLEVEL) is set to non-zero.  If the program is exited by
  493.    pressing F10, the exit code is zero.
  494.  
  495. - - - - -
  496.  
  497. sliphold.exe    Utility to hold a COM port open
  498.  
  499.    Usage: sliphold
  500.  
  501.    This utility simply keeps the COM port open until the Enter key is
  502.    pressed.  OS/2 normally drops DTR when the COM port is closed, which
  503.    terminates the connection on many modems.  Running sliphold will allow
  504.    you to stop and then restart the SLIP driver without losing the
  505.    connection.
  506.  
  507. - - - - -
  508.  
  509. sldetach.exe    Utility for force a detach of interface sl0
  510.  
  511.    Usage: sldetach interface
  512.  
  513.    interface is the name of interface to detach - must be 'sl0'
  514.  
  515.    This utility is sometimes necessary if the SLIP driver terminates (or
  516.    is terminated) abruptly - such as during a trap.  In such a case, the
  517.    TCP/IP kernel still believes the driver is running and has the SLIP
  518.    interface sl0 attached.  It must be manually detached (by running this
  519.    program) prior to starting the driver again.  If this is not done,
  520.    the driver will display an error message of the form:
  521.     [MON ] Interface "sl0" is already attached (unit #).
  522.  
  523. - - - - -
  524.  
  525. slcfg.exe    Utility to test parsing SLIP configuration files
  526.  
  527.    Usage: slcfg config_file [-d]
  528.  
  529.    config_file is name of file to process.
  530.  
  531.    -d enables debugging mode (extra internal debugging output during parse)
  532.  
  533.    
  534.  
  535. +--------------------+
  536. | Reporting Problems |
  537. +--------------------+
  538.  
  539. Should anyone encounter problems - either usage problems or actual code
  540. problems (especially those that cause crashes), I'd appreciate the following
  541. being done, in order to best help me try to narrow down the problem.
  542.  
  543.      1.    Record whatever information you can as to the circumstances
  544.     surrounding the crash, and any dump information.  If possible,
  545.     please see if the problem is reproduceable.
  546.      2. If you are using VJ compression, try disabling it (use the
  547.         parameter "compression=off" in SLIP.CFG) and see if the problem
  548.     can be reproduced.
  549.      4. Run SLIP with the -d (debug) option and try to reproduce the
  550.     failure.  Using debug mode will generate lots of debugging
  551.     information to be output (and will slow down the driver).  The best
  552.     thing to do is to redirect the output to a log file.
  553.      5. If possible, try using the standard IBM SLIP driver in the
  554.     same environment and see if the same result occurs.
  555.  
  556. After doing this, please send me as much information about the crash and the
  557. resulting debug information as you can.  Although I do follow the OS/2
  558. newsgroups on the Internet, I don't currently following CompuServe or any
  559. BBS', so for an official response, please mail problem reports to me
  560. directly.  Also, please be patient - it's a rare day that I'm not swamped
  561. with work, so any response may take a day or two. 
  562.  
  563. For crash information, please be as verbose as you can about the environment
  564. in which you are running.  I may not need most of the information, but I
  565. may not automatically know up front what I do need.
  566.  
  567.  
  568. +---------------+
  569. | Administrivia |
  570. +---------------+
  571.  
  572. Just to keep this in one place - I can be reached via the following:
  573.  
  574.      David Bolen            E-Mail:  db3l@ans.net
  575.      Advanced Network & Services, Inc.    Phone:   +1 914 789-5327
  576.      100 Clearbook Road            Fax:     +1 914 789-5310
  577.      Elmsford, NY  10523
  578.