METHOD, SYSTEM, COMPUTER PROGRAM PRODUCT, AND HARDWARE 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 a the packet header to ascertain that the packet is a broadcast packet;
passing the packet to a 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 packet buffer to the elastic FIFO memory;
an assist engine finding the packet buffer on the named queue of broadcast packets and then determining a connection to the packet and moving the packet from the named queue to the 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) 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;
an allocator allocating the one or more connection-specific resources required to send the packet to the virtual host memory corresponding to the connection destination; and
a send engine 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.
22 Citations
17 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 a the packet header to ascertain that the packet is a broadcast packet; passing the packet to a 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 packet buffer to the elastic FIFO memory; an assist engine finding the packet buffer on the named queue of broadcast packets and then determining a connection to the packet and moving the packet from the named queue to the 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) 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; an allocator allocating the one or more connection-specific resources required to send the packet to the virtual host memory corresponding to the connection destination; and a send engine 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 for receiving a packet representing unknown traffic on a network; an allocator, operatively coupled to the local engine, for obtaining 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, to which the parser passes one or more broadcast packets; 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 (6, 7, 8, 9, 10, 11)
-
-
12. 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, the packet including a header; examining the header to ascertain that the packet is a broadcast packet and passing the packet to a 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 packet buffer to the elastic FIFO memory; an assist engine finding the packet buffer on the named queue of broadcast packets and then determining a connection to the packet and moving the packet from the named queue to the 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) 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; an allocator allocating the one or more connection-specific resources required to send the packet to the virtual host memory corresponding to the connection destination; and a send engine writing the packet to the virtual host memory. - View Dependent Claims (13, 14)
-
-
15. 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, the packet including a header; examining the header to ascertain that the packet is a broadcast packet and passing the packet to a 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 packet buffer to the elastic FIFO memory; an assist engine finding the packet buffer on the named queue of broadcast packets and then determining a connection to the packet and moving the packet from the named queue to the 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) 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; an allocator allocating the one or more connection-specific resources required to send the packet to the virtual host memory corresponding to the connection destination; and a send engine writing the packet to the virtual host memory. - View Dependent Claims (16, 17)
-
Specification