Method, system, and computer program product for ethernet virtualization using an elastic FIFO memory to facilitate flow of broadcast traffic to virtual hosts
First Claim
1. A method for Ethernet virtualization using an elastic FIFO memory to facilitate flow of broadcast traffic to a virtual host, the method comprising:
- receiving a packet that represents unknown traffic on a network, the packet including a header;
examining the packet header to ascertain that the packet is a broadcast packet;
passing the packet to a store engine;
the store engine obtaining a packet buffer from an elastic first-in, first-out (FIFO) memory, wherein the packet buffer is an empty packet-sized block of memory in a local data store;
the store engine moving the packet into the packet buffer and submitting the packet buffer to the elastic FIFO memory;
an assist engine finding the packet buffer on a named queue of broadcast packets and then determining a connection to the packet and moving the packet from the named queue to a numbered connection queue for that connection;
a local engine 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 a 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 test is performed to ascertain whether or not a destination connection can be determined for the received packet wherein it is discovered the packet is a broadcast (or multicast) packet. Since such packets have multiple destinations in a virtualized environment, the broadcast (or multicast) packet requires special handling and is passed to a store engine. The store engine obtains a free packet buffer from an elastic FIFO memory, moves the packet into the free packet buffer, and submits the free packet buffer back to the elastic FIFO memory. An assist engine determines and assigns connections to packets submitted to the elastic FIFO without known connections, such as broadcast (or multicast) packets. The assist engine efficiently performs this task through the use of indirect buffers, which are also obtained from and submitted back to the elastic FIFO. A monitoring engine detects both an availability of connection-specific resources and a presence of one or more waiting packets, within the elastic FIFO, with a known destination connection. When both are detected, said monitoring engine removes a packet from the elastic FIFO and passes it to an allocating engine. The allocating engine allocates the one or more connection-specific resources required to send the packet to the virtual host memory corresponding to the connection destination, then passes the packet to a sending engine which writes the packet to the virtual host memory.
-
Citations
14 Claims
-
1. A method for Ethernet virtualization using an elastic FIFO memory to facilitate flow of broadcast traffic to a virtual host, the method comprising:
-
receiving a packet that represents unknown traffic on a network, the packet including a header; examining the packet header to ascertain that the packet is a broadcast packet; passing the packet to a store engine; the store engine obtaining a packet buffer from an elastic first-in, first-out (FIFO) memory, wherein the packet buffer is an empty packet-sized block of memory in a local data store; the store engine moving the packet into the packet buffer and submitting the packet buffer to the elastic FIFO memory; an assist engine finding the packet buffer on a named queue of broadcast packets and then determining a connection to the packet and moving the packet from the named queue to a numbered connection queue for that connection; a local engine 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 a virtual host memory corresponding to the destination connection; and writing the packet to the virtual host memory. - View Dependent Claims (2, 3, 4)
-
-
5. A system for Ethernet virtualization using an elastic FIFO memory to facilitate flow of broadcast traffic to a virtual host, the system comprising:
-
a parser configured to receive a packet representing unknown traffic on a network; an allocator configured to obtain one or more connection-specific resources required to send the packet to a virtual host memory corresponding to a destination connection for the packet; a store engine, operatively coupled to the parser, the store engine configured to receive one or more broadcast packets from the parser; an elastic first-in, first-out (FIFO) memory, operatively coupled to the store engine, the elastic FIFO memory configured to store a packet buffer, wherein the store engine obtains the packet buffer from the elastic FIFO memory, and wherein the packet buffer is an empty packet-sized block of memory in a local data store;
the store engine moving the packet into the packet buffer and submitting the 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 (6, 7, 8, 9, 10, 11)
-
-
12. 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, the packet including a header; examining the packet header to ascertain that the packet is a broadcast packet and passing the packet to a store engine; the store engine obtaining a packet buffer from an elastic first-in, first-out (FIFO) memory, wherein the packet buffer is an empty packet-sized block of memory in a local data store; the store engine moving the packet into the packet buffer and submitting the packet buffer to the elastic FIFO memory; an assist engine finding the packet buffer on a named queue of broadcast packets and then determining a connection to the packet and moving the packet from the named queue to a numbered connection queue for that connection; a local engine 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 a virtual host memory corresponding to the destination connection; and writing the packet to the virtual host memory. - View Dependent Claims (13, 14)
-
Specification