T_DATA_REQ(D7tpi)
T_DATA_REQ --
Data Request
Synopsis
This message consists of one M_PROTO message block
followed by zero or more M_DATA message blocks
where each M_DATA message block contains zero or more bytes of data.
The format of the M_PROTO message block is as follows:
struct T_data_req {
long PRIM_type; /* always T_DATA_REQ */
long MORE_flag; /* indicates more data in TSDU */
}
Description
This primitive indicates to the transport provider that this message
contains a transport interface data unit.
One or more transport interface data units form a transport
service data unit (TSDU).
-
Note that
the maximum transport service data unit size allowed by the transport
provider is indicated to the transport user via the
T_INFO_ACK
primitive.
This primitive has a mechanism which indicates the beginning and end of
a transport service data unit.
However, not all transport providers support the concept of a
transport service data unit.
Parameters
PRIM_type-
identifies the primitive type.
MORE_flag-
when greater than zero, indicates that the
next
T_DATA_REQ
primitive is also part of this transport service data
unit.
Rules
The transport provider must also recognize a message of one or more
M_DATA
message blocks without the leading M_PROTO message block as a
T_DATA_REQ
primitive.
This message type will be initiated from the
write
operating system service routine.
-
In this example
there are no implied transport service data unit boundaries,
and the transport provider may view this message type as a
self contained transport service data unit.
If these two types of messages are intermixed, then transport service data
boundaries may be lost.
This primitive does not require any acknowledgments, although
it may generate a fatal error.
This is indicated via a
M_ERROR
message
type which results in the failure of all operating system service routines on the
stream.
Errors
The allowable errors are as follows:
EPROTO-
This indicates one of the following unrecoverable protocol conditions:
-
The transport service
interface was found to be in an incorrect state.
If the interface is in the
T_IDLE
state when the provider receives
the
T_DATA_REQ
primitive, then the transport provider should just
drop the message without generating a fatal error.
-
The amount of transport user data associated with the primitive
defines a transport service data unit larger than that allowed by the
transport provider.
Modes
Only connection-mode.
Originator
Transport user.
Notices
Hardware constraints
None
Applicability
N/A
Backward compatibility
UnixWare-specific TPI Message Formats
Forward compatibility
N/A
19 June 2005
© 2005 The SCO Group, Inc. All rights reserved.
OpenServer 6 and UnixWare (SVR5) HDK - June 2005