Arbitration of multiple-thousands of flows for convergence enhanced ethernet
US-9843529-B2 · Dec 12, 2017 · US
US10834008B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10834008-B2 |
| Application number | US-201715807463-A |
| Country | US |
| Kind code | B2 |
| Filing date | Nov 8, 2017 |
| Priority date | Jan 22, 2013 |
| Publication date | Nov 10, 2020 |
| Grant date | Nov 10, 2020 |
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.
In one embodiment, a method includes receiving a plurality of flows, each flow comprising packets of data and assigning a service credit to each of the plurality of flows. In addition, the method includes assigning a weight parameter to each of the plurality of flows, and selecting a flow from a head of a first control queue unless the first control queue is empty or there is indication that the first control queue should be avoided. A flow is selected from a head of a second control queue in response to a determination that the first control queue is empty or there is indication that the first control queue should be avoided. Additionally, the method includes providing a number of units of service to the selected flow. Moreover, the method includes decreasing the selected flow's service credit by an amount corresponding to the number of units of service provided thereto.
Opening claim text (preview).
What is claimed is: 1. A computer program product comprising a computer readable storage medium having program code embodied therewith, wherein the computer readable storage medium is not a transitory signal per se, the embodied program code executable by a device to cause the device to perform a method comprising: receiving, by the device, a plurality of flows, each flow comprising packets of data; assigning, by the device, a service credit to each of the plurality of flows, each flow's service credit being defaulted to a predetermined numerical value when initially assigned and adjusted after providing service to a flow corresponding to the flow's service credit; assigning, by the device, a weight parameter as a numerical value to each of the plurality of flows; enqueuing, by the device, a flow which receives new unserviced packets and is not present in any control queue to an end of a first control queue when the flow's service credit is greater than zero; enqueuing, by the device, a flow which receives new unserviced packets and is not present in any control queue to an end of a second control queue when the flow's service credit is not greater than zero; selecting, by the device, a flow from a head of the first control queue unless the first control queue is empty or there is indication that the first control queue should be avoided, wherein a flow is selected from a head of the second control queue in response to a determination that the first control queue is empty or there is indication that the first control queue should be avoided; providing, by the device, a number of units of service to the selected flow; and decreasing, by the device, the selected flow's service credit by an amount corresponding to the number of units of service provided thereto. 2. The computer program product as recited in claim 1 , wherein the embodied program code is further executable by the device to: create, by the device, the first control queue and the second control queue, each control queue being configured to store one or more flow descriptors; and increase, by the device, the selected flow's service credit by an amount corresponding to the selected flow's weight parameter in response to the selected flow being taken from the second control queue. 3. The computer program product as recited in claim 1 , wherein the embodied program code is further executable by the device to: enqueue, by the device, a second flow which receives new unserviced packets and is not present in any control queue to an end of the first control queue in response to a determination that the second flow's service credit is greater than zero; and enqueue, by the device, the second flow at an end of the second control queue in response to a determination that the second flow's service credit is not greater than zero. 4. The computer program product as recited in claim 1 , wherein the embodied program code is further executable by the device to provide, by the device, indication to avoid the first control queue only in response to a determination that the second control queue is nonempty and the selected flow was taken from the second control queue. 5. The computer program product as recited in claim 1 , wherein the embodied program code is further executable by the device to: enqueue, by the device, the selected flow, in response to the selected flow comprising unserviced data packets after providing service thereto, to an end of the first control queue in response to a determination that the selected flow's service credit is greater than zero; and enqueue, by the device, the selected flow, in response to the selected flow comprising unserviced data packets after providing service thereto, to an end of the second control queue in response to a determination that the selected flow's service credit is not greater than zero. 6. A method comprising: receiving a plurality of flows, each flow comprising packets of data; assigning a service credit to each of the plurality of flows, each flow's service credit being defaulted to a predetermined numerical value when initially assigned and adjusted after providing service to a flow corresponding to the flow's service credit; assigning a weight parameter as a numerical value to each of the plurality of flows; enqueuing a flow which receives new unserviced packets and is not present in any control queue to an end of a first control queue when the flow's service credit is greater than zero; enqueuing a flow which receives new unserviced packets and is not present in any control queue to an end of a second control queue when the flow's service credit is not greater than zero; selecting a flow from a head of the first control queue unless the first control queue is empty or there is indication that the first control queue should be avoided, wherein a flow is selected from a head of the second control queue in response to a determination that the first control queue is empty or there is indication that the first control queue should be avoided; providing a number of units of service to the selected flow; and decreasing the selected flow's service credit by an amount corresponding to the number of units of service provided thereto. 7. The method as recited in claim 6 , further comprising creating the first control queue and the second control queue, each control queue being configured to store one or more flow descriptors. 8. The method as recited in claim 6 , further comprising: enqueuing a second flow which receives new unserviced packets and is not present in any control queue to an end of the first control queue in response to a determination that the second flow's service credit is greater than zero; and enqueuing the second flow at an end of the second control queue in response to a determination that the second flow's service credit is not greater than zero. 9. The method as recited in claim 6 , further comprising increasing the selected flow's service credit by an amount corresponding to the selected flow's weight parameter in response to the selected flow being taken from the second control queue. 10. The method as recited in claim 6 , further comprising providing indication to avoid the first control queue only in response to a determination that the second control queue is nonempty and the selected flow was taken from the second control queue. 11. The method as recited in claim 6 , further comprising: enqueuing the selected flow to an end of the first control queue in response to the selected flow comprising unserviced data packets after providing service thereto and a determination that the selected flow's service credit is greater than zero; and enqueuing the selected flow to an end of the second control queue in response to the selected flow comprising unserviced data packets after providing service thereto and a determination that the selected flow's service credit is not greater than zero.
using multiple queues, one for each individual QoS, connection, flow or priority · CPC title
Quantum based scheduling, e.g. credit or deficit based scheduling or token bank · CPC title
Static queue service slot or fixed bandwidth allocation · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.