7394822

Using Reassembly Queue Sets for Packet Reassembly

PublishedJuly 1, 2008
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
21 claims

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

1

1. A method of reassembling packets received across a plurality of switching fabrics, comprising: associating a reassembly queue set (RQS) with a traffic class, wherein said RQS includes a plurality of reassembly queues, wherein each reassembly queue of said RQS corresponds to an independent switching fabric of said plurality of switching fabrics; receiving cells, wherein each cell has an associated traffic class, and wherein each cell is received on one of said plurality of switching fabrics; enqueuing the received cells in said plurality of reassembly queues of the RQS in accordance with the associated traffic class of each cell and the switching fabric on which each cell is received; dequeuing cells in round robin fashion from said plurality of reassembly queues; and reassembling packets from the dequeued cells.

2

2. The method of claim 1 , further comprising maintaining one RQS for each ingress of a plurality of ingresses.

3

3. The method of claim 1 , further comprising initializing said RQS to a starting position, wherein said starting position comprising a first queue.

4

4. The method of claim 1 , said dequeuing further comprising waiting until a plurality of cells are enqueued.

5

5. The method of claim 1 , said reassembling further comprising: accumulating said dequeued cells at an in-progress buffer; and reassembling the accumulated cells into a packet if the dequeued cells include an end-of-packet cell.

6

6. The method of claim 1 , further comprising: marking a first unicast cell with a rotating row identifier; enqueuing said first unicast cell in a first row of a first queue; comparing said row identifier with said first row; flushing said first queue if a row identifier mismatch is detected; and reinitializing said first queue if said row identifier mismatch is detected.

7

7. The method of claim 1 , wherein a first multicast cell is an end-of-packet cell, further comprising: marking a first multicast cell with a continuation indicator; enqueuing said first multicast cell in a first row of a first queue; enqueuing a second multicast cell in said first row of said first queue while said first multicast cell is enqueued; dequeuing said first multicast cell; and dequeuing said second multicast cell.

8

8. The method of claim 1 , further comprising: skipping queues associated with unavailable switching fabrics during said enqueuing; and skipping queues associated with unavailable switching fabrics during said dequeuing.

9

9. The method of claim 1 , further comprising: adding another queue to the RQS, wherein the added queue is associated with a newly available switching fabric of the plurality of switching fabrics.

10

10. A system for reassembling packets received across a plurality of switching fabrics, comprising: a packet memory; a receive interface configured to receive cells striped across a plurality of switching fabric modules via respective high speed interfaces (HSIs) for storage in said packet memory; a plurality of reassembly queues configured to queue received cells, wherein said plurality of reassembly queues are logically divided into reassembly queue sets (RQSs) that include one reassembly queue per switching fabric module of said plurality of switching fabric modules; a packet constructor configured to: accumulate cells in-order as said cells are dequeued from said reassembly queues; reassemble one or more of said cells into a packet when an end-of-packet (EOP) cell is dequeued from one of said reassembly queues; a packet queue configured to enqueue said packet; and a transmit interface configured to dequeue said packet and send said packet from said packet memory.

11

11. The system of claim 10 , further comprising: said plurality of switching fabric modules coupled to said receive interface by said respective HSIs; and a plurality of ingress modules coupled to said plurality of switching fabric modules by a set of respective HSIs.

12

12. The system of claim 10 , said reassembly queues comprising: a number of reassembly queues equal to a number of said plurality of ingress modules multiplied by a number of said plurality of switching fabric modules multiplied by a number of cell traffic classes.

13

13. The system of claim 10 , an RQS of said RQSs further comprising: a subplurality of said reassembly queues, wherein said reassembly queues have a head from which cells are dequeued and a tail onto which cells are enqueued, and wherein said subplurality of reassembly queues are arranged in order from a first reassembly queue to a last reassembly queue and back to said first reassembly queue; write pointers associated with each of said subplurality of said reassembly queues, wherein said write pointers point to the tails of said reassembly queues; a column pointer associated with said RQS, wherein said column pointer points to the head of a reassembly queue of said subplurality of reassembly queues, and wherein when a cell is dequeued from the head of said reassembly queue, the column pointer is incremented to a next reassembly queue of said subplurality of reassembly queues.

14

14. The system of claim 10 , wherein said packet constructor is further configured to: exclude a reassembly queue from said reassembly queues from which said cells are dequeued, when said reassembly queue is associated with an unavailable switching fabric; and include said reassembly queue in said reassembly queues from which said cells are dequeued, when said reassembly queue is associated with an available switching fabric.

15

15. A packet forwarding device, comprising: one or more ingresses, wherein each ingress includes a plurality of unicast ingress queues and a plurality of multicast ingress queues; a plurality of switching fabrics respectively coupled to each of said one or more ingresses by high speed interfaces (HSIs), wherein each switching fabric includes a plurality of buffers that correspond to said unicast ingress queues; and one or more egresses respectively coupled to each of said plurality of switching fabrics by HSIs, wherein each egress includes: a plurality of unicast reassembly queue sets (RQSs) that correspond to said unicast ingress queues, wherein said unicast RQSs each include a reassembly queue that corresponds to one of said switching fabrics; and a plurality of multicast RQSs that correspond to said multicast ingress queues, wherein said multicast RQSs each include a reassembly queue that corresponds to one of said switching fabrics.

16

16. The device of claim 15 , said egress further comprising: a packet memory; a receive interface configured to receive cells striped across said plurality of switching fabric modules via respective HSIs for storage in said packet memory; a packet constructor configured to: accumulate cells as said cells are dequeued from said reassembly queues; reassemble a subplurality of said cells into a packet when an end-of-packet (EOP) cell is dequeued from one of said reassembly queues; a packet queue configured to enqueue said packet; and a transmit interface configured to dequeue said packet and send said packet from said packet memory.

17

17. The device of claim 15 , further comprising: said plurality of switching fabric modules coupled to said receive interface by said respective HSIs; and a plurality of ingress modules coupled to said plurality of switching fabric modules by a set of respective HSIs.

18

18. The device of claim 17 , said reassembly queues comprising: a number of reassembly queues equal to a number of said plurality of ingress modules multiplied by a number of said plurality of switching fabric modules multiplied by a number of cell traffic classes.

19

19. The device of claim 15 , an RQS of said RQSs further comprising: a subplurality of said reassembly queues, wherein said reassembly queues have a head from which cells are dequeued and a tail onto which cells are enqueued, and wherein said subplurality of reassembly queues are arranged in order from a first reassembly queue to a last reassembly queue and back to said first reassembly queue; write pointers associated with each of said subplurality of said reassembly queues, wherein said write pointers point to the tails of said reassembly queues; a column pointer associated with said RQS, wherein said column pointer points to the head of a reassembly queue of said subplurality of reassembly queues, and wherein when a cell is dequeued from the head of said reassembly queue, the column pointer is incremented to a next reassembly queue of said subplurality of reassembly queues.

20

20. The device of claim 15 , wherein said reassembly queues enqueued cells from respective ingress queues, said packet constructor further configured to: associate a first subplurality of said cells that are received from a first respective ingress queue with a first row of a first RQS; associate said first subplurality of cells with respective reassembly queues of said first RQS; and reassemble said first subplurality of cells into one or more packet segments.

21

21. The device of claim 15 , wherein said receive interface is further configured to receive synchronization cells from an ingress module and said reassembly engine is further configured to initialize each RQS to a starting position using said synchronization cells, said egress further comprising: a synchronization module, including a fabric test block configured to test said switching fabric modules for availability; and free buffer queues configured to contain cells that are received out of order.

Patent Metadata

Filing Date

Unknown

Publication Date

July 1, 2008

Inventors

Gregory S. Mathews
Eric Anderson
Philip Ferolito
Mike Morrison

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. “USING REASSEMBLY QUEUE SETS FOR PACKET REASSEMBLY” (7394822). https://patentable.app/patents/7394822

© 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.