Patent ID: 8924960

Claim:
An apparatus comprising: circuitry comprised in a circuit card to be comprised in a platform, the circuit card comprising a network interface controller that comprises a switch and first memory, the platform comprising a motherboard that includes second memory and at least one host processor to execute at least one process, execution of the at least one process by the at least one host processor resulting in at least one table being stored in the first memory and the second memory, the at least one table including tuples to be used by the switch to determine at least one virtual machine (VM) resident in the platform that is to be assigned to process at least one packet received by the network interface controller, the at least one VM being selected by the switch from among a plurality of virtual machines resident in the platform, the plurality of virtual machines becoming resident in the platform as a result of the execution of the at least one process by the at least one host processor, the platform being comprised in a single physical housing; the switch being to determine the at least one VM based at least in part upon: comparison of at least one destination of the at least one packet to at least one predetermined destination, the at least one destination being indicated by at least one destination address in the at least one packet; at least one hash value based at least in part upon both at least one port associated with the at least one packet and at least one source of the at least one packet, the at least one hash value to be stored in at least one of the tuples by the switch; and at least one VM index indicating the at least one VM, the at least one VM index to be stored in the at least one of the tuples by the switch; and the switch being to route the at least one packet to the at least one VM, the at least one destination address in the at least one packet, as routed to the at least one VM by the switch, being unchanged from that received by the network interface controller; wherein respective hash values and respective VM indexes are to be associated in respective of the tuples in accordance with, at least in part, at least one packet processing load balancing algorithm so as to balance, at least in part, respective virtual machine packet processing loads for actual and expected packet flows received by the platform.