| CPC H04L 45/122 (2013.01) [H04L 45/123 (2013.01); H04L 45/24 (2013.01)] | 20 Claims |

|
1. A non-transitory computer-readable medium comprising instructions that, when executed, cause one or more processors to perform steps of:
receiving a request for a shortest path in a network from a source to a destination, based on a metric and with one or more constraints including a list of interfaces that should be included in the shortest path, in any order;
determining all possible path combinations between the source, the list of interfaces, and the destination, where each of the possible path combinations includes a plurality of sub-paths stitched together to form an end-to-end path between the source and the destination;
for each of the possible path combinations, determining the end-to-end path from the source to the destination based on (1) utilizing an already computed sub-path if available, (2) computing a sub-path if it has not been computed yet and storing a result for re-use, and (3) rejecting a possible path combination based on one or more criteria; and
responding to the request with a shortest path of all of the possible path combinations based on the metric.
|