tap(4) is a virtual Ethernet device driver. Each tap(4) device appears as a regular Ethernet NIC to the kernel, with a MAC address and a set of media interfaces. It is a clonable network interface, which means any number of such devices can be created by the administrator. Just like tun(4), tap(4) offers a TTY interface to each of its devices which allows an application to read and inject Ethernet frames into the network stack. tap(4) devices can be created and used individually for system-wide configurations, but an application can also use a special clonable device node to create interfaces on demand. As a LKM must be compiled with the same environment as the kernel with respect to a handful of definition (DEBUG, DIAGNOSTIC, MULTIPROCESSOR, LOCKDEBUG and MALLOCLOG), the package provides a variable, TAP_KERNEL_ENV, to hold the correct addition to the compilation command line. For example, you might want to define it the following way in mk.conf: TAP_KERNEL_ENV= -DDIAGNOSTIC -DMULTIPROCESSOR