Packet reassembly and deadlock avoidance for use in a packet switch
First Claim
1. For use in a system having a source module with a plurality of source queues, each of the source queues for storing one or more cells of one or more packets, a destination module with a plurality of destination queues, each of the destination queues for storing one or more cells of one or more packets, and a link between the source module and the destination module, a method for scheduling the communication of cells over the link comprising:
- a) determining, in a substantially fair manner, a non-empty source queue to grant access to the link at a given time;
b) determining whether or not to transmit a head-of-line cell of the determined non-empty source queue such that the transmission of cells of packets destined for different destination queues can be interleaved, but the transmission of cells of different packets destined for the same destination queue cannot be interleaved;
c) if it is determined to transmit the head-of-line cell of the determined non-empty source queue, then transmitting the-head-of line cell; and
d) if it is determined not to transmit the head-of-line cell of the determined non-empty source queue, then determining a next, non-empty source queue to grant access to the link in a substantially fair manner.
3 Assignments
0 Petitions
Accused Products
Abstract
Practical packet reassembly in large, multi-plane, multi-stage switches is possible by using a scheduling technique called dynamic packet interleaving. With dynamic packet interleaving scheduling, if more than one packet is contending for the same output link in a switch module, an arbiter in the switch module gives priority to a partial packet (i.e., to a packet that has had at least one cell sent to the queue). The number of reassembly queues required to ensure reassembly is dramatically reduced (e.g., to the number of paths multiplied by the number of scheduling priorities). Deadlock may be avoided by guaranteeing (e.g., reserving) at least one cell space for all partial packets.
127 Citations
32 Claims
-
1. For use in a system having a source module with a plurality of source queues, each of the source queues for storing one or more cells of one or more packets, a destination module with a plurality of destination queues, each of the destination queues for storing one or more cells of one or more packets, and a link between the source module and the destination module, a method for scheduling the communication of cells over the link comprising:
-
a) determining, in a substantially fair manner, a non-empty source queue to grant access to the link at a given time;
b) determining whether or not to transmit a head-of-line cell of the determined non-empty source queue such that the transmission of cells of packets destined for different destination queues can be interleaved, but the transmission of cells of different packets destined for the same destination queue cannot be interleaved;
c) if it is determined to transmit the head-of-line cell of the determined non-empty source queue, then transmitting the-head-of line cell; and
d) if it is determined not to transmit the head-of-line cell of the determined non-empty source queue, then determining a next, non-empty source queue to grant access to the link in a substantially fair manner. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. For use in a system having a source module with a plurality of source queues, each of the source queues for storing one or more cells of one or more packets, a destination module with a plurality of destination queues, each of the destination queues for storing one or more cells of one or more packets, and a link between the source module and the destination module, a scheduler comprising:
-
a) means for determining, in a substantially fair manner, a non-empty source queue to grant access to the link at a given time;
b) means for determining whether or not to transmit a head-of-line cell of the determined non-empty source queue such that the transmission of cells of packets destined for different destination queues can be interleaved, but the transmission of cells of different packets destined for the same destination queue cannot be interleaved; and
c)means for transmitting the-head-of line cell only if it is determined to transmit the head-of-line cell of the determined non-empty source queue, wherein the means for determining a non-empty source queue determines a next, non-empty source queue to grant access to the link in a substantially fair manner if it is determined not to transmit the head-of-line cell of the determined non-empty source queue. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. For use in a system having a source module with a plurality of source queues, each of the source queues for storing one or more cells of one or more packets, a destination module with a plurality of destination queues, each of the destination queues for storing one or more cells of one or more packets, and a link between the source module and the destination module, a method for scheduling the communication of cells over the link comprising:
-
a)performing cell scheduling to determine which of a plurality of head-of-line cells to transmit over a link at any given time; and
b)sending head-of-line cells in the source queues in accordance with the cell scheduling determinations, wherein the cell scheduling determinations are made such that cells of different packets destined for different destination queues can be interleaved but cells of different packets destined for the same destination queue cannot be interleaved.
-
-
32. For use in a system having a source module with a plurality of source queues, each of the source queues for storing one or more cells of one or more packets, a destination module with a plurality of destination queues, each of the destination queues for storing one or more cells of one or more packets, and a link between the source module and the destination module, a method for scheduling the communication of cells over the link comprising:
-
a) performing cell scheduling to determine which of a plurality of head-of-line cells to transmit over a link at any given time; and
b) sending head-of-line cells in the source queues in accordance with the cell scheduling determinations, wherein at least one destination queue is provided in a buffer, and wherein if a part of a packet has been sent, but not the entire packet, at least one cell space is reserved in the buffer for the partially sent packet.
-
Specification