Method, system, and computer program 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 destination connection with one or more waiting packets and 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 destination connection; 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.
9 Citations
21 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 destination connection with one or more waiting packets and 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 destination connection; 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 configured to receive a packet representing unknown traffic on a network and to attempt to determine a destination connection for the packet; an allocator;
operatively coupled to the parser, the allocator configured to attempt to obtain one or more connection-specific resources required to send the packet to a virtual host memory corresponding to the destination connection, the attempting responsive to the parser determining a destination connection for the packet;a store engine operatively coupled to the allocator, the store engine configured to receive the packet, 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, the FIFO memory configured to store a free packet buffer, wherein the store engine obtains the 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 configured to monitor 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 destination connection; anda send engine operatively coupled to the allocator, the send engine configured to write the packet to the virtual host memory. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer program product for facilitating Ethernet virtualization using an elastic FIFO memory to facilitate flow of unknown traffic to a virtual host, the computer program product comprising:
-
a tangible storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a 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 destination connection with one or more waiting packets and 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 destination connection destination; and writing the packet to the virtual host memory. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification