Patent ID: 7738457

Claim:
A method for routing a packet, comprising: receiving the packet in a network interface card (NIC) from a first network; classifying the packet on the NIC to identify a receive ring located on the NIC to forward the packet; placing the packet in the receive ring; sending the packet to a first virtual NIC of a plurality of virtual NICs based on the first virtual NIC corresponding to the receive ring, wherein the plurality of virtual NICs execute on a host connected to the NIC, wherein each of the plurality of virtual NICs is connected to one of a plurality of containers, wherein each of the plurality of containers corresponds to an isolated execution environment, wherein processes within one of plurality of containers are isolated from processes in the other plurality of containers, and wherein the plurality of containers execute a same shared single instance of an operating system; sending the packet to a first container of the plurality of containers based on the first container corresponding to the first virtual NIC via a first virtual network stack; and routing the packet, by a routing module in the first virtual container, to a packet destination, wherein routing the packet comprises: identifying a next hop for the packet based on the packet destination; forwarding the packet to the next hop on a second network, wherein the packet is forwarded via the first virtual network stack.