On 01/02/15 15:45, Antti Kantee wrote:
For smb/nfs, you most likely want to implement the sockin_user set of I/O hypercalls which allow the smb/nfs file system drivers from rump kernels to use an external networking stack:
http://nxr.netbsd.org/xref/src/sys/rump/net/lib/libsockin/sockin_user.h?r=1....
Now, that interface wasn't really ever designed to be implemented anywhere except on NetBSD. Nevertheless, we (I think it was Arnaud) managed to cram support for all userspace platforms into the implementation. If you do want to change some aspects of that interface to help it work on Genode, I'm more than happy to do it.
Ah, I really overlooked using the sockin_user interface for this task and rather thought about implementing the virtual nic interface and using the rumpkernel's TCP/IP stack - thanks for pointing out this option. It is definitly a viable possibilty to check out.
Also, there's a 9p driver for puffs (*), which could theoretically just work on Genode, though it would be a bit awkward; you'd run puffs in a rump kernel server and the mount_9p client in a another server ... :/
Though that would certainly work as well, I think it is more reasonable to implement it directly. 9p is a fairly simple protocol so using the whole rumpkernel stack would be overkill IMHO :)