Patent ID: 8798056

Claim:
A method comprising: at a network interface controller: modifying a data frame by inserting tag data therein; wherein the data frame comprises a destination identifier in a destination field and a payload, and the tag data comprises (1) an Ethertype field indicating the data frame is tagged with a virtual port identifier associated with a virtual machine and (2) a first virtual port identifier for identifying a first logical interface of a first virtual machine on a virtual machine host; and forwarding the data frame from the network interface controller via a physical port on the virtual machine host to an external Ethernet switch; at the external Ethernet switch: performing an address lookup in a forwarding database on, at least, the destination identifier of the data frame; determining if the destination identifier corresponds to a second virtual port internal to the virtual machine host; if the destination identifier corresponds to a second virtual port internal to the virtual machine host: modifying the data frame to store tag data comprising a second virtual port identifier for identifying a logical interface of the second virtual machine on the virtual machine host; and forwarding the data frame to the network interface controller via the physical port on the virtual machine host; if the destination identifier of the data frame corresponds to a location external to the virtual machine host, forwarding the data frame via the network; and at the network interface controller: receiving the data frame from the external Ethernet switch; removing the tag data from the data frame; and forwarding the data frame to the second virtual machine.