1. A method for virtualizing a network interface card, comprising: creating a first plurality of virtual NICs by a host; assigning each of a plurality of receive rings on the network interface card (NIC) to one of the first plurality of virtual NICs; determining whether the first plurality of virtual NICs is greater in number than the plurality of receive rings on the NIC; in response to determining that the first plurality of virtual NICs is greater in number than the plurality of receive rings on the NIC: creating a first software ring corresponding to one of the plurality of receive rings on the NIC; creating a first plurality of software receive rings associated with the first software ring; creating a second plurality of virtual NICs; and assigning each of the first plurality of software receive rings to one of the second plurality of virtual NICs, wherein the plurality of receive rings on the NIC is lesser in number than a sum of the first plurality of virtual NICs and the second plurality of virtual NICs.