On Thu, Jul 07, 2005 at 03:55:30AM +0200, Herbert Poetzl wrote: > 1.1 What is the TUN ? > The TUN is Virtual Point-to-Point network device. > TUN driver was designed as low level kernel support for > IP tunneling. It provides to userland application > two interfaces: > - /dev/tunX - character device; > - tunX - virtual Point-to-Point interface. > > Userland application can write IP frame to /dev/tunX > and kernel will receive this frame from tunX interface. > In the same time every frame that kernel writes to tunX > interface can be read by userland application from /dev/tunX > device. > > 1.2 What is the TAP ? > The TAP is a Virtual Ethernet network device. > TAP driver was designed as low level kernel support for > Ethernet tunneling. It provides to userland application > two interfaces: > - /dev/tapX - character device; > - tapX - virtual Ethernet interface. > > Userland application can write Ethernet frame to /dev/tapX > and kernel will receive this frame from tapX interface. > In the same time every frame that kernel writes to tapX > interface can be read by userland application from /dev/tapX > device. > > (from http://vtun.sourceforge.net/tun/faq.html) > > best, > Herbert >
I know this. Actually that page seems out of date, as Linux's tuntap now sends all accesses to /dev/net/tun regardless of the type of device (tun or tap). qemu have never used tun devices, it only uses tap devices. In other words, qemu has never read/write IP frames, it only deals with ethernet frames. This is why having qemu use tun0 as the device name is misleading - it makes developers believe that qemu is using a tun device (IP frames) even though it is really using a tap device (ethernet frames). The current NE2000 emulation (or any hardware nic emulation for that matter) would not work if qemu used an actual tun device. _______________________________________________ Qemu-devel mailing list Qemu-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/qemu-devel