Fabric load balancing
First Claim
1. A method comprising:
- determining an average data intensity for each of a plurality of outputs, wherein the average data intensity is based on recent data packet transmissions respectively to each of the plurality of outputs;
receiving an output congestion value from each of the plurality of outputs;
calculating, by a processor, an effective congestion value for each of the plurality of outputs, wherein the effective congestion value is a function of the output congestion value and the average data intensity;
performing, by the processor, a comparison of the effective congestion values for the plurality of outputs; and
selecting an output based on the comparison,wherein the output congestion value is calculated based on at least one of a shadow queue value of the output or an arbiter value,wherein when the output congestion value is calculated based on the shadow queue value of the output, the shadow queue value of the output is a virtual queue size for the output, andwherein when the output congestion value is calculated based on the arbiter value, the arbiter value reflects packets with a pending arbiter request.
1 Assignment
0 Petitions
Accused Products
Abstract
In one implementation, a series of nodes in a network or a fabric communicate congestion values upstream against the flow of data packets. A current node determines average data intensity for each of a set of outputs. The average data intensity is based on recent data packet transmissions respectively to each of the set of outputs. The current node receives an output congestion value from each of the set of outputs and calculates an effective congestion value for each of the plurality of outputs as a function of the output congestion value and the average data intensity. The current node performs a comparison of the effective congestion values for the plurality of outputs and selects an output based on the comparison.
27 Citations
16 Claims
-
1. A method comprising:
-
determining an average data intensity for each of a plurality of outputs, wherein the average data intensity is based on recent data packet transmissions respectively to each of the plurality of outputs; receiving an output congestion value from each of the plurality of outputs; calculating, by a processor, an effective congestion value for each of the plurality of outputs, wherein the effective congestion value is a function of the output congestion value and the average data intensity; performing, by the processor, a comparison of the effective congestion values for the plurality of outputs; and selecting an output based on the comparison, wherein the output congestion value is calculated based on at least one of a shadow queue value of the output or an arbiter value, wherein when the output congestion value is calculated based on the shadow queue value of the output, the shadow queue value of the output is a virtual queue size for the output, and wherein when the output congestion value is calculated based on the arbiter value, the arbiter value reflects packets with a pending arbiter request. - View Dependent Claims (2, 3)
-
-
4. A method comprising:
-
determining an average data intensity for each of a plurality of outputs, wherein the average data intensity is based on recent data packet transmissions respectively to each of the plurality of outputs; receiving an output congestion value from each of the plurality of outputs; calculating, by a processor, an effective congestion value for each of the plurality of outputs, wherein the effective congestion value is a function of the output congestion value and the average data intensity; performing, by the processor, a comparison of the effective congestion values for the plurality of outputs; and selecting an output based on the comparison, wherein the output congestion value is calculated based on a second effective congestion value received from a downstream node. - View Dependent Claims (5, 6, 7)
-
-
8. A method comprising:
-
determining an average data intensity for each of a plurality of outputs, wherein the average data intensity is based on recent data packet transmissions respectively to each of the plurality of outputs; receiving an output congestion value from each of the plurality of outputs; calculating, by a processor, an effective congestion value for each of the plurality of outputs, wherein the effective congestion value is a function of the output congestion value and the average data intensity; performing, by the processor, a comparison of the effective congestion values for the plurality of outputs; selecting an output based on the comparison, and calculating a current congestion value for an input based on a weighted average of a past congestion value for the input and the effective congestion value of the selected output. - View Dependent Claims (9)
-
-
10. A network device comprising:
-
an input communication interface configured to receive an output congestion value from each of a plurality of eligible outputs; and a processor configured to calculate a first effective congestion value for each of the plurality of eligible outputs as a function of the output congestion value and an average data intensity, wherein the average data intensity is based on recent data packet transmissions respectively to each of the plurality of eligible outputs; wherein the processor selects one of the plurality of eligible outputs based on a comparison of the first effective congestion values for the plurality of eligible outputs, wherein the output congestion value is calculated based on a second effective congestion value received from a node downstream of the network device. - View Dependent Claims (11, 12, 13)
-
-
14. A non-transitory computer readable medium containing instructions that when executed are configured to:
-
determine an average data intensity for each of a plurality of outputs available to a current node, wherein the average data intensity is based on recent data packet transmissions respectively to each of the plurality of outputs; receive an output congestion value from a plurality of downstream nodes; calculate an effective congestion value for each of the plurality of outputs, wherein the effective congestion value is a function of the output congestion value and the average data intensity; select a lowest of the effective congestion values for the plurality of outputs; and forward an indication of the lowest of the effective congestion values to an upstream node, wherein the output congestion value is calculated based on a downstream effective congestion value received from a node downstream of the current node. - View Dependent Claims (15, 16)
-
Specification