gtpm3m0d | Multi-Processor Interconnect Facility Reference |
This section describes the requirements for a user of MPIF, how a user can request MPIF services, and what data can be passed in requests.
MPIF provides services to a restricted set of users. These users should be system programs or system support programs, not application programs. MPIF users have the following profile:
MPIF requests can be issued using macros or operator commands, which are summarized below.
The MPIFC macro is provided to allow MPIF users to request the following services:
This macro can be executed from an ECB driven program (E-type program) or a control program module (C-type program). C-type programs executing this macro must be aware of what address space they are running in.
MPIF provides commands for the operator to define and display status for resources such as paths and time-out intervals. All MPIF operator commands are prefixed with the action code ZMPIF and follow TPF conventions for commands. Some differences are:
Commands are provided to:
See TPF Operations for detailed descriptions of these commands.
This section describes the data that can be passed in the various MPIF requests.
A name can consist of one to 8 EBCDIC characters, left-justified in any 8-character field it might be contained in. A null always consists of eight blank characters. Exceptions are stated in the specific name description.
There are four types of names:
MPIF knows the logical name of each system in the MPIF complex by the SET command, a DEFINE PATH command, or Path startup. This information is available to MPIF users on request (see the QUERY parameter on the MPIFC macro).
All MPIF users issuing an IDENTIFY request type (see the MPIFC macro) are made known to each MPIF system. Each MPIF system maintains a directory of all the identified users in the MPIF complex (those users that are currently accessible). This distributed directory is updated when MPIF users identify themselves, execute a MPIFC forget request, or when the connection to a system is lost.
One MPIF user can request a connection to another user specifying user names in either of two ways:
All MPIF paths defined with the DEFINE PATH operator command are given a name for identification purposes. A path's name is provided when an action is to be performed on a path such as re-defining parameters for the path (DEFINE PATH), starting a path (START PATH), or stopping a path (STOP PATH).
Generic names are used in MPIF to provide the capability to group paths by CTC addresses for START and STOP path commands. For example, all active paths through a specific 3088 MCCU or an ESCON CTC are grouped under the generic name. Generic names are in the format $n, where:
$ - is used to indicate a generic name n - can be one to seven characters
The following 32-bit tokens are used in various MPIF requests. They
are used for efficient interfacing between MPIF and MPIF users without, in
most cases, defining what the value actually is.
Table 1. MPIF Token Definitions
Token | Created by | Description | |
---|---|---|---|
User | MPIF | ||
UITOK | x | Given to MPIF via an IDENTIFY.
Kept by MPIF and given to user exits. This optional token is defined by the user. It might serve as a pointer to a primary control record or table. | |
IDTOK | x | Given to user on return from an IDENTIFY request.
Kept by user and given to MPIF via MPIF connection functions. Associates the user with MPIF resources used for the user and is required for other MPIF functions. | |
UCTOK | x | Given to MPIF via a CONNECT or ACCEPT request.
Kept by MPIF and given to user exits. This optional token can serve as a pointer to a secondary control record that represents a subfunction or connection. UCTOK might be converted to the assigned CONTOK which can vary when the connection is re-established due to failures or normal procedures. | |
CONTOK | x | Given to user via a connect request or connect completion exit.
Kept by user and given to MPIF via the MPIFC macro. This token associates a request with a logical connection represented by a connection control block. |