Previous section.

Transport Provider Interface (TPI), Version 2 Draft 2
Copyright © 1999 The Open Group


T_OPTDATA_REQ - Data request with options


The message consists of one M_PROTO message block followed by zero or more 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_optdata_req {
   t_scalar_t PRIM_type;       /* always T_OPTDATA_REQ           */
   t_scalar_t DATA_flag;       /* flag bits associated with data */
   t_scalar_t OPT_length;      /* options length                 */
   t_scalar_t OPT_offset;      /* options offset                 */


The primitive indicates to the transport provider that the message contains a transport interface data unit. One or more transport interface data units form a transport service data units (TSDU).

Note that the maximum transport service and data unit sizes allowed by transport provider is indicated to the user by the T_INFO_ACK primitive.

This primitive has a mechanism that 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.

This primitive also provides mechanisms to have options associated with the data being transferred.


The fields of this message have the following semantics:


identifies the primitive type


This field specifies bit fields specific general properties associated with the data being transferred. The following settings are currently defined:

When set, this bit indicates that the next T_OPTDATA_REQ primitive is also part of this transport service data unit.


the length of the requested options asociated with the primitive


the offset (from the beginning of the M_PROTO message block) where the options asociated with this primitive begin.


It is possible to use this primitive with no associated options, in which case the OPT_length field is zero.

The primitive does not require any acknowledgements, 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.


The allowable errors are as follows:


This indicates of the following unrecoverable protocol conditions:

  • The transport service interface was found to be in an incorrect state. If the interface is in TS_IDLE state when the provider receives the T_OPTDATA_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.


Only connection mode


Transport user

Contents Next section Index