A device, comprising: a memory; a plurality of physical network interfaces for receiving and transmitting network packets; and one or more processors configured to execute a host software stack, wherein execution of the host software stack causes the one or more processors to: provide first routing functionality corresponding to a first router, the first routing functionality being provided without using a virtual machine; receive a first network packet at the device from a first physical network interface of the plurality of network interfaces; forward the first network packet using the first routing functionality by performing a first processing of the first network packet in a level 2 or a level 3 packet processing pipeline of the host software stack; start a first virtual machine and enable the first virtual machine to provide a second routing functionality corresponding to a second router; receive a second network packet at the device; forward the second network packet using the second routing functionality by performing a second processing of the second network packet in the level 2 or the level 3 packet processing pipeline of the host software stack, wherein said first processing and/or said second processing is performed using a real-time thread. a memory; a plurality of physical network interfaces for receiving and transmitting network packets; and one or more processors configured to execute a host software stack, wherein execution of the host software stack causes the one or more processors to: provide first routing functionality corresponding to a first router, the first routing functionality being provided without using a virtual machine; receive a first network packet at the device from a first physical network interface of the plurality of network interfaces; forward the first network packet using the first routing functionality by performing a first processing of the first network packet in a level 2 or a level 3 packet processing pipeline of the host software stack; start a first virtual machine and enable the first virtual machine to provide a second routing functionality corresponding to a second router; receive a second network packet at the device; forward the second network packet using the second routing functionality by performing a second processing of the second network packet in the level 2 or the level 3 packet processing pipeline of the host software stack, wherein said first processing and/or said second processing is performed using a real-time thread. provide first routing functionality corresponding to a first router, the first routing functionality being provided without using a virtual machine; receive a first network packet at the device from a first physical network interface of the plurality of network interfaces; forward the first network packet using the first routing functionality by performing a first processing of the first network packet in a level 2 or a level 3 packet processing pipeline of the host software stack; start a first virtual machine and enable the first virtual machine to provide a second routing functionality corresponding to a second router; receive a second network packet at the device; forward the second network packet using the second routing functionality by performing a second processing of the second network packet in the level 2 or the level 3 packet processing pipeline of the host software stack, wherein said first processing and/or said second processing is performed using a real-time thread.