Methods and apparatus for multi-path flow control within a multi-stage switch fabric
US-9426085-B1 · Aug 23, 2016 · US
US9762491B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9762491-B2 |
| Application number | US-201514672357-A |
| Country | US |
| Kind code | B2 |
| Filing date | Mar 30, 2015 |
| Priority date | Mar 30, 2015 |
| Publication date | Sep 12, 2017 |
| Grant date | Sep 12, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Communication apparatus includes multiple interfaces configured for connection to a packet data network. A memory, coupled to the interfaces, is configured as a shared buffer to contain packets in multiple sets of queues for transmission to the network. Each set of queues receives in the shared buffer a respective allocation having an allocation size that varies over time in response to an amount of space in the shared buffer that is unused at any given time. A controller is configured to apply congestion control to a respective fraction of the packets that are queued for transmission from each set of queues in the shared buffer to the network, such that the respective fraction is set for each set of queues at any given time in response to a relation between a length of the queues in the set and the allocation size of the respective allocation at the given time.
Opening claim text (preview).
The invention claimed is: 1. Communication apparatus, comprising: multiple interfaces configured for connection to a packet data network; a memory coupled to the interfaces and configured as a shared buffer to contain packets in multiple sets of queues for transmission to the network, each set of queues receiving in the shared buffer a respective allocation having an allocation size that varies over time in response to an amount of space in the shared buffer that is unused at any given time; and a controller, which is configured to periodically: determine, for each set of queues, a current length of the queues, compute a size of an unused portion of the memory, compute for each set of queues a threshold responsive to the computed size of unused memory, set a probability of marking packets with a congestion marking, for each set of queues, in response to the determined current length of the queue, a current allocation size of the set of queues and the computed threshold, and mark a respective fraction of the packets that are queued for transmission from each set of queues in the shared buffer to the network, according to the currently set probability. 2. The apparatus according to claim 1 , wherein the allocation size for each set of queues at any given time is determined by a threshold, which is equal to a product of the amount of the unused space in the buffer multiplied by a respective constant of proportionality. 3. The apparatus according to claim 2 , wherein the respective constant of proportionality is set to different, respective values for different ones of the sets of queues. 4. The apparatus according to claim 1 , wherein the respective fraction of the packets in each set of queues increases as the current length of the set of queues approaches the allocation size of the respective allocation. 5. The apparatus according to claim 1 , wherein the respective fraction of the packets in each set of queues increases as the allocation size of the set of queues decreases in response to increasing buffer occupancy by other queues. 6. The apparatus according to claim 1 , wherein the controller is configured to compute the respective fraction of the packets in each set of queues as a function of a ratio between the length of the queues in the set and the allocation size of the set of queues. 7. A method for communication, comprising: in a network element having multiple interfaces connected to a packet data network and a memory coupled to the interfaces and configured as a shared buffer to contain packets in multiple sets of queues for transmission to the network, allocating to each set of queues in the shared buffer a respective allocation having an allocation size that varies over time in response to an amount of space in the shared buffer that is unused at any given time; and periodically performing: determining, for each set of queues, a current length of the queues, computing a size of an unused portion of the memory, computing, for each set of queues, a threshold responsive to the computed size of unused memory, setting a probability of marking packets with a congestion marking, for each set of queues, in response to the determined current length of the queue, a current allocation size of the set of queues and the computed threshold, and marking a respective fraction of the packets that are queued for transmission from each set of queues in the shared buffer to the network, according to the currently set probability. 8. The method according to claim 7 , wherein allocating the respective allocation comprises setting for each set of queues a respective threshold, which is equal to a product of the amount of the unused space in the buffer multiplied by a respective constant of proportionality. 9. The method according to claim 8 , wherein the respective constant of proportionality is set to different, respective values for different ones of the sets of queues. 10. The method according to claim 7 , wherein the respective fraction of the packets in each set of queues to which the congestion control is applied increases as the current length of the queues in the set approaches the allocation size of the respective allocation. 11. The method according to claim 7 , wherein the respective fraction of the packets in each set of queues increases as the allocation size of the set of queues decreases in response to increasing buffer occupancy by other queues. 12. The method according to claim 7 , wherein applying congestion control comprises computing the respective fraction of the packets in each set of queues as a function of a ratio between the length of the queues in the set and the allocation size of the set of queues.
Flow control; Congestion control · CPC title
ATM peripheral units, e.g. policing, insertion or extraction · CPC title
Shared queuing · CPC title
Peripheral units, e.g. input or output ports · CPC title
Dynamic queue service slot or variable bandwidth allocation · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.