Page 1
HP 9000 Computers DTC Device File Access Utilities and Telnet Port Identification ABCDE HP Part No. B1030-90002 Printed in U.S.A. 01/95 Edition 2 E0195...
Page 2
Legal Notices Hewlett-Packard makes no warranty of any kind with regard to this material, including, but not limited to, the implied warranties of merchantability and tness for a particular purpose. Warranty. Restricted Rights Legend. HEWLETT-PACKARD COMPANY 3000 Hanover Street Palo Alto, California 94304 U.S.A.
Page 10
Intended Audience open close ioctl read write Prerequisites Introduction...
Page 11
Supported Configurations HP-UX operating system version Internet Services. HP 9000 Series 700 and 800 systems. DTC Manager/UX or OpenView DTC Manager. DTC Manager/UX OpenView DTC Manager Printers and plotters. Introduction...
Page 12
Terminals. Modems. HP DTCs. Other Terminal Servers. Introduction...
Page 13
HP-UX System Administration Tasks Documentation Installing HP-UX 10.0 LAN and Internet Services manuals: Installing and Administering Internet Services Installing and Administering LAN/9000 Using Serial Line IP Protocols DTC Manager manuals: Using HP OpenView DTC Manager Using HP OpenView DTC Manager/UX...
Page 15
Overview of DDFA And Telnet Port Identification DDFA makes accessing devices attached to DTCs or other terminal servers like accessing MUX devices. DDFA allows the HP-UX Spooler for printers attached to DTCs or other servers to be congured in SAM.
Page 16
DDFA allows user applications to access devices attached to DTC and other terminal servers using standard HP-UX system calls. read write open close ioctl Telnet Port Identication lets the system administrator ensure that incoming Telnet connections from specic DTC ports will be assigned to specic, rather than random pty device les.
Page 17
Overview of DDFA And Telnet Port Identification...
Page 18
Figure 2-1. HP 9000 and DTC Interaction With DDFA Overview of DDFA And Telnet Port Identification...
Page 19
How Telnet Port telnetd Identification Works How Device Files Are Handled By MUXes and DTC Terminal Servers random insf mknod Overview of DDFA And Telnet Port Identification...
Page 20
/dev/tty2p3 pseudoterminal device driver /dev /dev/telnet ps -ef Setting Up Outgoing and Incoming Connections Overview of DDFA And Telnet Port Identification...
Page 21
open() read() write() close() ioctl() /dev/tty2p3 /dev/tty2p3 telnetd /dev /etc/ddfa/dp Overview of DDFA And Telnet Port Identification...
Page 22
Figure 2-2. Incoming Connection Using Telnet Port Identification Overview of DDFA And Telnet Port Identification...
Page 23
/usr/sbin/ocdebug /usr/examples/ddfa/dp /usr/examples/ddfa/pcf INETSVCS-RUN for Telnet Port Identication /usr/lbin/telnetd telnetd INETSVCS-MAN for DDFA References /usr/share/man/man1m/dpp.1m /usr/share/man/man1m/ocd.1m /usr/share/man/man1m/ocdebug.1m /usr/share/man/man4/dp.4 /usr/share/man/man4/pcf.4 /usr/share/man/man7/ddfa.7 If updating to HP-UX 10.0, update the location of older DDFA device les Overview of DDFA And Telnet Port Identification...
Page 24
/dev/telnet /usr/contrib/bin/ddfa device mig Congure the dedicated port (dp) les of DDFA Congure the board and ports of the DTC(s). 2-10 Overview of DDFA And Telnet Port Identification...
Page 25
Configuring DDFA Connections DDFA Master Files /etc/ddfa/dp Dedicated Port (dp) /etc/ddfa/pcf Port Conguration File (pcf) /usr/sbin/dpp Dedicated Port Parser (dpp) /etc/ddfa/dp Configuring DDFA Connections...
Page 30
/etc/ddfa/dp /etc/ddfa/dp only for DTC servers <DTC IP addr> <board>/<port> <pseudonym> <pcf> <DTC Nodename> <board>/<port> <pseudonym> <pcf> by most terminal servers, including DTCs, for outgoing connections only <Server IP addr> XX/<port TCP addr> <pseudonym> <pcf> <Server Name> XX/<port TCP addr> <pseudonym> <pcf> <Server IP addr>...
Page 31
/etc/ddfa/dp Conguration Example 1 /dev/dtc72b3p2 192.101.23.72 03/02 /dev/telnet/dtc72b3p2 /etc/ddfa/pcf Conguration Example 2 /dev/telnet/tserver1p2 server.d.o.com XX/XX /dev/telnet/tserver1p2 /etc/ddfa/pcf /etc/ddfa/dp HP-UX System Administration Tasks Manual Configuring DDFA Connections...
Page 32
Configuring Incoming Connections (Terminals) /dev/telnet/dtc16b1p2 /etc/ddfa/dp <DTC IP addr> <board>/<port> <pty> /dev/telnet/dtc72b3p4 192.101.23.72 03/04 /dev/telnet/dtc72b3p4 Note that no pcf reference is necessary for input devices such as a terminal /etc/ddfa/dp Configuring DDFA Connections...
Page 35
Defining and Executing DDFA Parameters dedicated port Using Dedicated Ports Defining and Executing DDFA Parameters...
Page 36
The Dedicated /etc/ddfa/dp Port File, dp <DTC IP Addr> <board>/<port> <pseudonym> <pcf> <DTC Nodename> <board>/<port> <pseudonym> <pcf> <Server IP Addr> XX/XX <pseudonym> <pcf> <Server Name> XX/XX <pseudonym> <pcf> <Server IP Addr> XX/<port TCP addr> <pseudonym> <pcf> Defining and Executing DDFA Parameters...
Page 37
<DTC IP Addr> <board>/<port> <pseudonym> <DTC Nodename> <board>/<port> <pseudonym> DTC IP Addr DTC Node Name board XX/XX <board>/<port> port port TCP addr Defining and Executing DDFA Parameters...
Page 38
pseudonym /dev/telnet/dtc1b2p4 /etc/ddfa/pcf /etc/ddfa/pcf The Port Configuration File, Defining and Executing DDFA Parameters...
Page 39
/etc/ddfa/pcf /etc/ddfa/pcf /usr/examples/ddfa/pcf /etc/ddfa/pcf /etc/ddfa telnet_mode: enable must timing_mark: enable telnet_timer: 120 /var/adm/syslog/syslog.log Defining and Executing DDFA Parameters...
Page 46
Using dpp to Kill and Restart ocds dpp -k /usr/sbin/dpp /etc/ddfa/dp -k Using dpp to Start Up New ocds without /usr/sbin/dpp /etc/ddfa/dp Using dpp to Remove Existing ocds kill -15 4-12 Defining and Executing DDFA Parameters...
Page 47
kill -15 <ocd pid> <ocd pid> Managing Incoming telnetd Connections by telnetd telnetd telnetd telnetd Using dpp to Update Telnet Port Identification Info /usr/sbin/dpp /etc/ddfa/dp telnetd does Defining and Executing DDFA Parameters 4-13...
Page 48
telnetd 4-14 Defining and Executing DDFA Parameters...
Page 49
Application Examples Setting Up Printers with the HP-UX HP-UX System Administration Tasks Manual Spooler /dev/lp lpadmin lpsched lpstat accept enable disable before Application Examples...
Page 50
/etc/ddfa/dp /etc/ddfa/dp HP-UX Spooler Example System Administration Management lpadmin HP-UX System Administration Tasks Manual Printer name: Printer model / interface: Application Examples...
Page 57
ocds Troubleshooting Outgoing Connections Check for Syntax Errors Check for Incorrect Addresses TCP_port = ( 32 * board + port + 1 ) * 256 +23 Check Telnet Operation telnet <DTC or Server IP Addr> <TCP port> Simple DDFA Troubleshooting...
Page 58
Verify ocd ps -ef | grep ocd Check the pty /dev/telnet/<devfilename> crw-rw-rw- 1 root sys 17 0x000030 Jan 20 10:15 /dev/telnet/dtc1b0p0 Check System Level Data Path cat /etc/services > /dev/telnet/<devfilename> ocd cat ocdebug Simple DDFA Troubleshooting...
Page 59
Troubleshooting Incoming Connections telnetd telnetd what what /usr/lbin/telnetd what $Header: telnetd.c, v 1.22.110.10 telnet <host IP addr> Simple DDFA Troubleshooting...
Page 60
If You Have to Call Hewlett-Packard < > /var/adm/ocd /var/adm/syslog lpstat -t ps -ef netstat /etc/lp/interface uname -a Simple DDFA Troubleshooting...
Page 63
Appendix A: dpp Error Messages Error Message Reason Number dp le is mandatory No le was found when was started. dp le must be the le must be rst argument specied as the rst argument when started. Cannot read dp le le mentioned does <...
Page 64
Error Message Reason Number Cannot execute program does not program (-p exist or is not an < > program executable le with correct access rights. Cannot purge device The option has been le (/dev/ selected and the device le exists but cannot be purged because of insucient access rights.
Page 65
Error Message Reason Number Entry ignored (No The device le name has device name) not been congured in the le. Entry ignored (Bad The displayed device le device name) cannot be created because of invalid path or insucient access rights. Entry ignored (Bad The displayed cong name)
Page 68
Critical Messages usage: ocd -n<node_name> -f<pseudonym> [-b<board_no>] [-p<port_no>] [-c<pc_file_path>] [-l<log_level>] usage: ocdebug -n<node_name> -f<pseudonym> [-b<board_no>] [-p<port_no>] [-c<pc_file_path>] [-l<log_level>] [-d<level>] CAUSE: Ocd or ocdebug was executed with an illegal or missing option. ACTION: Restart ocd or ocdebug using the correct syntax and note that: 1.
Page 69
(101) ERROR: Invalid board number <board_number> CAUSE: The board number argument specified with the -b option was not in the range 0 to 7 for a DTC, or it was not a string consisting of "X" or "x". ACTION: Restart ocd or ocdebug using a DTC board number in the range 0 to 7, or a string consisting of "X"...
Page 70
(105) ERROR: Pseudonym <pseudonym_name> unavailable CAUSE: The pseudonym specified was in use by another process and was not available for use by ocd or ocdebug. ACTION: Determine if the process using the pseudonym is necessary and restart ocd or ocdebug if it is not (after stopping that process and removing the pseudonym).
Page 71
(150) ERROR: Unable to allocate pty because no pty available for use CAUSE: There were no ptys available for use on the system. ACTION: Allocate more ptys on the system or wait to restart ocd or ocdebug until there are fewer processes running. (151) ERROR: Unable to obtain file information for pty <slave_pty_name>: system error <system_error>: <system_message>...
Page 72
(155) ERROR: Unable to free pseudonym <pseudonym_name>: system error <system_error>: <system_message> CAUSE: The pseudonym specified was not freed from use by another process due to the system error given. ACTION: Look up what the kill(2) man page states about the system error given and make the correction as appropriate.
Page 73
Serious Messages (200) ERROR: Unable to obtain data from network: system error <system_error>: <system_message> CAUSE: There was no data to receive from the network due to the system error given. NOTE: This message is followed by messages (296), (297), (298), and (299). NOTE: System error 232 - A transport reset was received from the remote terminal server.
Page 74
(203) ERROR: Connection failed CAUSE: A connection to the remote terminal server was not made. NOTE: This message is followed by messages (296), (297), and (298). ACTION: Determine if the terminal server and device are operational and enable the printer or restart the application if they are. (204) ERROR: Invalid terminating status request received CAUSE: The final status request to the device on the remote terminal server failed.
Page 75
(207) ERROR: No timing mark negotiation to obtain from network within time interval allowed CAUSE: There was no data and thus no timing mark negotiation to receive from the network during the time to wait for such negotiations (most likely because of the load on the terminal server, network, or system).
Page 76
ACTION: Add paper to the printer, put it on-line, and send the printer request. (213) ERROR: Printer off-line CAUSE: The printer on the remote terminal server was off-line. ACTION: Put printer on-line and send the printer request. (214) ERROR: Printer data error CAUSE: The printer on the remote terminal server had a data error.
Page 77
(217) ERROR: Unable to obtain binary negotiation from network: system error <system_error>: <system_message> CAUSE: There was no binary negotiation to receive from the network due to the system error given. NOTE: This message is followed by message (296), (297), and (299). ACTION: Determine if the terminal server and device are operational and restart the application if they are.
Page 78
MESSAGES COMMONLY SEEN WITH NON-STANDARD (USER-WRITTEN) APPLICATIONS: (222) ERROR: Control device request rejected as connection not open CAUSE: A control device request was received before an open request was received and after a close request was received. NOTE: This message is followed by messages (296) and (297). ACTION: Have all control device requests for a pseudonym sandwiched between an open request for that pseudonym and a close request for that pseudonym.
Page 79
(226) ERROR: Unable to obtain send break request argument: system error <system_error>: <system_message> CAUSE: The parameter for a send break control device request could not be obtained due to the system error given. ACTION: Determine if the correct structure (termio) is used and the correct parameters are being set and make any changes necessary.
Page 80
(250) ERROR: Unable to obtain data from network or pty CAUSE: There were no data or events to be passed on the network or through the pseudonym due to a system error. NOTE: This message is followed by message (296), (297), and (299). ACTION: Restart ocd or ocdebug and restart the application.
Page 81
(255) ERROR: Unknown internal parameter in port configuration file CAUSE: The internal port configuration parameter discovered while processing the port configuration file is not a known parameter. ACTION: No action. (256) ERROR: Give up trying to obtain connection: system error <system_error>: <system_message> CAUSE: Any more tries to open a connection to the device on the remote terminal server were stopped due to the system error given.
Page 82
(260) ERROR: Unknown Telnet state <telnet_state> during timing mark negotiation CAUSE: A Telnet state discovered while processing a Telnet timing mark negotiation was not a known Telnet state. NOTE: This message is followed by message (296), (297), and (299). ACTION: Determine if the terminal server is using the Telnet protocol correctly and restart the application if it is.
Page 83
(265) ERROR: Unable to get terminal parameters: system error <system_error>: <system_message> CAUSE: There were no device file parameters to obtain from the pty due to the system error given. ACTION: Look up what the ioctl(2) man page states about the system error given and make the correction as appropriate.
Page 84
MESSAGE(S) THAT ACCOMPANY SOME SERIOUS ERROR MESSAGES: (296) ERROR: Recreating pseudonym <pseudonym_name> with new pty CAUSE: The pseudonym was recreated and linked to a new pty opened for it. NOTE: This message accompanies messages (200), (201), (202), (203), (204), (205), (209), (210), (214), (216), (217), (218), (219), (222), (224), (225), (229), (230), (250), (252), (253), (254), (256), (260), (261), (262), (263), and (264).
Page 85
Warning Messages USAGE MESSAGE: ocd: unknown option: <option> (ignored) CAUSE: The option given was not a valid option. ACTION: Remove the option from the command line. (300) WARNING: Invalid logging level <log_level> (valid values are 0, 1, 2, or 3) CAUSE: The logging level given was not 0, 1, 2, or 3.
Page 86
(303) WARNING: Pseudonym <pseudonym_name> not specified in /dev/telnet CAUSE: The pseudonym specified was not to be placed into the directory /dev/telnet set aside for all pseudonyms. ACTION: Place all pseudonym names in /dev/telnet. (304) WARNING: Unable to change permissions of pseudonym <pseudonym_name> to <permission>: system error <system_error>: <system_message>...
Page 87
(309) WARNING: Close not completed as data processing not complete CAUSE: There was still data to send to the device on the remote terminal server as the close was requested. ACTION: No action is necessary. (310) WARNING: Close request ignored as connection not open CAUSE: The close request was received and ignored as the connection was not open.
Page 88
(314) WARNING: Unknown parameter <parameter_name> in port configuration file (ignored) CAUSE: The port configuration parameter specified is not valid and has been ignored. ACTION: Verify the port configuration parameter name. (315) WARNING: Unable to set keep alive option on network socket: system error <system_error>: <system_message>...
Page 89
(319) WARNING: Unable to obtain negotiation from network: system error <system_error>: <system_message> CAUSE: There was no Telnet negotiation to receive from the network due to the system error given. ACTION: Look up what the select(2) man page states about the system error given and make the correction as appropriate.
Page 90
(324) WARNING: Status reply received <number_of_characters> characters CAUSE: A status reply of more than one character was received in the data from the device on the remote terminal server. ACTION: No action is necessary. (325) WARNING: Unable to send interrupt signal to application: system error <system_error>: <system_message>...
Page 91
(329) WARNING: Unable to write <number_of_bytes> bytes of urgent data to network CAUSE: An attempt to write all data to the network failed because the network had no room for the amount of data specified. ACTION: Determine if the network, terminal server, and device are running correctly and draining data regularly and correct the situation as necessary.
Page 92
Informational Messages (400) NOTE: Target device at node <node_name> board <board_number> port <port_number> TCP port <tcp_port_number> CAUSE: Indicates the location of the device on the remote terminal server. (401) NOTE: Created pseudonym <pseudonym_name> CAUSE: Indicates the name of the pseudonym created for use. (402) NOTE: Linked pseudonym <pseudonym_name>...
Page 93
(407) NOTE: Received close request from application <process_identifier> CAUSE: Indicates the reception of a close request for a pseudonym by the application specified. (408) NOTE: Received control device request from application <process_identifier> CAUSE: Indicates the reception of a control device request for a pseudonym by the application specified.
Page 94
(415) NOTE: Erased character or line for application CAUSE: Indicates the erasure of a character or line of data from the device on the remote terminal server to the application. (416) NOTE: Received terminal type subnegotiation <terminal_name> CAUSE: Indicates the reception of the device type from the device on the remote terminal server.
Page 95
(425) NOTE: Sent binary negotiation CAUSE: Indicates the sending of a binary negotiation request to the remote terminal server. (426) NOTE: Waiting <telnet_timer> seconds for binary negotiation reply CAUSE: Indicates the number of seconds to wait for a binary negotiation reply from the remote terminal server.
Page 96
(433) NOTE: Closed pty <master_pty_name> CAUSE: Indicates the closure of the pty specified after the deletion of its associated pseudonym. (434) NOTE: Closing connection due to application completion CAUSE: Indicates the clean closure of the connection to the remote terminal server after the close timer had expired.
Page 99
disable, 5-1 dp, 3-1, 4-1, 4-2 dp (dedicated port le), 2-5 dp le, 4-5, 4-13, 5-3, 6-5 killing and restarting ocds, 4-12 removing existing ocds, 4-12 starting the ocds, 4-11 starting up new ocds, 4-12 updating Telnet Port Identication Info, 4-13 dpp, 4-1 syntax, 4-9 , 3-1...
Page 100
HP 2363A, 1-4 HP 2364A, 1-4 HP 2370A, 1-4 HP 3000 systems, 1-3 HP 9000 ARPA, 1-1 HP 9000 Internet Services, 1-1 HP 9000 Series 700, 1-3 HP 9000 Series 800, 1-3 HP 9000 systems, 1-3 HP D2355A, 1-2 HP J2120A, 1-2...
Page 103
5-1 SIGUSR2 signal, 4-7 slave side of the pty, 4-11 SLIP, 5-5 SLIP connections over DTCs, 5-1 standard HP-UX input/output calls, 1-2 standard HP-UX system calls, 2-2 standard spooler model scripts, 2-2 starting ocd daemons, 3-9 status request, 4-7...
Page 105
using dpp removing existing ocds, 4-12 updating Telnet Port Identication info, 4-13 using dpp to kill and restart ocds, 4-12 using dpp to start the ocds, 4-11 using dpp to start up new ocds, 4-12 Using DTC ports with CSLIP or SLIP, 5-1 /usr/contrib/bin/ddfa device mig, 2-10 /usr/examples/ddfa/dp, 2-9 /usr/examples/ddfa/pcf, 2-9, 3-1, 4-5...