intro(3xti)intro(3xti)Nameintro - introduction to the X/Open Transport Interface (XTI)
The X/Open Transport Interface defines a transport service interface
that is independent of any specific transport provider. The interface
is provided by way of a set of library functions for the C programming
The transport layer can comprise one or more transport providers at the
same time. The transport provider identifier parameter passed to the
function determines the required transport provider.
A transport endpoint specifies a communication path between a transport
user and a specific transport provider, which is identified by a local
file descriptor (fd). When a user opens a transport provider identi‐
fier, a local file descriptor fd is returned that identifies the trans‐
One process can simultaneously open several fds. In synchronous mode,
however the process must manage the different actions of the associated
transport connections sequentially. Conversely, several processes can
share the same fd (by or operations) but they have to synchronize them‐
selves so as not to issue a function that is unsuitable to the current
state of the transport endpoint.
Modes Of Service
The transport service interface supports two modes of service: connec‐
tion mode and connectionless mode. A single transport endpoint cannot
support both modes of service simultaneously.
The connection-mode transport service is circuit-oriented and enables
data to be transferred over an established connection in a reliable,
sequential manner. In contrast, the connectionless-mode transport ser‐
vice is message-oriented and supports data transfer in self-contained
units with no logical relationship required among multiple units.
Two levels of error are defined for the transport interface. The first
is the library error level. Each library function has one or more error
returns. A return of -1 indicates a failure. An external integer,
t_errno, which is defined in the header file <xti.h>, holds the spe‐
cific error number when such a failure occurs. This value is set when
errors occur but is not cleared on successful library calls, so it
should be tested only after an error has been indicated. If imple‐
mented, a diagnostic function, t_error, prints out information on the
current transport error. The state of the transport provider may change
if a transport error occurs.
The second level of error is the operating system service routine
level. A special library level error number has been defined called
[TSYSERR], which is generated by each library function when the operat‐
ing system service routine fails or some general error occurs. When a
function sets t_errno to [TSYSERR], the specific system error can be
accessed through the external variable errno.
Key For Parameter Arrays
Each XTI function description, includes an array that summarizes the
content of the input and output parameter. The key is as follows:
x The parameter value is meaningful (input parameter
must be set before the call and output parameter must
be read after the call).
(x) The content of the object pointed by the x pointer is
? The parameter value is meaningful, but the parameter
(?) The content of the object pointed by the ? pointer is
/ The parameter value is meaningless.
= After the call, the parameter keeps the same value as
before the call.