T_CONN_RES(7tpi) T_CONN_RES(7tpi)
NAME
T_CONN_RES - Connection Response
SYNOPSIS
This message consists of one M_PROTO message block followed by
zero or more M_DATA blocks if any user data is specified by
the transport user. The format of the M_PROTO message block
is as follows:
struct T_conn_res {
long PRIM_type; /* always T_CONN_RES */
queue_t *QUEUE_ptr; /* response queue ptr */
long OPT_length; /* options length */
long OPT_offset; /* options offset */
long SEQ_number; /* sequence number */
}
DESCRIPTION
This primitive requests that the transport provider accept a
previous connect request on the specified response queue.
Parameters
PRIM_type
identifies the primitive type.
QUEUE_ptr
identifies the transport provider queue pair read queue
pointer which should be used to accept the connect
request. This queue pointer should map onto a stream
which is already bound to a protocol address.
OPT_length
is the length of the responding options and OPT_offset
is the offset from the beginning of the M_PROTO message
block where the responding options begin.
SEQ_number
is the sequence number which identifies the connection
to be responded to.
The proper alignment of the options in the M_PROTO message
block is not guaranteed. The options in the M_PROTO message
block are, however, aligned the same as they were received
from the transport user.
Copyright 1994 Novell, Inc. Page 1
T_CONN_RES(7tpi) T_CONN_RES(7tpi)
Rules
The following rules apply when the transport endpoint
referenced by QUEUE_ptr is not the same as the transport
endpoint referenced by SEQ_number:
If the endpoint referenced by QUEUE_ptr is not bound at
the time the T_CONN_RES primitive is received by the
transport provider, the transport provider will
automatically bind this endpoint to the same protocol
address to which the endpoint referenced by SEQ_number
is bound.
If the endpoint referenced by QUEUE_ptr is already bound
when the T_CONN_RES primitive was received by the
transport provider, it must be bound to a protocol
address with a CONIND_number of zero and must be in the
T_IDLE state.
In all cases, this primitive requires the transport provider
to generate one of the following acknowledgments on receipt of
the primitive, and the transport user wait for the
acknowledgment before issuing any other primitives:
Successful
Correct acknowledgment of the primitive is indicated via
the T_OK_ACK primitive described in the section
``Transport Service Interface Sequence of Primitives''
of the book STREAMS Modules and Drivers.
Non-fatal errors
These errors will be indicated via the T_ERROR_ACK
primitive described in the section ``Overview of Error
Handling Capabilities'' of the book STREAMS Modules and
Drivers.
Errors
The allowable errors are as follows:
TBADF This indicates that the response queue pointer was
invalid.
TBADOPT
This indicates that the options were in an incorrect
format, or they contained invalid information.
Copyright 1994 Novell, Inc. Page 2
T_CONN_RES(7tpi) T_CONN_RES(7tpi)
TACCES
This indicates that the user did not have proper
permissions for the use of the options or response id.
TOUTSTATE
The primitive would place the transport interface out of
state.
TBADDATA
The amount of user data specified was invalid.
TBADSEQ
The sequence number specified in the primitive was
incorrect or invalid.
TSYSERR
A system error has occurred and the UNIX system error is
indicated in the primitive.
TBADADDR
The specified protocol address (the one bound to the
endpoint referenced by QUEUE_ptr) was in an incorrect
format or contained illegal information.
TNOTSUPPORT
This primitive is not supported by the transport
provider.
TRESADDR
The transport provider requires both transport endpoints
(that is, those referenced by QUEUE_ptr and SEQ_number)
to be bound to the same address.
TRESQLEN
The endpoint referenced by QUEUE_ptr was different from
the endpoint referenced by SEQ_number, but was bound to
a protocol address with a CONIND_number that is greater
than zero.
Modes
Only connection-mode.
Originator
Transport user.
Copyright 1994 Novell, Inc. Page 3