Patent ID: 7957288

Claim:
A method for ordering packets, the method comprising steps of: detecting at least one of an in-sequence and an out-of-sequence packet chain in one or more packet flows; storing the detected at least one of the in-sequence and the out-of-sequence packet chain in a memory; providing a sequence number with each of the stored in-sequence and the out-of-sequence packet chain; associating the sequence number with an address in the memory of at least one of the stored in-sequence and the out-of-sequence packet chain; ordering the at least one of the in-sequence and the out-of-sequence packet chain from the memory based on the associated sequence number to provide one or more packet flows all in-sequence; creating a linked list each time a new data packet is received out-of-sequence and linking in order all subsequent packets received in sequence to the linked list; accessing a transmission table to retrieve a next non-null entry; searching a reorder table based on the next non-null transmission table entry to locate a reorder table entry with a lowest sequence number and at least equal to or less than the sequence number in the next non-null transmission table entry; transmitting all packets in the at least one of the in-sequence and the out-of-sequence packet chain identified in the located reorder table entry so that the packets are sent in sequence order, and incrementing a transmitted packet count for each transmitted packet; and removing the located reorder entry.