Patent ID: 7733875

Claim:
A method for data transmission, comprising: receiving data for transmission to a communication network from a consumer application running on a host CPU by exchanging work queue elements via send and receive queues and completion queue elements via a completion queue in a host interface between the consumer application and an acceleration engine; processing the data so as to produce one or more Transport Control Protocol (TCP) segments comprising TCP packets belonging to a given connection by: performing TCP control operations on the packets of the given connection using a protocol processor, wherein performing the TCP control operations comprises processing information from a consumer doorbell; generating the TCP packets of the given connection by performing TCP data movement operations using the acceleration engine simultaneously and asynchronously with performing of the TCP control operations by 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 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; and transmitting the TCP segments to the communication network.