Patent ID: 7912979

Claim:
A method for delivering of a plurality of RDMA messages, the method comprising the steps of: placing each out-of-order RDMA message to a reassembly buffer, wherein each in-order RDMA message bypasses the reassembly buffer and is sent to an internal data buffer for direct placement to a destination buffer; storing information regarding each out-of-order RDMA message on a per TCP hole basis, wherein a TCP hole is a vacancy created in a TCP stream as a result of an out-of-order TCP segment, wherein the information stored for RDMA Read messages includes at least a number of pending RDMA Read Request messages waiting for a doorbell ring in a connection context on a per TCP hole basis or a number of completed RDMA Read Response messages on a per TCP hole basis; and delivering the plurality of RDMA messages in-order, such that the out-of-order RDMA messages are reassembled in-order in the reassembly buffer, wherein, for RDMA Send type messages, the delivering includes, for each RDMA Send message of a TCP hold, placing a completion queue element (CQE), the CQE including RDMA Send message specific information, in a work queue element (WQE) associated with the respective RDMA Send message and keeping a number of RDMA Send messages in a connection context on a per TCP hole basis.