Patent ID: 7072342

Claim:
A computer readable storage medium encoded with software instructions to perform the following operations when executed by a computer: (1) receiving packets and assigning sequence numbers to the packets; (2) using each packet's sequence number to assign a command buffer to the packet so that each two packets with consecutive sequence numbers are assigned different command buffers; (3) writing commands for the packets to the packets' assigned command buffers, wherein the computer is operable to have at least two commands for at least two of the packets to be written to different command buffers simultaneously or not in an order in which the corresponding sequence numbers are assigned to the Rackets in the operation (1); (4) reading the commands from the command buffers and executing the commands to transfer the packets in an order in which the corresponding sequence numbers are assigned to the packets in the operation (1); (5) wherein if any command buffer C 1 holds commands for at least two packets P 1 and P 2 with the packet P 1 having an earlier assigned sequence number than the packet P 2 , and another command buffer holds a command for another packet P 3 preceding P 2 but not P 1 , then the operation (4) is performed for the packet P 1 , then for the packet P 3 , then for the packet P 2 .