* We have FUSE, could we have NUSE ?
@ 2007-03-08 10:53 Matti Aarnio
2007-03-08 13:57 ` John W. Linville
2007-03-08 21:52 ` David Miller
0 siblings, 2 replies; 3+ messages in thread
From: Matti Aarnio @ 2007-03-08 10:53 UTC (permalink / raw)
To: netdev
(somebody should invent a "better" name for this)
We do have a support of file-system engine in userspace process.
Could we have a socket interfaced network protocol engine in userspace ?
I would like to place things like AX.25 service into userspace, but have
application codes to use kernel socket API (and even ABI) as if the service
is in the kernel.
Required bandwidth for many of these protocols is quite small, therefore
having those within the kernel is unnecessary. (Not to mention that quite
many system integrators choose not to turn them on...)
The aim of "NUSE" from applications point of view would be to be
indistinguishable from kernel implemented services.
What would this require from the service hook side ?
- Socket read and write can be trivialishly done
like a pipe in between processes
- Somehow pass ancilliary data for:
- socket, socketpair
- connect, bind
- accept
- listen
- getpeername, getsockname
- sendto, send
- recvfrom, revc
- setsockopt, getsockopt
- poll / epoll ?
Death of the protocol engine process must also destroy all existing
sockets of the served protocol type, and refuse to generate any new
sockets of the type.
The first protocol that I have in mind to implement on top of this service
does not need very much of local sockets.
(It is called "STANAG-5066" - radio data communication on HF frequencies.
Specification is written by NATO, thus "STANAG", but my use plans for it
are more along the AX.25 ham-radio things.)
/Matti Aarnio
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: We have FUSE, could we have NUSE ?
2007-03-08 10:53 We have FUSE, could we have NUSE ? Matti Aarnio
@ 2007-03-08 13:57 ` John W. Linville
2007-03-08 21:52 ` David Miller
1 sibling, 0 replies; 3+ messages in thread
From: John W. Linville @ 2007-03-08 13:57 UTC (permalink / raw)
To: Matti Aarnio; +Cc: netdev
On Thu, Mar 08, 2007 at 12:53:20PM +0200, Matti Aarnio wrote:
> The aim of "NUSE" from applications point of view would be to be
> indistinguishable from kernel implemented services.
>
> What would this require from the service hook side ?
> - Socket read and write can be trivialishly done
> like a pipe in between processes
> - Somehow pass ancilliary data for:
> - socket, socketpair
> - connect, bind
> - accept
> - listen
> - getpeername, getsockname
> - sendto, send
> - recvfrom, revc
> - setsockopt, getsockopt
> - poll / epoll ?
It is certainly possible to do this by implementing your own socket
family. I did such a thing as infrastructure for talking to network
processors in a former life. In that case the socket code was talking
to other kernel code, but getting it to coordinate w/ userland is
largely a SMOP. You might consider using (generic?) netlink for
your backend communications to the userland daemon. In addition,
there might be other kernel extensions required (e.g. dynamic socket
family allocation?).
> Death of the protocol engine process must also destroy all existing
> sockets of the served protocol type, and refuse to generate any new
> sockets of the type.
That's up to you (or whomever implements the kernel code).
> The first protocol that I have in mind to implement on top of this service
> does not need very much of local sockets.
> (It is called "STANAG-5066" - radio data communication on HF frequencies.
> Specification is written by NATO, thus "STANAG", but my use plans for it
> are more along the AX.25 ham-radio things.)
Nifty. :-)
John
--
John W. Linville
linville@tuxdriver.com
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: We have FUSE, could we have NUSE ?
2007-03-08 10:53 We have FUSE, could we have NUSE ? Matti Aarnio
2007-03-08 13:57 ` John W. Linville
@ 2007-03-08 21:52 ` David Miller
1 sibling, 0 replies; 3+ messages in thread
From: David Miller @ 2007-03-08 21:52 UTC (permalink / raw)
To: matti.aarnio; +Cc: netdev
From: Matti Aarnio <matti.aarnio@zmailer.org>
Date: Thu, 8 Mar 2007 12:53:20 +0200
> We do have a support of file-system engine in userspace process.
> Could we have a socket interfaced network protocol engine in userspace ?
People can and have done this using the TUN/TAP device.
There is even an ad-hoc IPSEC implementation with X-AUTH
support implemented in user space using TUN/TAP.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2007-03-08 21:52 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-03-08 10:53 We have FUSE, could we have NUSE ? Matti Aarnio
2007-03-08 13:57 ` John W. Linville
2007-03-08 21:52 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).