Patent ID: 7924848

Claim:
A method for data reception, comprising: receiving from a communication network a Transport Control Protocol (TCP) segment comprising TCP packets containing at least a TCP header; communicating with a consumer application running on a host CPU having a host memory by exchanging, via a host interface, with the consumer application work queue elements via send and receive queues and completion queue elements via a completion queue; and processing the TCP packets by: performing TCP control operations on the TCP header using a protocol processor; performing TCP data movement operations, responsively to the TCP header, using an acceleration engine that operates simultaneously and asynchronously with respect to the protocol processor; and communicating between the acceleration engine and the protocol processor using an asynchronous queue interface, which is separate from the host interface and which comprises a command queue for conveying commands from the protocol processor to the acceleration engine and an event queue for reporting events from the acceleration engine to the protocol processor, wherein the TCP data movement operations performed by the acceleration engine comprise placement of data from one or more of the packets, via the host interface, in a consumer buffer in the host memory, and wherein the acceleration engine passes the TCP header to the protocol processor via the asynchronous queue interface and places the data in the consumer buffer without waiting for the protocol processor to process the TCP header.