Hmm, the version that I sent you awhile ago (remember I sent you an attachment
with prototype of the new tun driver and user space code) was not that bad in
that area. It mean it did not touch existing read()/write() path. The
difference was that it allocated the rings and the data buffer in the kernel
and mapped into the user-space. Which is not what you guys need but that's a
separate thing.
The fd thing could be an issue. As I mentioned the example would be a VPN
server (OpenVPN, etc) with a bunch of client connection (typically tun per
connection).
I see.
I'll try to spend some time on this in a near future and take a crack at the
version with the TUN specific rings. Although I said that many times now and
it may not happen in the near enough future :). In the mean time if your
current version helps you guys a lot I do not mind us putting it in. We can
always add another mode or something that uses internal rings and gradually
obsolete old read()/write() and generic rings.
Max
--