Patent ID: 7710990

Claim:
A method of receiving low latency data packets from a network fabric to be processed by a host computer system, comprising the steps of: determining if an incoming data packet is a low latency unreliable datagram; if the incoming packet is determined to be the low latency unreliable datagram, then receiving the packet in a dedicated low latency input buffer; reading a queue pair number in the received packet; obtaining queue pair context information corresponding to the queue pair number; constructing a completion queue element based on the queue pair context information and on information in a header of the received packet and combining the completion queue element with payload data of the received packet into a current single data message sufficient for the host computer system to complete processing of the data message; determining a size of the current single data message based on information in the header of the received packet and on the size of the completion queue element; and providing a receive queue in the host system comprising a plurality of slots each for storing, until processed by the host system, one of a plurality of single data messages or, if any single data message is larger than one slot, then storing a portion of the single data message, wherein each single data message begins at a slot boundary with the completion queue element preceding the data portion.