CIO_START (Start Device) tsioctl PCI MPQP Device Handler Operation

Purpose

Starts a session with the IBM® ARTIC960Hx PCI (PCI MPQP) device handler.

Description

The CIO_START operation registers a network ID in the network ID table and establishes the physical connection with the PCI MPQP device. Once this start operation completes successfully, the port is ready to transmit and receive data.

Note: The CIO_START operation defines the protocol- and configuration-specific attributes of the selected port. All bits that are not defined must be set to 0 (zero).

For the PCI MPQP CIO_START operation, the extptr parameter points to a t_start_dev structure. This structure contains pointers to the session_blk structure.

The session_blk structure contains the netid and status fields. The t_start_dev device-dependent information for an PCI MPQP device follows the session block. All of these structures can be found in the /usr/include/sys/mpqp.h file.

The CIO_START operation functions with a 4-Port Multiprotocol Interface adapter that has been correctly configured for use on a qualified network. Consult adapter specifications for more information on configuring the adapter and network qualifications.

t_start_dev Fields

The t_start_dev structure contains the following fields:

Item Description
phys_link Indicates the physical link protocol. Only one type of physical link is valid at a time. The supported values are:
Physical Link
Type
PL_232D
EIA-232D
PL_V35
V.35
PL_X21
X.21
Note: When using the X.21 physical interface, X.21 centralized multiport (multidrop) operation on a leased-circuit public data network is not supported.
dial_proto The dial_proto field is ignored.
data_proto Identifies the possible data protocol selections during the data transfer phase. The data_flags field has different meanings depending on what protocol is selected. The data_proto field accepts the following values:
DATA_PRO_BSC
Indicates a bisync protocol.
DATA_PRO_SDLC_FDX
Indicates receivers enabled during transmit.
DATA_PRO_SDLC_HDX
Indicates receivers disabled during transmit.
modem_flags Establishes modem characteristics. This field accepts the following values:
MF_AUTO
Indicates that the call is to be answered or dialed automatically.
MF_CALL
Indicates an outgoing call.
MF_LEASED
Indicates a leased telephone circuit.
MF_LISTEN
Indicates an incoming call (switched only).
MF_MANUAL
Indicates that the operator answers or dials the call manually.
MF_SWITCHED
Indicates a switched telephone circuit.
Note: Since each of these modem chracteristics are handled by the modem, the driver actually determines connection status in the same way, no matter what value is set in the modem_flags field. When the CIO_START ioctl is executed, the DTR signal is asserted and an active connection is reported when an active DSR signal is detected.
poll_addr Identifies the address-compare value for a Binary Synchronous Communication (BSC) polling frame or an Synchronous Data Link Control (SDLC) frame. If using BSC, a value for the selection address must also be provided or the address-compare is not enabled. If a frame is received that does not match the poll address (or select address for BSC), the frame is not passed to the system.
select_addr Specifies a valid select address for BSC only.
modem_int_mask Reserved. This value must be 0.
baud_rate This value should be set to 0 to indicate the port is to be externally clocked (that is, use modem clocking).
rcv_timeout Indicates the period of time, expressed in 100-msec units (0.10 sec), used for setting the receive timer. The PCI MPQP device driver starts the receive timer whenever the CIO_START operation completes and a final transmit occurs.

If a receive occurs that is not a receive final frame, the timer is restarted. The timer is stopped when the receive final occurs. If the timer expires before a receive occurs, an error is reported to the logical link control (LLC) protocol. After the CIO_START operation completes, the receive time out value can be changed by the MP_CHG_PARMS operation. A value of zero indicates that a receive timer should not be activated.

Final frames in SDLC are all frames with the poll or final bit set. In BSC, all frames are final frames except intermediate text block (ITB) frames.

rcv_data_offset Reserved
dial_data_length Not used.

Flag Fields for Protocols

Flag fields in the t_start_dev structure take different values depending on the type of protocol selected.

Data Flags for the BSC Protocol

If BSC is selected in the data_proto field, either ASCII or EBCDIC character sets can be used. Control characters are stripped automatically on reception. Data link escape (DLE) characters are automatically inserted and deleted in transparent mode. If BSC Address Check mode is selected, values for both poll and select addresses must be supplied. Odd parity is used if ASCII is selected.

The following are the default values:

The data flags for the BSC protocol are:

Item Description
DATA_FLG_ADDR_CHK Address-compare select. This causes frames to be filtered by the hardware based on address. Only frames with matching addresses are sent to the system.
DATA_FLG_BSC_ASC ASCII BSC select.
DATA_FLG_C_CARR_ON Continuous carrier (RTS always on).
DATA_FLG_C_CARR_OFF RTS-disabled between transmits (default).

Data Flags for the SDLC Protocol

For the Synchronous Data Link Control (SDLC) protocol, the flag for NRZ or NRZI must match the data-encoding method that is used by the remote DTE. If SDLC Address Check mode is selected, the poll address byte must also be specified. The receive timer (RT) is started whenever a final block is transmitted. If RT is set to 1, the receive timer is restarted after expiration. If RT is set to 0, the receive timer is not restarted after expiration. The receive timer value is specified by the 16-bit rcv_timeout field. The following are the acceptable SDLC data flags:
Item Description
DATA_FLG_NRZI NRZI select (default is NRZ).
DATA_FLG_ADDR_CHK Address-compare select.
DATA_FLG_RST_TMR Restart receive timer.
DATA_FLG_C_CARR_ON Continuous carrier (RTS always on).
DATA_FLG_C_CARR_OFF RTS disabled between transmits (default).

t_err_threshold Fields

The t_err_threshold structure describes the format for defining thresholds for transmit and receive errors. Counters track the total number of transmit and receive errors. Individual counters track certain types of errors. Thresholds can be set for individual errors, total errors, or a percentage of transmit and receive errors from all frames received.

When a counter reaches its threshold value, a status block is returned by the driver. The status block indicates the type of error counter that reached its threshold. If multiple thresholds are reached at the same time, the first expired threshold in the list is reported as having expired and its counter is reset to 0. The user can issue a CIO_QUERY operation call to retrieve the values of all counters.

If no thresholding is desired, the threshold should be set to 0. A value of 0 indicates that LLC should not be notified of an error at any time. To indicate that the LLC should be notified of every occurrence of an error, the threshold should be set to 1.

The t_err_threshold structure contains the following fields:

Item Description
tx_err_thresh Specifies the threshold for all transmit errors. Transmit errors include transmit underrun, CTS dropped, CTS time out, and transmit failsafe time out.
rx_err_thresh Specifies the threshold for all receive errors. Receive errors include overrun errors, break/abort errors, framing/cyclic redundancy check (CRC)/frame check sequence (FCS) errors, parity errors, bad frame synchronization, and receive-DMA-buffer-not-allocated errors.
tx_err_percent Specifies the percentage of transmit errors that must occur before a status block is sent to the LLC.
rx_err_percent Specifies the percentage of receive errors that must occur before a status block is sent to the LLC.

Execution Environment

The CIO_START operation can be called from the process environment only.

Return Values

Item Description
CIO_OK Indicates successful CIO_START operation.
EBUSY Indicates the port state is not opened for a CIO_START operation.
EFAULT Indicates the cross-memory copy service was unsuccessful.
EINVAL Indicates the physical link parameter is not valid for the port.
EIO Indicates the device handler could not queue command to the adapter.
ENOMEM Indicates no mbuf clusters are available.
ENXIO Indicates the adapter number is out of range.