HP 9000 Series 800 HP-PB Computers CommKit 4.
The information contained in this document is subject to change without notice. HEWLETT-PACKARD MAKES NO WARRANTY OF ANY KIND WITH REGARD TO THE MATERIAL, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Hewlett-Packard shall not be liable for errors contained herein or for incidental or consequential damages in connection with the furnishing, performance, or use of this material.
Printing History Printing History The Printing History below identifies the edition of this manual and any updates that are included. Periodically, update packages are distributed which contain replacement pages to be merged into the manual, including an updated copy of this printing history page. Also, the update may contain write-in instructions. Each reprinting of this manual will incorporate all past updates; however, no new information will be added.
Conventions Used In This Manual Conventions Used In This Manual This manual presents sample commands and command formats for you to use.
Conventions Used In This Manual vi
Contents 1 Overview Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2 File and Script Locations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2 Software Release History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3 VCS Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4 2 Installing the NIO CommKit Host Interface Preparing for Installation . . . . . . . . . . . . . .
Contents Installing the CommKit Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-13 Verifying the Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-15 Running the dkdiag Diagnostic Test . . . . . . . . . . . . . . . . . . . . . . . . . . 2-16 Using Remote Loopback Mode . . . . . . . . . . . . . . . . . . . . . . . . . 2-16 Using Local Loopback Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-17 3 Control Tables Introduction . . . . . . . .
Contents Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-31 dkdotab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-32 dkuidtab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-35 4 Administering the CommKit Software and the STREAMS Listener Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Contents 5 Programming with the CommKit Function Library Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2 CommKit Software Function Library . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3 The TLI Application Function Library . . . . . . . . . . . . . . . . . . . . . . . . . 5-5 Making STREAMS-Based Outgoing Connections . . . . . . . . . . . . . . . . 5-6 6 Porting CommKit Applications To Release 4.0 Introduction . . . . . . . . . . . .
Contents open(2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-15 read(2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-15 write(2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-16 poll(2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-17 close(2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Contents B Troubleshooting Guide Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-2 Troubleshooting Checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-3 Error Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-5 Console Error Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-5 C Ordering Information AT&T Fiber Optic Cables . . . . . . . . . . . .
1 Overview 1-1
Overview Description Description The NIO CommKit Host Interface provides users of HP 9000 computers, that support the HP-PB (NIO) backplane, running HP-UX with a high-speed data link to the AT&T Datakit® network. In an AT&T data switch network, hosts and terminals are connected to an AT&T Datakit switch. The NIO CommKit Host Interface consists of one or more native I/O (NIO) Datakit boards, the CommKit Host Interface software, and this manual.
Overview Description Table 1-2 Location of Files and Scripts File or Script Location Commands /opt/dk/bin, /opt/dk/sbin Manual Pages /opt/dk/share/man Device Files /dev, /dev/dk, /dev/dkt, /dev/dkx Log Files /var/opt/dk/log/dksrvlog*, /var/opt/dk/log/dkdaemonlog*, /usr/net/nls/dktp*/log Server Control Files /etc/opt/dk/srvtab or /etc/opt/dk/srvtab/* Software Release History Historically, the CommKit Host Interface, product number Z7126A, has been refered to as “CommKit 4.
Overview Description VCS Documentation Information in this manual regarding the Virtual Circuit Switch is minimal. For references to AT&T documentation please see Table 1-4.
2 Installing the NIO CommKit Host Interface 2-1
Installing the NIO CommKit Host Interface Preparing for Installation Preparing for Installation Installing the NIO CommKit Host Interface involves installing both the Datakit interface board and the CommKit software. You may be installing the NIO CommKit Host Interface for the first time, or you may be integrating a new version into an existing Datakit network.
Installing the NIO CommKit Host Interface What the Installation Process Involves What the Installation Process Involves The complete installation process involves the following steps: • Installing the Datakit interface board • Cabling the Datakit interface board to the data switch • Updating the VCS database with new installation information • Installing the CommKit software You should install the Datakit interface board first.
Installing the NIO CommKit Host Interface Installing the Datakit Interface Boards Installing the Datakit Interface Boards On the host computer in which you will install the Datakit interface boards, perform the following steps: 1 Log in as superuser. 2 Check which users are currently logged in to the system: # who 3 Advise the users of an impending shutdown. 4 Bring the computer to an orderly shutdown: # shutdown -h 5 Switch off the computer.
Installing the NIO CommKit Host Interface Connecting the Fiber Optic Cables Connecting the Fiber Optic Cables The cable that you use to connect the Datakit interface board to the VCS switch must be an AT&T 62.5 micron fiber optic cable with two split-ferrule straight-tip (ST) connectors on each end. On each end of the cable, one connector is for the transmit connection and one is for the receive connection. The positions of the transmit and receive connections are reversed on the two ends of the cable.
Installing the NIO CommKit Host Interface Connecting the Fiber Optic Cables Cabling a Datakit Interface Board To a CPM-HS Module 1 Make sure that both the host computer and the VCS switch are turned on. 2 Hold one end of the fiber optic cable. 3 Connect one of the ST connectors to the transmit (TX) jack on the Datakit interface board. 4 Connect the other ST connector to the receive (RX) jack. 5 Move to the other end of the fiber optic cable.
Installing the NIO CommKit Host Interface Updating the VCS Database Updating the VCS Database Once you cable the Datakit interface board to the VCS module, you must update the VCS database to add the following new installation information: • The group name • The address of the CommKit server, in lowercase letters • The address of the STREAMS TLI Listener, in uppercase letters (optional) • The CPM-HS module information You will then restore the CPM-HS module to its “in service” state.
Installing the NIO CommKit Host Interface Updating the VCS Database Use the following as an example: GROUP: hpams5x TYPE: local DIRECTION: 2way DEVICE or HOST: hpams5x PASSWORD: anything you like ROUND ROBIN SERVICE: 4 Press Delete (or Shift-Escape) to return to the CCO> prompt.
Installing the NIO CommKit Host Interface Updating the VCS Database Entering the CPM-HS Module Information 1 At the CCO> prompt, type: CCO> enter cpm 2 Answer each of the database prompts that appears, pressing Return to accept the default value or entering one of the other allowed values.
Installing the NIO CommKit Host Interface Remove the Existing CommKit Version Remove the Existing CommKit Version If you are already connected to a CommKit network, you need to remove the old version of the CommKit software before you install this version. If you install this version without first removing the old version, you may leave the system in an unusable or inconsistent state. The older CommKit version may be installed on HP-UX 9.x or on HP-UX 10.x. or 11.x. Removing CommKit From HP-UX 10.x/11.
Installing the NIO CommKit Host Interface Remove the Existing CommKit Version 8 Select Actions > Remove to remove the CommKit fileset. 9 To exit swremove, select File > Exit from the menus. 10 Continue with the instructions in the next section, “Installing the CommKit Software on HP-UX 10.x.” Removing CommKit From HP-UX 9.x and Upgrading to HP-UX 10.x or 11.x 1 On HP-UX 9.x, log in as superuser.
Installing the NIO CommKit Host Interface Remove the Existing CommKit Version To upgrade, follow the installation instructions that come with HP-UX 10.x or 11.x. 10 Install this version of the CommKit software, according to the instructions in this manual. 11 Move to the /etc/opt/dk directory: # cd /etc/opt/dk 12 Insert the second backup tape (the tar tape) into the tape drive.
Installing the NIO CommKit Host Interface Installing the CommKit Software Installing the CommKit Software 1 Make sure that the desired HP-UX version is installed on the host server. 2 Make sure that the Streams and Streams-TIO filesets are installed. 3 Make sure that the Datakit interface board is installed in the host server. 4 Back up any existing CommKit or Datakit files that are specific to your site-— for example, dksrvtab (or srvtab files), dkhosts, and dkuidtab.
Installing the NIO CommKit Host Interface Installing the CommKit Software 11 Make sure that the /etc/rc.config.d/dkit file contains an entry for each server/interface combination. If you add servers or have more than one server for an interface board, use a text editor to add entries to the dkit file. You are now ready to use the NIO CommKit Host Interface.
Installing the NIO CommKit Host Interface Verifying the Installation Verifying the Installation When you have completed the installation process, you may want to verify that the installation was correct. 1 Log in as superuser. 2 Enter the command dmesg The system will display startup and diagnostic messages: 4.1 lan3 8 lanmux0 8.1 lan3 12 dknio0 20 dknio0 52 scsi1 52.0 target 52.0.0 tape 2 Notice that the fourth and fifth lines display the numbers of the two Datakit interface boards, dknio0.
Installing the NIO CommKit Host Interface Running the dkdiag Diagnostic Test Running the dkdiag Diagnostic Test The dkdiag program provides a series of hardware diagnostic tests that verify that the Datakit interface board is installed correctly. You can use the dkdiag program in either local or remote loopback mode. If the Datakit interface board is connected to the CPM-HS module, use the remote loopback mode.
Installing the NIO CommKit Host Interface Running the dkdiag Diagnostic Test 6 Run dkdiag again: # dkdiag -a 7 Check the output of dkdiag again. Rerun dkdiag until all tests pass. If test failures continue to occur, use local loopback mode. Using Local Loopback Mode 1 Connect the transmit connector on the other end of the fiber optic cable to the transmit jack. 2 Connect the receive connector on the other end of the fiber optic cable to the receive jack.
Installing the NIO CommKit Host Interface Running the dkdiag Diagnostic Test 8 Run dkdiag again: # dkdiag -a -l 9 Check the output of dkdiag again. Rerun dkdiag until all tests pass. If test failures continue to occur, make sure that dkdiag is run on the system before any other Datakit activity occurs (such as starting the dkserver or executing a dk command).
3 Control Tables (from AT&T 255-110-127) 3-1
Control Tables (from AT&T 255-110-127) Introduction Introduction This chapter describes the control tables that must be edited to reflect your data switch network environment. These tables are used when a call is received or sent through the CommKit Host Interface. The CommKit Host Interface software relies on these tables to implement call validation for such services as login, remote login, remote execution, and file transfer.
Control Tables (from AT&T 255-110-127) Introduction the incoming call request includes a DKKEY. A three-field entry is added to the dkuidtab table when a user self-authorizes on the host [see authorize(1M)]. A dkuidtab file is created under /etc/opt/dk during the installation procedure. The software distribution medium does not contain a sample of this file. Manual administration of the dkuidtab file is unnecessary.
Control Tables (from AT&T 255-110-127) Data Switch Dialstrings Data Switch Dialstrings Understanding the purpose and format of the data switch dialstring, especially the user-dialstring, is helpful for setting up the interface tables. This section gives an in-depth description of the dialstring and its use. The dialstring is used to access other data switch devices (such as terminals, printers, and other hosts) from your host system.
Control Tables (from AT&T 255-110-127) Data Switch Dialstrings and 3 if the local host is to send both INTREQ and INIT1). • Recbuf - the logarithmic (base 2) value of the call originator’s receive buffer size. • User-dialstring - the information provided by the caller on the local host in the original dialstring (such as location, service, protocol, and parameter information). • User-ID - a sequence of characters which the data switch node extracts from the call setup message.
Control Tables (from AT&T 255-110-127) Data Switch Dialstrings name for the host as defined in the data switch control computer database. This location information is used to route the call through the data switch network to the desired host. • The next fields in the User-dialstring are optional to the data switch. Translation of these field values is positional and dependent on the program processing the incoming call message, such as the CommKit Host Interface server dkserver.
Control Tables (from AT&T 255-110-127) Data Switch Dialstrings • v and x are protocol values translated on the receiving (remote) end as: v Environment variables should be read from the incoming data channel x Open the remote execution protocol device driver for this channel. The data switch node then adds routing information to the supplied dialstring, and the receiving host sees the following dialstring arrive for service: Chan.Token.Lflag.URPinit.Recbuf\n nj/shore/hpams5x.rl.vx/n 104\n Origin.Node.
Control Tables (from AT&T 255-110-127) Data Switch Dialstrings /etc/passwd file. *n requests that the system use the incoming numeric user ID (104) transparently if an entry is found in /etc/passwd with the same number. The parameters to the shell are -Xsh:-c:%p. %p is translated by the server as any parameter sent in the dialstring from the local host, reparsed, so that if it contains colons, separate arguments will be generated.
Control Tables (from AT&T 255-110-127) dkhosts dkhosts Refer also to the dkhosts(4) manual page. The CommKit Host Interface software package includes a sample dkhosts table found in the directory /etc/opt/dk. Edit this sample table to reflect your network environment. The dkhosts mapping table is used for exanding dialstrings when making outgoing calls from the host.
Control Tables (from AT&T 255-110-127) dkhosts c alternate command to execute locally s service name v existence of environment variables (y or n) p protocol string o old protocol (y or n) An example use of the miscellany field is to force the dk command to use dkcu for remote logins to a particular host. This would be necessary if the destination host does not have a remote execution driver and, therefore, does not support the remote login protocol.
Control Tables (from AT&T 255-110-127) dkhosts NOTE: This dash must be included as a place holder or the entire entry will be ignored. Edit the sample dkhosts file to reflect your own data switch network environment. Change the host names to reflect the proper host names that will be referenced in a CommKit Host Interface call, and the full dialstrings mapped accordingly. For each host attached to the data switch node, determine the service classes.
Control Tables (from AT&T 255-110-127) srvtab srvtab Refer also to the srvtab(4) manual page. The granting and denial of access privileges by the CommKit Host Interface on a called host is controlled entirely by the server table on that called host. An incorrect or incomplete server table can cause serious security problems by allowing unauthorized access to system files and resources.
Control Tables (from AT&T 255-110-127) srvtab Mapping lines in the srvtab table consist of six tab-separated fields: system NOTE: service flags user program initial parms Delimit fields by tabs only. Do not use blanks. These fields are described below. System Field The system field (originating group) contains a pattern against which originating groups are matched. The format of the pattern is area/exchange/ group[!][.user], where the suffixes ! and .user are optional.
Control Tables (from AT&T 255-110-127) srvtab originating group, while the pattern 1c/sporty/*.0 would match the user root from any group in the area/exchange, 1c/sporty. A question mark is used to match the null user ID. Since TY6 and TY12 ports do not generate a user ID as part of the dialstring, the pattern *.? may be used to match requests from an originating terminal or modem group. Finally, the pattern 1c/ sporty/*!.
Control Tables (from AT&T 255-110-127) srvtab NOTE: dkload The dkload service is used by the diagnostic tool dkload for interface loading. This service supports the remote end of a loopback test program that can be used to saturate the CommKit Host Interface. do The do service is used by the command dkdo to provide transparent remote execution of commands across different hosts. login The login service maps to an invocation of the login.
Control Tables (from AT&T 255-110-127) srvtab NOTE: Different login names can be specified, based on the originating group name. For example, luucp might be used for requests from local hosts, while nuucp would be used for requests from unknown or “network” hosts. See the section Fixed User ID Mapping, later in this chapter. whoami The whoami service maps to an invocation of the echo command and is used to echo back a string showing the requester’s user number and originating group name.
Control Tables (from AT&T 255-110-127) srvtab Flag u v x I L R T U Description Opens the raw [URP protocol] data service and invokes the program with the stdin, stdout, and stderr files attached to the /dev/dk/?.??? device for the raw channel. Environment variables should be read from the incoming data channel before execution of the program. This flag should be specified only for remote execution channels.
Control Tables (from AT&T 255-110-127) srvtab Flag / Description If a / flag is present, the flags that follow it act as the default flag settings and the user-supplied protocol field portion of the dialstring (if any) replaces the part after the /. This flag is invalid if the user-supplied protocol field contains illegal flags or if it contains an I, L, R, T or U flag.
Control Tables (from AT&T 255-110-127) srvtab Table 3-2 Option *n, *o & uid [login] User ID Mapping Options Description Use the numeric user ID supplied in the call request information. The *o means the user ID should be interpreted as an octal number. The *n indicates the user ID should be treated as a self-determining number. For example, an initial 0x or 0X indicates the hexadecimal, and an initial 0 indicates octal.
Control Tables (from AT&T 255-110-127) srvtab Initial Parms Field The initial parms field (fixed program arguments field) of a server table entry specifies the initial (fixed) arguments for the invoked program. The colon-separated arguments from the server table will be passed to the invoked program starting as the zero argument.
Control Tables (from AT&T 255-110-127) srvtab Specification %r %s %t %u %x %z %C %H %U Description The protocol field of the dialstring, if any. The pathname of the user’s shell as obtained from the /etc/passwd file. A null shell field in the password file will be expanded as /bin/sh. The device file name that corresponds to the assigned Datakit VCS channel, minus the initial /dev/. The numeric user ID of the user placing the call.
Control Tables (from AT&T 255-110-127) srvtab Server Table Validation and Matching Since /etc/opt/dk/srvtab is a directory, the file corresponding to the requested service is examined. If that file does not exist, the wild card file * is used. Call requests are denied with an access denied [see dkerr(3x)] rejection code if the end of the table is reached before a match occurs. All lines containing a # character in the first column and all lines without the proper number of fields are ignored.
Control Tables (from AT&T 255-110-127) srvtab If a pupu call request comes from root in originating group lc/sporty/camaro, the request will match the first server table entry and will be run as root. The *n user ID option indicates that no user ID translation will take place.
Control Tables (from AT&T 255-110-127) srvtab A user ID mapping facility is necessary because every user on every remote host your system communicates with may not have a login on your system. Some of your systems may have identical password files (for example, each user has the same login on each system), while other groups of systems may have no users in common.
Control Tables (from AT&T 255-110-127) srvtab In addition, if transparent user ID mapping is used for administrative logins between two systems, anyone that becomes root, bin, or another of the administrative users on one of the systems may retain those privileges on the other system. Translated User ID Mapping The translated mode of user ID making is specified by the & user ID mapping option in the server table.
Control Tables (from AT&T 255-110-127) srvtab Fixed user ID mapping is also useful for selecting uucp logins based on originating location. Each of the logins must exist in the /etc/passwd file and have /usr/lbin/uucp/uucico as the login shell.
Control Tables (from AT&T 255-110-127) srvtab If the administrator was certain that no other systems in the exchange nj/cc had originating groups that began with the prefix myux, the mapping entries for the previous example could be shortened to: # transparent administrative mappings nj/cc/myux* rl U/vx *n<100 # # translated user mappings nj/cc/myux* rl U/vx &>100 %s %s -Dsh -Dsh Trapping Incoming Calls The Server Table Scanning Rules section describes how the dkserver program scans the server table t
Control Tables (from AT&T 255-110-127) srvtab initial_parameters field is parsed for program argument substitution tokens (special codes) and is logged to the server table log file as a record of the call rejection.
Control Tables (from AT&T 255-110-127) srvtab Server Table Entries Which Are Not Secure Since the server table is the absolute arbiter of privilege for services provided by the CommKit Host Interface server program, server table sequences which are not secure must be avoided to prevent unauthorized access to the host system. Administrators should periodically check the server table on each of their hosts and remove any entries which are not secure.
Control Tables (from AT&T 255-110-127) srvtab CAUTION: The *n form of user ID mapping should not be used in conjunction with originating group wild cards unless those wild cards are sufficiently specific to limit access to trusted, commonly administered systems. * pupu - root /opt/dk/bin/pupu pupu:from:%f The specification of root on the above server table entry allows any user on any system in the network to read or write any file on the called host.
Control Tables (from AT&T 255-110-127) srvtab Server Table Scanning Rules section. Lines in each server table file will still match the incoming call request only if they contain the service field wild card or if the service field matches the requested service. If the opening of the appropriate server table file fails, the server attempts to use the file * as the server table file.
Control Tables (from AT&T 255-110-127) dkdotab dkdotab Use this section as an aid in the editing of /etc/opt/dk/dkdotab. Refer also to the dkdotab(4) manual page. The CommKit Host Interface software package includes a sample dkdotab file found in the directory /etc/opt/dk. Edit the same file to reflect your own community of interest. Within a typical network, it is not always possible to support the same or all of a set of commands on all of the hosts in the data switch network.
Control Tables (from AT&T 255-110-127) dkdotab flags the flags affecting the operation of the dkdo command options the command options available for this command and how the options are parsed files whether the files associated with this command are input or output files, or both The /etc/opt/dk/dkdotab may consist of one or more lines; one for each unique table entry. The dkdo command scans this table for the requested command, looking for the appropriate system on which to execute it.
Control Tables (from AT&T 255-110-127) dkdotab This example means that if the command get is specified, it should be executed on the host fish. If an s. precedes the input argument file names, strip off the s. before sending the command arguments to the remote system. Use the .rx service.
Control Tables (from AT&T 255-110-127) dkuidtab dkuidtab Refer also to the dkuidtab(4) manual page for more details. The file dkuidtab is found in the /etc/opt/dk directory. The file is updated by authorize when a user from a remote host calls the local host for authorization service, and is used by the dkserver program to obtain information on how to map users IDs from incoming call requests to valid IDs on the local host.
Control Tables (from AT&T 255-110-127) dkuidtab 3-36
4 Administering the CommKit Software and the STREAMS Listener 4-1
Administering the CommKit Software and the STREAMS Listener Description Description With Release 4.x of the NIO CommKit Host Interface, you can start and stop the CommKit servers in several ways. If you are accustomed to using /etc/rc to start and stop the servers, you should now use the current HP-UX startup paradigm, because /etc/rc no longer exists. However, if you use dkitrc to start and stop the servers, you can continue to use it, because dkitrc works as before.
Administering the CommKit Software and the STREAMS Listener Why Two Servers? Why Two Servers? The NIO CommKit Host Interface supports two types of servers—a CommKit server and a Transport Level Interface (TLI) listener server. Each server requires its own type of client application. The CommKit server requires a client application written in the CommKit library functions. The listener server requires a network-independent client.
Administering the CommKit Software and the STREAMS Listener Why Two Servers? The listener’s client application must call the network-independent Transport Level Interface (TLI) library functions. The network service module, not the application, dials the outgoing call. In your application, specify the remote host in a t_connect() call and the service for the NLPS string in a write() call.
Administering the CommKit Software and the STREAMS Listener Automating Startup on HP-UX Automating Startup on HP-UX Your system startup configuration is defined in the /etc/rc.config.d/dkit file. The /etc/rc.config.d/dkit file consists of various entries defining the arguments used by the startup script, /sbin/init.d/dkit, and the dkitrc program. (In the rest of this section, the term dkit file refers to the /etc/ rc.config.d/dkit file, not the /sbin/init.d/dkit startup script.) By default, the /etc/rc.
Administering the CommKit Software and the STREAMS Listener Automating Startup on HP-UX The index number corresponds to the Datakit group which is identified by a server. If there is one interface per group, then the index also corresponds to the interface number. If you have multiple servers for each interface, the index number is not always the same as the interface number. The lines in the entry are explained in Table 4-1.
Administering the CommKit Software and the STREAMS Listener Automating Startup on HP-UX Table 4-1 Entries in the dkit Configuration File Parameter Description DKVERBOSE[] Specifies the verbosity level. This parameter is optional; specify it only to override the default value of 6. The maximum value is 9. DKROPTION[] Adds the -r option to the dkserver command line. Optional. DKEXPANDENV[] Adds the -e option to the dkserver command line. Optional.
Administering the CommKit Software and the STREAMS Listener Starting and Stopping the CommKit Server Starting and Stopping the CommKit Server To start the CommKit server, log on as superuser and then enter a dkserver command in the following form: # dkserver -i interfaceNumber -s server -l logFile The -i option specifies the CommKit interface board to start (numbered from 0 to 7), the -s option specifies the server name, and the -l option specifies the log file in which system messages will be stored.
Administering the CommKit Software and the STREAMS Listener Starting and Stopping the CommKit Server # dkitrc stop Starting and Stopping a Specific CommKit Interface Board To start or stop the server for a specific CommKit interface board, use the -i option with dkitrc. For example, to start the CommKit server from board 2, enter: # dkitrc start -i 2 To stop both the server and the listener, which are running on board 2, enter: # dkitrc stop -i 2 Starting and Stopping the Daemon The CommKit 4.
Administering the CommKit Software and the STREAMS Listener Starting and Stopping the CommKit Server dkmgr: SERVER is ACTIVE and SERVING 4-10
Administering the CommKit Software and the STREAMS Listener Making Outgoing Connections Making Outgoing Connections You can specify one of two modes for making and receiving calls from the CommKit interface board: round-robin mode or forced interface mode. In round-robin mode, outgoing calls circle among all the Datakit interface boards you have installed.
Administering the CommKit Software and the STREAMS Listener Making Outgoing Connections Using Round-Robin Mode To turn off forced interface mode and return to round-robin mode, remove the definition of DKINTF.
Administering the CommKit Software and the STREAMS Listener Cleaning Up Growing Files Cleaning Up Growing Files A running CommKit system causes certain files to grow in size. If you do not monitor their size, they could cause disk space resource problems. You should periodically check the size of the following files: • The CommKit server log files, one log file per server, located at /var/opt/dk/log/ dksrvlog* and /var/opt/dk/log/dkdaemonlog*.
Administering the CommKit Software and the STREAMS Listener Administering the STREAMS TLI Listener Administering the STREAMS TLI Listener A Datakit network can handle incoming calls through the CommKit server or through an alternate method known as the Network Listener Service (NLS). The Network Listener Service is incorporated into the HP-UX STREAMS environment. This allows you to create custom modules and push these modules onto the CommKit STREAMS stack and create new applications.
Administering the CommKit Software and the STREAMS Listener Administering the STREAMS TLI Listener All of the configuration steps are done automatically when you install the CommKit Host Interface software.
Administering the CommKit Software and the STREAMS Listener Starting and Stopping the TLI Listener Starting and Stopping the TLI Listener To start the TLI Listener, you use the same dkitrc script that you use to start and stop the CommKit server. To start the TLI Listener, enter this command: # dkitrc dkstart To start a specific TLI Listener, use the -i option followed by an interface number.
5 Programming with the CommKit Function Library 5-1
Programming with the CommKit Function Library Description Description The NIO CommKit Host Interface offers you two application programming interfaces—the standard AT&T CommKit function library and the HP Transport Level Interface (TLI) library. The standard library functions form the basis of all the principal CommKit applications (dkserver, dk, dkcu, push, and pull), and can be used to write sophisticated applications.
Programming with the CommKit Function Library CommKit Software Function Library CommKit Software Function Library The standard CommKit software functions, which are listed in Table 5-1, are stored in /usr/lib/libdk.sl. You can view manual pages for any of these functions online or in the appendixes of this manual.
Programming with the CommKit Function Library CommKit Software Function Library Table 5-1 Standard CommKit Library Functions Cover Function Description Included Function dktsplice(3X) Transparent splice facility dktr_splice(), dktr_osplice(), dktr_call() dkurpctl(3X) Control the URP initialization of an AT&T data switch connection dkset_no_ainit(), dkset_one_ainit() dk_uxinfo(3X) Get and set information about an AT&T data switch connection dk_uxinfo() maphost(3X) Map destination name to an A
Programming with the CommKit Function Library The TLI and XTI Application Function Libraries The TLI and XTI Application Function Libraries The Transport Layer Interface (TLI) routines provide a standard network-independent application interface for writing network-capable programs. The TLI functions (topen, tbind, tsnd, and so on) are stored in the library /usr/lib/libnsl_s.a.
Programming with the CommKit Function Library Making STREAMS-Based Outgoing Connections Making STREAMS-Based Outgoing Connections If you are porting an application from CommKit 3.2 to CommKit 4.x of the NIO CommKit Host Interface, be aware that the method for specifying the Datakit interface board number for the outgoing connection has changed. In earlier releases, you specified the outgoing board number with the bndcall->qlen parameter of the tbind() function call. In CommKit 4.
6 Porting CommKit Applications To Release 4.
Porting CommKit Applications To Release 4.x Introduction Introduction This chapter is a reference for programmers who are porting applications from CommKit 3.2 to CommKit 4.x of the NIO CommKit Host Interface. This chapter also contains useful information and examples for programmers who are developing new applications using CommKit 4.x software. This chapter discusses the compatibility issues associated with the current release of the CommKit software.
Porting CommKit Applications To Release 4.x Environment Variables Compatibility Environment Variables Compatibility All previous CommKit software releases have supported the environment variables DKINTF and DKKEY. DKINTF has a new definition for this release. Table 6-5 summarizes the status of these variables for the current release.
Porting CommKit Applications To Release 4.x User-Level Compatibility User-Level Compatibility The CommKit software user-level commands contain the same functions as in earlier releases. The major compatibility issues are the expanded features of CommKit 4.x and their backward compatibility to CommKit 3.2. The new STREAMS architecture in this release of the CommKit software also raises compatibility issues.
Porting CommKit Applications To Release 4.x User-Level Compatibility dkcat The dkcat command is fully compatible with earlier releases of the CommKit software and HP-UX. You do not need to change the use of dkcat in your applications. dkcu The dkcu command is fully compatible with earlier releases of the CommKit software and HP-UX. Applications that use dkcu need not change their interface with the dkcu command.
Porting CommKit Applications To Release 4.x User-Level Compatibility The push and pull commands preserve the name, type, and contents of the files they move with the following exceptions: • Long Names - If both the source and destination systems are running UNIX System V Release 4 and the source system sends a file name greater than 14 characters, then the destination system truncates the file name to 14 characters and sends a warning message notifying that the file name has been truncated.
Porting CommKit Applications To Release 4.x Programmer-Level Compatibility Programmer-Level Compatibility The architectural changes of this release of the CommKit software impact all applications that access the library and system call interface. In particular, this release of the CommKit software does not support an ioctl interface. All ioctl calls are reserved for use by the interface library and their calling sequences are not guaranteed.
Porting CommKit Applications To Release 4.x Programmer-Level Compatibility NOTE: The TTY devices in the /dev/dkt directory are used for accounting purposes only and only provide a TTY interface for incoming calls accepted by the dkserver process. Message Boundaries This release of the CommKit software preserves message boundaries as they are received from the network.
Porting CommKit Applications To Release 4.x Programmer-Level Compatibility Table 6-2 CommKit Software Header Files Header File sysexits.h Description The sysexits.h file contains exit codes used by the CommKit software user-level commands. Library Interface Compatibility Most of the old library routines have been replaced or dropped from this release of the CommKit software.
Porting CommKit Applications To Release 4.x Programmer-Level Compatibility Table 6-3 Obsolete CommKit Software Library Routines Function dtnamer Description This function converted an NIO CommKit Host Interface minor number into the /dev name for the TTY interface. dtnamer has been replaced by dk_tnamer, which accepts both the NIO CommKit Host Interface number and the data switch channel number as arguments. Refer to the dk_tnamer example later in this chapter.
Porting CommKit Applications To Release 4.x Programmer-Level Compatibility portable to future releases of the CommKit software. The library is delivered as a dynamically linked shared object library, so that you do not need to recompile or relink your applications when you install a new version of the CommKit software. Because the CommKit software library is now a dynamically linked shared library, its name has been changed from /usr/lib/libdk.a to /usr/lib/libdk.sl.
Porting CommKit Applications To Release 4.x Programmer-Level Compatibility Table 6-4 Manual Page Supported Library Routines Function Description dk_namer(3X) dk_xnamer() Converts a Datakit interface board number and a data switch channel number to the device name under /dev/dkx for the remote execution interface. dk_uxinfo(3X) dk_uxinfo() Retrieves or sets information about URP parameters of receive buffer size and the number of outstanding URP blocks.
Porting CommKit Applications To Release 4.x Programmer-Level Compatibility Table 6-4 Manual Page Supported Library Routines Function Description dkleveld(3X) dkbreak() Transmits an URP level-D BREAK code on an open NIO CommKit Host Interface device. The BREAK is scheduled for transmission in a separate URP block after any data already queued for the circuit. dkleveld(3X) dkusb() Sends a two-byte URP unsequenced data block on an open NIO CommKit Host Interface device.
Porting CommKit Applications To Release 4.x Programmer-Level Compatibility Table 6-4 Manual Page dksplice(3X) Supported Library Routines Function dksplice() Description Splices two existing circuits using the supplied file descriptors. Note: If you specify standard input as an argument to dksplice() and if the function call fails, you must re-initialize standard input. See the dksplice example later in this chapter. dksplwait(3X) dksplwait() Waits for an existing circuit to be spliced.
Porting CommKit Applications To Release 4.x Programmer-Level Compatibility The ioctl interface supported in previous releases of the CommKit software is no longer supported, because the interface: • Is no longer needed due to architectural and implementation changes • Is replaced by a library function or by an administrative command • Is reserved for the internal use of the CommKit software and is not supported for user-level applications code • Has been dropped from this release.
Porting CommKit Applications To Release 4.x Programmer-Level Compatibility Some key points to note about read are listed below: • O_NODELAY - when reading from a character driver, a device with no data returns a value of 0. When reading from a stream head, a device with no data returns a value of -1 with errno set to EAGAIN. • LEVEL-D - if a STREAMS read call reads an URP level-D control code, it might return a -1 error code, with errno set to EBADMSG. Level-D codes arrive as M_PROTO messages.
Porting CommKit Applications To Release 4.x Programmer-Level Compatibility poll(2) You can now use the poll system call with CommKit software STREAMS devices. With earlier releases, your application had to either wait for data to arrive (a synchronous poll) or rely on some implementation-specific trick, such as a signal, to poll for data (an asynchronous poll). Release 3.2 of the CommKit software, for example, provides the DIOCSIG ioctl to signal a process when data has arrived.
Porting CommKit Applications To Release 4.x Programmer-Level Compatibility ioctl(2) The list of previously supported ioctl calls is given in Table 6-5 with a statement on the status of each. Table 6-5 Previously Supported ioctl System Calls and Their Current Status System Call Status DKIODIAL All of the dial function is now provided by the expanded library function dkitdial. Refer to the dkitdial example later in this chapter and to the dkdial(3X) manual page.
Porting CommKit Applications To Release 4.x Programmer-Level Compatibility Table 6-5 System Call DIOCQQABO Previously Supported ioctl System Calls and Their Current Status Status This function is no longer supported. The DIOCQQABO ioctl allowed the application to determine the completion status of the most recent read and was used in earlier implementations to determine why a read returned fewer than the requested bytes.
Porting CommKit Applications To Release 4.x Programmer-Level Compatibility Table 6-5 Previously Supported ioctl System Calls and Their Current Status System Call DIOCINFO Status This function is no longer supported. In earlier releases, you could use this ioctl to obtain information about the calling channel and responsible interface. DIOSRV This function is no longer supported.
Porting CommKit Applications To Release 4.x Examples Examples The code fragments shown in Figure 6-1 through Figure 6-9 are examples of the new library functions. Some of the code is taken out of context from user-level commands. The intent of this section is to provide porting examples and is not to present a tutorial in application programming.
Porting CommKit Applications To Release 4.x Examples 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 } myuw.maxblocks = 7; myuw.maxbytes = 60; if( dk_info(fd, DKSETUW, &myuw) < 0 ) { fprintf(stderr, "dk_info DKSETUW failed \n" ); } else { fprintf(stderr, "maxblocks=%d maxbytes=%d \n", myuw.maxblocks, myuw.maxbytes); } return 0; The following is a description of the previous example: • Lines 4 and 5 define storage for the two information structures needed.
Porting CommKit Applications To Release 4.x Examples 7 8 9 10 11 12 13 14 15 16 17 d1.dest = dstring; d1.intf = 1; d1.baud = (char *)NULL; cmd = DK_DIAL|DK_SELINTF; fdout1 = dkitdial(cmd &d1); /* make a call so TTY processing is done */ d1.dest = dstring; d1.intf = 0; d1.
Porting CommKit Applications To Release 4.x Examples Figure 6-3 dk_namer Example 1 2 3 4 5 6 7 8 9 char * dev_name; int intf; int chan; /* get device name for interface 0 and channel 112 */ intf =0; chan = 112; dcv_name = dk_namer( intf, chan ); dk_tnamer Example Figure 6-4 is an example of the dk_tnamer function. This function returns a pointer to a character string that is the name of the TTY device indicated by the two arguments.
Porting CommKit Applications To Release 4.x Examples 8 9 dev_xqt_name = dk_xnamer( intf, chan ); dkleveld Example Figure 6-6 demonstrates the use of the dkleveld function to send both data and level-D control codes. The program assumes that stdout is a data switch connection. Lines 6 through 12 define and initialize a dk_lvld_t message structure. The message contains a BREAK code, three characters, and then another BREAK.
Porting CommKit Applications To Release 4.
Porting CommKit Applications To Release 4.x Examples Figure 6-8 isdkclosed, isdkeof, isdkleveld Example 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 /* ** Read from VCS connection. ** Return value ** nread > 0, number of bytes read. ** nread == 0, circuit has been closed. ** nread == EOF, level-D EOF received. ** nread < 0 (other than EOF), nread is ~errno.
Porting CommKit Applications To Release 4.x Examples The function vcs_read uses the read system call (line 22) to read data from an open file descriptor ds of a data switch connection. The return value is checked on line 24 and, if it is greater than zero, the code breaks from the loop and returns the number of bytes read. Line 27 checks for returns less than zero. Line 28 tests if errno is equal to EBADMSG. The EBADMSG indicates that the message at the head of the queue is not a data message.
Porting CommKit Applications To Release 4.x Examples 8 ** Do some processing but look for data on file 9 ** descriptor ’fd’. 10 */ 11 procl(fd) 12 { 13 14 static struct pollfd dkxpoll; 15 static struct pollfd *fds = &dkxpoll; 16 17 /* arrange to catch SIGPOLL */ 18 (void) signal(SIGPOLL, catchpoll); 19 20 fds->fd = fd; 21 fds->events = POLLIN; 22 23 /* 24 ** Watch for data on fd with the I_SETSIG ioctl.
Porting CommKit Applications To Release 4.x Examples The code in Figure 6-9 replaces the old DIOCSIG ioctl directive for data switch circuits. Note that the STREAMS SIGPOLL signal is generated when the requested event happens, if it is the event at the head of the queue. If there are events already on the queue, you can use the poll system call with a zero timeout to look at the queue, as in the example.
A UUCP Setup A-1
UUCP Setup Description Description This appendix contains information about configuring UUCP for transferring files across a data switch network. For more information on UUCP, refer to the HP publication Remote Access: User’s Guide for HP 9000 Computers. This section describes how to set up file transfer between hosts to the same VCS switch. For more information on how to set up file transfer between hosts on different VCS switches, see the comments in the /usr/lib/uucp/ Devices file.
UUCP Setup Configuring the UUCP Subsystem 2 Edit the /usr/lib/uucp/Devices file to add the Datakit interface board to the list of valid UUCP devices, for example: DK - uucp Any DK \D The values in this entry have the following meanings: • DK is the device type, which stands for Datakit. • - specifies the calling unit, which stands for any non-801 dialer. • uucp is the name of the device type. • Any is the dial speed. • DK is the first dialer token pair, which stands for Datakit.
UUCP Setup Configuring the UUCP Subsystem 2 Edit the /usr/lib/uucp/Permissions file to set it up, for example: MACHINE=hostA \ LOGNAME=uucp \ SENDFILES=yes REQUEST=yes CALLBACK=no\ READ=/var/spool/uucppublic \ WRITE=/var/spool/uucppublic \ COMMANDS=rmail:uux:uucp:pr where: • MACHINE=hostA allows the local host, A, to call the remote system, B • LOGNAME=uucp specifies that the user is uucp. • SENDFILES=yes specifies that the remote host can take a work queue from the local host.
B Troubleshooting Guide B-1
Troubleshooting Guide Introduction Introduction This appendix is a general guide for troubleshooting problems when dealing with your Datakit product. It includes a collection of error messages, probable causes, and the appropriate corrective action if any is required.
Troubleshooting Guide Troubleshooting Checklist Troubleshooting Checklist If you encounter a problem with product operation, here is a checklist to help troubleshoot the problem. Some items on the list may "overlap"; for example, if there is a hardware problem, then the dkserver process cannot execute properly. • Start (or attempt to start) the dkdaemon process if not already started. • Start (or attempt to start) the dkserver process if not already started.
Troubleshooting Guide Troubleshooting Checklist authorized when user field is "&". - the program to be executed does not exist. - the fields in dksrvtab MUST be separated by TABs.
Troubleshooting Guide Error Messages Error Messages The error messages in this section are presented in alphabetical order, with explanations and corrective actions given for each. You will find some additional error messages in the dkerr(3x) manual page. If you cannot solve a CommKit network problem with the information presented here or in the dkerr(3x) manual page, contact your HewlettPackard technical support representative.
Troubleshooting Guide Error Messages NOTICE: dkhsN: Interface is down: RX-MUTE This is a hardware error. The CommKit server has lost communication with the data switch while attempting to receive data. Explanation After the CommKit server was started, the CPM-HS module in the data switch went out of service. Explanation The CPM-HS module was removed from service during operation. Explanation A power failure has occurred at the data switch.
Troubleshooting Guide Error Messages CommKit Host Interface server have been interrupted. In this error message, servername is the name of the server reporting the problem. The servername must be properly defined in the data switch database. date is the date, time, process ID, and channel number of the problem. date has the following form: Sep 25 08:45:40 (112) [0.000] The number in parentheses is the process ID of the dkserver process encountering the problem. The number in brackets [0.000] is in x.
Troubleshooting Guide Outgoing Call Error Messages Outgoing Call Error Messages The following error messages may appear during operation of the CommKit Host Interface network. The CommKit Host Interface interprets the error message given by the data switch and displays a descriptive message at the data switch terminal.
Troubleshooting Guide Outgoing Call Error Messages Action Add the server name to the /etc/opt/dk/srvtab file. Explanation The server name is not assigned to a group. Explanation The group is not assigned to the CPM-HS module. dkdial ... Address too long Explanation The call was denied because the length of the dialstring was larger than the network maximum. dkdial ...
Troubleshooting Guide Outgoing Call Error Messages appears more than twice in succession, contact the data switch Network Administrator. dkdial ... Bad parameter Explanation The dkdial(3X) routine was called with an invalid parameter. dkdial ... Call did not go through. Try again later Explanation The autodialer on the called port responded to the data switch node and failed during dialing. If this message appears more than twice in succession, contact the data switch network administrator. dkdial ..
Troubleshooting Guide Outgoing Call Error Messages Explanation The transmit and receive connections on the fiber optic cable are not in the correct positions. Action Disconnect, reverse, and then reconnect the ends of the fiber optic cable. If the problem persists, remove or restore the CPM-HS module on the data switch. Then, run dkitrc stop to stop the CommKit server or dkitrc start to start the CommKit server. dkdial ... Connection broken. Try again later Explanation The call cannot be completed.
Troubleshooting Guide Outgoing Call Error Messages dkdial ... Dialer error Explanation The call could not be completed due to an error detected by an old autodialer. dkdial ... Dialstring too long Explanation The call was denied because the length of the dialstring was larger than the network maximum. dkdial ... Directory Assistance Explanation The user has requested directory assistance. dkdial ... Dkserver: Call on a busy device or call collision, try again.
Troubleshooting Guide Outgoing Call Error Messages may be due to improper configuration of dkdaemon on the machine you are calling. See the dkdaemon(1M) manual page for more information on the -x option. You may also see this error message on an incoming call from a DESTINATION prompt displayed as error code 130. dkdial ... Dkserver: Can’t push your streams module Explanation The call could not be completed, because the configured STREAMS modules could not be pushed onto the open channel.
Troubleshooting Guide Outgoing Call Error Messages dkdial ... Dkserver: Srvtab not readable. Call System Administrator Explanation The call could not be completed, because the server tables (files in /etc/opt/dk/srvtab) on the remote host were unreadable or damaged. You may also see this error message on an incoming call from a DESTINATION prompt displayed as error code 133. dkdial ... Endpoint hung up Explanation The endpoint hung up the call. This is not an error. dkdial ...
Troubleshooting Guide Outgoing Call Error Messages dkdial ... Insufficient CIR at module Explanation The call could not be completed because the module receiving the call does not have sufficient resources to support the requested committed information rate (CIR). dkdial ... Invalid or missing phone number Explanation The user has neglected to type the phone number required to make a phone call, as in dkcu dialer_name. phone_number. The phone_number is synonymous with the dialstring. dkdial ...
Troubleshooting Guide Outgoing Call Error Messages dkdial ... Network congestion—Connection error. Try again later Explanation The call cannot be completed because a connection cannot be made. Wait a short time before trying to call again. dkdial ... Network congestion—Trunk call collision. Try again Explanation The call cannot be completed because of a call collision in the trunk. Wait a short time and try the call again. dkdial ... Network hung up Explanation The network hung up the call.
Troubleshooting Guide Outgoing Call Error Messages dkdial ... No initial dial tone detected Explanation The autodialer on the called port may have a bad telephone line. The port has been marked as bad and removed from the autodialer hunt group. dkdial ... No initial dial tone. Try again later Explanation The autodialer on the called port may have a bad telephone line. The port has been marked as bad and removed from the autodialer hunt group. dkdial ... No response from autodialer.
Troubleshooting Guide Outgoing Call Error Messages dkdial ... Please supply a valid phone number Explanation The user has neglected to type the phone number required to make a phone call as in dkcu dialer-name.phonenumber. The phone-number is synonymous with the dialstring. dkdial ... Receive window too small Explanation The call could not be completed because the receive window size is too small. dkdial ...
Troubleshooting Guide Outgoing Call Error Messages Action Check the remote CommKit server address on the data switch to make sure the address is entered correctly. If not, run restore address on the data switch console to bring the server address into service. Explanation The CPM-HS module connected to the remote host is out of service. Action Check the CPM-HS module. If it is not in service, run restore cpm on the data switch console.
Troubleshooting Guide Outgoing Call Error Messages dkdial ... SIM no contact Explanation The SIM rejected the call. dkdial ... Splice completed Explanation The connection endpoints were successfully spliced together. dkdial ... Splice failed Explanation The connection endpoints could not be successfully spliced together. dkdial ... Transmit window too big Explanation The call could not be completed because the transmit window size is too big. dkdial ...
Troubleshooting Guide Other CommKit Error Messages Other CommKit Error Messages Bad parameter in ANS message This message indicates that the window buffer size or Universal Receiver Protocol (URP) initialization mode are bad in the ANS message. Explanation The jumpers on the CommKit interface board are not set correctly. Action Correct the jumper settings on the CommKit board. Explanation The CPM-HS module in the data switch is out of service. Action Check the CPM-HS module.
Troubleshooting Guide Other CommKit Error Messages Explanation You may be using an older version of the data switch software. Action Check the data switch software, and make sure that you are using the latest release. dkserver: Can’t open lock file -- /var/opt/dk/log/dk.1.hpwrcxv Explanation You have issued an incomplete dkserver -t command to stop a running CommKit server with more than one CommKit interface board installed.
Troubleshooting Guide Other CommKit Error Messages that the CPM-HS module is not working, replace the bad module. Explanation The listener server name has not been entered in the data switch database. Action Check the listener server address in the data switch database. If it does not exist, add the server name and address to the database. The convention is to use all capital letters in the listener server name.
Troubleshooting Guide Other CommKit Error Messages Action Make sure that the CommKit interface board is seated properly. 0:LOCAL t_connect() failed error=1 in the log file. Explanation The NLS server for the remote host is not running. Action Make sure the remote host is up and the listener server is running. Explanation All of the configured channels are being used. Action Make sure enough channels are configured, up to a maximum of 512 channels per CommKit interface board.
Troubleshooting Guide HP-UX / CommKit Error Messages HP-UX / CommKit Error Messages This section documents an error message that might result from the interaction of HP-UX and the CommKit Host Interface. This section is not intended as a complete list of HP-UX error messages.
Troubleshooting Guide HP-UX / CommKit Error Messages B-26
C Ordering Information C-1
Ordering Information AT&T Fiber Optic Cables AT&T Fiber Optic Cables The cable required to connect a CommKit interface board to a CPM-HS module in an AT&T data switch is a 62.5 micron fiber optic cable with AT&T’s split-ferrule straight-tip (ST) connector on both ends. You may refer to the required cables by name as FL2P-P and by letter code as HH. You can order them from AT&T in various lengths, as shown in Table 6. The information in the table is based on the AT&T Datakit II VCS Release 2.
Ordering Information AT&T Fiber Optic Cables Table 6 AT&T Fiber Optic Cables Cable Length (in feet) Code 500 104266721 1000 104266929 2000 104266323 3000 104266638 C-3
Ordering Information AT&T Fiber Optic Cables C-4
D About This Release D-1
About This Release Files in Both CommKit Products Files in Both CommKit Products The differences and similarities between CommKit 3.2 and CommKit 4.x of the NIO CommKit Host Interface are summarized in Table D-1. Table D-1 Differences Between Release 3.2 and Release 4.x, Both for HP-UX 10.x or 11.x CommKit File CommKit 3.2 CommKit 4.0 Installation Script swinstall swinstall Kernel Build Commands config config Startup Script /sbin/init.d/dkit /sbin/init.d/dkit Startup Config. File /etc/rc.
E CommKit Manual Pages E-1
CommKit Manual Pages List of CommKit Manual Pages List of CommKit Manual Pages E-1 Table 1 List of Manual Pages User Commands Manual Page Description dk(1C) Remote login or command execution via host interface dkcat(1C) Concatenate files and send them to a non-host AT&T data switch destination dkcu(1C) Call another host dkdo(1C) Transparent remote execution facility pull(1C) Transfer files from another system push(1C) Transfer files to another system System Administration Commands Manual P
CommKit Manual Pages List of CommKit Manual Pages Table 1 List of Manual Pages Miscellaneous Functions Manual Page Description Included Functions dkdial(3X) Create an AT&T data switch connection to a remote destination dkitdial(), dkndial(), dktdial(), dkntdial() dkepoint(3X) AT&T data switch endpoint type detection routines dkgetepoint(), dksetepoint() dkerr(3X) Generate standard AT&T data switch error message dkerr() dk_flush(3X) Change close processing for an AT&T data switch connection
CommKit Manual Pages List of CommKit Manual Pages Table 1 List of Manual Pages Miscellaneous Functions (continued) Manual Page Description Included Functions dkurpctl(3X) Control the URP initialization of an AT&T data switch connection dkset_no_ainit(), dkset_one_ainit() dk_uxinfo(3X) Get and set information about an AT&T data switch connection dk_uxinfo() maphost(3X) Map destination name to an AT&T data switch dialstring maphost(), miscfield() Special Files Manual Page Description dkacct(4
DK(1C) DK(1C) NAME dk – remote login or command execution via host interface SYNOPSIS dk destination [ command [ args ... ] ] destination [ command [ args ... ] ] DESCRIPTION If no command is specified, the dk command sends a remote login request to the destination host. The destination host spawns a shell and the dk command logically connects it to the user’s terminal. An AT&T data switch circuit is used to transfer data.
DK(1C) DK(1C) Environment Variables If the shell variable DKKEY is set in the user’s environment, then that string is used as a matching token when authorizing. The token value is then used when mapping the originating host user ID to a user ID local to the destination host. For example, DKKEY=token dk destination.authorize The DKKEY value is stored in the dkuidtab(4) file on the remote destination host.
DK(1C) DK(1C) A sample which illustrates the proper setup of the .
DKCAT(1C) DKCAT(1C) NAME dkcat – concatenate files and send them to a non-host AT&T data switch destination SYNOPSIS dkcat [–I] [–F] [–q qc,ec] destination [ files ... ] DESCRIPTION dkcat transmits files to a non-host destination, such as a printer, attached to your data switch network. dkcat places a call to destination and transmits the files. dkcat waits for all file data to be received at the destination before terminating.
DKCU(1C) DKCU(1C) NAME dkcu – call another host SYNOPSIS dkcu [ – s ] [ – f ] [ – d ] [ – v ] [ – x ] [ – b 7 | 8 ] destination DESCRIPTION dkcu dials another UNIX System, a terminal, or possibly a non-UNIX System. It manages an interactive conversation with possible transfers of ASCII files. It places a call to the destination host or terminal on the AT&T data switch network. Several options are supported by dkcu: –s Suppresses the "Circuit Open" and other non-error messages.
DKCU(1C) DKCU(1C) ~%divert Toggles unsolicited diversion (enabled/disabled) to files. When unsolicited diversion is enabled, new-style diversion from standard output to a file is initiated by ~[local]>:filename, and is terminated by ~[local]>, where local is the nodename of the local system. This enables ~%take to operate properly when dkcu is used over multiple hops. ~%old Toggles old-style diversion syntax (enabled/disabled).
DKCU(1C) DKCU(1C) NOTES dkcu buffers input internally. There is an artificial slowing of transmission by dkcu during the ~%put operation so that loss of data is unlikely. If the to file of ~%put cannot be created, an error message will be displayed, but the from file will then be written to /dev/null. E-11 CommKit Host Interface, Release 4.
DKDO(1C) DKDO(1C) NAME dkdo – transparent remote execution facility SYNOPSIS dkdo [ –f controltable ] command [ args ... ] command [ args... ] DESCRIPTION dkdo provides a generalized, transparent remote execution facility with automatic file transfer. One use of dkdo is to emulate a command such as lp(1) requiring facilities like line printers or RJE support not present on the local machine.
PULL(1C) PULL(1C) NAME pull – transfer files from another system SYNOPSIS pull [ -L ] destination filename ... directory DESCRIPTION pull establishes an AT&T data switch circuit to a source (remote) host named in destination and transfers files from that host. The filenames are files or directories on the source machine and are interpreted relative to the user’s HOME directory on the source destination if they do not begin with a ’/’.
PULL(1C) PULL(1C) If the modification time for a file would date that file in the future on the local machine, the current time on the local machine will be used as the file modification time. FILES /opt/dk/bin directory in which this command resides /etc/opt/dk/dkhosts host control file for destination mapping SEE ALSO push(1C), authorize(1M), dkdial(3X), maphost(3X), dkhosts(4), srvtab(4). time(2) in the UNIX System V Programmer’s Reference Manual. E-14 CommKit Host Interface, Release 4.
PUSH(1C) PUSH(1C) NAME push – transfer files to another system SYNOPSIS push [ –L ] destination filename ... directory push [ -L ] destination–directory < file_list DESCRIPTION push establishes an AT&T data switch circuit to the target (remote) host named in destination and transfers files to that host. The filenames are files or directories on the source (local) machine. The filenames are placed in the directory on the target machine.
PUSH(1C) PUSH(1C) If, in following a path that contains a symbolic link that points to a directory, the source machine finds a directory that has already been transferred, it will not transfer it a second time. The source machine, however, will always transfer directories in a path that does not contain a symbolic link even if that directory has already been transferred while following a path that does contain a symbolic link.
AUTHORIZE(1M) AUTHORIZE(1M) NAME authorize – host authorization service SYNOPSIS dkdestination.authorize authorize [ –l login ] [ –u uidfile ] DESCRIPTION Remotely Invoked When invoked from a remote host via the dk(1C) command, authorize is the host authorization service. The service establishes the mapping of a valid user ID on the originating host to a valid user ID on the destination host using the Originating Group name.
AUTHORIZE(1M) AUTHORIZE(1M) Multiple Interfaces The CommKit Host Interface software supports multiple interface boards, allowing connectivity to multiple data switch networks or redundant connectivity to a single network. Each command that initiates connections through the network will use the default processing [see dkdial(3X)] to select the interface for the call.
AUTHORIZE(1M) AUTHORIZE(1M) Locally Invoked When invoked as a user-level command on the local host, authorize displays the remote user ID’s that have been mapped to the local user ID. Several options are supported by authorize: –l login The local user ID for which mapping information is desired. The default is the user ID of the user executing the command. Only root may specify any login other than its own. All other users may only specify their own login.
AUTHORIZE(1M) AUTHORIZE(1M) SEE ALSO dk(1C), dkserver(1M), dkdial(3X), srvtab(4), dkuidtab(4) login(1), mail(1), passwd(1), su(1) in the UNIX System V User’s Reference Manual DIAGNOSTICS When a user attempts to execute the authorization service, several error messages may result. Most of those messages are documented below. The error messages resulting from a locally invoked authorize all begin with authorize: Sorry, whitespace in a DKKEY is forbidden.
DKDAEMON(1M) DKDAEMON(1M) NAME dkdaemon – host interface daemon process SYNOPSIS dkdaemon [ –i interface ] [ –t ] [ –x ] [ –l logfile] [ -v verbosity ] [ –a [acctfile] ] [ –c channels ] [ –b urpblocks ] [ –p protocol ] [ -w windowsize ] DESCRIPTION dkdaemon is the host interface daemon process.
DKDAEMON(1M) DKDAEMON(1M) –c channels The number of channels to be used by the host interface. Maximum value should be the lower of 512 or the tunable channel limit configured by the dkhs(7) driver. The tunable channel limit configured on your machine is defined by the dkMAXchans variable in /usr/ include/dkit/globals.h. Minimum value allowable is 3. The built-in default value for channels is 64.
DKDAEMON(1M) DKDAEMON(1M) Prog: Illegal Receive Buffer Size Value Specified The Value passed to the –w windowsize command line option was not a legal power of 2. Prog: Illegal Number of Outstanding Blocks Value Specified The Value passed to the -b urpblocks command line option was not within the inclusive range of 1 to 7. Prog: Illegal Log Level verbosity Specified The Value passed to the -v verbosity command line option was not within the inclusive range of 1 to 99.
DKDAEMON(1M) DKDAEMON(1M) dkhsopen: ERROR DKGETMODCHAN, Device errno=Code Error Code was detected when dkdaemon tried to determine the identity of a newly clone-opened Device during the service of an I_LINK request from one of its client subsystems. Prog: Started, Log Level = verbosity Written to the log file during dkdaemon startup as a record of the session logging verbosity. Prog: UNKNOWN SIGNAL – Value A signal with integer value Value was received unexpectedly. See signal(2).
DKDAEMON(1M) DKDAEMON(1M) push_modules: ERROR errno = 255 "dkux" dkdaemon was unable to push the dkux(7) module on a dkhs(7) Stream. This error is always followed by a startstr message and usually shows that an attempt was made to start two dkdaemon processes for a single dkhs(7) interface. push_modules: ERROR errno = Value "Module" The more general form of the previous message; dkdaemon was unable to I_PUSH the Module module on a Stream.
DKDIAG(1M) DKDIAG(1M) NAME dkdiag – diagnose AT&T host interface hardware SYNOPSIS dkdiag { –a | p phases} -i interface [ -n iterations –s ] [ -l ] [ –v ] DESCRIPTION dkdiag allows the administrator to diagnose the host interface hardware when the interface is not active. A number of options are supported which modify the execution and reporting characteristics of the diagnostics. These options are described below. –a Run ALL diagnostic phases. This option is logically equivalent to –p0,1,2,3,4,5,6,7,8.
DKDIAG(1M) DKDIAG(1M) 4 Control Null Removal Verify that control NULL codes are removed from received data stream. 5 Interrupts Verify that hardware interrupts from the board occur when the receive FIFO becomes notempty and when the transmit FIFO becomes less than half-full. 6 Board Reset and Initialization Reset the hardware and verify that the proper modes are set. 7 Transmit FIFO Reset Test whether the transmit FIFO on the board can be reset.
DKITRC(1M) DKITRC(1M) NAME dkitrc – rc shell for host interface software SYNOPSIS dkitrc { start | stop } DESCRIPTION dkitrc is executed automatically during init state transitions with an argument of either start or stop. Its function is to start/stop the host interface in an appropriate fashion for the prevailing init state.
DKLOAD(1M) DKLOAD(1M) NAME dkload – load test the host interface and check for errors SYNOPSIS dkload destination.dkload [–s size] [–n iterations] [-l logfile] DESCRIPTION dkload is a program used to test whether the host interface to an AT&T data switch is operative and may be used to load test the interface. dkload sets up a virtual circuit between two data switch hosts and then sends and receives fixed sized data messages over the circuit. dkload must be run as root.
DKLOAD(1M) DKLOAD(1M) DIAGNOSTICS The following error and diagnostic messages are reported by dkload: REMOTE could not open logfile as log When the remote dkload cannot open the requested logfile, this error message is written to the default logfile. dkload LOCAL started at time to command PID=process_ID dkload REMOTE started at time from command PID=process_ID where command is made up from the command line and looks like: destination..:–s:size:–n:iterations:–l:logfile.
DKMAINT(1M) DKMAINT(1M) NAME dkmaint – host interface maintenance SYNOPSIS dkmaint –r –i interface [ –c channel ] [ –v ] DESCRIPTION dkmaint is a program used to reset and perform other maintenance operations on host interfaces or channels. When the -r option is specified, dkmaint sends an ioctl(2) to the host interface driver which eventually causes M_HANGUP messages to be issued to each process using the specified channel.
DKSERVER(1M) DKSERVER(1M) NAME dkserver – handle incoming calls from an AT&T data switch network SYNOPSIS dkserver [ –i interface ] [ –s servername ] [ –v verbosity ] [ –c controltab ] [ -u uidfile ] [ –e ] [ –S ] [ –l logfile ] [ –C channel ] [ –r ] dkserver -t [ –i interface ] [ -s servername ] DESCRIPTION The dkserver program identifies itself to the data switch network as being willing to accept service requests.
DKSERVER(1M) DKSERVER(1M) -l logfile Use logfile instead of the default file /var/opt/dk/log/dksrvlog . The full pathname for logfile must be specified or the logfile will be created in the current working directory of dkserver (/etc/opt/dk/srvtab for multiple srvtab(4) files format or ’/’ for a single srvtab(4) file format). [See dksrvlog(4).] –C channel Specify the logical channel number desired to be used as the dkserver channel.
DKSERVER(1M) DKSERVER(1M) environment, then the default value of /usr/bin:/usr/sbin:/usr/ccs/bin will be passed to the invoked command. TZ The TZ environment variable is always passed to the invoked command. If TZ is set in the dkserver environment, then that value is used. If TZ is not set in the dkserver environment, then the default value of EST5EDT will be passed to the invoked command. DKINTF The DKINTF environment variable becomes part of the base set when the –e argument is used.
DKSTAT(1M) DKSTAT(1M) NAME dkstat – print AT&T data switch interface status information SYNOPSIS dkstat [ –i interface ] [ –c channel | –s ] [ -gn ] [ -r | - x ] [ interval [ iterations ] ] DESCRIPTION dkstat retrieves and reports various data switch interface and channel statistics and performance information that is collected by the dkhs(7) driver as it operates. This information is formatted and printed on the user’s terminal or may be piped into another program for further analysis.
DKSTAT(1M) DKSTAT(1M) r_nobuf Number of incoming URP data packets dropped by the dkhs(7) driver because of buffer exhaustion. This statistic is the count of URP data packets dropped and is not a count of user messages lost. A user message may consist of many URP data packets. Dropped packets normally result in the retransmission of data and adversely affect performance by wasting network bandwidth.
DKSTAT(1M) DKSTAT(1M) r_enq URP ENQuire characters received. These ENQ characters are transmitted by remote endpoints whenever a transmitted block is not acknowledged within the expected interval. r_ireq Number of URP INITREQ characters received. URP INITREQ characters are received during circuit initializations or reinitializations. r_init Number of URP INITn characters received. URP INIT0 and INIT1 characters are received during circuit initializations or reinitializations.
NLSADMIN(1M) NLSADMIN(1M) NAME listen, nlsadmin – network listener service administration for Datakit TLI interface SYNOPSIS nlsadmin [ –mx ] [ –edr “service_code net_spec”][ –ikqsv net_spec] [ –lt addr net_spec ] [ –a service_code [ –p modules ] –c command –y comment net_spec ] [ –qz code net_spec ] [ –z code net_spec ] [ net_spec ] /usr/net/nls/listen AVAILABILITY This program is available with the Datakit Host software installation only.
NLSADMIN(1M) –s net_spec –k net_spec NLSADMIN(1M) Start or kill, respectively, the listener process for the indicated network. When a listener is killed, processes that are still running as a result of prior service requests will continue unaffected. The listener runs under its own ID of listen with group ID (GID) adm.
NLSADMIN(1M) NLSADMIN(1M) –qz code net_spec Query the status of the service with service code code on network net_spec, Exit with a status of 0 if the service is enabled, 1 if the service is disabled, or greater than 1 on error. –z code net_spec Print a report on the server associated with net_spec that has service code code, giving the same information as in the –v option. net_spec Print the status of the listener process for net_spec.
DKDIAL(3X) DKDIAL(3X) NAME dkdial – create an AT&T data switch connection to a remote destination SYNOPSIS #include #include
DKDIAL(3X) DKDIAL(3X) dkdial, dkndial, dktdial, and dkntdial obtain an available data switch channel, and place a call to the destination specified by dialstring. For dkdial and dktdial, a specific hardware interface is chosen if the environment variable DKINTF is set. (See the section below on "Multiple Interfaces" for more information.) The interface number is taken from intf for dkndial and dkntdial.
DKDIAL(3X) SEE ALSO authorize(1M), dkerr(3X), dkty(7) close(2), open(2), getenv(3), ldterm(7), streamio(7), Administrator’s Reference Manual DKDIAL(3X) ttcompat(7) in the UNIX System V System DIAGNOSTICS All calls return a negative number on an error. Unless the external variable dk_verbose had been set to zero, all calls print an error message on standard error when the call fails.
DKEPOINT(3X) DKEPOINT(3X) NAME dkgetepoint, dksetepoint – AT&T data switch endpoint type detection routines SYNOPSIS #include int dkgetepoint(fd, ep_type) int fd; char *ep_type; int dksetepoint(fd, ep_type) int fd; char *ep_type; DESCRIPTION The host interface subroutine library contains two routines that permit applications to program and retrieve an endpoint type code for incoming circuit connections when using the dkhs(7) driver.
DKERR(3X) DKERR(3X) NAME dkerr – generate standard AT&T data switch error message SYNOPSIS #include char *dkerr(error) int error; DESCRIPTION dkerr takes an error number returned from a call setup attempt and returns a standard error string. The error number is stored in the external variable dk_errno by all of the dkdial(3X) routines. The following is a list of the error numbers and their names as defined in . The header file
DKERR(3X) DKERR(3X) 12 EdROUTERR Network routing error The network encountered a routing error. 13 EdTIMOUT Network congestion -- Call timeout. Try again. The network is congested; the call setup timed out while waiting for a response from some remote entity. 14 EdCONBRK Connection broken. Try again later. The connection has been broken. This usually happens when some network facility is abruptly removed from service. 15 EdSMGERR Network congestion -- Call initiation failure. Try again.
DKERR(3X) DKERR(3X) 28 EdDIALNOCT No carrier tone The call was dialed successfully and answered; however, no carrier tone was detected by the autodialer. 29 EdDIALBADBAUD Unsupported baud rate The requested baud rate is not supported by the dialer. The following errors come from the SIM. E-47 30 EdSIMBUSY SIM all channels busy All assigned ports/channels on the SIM are in use. 31 EdSIMNOACC SIM no access The call was denied by the remote side.
DKERR(3X) DKERR(3X) The following messages result from a disconnected call. 50 hupEPOINT Endpoint hung up The endpoint hung up the call. This is not an error. 51 hupNETWORK Network hung up The network hung up the call. 52 hupSPLICE Splice completed 53 hupSPLICE_FAIL Splice failed The following errors come from dkserver(1M). 130 EdDEVBAD Dkserver: Can’t open line. Call System Administrator The call could not be completed because the host server could not open the host device to make the call.
DKERR(3X) DKERR(3X) 1035 No initial dial tone detected The autodialer on the called port possibly has a bad telephone line. The port has been marked as bad and removed from the autodialer hunt group. 1291 No secondary dial tone detected The autodialer was signaled to wait for a secondary dial tone in the dialing sequence and no such dial tone was detected. 1547 Dialed number is busy The call was successfully dialed and a busy signal was detected by the autodialer.
DK_FLUSH(3X) DK_FLUSH(3X) NAME dk_flush – change close processing for an AT&T data switch connection SYNOPSIS dk_flush(fd, flush_time) int fd; int flush_time; extern int dk_verbose; DESCRIPTION dk_flush changes the close processing for flushing queued transmit user data on an AT&T data switch connection. The close processing assumes the remote endpoint is actively reading the transmitted data. The argument flush_time controls how long the close function will wait for data to drain.
DK_INFO(3X) DK_INFO(3X) NAME dk_info – get and set information about an AT&T data switch connection SYNOPSIS #include dk_info(fd, cmd, c_infop); int fd; int cmd; dk_intfchan_t ∗c_infop; dk_info(fd, cmd, w_infop); int fd; int cmd; dk_urpwin_t ∗w_infop; extern int dk_verbose; DESCRIPTION dk_info is a general-purpose routine retrieving or setting parameters of an open host device. fd is an open file descriptor associated with a CommKit stream.
DK_INFO(3X) DK_INFO(3X) DIAGNOSTICS dk_info will return zero for a successful request and a negative number upon error. dk_info will print an error message on standard error if the requested action fails unless the external variable dk_verbose has been set to 0 before the call is made. WARNINGS Setting the window size parameters to values greater than those established at call setup may result in data loss.
DKLEVELD(3X) DKLEVELD(3X)) NAME dkleveld, dkeof, dkbreak, dkusb, isdkleveld, isdkeof, isdkclosed – data switch Level–D and unsequenced data support routines SYNOPSIS #include #include #include
DKLEVELD(3X) DKLEVELD(3X)) isdkleveld tests whether the top message at the Stream-head associated with fd contains a URP Level–D control code message. If an M_PROTO message containing a URP Level–D control code is found, the control code is returned. Zero is returned if there is no message at the Stream-head or if the message does not contain a URP Level–D code. isdkeof tests whether the top message at the Stream-head associated with fd contains a URP Level–D control code message with an EOF code value.
DKMGR(3X) DKMGR(3X) NAME dkmgr – establish an AT&T data switch server SYNOPSIS #include #include #include
DKMGR(3X) DKMGR(3X) struct mgrmsg { short unsigned short short short char char char char char char char char char char * * * * * * * * * * char char char char char char * * * * * * m_chan; /* m_tstamp; /* m_urp; /* m_windowsize; /* * m_protocol; /* m_origtype; /* m_parm; /* m_uid; /* m_dial; /* m_source; /* m_lname; /* m_service; /* m_baudrate; /* m_lflag; /* * m_srcnode; /* m_srcmod; /* m_srcchan; /* m_cflag; /* m_errmsg; /* m_modtype; /* channel number of connection*/ time stamp of request */ how t
DKMGR(3X) DKMGR(3X) The server program may also make use of the dk_chk_idle function to see if the device specified by intf and chan is idle and not in use. This check is made via the common signaling channel and returns zero (EX_OK) if the channel is idle and EX_UNAVAILABLE if it is not. For obvious reasons, the program should not have the requested channel open when this check is made.
DKMGR(3X) DKMGR(3X) if ( retval != EX_OK ) { /* You can either do error handling OR ... */ errcode = ; dkmgrnak(inmsgp->m_chan,errcode,recv_win); error handling; exit; /* ...
DKMGR(3X) DKMGR(3X) One external variable is initialized to a default value and may be changed as needed. loglvl the log level of the messages written to the log file. The initial value of the variable is 6. There are two external variables that must be set by the calling program or they will not be used. They are: logf the return value of an fopen(3) library call of the file that will be used as the log file.
DKSPLICE(3X) DKSPLICE(3X) NAME dksplice – splice two AT&T data switch connections together SYNOPSIS #include int dksplice(fdout, fdin); int fdout; int fdin; DESCRIPTION dksplice arranges for two data switch circuits to be connected together. The splicing process must have a valid file descriptor for each circuit and both circuits must be on the same host interface. The two file descriptors fdout and fdin are passed as arguments to dksplice.
DKSPLICE(3X) EX_UNAVAILABLE: EX_SOFTWARE: E-61 DKSPLICE(3X) The DKSPLICEPREP ioctl(2) failed for one of the following reasons: [EINVAL] The data structure associated with the DKSPLICEPREP ioctl(2) was not found or was not of the proper size, the channels specified in the DKSPLICEPREP ioctl(2) data structure are not owned by the user, or the user asked to splice two file descriptors which correspond to the same channel.
DKSPLWAIT(3X) DKSPLWAIT(3X) NAME dksplwait – wait for an AT&T data switch circuit to be reconnected SYNOPSIS int dksplwait(fd); int fd; extern int dk_splwtime; DESCRIPTION dksplwait allows the target of a splice to wait for the splice to complete. The fd argument indicates the circuit to be waited on. Normally the following actions are taken to maintain synchronization in a splicing scenario: 1 Call Originator: Makes call to splice application. 2 Splicing Host: Makes call to target via dkdial(3X).
DK_NAMER(3X) DK_NAMER(3X) NAME dk_namer - convert channel number to file name SYNOPSIS char *dk_namer(intf, chan) char *dk_tnamer(intf, chan) char *dk_xnamer(intf, chan) int intf; int chan; DESCRIPTION These three routines will convert a host interface and channel number into the UNIX System path name of the device file associated with the raw, tty, or remote execution device. The raw or pure URP devices are named /dev/dk/intf.chan, the tty processing devices are named /dev/dkt/ intf.
DKTSPLICE(3X) DKTSPLICE(3X) NAME dktsplice – transparent splice facility SYNOPSIS #include #include
DKTSPLICE(3X) DKTSPLICE(3X) DIAGNOSTICS dktr_splice and dktr_osplice will return zero for a successful request and non-zero upon error. See dksplice(3X) for more details about splice errors. dktr_call will return a positive number for a successful request and a negative number upon error. Diagnostic messages are written to the file pointed to by logf. See dkmgr(3X) for more details about logf. WARNINGS These functions provide access to the CommKit drivers for special applications.
DKURPCTL(3X) DKURPCTL(3X) NAME dkurpctl – control the URP initialization of an AT&T data switch connection SYNOPSIS dkset_no_ainit(fd) int fd; dkset_one_ainit(fd) int fd; extern int dk_verbose; DESCRIPTION dkset_no_ainit overides the standard URP initialization processing by blocking all acknowledgements for URP initialization requests. dkset_one_ainit overides the standard URP initialization processing by blocking all acknowledgements for URP initialization requests except for the very first request.
DK_UXINFO(3X) DK_UXINFO(3X) NAME dk_uxinfo – get and set information about an AT&T data switch connection SYNOPSIS #include dk_uxinfo(fd, cmd, c_uxinfop) int fd; int cmd; dk_uxwin_t∗c_uxinfop; extern int dk_verbose; DESCRIPTION dk_uxinfo is a general-purpose routine retrieving or setting parameters of an open host device. This routine is valid only for file descriptors associated with a dkhs(7) stream when the dkux(7) module is pushed onto that stream.
DK_UXINFO(3X) DK_UXINFO(3X) WARNINGS This function provides access to the CommKit drivers for special applications. Its frivolous use will effect the efficiency of data transfer and may even result in data loss. E-68 CommKit Host Interface, Release 4.
MAPHOST(3X) MAPHOST(3X) NAME maphost – map destination name to an AT&T data switch dialstring SYNOPSIS char *maphost (host, service, defsufx, defprot, parm) char *host, *defsufx, *defprot, *parm; char service; char *miscfield (service, field) char service; char field; DESCRIPTION maphost maps the destination host name into a full data switch address using the file /etc/opt/dk/dkhosts. maphost is an auxiliary routine used with dkdial(3X).
DKACCT(4) DKACCT(4) NAME dkacct – host interface accounting file format SYNOPSIS #include DESCRIPTION Accounting files produced by dkdaemon(1M) have records in the form defined by
DKAUDIT(4) DKAUDIT(4) NAME dkaudit – host interface connection auditing record formats DESCRIPTION Connection auditing records are generated by the dkux(7) call processing module and are logged by the dkdaemon(1M) process when enabled by the dkux(7) tunable parameters and the dkdaemon(1M) run-time options. The auditing records are described below: UNIXP Messages These time-stamped messages document UNIXP message exchanges between dkux(7) and the peer process in the AT&T data switch controller.
DKAUDIT(4) DKAUDIT(4) A failed attempt to print a file on a printer named Bodoni by root might appear in the log as: Oct 16 17:15:09 CONNECTION: (0, 3) "nj/prt/Bodoni\n0" Failed by UID 0 A successful connection to the atomic time synchronization service on machine time with parameter sync by user 101 could look like: Oct 10 17:46:45 CONNECTION: (0,4) "time.atomic..sync\n101" Started by UID 101 SPLICE Messages This audit message type is not yet implemented.
DKDOTAB(4) DKDOTAB(4) NAME dkdotab – transparent remote command control file DESCRIPTION This file is used by the dkdo(1C) program to obtain information on where and how to process commands. The default file is /etc/opt/dk/dkdotab. dkdotab consists of one or more lines, each with exactly five fields. Each time a command emulation is processed by dkdo(1C), it scans this file for the first match with the command requested.
DKDOTAB(4) DKDOTAB(4) EXAMPLES The following table entry exemplifies a valid entry in the dkdotab. lp hosta – d:n:o:t –c:<* The command lp is executed on the system hosta [see dkhosts(4)] with no flags set. The options indicated are those supported by dkdo(1C) for the lp command [see lp(1)].
DKHOSTS(4) DKHOSTS(4) NAME dkhosts – host control file DESCRIPTION dkhosts is used by the maphost(3X) function to construct the appropriate AT&T data switch dialstring for the host referenced. The file consists of one or more lines, each with exactly four fields. Each time maphost(3X) is called, it scans dkhosts for the first match with the Host and the service Classes specified.
DKSRVLOG(4) DKSRVLOG(4) NAME dksrvlog – host interface server log file DESCRIPTION This file is used by the dkserver(1M) program to log information about incoming call requests. The default log file name is /var/opt/dk/log/dksrvlog and may be changed with the ’-l’ option to dkserver(1M). The ’-v’ option to dkserver(1M) specifies the amount of information that will be written to the log file. A log level of 1 prints out the least information and a log level of 9 prints out the most information.
DKUIDTAB(4) DKUIDTAB(4) NAME dkuidtab – host server user ID mapping file DESCRIPTION This file is used by the dkserver(1M) program to obtain information on how to map user ID’s from incoming call requests to valid user ID’s on the local system. The file consists of one or more lines, each with three fields. Based on control information in srvtab(4), dkserver(1M) may scan this file for a match of the Originating Group name and user ID.
SRVTAB(4) SRVTAB(4) NAME srvtab – dkserver(1M) control file format DESCRIPTION This file format is used by the dkserver(1M) program to obtain information on how to process incoming call requests. The format consists of one or more lines, each with exactly six fields. The lines are kept in a number of files in the srvtab directory. The default directory is /etc/opt/dk/srvtab.
SRVTAB(4) Flag: User: SRVTAB(4) One or more of the protocol flags aehtuvxILRUT/|’ or Et may be specified: a Additional arguments should be read from the incoming data channel by dkserver(1M) before executing the application program. e Arrange for the exit code of the remotely executed command to be passed back to the originating system. h Spawn process with SIGHUP ignored.
SRVTAB(4) Program: Parms: E-80 SRVTAB(4) & Translate the supplied origin group name and user ID using the dkuidtab(4) file to match users who have established authorization via use of the authorize(1M) program. This type of entry matches only user IDs which have entries in the dkuidtab(4) file. If no entry is found, the dkserver(1M) program continues to search the srvtab file for a match.
SRVTAB(4) SRVTAB(4) %z The module type flag will return the module type of the originating device if the data switch includes this information in the dialstring (field 1 of the fifth line of the dialstring). %C The name of the srvtab control directory being used. %H The originating group name truncated to the length of the host field of an /var/adm/utmp entry. %U The name of the user ID mapping file [see dkuidtab(4)].
SRVTAB(4) SRVTAB(4) SEE ALSO authorize(1M), dkserver(1M), dkdial(3X), maphost(3X), dksrvlog(4), dkuidtab(4). passwd(4), utmp(4) in the AT&T UNIX System V System Administrator’s Reference Manual. login(1) in the AT&T UNIX System V User’s Reference Manual. WARNINGS A single flat file format is still supported but is discouraged because of its impact on performance. In the flat file format the lines of the file are identical to the ones in the files named after the services.
DKHS(7) DKHS(7) NAME dkhs – High-Speed CommKit Host Interface STREAMS driver DESCRIPTION dkhs is a STREAMS device driver that provides a high-performance CommKit Host Interface for the host system. This driver handles all URP protocol encoding and packet assembly, leaving all call establishment functions to be performed by the optionally pushed dkux(7) module.
DKHS(7) M_DATA DKHS(7) Outbound data for transmission should be sent to the driver encapsulated in M_DATA messages. The message chain is transmitted on the circuit using URP GOS5 as zero or more intermediate BOTM blocks followed by a single BOT block. M_DELAY The appropriate combination of URP Level–D DELAY control codes is transmitted on the circuit associated with the Stream when this message is received. The one or more control codes are transmitted within a single URP block.
DKHS(7) E-85 DKHS(7) EHOSTDOWN Opens of the clone device or the individual channel devices will be rejected when dkdaemon(1M) is not active or when the daemon is in the process of reinitializing the interface. Opens of the Common Signaling Channel device will be rejected with this error when the data link between the CommKit Interface hardware and the CPM-HS cannot be activated. EIO Attempts to open the diagnostic device will be rejected with the EIO error when a fault occurs entering diagnostic mode.
DKMX(7) DKMX(7) NAME dkmx – remote execution multiplexer DESCRIPTION dkmx is a STREAMS multiplexing driver that links the remote execution user interface [see dkxqt(7)] with the host interface raw driver [see dkhs(7)]. The driver has a single device /dev/dk/dkxmx0 that is opened by the dkdaemon(1M) process. dkdaemon(1M) processes the driver’s requests for links to the dkhs(7) driver.
DKTLI(7) DKTLI(7) NAME dktli – CommKit Interface Connection Oriented Transport Provider SYNOPSIS t = t_open("/dev/dktp0", O_RDWR, NULL); DESCRIPTION dktli is the CommKit Host Transport Provider that supports a Transport Provider Interface (TPI). Programs can access dktli using the Transport Level Interface (TLI) [see UNIX System V Release 4.0 Programmer’s Guide: Networking Interfaces for more information about TLI] where it supports the connection-oriented with orderly release (T_COTS_ORD) service type.
DKTY(7) DKTY(7) NAME dkty – host tty interface module DESCRIPTION dkty is a STREAMS module that provides an interface between the ldterm(7) standard terminal STREAMS module and the CommKit Host Interface STREAMS driver dkhs(7). Its primary function is to intercept and translate write-side terminal ioctls(2) and read-side URP level-D code messages. The functions in the c_cflag field of the termio(7)/termios(2) structure that are performed by the dkty module are PARENB, PARODD and B0.
DKTY(7) DKTY(7) TCSETA The argument is a pointer to a termio(7) structure. The value of the c_cflag is used to set the terminal parameters. If the value of CBAUD is zero, an M_HANGUP message is sent upstream. TCSETAW The argument is a pointer to a termio(7) structure. The value of the c_cflag is used to set the terminal parameters. If the value of CBAUD is zero, an M_HANGUP message is sent upstream. TCSETAF The argument is a pointer to a termio(7) structure.
DKUX(7) DKUX(7) NAME dkux – CommKit Host Interface call processing module DESCRIPTION dkux is a STREAMS module that provides call processing support for the host interfaces by communicating with peer processes in the AT&T data switch controller via the dkhs(7) driver. Call processing and initialization are accomplished by means of messages passed between the data switch controller and the host, the format and content of which are defined by the UNIXP protocol.
DKUX(7) DKUX(7) M_STOPI To minimize data loss during a splice attempt, the dkux module suspends the URP receivers by sending M_STOPI messages downstream on the Streams associated with the circuits to be spliced. M_STARTI If a splice attempt cannot be completed, dkux resumes the URP receivers by sending M_STARTI messages downstream on the Streams associated with the circuits that were to be spliced. M_DATA Messages destined for the data switch controller are sent downstream in messages.
DKXQT(7) DKXQT(7) NAME dkxqt – remote execution character special device DESCRIPTION dkxqt is a character special device that provides processes with an interface that implements the remote execution protocol of the CommKit Host Interface. This interface is used on the remote end of a remote login or remote execution circuit. It cannot be used to originate calls. The routines within the dkxqt driver are the following: dkxopen() Opens a channel of an incoming call for remote execution.
F Example Programs F-1
Example Programs Introduction Introduction This section provides several useful examples of CommKit Host Interface application programs, to illustrate the descriptions provided in Chapter 5 "Programming With the CommKit Library". Example 1 This code segment outlines a program written to run a standard Unix service on either a local host or other user-specified host using the CommKit library libdk.a.
Example Programs Introduction uname (&utsname); hostname = argc > 1 ? argv[1] : utsname.nodename ; sprintf (&dialstr, "%s.uname", hostname); if ( (dkfd = dkdial (dialstr)) < 0) exit(1); while ( (rlen = read (dkfd, inbuf, 100)) > 0 ) { write (1,inbuf,rlen); } } Example 2 This code segment outlines a program written to copy data to a Datakit channel using the CommKit library libdk.a.
Example Programs Introduction main(argc,argv) /* reads from stdin; writes to DK */ int argc; char *argv[]; { int dkfd, rlen, wlen; char *hostname, dialstr[20], inbuf[100]; struct utsname utsname; uname (&utsname); hostname = argc > 1 ? argv[1] : utsname.nodename ; sprintf (&dialstr, "%s.
Example Programs Introduction /* * * * * * * * * * * * * * * * * * * * * * * * */ Sample Datakit/Commkit TLI Application Program ---------------------------------------------This program can execute a command on a remote node using the tli library. To compile: cc -o tliserv tliserv.c -lnsl_s To run: ./tliserv transport - identifies a transport provider. Specificcaly, it is the path name of the entry under /dev for a given network. (i.e., "/dev/mx", "/dev/dktp0", etc.
Example Programs Introduction } exit(0); } connect(transport, system, service) char *transport; char *system; char *service; { int fd; struct t_call *sndcall; struct t_bind *bndcall; struct t_discon *discon; int n; char nlps[256]; if ((fd = t_open(transport, O_RDWR, NULL)) < 0) { t_error("t_open() failed"); return (-1); } if ((bndcall = (struct t_bind*) t_alloc(fd, T_CALL, T_ADDR)) == NULL) { t_error("t_alloc() failed"); return (-1); } bndcall->addr.buf = system; bndcall->addr.
Example Programs Introduction strcpy (nlps,NLPSx); /* send NLPS string */ strcat (nlps,service); n = strlen(nlps) + 1; if (write(fd, nlps, n) != n) { fprintf(stderr, "write of NLPS string failed\n"); return (-1); } return (fd); } F-7
Example Programs Introduction F-8
Manual Part Number Manufacturing Number Printed in USA Z7126-90007 5967-8902 October 1998