[ Previous | Next | Contents | Home | Search ]
AIX Version 4.3 Kernel Extensions and Device Support Programming Concepts

MPQP Device Handler Interface Overview

The Multiprotocol Quad Port (MPQP) device handler is a component of the communication I/O subsystem. The MPQP device handler interface is made up of the following eight entry points:

mpclose Resets the MPQP device to a known state and returns system resources back to the system on the last close for that adapter. The port no longer transmits or receives data.
mpconfig Provides functions for initializing and terminating the MPQP device handler and adapter.
mpioctl Provides the following functions for controlling the MPQP device:
CIO_ST ART Initiates a session with the MPQP device handler.
CIO_HALT Ends a session with the MPQP device handler.
CIO_QU ERY Reads the counter values accumulated by the MPQP device handler.
CIO_GET_STATUS Gets the status of the current MPQP adapter and device handler.
MP_START_AR Puts the MPQP port into Autoresponse mode.
MP_STOP_AR Permits the MPQP port to exit Autoresponse mode.
MP_CHG_PARMS Permits the data link control (DLC) to change certain profile parameters after the MPQP device has been started.
mpopen Opens a channel on the MPQP device for transmitting and receiving data.
mpmpx Provides allocation and deallocation of a channel.
mpread Provides the means for receiving data to the MPQP device.
mpselect Provides the means for determining which specified events have occurred on the MPQP device.
mpwrite Provides the means for transmitting data to the MPQP device.

Binary Synchronous Communication (BSC) with the MPQP Adapter

The MPQP adapter software performs low-level BSC frame-type determination to facilitate character parsing at the kernel-mode process level. Frames received without errors are parsed. A message type is returned in the status field of the extension block along with a pointer to the receive buffer. The message type indicates the type of frame that was received.

For control frames that only contain control characters, the message type is returned and no data is transferred from the board. For example, if an ACK0 was received, the message type MP_ACK0 is returned in the status field of the extension block. In addition, a NULL pointer for the receive buffer is returned. If an error occurs, the error status is logged by the device driver. Unlogged buffer overrun errors are an exception.

Note: In BSC communications, the caller receives either a message type or an error status.

Read operations must be performed using the readx subroutine since the read_extension structure is needed to return BSC function results.

BSC Message Types Detected by the MPQP Adapter

BSC message types are defined in the /usr/include/sys/mpqp.h file. The MPQP adapter can detect the following message types:

MP_ACK0 MP_DISC MP_STX_ETX
MP_ACK1 MP_SOH_ITB MP_STX_ENQ
MP_WACK MP_SOH_ETB MP_DATA_ACK0
MP_NAK MP_SOH_ETX MP_DATA_ACK1
MP_ENQ MP_SOH_ENQ MP_DATA_NAK
MP_EOT MP_STX_ITB MP_DATA_ENQ
MP_RVI MP_STX_ETB

BSC Receive Errors Logged by the MPQP Adapter

The MPQP adapter detects many types of receive errors. As errors occur they are logged and the appropriate statistical counter is incremented. The kernel-mode process is not notified of the error. The following are the possible BSC receive errors logged by the MPQP adapter:

If status and data information are available, but no extension block is provided, the read operation returns the data, but not the status information.

Note: Errors, such as buffer overflow errors, can occur during the read data operation. In these cases, the return value is the byte count. Therefore, status should be checked even if no errno global value is returned.

Description of the MPQP Card

The MPQP card is a 4-port multiprotocol adapter that supports BSC and SDLC on the EIA232-D, EIA422-A, X.21, and V.35 physical interfaces. When using the X.21 physical interface, X.21 centralized multipoint operation on a leased-circuit public data network is not supported. The MPQP card uses the microchannel bus to communicate with the adapter programmed I/O (PIO) and first party DMA (bus master).

The adapter has 512K bytes of RAM and an Intel 80C186 processor. There are 16 dedicated DMA channels between the RAM and the physical ports. The drivers and receivers for each of the electrical interfaces reside on a daughter board that is joined to the base card with two 60-pin connectors.

A shielded cable attaches to the 78-pin D-shell connector on the daughter board and routes all signals to a fan-out box (FOB). The FOB has nine standard connectors that support each possible configuration on each port. Standard 15-pin or 25-pin cables are used between the FOB and the modem for each electrical interface.

The following are the interfaces available on each port :

Port Configurations
Number Port-0 Port-1 Port-2 Port-3
1 EIA-232D EIA-232D EIA-232D EIA-232D
2 EIA-422A EIA-232D EIA-232D EIA-232D
3 V.35 EIA-232D EIA-232D V.35 EIA-232D EIA-232D EIA-232D EIA-232D
4 X.21 EIA-232D EIA-232D EIA-232D
5 EIA-422A V.35 EIA-232D EIA-232D
6 V.35 V.35 EIA-232D EIA-232D
7 X.21 V.35 EIA-232D EIA-232D
8 EIA-232D EIA-232D EIA-422A EIA-232D
9 EIA-422A EIA-232D EIA-422A EIA-232D
10 V.35 EIA-232D EIA-232D V.35 EIA-422A EIA-422A EIA-232D EIA-232D
11 X.21 EIA-232D EIA-422A EIA-232D
12 EIA-422A V.35 EIA-422A EIA-232D
13 V.35 V.35 EIA-422A EIA-232D
14 X.21 V.35 EIA-422A EIA-232D
Port 0 EIA232-D, EIA422-A, X.21, and V.35. This port has the highest DMA priority. The EIA-422A interface on this port has data and clock signals.
Port 1 EIA232-D and V.35.
Port 2 EIA232-D and EIA422-A (data only). The EIA-422A interface on Port 2 only has data signals.
Port 3 EIA232-D. This port has the lowest priority.

The following modem interfaces are supported by each physical interface:

Call Establishment Protocol
Physical Interface Leased Manual Switched Autodial
EIA232-D X X X
EIA422-A X

V.35 X

X.21 X
X*

* Adheres to CCITT X.21 dial specifications.

Related Information

The readx subroutine.

MPQP Error Identifiers for the Error Log in AIX Problem Solving Guide and Reference.

The mpconfig MPQP device handler entry point, mpwrite MPQP device handler entry point, mpread MPQP device handler entry point, mpmpx MPQP device handler entry point, mpopen MPQP device handler entry point, mpselect MPQP device handler entry point, mpclose MPQP device handler entry point, mpioctl MPQP device handler entry point.


[ Previous | Next | Contents | Home | Search ]