Network-based computational accelerator
First Claim
1. A data processing device, comprising:
- a first packet communication interface for communication with at least one host processor via a network interface controller (NIC);
a second packet communication interface for communication with a packet data network;
a memory, configured to hold a flow state table containing context information with respect to multiple packet flows conveyed between the host processor and the network via the first and second packet communication interfaces; and
acceleration logic, which is coupled between the first and second packet communication interfaces and is configured to perform computational operations on payloads of packets in the multiple packet flows using the context information in the flow state table,wherein the acceleration logic is configured, upon receiving in a given flow, through the second packet communication interface, a packet that is out of order, to mark the given flow as an out-of-order flow in the flow state table and to convey the packet through the first packet communication interface along with a notification that the given flow is out of order, andwherein the acceleration logic is configured, after conveying the notification that the given flow is out of order, to receive from the at least one host processor an update to the flow state table with respect to the given flow, and following the update, to resume performing the computational operations on the packets in the given flow.
3 Assignments
0 Petitions
Accused Products
Abstract
A data processing device includes a first packet communication interface for communication with at least one host processor via a network interface controller (NIC) and a second packet communication interface for communication with a packet data network. A memory holds a flow state table containing context information with respect to multiple packet flows conveyed between the host processor and the network via the first and second interfaces packet communication interfaces. Acceleration logic, coupled between the first and second packet communication interfaces, performs computational operations on payloads of packets in the multiple packet flows using the context information in the flow state table.
27 Citations
28 Claims
-
1. A data processing device, comprising:
-
a first packet communication interface for communication with at least one host processor via a network interface controller (NIC); a second packet communication interface for communication with a packet data network; a memory, configured to hold a flow state table containing context information with respect to multiple packet flows conveyed between the host processor and the network via the first and second packet communication interfaces; and acceleration logic, which is coupled between the first and second packet communication interfaces and is configured to perform computational operations on payloads of packets in the multiple packet flows using the context information in the flow state table, wherein the acceleration logic is configured, upon receiving in a given flow, through the second packet communication interface, a packet that is out of order, to mark the given flow as an out-of-order flow in the flow state table and to convey the packet through the first packet communication interface along with a notification that the given flow is out of order, and wherein the acceleration logic is configured, after conveying the notification that the given flow is out of order, to receive from the at least one host processor an update to the flow state table with respect to the given flow, and following the update, to resume performing the computational operations on the packets in the given flow. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A data processing device, comprising:
-
a first packet communication interface for communication with at least one host processor via a network interface controller (NIC); a second packet communication interface for communication with a packet data network; a memory, configured to hold a flow state table containing context information with respect to multiple packet flows conveyed between the host processor and the network via the first and second packet communication interfaces; and acceleration logic, which is coupled between the first and second packet communication interfaces and is configured to perform computational operations on payloads of packets in the multiple packet flows using the context information in the flow state table, wherein the acceleration logic is configured to check the data packets against a predefined condition, and to pass a packet through between the packet communication interfaces without performing the computational operations on a payload of the packet when the packet does not satisfy the predefined condition, wherein the acceleration logic is configured, after passing a given packet received from the second packet communication interface through to the first packet communication interface without performing the computational operations, to receive, via the first packet communication interface, a replay instruction with respect to the given packet, and in response to the replay instruction, to perform the computational operations on a payload of the given packet and to pass the payload, following performance of the computational operations, to the NIC via the first packet communication interface.
-
-
15. A method for data processing, comprising:
-
receiving in a computational accelerator, which is coupled via a first packet communication interface to communicate with at least one host processor via a network interface controller (NIC) and via a second packet communication interface to communication with a packet data network, a flow of data packets through one of the first and second interfaces for conveyance to the other of the first and second packet communication interfaces; looking up context information with respect to the flow in a flow state table, which contains respective context entries with respect to multiple packet flows conveyed between the host processor and the network; performing, in the computational accelerator, a predefined computational operation on a payload of a data packet in the flow using the context information; after performing the predefined computational operation, transmitting the data packet through the other of the first and second packet communication interfaces; upon receiving from the network in a given flow the packet that is out of order, marking the given flow as an out-of-order flow in the flow state table and conveying the packet to the NIC along with a notification that the given flow is out of order, wherein performing the predefined computational operation comprises, after conveying the notification that the given flow is out of order, receiving from the at least one host processor an update to the flow state table with respect to the given flow, and following the update, resuming performance of the computational operations on the packets in the given flow. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
Specification