A method and system for processing out of order frames received by a host
bus adapter is provided. The method includes, determining if a current
frame is out of order; determining if a frame is within a range of
transfer for an Exchange; and creating (or appending if not the first
out-of-order frame) an out of order list if the current frame is a first
out of order frame. The method also includes, determining if an entry in
an out of order list has a relative offset value of zero; determining if
at least one entry has a relative offset value equal to a total transfer
length of an Exchange; and determining if every non-zero starting
relative offset has a matching entry. The method also scans an out of
order list and combines a last entry with an entry whose starting point
matches the end point of the last entry.