Patent ID: 8458366

Claim:
A method for processing packets, comprising: receiving a first packet by a network interface card (NIC) operatively connected to a host; classifying the first packet using a classifier; sending the first packet to a first one of a plurality of receive rings based on a classification of the first packet by the classifier; sending the first packet from the first one of the plurality of receive rings to a first virtual network interface card (VNIC), wherein the first VNIC is located on the host; determining, by a policy engine using a first policy associated with the first VNIC, whether to process the first packet using offload hardware, wherein the offload hardware comprises at least a cryptographic accelerator, and wherein the first VNIC is configured to communicate directly with the policy engine, and wherein the first VNIC and the policy engine are located in a Media Access Control (MAC) layer of the host; when the first packet is to be processed using the offload hardware, sending the first packet to the offload hardware and receiving a first processed packet from the offload hardware by the first VNIC; when the first packet is not to be processed using the offload hardware, processing the first packet using at least one onload resource to obtain the first processed packet; and sending the first processed packet from the first VNIC to a first packet destination associated with the first VNIC, wherein the first packet destination is on the host.