The CSPACK PAM file is available on all central CERN systems in the normal place, e.g. on the CERNPAMS disk on CERNVM, in /cern/pro/pam on Unix systems and in CERN:<PRO.PAM> on VAX/VMS.
The CSPACK FORTRAN callable interface routines are installed in PACKLIB on all systems which have PACKLIB corresponding to CERN Computer News Letter 200 or above. The tools (ZFTP, ZSERV, PAWSERV, SYSREQ, TELNETG) are installed on all central systems with the following exceptions:
-- -3 Suppress all log messages -- -2 Error messages -- -1 Terse logging -- 0 Normal -- 1 Log calls to XZ routines -- 2 Log to monitor XZ internals -- 3 Debug messages
All of the routines and programs that compose CSPACK are installed used the standard CERNLIB installation tools. The general procedure is:
1 TELNETG is available on Unix and VAX/VMS systems only 2 SYSREQ requires Wollongong or Multinet TCP/IP (VAX/VMS systems). Note that SYSREQ is currently only used (in the context of CSPACK) for remote access to the CERN TMS system. On VM/CMS systems, IUCREQ (SRQSRV) should be used.
More information on the CERNLIB installation procedures can be found on the INSTALL PAM in the deck UGUIDE for the relevant machine. For example, on Unix systems, the deck is in PATCH=DUNIX,D=UGUIDE, for VAX systems, the deck is in PATCH=DVAX,D=UGUIDE etc.
The link procedure for the generation of user-developed client-server programs should be based on that of ZFTP and ZSERV for the relevant machines. In all cases, the CERNLIB installation procedure should be followed.
To use the CSPACK tools with TCPAW as the network layer, files on both the client and server side must be correctly configured. Firstly, the TCP port numbers and associated services must be defined. Secondly, in the case that incoming connections are allowed (and possible), the programs to be run for each known service must be defined. The following table lists the current values and names used at CERN. Note that these definitions must be made on both client and server and must match. On Unix these definitions are made by adding a line to the file /etc/services as follows:
pawserv 345/tcp # Comment string, e.g. 'For distributed PAW'For VAX/VMS and other systems, see the relevant system specific details.
1 Generate PACKLIB (e.g. MAKEPACK -l PACKLIB) 2 Generate the tools (e.g. MAKEPACK ZFTP, MAKEPACK ZSERV etc.) 3 Configure the system files
These ports have been registered with the Internet Assigned Number Authority at ISI.
To permit incoming connections, a definition in the relevant services file must be made. This is typically in /etc/inetd.conf for Unix systems, although in the case of the Silicon Graphics the file is in /usr/etc/inetd.conf. The information to be added to this file consists of one line per service, specifying the service name and program to be run, e.g.
zserv stream tcp nowait root /cern/pro/bin/zserv zserv
After modifying the /etc/inetd.conf file, the inetd must be told to re-read the file. This can be done by rebooting the system, or by sending a hangup signal.
Table 13.1: Service names and TCP ports used by CSPACK --------------------------------------------------------- Service TCP port Description --------------------------------------------------------- pawserv 345 Distributed PAW zserv 346 Server for ZFTP, remote Zebra fatserv 347 Server for FATMEN ---------------------------------------------------------
On systems running AIX, it is recommended that the following line be added to the file /etc/environment. This sets the shell variable xrf_messages to no and thus prevents FORTRAN run-time messages being printed.
xrf_messages=no
These messages disturb the protocol used between the ZSERV or PAWSERV servers and the ZFTP or PAW clients.
On VAX/VMS systems, three versions of TCP/IP are currently supported. The CERNLIB installation procedure automatically performs the correct link procedure but the configuration of the system files must be performed manually.
The VAX/VMS version of ZFTP and ZSERV also support connections via DECnet from other VAX/VMS systems. This is activated by the -d option, e.g.
$ZFTP VXCRNA -D
No configuration is required for ZFTP. However, ZSERV must be defined as a known DECnet object, e.g.
MCR NCP NCP>SET OBJECT ZSERV NUMBER 0 FILE CERN:[PRO.EXE]ZSERV NCP>DEF OBJECT ZSERV NUMBER 0 FILE CERN:[PRO.EXE]ZSERV NCP>EXIT
The ZSERV program automatically detects whether the incoming request is via DECnet or TCP/IP and acts accordingly.
To define the service PAWSERV for UCX version 3.0, issue the following command:
Defining PAWSERV for UCX 3.0
$ UCX SET SERVICE PAWSERV /PORT=345 /FILE=CERN:[PRO.EXE]UCX$PAWSERV\_STARTUP /PROCESS\_NAME=PAWSERV /USER=SYSTEM $ UCX ENABLE SERVICE PAWSERV The default protocol is /PROTOCOL=TCP.
The command procedure UCX$PAWSERV_STARTUPlooks like:
UCX$PAWSERV_STARTUPcommand file
$ RUN CERN:[PRO.EXE]PAWSERV
Versions of the DEC UCX product prior to 3.0 do not provide an Internet Daemon (inetd), hence incoming connections are not possible. Thus there is no equivalent to the /etc/inetd.conf file.
Furthermore, the library routine GETSERVBYNAME returns -1, indicating 'function not implemented'. Until this function is included in the UCX library, the routine GETSERVBYNAME from PATCH TCPAW in the CSPACK pam file may be used. This code is activated by selecting +USE,UCX in the PATCHY step of the installation procedure. An example configuration file for use with this routine is available in P=CONFIG,D=SERVICES.
In the case of Wollong the equivalent of /etc/services is TWG$TCP:<NETDIST.ETC>SERVICES. The file format is the same for Unix systems, thus an entry such as
zserv 346/tcpshould be made.
The equivalent to the /etc/inetd.conf is the file TWG$TCP:<NETDIST.ETC>SERVERS.DAT. An example entry is shown below.
service-name Pawserv program CERN:<PRO.EXE>PAWSERV.EXE socket-type SOCK_STREAM socket-options SO_ACCEPTCONN | SO_KEEPALIVE socket-address AF_INET , 345 working-set 300 INIT TCP_Init LISTEN TCP_Listen CONNECTED TCP_Connected SERVICE Run_Program
On systems running MULTINET TCP/IP, the equivalent file to /etc/services is (somewhat confusingly) MULTINET:HOSTS.LOCAL. Entries should be added to this file in the format
SERVICE : TCP : 345 : PAWSERV :After making changes to this file, it should be compiled using the command
MULTINET HOST_TABLE COMPILETo activate these changes without restarting the system, type
@MULTINET:INSTALL_DATABASES
@MULTINET:START_SERVER
To define servers to Multinet, use the command
MULTINET CONFIGURE /SERVERSAn example dialogue is given below:
SERVER-CONFIG>add zserv Protocol: [TCP] tcp TCP Port number: 346 Program to run: CERN:[PRO.EXE]ZSERV.EXE SERVER-CONFIG>RESTART
More details on configuration MULTINET may be found in the Multinet System Administrator's Guide, including how to restrict access to certain services etc.
On VM/CMS systems, two versions of TCPAW exist. The recommended version is the same as used on other systems, but requires the IBM SAA C compiler and IBM's TCP/IP version 2 or higher. When using this version, which is activated by selecting the PATCHY flag TCPSOCK (performed by default in the CERN Program Library installation cradles), the file ETC SERVICES, which resides on the TCP/IP installation disk, must be modified to include definitions of the required services (ZSERV, PAWSERV) as for Unix systems.
If TCPSOCK is de-selected, e.g. +USE,TCPSOCK,T=INHIBIT, then the older PASCAL version of TCPAW is activated. This version has the definitions of zserv and pawserv hard-coded (to ports 346 and 345 respectively).
There are some limitations with the PASCAL version, the most significant of which is the fact that connections between two VM systems is not currently possible.
Other limitations that currently exist for VM/CMS systems include:
Table 13.2: Signalling inetd to reread the /etc/inetd.conf file ----------------------------------------------- System Command ----------------------------------------------- AIX refresh -s inetd HP/UX inetd -l Alpha/OSF /sbin/init.d/inetd stop|start Others kill -1 pid -----------------------------------------------
1 Servers are started using a different technique to other systems. It is for this reason that the remote system must know that it is talking to a VM system. Use the option -V on the open command, e.g. ZFTP vmnode -V in such cases. 2 Due to limitations of VM/CMS, the username specified when starting a server on VM systems must not be currently in use ('logged on').
Table 14.1: ZFTP commands +--------------+-------------------------+-----------------------------------+ | | | | +-Command------+-Function----------------+-Description-----------------------+ | OPEN | Open connection | Establish connection to | | | | specified host | | | | | | CLOSE | Close connection | Close connection with current | | | | host | | | | | | GETA/PUTA | Text file transfer | Text file transfer, e.g. | | | | scripts, EXECs, CARD pams etc. | | | | | | GETB/PUTB | Binary file transfer | Binary file transfer (fixed | | | | length records only) e.g. ZEBRA | | | | FZ binary exchange format, EPIO, | | | | CETA files | | | | | | GETD/PUTD | Direct-access file | Direct-access file transfer e.g. | | | transfer | ZEBRA RZ file between like | | | | machines. | | | | | | GETRZ/PUTRZ | ZEBRA RZ file transfer | RZ file transfer with automatic | | | | conversion between different | | | | data representations, e.g. HBOOK | | | | | | | | histogram or ntuple files, CMZ | | | | files. | | GETFZ/PUTFZ | ZEBRA FZ file transfer | FZ file transfer with automatic | | | | | | | | conversion between different | | | | data representations (currently | | | | in preparation) | | | | | | GETP/PUTP | Compact binary PAM | Transfer a compact binary PAM | | | transfer | file (not yet to Cray) | | | | | | CD | Change working | Set working directory on remote | | | directory | node | | LCD | Change working | Set working directory on local | | | | | | | directory | node | | LS | Remote LS command | Make remote directory listing | | | | | | LLS | Local LS command | Make local directory listing | | | | | | MPUT | Put multiple files | Send all files matching the | | | | specified pattern to the remote | | | | machine. The mode of transfer is | | | | determined by the file type: | | | | .CET, .CETA = PUTB, .CMZ = | | | | PUTRZ, other = PUTA | +--------------+-------------------------+-----------------------------------+
appendix