Patent ID: 7269666

Claim:
A method comprising: tracking packet sequence numbers of request packets and response packets of transactions transferring data to or from a network interface, said method including, for every request packet transmitted by the network interface, writing the packet sequence number to a location in a circular send queue pointed to by a write pointer and setting a valid bit at said location, wherein the valid bit is indicative of whether at least one response is expected; incrementing the write pointer if the packet is a read request packet or clearing a read indicator at the location in the circular send queue pointed to by the write pointer if the packet is not a read request packet; and for every response packet received by the network interface, checking the packet sequence number of the response packet against the packet sequence number stored at a location in the circular send queue pointed to by the read pointer of the circular send queue; wherein a response packet is accepted if the valid bit at the location in the circular send queue pointed to by the read pointer is set and the packet sequence number of the response packet is both equal to or less than the packet sequence number written at the location in the circular send queue pointed to by the read pointer and greater than the last acknowledged packet sequence number, and wherein, if the response packet is a read response packet, it is accepted if the packet sequence number of the read response packet is equal to the packet sequence number written at the location in the circular send queue pointed to by the read pointer and the read indicator is set.