Patent ID: 7586917

Claim:
A method for re-ordering data units in a plurality of data streams transmitted across a plurality of processing paths, comprising: receiving data units associated with the plurality of data streams; assigning a first sequence number to each of the received data units; distributing the data units to the plurality of processing paths; processing the data units at each of the plurality of processing paths, one or more processing characteristics being associated with the processing of each of the data units at each of the plurality of processing paths; for each data unit: indexing, using the one or more processing characteristics, the first sequence number of the data unit into a list of a plurality of lists, where each one of the plurality of lists corresponds to a particular value of the one or more processing characteristics; and dequeuing all entries in the list that have sequence numbers smaller than the first sequence number; re-assigning data units corresponding to each of the dequeued entries with a corresponding second sequence number based on the list; and re-ordering the processed data units based on the corresponding second sequence number associated with each of the data units.