     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
                                     SDLP
     
                       LPR/LPD print software for NetWare
     
     
                                  Version 1.1
     
     

































     Page - 1
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     Copyright (c) 1995  by  Secure Design
     
     Other brand and product names are trademarks or registered trademarks
     of their respective holders.
     
     U.S. Government Restricted Rights:   Use, duplication or disclosure by
     the Government is subject to restrictions set fourth in subparagraph
     (a) through (d) of the Commercial Computer Restricted Rights clause
     at FAR 52.227-19 when applicable, or subparagraph (c) (1) (ii) of the
     Rights in Technical Data and Computer Software clause at DFARS
     252.227-1013, and in similar clauses in the NASA FAR Supplement.
     
     License Agreement:    Each copy of this product is provided with a
     serial number.  One serial number is required for each file server
     which this product is to be used on.  One serial number may not be used
     on more than one file server.  This serial number may not be exchanged,
     sold, or otherwise distributed.
     
     An evaluation copy of this product is available.  While the purchased
     version of this software may not be copied, the evaluation version may
     be distributed freely.  Please contact us if you would like a
     demonstration copy of our products.
     
     Warranty:   This  software  is sold on an as-is basis.  Secure Design
     specifically disclaims all warranties, expressed or implied.  In no
     event shall Secure Design be liable for any loss of profit or any
     other damage including but not limited to special, incidental,
     consequential or other damages including damages to a third party.
     By using this software you are agreeing to these terms.  If these terms
     are not agreeable, please return this software for a refund within 10
     days of purchase.



     Page - 2
     Table Of Contents
     
     Table Of Contents                                                 3
     Overview                                                          4
     System Requirements                                               4
     Quick Install                                                     5
     Transferring Print Jobs To UNIX Systems                           7
     Receiving Print Jobs From UNIX Systems                           10
          Options for /etc/printcap on UNIX systems:                  12
          LPD control codes supported by SDLP for incoming jobs:      13
          UNIX host functions                                         13
     Transferring Print Jobs Between NetWare Servers                  14
     Troubleshooting                                                  15
     About Secure Design                                              16
     For Further Reading                                              16











































     Page - 3
     Overview
     
     SDLP is a NetWare Loadable Module (NLM)  that provides the ability to
     transfer print jobs between NetWare print queues and UNIX print queues.
     SDLP acts as a print server/client that implements the LPR/LPD protocol
     as described in RFC 1179.   The following is a list of features:
     
     SDLP Provides:
     *     Compatibility with most LPR/LPD software for UNIX systems.
     *     Bidirectional transfer of print jobs between NetWare and UNIX
     *     User notification after a print job has been transferred.
     *     Configuration from NetWare server console.
     *     Service for multiple queues on a file server.
     *     Automatic text translations with CR and LF characters.
     *     Host access control for incoming print jobs.
     
     
     
     
     System Requirements
     
     SDLP will work with NetWare 3.x or NetWare 4.x with Bindery Emulation.
     The following is a list of system modules that you will need to load
     SDLP.
     
     *     TCPIP.NLM      v2.02m  (or later)
     *     NWSNUT.NLM     v4.10g  (or later)
     *     CLIB.NLM       v3.12h  (or later)
     
     To find the version number of the NLMs you currently have loaded, type
     "modules"  on your file server console.  A list will be displayed for
     you.
     
     The NWSNUT.NLM and CLIB.NLM files are provided in the archive
     LIBUP4.EXE or LIBUP5.EXE.  The TCPIP.NLM is provided in the archive
     TCP188.EXE
     
     These update files are available from Novell on CompuServe,
     ftp.novell.com, and www.novell.com.  You may also obtain them from
     your Novell Authorized Service Center.
     
     These files are also available from Secure Design by BBS or e-mail
     server.  See the section About Secure Design for details.
     














     Page - 4
     Quick Install
     
     This section gives the basic steps to install the SDLP software on your
     server.  You must follow these steps before proceeding to the remainder
     of the manual.  After installation, you will need to configure SDLP for
     incoming or outgoing print jobs.
     
     1)  Install the NetWare TCPIP.NLM.  Refer to the TCP/IP Transport
         Supervisor Guide for details on installing the TCPIP.NLM.  You can
         verify that TCPIP is working correctly by using the ping program
         from a UNIX host and pinging your NetWare server.
     
     2)  Copy SDLP.NLM and SDLPCONF.NLM into your SYS:SYSTEM directory.
     
     3)  From the File Server console, type "load sdlpconf" to load the
         configuration program.
     
         A menu will be displayed.  Select the Install option.  The following
         dialog will be displayed.
     
     
     
                          Installation
     
            Installed:    Wed Mar 22   15:10:50  1995
     
            Serial Number:    XXXXX
            Your Name:        John Doe, System Admin.
            Company Name:     Secure Design
            Company Info:     Corvallis, OR
     
     
     
         Enter the serial number provided on the software disk.  If you are
         installing the demo version, leave the serial number blank.  The
         demo will expire in 60 days after installation.
     
         To personalize your copy of SDLP, complete the fields for your name,
         company and any further information you wish to enter.
     
         Press <ESC> when you have completed the information in this screen,
         and you will be presented with the main menu again.
















     Page - 5
     4)  Select Miscellaneous Options from the main menu.  The dialog shown
         below will be presented.
     
                    Miscellaneous Options
     
            Log Shows Date:                NO
            Log Shows Time:                YES
            Log Shows Level:               YES
            Log To File SDLP.LOG           NO
            Log Level:                     4) Noise
            LPR Low Port Range:            721
            LPR High Port Range:           731
            Max Concurrent Incoming Jobs   10
     
         When SDLP is running, a screen will be presented with information
         about print jobs as they are processed. You can choose to have each
         entry in the log screen show the date, time, or severity (level) of
         the message.
     
         Log To File saves all log screen output to SYS:SYSTEM\SDLP.LOG.
         SDLP will keep this file open while loaded.  You must unload SDLP
         to access this file.
     
         The Log Level option sets what level of severity will be displayed.
         The options are for Error, Warning, Message, and Noise.   The
         option for Noise is only useful for debugging any problems you may
         have. The default option is a Log Level of Message.
     
         LPR Low & High Port Range:  See the section titled Transferring
         Print Jobs to UNIX Systems.
     
         Max Concurrent Incoming Jobs:  See the section titled Receiving
         Print Jobs From UNIX Systems.
     
     5)  Before proceeding, please review the chapters titled Transferring
         Print Jobs to UNIX Systems and Receiving Print jobs From UNIX
         Systems. You will need to configure SDLP depending on the services
         you wish to have performed.
     
     6)  Last when configuration is complete,  quit the SDLPCONF.NLM.
     
         From the File Server console, type "load sdlp" and press enter.
         SDLP will be loaded and it should begin servicing jobs.
     
         You should add the line "load sdlp" to your sys:system\autoexec.ncf
         to allow SDLP to be loaded automatically when the server is booted.












     Page - 6
     Transferring Print Jobs To UNIX Systems
     
     SDLP can transfer print jobs from a NetWare print queue to a remote
     LPD host.  Jobs are serviced by a configured print server, and removed
     from the queue when a successful transfer occurs.  Several options
     can be set to modify the way SDLP sends jobs to a remote host.  The
     following instructions cover setting up SDLP to send jobs to a remote
     host.
     
     Use PCONSOLE.EXE from a DOS workstation.  Create a new print server to
     be used to service outgoing print jobs.  For the purpose of example,
     the manual will use SDLP_PSERVER as the print server name.  Do not give
     the print server a password.
     
     Create any print queues that you may need, if you are not using
     existing print queues.
     
     Edit the file SYS:ETC\HOSTS.  You will need to add the host name of
     each host that you wish to send jobs to.  For further assistance,
     please read Novell's "TCP/IP Transport Supervisor Guide" for details
     on the format of the HOSTS file.
     
     From the server console, load SDLPCONF.NLM if it is not currently
     loaded.  Select the option for Job Print Server.   A dialog will be
     shown, press enter to change the print server.  A list of print servers
     will be displayed.  Select the print server you created, such as
     SDLP_PSERVER, and press enter.  The name of the print server should
     now be displayed in the Outgoing Job Print Server dialog box.
     Press <ESC> to return to the main menu.
     
     Select the menu option for Outgoing Queues.  A list will be shown.
     To configure a previously installed queue, select the queue and press
     enter.  To configure a new queue, press <INS>, and a list of  queues
     will be displayed.  Select one and press enter.  The dialog shown
     below will be displayed.
     
     
                      Outgoing Queue Options
     
           Data Translation:        Automatic
           Banner Name For User:    YES
           Fix CTRL-D:              YES
           Retry Rejected Jobs:     YES
           Target Host:             odell.sdesign.com
           Target Queue:            lp
     












     Page - 7
     Data Translation:  This option controls any text translations needed
     between DOS and UNIX systems.  Options are
          Binary:      No translations
          CR/LF->LF:   Always translate all jobs.
          Automatic:   Uses CR/LF->LF only when job type is TEXT
     
     In the capture command, you can specify this setting.  "Capture -NT"
     will cause jobs to be spooled as BINARY,  omitting this option causes
     jobs to be submitted as TEXT.  This option can also be set with
     PRINTCON.EXE for print job definitions.
     
     Banner Name For User:  When sending a print job to a LPD host, the
     source user is specified as the print job client.  If Banner Name For
     User is set to YES, the banner name will be used for the user name
     rather than the client name of the print job.  Use PCONSOLE.EXE to
     view a print job information screen to see the client name and banner
     name of a print job. This feature is useful in a situation where a
     Macintosh submits a job to a queue without being logged into the file
     server.  The client name will be ATPS_QUSER however the banner name
     will reflect the computer that sent the print job.
     
     Fix CTRL-D:  Some print drivers place an ASCII 0x04 character (CTRL D)
     on the beginning of a postscript print job.  Postscript interpreters
     often use this to mark the end of a file.  When Fix CTRL-D is set to
     YES, SDLP will remove the CTRL-D character at the beginning of a print
     job when it is immediately followed by the character string "%!PS-Adobe"
     
     Retry Rejected Jobs:  When set to YES, if the remote host rejects the
     print job, the job will be moved to the end of the queue and attempted
     again later.  If set to NO, the job will be removed from the queue.
     Jobs may be rejected because the NetWare server or user do not have
     access to the remote queue, or because the remote host is out of disk
     space.  (If the flag for Service-Restart is not set for a print job,
     the job is purged regardless of the Retry Rejected Jobs option.
     Default options for print jobs set the Service-Restart flag however)
     
     Target Host: Enter the name of the target machine.  This name must be
     in the file SYS:ETC\HOSTS on the NetWare server.
     
     Target Queue: Set this to the print queue on the remote system.
     
     Port Numbers: In the main menu, under Miscellaneous Options, there
     are settings for LPR Low Port and LPR High Port.  LPR Low Port and
     LPR High Port sets the range of TCP ports used for communicating
     with the UNIX host when sending outgoing print jobs.  (Incoming
     jobs always use port 515)   RFC 1179 specifies that the source port
     must be from 721 to 731 inclusive.  Many UNIX lpd daemons will accept
     connections from any port under 1024.










     Page - 8
     
     If you receive errors concerning "a local port is already in use," try
     adjusting the High and Low Port settings to allow for a wider range
     of ports to use while sending jobs.  e.g., try a range of 700 to 900.
     
     The Netware TCP software seems to take an inordinate amount of time to
     dispose of ports after a connection has terminated.  (ports that are
     in a 2MSL timeWait  state)  SDLP will cycle through the ports
     specified by the LPR Low & High port settings when connecting to
     remote hosts.  If many print jobs are being transferred, it is
     possible that all 10 ports will be in a timeWait state.  This problem
     is corrected by expanding the range of source ports to accomodate
     this itmeout.  See Stevens, 1994, Pp 242-243 for more information.
     
     hosts.lpd:  On your target host system, you will need to edit the
     hosts.lpd file.  Many systems keep this file in the /etc directory.
     Add the full host name of the NetWare file server to this file.
     Please consult your documentation for your UNIX system for details
     on the /etc/hosts.lpd file.
     






































     Page - 9
     Receiving Print Jobs From UNIX Systems
     
     SDLP can receive print jobs from remote hosts.  Incoming  jobs are
     received on TCP socket 515, and a NetWare thread is created to handle
     the connection.  Data is queued into a temporary file in the NetWare
     queue's directory, and placed into a NetWare print job when the
     transfer is complete.
     
     Use PCONSOLE.EXE from a DOS workstation.  Create any print queues that
     you may need if you are not using existing print queues.
     
     Edit the file SYS:ETC\HOSTS.  You will need to add the host name of
     each host that you wish to receive jobs from.  For further assistance,
     read Novell's "TCP/IP Transport Supervisor Guide" for details on the
     format of the file.
     
     From the server console, load the SDLPCONF.NLM if it is not currently
     loaded.  Select the menu option for Incoming Queues.  A list will be
     shown.  To configure a previously installed queue, select the queue
     name and press enter.  To configure a new queue, press INS, and a
     list of  queues will be displayed.  Select one and press enter.  The
     dialog shown below will be displayed.
     
                        Incoming Queue Options
     
            Data Translation:                 Automatic
            Suppress Form Feed:               YES
            Suppress Banners:                 YES
            Host Access Control:              NO
            Host Access List:                 < Edit List >
            PostScript Job Form Number:       0
            PostScript Job Prefix File:       PS-HEAD.DAT
            PostScript Job Suffix File:       HP-RESET.DAT
            Binary Job Form Number:           0
            Binary Job Prefix File:           PCL-HEAD.DAT
            Binary Job Suffix File:           HP-RESET.DAT
            Text Job Form Number:             0
            Text Job Prefix File:             PCL-HEAD.DAT
            Text Job Suffix File:             HP-RESET.DAT
            Other Job Form Number:            0
            Other Job Prefix File:
            Other Job Suffix File:
     
     Data Translation:  This option controls any text translations needed
     between DOS and UNIX systems.  Options are
          Binary:      No translations
          LF->CR/LF:   Always translate all jobs.
          Automatic:   Uses LF to CR/LF only when job type is TEXT










     Page - 10
     Suppress Form Feed:  This option sets or disables the print job flag
     to suppress from feeds after the print job has finished printing.
     
     Suppress Banners:  If this option is set to YES, no banner pages will
     be printed.  If set to NO, banner pages will be printed if requested
     by the incoming print job.  UNIX print jobs usually request banners
     unless lpr is used with the -h option.  A job submitted as PostScript
     will have the banner suppressed regardless of the Suppress Banners
     option setting.
     
     Host Access Control:  If set to NO, all hosts will be allowed to print
     to configured print queues.  If set to YES, the host name will be
     checked with the list configured in the Host Access List option.  If
     the host does not exist in the list, the connection will be closed and
     the job will be rejected.  To add hosts to the list, select the Host
     Access List and press <Enter>.  A list will be displayed.  Press <Ins>
     to add a host name, or <DEL> to remove a host name.
     
     Form Numbers:  Four options for controlling the NetWare print job form
     types are provided for different types of print jobs.  Most UNIX
     implementations will send jobs in text format by default.  UNIX users
     can use the lpr option -l to print binary.  Care should be taken when
     changing the form number from the default.  Print servers can be
     configured to service only one form type, and will prompt a system
     administrator for form changes when the print server encounters a
     different form type.  The default is to set all form types to 0.
     
     Prefix and Suffix files:  Four options for adding data to the beginning
     or the end of an incoming print job are provided.  This is useful for
     queues serviced by language switching printers.  With this option,
     you can specify a file name, or leave the option blank.  All files
     used for this option must be placed in the SYS:SYSTEM\SDLPFILT\
     directory.  Several sample files are provided for your reference.
     The file LINEPRT.PS can be added as a prefix to text files when the
     queue is serviced by a PostScript printer.  Please read the LINEPRT.PS
     file for further details.  The sample file PS-HEAD.DAT will switch
     a HP3si into PostScript mode, PCL-HEAD.DAT will switch a HP3si printer
     to PCl mode.  HP-RESET.DAT will switch a HP3si printer back to the
     default printer mode.
     
     In the Miscellaneous Options in the main menu, a setting for Max
     Concurrent Incoming Jobs can be set.  This sets a limit to the number
     of print jobs SDLP will accept at once.  Each incoming print job will
     create a process (and consume processor time)  on the NetWare file
     server.  System Administrators may wish to limit the number of
     processes that SDLP can create with this option on slower systems.












     Page - 11
     Options for /etc/printcap on UNIX systems:
     
     The following list is a partial listing of options for the UNIX lpd
     software.  You should consult your documentation for a complete listing
     of features.  Note that the \ character is used to note that the
     printcap entry continues on the next line. Each option is separated
     by a : character.
     
     An example entry on a UNIX system might resemble the following:
     
     lp|printq_0:\
          :sd=/usr/spool/lp:\
          :sh:\
          :mx#0:\
          :lp=:\
          :rm=odell.sdesign.com:\
          :rp=printq_0:\
          :lf=/var/adm/lp.log:
     
     
     
     lp  (or printq_0)  Identifies the print queue to the lpd software.
         Multiple names for the queue may be listed, each separated by
         a | character. The : character ends the print queue name field.
         The remaining fields are options for the print queue
     
     sd  Directory where the UNIX system stores the queue files.
     
     sh  Suppress printing of banner page.
     
     mx  Maximum file size (in blocks)  zero=unlimited.
     
     rm  Host name for remote printer.  (For use with SDLP, this should
         be the host name of your NetWare server)
     
     lp  Device to send print output.  For remote hosts, this should be
         left blank or omitted.
     
     rp  Print queue name on remote host.  (For use with SDLP, this
         should be the print queue name on the NetWare file server)
     
     lf  Log file name.
     
     Most LPD software packages will only transfer jobs to remote hosts
     when configured with a remote printer.  This will cause options such
     as input and output filters to be ignored for remote printers.  For
     more information, consult the documentation on your LPR/LPD software
     for your UNIX host.










     Page - 12
     LPD control codes supported by SDLP for incoming jobs:
     
     The following is a list of printer command codes supported by SDLP.
     This is provided as a reference to system programmers.
     
     H     Host name where the job was printed.
     L     User name of  the job.  This specifies the job requests a
           banner page.
     N     Full path name of the source file.
     P     Login name of the job owner.  The "banner name" field will
           reflect this
           if the L option was not used.
     J     Job description for the print job.
     
     File control codes supported by SDLP:
     
     f     Print file as TEXT
     l     Print file including control characters.  (BINARY)
     o     Print file as PostScript   (Banner page is always suppressed)
     c     Print CIF file, submitted as Other job type.
     d     Print DVI file, submitted as Other job type.
     g     PLOT file, submitted as Other job type.
     n     Print ditrof file, submitted as Other job type.
     p     Print PR format file, submitted as Other job type.
     r     Print Fortran file, submitted as Other job type.
     t     Print troff file, submitted as Other job type.
     v     Print raster file, submitted as Other job type.
     
     UNIX host functions 
     
     Support for remote queue inquiries is supported by SDLP.  From a UNIX
     host, you may use the lpq program to check the status and contents of
     a queue.
     
     Support for lprm is not provided.
     
     For specific lpr options, consult your UNIX system software
     documentation.  Some lpr options that may be useful include:
     
     -h    Suppress banner pages
     
     -l    Print with control characters.  (Send job as binary)
     
     -J    Add job description. This option is usually suppressed by the -h
           option. Example:  lpr -J"My Print File" /tmp/text.file
     
     -P    Specify the UNIX print queue.  lpr -Pprintq_0 /tmp/text.file
     










     Page - 13
     Transferring Print Jobs Between NetWare Servers
     
     One use for SDLP is in systems that distribute servers at multiple
     offices on a wide area TCP/IP network, such as the Internet.  SDLP
     can be configured to transfer print jobs to and from NetWare servers
     on each site.
     
     In such a setup, users at each site can print to printers at remote
     sites without having to login or attach to file servers across a
     potentially slow link.  Print jobs could be queued on local servers
     even when the wide area network is not functioning.  Transfers to
     remote sites would begin as soon as the wide area network becomes
     operational again.
     
     Below is an illustration of this setup:
     
     
     
           <Picture is only available in PostScript Documentation>
     
     
     
     In this example, a NetWare server in New York and a NetWare server in
     Los Angles are using SDLP to transfer print jobs to each other.  Each
     server has a local print queue and printer.  In addition, each server
     has a local print queue that is serviced by SDLP.  On the file server
     LA_SERVER, the NY_QUEUE is serviced by SDLP and the print jobs are
     transferred to the server in New York.  SDLP on the server NY_SERVER
     is configured to receive jobs and place them in the queue NY_QUEUE.
     In the same manner, the file server in New York transfers print jobs
     from one of its' print queues to the LA_SERVER.  SDLP is configured on
     each server to receive print jobs for the local print queues that are
     attached to local printers.
     
     This configuration allows a user attached only to the server in Los
     Angles to print to a local printer, or print to the queue NY_QUEUE
     and have the print job transferred to New York for printing there.





















     Page - 14
     Troubleshooting
     
     Before installing SDLP, you should upgrade your file server's TCPIP.NLM
     to v2.02m.  This includes several bug fixes that are outlined in the
     upgrade software.
     
     If SDLP.NLM or SDLPCONF.NLM fail to load and symbol not found errors
     are reported, you may need to upgrade some of the file server's NLMs.
     See the section on System Requirements for details on the specific
     versions required.
     
     If errors are reported that a host name can not be found, you may
     need to add the complete host name to the SYS:ETC\HOSTS file.
     
     If SDLP or the UNIX system attempts to connect and is not successful,
     it is possible that the TCPIP.NLM is not configured correctly.  Check
     to see if a user on another workstation or UNIX host can ping the
     NetWare server by IP address AND by host name.
     
     Jobs transferred to UNIX hosts to be printed appear to be double
     spaced: This is often caused by not removing the CR/LF markers from
     DOS text files.  Make sure the outgoing job translation is set to
     Automatic or Translate CR/LF->LF and that the print job is submitted
     to the queue as TEXT.  If the job is submitted as BINARY to the NetWare
     queue configured for Automatic translation, you will need to set the
     job type to TEXT in your print job definition.
     
     Print jobs sent from UNIX hosts print with a stair step effect.  Each
     line of  text is vertically below the line above however the text does
     not begin at the left margin.   This is often caused by not translating
     the UNIX LF (line feed) character into a CR/LF pair.  Check to make
     sure the incoming queue translation is set to Automatic or LF->CR/LF.
     Text jobs should not be sent from the UNIX lpr program with the -l
     option.
     
     If SDLP takes a long time to unload while a connection to a remote
     machine is waiting to time out, you may need to upgrade to v2.02m of
     the TCPIP.NLM.  In some of our test it took as long as 20 minutes for
     a connection to time-out while connecting to a nonexistent remote
     host with TCPIP.NLM v1.00.  With the newer TCPIP.NLM, this has been
     reduced to about 45 seconds.
     
     If you are unable to determine the source of a problem with SDLP,
     set the log level to NOISE in the SDLPCONF.NLM (in the Miscellaneous
     options menu) This will give many more error and notice messages
     while processing print jobs.
     











     Page - 15
     About Secure Design
     
     If you would like information about our products, please contact us
     at the following address.
     
          Secure Design
          PO Box 475
          Corvallis, OR 97339  USA
     
          Internet:     support@sdesign.com   (or sdesign@mcimail.com)
          Mail Server:  autohelp@sdesign.com
          Phone:        (503) 752-5988
          Fax/BBS:      (503) 752-5990
     
     Demo products and software updates can be obtained by Internet e-mail
     by sending a message to autohelp@sdesign.com with a subject of "help"
     or by calling the BBS number as listed above.
     
     For information about World Wide Web (WWW) services and site names,
     please send a message to autohelp@sdesign.com with a subject of "help".
     
     For complete ordering and address information, use the CATALOG.TXT
     file provided with this software.
     
     
     
     For Further Reading
     
     McLaughlin III, 1990. "Line Printer Daemon Protocol,"  RFC 1179,
         14 pages (Aug.)
     
     Novell, Inc.,  TCP/IP Transport Supervisor's Guide.  Novell, Inc.  
         (available by FTP from ftp.novell.com)
     
     Stevens, W. R. 1994.  TCP/IP Illustrated Volume 1.  Addison-Wesley,
         Reading,  Massachusetts
     
     Stevens, W. R. 1990.  UNIX Network Programming.  Prentice Hall,
         Englewood Cliffs, New Jersey.
      Page - 16
