Linux magazine has some interesting articles about writing virtual
network interfaces and the use of netfilters:
http://www.linux-mag.com/2000-04/gear_01.html
http://www.linux-mag.com/2000-06/gear_01.html
I also looked in the linux kernel and the tun/tap virtual network
interface can be used for these kind of things. This is not writing your
own virtual network interface but using a standard virtual network
interface.
This is also available on freebsd and solaris. If beos, os2 and windows
also have something like this then we have the most host-oses covered.
The current solution for the preliminar ne2000 interface is based on a
netfilter device (bpf device). I am not very familiar with netfilters
but I know the linux kernel has Linux Socket Filtering. This is based on
the BSD bpf functionality only there is no special bpf device in linux.
More information in the kernel source in
Documentation/networking/filter.txt
If we could solve it by using only network filtering then for most host
os-es we don't need a kernel device. Although this is maybe not good for
performance it might be easy to port and deploy.
Greetings,
Martin