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("127.0.0.1"); addr.maxlen = sizeof(sin); addr.len = sizeof(sin); addr.buf = (char *)&sin;
The following "figure" on page *** shows the implementation of XTI/TLI with STREAMS.
Figure 3-1. . This illustration shows the implementation of XTI/TLI with STREAMS. It shows that the X/Open Transport Interface (XTI) Stream, in user space,always consists of a Stream head, in kernel space, 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 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. |
This driver is part of STREAMS Kernel Extensions.
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 5L Version 5.1 System Management Guide: Communications and Networks.
UNIX System V Release 4 Programmer's Guide: Networking Interfaces.
Understanding STREAMS Drivers and Modules in AIX 5L Version 5.1 Communications Programming Concepts.