Patentable/Patents/US-8879560
US-8879560

Reorder engine with error recovery

PublishedNovember 4, 2014
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

A reorder engine classifies information relating to incoming data items as belonging to either a first, second, or third region. The information relating to the data items may arrive at the reorder engine out of order. The data items each include a sequence number through which the reorder engine may reconstruct the correct order of the data items. Based on the classification, the reorder engine may either process the data items normally or drop certain ones of the data items. The majority of incoming data items will fall in the first region and are processed normally. Data items arriving in the second region indicate that a previous data item is late or delayed. If this previous data item is delayed but does eventually arrive, it will arrive in the third region and is simply ignored.

Patent Claims
20 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A network device comprising: a memory to: store information associated with a plurality of data units received by the network device, the information associated with the plurality of data units being stored based on a relative order associated with a transmission of each data unit of the plurality of data units, to the network device; and a component, at least partially implemented in hardware, to: determine whether a position, in the relative order, associated with a first data unit, the plurality of data units, is included within a first range of positions in the relative order or a second range of positions in the relative order, the second range of positions extending a particular quantity of positions from a first position of the first range of positions, and the second range of positions not being included in the first range of positions; store, when the position is included in the first range of positions, information associated with the first data unit in a portion of the memory associated with the first range of positions; and when the position is included in the second range of positions: shift the first range of positions to form a shifted first range of positions, the position comprising a first position of the shifted first range of positions, and at least one position, included in the first range of positions, not being included in the shifted first range of positions; store the information associated with the first data unit in a portion of the memory associated with the first position of the shifted first range of positions; and invalidate at least a second data unit of the plurality of data units, information associated with the at least the second data unit being stored in a portion of the memory associated with the at least one position.

2

2. The network device of claim 1 , where, when the position is included in the second range of positions, the component is further to: invalidate portions of the memory associated with a third range of positions, the third range of positions including the at least one position, and the third range of positions including positions, in the relative order, between a last position of the first range of positions and a last position of the shifted first range of positions.

3

3. The network device of claim 1 , where the component is further to: discard, when the position is not included in the first range of positions or the second range of positions, the first data unit.

4

4. The network device of claim 1 , where, when invalidating the second data unit, the component is to: clear a valid bit associated with an entry in the memory corresponding to the at least one position.

5

5. The network device of claim 1 , where, when invalidating the second data unit, the component is to: set a flush bit associated with an entry in the memory corresponding to the at least one position.

6

6. The network device of claim 2 , where the component is further to: serialize recovery of the portions of the memory associated with the third range of positions.

7

7. The network device of claim 6 , where the component is further to: serialize the recovery of the portions of the memory associated with the third range of positions based on one or more flush bits associated with the portions of the memory associated with the third range of positions.

8

8. A method comprising: receiving, by a network device, a plurality of data units; for each data unit, of the plurality of data units: determining, by the network device, whether a position, in a relative order associated with a transmission of the data unit to the network device, is included in a first range of positions of the relative order or a second range of positions of the relative order; the second range of positions extending a particular number of positions from a first position of the first range of positions, and the second range of positions not being included in the first range of positions; storing, by the network device and when the position is included within the first range of positions, information associated with the data unit in a portion, of a memory, associated with the first range of positions; when the position is included in the second range of positions: shifting, by the network device, the first range of positions to form a shifted first range of positions, the position comprising a first position of the shifted first range of positions, and at least one position, in the first range of positions, not being included in the shifted first range of positions; storing, by the network device, the information associated with the data units data unit in a portion of the memory associated with the first position of the shifted first range of positions; and invalidating, by the network device, another data unit of the plurality of data units, information associated with the other data unit being stored in a portion of the memory associated with the at least one position.

9

9. The method of claim 8 , further comprising: invalidating, based on shifting the first range of positions, portions of the memory associated with a third range of positions, the third range of positions including the at least one position, and the third range of positions including positions, in the relative order, between a last position of the first range of positions and a last position of the shifted first range of positions.

10

10. The method of claim 8 , further comprising: discarding, when the position determined for the data unit is not included in the first range of positions or the second range of positions, the data unit.

11

11. The method of claim 8 , where invalidating the other data unit includes: clearing a valid bit associated with an entry in the memory corresponding to the at least one position.

12

12. The method of claim 8 , where invalidating the other data unit includes: setting a flush bit associated with an entry in the memory corresponding to the at least one position.

13

13. The method of claim 9 , further comprising: serializing a recovery of the portions of the memory associated with the third range of positions.

14

14. The method of claim 13 , where serializing the recovery of the portions of the memory associated with the third range of positions includes: serializing the recovery of the portions of the memory associated with the third range of positions based on one or more flush bits associated with the portions of the memory associated with the third range of positions.

15

15. A non-transitory memory device storing instructions, the instructions comprising: one or more instructions which, when executed by a network device, cause the network device to: determine whether a position of a first data unit, of a plurality of data units received by the network device, in a relative order associated with a transmission of each data unit, of the plurality of data units,. to the network device is included within a first range of positions in the relative order or within a second range of positions in the relative order, the second range of positions extending a particular number of positions from a first position of the first range of positions, and the second range of positions not being included in the first range of positions; store, when the position is included within the first range of positions, information associated with the first data unit in a portion of the memory associated with the first range of positions; and when the position is included in the second range of positions: shift the first range of positions to form a shifted first range of positions, the position comprising a first position of the shifted first range of positions, and at least one position, included in the first range of positions, not being included in the shifted first range of positions; store the information associated with the first data unit in a portion of the memory associated with the first position of the shifted first range of positions; and invalidate a second data unit of the plurality of data units, information associated with the second data unit being stored in a portion of the memory associated with the at least one position.

16

16. The non-transitory memory device of claim 15 , where the instructions further comprise: one or more instructions which, when executed by the network device, cause the network device to invalidate, based on shifting the first range of positions, portions of the memory associated with a third range of positions, the third range of positions including the at least one position, and the third range of positions including positions, in the relative order, between a last position of the first range of positions and a last position of the shifted first range of positions.

17

17. The non-transitory memory device of claim 15 , where the instructions further comprise: one or more instructions which, when executed by the network device, cause the network device to discard, when the position is not included in the first range of positions or the second range of positions, the first data unit.

18

18. The non-transitory memory device of claim 15 , where the one or more instructions to invalidate the second data unit include: one or more instructions which, when executed by the network device, cause the network device to clear a valid bit associated with an entry in the memory corresponding to the at least one position.

19

19. The non-transitory memory device of claim 15 , where the one or more instructions to invalidate the second data unit include: one or more instructions which, when executed by the network device, cause the network device to set a flush bit associated with an entry in the memory corresponding to the at least one position.

20

20. The non-transitory memory device of claim 16 , where the instructions further comprise: one or more instructions which, when executed by the network device, cause the network device to serialize, based on one or more flush bits associated with the portions of the memory associated with the third range of positions, a recovery of the portions of the memory associated with the third range of positions.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

May 31, 2011

Publication Date

November 4, 2014

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Reorder engine with error recovery” (US-8879560). https://patentable.app/patents/US-8879560

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.