From owner-freebsd-hackers  Mon Sep 27  7: 6:15 1999
Delivered-To: freebsd-hackers@freebsd.org
Received: from acl.lanl.gov (acl.lanl.gov [128.165.147.1])
	by hub.freebsd.org (Postfix) with ESMTP id 7315414E13
	for <freebsd-hackers@FreeBSD.ORG>; Mon, 27 Sep 1999 07:06:14 -0700 (PDT)
	(envelope-from rminnich@lanl.gov)
Received: from localhost (rminnich@localhost) by acl.lanl.gov (8.8.8/8.8.5) with ESMTP id IAA130654; Mon, 27 Sep 1999 08:06:04 -0600 (MDT)
X-Authentication-Warning: acl.lanl.gov: rminnich owned process doing -bs
Date: Mon, 27 Sep 1999 08:06:03 -0600
From: "Ronald G. Minnich" <rminnich@lanl.gov>
To: Zhihui Zhang <zzhang@cs.binghamton.edu>
Cc: freebsd-hackers@FreeBSD.ORG
Subject: Re: NFS and RPC
In-Reply-To: <Pine.GSO.3.96.990923101148.17856B-100000@sol.cs.binghamton.edu>
Message-ID: <Pine.SGI.4.10.9909270804030.130266-100000@acl.lanl.gov>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: owner-freebsd-hackers@FreeBSD.ORG
Precedence: bulk
X-Loop: FreeBSD.ORG

You have a lot mixed up here. 

On Thu, 23 Sep 1999, Zhihui Zhang wrote:
> Once inside the kernel, the NFS daemons can not use RPC library any more,
> they must create/interprete RPC format messages themselves.  My guess this
> is for performance reason and because there is no kernel-to-kernel RPC. 

There is kernel-to-kernel RPC. NFS in the kernel on both client and server
sides use RPC. They don't use -lrpc though ...

> Since the kernel part of NFS code does not use RPC library routines, why
> FreeBSD still conforms to the RPC format for NFS requests/replies? Is
> this for compatibily with other NFS servers/clients that are implemented
> entirely as user-level code and with RPC library routines?

Because some NFS servers run in user mode (automount, amd, early linux,
even *very* early sunos). Some clients run in user mode too (mostly evil
hacker software ... but also Bigfoot, see www.acl.lanl.gov/~rminnich)

> One more question is about how to assembly a RPC request from several
> mbufs? I notice that there is a check for 0x80000000 in the routine
> nfsrv_getstream() for the last fragment.  

that's to support rpc over tcp. 


You need to look at the code again.

ron



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message