pn-174 Packet type code assignments Vicky White December 7 1982 Packet type codes are used as the destination identifier of a message, in Fermilab communications software. A packet type code is therefore associated with a certain class of messages, related to a specific function in a system. This document lists the system wide assignments of packet type codes to specific functions. Packet type code assignments Page 2 1.0 INTRODUCTION - USE OF PACKET TYPE CODES Packet type codes are used as the destination identifier of a message, in Fermilab communications software. A packet type code is therefore associated with a certain class of messages, related to a specific function or application in a system. A program declares ownership of a packet type code (PTC) or several PTCs, indicating that it wishes to receive all messages with that PTC. For each distinct link only one program (or sub-part of a program for RT-11) may own a particular PTC at any instant. Programs may send messages with any PTC. Some system-wide assignments of packet type codes (PTCs) have already been made. System-wide packet type code values will be used for the same function under all operating systems (RSX-11M, RT-11 and VMS). Using packet type codes in this way means that a program which sends or receives messages of a particular type, need have no knowledge of which operating system the machine at the other end of a link is running. The messages themselves will have their own application dependent structures and protocols for each PTC. For example a packet type code value of 3 is used systemwide for messages relating to requests for events to be sent for analysis. Any analysis program, e.g. RT-MULTI or RSX-MULTI or any other RSX analysis program, sends off request messages with packet type code 3. When the data acquisition machine is operating under RT-11, a part of the RT-MULTI data acquisition system handles these requests and provides buffers of events for an analysis program in a linked machine. It sends event buffers in reply to requests, wherever these requests may have Packet type code assignments Page 3 originated. When the data acquisition machine is operating under RSX-11M requests for events are handled by the RSX task GTEVNT, which supplies events to analysis programs either over a physical DR11-W link or pseudo-link. The packet type code used by the analysis program receiving the events may take any legal value. Part of the internal format of a request message with packet type code 3 is to specify the packet type code to be used for the reply. Packet type code assignments Page 4 2.0 SYSTEM-WIDE PACKET TYPE CODES The following packet type code assignments have been made so far: 1 Event Concatenator. Receives part-events from one or more data acquisition machines. Combines them together into a complete event, ready to be logged to tape. 2 Link logger. Sends part-events on the request of an event concatenator. 3 Analysis event sender. Receives requests for events or buffers of events and sends them to the requester. 4 RT-MULTI link analysis receiver. Normally used as the particular packet type code for the analysis program, in the case of RT-MULTI. 5 Run Control 6 Error Logging 7 Remote Camac access Packet type code assignments Page 5 8 Remote File access 9 Remote RSX MCR 3.0 PRIVATE PACKET TYPE CODES Please use values between 100 and 255 for your own program's packet type codes. Any value may be chosen for the packet type code of messages which your program wishes to receive, provided that it does not conflict with those chosen by another program running at the same time on the same link. The values for packet type codes do not necessarily have to be the same each time a program is run. For example, your program may make a service request to a piece of system software, such as requesting a block of events for analysis. The request message must contain the packet type code you have chosen as the reply message packet type code. If you are designing an application where several tasks communicate with each other, you will need to use some fixed assignment of packet type codes within your own application. Co-ordinated system design is needed in this case to avoid conflicts in the use of packet type codes. Both the RT-11 and RSX-11M drivers will ensure that only one task, or one sub-part of a program may own a particular packet type code.