🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.protocols.iso
Article #44

Re: Transport Provider Interface for UNIX STREAMS

#44
From: Alex Brown
Date: Wed, 04 Nov 1992 22:54
40 lines
2845 bytes
Transport Provider Interface (TPI) dates back to System V Release 2,
and was originally known as Transport Service Interface.  It's now a
UNIX International standard interface and documents describing it are
available through UI -- you may need to be in a member organization,
however.  UI has recently opened its "OSI Working Group" to non-UI
participation as a SIG, and your organization may be able to gain
access to it as a participating user.  

Ed Romascan (magma@nic.cerf.net) mentions a specification in a
"Porting Rules" document; I think this is the "Device Driver Interface
- Driver Kernel Interface (DDI/DKI)" document, but I don't remember
seeing a TPI specification there.  (The current edition of this
document for SVR4 is available in bookstores.)

However, because TLI is well documented in man pages, there's enough
information for most application purposes in header files.  See
/usr/include/sys/tihdr.h in any SVR32 or SVR4 implementation, e.g.
386/ix.  To use it you must be generally familiar with getmsg() and
putmsg(), with Streams messages in the kernel and with other simpler
Streams interfaces such as DLPI (or its predecessor LLI).  The mapping
of TPI primitives to TLI routines is fairly straightforward with the
exception of protocol-specific options parameters in T_conn_* (which
are not used in protocol-independent applications) and the presence of
a queue_t *QUEUE_ptr in T_conn_res.  This is used only by a listener
stream to pass an incoming connection to another stream, and thus
can't be used from user space (should be NULL).  "timod" is pushed
above TPI in the kernel by the TLI library, to manage the endpoint
state to provide TLI services such as t_look(), and the handoff of an
incoming connection to a forked process using t_sync() in user space;
its IOCTLs are identified but not documented in timod.h.

Most applications are far easier to write using TLI, but if for
whatever reason you are not interested in TLI library services,
tiuser.h should be sufficient to write a user-space application.

--
Alex Brown                 OSI networks
Sequoia Systems      abrown@sequoia.com
400 Nickerson Rd   (508) 480-0800 x1614
Marlboro MA 01752        481-2418   fax  
Technical Details
Message-ID: <ABROWN.92Nov4225417@seqp4.uucp>
Path: arc1-ca.pugleaf.net!sparky!uunet!charon.amdahl.com!pacbell.com!decwrl!hal.com!olivea!spool.mu.edu!hri.com!noc.near.net!seqp4!abrown
References: <1992Oct27.145159.7217@stc.nato.int> <Bwu048.73F@ra.nrl.navy.mil> <3542@news.cerf.net>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!charon.amdahl.com!pacbell.com!decwrl!hal.com!olivea!spool.mu.edu!hri.com!noc.near.net!seqp4!abrown
From: abrown@seqp4.uucp (Alex Brown)
Newsgroups: comp.protocols.iso
Subject: Re: Transport Provider Interface for UNIX STREAMS
Message-ID: <ABROWN.92Nov4225417@seqp4.uucp>
Date: 4 Nov 92 22:54:17 GMT
References: <1992Oct27.145159.7217@stc.nato.int> <Bwu048.73F@ra.nrl.navy.mil>
 <3542@news.cerf.net>
Sender: abrown@seqp4.sequoia.com
Organization: Sequoia Systems, Inc. Marlboro MA, USA
Lines: 40
In-reply-to: koelman@cuby.stc.nl's message of 27 Oct 92 14:51:59 GMT