| CPC G06F 13/1642 (2013.01) [G06F 9/505 (2013.01); G06F 9/546 (2013.01); G06F 12/0862 (2013.01); G06F 12/1036 (2013.01); G06F 12/1063 (2013.01); G06F 13/14 (2013.01); G06F 13/16 (2013.01); G06F 13/1673 (2013.01); G06F 13/28 (2013.01); G06F 13/385 (2013.01); G06F 13/4022 (2013.01); G06F 13/4068 (2013.01); G06F 13/4221 (2013.01); G06F 15/17331 (2013.01); H04L 1/0083 (2013.01); H04L 43/0876 (2013.01); H04L 43/10 (2013.01); H04L 45/02 (2013.01); H04L 45/021 (2013.01); H04L 45/028 (2013.01); H04L 45/122 (2013.01); H04L 45/123 (2013.01); H04L 45/125 (2013.01); H04L 45/16 (2013.01); H04L 45/20 (2013.01); H04L 45/22 (2013.01); H04L 45/24 (2013.01); H04L 45/38 (2013.01); H04L 45/42 (2013.01); H04L 45/46 (2013.01); H04L 45/566 (2013.01); H04L 45/70 (2013.01); H04L 45/745 (2013.01); H04L 47/11 (2013.01); H04L 47/12 (2013.01); H04L 47/122 (2013.01); H04L 47/18 (2013.01); H04L 47/20 (2013.01); H04L 47/22 (2013.01); H04L 47/24 (2013.01); H04L 47/2441 (2013.01); H04L 47/2466 (2013.01); H04L 47/2483 (2013.01); H04L 47/30 (2013.01); H04L 47/32 (2013.01); H04L 47/323 (2013.01); H04L 47/34 (2013.01); H04L 47/39 (2013.01); H04L 47/52 (2013.01); H04L 47/621 (2013.01); H04L 47/6235 (2013.01); H04L 47/626 (2013.01); H04L 47/6275 (2013.01); H04L 47/629 (2013.01); H04L 47/76 (2013.01); H04L 47/762 (2013.01); H04L 47/781 (2013.01); H04L 47/80 (2013.01); H04L 49/101 (2013.01); H04L 49/15 (2013.01); H04L 49/30 (2013.01); H04L 49/3009 (2013.01); H04L 49/3018 (2013.01); H04L 49/3027 (2013.01); H04L 49/90 (2013.01); H04L 49/9005 (2013.01); H04L 49/9021 (2013.01); H04L 49/9036 (2013.01); H04L 49/9047 (2013.01); H04L 67/1097 (2013.01); H04L 69/22 (2013.01); H04L 69/40 (2013.01); G06F 13/1689 (2013.01); G06F 2212/50 (2013.01); G06F 2213/0026 (2013.01); G06F 2213/3808 (2013.01); H04L 45/28 (2013.01); H04L 45/7453 (2013.01); H04L 69/28 (2013.01)] | 20 Claims |

|
1. A method of routing data in a network having a plurality of switches configured in a hierarchical topology having a plurality of groups, each of the plurality of groups comprising a subset of the plurality of switches being connected to one another, and each of the plurality of groups being connected to at least one other of the plurality of groups, the method comprising:
maintaining per-group group load information provided by a load source outside the network, wherein the per-group group load information comprises a software-configurable value based on local traffic in each of the plurality of groups;
determining global non-minimal global port loads for a plurality of ports, wherein each global non-minimal global port load comprises a maximum of a load associated with a global port connected to one of the plurality of groups and the per-group group load information associated with the one of the plurality of groups reached by the global port; and
routing a packet between at least two of the plurality of groups using the per-group group load information and the global non-minimal global port loads to affect a set of routing decisions and to bias the set of routing decisions towards or away one or more paths.
|