T_DATA_REQ(7tpi) T_DATA_REQ(7tpi)
NAME
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(2) operating system service routine.
Copyright 1994 Novell, Inc. Page 1
T_DATA_REQ(7tpi) T_DATA_REQ(7tpi)
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.
Copyright 1994 Novell, Inc. Page 2