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.
Service | TCP port | Description |
pawserv | 345 | Distributed PAW |
zserv | 346 | Server for ZFTP, remote Zebra |
fatserv | 347 | Server for FATMEN |
Table: Service names and TCP ports used by CSPACK
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.
System | Command |
AIX | refresh -s inetd |
HP/UX | inetd -l |
Alpha/OSF | /sbin/init.d/inetd stop|start |
Others | kill -1 pid |
Table: Signalling inetd to reread the /etc/inetd.conf file
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.
N.B. ZSERV and PAWSERV are linked against 'the system' (e.g. LINK/SYSEXE on AXP, sys$system:sys.stb on VAX) and are thus likely to be INCOMPATIBLE across VMS releases. If you experience problems, check that there is not a version mismatch, as shown below. If there is, you MUST rebuild the appropriate server on your system.
Checking for mismatches in the system level
r cern:[pro.exe]zserv %DCL-W-ACTIMAGE, error activating image CERN:[PRO.EXE]ZSERV -CLI-E-IMGNAME, image file $1$DUA3:[CERN.][PRO.EXE]ZSERV.EXE;35 -SYSTEM-W-SYSVERDIF, system version mismatch - please relink
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.
ZSERV is defined similarly (port 346).
The command procedure UCX$PAWSERV_STARTUP looks like:
UCX$PAWSERV_STARTUP command 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 : SERVICE : TCP : 346 : ZSERV :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: