Network Level II ACNET Design Note No. 40.12 _____ _____ __ _______ ________ ACNET Level II Network Services Frank J. Nagy (original) Glenn C. Johnson (revision) January 12, 2001 Copyright (c) 1992 Universities Research Association, Inc. All Rights Reserved The Level I ACNET network software provides the core layer network services that support communications between independent tasks on separate processors. Level II software builds upon this base to provide facilities for monitoring and controlling the network. The Level I network services are provided for network users. Some of the Level II network services are also available for general usage while others are meant only to be used by the network software itself. For the most part, the Level II services make use of the Level I services. This document is only a design document containing specifications to be followed by the implementors and suggestions for implementation. The actual implementation may (by hopefully not) cause changes in the design. In addition, some specific points are left up to the implementor's choice. Done in collaboration with Chas. I. Briegel ACNET Level II Software Design Page ii This document replaces Acnet Design Note 26.0 which described the preliminary design of the Level II network software. V40.1 of this document reflects final agreements on message redirection and the typecoding scheme. V40.2 reflects changes induced by the initial RSX implementation of the Level II network functions. V40.3 reflects further changes induced by the initial implementations of the Level II network functions in the ACNET and ACNAUX programs. V40.4 reflects changes due to switching from PCL to token ring, also the elimination of most reboot functions which have become outdated. V40.5 reflects the replacement of the network statistics functions. V40.6 reflects the addition of the T8 bit to the PNA flags byte V40.7 reflects the addition of multicast table functions, and also the modification of GTPKTS to permit USM delayed replies. V40.8 reflects the addition of the IP address table and alternate trunk/node functions V40.9 reflects the modification of the KILLER function V40.10 reflects changes to DACTAB function, and the addition of a GTDATA function V40.11 reflects the addition of the T11 bit to the PNA flags byte V40.12 reflects the additon of the RS bit to the IPTAB function ACNET Level II Software Design Page iii Table of Contents CONTENTS CHAPTER 1 Implementing Level II 1.1 Level II Server Task (Process) . . . . . . . . . . 1-1 1.2 Format of the ACNET Request Message . . . . . . . 1-2 1.2.1 ACNET Request Typecode Format . . . . . . . . . 1-3 1.3 ACNET Level II Functions . . . . . . . . . . . . . 1-4 1.3.1 Common Functions . . . . . . . . . . . . . . . . 1-4 1.3.1.1 Read Functions . . . . . . . . . . . . . . . . . 1-4 1.3.1.2 Network Statistics (Read) Functions . . . . . . 1-5 1.3.1.3 Write Functions . . . . . . . . . . . . . . . . 1-6 1.3.2 RSX-11M Specific Functions . . . . . . . . . . . 1-6 1.3.2.1 Read Functions . . . . . . . . . . . . . . . . . 1-6 1.3.2.2 Write Functions . . . . . . . . . . . . . . . . 1-7 1.3.3 VAX/VMS Specific Functions . . . . . . . . . . . 1-7 1.3.3.1 Read Functions . . . . . . . . . . . . . . . . . 1-7 1.3.3.2 Write Functions . . . . . . . . . . . . . . . . 1-8 1.3.4 Additional Reply Status Codes . . . . . . . . . 1-9 1.3.5 Level II Network Service Routines . . . . . . . 1-9 CHAPTER 2 Network Statistics CHAPTER 3 Online Configuration Changes CHAPTER 4 Software Needed for Level II APPENDIX A Detailed Common Function Definitions A.1 Null Operation Function . . . . . . . . . . . . . A-2 A.2 Return Logical Task Id . . . . . . . . . . . . . . A-3 A.3 Return Network Task Name . . . . . . . . . . . . . A-4 A.4 Return Current Version Numbers . . . . . . . . . . A-5 A.5 Return List Of Connected Tasks . . . . . . . . . . A-7 A.6 Return Current Resource Usage Counts . . . . . . . A-9 A.7 Return General Statistics Counters . . . . . . . A-10 A.8 Return Per-task Statistics Counters . . . . . . A-12 A.9 Return Token Ring I/O Error Statistics Counters A-14 A.10 Return Total Packet Count . . . . . . . . . . . A-16 A.11 Reassign Logical Nodes . . . . . . . . . . . . . A-18 A.12 Eliminate Outstanding Requests And/or Replies . A-21 A.13 Shutdown Local Network . . . . . . . . . . . . . A-22 A.14 Read/Write DACNET Table . . . . . . . . . . . . A-23 A.15 Read/Write Ethernet Table . . . . . . . . . . . A-25 A.16 Read/Write Multicast Table . . . . . . . . . . . A-27 A.17 Set Multicast-Group-Functional Address . . . . . A-29 A.18 Read/Write IP Address Table . . . . . . . . . . A-31 ACNET Level II Software Design Page iv Table of Contents APPENDIX B Detailed RSX-11M Function Definitions B.1 RSX11M - Return Input Switch Settings . . . . . . B-2 B.2 RSX11M - Return Current Date And Time . . . . . . B-3 B.3 RSX11M - Set/clear Global Event Flag . . . . . . . B-4 B.4 RSX11M - Request A Task . . . . . . . . . . . . . B-5 B.5 RSX11M - Send Data To A Task . . . . . . . . . . . B-6 B.6 RSX11M - Spawn A Task . . . . . . . . . . . . . . B-7 B.7 RSX11M - Control A Task . . . . . . . . . . . . . B-8 APPENDIX C Detailed VAX/VMS Function Definitions C.1 VAX/VMS - Return Current Date And Time . . . . . . C-2 C.2 VAX/VMS - Return Total Packet Count . . . . . . . C-6 C.3 VAX/VMS - Return Text Of A VMS System Message . . C-7 C.4 VAX/VMS - Return List Of Nodes To Notify . . . . . C-9 C.5 VAX/VMS - Return Physical Node And Trunk . . . . C-10 C.6 VAX/VMS - Return Physical Node Address Table . . C-11 C.7 VAX/VMS - Return Block Of NETCOMMON Memory . . . C-13 C.8 VAX/VMS - Return Timeout Age Limit . . . . . . . C-15 C.9 VAX/VMS - Return VMS Job/process Information . . C-16 C.10 VAX/VMS - Return VMS Job/process Information . . C-17 C.11 VAX/VMS - Network Timer Control . . . . . . . . C-18 C.12 Get Alternate Trunk/Node Information . . . . . . C-19 C.13 Return Various VAXACNET Values . . . . . . . . . C-20 C.14 VAX/VMS - Set Timeout Age Limit . . . . . . . . C-22 C.15 VAX/VMS - Spawn A Detached Process . . . . . . . C-23 C.16 VAX/VMS - Control A Detached Process . . . . . . C-25 CHAPTER 1 Implementing Level II The ACNET network software under various operating systems consists of two major functional parts. Each has a User Task Interface (UTI) which provides the Level I network services and the entry points to those service routines. Each also has an independent task (ACNET on RSX) or process (NETPROCESS on VMS) which serves as the conduit through which all network messages pass. In particular, the network task (process on the VAX) has sole use of the network communications device (token-ring or ethernet) for communication with other remote systems. In the Level I software, all interaction with the network is via the entry points to the network service routines. To implement the Level II control and monitoring functions, an additional method of interaction with the network is defined. This new method consists of using the Level I network services to send requests to and receive replies from the network task (process) itself. 1.1 Level II Server Task (Process) The network task (process) running on a system can be addressed by using any logical node supported on that system and a network task name of ACNET (in Radix-50 format). It is likely that many of the Level II services will actually be handled in a separate program for any of several reasons: 1. use a lower task (process) priority to avoid interference between the (relatively?) time-consuming Level II service and normal network operations, 2. the Level II service is invoked relatively infrequently and can thus tolerate being overlaid or paged-in only when needed, or 3. the Level II service requires additional resources, such as disk I/O, that are not wanted in the network task (process) itself. The final choice of which Level II services are to be handled in ACNET and which in this auxiliary task (process) are left to the Implementing Level II Page 1-2 Level II Server Task (Process) implementor. The auxiliary network task (process) will connect to the network in the fashion of a normal network user. The network task name shall be ACNAUX. This auxiliary network task (process) will run at a lower priority than ACNET as normal network operations are deemed more important than most of the Level II services. No specification is made here of relationship between the priority of the auxiliary network task and the priorities of the user tasks (processes) running on the same system. Level II requests are divided into two classes, common to all systems and system-specific (see below). In either case (common or system-specific), Level II messages sent to ACNET that are not handled in ACNET should be redirected (internally by ACNET) to ACNAUX which will receive it using the standard network service routines. It is suggested that the implementations ___ provide this internal redirection for all Level II requests rather than requiring some to be sent directly to ACNAUX. Any restrictions on redirection will be described with the function descriptions in the Appendices. 1.2 Format of the ACNET Request Message The format of the Level II Request (or USM) message is shown in Figures I and II. Figure I ACNET Read Request Message Format +----------------+----------------+ Word 1 | Sub-function | Typecode | +----------------+----------------+ Word 2 | Optional data/addresses | (optional) +---------------------------------+ . . . +---------------------------------+ Word N | | (optional) +---------------------------------+ Implementing Level II Page 1-3 Format of the ACNET Request Message Figure II ACNET Write Request Message Format +----------------+----------------+ Word 1 | Sub-function | Typecode | +----------------+----------------+ Word 2 | Data/Additional addressing | (optional) +---------------------------------+ . . . +---------------------------------+ Word N | | (optional) +---------------------------------+ The typecode defines the function number and type (READ or WRITE). The READ and WRITE functions can also be thought of as GET and SET requests. The negative typecodes are reserved for system-specific operations (the SSF bit is set). No special distinction is made between READ and WRITE functions in the typecodes used for each. The sub-function byte value shall depend upon the function code. Some READ functions may require additional addressing information, this will follow the typecode (and sub-function) word in the remaining words of the request message. For the WRITE functions, the data to be written (and possibly some additional addressing information) will follow typecode/sub- function word. Some of the Level II software will provide additional network services available to the user. For the most part these will involve READ function requests made to an ACNET task (or process). For example, the NET_GET_TASKID routine that was specified with the Level I software has been implemented with Level I VAX/VMS ACNET but also makes use of a part of Level II ACNET. In the case of this routine, direct access is made to locally available information (which is stored in the NETCOMMON global section) but for remote information a Level II Request is sent to ACNET on the remote node. 1.2.1 ACNET Request Typecode Format The fields of the typecode byte are shown in Figure III. Negative codes are reserved for functions specific to the system type and the same code will have different meanings for the various operating system implementations. The sub-function byte has different meanings for various commands and in many cases is unused. Implementing Level II Page 1-4 Format of the ACNET Request Message Figure III Typecode Byte Fields 7 6 5 4 3 2 1 0 +---+---+---+---+---+---+---+---+ | S | Function | | S | code | | F | | +---+---+---+---+---+---+---+---+ The SSF bit is set for all system-specific typecodes (negative byte values). The SSF bit enables the software to quickly decide if the function is a system-specific or common function. The SSF bit is actually used by assigning system-specific codes in the sequence -1, -2, -3, and so forth (treating the typecode byte as a signed value). 1.3 ACNET Level II Functions This section provides a short description of the currently specified functions. It is possible that additional functions will be added in the future though such a case is thought to be unlikely for the common (cross-system) functions. 1.3.1 Common Functions These functions are common to all ACNET systems and must be implemented as such. An effort has been made to limit the number of common read (and write) functions to prohibit excessive demands on memory in the RSX systems. 1.3.1.1 Read Functions These functions are used to monitor the current state of the network or provide services used in the network startup procedures. 1. Return logical task id given a network task name (GTSKID). 2. Return network task name given a logical task id (GTSKNM). 3. Return the network task names of all connected tasks (GTASKS). Implementing Level II Page 1-5 ACNET Level II Functions 4. Return the current counts of the following items (GTCNTS): - Number of free buffers. - Number of free control blocks. - Number of connected tasks. - Number of RUM-connected tasks. - Number of active requests and replies. Not all of these items are supported by all types of logical nodes. Those items which are not supported on a node are returned as zero. 5. Return the current version numbers of ACNET (the network process on the VAX) and the UTI (GTVERS). 1.3.1.2 Network Statistics (Read) Functions All these functions return, in addition to the accumulated counts, the time interval over which the statistics were gathered. The accumulated statistics counts themselves are kept in single words as unsigned quantities. The counters are frozen at their maximum values (65535) and do not overflow. 1. Return general statistics listed below (GTSTAT): - Number of times no free control blocks were available for network use. - Number of times no free control blocks were available for users. - Number of times no free buffers were available for network use. - Number of times no free buffers were available for users. - Numbers of messages sent, by message type (Request, Reply, or USM). - Numbers of messages received, by message type (Request, Reply, or USM). Not all of these items are supported by all types of logical nodes. Those items which are not supported on a node are returned as zero. 2. Return array of per-task statistics, one block per connected task. Each task block contains task name, task id, and message counts (GTTKST): - Numbers of messages sent, by message type (Request, Reply, or USM). Implementing Level II Page 1-6 ACNET Level II Functions - Numbers of messages received, by message type (Request, Reply, or USM). 3. Return accumulated token ring adapter I/O error counts (GTTRIO). 4. Return uptime and total number of packets processed (GTPKTS). 1.3.1.3 Write Functions These functions provide for some amount of real-time control of the network. 1. Reassign one or more logical nodes to a new physical address (ASSIGN). This provides a means to change the configuration tables in online remote systems. 2. Shutdown local network operations (SHUTUP). 3. Terminate all network operations for all tasks on a set of logical nodes (KILLER). This function is used to clear network operations left from before a system reboot. All requests from this system or replies to the system from other (non-rebooted) systems are terminated by sending KILLER requests to each and every system. 1.3.2 RSX-11M Specific Functions These functions are suggestions for some functions specific to RSX-11M for ACNET Level II. They come from considering what RSX Directives that one might wish to invoke over the network to perform some function in a particular node. This list is not meant to be exhaustive, additional functions may be added as the implementors see fit. 1.3.2.1 Read Functions 1. Return the local RSX system's current date and time (GTIMDT). 2. Return the contents of the Input Switches from the Lights and Switches Board (GSWINP). Implementing Level II Page 1-7 ACNET Level II Functions 1.3.2.2 Write Functions 1. Request a task to execute (REQTSK) by invoking the RQST$ directive. 2. Provide limited task control (CTLTSK), giving the ability to abort, resume, or unstop a task. 3. Spawn a task (SPAWNR) using the SPWN$ directive. This function would allow a command line to be passed to the spawned task. 4. Send data to a task (SDAT) using the SDAT$ directive. 5. Set or clear a specific global event flag (SOCGEF). 1.3.3 VAX/VMS Specific Functions These functions are suggestions for some functions specific to VAX/VMS for ACNET Level II. Some functions are used to provide services other software can use to change the network configuration online. This list is not meant to be exhaustive, additional functions may be added as the implementors see fit. 1.3.3.1 Read Functions These functions are used to monitor the current state of the network or provide services used in the network startup and control software. The GTJPIx functions are likely not to be implemented in the first version of the VAX/VMS Level II software. 1. Return the specific table of bytes (for the requesting system) that translate ACNET logical nodes to physical node numbers (GTPNAS). The CPU number of the requesting system must be given. 2. Return the list of logical nodes to which configuration changes must be reported (GTCCRL). 3. Return the local VAX system's current date and time (GTIMDT). The format of the time and date reply message is selected by the sub-function code. 4. Return the message text associated with a 32-bit VAX/VMS status code (GTSMSG). Implementing Level II Page 1-8 ACNET Level II Functions 5. Return up to 512 bytes from the NETCOMMON global section (MEMDMP). The offset to the first byte of the block to be returned is provided as a longword. 6. Return information about a specified VMS process by invoking the VAX/VMS $GETJPI system service (GTJPI1). This may be implemented to support some special application programs used to monitor the VAX and the network. 7. Return information about a VMS process connected to the network (GTJPI0). This service returns information about the process from the network and from VMS. This may be implemented to support some special application programs used to monitor the VAX and the network. 8. Get timeout age (GTMOAG). This service returns the value of the selected (by the sub-function code) age factor at which a message will be timed out. 1.3.3.2 Write Functions These functions provide control over items internal to ACNET (NETPROCESS). The SPAWNS and CTLPRC functions are unlikely to be implemented in the initial versions of the VAX/VMS Level II software. 1. Enable or disable the network process timer and the timeout testing (TMRCTL). The sub-function code is used to enable or disable the timer and timeout processor. 2. Spawn a detached VMS process (SPAWNS). The process parameters and execution image are specified before hand in a specially formatted disk file. The index or "name" of the process to be spawned is used to access the information in this disk to be used in creating the process. This function is meant only for special support software and is not meant for use by general user application programs. 3. Control a VMS process (CTLPRC). This service allows a specified VMS process to be have one of the following control operations performed on it: o Wake from hibernation. o Suspend from execution. o Resume from suspension. o Force image to exit (possibly deleting the process). o Unconditionally delete the process. Implementing Level II Page 1-9 ACNET Level II Functions 4. Set a timeout age (STMOAG). Set the age limit for a particular class of timeout condition. 1.3.4 Additional Reply Status Codes The additional Level II services required the definition of a few more reply status codes. The error conditions indicated are: ILLFCN (19) - Illegal or unknown function code. BADPWD (20) - Wrong WRITE function password. BADVAL (21) - Value or address out of range. BADPWD Obsolete The typecode scheme has been modified and eliminates the distinction between READ and WRITE functions. Consequently the WRITE password has been eliminated thus making the BADPWD reply status code obsolete. It will probably be used for some other purpose in a future version of the network. 1.3.5 Level II Network Service Routines The GTSKID and GTSKNM functions are designed to allow the completion of the implementation of the Level I network service routines NET_GET_TASKID and NET_GET_TASKNAME to be implemented and function for any logical node. Possibly additional network service routines will be defined to provide uniform user access to selected Level II functions but such specifications will be done at a later time. The implication is that general network users should invoke Level II functions via special service routines rather than using the core layer service routines directly (and formatting their own ACNET Request Blocks). CHAPTER 2 Network Statistics The network statistics constitute a set of counters that the network maintains which may be used by other programs to monitor the network performance over periods of time. The counters are latched at their maximum (do not overflow to 0) to indicate the overflow condition. In addition to the individual counters, the time over which the values are accumulated is maintained and returned with the counter values. This permits the calculation of average rates integrated over preset intervals. The network also provides for clearing these statistics counters. The information on which statistics are kept includes: 1. Number of occurrences of no buffers (or control blocks) when needed. Provision is made to return this statistic for both buffers and control blocks and further sub- divided according to ACNET (network task) and users. All systems need not use these divisions; zeros are to be returned for unsupported counters. 2. Number of messages (full messages, not packets) sent according to message type (USM, Request, or Reply). 3. Number of messages received according to message type. 4. Number of messages sent (for each connected task) according to message type. 5. Number of messages received (for each connected task) according to message type. 6. Number of token-ring I/O errors according to error type. CHAPTER 3 Online Configuration Changes The network configuration is described by a table in each system which provides for the translation from logical node number (index to the table) to a physical node address. NOTE Logical-to-physical node translation is performed ONLY for nodes on trunk 0. For all other trunks, the logical node is identical to the physical node. In order that the network software be transportable from system to system and not specialized to a particular machine, the configuration table (logical node translation table) should be external to the ACNET program. Having it loaded from a disk file or downloaded from another system provides the capability of restoring the current values after a system reboot. Providing the ability to reconfigure the network while in operation requires: 1. Functions and/or programs to allow the values for the configuration table entries to be changed in operating systems. The Level II description provides the definition of functions to allow the online changing of any system's configuration table. Additional services permit any ACNET system to request from a central VAX a complete network configuration table setup for requesting system. The PDP-11's shall use such a service to download their table after a reboot rather than storing the table on a local disk file. This means that the network configuration tables in the VAX are in some sense the master network configuration tables. A program already exists on the VAX which, accepting input from a VAX terminal or text file, allows the VAX configuration table to be changed or stored on disk. This program is used during the VAX startup operation to load the network configuration table from a disk file. ACNAUX, both on the VAX Online Configuration Changes Page 3-2 and the PDP-11's, will serve to provide the same capabilities for all systems using messages passed over the network. Application programs will be written to allow one to change the network configuration manually (i.e., when bringing online a new system). As mentioned a local VAX program already exists; a similar program for the PDP-11's (using the RSX-11M console terminal) would be useful even now. ACNAUX can fairly easily provide the capability (on any type of system) to change the in- memory configuration tables. CHAPTER 4 Software Needed for Level II The implementation of the Level II network services will require changes in ACNET on both the RSX-11M and VAX/VMS systems to support some of the Level II functions. In the case of the VAX, some of the functions are already in place and provision has been made for the internal re-direction of Level II messages to ACNAUX. The VAX shall require one or more additional programs used at startup to load previous operating conditions from disk files. Another program will be needed to handle the sending of the KILLER and ASSIGN messages. APPENDIX A Detailed Common Function Definitions This appendix describes each common (all systems) ACNET Level II function in greater detail than the simple listing of the functions given in Chapter 1. The format of each Request (or USM) message and each Reply message (if any) is described. Numeric values for the function codes are given. Specific reply status codes associated with special conditions for the functions are listed. Reply status codes that are common to all network messages, such as SUCCESS, ENDMLT, NONODE, etc., are not listed as they usually have no special meaning beyond their normal network usage. In general, these functions are used as Requests made to ACNET and either handled there or re-directed to ACNAUX. Differences from this scheme will be described for those individual functions for which it applies. Detailed Common Function Definitions Page A-2 Null Operation Function A.1 Null Operation Function Name: NOOP Code value: 0 The no-operation function just returns a status-only reply of SUCCESS. This function can be used to check that a system is alive (at least the network is running). Request message format: +----------------+----------------+ | unused | NOOP | +----------------+----------------+ Detailed Common Function Definitions Page A-3 Return Logical Task Id A.2 Return Logical Task Id Name: GTSKID Code value: 1 This function returns the logical task id given a specified network task name that is assumed to be connected to the system at the destination logical node. Request message format: +----------------+----------------+ | unused | GTSKID | +----------------+----------------+ | network | +- -+ | task name | +---------------------------------+ The additional longword (double word) gives the network task name in Radix-50 form for which the logical task id is to be returned. Reply message format: +----------------+----------------+ | 0 | logical task id| +----------------+----------------+ The logical task id is returned in a single word reply with the upper byte of the word being set to zero. Reply Status Values: - NOTASK - no such task connected to destination node with the given network task name. Redirection considerations: This function may be sent to either ACNET or ACNAUX on VAX/VMS nodes (either program is capable of handling the function). For RSX-11M nodes this function must be sent to ACNAUX. Detailed Common Function Definitions Page A-4 Return Network Task Name A.3 Return Network Task Name Name: GTSKNM Code value: 2 This function returns the network task for a specified logical task id that is in use on the system at the destination logical node. Request message format: +----------------+----------------+ |logical task id | GTSKNM | +----------------+----------------+ The logical task id is specified in place of the sub-function code. Reply message format: +---------------------------------+ | network | +- -+ | task name | +---------------------------------+ The double word reply returns the Radix-50 form of the network task name. Reply Status Values: - NOTASK - no such task connected to node (logical task id not in use). Redirection considerations: This function may be sent to either ACNET or ACNAUX on VAX/VMS nodes (either program is capable of handling the function). For RSX-11M nodes this function must be sent to ACNAUX. Detailed Common Function Definitions Page A-5 Return Current Version Numbers A.4 Return Current Version Numbers Name: GTVERS Code value: 3 This function returns the current version numbers of the network control task (or process), the network common, and the network- user interface package. Request message format: +----------------+----------------+ | 0 | GTVERS | +----------------+----------------+ Reply message format: Major version Minor version +----------------+----------------+ ACNET | N | mm | +----------------+----------------+ NETCOM | N | mm | +----------------+----------------+ UTI | N | mm | +----------------+----------------+ The version numbers are expressed in the form "N.mm" where "N" is the major version number and "mm" is the minor (or modification) version number. The version numbers are returned in order for: o ACNET, the network task or process (also known as NETPROCESS on VAX). o NETCOM, the network common (NETCOMMON global section on VAX and ACNCOM under RSX-11M) o UTI, User Task Interface routines. For VAX/VMS ACNET, the minor version number consists of a "minor" change version number (times 10) and a patch level number (one's digit). Detailed Common Function Definitions Page A-6 Return Current Version Numbers Reply Status Values: - RPYTRUNC - warning, reply message truncated to fit user's buffer. Redirection considerations: This function may be sent to either ACNET or ACNAUX on VAX/VMS nodes (either program is capable of handling the function). For RSX-11M nodes this function must be sent to ACNAUX. Detailed Common Function Definitions Page A-7 Return List Of Connected Tasks A.5 Return List Of Connected Tasks Name: GTASKS Code value: 4 This function returns a list of the network task names and logical task ids. This list can be of all the tasks that are connected at the destination logical node or of all the tasks that are RUM-connected (capable of receiving requests or USM's). Request message format: +----------------+----------------+ | type | GTASKS | +----------------+----------------+ The sub-function code selects the type of information to be returned in the reply list. The recognized values for type are: 0 return network task names for connected tasks 1 return network task names for RUM-connected tasks 2 return VMS process identifications for connected tasks instead of task names. On RSX systems this subfunction value will return the TCB address of the task instead of the task name (the upper word of the longword is 0). Reply message format: +----------------+----------------+ | 0 | numtsk | +----------------+----------------+ | network | +- -+ | task name #1 | +---------------------------------+ ... ... +---------------------------------+ | network | +- -+ | task name #numtsk | +----------------+----------------+ | task id #2 | task id #1 | +----------------+----------------+ ... ... +----------------+----------------+ | 0 |task id #numtsk | +----------------+----------------+ Detailed Common Function Definitions Page A-8 Return List Of Connected Tasks The first word of the reply gives the number of entries in each of the two lists that constitute the remainder of the reply. The first list, following the count word, consists of double words that contain the Radix-50 network task names (or VMS process ids). The second list follows the first and consists of bytes which contain the give the logical task ids. The I'th item of the network task name list has a logical task id given by the I'th item of the logical task id list. The above illustration shows an example of a odd number of entries in the lists. A single packet reply can return names and task ids for 106 connected tasks. This is probably sufficient for a considerable time into the future. Reply Status Values: - RPYTRUNC - warning, reply message truncated to fit user's buffer. Redirection considerations: This function may be sent to either ACNET or ACNAUX on VAX/VMS nodes (either program is capable of handling the function). For RSX-11M nodes this function must be sent to ACNAUX. Detailed Common Function Definitions Page A-9 Return Current Resource Usage Counts A.6 Return Current Resource Usage Counts Name: GTCNTS Code value: 5 This function returns the usage (or free) counts of several network resources. These counts are current, not accumulated, values. Request message format: +----------------+----------------+ | 0 | GTCNTS | +----------------+----------------+ Reply message format: +---------------------------------+ | Number of free control blocks | +---------------------------------+ | Number of free buffers | +---------------------------------+ | Number of connected tasks | +---------------------------------+ | Number of RUM-connected tasks | +---------------------------------+ |Number of active requests/replies| +---------------------------------+ The reply consists of words giving the current availablity or usage counts for of the allocatable resources of the network. Redirection considerations: This function may be sent to either ACNET or ACNAUX on VAX/VMS nodes (either program is capable of handling the function). For RSX-11M nodes this function must be sent to ACNAUX. Detailed Common Function Definitions Page A-10 Return General Statistics Counters A.7 Return General Statistics Counters Name: GTSTAT Code value: 6 This function returns the contents of several of the general statistics counters and the time interval over which they were recorded. As an option, the counters can be cleared. Request message format: +----------------+----------------+ | flags | GTSTAT | +----------------+----------------+ The bits defined in the sub-function code (flags) are: 7 6 5 4 3 2 1 0 +-------------------------------+ | | | | | | | | C | | | | | | | | | L | +-------------------------------+ The CL bit is set if the counters are to be cleared after reading. Detailed Common Function Definitions Page A-11 Return General Statistics Counters Reply message format: +---------------------------------+ | Accumulation time interval (low)| +---------------------------------+ | ditto (middle) | +---------------------------------+ | ditto (high) | +---------------------------------+ | Times no control blocks found | +---------------------------------+ |Times no ctl blks for users found| +---------------------------------+ | Times no free buffers found | +---------------------------------+ |Times no buffers for users found | +---------------------------------+ | Number of USM's sent | +---------------------------------+ | Number of Requests sent | +---------------------------------+ | Number of Replies sent | +---------------------------------+ | Number of received USM's | +---------------------------------+ | Number of received Requests | +---------------------------------+ | Number of received Replies | +---------------------------------+ The reply consists of words giving the accumulated counts for general network statistics. The accumulation time is returned in milliseconds (unsigned value). The accumulated counts are unsigned and do not overflow (frozen at the value 65535). The counts of times that no free buffers (or control blocks) were available when needed are maintained separately for the network process and for all user requests on the VAX but are not for the RSX-11M systems. The counts of messages sent and received are kept by message type. Note that these counts are for messages, not message packets on the VAX. RSX systems, at this time, return the counts (by message type) of the number of message packets. Detailed Common Function Definitions Page A-12 Return Per-task Statistics Counters A.8 Return Per-task Statistics Counters Name: GTTKST Code value: 7 This function returns the contents of several per-task statistics counters and the time interval over which they were recorded. As an option, the counters can be cleared. Only data for currently- connected tasks will be provided. The task name and task id will also be provided. Request message format: +----------------+----------------+ | flags | GTTKST | +----------------+----------------+ The bits defined in the sub-function code (flags) are: 7 6 5 4 3 2 1 0 +-------------------------------+ | | | | | | | | C | | | | | | | | | L | +-------------------------------+ The CL bit is set if the counters are to be cleared after reading. Reply message format: +---------------------------------+ | Accumulation time interval (low)| +---------------------------------+ | ditto (middle) | +---------------------------------+ | ditto (high) | +---------------------------------+ | # words/task | # tasks (n) | +---------------------------------+ | Statistics | | for | | task 1 | +---------------------------------+ | Statistics | | for | | task 2 | +---------------------------------+ ... ... +---------------------------------+ | Statistics | | for | | task n | +---------------------------------+ Detailed Common Function Definitions Page A-13 Return Per-task Statistics Counters The reply consists of words giving the accumulated counts for the various per-task statistics. The accumulation time is returned in milliseconds (unsigned value). The structure of each per-task statistics block currently includes the following nine words: +---------------------------------+ | reserved | task id | +---------------------------------+ | Radix-50 task name (first half) | +---------------------------------+ | second half of task name | +---------------------------------+ | Number of USM's sent | +---------------------------------+ | Number of Requests sent | +---------------------------------+ | Number of Replies sent | +---------------------------------+ | Number of received USM's | +---------------------------------+ | Number of received Requests | +---------------------------------+ | Number of received Replies | +---------------------------------+ The accumulated counts are unsigned 16-bit integers, and do not overflow (frozen at the value 65535). Detailed Common Function Definitions Page A-14 Return Token Ring I/O Error Statistics Counters A.9 Return Token Ring I/O Error Statistics Counters Name: GTTRIO Code value: 8 This OBSOLETE function returns the accumulated token ring adapter I/O error counts and the time interval over which they were recorded. As an option, the counters can be cleared after reading. Another option permits setting the interval between successive readings of the TMS380 error log, while a third option permits a direct read of the TMS380 error log. Request message format: +----------------+----------------+ | flags | GTTRIO | +----------------+----------------+ | interval (secs) for TMS380 poll | optional word +----------------+----------------+ The bits defined in the sub-function code (flags) are: 7 6 5 4 3 2 1 0 +-------------------------------+ | N | | | | | | R | C | | I | | | | | | C | L | +-------------------------------+ The CL bit is set if the counters are to be cleared after reading. The NI bit is set if a new TMS380 interval is specified in the request. This interval, if present, is expressed in seconds. The RC bit is set to read the current error counters directly from the TMS380 adapter. These values will then be added to the counters (in memory), but the user will receive only the values which were just read from the TMS380 adapter. Detailed Common Function Definitions Page A-15 Return Token Ring I/O Error Statistics Counters Reply message format: +---------------------------------+ | Accumulation time interval (low)| +---------------------------------+ | ditto (high) | +---------------------------------+ | no. of words* | status* | +---------------------------------+ | Line Error Count | +---------------------------------+ | ARI/FCI Error Count | +---------------------------------+ | Burst Error Count | +---------------------------------+ | Receive Congestion Error Count | +---------------------------------+ | Lost Frame Error Count | +---------------------------------+ | Frame Copied Error Count | +---------------------------------+ | Token Error Count | +---------------------------------+ | DMA Parity Error Count | +---------------------------------+ | DMA Bus Error Count | +---------------------------------+ The reply consists of 16-bit words giving the accumulated counts for error statistics. The word count (in the third word) is currently fixed at 0 or 9, and includes only those words following the word count. Some error conditions may result in a truncated reply (only the first three words shown above). The accumulation time is returned in seconds (unsigned value), but if the 'RC' bit was set the accumulation time will contain zero. The accumulated counts are unsigned and do not overflow (frozen at the value 65535). The status byte will contain one of the following values: 0 Success 1 Pending I/O operation to TMS380 has not finished within a reasonable time (time-out) 2 No I/O request has yet been initiated to TMS380 3 The most-recent TMS380 I/O operation resulted in an error 4 No statistics available on an ethernet machine Redirection considerations: If this function has the 'RC' bit set, it must be sent to the ACNET task on a VAX/VMS node. Detailed Common Function Definitions Page A-16 Return Total Packet Count A.10 Return Total Packet Count Name: GTPKTS Code value: 9 This function returns several pieces of information from the target ACNET system. The first is the length of time that the network (ACNET) process has been up and running. The second is the count of the total number of message packets processed during that period. Optionally, this function may also return the cpu type code of the target machine. This function may optionally be transmitted as a USM-type message for use with multicast requests. In this case, the "reply" will be returned via a USM-type message after a variable time delay. Request message format: +----------------+----------------+ | flags | GTPKTS | +----------------+----------------+ | Task name for USM "reply" | optional | (4 bytes) | +----------------+----------------+ | USM Delay Factor | optional +----------------+----------------+ | USM Delay Modulo | optional +----------------+----------------+ The bits defined in the sub-function code (flags) are: 7 6 5 4 3 2 1 0 +-------------------------------+ | | | | | | | R | U | | | | | | | | T | M | +-------------------------------+ The RT bit determines whether or not the cpu type code is returned in the reply message. The reply will be delivered via a USM-type message if the following conditions are met: 1. The UM bit is set in the flags byte. 2. The request was delivered to ACNAUX via a USM-type message. 3. All of the required parameters are present: task name, factor, and modulo. 4. The factor and modulo must both be non-zero. A USM-type reply will be delayed in order to prevent the Detailed Common Function Definitions Page A-17 Return Total Packet Count requestor from receiving too many replies all at once. This delay time is computed as follows: delay (msecs) = REMAINDER ((node - 1) * factor / modulo) where 'node' is the node number of the target system. Reply message format: +---------------------------------+ | Count of all | | message packets processed | +---------------------------------+ | Network uptime in msec (low) | +---------------------------------+ | ditto (middle) | +---------------------------------+ | ditto (high) | +---------------------------------+ ! (optional) cpu type code | +---------------------------------+ The total packet count is returned in a 32-bit longword, and the network uptime is returned as a 48-bit integer. Detailed Common Function Definitions Page A-18 Reassign Logical Nodes A.11 Reassign Logical Nodes Name: ASSIGN Code value: 10. This function is used to re-configure the network after a system has been rebooted or has been transferred to another machine. The function may be given as a Request (results in a status-only reply) or as a USM. Request message format: +----------------+----------------+ | flags | ASSIGN | +----------------+----------------+ | unused | # of entries | +----------------+----------------+ | Format of list or table is | +- -+ | determined by the LF bit | +----------------+----------------+ The bits defined in the sub-function code (flags) are: 7 6 5 4 3 2 1 0 +-------------------------------+ | Trunk | | | | N | R | L | | No. | | | | F | D | F | +-------------------------------+ The LF bit determines whether the system is being presented with an entire configuration table (LF=0) or if the data is in "list format" giving a list of logical node numbers and their new physical node addresses. The NF bit must be set to enable the new-style PNA format (one word per logical node) given below. The formats of the table and list are shown below. Table Format (LF=0): +----------------+----------------+ | PNA of node #0 | +----------------+----------------+ | PNA of node #1 | +----------------+----------------+ ... ... +----------------+----------------+ | PNA of node #n-1 | +----------------+----------------+ If the physical address data is given in table format (LF=0), then the count of entries specifies the number of logical nodes Detailed Common Function Definitions Page A-19 Reassign Logical Nodes which the table represents (the number of words in the table). List Format (LF=1): +----------------+----------------+ | 0's | logical node # | +----------------+----------------+ | PNA for node | +----------------+----------------+ ... ... +----------------+----------------+ | 0's | logical node # | +----------------+----------------+ | PNA for node | +----------------+----------------+ For list format data (LF=1), the count of entries gives the number of double-words in the list (also the number of logical nodes whose addresses are being modified). The physical node address for a logical node determines its mapping to a physical node number (currently) and various flags associated with the logical node. The structure of a PNA word is as follows: +----------------+----------------+ | flags | Phys Node No. | +----------------+----------------+ The bits defined in the PNA flags byte are: 7 6 5 4 3 2 1 0 +-------------------------------+ | | | | T | T | V | U | L | | | | | 11| 8 | X | P | C | +-------------------------------+ o LC -- node is LOCAL o UP -- node is UP o VX -- node is a VAX o T8 -- node has moved to trunk 8 o T11 -- node has moved to trunk 11 If 'T8' is set, the physical node number field will contain the trunk 8 logical node number for the translated node. If 'T11' is set, the physical node number field will contain the trunk 11 logical node number for the translated node. Detailed Common Function Definitions Page A-20 Reassign Logical Nodes Reply Message Format: If the RD bit is on (1), then the new table will be returned as the reply. The returned table will be in the format described for the LF=0 table format (see above). In addition, the ASSIGN command may be used to read the table if RD=1 and the number of entries is set to 0. If RD=0 then a status-only reply results. Reply Status Values: - NONODE - warning, one or more of the logical nodes listed are unknown. - BADVAL - failure, physical node number is out of the range. Detailed Common Function Definitions Page A-21 Eliminate Outstanding Requests And/or Replies A.12 Eliminate Outstanding Requests And/or Replies Name: KILLER Code value: 11. This function is used to terminate outstanding requests and/or replies on a node. The function provides a list of trunk and node numbers which are the destinations of requests made from this node or of replies generated from this node. The term, "this node", refers to the destination of KILLER request. The KILLER function should normally be sent as a USM multicast/broadcast message, as there is no reply from this function. Request message format: +----------------+----------------+ | 2 | KILLER | +----------------+----------------+ | unused | count (n) | +----------------+----------------+ | trunk 1 | node 1 | +----------------+----------------+ | trunk 2 | node 2 | +----------------+----------------+ ... ... +----------------+----------------+ | trunk n | node n | +----------------+----------------+ All network operations involving any task on any of the logical nodes in the list are to be terminated. Any requests made to one of these logical nodes are to be (locally) terminated by a simulated DISCON reply. Any requests made from one of these logical nodes are to be (locally) cancelled. These actions are meant to simulate (locally) the actions taken when a network user task aborts on an operational system (the network sends DISCON replies and request cancellations to the remote systems). Detailed Common Function Definitions Page A-22 Shutdown Local Network A.13 Shutdown Local Network Name: SHUTUP Code value: 12. This function stops network operations at the destination system. The function may be given as a Request (results in a status-only reply) or as a USM. Note that the reply (if any) only acknowledges receipt of the Request and not that the system has been shutdown. Request message format: +----------------+----------------+ | unused | SHUTUP | +----------------+----------------+ Detailed Common Function Definitions Page A-23 Read/Write DACNET Table A.14 Read/Write DACNET Table Name: DACTAB Code value: 13. This function will read or write the configuration list of DACNET nodes. The first word of this table contains the trunk/node number for DACNET controlling trunk 200. The second word contains the trunk/node number for DACNET controlling trunk 201. Up to two words are returned on a read request. Request message format: +----------------+----------------+ | flags | DACTAB | +----------------+----------------+ | unused | no. entries (N)| < Optional on read +----------------+----------------+ | trunk/node for DACNET 200 | < +----------------+----------------+ < Only if WT | trunk/node for DACNET 201 | < bit set +----------------+----------------+ < The bits defined in the sub-function code (flags) are: 7 6 5 4 3 2 1 0 +-------------------------------+ | W | | | | | | | | | T | | | | | | | | +-------------------------------+ The WT bit is set if the table is being written to the target node. In this case, the user must provide the data as shown above. At this time, the maximum number of entries permitted is two. If the WT bit is not set, the table is being read from the target node. Up to two words will be returned in the reply, but if no entry count is provided, the default is two. Detailed Common Function Definitions Page A-24 Read/Write DACNET Table Reply Message Format: +----------------+----------------+ | trunk/node for DACNET 200 | +----------------+----------------+ | trunk/node for DACNET 201 | +----------------+----------------+ Reply Status Values: - BADVAL - failure, illegal entry count field. Detailed Common Function Definitions Page A-25 Read/Write Ethernet Table A.15 Read/Write Ethernet Table Name: ETHTAB Code value: 14. This function will read or write the ethernet address table. This table consists of 256 16-bit words -- one word for each logical node on the ethernet trunk. Each entry in this table contains the lowest-order two bytes of the ethernet address. The first word corresponds to logical node 0, the second word to logical node 1, and so forth. A zero entry indicates that the logical node is unassigned. The entry for logical node 0 will not contain an ethernet address (it currently contains 0). Up to 256 words will be returned on a read request. Request message format: +----------------+----------------+ | flags | ETHTAB | +----------------+----------------+ | number of entries (N) | < Optional on read +----------------+----------------+ | Entry 0 | < +----------------+----------------+ < | Entry 1 | < +----------------+----------------+ < Only if WT ... ... < bit set +----------------+----------------+ < | Entry N-1 | < +----------------+----------------+ < The bits defined in the sub-function code (flags) are: 7 6 5 4 3 2 1 0 +-------------------------------+ | W | | | | | | | | | T | | | | | | | | +-------------------------------+ The WT bit is set if the table is being written to the target node. In this case, the user must provide the data as shown above. If the WT bit is not set, the table is being read from the target node. Up to 256 words will be returned in the reply, but if no entry count is provided, the default is 256. Detailed Common Function Definitions Page A-26 Read/Write Ethernet Table Reply Message Format: +----------------+----------------+ | Entry 0 | +----------------+----------------+ | Entry 1 | +----------------+----------------+ . . +----------------+----------------+ | Entry n-1 | +----------------+----------------+ Reply Status Values: - BADVAL - failure, illegal entry count field. Detailed Common Function Definitions Page A-27 Read/Write Multicast Table A.16 Read/Write Multicast Table Name: CASTAB Code value: 15. This function will read or write the configuration list of multicast addresses. This table consists of 16 6-byte multicast addresses which correspond to logical nodes 255-240. Currently, all trunks share this table -- there is no distinction, for example, between trunk 0 node 250 and trunk 8 node 250. The addresses are not bit-reversed, and the byte ordering is little-endian. Request message format: +----------------+----------------+ | flags | CASTAB | +----------------+----------------+ | unused | No. entries | < Optional on read +----------------+----------------+ | Entry for node 255 | < +----------------+----------------+ < | Entry for node 254 | < +----------------+----------------+ < Only if WT ... ... < bit set +----------------+----------------+ < | Entry for node 240 | < +----------------+----------------+ < Each entry consist of a 6-byte multicast address (or zero) in the format described above. A variable number of entries may be provided if writing the table. The entry count field, which is stored in the third byte, must contain a value in the range 0-16. The bits defined in the sub-function code (flags) are: 7 6 5 4 3 2 1 0 +-------------------------------+ | W | | | | | | | | | T | | | | | | | | +-------------------------------+ The WT bit is set if the table is being written to the target node. In this case, the user must provide the data as shown above. If the WT bit is not set, the table is being read from the target node. Up to 16 entries will be returned in the reply, but if no entry count is provided, the default is 16. A zero value in an entry means that no multicast address has been mapped to the corresponding node. Detailed Common Function Definitions Page A-28 Read/Write Multicast Table Reply Message Format: +----------------+----------------+ | Entry for node 255 | +----------------+----------------+ | Entry for node 254 | +----------------+----------------+ . . +----------------+----------------+ | Entry for node 256-n | +----------------+----------------+ Reply Status Values: - BADVAL - failure, illegal entry count field. Detailed Common Function Definitions Page A-29 Set Multicast-Group-Functional Address A.17 Set Multicast-Group-Functional Address Name: SETMGF Code value: 16. This function is used to set/clear the recognized multicast addresses (ethernet) or group/functional addresses (token ring). There are two different formats for this function, depending on whether the target node is on ethernet or token ring. Request message format for TOKEN RING: +----------------+----------------+ | flags | SETMGF | +----------------+----------------+ | 4-byte group | + or + | functional address | +----------------+----------------+ The bits defined in the sub-function code (flags) are: 7 6 5 4 3 2 1 0 +-------------------------------+ | E | | | | | | G | F | | N | | | | | | P | N | +-------------------------------+ EN Must be clear for token ring GP Set to 1 for group address FN Set to 1 for functional address Obviously, either GP or FN must be set in the flags (but not both). Request message format for ETHERNET: +----------------+----------------+ | flags | SETMGF | +----------------+----------------+ | unused | No. entries (N)| +----------------+----------------+ | Entry 1 | +----------------+----------------+ | Entry 2 | +----------------+----------------+ ... ... +----------------+----------------+ | Entry N | +----------------+----------------+ The entry count field is stored in the third byte of the message. Detailed Common Function Definitions Page A-30 Set Multicast-Group-Functional Address Each entry contains a 6-byte ethernet multicast address to add or delete (depending on the DL flag bit). The bits defined in the sub-function code (flags) are: 7 6 5 4 3 2 1 0 +-------------------------------+ | E | | | | | | | D | | N | | | | | | | L | +-------------------------------+ EN Must be set for ethernet DL Set for delete (otherwise add) NOTE This function must be sent only to the ACNET task on a VAX/VMS system. Reply Status Values: - BADVAL - illegal flag bits, illegal count field, or request contains wrong number of bytes. Detailed Common Function Definitions Page A-31 Read/Write IP Address Table A.18 Read/Write IP Address Table Name: IPTAB Code value: 17. This function will read or write one of the IP address tables. There is one table for every ACNET trunk that supports the IP protocol. Each table consists of 256 32-bit longwords -- one longword for each logical node on the IP trunk. Each entry in this table contains a complete 4-byte IP address in VAX byte order. The first longword corresponds to logical node 0, the second word to logical node 1, and so forth. A zero entry indicates that the logical node is unassigned. The entry for logical node 0 will not contain an IP address (it currently contains 0). Up to 256 longwords will be returned on a read request. As an option, the caller may request a single entry for a specific node. Request message format: +----------------+----------------+ | flags | IPTAB | +----------------+----------------+ | number of entries (N) or node # | < Optional on read +----------------+----------------+ | Entry 0 | < +----------------+----------------+ < | Entry 1 | < +----------------+----------------+ < Only if WT ... ... < bit set +----------------+----------------+ < | Entry N-1 | < +----------------+----------------+ < The bits defined in the sub-function code (flags) are: 7 6 5 4 3 2 1 0 +-------------------------------+ | W | R | | | | Trunk | | T | S | | | | Offset | +-------------------------------+ The Trunk Offset is a 3-bit value which is added to 9 to equal the trunk number of the correct IP table. This means that trunk numbers 9 through 16 are reserved for IP communications. The WT bit is set if the table is being written to the target node. In this case, the user must provide the data as shown above. If the RS bit is set, the entry for a single node is being read. The desired node number must be supplied in the low-order byte of the second word in the request. The high-order byte of this word must contain zero. Only one longword will be returned. Detailed Common Function Definitions Page A-32 Read/Write IP Address Table If neither the WT or RS bits are set, the table is being read from the target node. Up to 256 longwords will be returned in the reply, but if no entry count is provided, the default is 256. Reply Message Format: +----------------+----------------+ | Entry 0 | +----------------+----------------+ | Entry 1 | +----------------+----------------+ . . +----------------+----------------+ | Entry n-1 | +----------------+----------------+ Reply Status Values: - BADVAL - failure, illegal entry count field or a trunk offset that has not yet been implemented. APPENDIX B Detailed RSX-11M Function Definitions This appendix describes each ACNET Level II function specific to RSX-11M in greater detail than the simple listing of the functions given in Chapter 1. The format of each Request (or USM) message and each Reply message (if any) is described. Numeric values for the function codes are given. Specific reply status codes associated with special conditions for the functions are listed. Reply status codes that are common to all network messages, such as SUCCESS, ENDMLT, NONODE, etc., are not listed as they usually have no special meaning beyond their normal network usage. WARNING The actual structure of some of the requests and the reply data may change due to implementation details. All the RSX-11M specific functions must be sent to ACNAUX rather than ACNET. No redirection is provided at this time for RSX-11M nodes. Detailed RSX-11M Function Definitions Page B-2 RSX11M - Return Input Switch Settings B.1 RSX11M - Return Input Switch Settings Name: GSWINP Code value: -1 (FF hex) This function returns input switches from the Lights and Switches Interface card. Request message format: +----------------+----------------+ | 0 | GSWINP | +----------------+----------------+ Reply message format: +---------------------------------+ | Input Switch Settings | +---------------------------------+ Reply Status Values: - RPYTRUNC - warning, reply message truncated to fit user's buffer. Detailed RSX-11M Function Definitions Page B-3 RSX11M - Return Current Date And Time B.2 RSX11M - Return Current Date And Time Name: GTIMDT Code value: -2 (FE hex) This function returns the current date and time from an RSX-11M system. Request message format: +----------------+----------------+ | 0 | GTIMDT | +----------------+----------------+ Reply message format: +---------------------------------+ | Year (since 1900) | +---------------------------------+ | Month (1-12) | +---------------------------------+ | Day (1-31) | +---------------------------------+ | Hour (0-23) | +---------------------------------+ | Minute (0-59) | +---------------------------------+ | Second (0-59) | +---------------------------------+ | Tick of second | +---------------------------------+ | Clock rate (ticks per second) | +---------------------------------+ The pieces of the date (day, month, and year) and time (hour, minute, second, and fraction of second) are returned in separate words in standard RSX-11M format. The clock rate will be that of the system clock for the RSX-11M system. Reply Status Values: - RPYTRUNC - warning, reply message truncated to fit user's buffer. Detailed RSX-11M Function Definitions Page B-4 RSX11M - Set/clear Global Event Flag B.3 RSX11M - Set/clear Global Event Flag Name: SOCGEF Code value: -3 (FD hex) This function allows an RSX global event flag (event flag numbers 33 through 64) to be set across the network to signal some specific system-wide or network-wide event. The function may be given as a Request or as a USM. Request message format: +----------------+----------------+ | efnaction | SOCGEF | +----------------+----------------+ efnaction 7 6 5 4 3 2 1 0 +---+---+---+---+---+---+---+---+ | | | | |soc| 0 | event flag number | | | | | +---+---+---+---+---+---+---+---+ The high order bit (soc) of the sub-function byte (efnaction) determines whether the specified event flag is set (bit is 1) or cleared (bit is 0). The event flag number is specified in the low order 6 bits of the sub-function byte. Reply message format: +---------------------------------+ | previous setting | +---------------------------------+ The previous setting of the event flag specified is returned (0 if it was clear and 1 if it was set). Reply Status Values: - BADVAL - event flag number not in range 33-64. Detailed RSX-11M Function Definitions Page B-5 RSX11M - Request A Task B.4 RSX11M - Request A Task Name: REQTSK Code value: -4 (FC hex) This function allows the RSX RQST$ directive to be executed over the network. This can invoke an installed (but possibly inactive) task to execute and perform some function. This can include the task's connecting to the network and processing requests directed at itself. The function may be given as a Request or as a USM. Request message format: +----------------+----------------+ | 0 | REQTSK | +----------------+----------------+ | task name | +- -+ | (in Radix-50) | +---------------------------------+ Reply message format: +---------------------------------+ | $DSW (if RQST$ failed) | +---------------------------------+ Reply Status Values: - NOTASK - no such task installed (IE.INS was returned in $DSW). - BADVAL - RQST$ failed (error was not IE.INS), see reply contents. Detailed RSX-11M Function Definitions Page B-6 RSX11M - Send Data To A Task B.5 RSX11M - Send Data To A Task Name: SDAT Code value: -5 (FB hex) This function allows the RSX SDAT$ directive to be executed over the network. This provides a means of sending some information (up to 13 words) to an installed RSX task that is not connected to the network. This function is usually used to invoke some infrequently used special service in the context of a remote RSX system. The function may be given as a Request or as a USM. Request message format: +----------------+----------------+ | word count | SDAT | +----------------+----------------+ | task name | +- -+ | (in Radix-50) | +---------------------------------+ | data words for SDAT$ call | ... ... | (0-13 as given by word count) | +---------------------------------+ Reply message format: +---------------------------------+ | $DSW (if SDAT$ failed) | +---------------------------------+ Reply Status Values: - NOTASK - no such task installed (IE.INS was returned in $DSW). - BADVAL - SDAT$ failed (error was not IE.INS), see reply contents. Detailed RSX-11M Function Definitions Page B-7 RSX11M - Spawn A Task B.6 RSX11M - Spawn A Task Name: SPAWNR Code value: -6 (FA hex) This function is used to spawn an RSX11M task (using the SPWN$ directive). A command line may be included to be passed to the spawned task. The function may be given as a Request (results in a status-only reply) or as a USM. Request message format: +----------------+----------------+ | 0 | SPAWNR | +----------------+----------------+ | task name | +- -+ | (in Radix-50) | +----------------+----------------+ | | byte count | +- -+----------------+ | command line to be queued for | ... the spawned task ... | (79 bytes maximum) | +----------------+----------------+ If no command line is to be queued for the spawned task, then the task name longword should be followed by a word of zero (byte count of zero). Reply message format: +---------------------------------+ | $DSW (if SPWN$ failed) | +---------------------------------+ Reply Status Values: - NOTASK - no such task installed (IE.INS was returned in $DSW). - BADVAL - SPWN$ failed (error was not IE.INS), see reply contents. Detailed RSX-11M Function Definitions Page B-8 RSX11M - Control A Task B.7 RSX11M - Control A Task Name: CTLTSK Code value: -7 (F9 hex) This function is used to control an RSX11M task. The function may be given as a Request (results in a status-only reply) or as a USM. Request message format: +----------------+----------------+ | opcode | CTLTSK | +----------------+----------------+ | task name | +- -+ | (in Radix-50) | +---------------------------------+ The sub-function specifies the operation code of the type of control operation to be performed on the RSX task. The defined operations and their opcode values are: 0 UNSTOP Unstop a task (USTP$) 1 RESUME Resume a task (RSUM$). 2 ABORT Abort a task (ABRT$). Reply message format: +---------------------------------+ | $DSW (if SPWN$ failed) | +---------------------------------+ Reply Status Values: - NOTASK - no such task installed (IE.INS was returned in $DSW). - BADVAL - unknown operation code value. APPENDIX C Detailed VAX/VMS Function Definitions This appendix describes each ACNET Level II function specific to VAX/VMS in greater detail than the simple listing of the functions given in Chapter 1. The format of each Request (or USM) message and each Reply message (if any) is described. Numeric values for the function codes are given. Specific reply status codes associated with special conditions for the functions are listed. Reply status codes that are common to all network messages, such as SUCCESS, ENDMLT, NONODE, etc., are not listed as they usually have no special meaning beyond their normal network usage. WARNING Some of these functions may not yet be fully implemented. VAX/VMS ACNET supports redirection of these functions from ACNET to ACNAUX. All these functions should thus be sent to ACNET as in several cases the network process will "fill in" values of certain items (see the individual function descriptions below). Detailed VAX/VMS Function Definitions Page C-2 VAX/VMS - Return Current Date And Time C.1 VAX/VMS - Return Current Date And Time Name: GTIMDT Code value: -1 (FF hex) This function returns the current date and time from a VAX system. Request message format: +----------------+----------------+ | format | GTIMDT | +----------------+----------------+ | ticks per second (optional) | +---------------------------------+ The sub-function code specifies the format in which the date and time are to be returned. The recognized values are VAX system time (0), RSX time format (1), and ASCII text (2 or 3). The actual formats are discussed with the formats of the reply messages. Reply message format: For VAX (0) format: +---------------------------------+ | VAX system | +- -+ | time format | +- -+ | | +- -+ | | +---------------------------------+ The quadword reply returns current date and time in VAX system format. This value is in units of 100 nanoseconds offset from the Smithsonian base date and time for the astronomical calendar (00:00 o'clock, November 17, 1858). Detailed VAX/VMS Function Definitions Page C-3 VAX/VMS - Return Current Date And Time For RSX (1) format: +---------------------------------+ | Year (since 1900) | +---------------------------------+ | Month (1-12) | +---------------------------------+ | Day (1-31) | +---------------------------------+ | Hour (0-23) | +---------------------------------+ | Minute (0-59) | +---------------------------------+ | Second (0-59) | +---------------------------------+ | Tick of second | +---------------------------------+ | Clock rate (ticks per second) | +---------------------------------+ In this format, the pieces of the date (day, month, and year) and time (hour, minute, second, and fraction of second) are returned in separate words. The clock rate from the VAX will be 100 ticks per second unless the optional additional word appears in the GTIMDT request. This (optional) word gives the ticks per second value for the returned time in RSX format and will appear as the clock rate in the reply. If the clock rate is specified and does not match the tick rate of the VAX, then the reply may be stalled internally to ACNET or ACNAUX for up to 1 or 2 seconds. This is done to avoid the problem of propagating round-off upwards through minutes, hours, days, etc. by delaying and retrying (internally) until the the calculation does not propogate round-off out of the seconds value. Detailed VAX/VMS Function Definitions Page C-4 VAX/VMS - Return Current Date And Time For TEXT (2) format: +----------------+----------------+ | h1 | h10 | +----------------+----------------+ | m10 | : | +----------------+----------------+ | : | m1 | +----------------+----------------+ | s1 | s10 | +----------------+----------------+ | d10 | (space) | +----------------+----------------+ | - | d1 | +----------------+----------------+ | m2 | m1 | +----------------+----------------+ | - | m3 | +----------------+----------------+ | y1 | y10 | +----------------+----------------+ The reply is an ASCII string of the format "hh:mm:ss dd-mmm-yy" where the month is given as a 3 character abbreviation. Detailed VAX/VMS Function Definitions Page C-5 VAX/VMS - Return Current Date And Time For Alternate TEXT (3) format: +----------------+----------------+ | d1 | d10 | +----------------+----------------+ | m1 | - | +----------------+----------------+ | m3 | m2 | +----------------+----------------+ | y1000 | - | +----------------+----------------+ | y10 | y100 | +----------------+----------------+ | | y1 | +----------------+----------------+ | h1 | h10 | +----------------+----------------+ | m10 | : | +----------------+----------------+ | : | m1 | +----------------+----------------+ | s1 | s10 | +----------------+----------------+ | t10 | . | +----------------+----------------+ | | t1 | +----------------+----------------+ The reply is an ASCII string of the format "dd-mmm-yyyy:hh:mm:ss.tt" where the month is given as a 3 character abbreviation (standard VAX/VMS ASCII date and time format). Note that the "d10" digit will be replaced by a space if the day of the month is less than 10. Reply Status Values: - RPYTRUNC - warning, reply message truncated to fit user's buffer. - ILLFCN - unknown time format value. Notes: The GTIMDT request should be made to ACNET as formats 0 (VAX) and 1 (RSX) are handled internally by ACNET and require less overhead to respond with a more timely answer. Detailed VAX/VMS Function Definitions Page C-6 VAX/VMS - Return Total Packet Count C.2 VAX/VMS - Return Total Packet Count Name: GTPKTS Code value: -2 (FE hex) This function returns two pieces of information from a VAX/VMS ACNET system. The first is the length of time that the network process (NETPROCESS) has been up and running. The other is the count of the total number of message packets processed during that period. NOTE This function is OBSOLETE, since it has been replaced the the Common GTPKTS function described above in Appendix A. Request message format: +----------------+----------------+ | 0 | GTPKTS | +----------------+----------------+ Reply message format: +---------------------------------+ | Count of all | +- -+ | message packets processed | +----------------+----------------+ | Time interval since | +- -+ | VAX/VMS ACNET started | ... ... | | | +----------------+----------------+ The up time interval is returned as a text string in VAX/VMS delta-time format, "dddd hh:mm:ss.ss". Detailed VAX/VMS Function Definitions Page C-7 VAX/VMS - Return Text Of A VMS System Message C.3 VAX/VMS - Return Text Of A VMS System Message Name: GTSMSG Code value: -3 (FD hex) This function returns the system message text for a VMS 32-bit status code. Request message format: +----------------+----------------+ | flag bits | GTSMSG | +----------------+----------------+ | status | +- -+ | code | +---------------------------------+ The longword contains the 32-bit VMS status code to be returned as an ASCII text string. The flag bits (in the sub-function code) select which fields will appear in the returned text (facility, severity, ident and text): 7 6 5 4 3 2 1 0 +---+---+---+---+---+---+---+---+ | | | | | f | s | i | t | | | | | | a | e | d | e | | | | | | c | v | e | x | | | | | | i | e | n | t | | | | | | l | r | t | | +---+---+---+---+---+---+---+---+ For further information see the description of the VMS $GETMSG system service. Reply message format: +----------------+----------------+ | | byte count | +- -+----------------+ | | ... message ... | text | +- -+ | | +----------------+----------------+ The reply consists a byte with the count of bytes in the message text following it. The message text bytes contain the ASCII characters of the message text. Note that FAO directives in the message text are not processed as there are no parameter values to be used in their replacement. Detailed VAX/VMS Function Definitions Page C-8 VAX/VMS - Return Text Of A VMS System Message Reply Status Values: - RPYTRUNC - warning, reply message truncated to fit user's buffer. Detailed VAX/VMS Function Definitions Page C-9 VAX/VMS - Return List Of Nodes To Notify C.4 VAX/VMS - Return List Of Nodes To Notify Name: GTCCRL Code value: -4 (FC hex) This function returns a list of logical node numbers such that each ACNET system is represented only once. This information is useful when changing the configuration or performing other operations in which each system must be notified. NOTE This function only applies to nodes on trunk zero. Request message format: +----------------+----------------+ | unused | GTCCRL | +----------------+----------------+ Reply message format: +----------------+----------------+ |logical node no.| # of nodes | +----------------+----------------+ ... ... +----------------+----------------+ |logical node no.|logical node no.| +----------------+----------------+ The list of bytes with the logical node numbers to be notified of configuration changes is preceeded by a byte with the count of the logical nodes in the list. The illustration shows a case where an the list is of an odd number of logical nodes. Reply Status Values: - RPYTRUNC - warning, reply message truncated to fit user's buffer. Detailed VAX/VMS Function Definitions Page C-10 VAX/VMS - Return Physical Node And Trunk C.5 VAX/VMS - Return Physical Node And Trunk Name: GTSUBN Code value: -5 (FB hex) This function is used to request the physical node and trunk number associated with a specified logical node (on trunk zero). A non-zero trunk number will be returned ONLY if logical node zero is specified AND the local trunk is non-zero. Request message format: +----------------+----------------+ | logical node # | GTSUBN | +----------------+----------------+ Reply message format: +----------------+----------------+ | Phys node no. | trunk number | +----------------+----------------+ The lower byte of the reply contains the trunk number (normally 0). The upper byte returns the physical node number corresponding to the logical node specified in the request. If the specified logical node is zero, data for the target node is returned. Detailed VAX/VMS Function Definitions Page C-11 VAX/VMS - Return Physical Node Address Table C.6 VAX/VMS - Return Physical Node Address Table Name: GTPNAS Code value: -6 (FA hex) This function returns a network address translation table indexed by logical node and containing (among other things) the physical node numbers corresponding to each logical node. The table is particularized to the requesting system in that locally supported (on the system) nodes are marked as such. Request message format: +----------------+----------------+ | flags | GTPNAS | +----------------+----------------+ | Phys node no. | src trunk no. | +----------------+----------------+ The bits defined in the sub-function code (flags) are: 7 6 5 4 3 2 1 0 +-------------------------------+ | Trunk | | | | N | | D | | No. | | | | F | | F | +-------------------------------+ The src trunk number is filled in by VAX/VMS ACNET with the value of the source node's trunk. Similarly, the physical node number is filled in from the source physical node number. If the DF ___ flag is set to 1, however, then VAX/VMS ACNET will not fill in these source numbers. The NF bit must be set to enable the new-style PNA format (one word per logical node) given below. The physical node number is used to tailor the returned information for a particular node (logical nodes assigned to that CPU are marked as LOCAL). Reply message format: +----------------+----------------+ | phys node no. | # of nodes | +----------------+----------------+ | PNA of node #0 | +----------------+----------------+ | PNA of node #1 | +----------------+----------------+ ... ... +----------------+----------------+ | PNA of node #n-1 | +----------------+----------------+ Detailed VAX/VMS Function Definitions Page C-12 VAX/VMS - Return Physical Node Address Table The reply message will consist of a byte giving the number of logical nodes to be supported in the configuration table. In addition, another byte is returned with the physical node number of the source. The remainder of the message consists of words with the Physical Node Addresses (PNA's) for the logical nodes. This list should be considered as an array indexed by the logical node number (starting with logical node 0). The reply format is identical with the table format (LF=0) used in the ASSIGN function (see above). The physical node address for a logical node determines its mapping to a physical node number (currently) and various flags associated with the logical node. The structure of a PNA word is as follows: +----------------+----------------+ | flags | Phys Node No. | +----------------+----------------+ The bits defined in the PNA flags byte are: 7 6 5 4 3 2 1 0 +-------------------------------+ | | | | T | T | V | U | L | | | | | 11| 8 | X | P | C | +-------------------------------+ o LC -- node is LOCAL o UP -- node is UP o VX -- node is a VAX o T8 -- node has moved to trunk 8 o T11 -- node has moved to trunk 11 If 'T8' is set, the physical node number field will contain the trunk 8 logical node number for the translated node. If 'T11' is set, the physical node number field will contain the trunk 11 logical node number for the translated node. Reply Status Values: - RPYTRUNC - warning, reply message truncated to fit user's buffer. - BADVAL - error, physical node or trunk number is out of range. Detailed VAX/VMS Function Definitions Page C-13 VAX/VMS - Return Block Of NETCOMMON Memory C.7 VAX/VMS - Return Block Of NETCOMMON Memory Name: MEMDMP Code value: -8 (F8 hex) This function returns a block of the NETCOMMON global section used by VAX/VMS ACNET at the destination node. Request message format: +----------------+----------------+ | 0 | MEMDMP | +----------------+----------------+ | block | +- -+ | offset | +---------------------------------+ | byte count | +---------------------------------+ The byte count is the number of bytes to be return. This must be in the range of 0 to 512 bytes. If a byte count of zero is used, a status-only reply of success is returned and no memory dump is performed. The actual number of bytes returned is rounded up to the next even value (integral number of words is returned) so even byte counts are suggested. The maximum block size request has been limited to 512 bytes so that replies will involve only a single packet. The block offset is the number of bytes from the start of the NETCOMMON global section to the block to be returned. Reply message format: +----------------+----------------+ | byte 1 | byte 0 | +----------------+----------------+ ... ... +----------------+----------------+ | byte N | byte N-1 | +----------------+----------------+ The reply just consists of a copy of the requested block of memory. Reply Status Values: - RPYTRUNC - warning, reply message truncated to fit user's buffer. Detailed VAX/VMS Function Definitions Page C-14 VAX/VMS - Return Block Of NETCOMMON Memory - BADVAL - offset is out of range or byte count is larger than 512. Detailed VAX/VMS Function Definitions Page C-15 VAX/VMS - Return Timeout Age Limit C.8 VAX/VMS - Return Timeout Age Limit Name: GTMOAG Code value: -9 (F7 hex) This function returns one of the age limits used by the timeout processor. The particular limit returned is selected by the sub- function code. Request message format: +----------------+----------------+ | select | GTMOAG | +----------------+----------------+ A particular limit is selected using the sub-function code (select). The allowed values are: 0 Missing packet timeout 1 Queued-request timeout 2 Queued-request timeout (unlocked buffer) Reply message format: +----------------+----------------+ | tick_rate | timeout_age | +----------------+----------------+ The reply consists of the timeout age limit (timeout_age) given in units of network ticks and the network tick rate (tick_rate) in terms of the frequency (ticks per second). Reply Status Values: - BADVAL - timeout select is out of range. Detailed VAX/VMS Function Definitions Page C-16 VAX/VMS - Return VMS Job/process Information C.9 VAX/VMS - Return VMS Job/process Information Name: GTJPI0 Code value: -11 (F5 hex) This function will return VMS job/process information for a process connected to the network. Request message format: +----------------+----------------+ | ?????? | GTJPI0 | +----------------+----------------+ | | +- -+ | | +---------------------------------+ ________ ______ __ _______ ___ _____ _________ __ ____ _____ WARNING: format of request not fully specified at this time. Reply message format: +----------------+----------------+ | 0 | 0 | +----------------+----------------+ ________ ______ __ _____ ___ _____ _________ __ ____ _____ WARNING: format of reply not fully specified at this time. Reply Status Values: - NOTASK - no such task with given network task name connected to node. - RPYTRUNC - warning, reply message truncated to fit user's buffer. - BADVAL - illegal $GETJPI item code. Detailed VAX/VMS Function Definitions Page C-17 VAX/VMS - Return VMS Job/process Information C.10 VAX/VMS - Return VMS Job/process Information Name: GTJPI1 Code value: -12 (F4 hex) This function will return VMS job/process information for any VMS process. Request message format: +----------------+----------------+ | ?????? | GTJPI1 | +----------------+----------------+ | VMS process | +- -+ | identification | +---------------------------------+ ________ ______ __ _______ ___ _____ _________ __ ____ _____ WARNING: format of request not fully specified at this time. Reply message format: +----------------+----------------+ | 0 | 0 | +----------------+----------------+ ________ ______ __ _____ ___ _____ _________ __ ____ _____ WARNING: format of reply not fully specified at this time. Reply Status Values: - NOTASK - no such task with given network task name connected to node. - RPYTRUNC - warning, reply message truncated to fit user's buffer. - BADVAL - illegal $GETJPI item code. Detailed VAX/VMS Function Definitions Page C-18 VAX/VMS - Network Timer Control C.11 VAX/VMS - Network Timer Control Name: TMRCTL Code value: -13 (F3 hex) This function is used to start or stop the timer and timeout processing on a VAX/VMS ACNET system. The function may be given as a Request (results in a status-only reply) or as a USM. Request message format: +----------------+----------------+ | subfcn | TMRCTL | +----------------+----------------+ The low order bit (ENA) of the sub-function determines whether the VAX/VMS ACNET network timer or timeout processor is to be enabled and restarted if the bit is one (1) or is to be disabled if the bit is zero (0). If the specified state is already in effect, then this function is treated as a NOOP and returns success as the reply status (to a request). The second bit (TMO) of the sub-function determines whether the VAX/VMS ACNET network timer or just the timeout processor is to be enabled or disabled. If bit 1 is on (1), then just the timeout processor is affected otherwise the network timer is also affected (which can stop the resetting of network statistics counters). 7 6 5 4 3 2 1 0 +---+---+---+---+---+---+---+---+ | R | | | | | | T | E | | T | | | | | | M | N | | N | | | | | | O | A | +---+---+---+---+---+---+---+---+ Reply message format: If RTN=0 then no reply message is returned. If RTN=1, then the single word reply returns the internal status bits of VAX/VMS ACNET. The contents of this word are dependent upon the VAX/VMS ACNET implementation. Detailed VAX/VMS Function Definitions Page C-19 Get Alternate Trunk/Node Information C.12 Get Alternate Trunk/Node Information Name: ALTLST Code value: -14 (F2 hex) Many nodes in the ACNET system are "dual-headed" -- they have two separate communication channels (UDP/IP and ethernet, for example). Since the trunk number is associated with a particular communications medium, these dual-headed nodes must be assigned two different trunk/node addresses. This function will accept a list of trunk/node values and will return the list of alternate trunk/node values. For any node which does not have an alternate (or any unknown node) -- zero will be returned. Request message format: +----------------+----------------+ | unused | ALTLST | +----------------+----------------+ | unused | # of entries | +----------------+----------------+ | Trunk 0 | Node 0 | +----------------+----------------+ | Trunk 1 | Node 1 | +----------------+----------------+ . . +----------------+----------------+ | Trunk n-1 | Node n-1 | +----------------+----------------+ Each trunk/node pair occupies one 16-bit word. Reply Message Format: +----------------+----------------+ | Alt Trunk 0 | Alt Node 0 | +----------------+----------------+ | Alt Trunk 1 | Alt Node 1 | +----------------+----------------+ . . +----------------+----------------+ | Alt Trunk n-1 | Alt Node n-1 | +----------------+----------------+ Reply Status Values: - BADVAL - failure, illegal entry count field Detailed VAX/VMS Function Definitions Page C-20 Return Various VAXACNET Values C.13 Return Various VAXACNET Values Name: GTDATA Code value: -15 (F1 hex) This function returns several pieces of information from the target ACNET system. The first is the length of time that the network (ACNET) process has been up and running. The second is the count of the total number of message packets processed during that period. Additional (undocumented) values will be also extracted from NETCOMMON and returned to the caller. Please refer to the module VAXFUNCTS for more information on the current contents of the reply buffer, which may change without notice. This function may optionally be transmitted as a USM-type message for use with multicast requests. In this case, the "reply" will be returned via a USM-type message after a variable time delay. Request message format: +----------------+----------------+ | flags | GTDATA | +----------------+----------------+ | Task name for USM "reply" | optional | (4 bytes) | +----------------+----------------+ | USM Delay Factor | optional +----------------+----------------+ | USM Delay Modulo | optional +----------------+----------------+ The bits defined in the sub-function code (flags) are: 7 6 5 4 3 2 1 0 +-------------------------------+ | | | | | | | | U | | | | | | | | | M | +-------------------------------+ The reply will be delivered via a USM-type message if the following conditions are met: 1. The UM bit is set in the flags byte. 2. The request was delivered to ACNAUX via a USM-type message. 3. All of the required parameters are present: task name, factor, and modulo. Detailed VAX/VMS Function Definitions Page C-21 Return Various VAXACNET Values 4. The factor and modulo must both be non-zero. A USM-type reply will be delayed in order to prevent the requestor from receiving too many replies all at once. This delay time is computed as follows: delay (msecs) = REMAINDER ((node - 1) * factor / modulo) where 'node' is the node number of the target system. Reply message format: +---------------------------------+ | Count of all | | message packets processed | +---------------------------------+ | Network uptime in msec (low) | +---------------------------------+ | ditto (middle) | +---------------------------------+ | ditto (high) | +---------------------------------+ | | | Additional NETCOMMON | | Values | | | +---------------------------------+ The total packet count is returned in a 32-bit longword, and the network uptime is returned as a 48-bit integer. Detailed VAX/VMS Function Definitions Page C-22 VAX/VMS - Set Timeout Age Limit C.14 VAX/VMS - Set Timeout Age Limit Name: STMOAG Code value: -20 (EC hex) This function is used to change a timeout age limit. The function may be given as a Request or as a USM. The particular limit changed is selected by the sub-function code. Request message format: +----------------+----------------+ | select | STMOAG | +----------------+----------------+ | 0 | timeout_age | +----------------+----------------+ A particular limit is selected using the sub-function code (select). The allowed values are: 0 Missing packet timeout 1 Queued-request timeout 2 Queued-request timeout (unlocked buffer) The timeout age (timeout_age) value is expressed in terms of a number of network ticks (50 Hz at this time). A GTMOAG function should be used to determine the current network tick rate before doing a STMOAG to set a timeout age. Reply Status Values: - BADVAL - timeout select is out of range Detailed VAX/VMS Function Definitions Page C-23 VAX/VMS - Spawn A Detached Process C.15 VAX/VMS - Spawn A Detached Process Name: SPAWNS Code value: -21 (EB hex) This function is used to create a detached process on a VAX/VMS ACNET system. The function may be given as a Request or as a USM. Request message format: +----------------+----------------+ | select | SPAWNS | +----------------+----------------+ The sub-function field is a selection code used to index into the list of allowable processes that may be spawned. Each allowable process is defined by a record in a disk file. Reply format: +---------------------------------+ | -1 | +---------------------------------+ | VMS process | +- -+ | identification | +---------------------------------+ | Termination | +- -+ | status | +---------------------------------+ This reply is sent when the detached process terminates. The ___ reply returns the VMS process id that was used for the detached process and the 32-bit VMS termination status. This is the only reply sent if MULTRPY is not set for the Request. +---------------------------------+ | 0 | +---------------------------------+ | VMS process | +- -+ | identification | +---------------------------------+ If MULTRPY is set for the Request, then this reply is sent when the detached process has been created. VMS requires approximately an additional second or so to complete the creation of the detached process, load its image, and start the detached process. Detailed VAX/VMS Function Definitions Page C-24 VAX/VMS - Spawn A Detached Process Reply Status Values: - BADVAL - unknown process selection code. Detailed VAX/VMS Function Definitions Page C-25 VAX/VMS - Control A Detached Process C.16 VAX/VMS - Control A Detached Process Name: CTLPRC Code value: -22 (EA hex) This function is used to control a detached process on a VAX/VMS ACNET system. The function may be given as a Request or as a USM. Request message format: +----------------+----------------+ | opcode | CTLPRC | +----------------+----------------+ | VMS process | +- -+ | identification | +---------------------------------+ The sub-function specifies the operation code of the type of control operation to be performed. The provided operations and their code values are: 0 WAKE Awaken hibernating process. 1 RESUME Resume execution of a suspended process. 2 SUSPEND Suspend a process. 3 FORCEXIT Force the executing image to exit. 4 DELETE Delete the process. The additional longword must contain the VMS process identification on which the control operation is to be performed. Reply Status Values: - BADVAL - unknown operation code value.