Subject: Re: [PATCH 0/5] [RFC] AF_RXRPC socket family implementation [try #2]

From: David Howells <[email-masked]>
Date: Mon, 19 Mar 2007 15:41:38 +0000

Alan Cox <[email-masked]> wrote:

> > > Other RPC types use normal socket types.
> > 
> > They do?  Examples please.  I didn't think Linux, at least, has any other
> > RPC socket families, though I could be wrong as I haven't made a thorough
> > study of them.
> 
> SunRPC is implemented in user space and uses the existing TCP/IP layer
> and socket types, even though it is using them in an RPC manner and
> viewed at the RPC layer they are RPCs

SunRPC is not then a suitable analogy.  There is no socket interface that
provides SunRPC as far as I know, so your example is invalid.  Yes, SunRPC is
built on top of something else, SOCK_DGRAM, SOCK_STREAM or whatever, but that's
like saying TCP is a datagram service rather than a stream service because it's
built on a datagram service (IP).  What a protocol uses out the back is pretty
much irrelevant - what is relevant is what the protocol in question actually
appears to provide to anyone using it.

> >      I have made my client sockets use connect(), but that's just a
> >      convenience and I need to make it possible to avoid doing that to
> >      make it useful to the kernel.  It's similar to SOCK_DGRAM sockets in
> >      this respect.
> 
> So use SOCK_DGRAM, its clearly near enough.

No, it's not.  SOCK_DGRAM is an unreliable, unidirectional datagram passing
service.

David