Patent ID: 8649370

Claim:
A method for programming a multi-connection slice through a multi-stage switch fabric comprising a plurality of ingress switches interconnected to a plurality of center stage switches interconnected to a plurality of egress switches, comprising: receiving a multi-connection slice request, wherein the multi-connection slice comprises the flow in a single direction across the multi-stage switch fabric from one of the plurality of ingress switches to one of the plurality of egress switches, and wherein the request comprises the number of channels for a link defined as a number 1 to N, N being a maximum number of channels for the link; computing an imbalance for all links from the one of the plurality of ingress switches to each of the plurality of center stage switches and from the one of the plurality of egress switches to each of the plurality of center stage switches, the imbalance comprising an actual number of free channels on a link versus an expected number of free channels on the link which comprises an average number of free channels across all the links; selecting a center stage switch of the plurality of center stage switches responsive to the lowest imbalance from the computing step, wherein the selecting is performed on the multi-connection slice request to make a best possible local decision for the multi-connection slice request at a time without considering other multi-connection slice requests needing center stage switch assignments; and performing background rebalancing responsive to the multi-stage switch fabric being idle for a time period, wherein background rebalancing is configured as a proactive measure to reduce imbalances in the plurality of center stage switches, and wherein the background rebalancing utilizes an imbalance threshold to select links and then randomly selects multi-connection slices for each of the selected links for rearrangement.