[ Previous | Next | Contents | Glossary | Home | Search ]
AIX Version 4.3 Communications Technical Reference, Volume 2

xtiso STREAMS Driver


Provides access to sockets-based protocols to STREAMS applications.


The xtiso driver (XTI over SOckets) is a STREAMS-based pseudo-driver that provides a Transport Layer Interface (TLI) to the socket-based protocols. The only supported use of the xtiso driver is by the TLI and XTI libraries.

The TLI and XTI specifications do not describe the name of the transport provider and how to address local and remote hosts, two important items required for use.

The xtiso driver supports most of the protocols available through the socket interface. Each protocol has a /dev entry, which must be used as the name parameter in the t_open subroutine. The currently supported names (as configured by the strload subroutine) are:

Name Socket Equivalent
/dev/xti/unixdg AF_UNIX, SOCK_DGRAM
/dev/xti/unixst AF_UNIX, SOCK_STREAM
/dev/xti/udp AF_INET, SOCK_DGRAM
/dev/xti/tcp AF_INET, SOCK_STREAM

Each of these protocols has a sockaddr structure that is used to specify addresses. These structures are also used by the TLI and XTI functions that require host addresses. The netbuf structure associated with the address for a particular function should refer to one of the sockaddr structure types. For instance, the TCP socket protocol uses a sockaddr_in structure; so a corresponding netbuf structure would be:

struct netbuf addr;
struct sockaddr_in sin;
/* initialize sockaddr here */
sin.sin_family = AF_INET;
sin.sin_port = 0;
sin.sin_addr.s_addr = inet_addr("");
addr.maxlen = sizeof(sin);
addr.len = sizeof(sin);
addr.buf = (char *)&sin;

The following figure shows the implementation of XTI/TLI with STREAMS.

The X/Open Transport Interface (XTI) Stream always consists of a Stream head and the transport interface module, timod. Depending on the transport provider specified by the application, timod accesses either the STREAMS-based protocol stack natively or a socket-based protocol through the pseudo-driver, xtiso.

The XTI library, libxti.a assumes a STREAMS-based transport provider. The routines of this library perform various operations for sending transport Provider Interface, TPI, messages down the XTI streams to the transport provider and receives them back.

The transport interface module, timod, is a STREAMS module that completes the translation of the TPI messages in the downstream and upstream directions.

The xtiso driver is a pseudo-driver that acts as the transport provider for socket-based communications. It interprets back and forth between the the TPI messages it receives from upstream and the socket interface.

AIX also provides the transport interface read/write module, tirdwr, which applications can push on to the XTI/TLI Stream for accessing the socket layer with standard UNIX read and write calls.


/dev/xti/* Contains names of supported protocols.

Implementation Specifics

This driver is part of STREAMS Kernel Extensions.

Related Information

The strload command.

The t_bind subroutine for Transport Layer Interface, t_connect subroutine for Transport Layer Interface, t_open subroutine for Transport Layer Interface.

The t_bind subroutine for X/Open Transport Layer Interface, t_connect subroutine for X/Open Transport Layer Interface, t_open subroutine for X/Open Transport Layer Interface.

Internet Transport-Level Protocols in AIX Version 4.3 System Management Guide: Communications and Networks.

UNIX System V Release 4 Programmer's Guide: Networking Interfaces.

Understanding STREAMS Drivers and Modules in AIX Version 4.3 Communications Programming Concepts.

[ Previous | Next | Contents | Glossary | Home | Search ]