1. A method comprising: operating a software router in application memory space of a general purpose computer; operating an interface application in the application memory space of the general purpose computer; receiving a packet by an operating system running on the general purpose computer; and obtaining the packet using the interface application for forwarding by the software router; wherein receiving comprises emulating a hardware interface associated with the router application for transferring packets to and from the router application.