Pnet provides a virtual network interface which allows individual processes to implement their own complete IP network stack in userspace. In order to accomplish this task Pnet contains two parts: an internal interface which presents itself to the kernel using the same interfaces as a physical Ethernet NIC, and a memory mapped char device which is used to communicate the IP packets to the process.

The Userspace Network Library (UNL) has been designed to work with Pnet. UNL provides userspace implementations of the IP, ICMP, UDP and TCP protocols.

In order to use Pnet you will need to be able to build and run Linux kernel modules.

The Pnet kernel module takes two parameters at module load time.

There have been no official releases of Pnet at this point. However, you can view the source repository or checkout the code using Git.

git clone git://

Or, if you are behind a firewall that only allows HTTP.

git clone
Dan Siemon <>