EDOC410
MIDAS Tape Server - RPC Program Specification and Implementation
Edition 2.0
May 1998
Nuclear Physics Support Group
Central Laboratory of the Research Councils
Daresbury Laboratory
Introduction
This document describes the Euroball Tape Server (EGTS) RPC program specification used by the Euroball data acquisition system.
It is an merging of two previous Eurogam documents (EDOC020 which describes the general Network Tape System (NTS) and EDOC097 which describes the extensions of EDOC020 used by the Eurogam Tape Server). Those parts of the program specification described in EDOC020 which are not used by EGTS by the Eurogam and Euroball Tape Servers have been removed for clarity.
It is intended that this protocol be available over a number of communications media and hence the relevant Communications Protocol specification document should be consulted for detail in this area.
This protocol is an application carried by the RPC protocol which is described in the Eurogam document Remote Procedure Call.
The general structure of the protocol is described in the Eurogam document RPC Application Programs.
History
Edition 1.0 Sept 1990 - first version. Produced by merging EDOC020 Version 3.0 and EDOC097 Version 2.0.
Edition 2.0 - this version. Produced by merging EDOC304 Version 1.0 and EDOC305 Version 1.0
to form a combined document in HTML format only. Operation
Also contains procedure 31 which was previously EDOC315 and EDOC235.
Version 2.0 of the document corresponds to version 4 of the program protocol.
Use
Throughout this document capability is an 8 byte (64 bit) opaque field generated by the server and used by the client as an access token.
Overview
The Eurogam Tape Server controls the routing of event-by-event data received from the Event Builder (via ethernet or fddi) to one or more data storage devices (normally Exabyte tapes).
The data acquisition system permits a number of data streams to be generated within the Event Builder (currently this number is limited to 4). As an example of the use of multiple data streams it is possible for one stream to contain all good data; a second stream to contain a selected set of that data already output to the first stream (say events having multiplicity greater than 10) and a third stream to contain all bad events and data rejected by the event builder. This final stream can be used by engineers to diagnose faults in the hardware.
A number of storage devices are permitted. The control graphics interface is currently limited to 8 active devices but this is easily extended. The Tape Server implementation is at present limited to a total of 14 tape devices but can in addition support data devices to file on disc plus any number of test/diagnostic devices. Tape devices are normally exabyte tape but other scsi tape devices such as DAT and DLT have also been used.
The input data streams are routed to output devices by a method allowing each data stream to be routed to one or more output device clusters (if more than one this is data duplication). Each device cluster consists of one or more output devices (if more than one this is data striping).
Procedures are provided to inquire and manage the state of each input data stream, each output device and the state of the server within the data acquisition system. The tape server procedures are the atomic units of access from the user interface. UNIX command line programs are available which correspond to each procedure. However these are intended mainly as a test and diagnostic aid. The primary user interface is from the control graphics which can as required implement macro actions (for example detect and automatically change tapes as the end is reached).
The Tape Server monitors the error retry rate for Exabyte drives as a function of the output data rate and issues warnings if this rate exceeds specified limits.
Program Specification
RPC Information
The EGTS service uses only the Null authentication
EGTS is supported on the UDP/IP transport only
EGTS is RPC Program 28000205
This is Version 4 of the protocol
EGTS uses UDP port number 10205
State Variables
0 |
dev_unalloc |
1 |
dev_alloc |
2 |
dev_mounting |
3 |
dev_mount |
4 |
dev_opening |
5 |
dev_open |
6 |
dev_closing |
7 |
dev_executing |
8 |
dev_initialising |
9 |
dev_identifying |
10 |
dev_putting |
11 |
dev_moving |
16 |
dev_err |
Procedure Status
0 |
OK |
2 |
egtserr_unknown |
8 |
egtserr_cap |
13 |
egtserr_state |
14 |
egtserr_inuse |
15 |
egtserr_inv |
16 |
egtserr_nostrm |
Procedure Summary
0 |
null procedure | [go] |
1 |
not used by EGTS |
  |
2 |
mount volume | [go] |
3 |
open file | [go] |
4 |
not used by EGTS |
  |
5 |
not used by EGTS |
  |
6 |
not used by EGTS |
  |
7 |
inquire device status | [go] |
8 |
close file | [go] |
9 |
dismount volume | [go] |
10 |
deallocate device | [go] |
11 |
not used by EGTS |
  |
12 |
inquire stream status | [go] |
13 |
initialise volume | [go] |
14 |
identify volume | [go] |
15 |
not used by EGTS |
  |
16 |
inquire available devices | [go] |
17 |
not used by EGTS |
  |
18 |
move tape | [go] |
19 |
position tape changer | [go] |
20 |
inquire element status | [go] |
21 |
not used by EGTS |
  |
22 |
not used by EGTS |
  |
23 |
allocate device | [go] |
24 |
claim EGTS | [go] |
25 |
free EGTS | [go] |
26 |
set EGTS state | [go] |
27 |
inquire EGTS status | [go] |
28 |
associate EGTS data stream | [go] |
29 |
inquire EGTS data stream association | [go] |
30 |
inquire EGTS stream state | [go] |
31 |
event-by-event data transfer | [go] |