Starts a session with the IBM® ARTIC960Hx PCI (PCI MPQP) device handler.
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.
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.
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:
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:
|
modem_flags | Establishes modem characteristics. This field accepts the following
values:
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 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
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). |
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. |
The CIO_START operation can be called from the process environment only.
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. |