[LWN Logo]

From: Guy Harris <guy@netapp.com>
Subject: The "component of NFS" that Sun are giving away
To: lwn@lwn.net
Date: Wed, 2 Feb 2000 15:54:31 -0800 (PST)

The Sun announcement says

	The key component of NFS that Sun is releasing to the open
	source community today is known as Transport Independent Remote
	Procedure Call protocol, or TI-RPC.  TI-RPC is one of the
	foundations of NFS, and a key component of the security
	advancements in version 4.

TI-RPC is an implementation of an API for making ONC (Open Network
Computing) RPC calls; "ONC RPC" is the name Sun eventually gave their
RPC mechanism, atop which NFS, NIS, NIS+, etc. are built.

The original RPC API, from pre-5.x SunOS, was somewhat
UDP-and-TCP-oriented.  As part of the AT&T/Sun deal to make System V
Release 4, the API had to be changed to support arbitrary transport
protocols; that's the TI-RPC API.

For several years, Sun have made source to a SunOS 4.0-vintage version
of the pre-TI-RPC RPC code, as well as to various versions of TI-RPC
(the latest is probably Solaris 2.3-vintage), available in

	ftp://playground.sun.com/pub/rpc/

The version there has what license it has in a DISCLAIMER file:

/*
 * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
 * unrestricted use provided that this legend is included on all tape
 * media and as a part of the software program in whole or part.  Users
 * may copy or modify Sun RPC without charge, but are not authorized
 * to license or distribute it to anyone else except as part of a product or
 * program developed by the user.
 * 
 * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
 * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
 * 
 * Sun RPC is provided with no support and without any obligation on the
 * part of Sun Microsystems, Inc. to assist in its use, correction,
 * modification or enhancement.
 * 
 * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
 * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
 * OR ANY PART THEREOF.
 * 
 * In no event will Sun Microsystems, Inc. be liable for any lost revenue
 * or profits or other special, indirect and consequential damages, even if
 * Sun has been advised of the possibility of such damages.
 * 
 * Sun Microsystems, Inc.
 * 2550 Garcia Avenue
 * Mountain View, California  94043
 */

At least the BSDs, and perhaps GNU libc (if it includes ONC RPC code -
which it has to, in order to support, say, NIS), use one of those
implementations as the basis for their ONC RPC implementation.

Sun's TI-RPC code is built atop AT&T's TLI interface for networking,
rather than a sockets interface (although one of the TI-RPC
implementations on "playground.sun.com" *might* have been backported to
a sockets interface).  Some work may be necessary to make this work with
free UNIXes, unless something such as Linux STREAMS is used *and* Linux
STREAMS supports TLI access to protocols including TCP and UDP.