METHOD, SYSTEM, COMPUTER PROGRAM PRODUCT, AND HARDWARE PRODUCT FOR ETHERNET VIRTUALIZATION USING AN ELASTIC FIFO MEMORY TO FACILITATE FLOW OF UNKNOWN TRAFFIC TO VIRTUAL HOSTS
First Claim
1. A method for Ethernet virtualization using an elastic FIFO memory to facilitate flow of unknown traffic to a virtual host, the method comprising:
- receiving a packet that represents unknown traffic on a network;
performing a first test to ascertain whether or not a destination connection can be determined for the received packet wherein, if a destination connection can be determined, a second test is performed to ascertain whether or not one or more connection-specific resources required to send the packet to a virtual host memory corresponding to the destination connection are available;
if a destination connection for the packet cannot be determined, passing the packet to a store engine;
if the one or more connection-specific resources are not available, passing the packet to the store engine;
the store engine obtaining a free packet buffer from an elastic first-in, first-out (FIFO) memory, wherein the free packet buffer is an empty packet-sized block of memory in a local data store;
the store engine moving the packet into the free packet buffer and submitting the free packet buffer to the elastic FIFO memory;
performing a monitoring procedure to detect both an availability of connection-specific resources and a presence of one or more waiting packets with a known destination connection;
when (a) a destination connection with one or more waiting packets, and (b) available connection-specific resources, are both detected, removing the packet from the local data store;
allocating the one or more connection-specific resources required to send the packet to the virtual host memory corresponding to the connection destination; and
writing the packet to the virtual host memory.
1 Assignment
0 Petitions
Accused Products
Abstract
A packet that represents unknown traffic for a virtual host is received. A first test is performed to ascertain whether or not a destination connection can be determined for the received packet wherein, if a destination connection can be determined, a second test is performed to ascertain whether or not one or more connection-specific resources required to send the packet to a virtual host memory corresponding to the destination connection are available. If a destination connection for the packet cannot be determined, the packet is passed to a store engine. If the one or more connection-specific resources are not available, the packet is passed to the store engine. The store engine obtains a free packet buffer from a FIFO memory. The store engine moves the packet into the free packet buffer and submits the free packet buffer to the elastic FIFO memory. A monitoring procedure is performed to detect both an availability of connection-specific resources and a presence of one or more waiting packets with a known destination connection. When (i) a destination connection with one or more waiting packets, and (ii) available connection-specific resources, are both detected, removing the packet from the local data store; allocating the one or more connection-specific resources required to send the packet to the virtual host memory corresponding to the connection destination; and writing the packet to the virtual host memory.
15 Citations
28 Claims
-
1. A method for Ethernet virtualization using an elastic FIFO memory to facilitate flow of unknown traffic to a virtual host, the method comprising:
-
receiving a packet that represents unknown traffic on a network; performing a first test to ascertain whether or not a destination connection can be determined for the received packet wherein, if a destination connection can be determined, a second test is performed to ascertain whether or not one or more connection-specific resources required to send the packet to a virtual host memory corresponding to the destination connection are available; if a destination connection for the packet cannot be determined, passing the packet to a store engine; if the one or more connection-specific resources are not available, passing the packet to the store engine; the store engine obtaining a free packet buffer from an elastic first-in, first-out (FIFO) memory, wherein the free packet buffer is an empty packet-sized block of memory in a local data store; the store engine moving the packet into the free packet buffer and submitting the free packet buffer to the elastic FIFO memory; performing a monitoring procedure to detect both an availability of connection-specific resources and a presence of one or more waiting packets with a known destination connection; when (a) a destination connection with one or more waiting packets, and (b) available connection-specific resources, are both detected, removing the packet from the local data store; allocating the one or more connection-specific resources required to send the packet to the virtual host memory corresponding to the connection destination; and writing the packet to the virtual host memory. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system for Ethernet virtualization using an elastic FIFO memory to facilitate flow of unknown traffic to a virtual host, the system comprising:
-
a parser for receiving a packet representing unknown traffic on a network; an allocator, operatively coupled to the parser wherein, if the parser determines a destination connection for the packet, the allocator attempts to obtain one or more connection-specific resources required to send the packet to a virtual host memory corresponding to the destination connection; a store engine, operatively coupled to the allocator, wherein if the parser does not determine a destination connection for the packet, the parser passes the packet to the store engine and wherein, if the allocator fails in the attempt to obtain the one or more connection-specific resources, the allocator passes the packet to the store engine; an elastic first-in, first-out (FIFO) memory, operatively coupled to the store engine, wherein the store engine obtains a free packet buffer from the elastic FIFO memory, and wherein the free packet buffer is an empty packet-sized block of memory in a local data store;
the store engine moving the packet into the free packet buffer and submitting the free packet buffer to the elastic FIFO memory;a local engine for monitoring both the allocator and the elastic FIFO memory;
the allocator being monitored for an availability of connection-specific resources, and the elastic FIFO memory being monitored for a presence of one or more waiting packets with a known destination connection;
wherein, when a destination connection with both one or more waiting packets and available connection-specific resources is monitored by the local engine, the packet is removed from the local data store and passed to the allocator; and
wherein the allocator allocates the one or more connection-specific resources required to send the packet to a virtual host memory corresponding to the connection destination; anda send engine, operatively coupled to the allocator, for writing the packet to the virtual host memory. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer program product comprising a storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for facilitating a method for Ethernet virtualization using an elastic FIFO memory to facilitate flow of unknown traffic to a virtual host, the method comprising:
-
receiving a packet that represents unknown traffic on a network; performing a first test to ascertain whether or not a destination connection can be determined for the received packet wherein, if a destination connection can be determined, a second test is performed to ascertain whether or not one or more connection-specific resources required to send the packet to a virtual host memory corresponding to the destination connection are available; if a destination connection for the packet cannot be determined, passing the packet to a store engine; if the one or more connection-specific resources are not available, passing the packet to the store engine; the store engine obtaining a free packet buffer from an elastic first-in, first-out (FIFO) memory, wherein the free packet buffer is an empty packet-sized block of memory in a local data store; the store engine moving the packet into the free packet buffer and submitting the free packet buffer to the elastic FIFO memory; performing a monitoring procedure to detect both an availability of connection-specific resources and a presence of one or more waiting packets with a known destination connection; when (a) a destination connection with one or more waiting packets, and (b) available connection-specific resources, are both detected, removing the packet from the local data store; allocating the one or more connection-specific resources required to send the packet to the virtual host memory corresponding to the connection destination; and writing the packet to the virtual host memory. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
-
22. A hardware product comprising a storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for facilitating a method for Ethernet virtualization using an elastic FIFO memory to facilitate flow of unknown traffic to a virtual host, the method comprising:
-
receiving a packet that represents unknown traffic on a network; performing a first test to ascertain whether or not a destination connection can be determined for the received packet wherein, if a destination connection can be determined, a second test is performed to ascertain whether or not one or more connection-specific resources required to send the packet to a virtual host memory corresponding to the destination connection are available; if a destination connection for the packet cannot be determined, passing the packet to a store engine; if the one or more connection-specific resources are not available, passing the packet to the store engine; the store engine obtaining a free packet buffer from an elastic first-in, first-out (FIFO) memory, wherein the free packet buffer is an empty packet-sized block of memory in a local data store; the store engine moving the packet into the free packet buffer and submitting the free packet buffer to the elastic FIFO memory; performing a monitoring procedure to detect both an availability of connection-specific resources and a presence of one or more waiting packets with a known destination connection; when (a) a destination connection with one or more waiting packets, and (b) available connection-specific resources, are both detected, removing the packet from the local data store; allocating the one or more connection-specific resources required to send the packet to the virtual host memory corresponding to the connection destination; and writing the packet to the virtual host memory. - View Dependent Claims (23, 24, 25, 26, 27, 28)
-
Specification