Patent ID: 8547827

Claim:
A method of restoring a network by providing at least one substitute path in place of a plurality of existing paths of a network carrying traffic of a plurality of service classes to reallocate the traffic carried by the plurality of existing paths, said method comprising: (a) determining total bandwidth needed to carry the traffic of the plurality of existing paths and determining a plurality of needed bandwidths each corresponding to one of the plurality of service classes; (b) providing a list of the plurality of needed bandwidths in decreasing bandwidth order; (c) generating a proposed route from available links in the network; (d) for a greatest non-allocated bandwidth of the plurality of needed bandwidths, if the greatest non-allocated bandwidth is less than or equal to the bandwidth of the proposed route, allocating a portion of the bandwidth of the proposed route to the greatest non-allocated bandwidth, assigning the traffic of the respective service class to the proposed route, removing the greatest non-allocated bandwidth from the list, and defining the next non-allocated bandwidth in the list as a current non-allocated bandwidth; (e) determining whether the current non-allocated bandwidth is less than or equal to a remaining bandwidth of the proposed route; (f) if the current non-allocated bandwidth is less than or equal to the remaining bandwidth of the proposed route, allocating a respective part of the remaining portion of the bandwidth of the proposed route to the current non-allocated bandwidth and assigning the traffic of the respective service class to the proposed route, removing the current non-allocated bandwidth from the list, and then if the current non-allocated bandwidth was not the last non-allocated bandwidth in the list remaining to be considered, defining the next non-allocated bandwidth as the current non-allocated bandwidth and returning to action (e); (g) if the current non-allocated bandwidth is greater than the remaining bandwidth of the proposed route, and if the current non-allocated bandwidth was not the last non-allocated bandwidth in the list remaining to be considered, defining the next non-allocated bandwidth as the current non-allocated bandwidth and returning to action (e); and, (h) when in action (g) the current non-allocated bandwidth was the last non-allocated bandwidth in the list remaining to be considered and the list includes non-allocated bandwidths, returning to action (c).