Selecting alternate paths for network destinations
First Claim
Patent Images
1. A method of minimizing path values associated with paths in a network comprising:
- storing a data structure defining a network of nodes and links where the links have at least one weight between nodes;
storing plural data sets, each data set corresponding to the paths that yield the solutions of a minimization function, and each element of the data set containing a path value that corresponds to the solution for a particular node of the network for that minimization function; and
for the plural data sets, maintaining a common set of candidate nodes having path values to be inherited by other nodes; and
successively selecting nodes from the set of candidate nodes and computing path values of nodes neighboring the selected nodes from path values of the selected nodes and weight values from functions of the traversed links; and
updating any path value which has been further reduced for a node neighboring the selected node and then adding that node to the common set of candidate nodes if that node is not already in that set.
3 Assignments
0 Petitions
Accused Products
Abstract
Network traffic is sent via alternate paths in cases of network link or node failure. An alternate node responds to U-Turn traffic from a primary neighbor to select a further alternate. An algorithm for determining the alternate paths is provided to select loop-free neighbors.
-
Citations
26 Claims
-
1. A method of minimizing path values associated with paths in a network comprising:
-
storing a data structure defining a network of nodes and links where the links have at least one weight between nodes;
storing plural data sets, each data set corresponding to the paths that yield the solutions of a minimization function, and each element of the data set containing a path value that corresponds to the solution for a particular node of the network for that minimization function; and
for the plural data sets, maintaining a common set of candidate nodes having path values to be inherited by other nodes; and
successively selecting nodes from the set of candidate nodes and computing path values of nodes neighboring the selected nodes from path values of the selected nodes and weight values from functions of the traversed links; and
updating any path value which has been further reduced for a node neighboring the selected node and then adding that node to the common set of candidate nodes if that node is not already in that set. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method of minimizing path values associated with paths in a network comprising:
-
storing a data structure defining a network of nodes and link where the links have at least one weight between nodes;
storing plural data sets, each data set corresponding to the paths that yield the solutions of a minimization function, and each element of the data set containing a path value that corresponds to the solution for a particular node of the network for that minimization function; and
processing a Dijkstra algorithm with respect to the plural data sets of path values by selecting nodes from a common set of candidate nodes having path values to be inherited by other nodes as the plural data sets are processed together in accordance with the Dijkstra algorithm where the weight used is a function of the link characteristics; and
updating any path value which has been further reduced for a node neighboring the selected node and then adding that node to the common set of candidate nodes if that node is not already in that set.
-
-
17. A router within a network comprising:
-
a data structure defining the network of nodes and link weights between the nodes;
plural data sets, each data set corresponding to the solutions (which will be referred to as paths in the remainder of the claims) of a particular minimization function, and each element of the data set corresponding to the computation of the solution for a particular node of the network for that particular minimization function; and
a set of one or more processors that, for the plural data sets, maintains a common set of candidate nodes having path values to be inherited by other nodes and that successively selects nodes from the set of candidate nodes and computes path values of nodes neighboring the selected values from path values of the selected nodes and weight values based on functions of the traversed links.
-
-
18. A method of identifying whether a neighbor node is a U-turn alternate neighbor relative to each node in a network comprising:
-
storing a data structure defining a network of nodes and link weights between nodes;
providing a data set of path values, each element of the data set corresponding to one of the nodes of the network;
identifying plural potential alternate nodes of the neighbor node;
with respect to each of the potential alternate nodes of the neighbor node, successively computing path values of neighbor nodes by adding link weights to already computed path values, newly computed path values replacing prior corresponding path values where the prior values are larger. - View Dependent Claims (19)
-
-
20. A method of selecting a U-turn alternate neighbor in a network comprising:
-
identifying plural potential U-turn neighbors;
applying an algorithm that determines the set of viable U-turn alternates from the set of potential U-turn neighbors for each node in the network; and
applying selection criteria to the results of the processing. - View Dependent Claims (21, 22)
-
-
23. A router within a network comprising:
-
a data structure defining the network of nodes and link weights between the nodes;
a data set of path values, each element of the data set corresponding to one of the nodes of the network; and
a processor that identifies plural U-turn alternates and applies selection criteria to obtain a subset per set of nodes.
-
-
24. A method of selecting alternate paths comprising:
-
storing a data structure defining a network of nodes and link weights between nodes;
processing the data structure to identify a first set of alternates from the node; and
processing the data structure to identify a second set of alternates that can be used when a U-turn data packet is received at the node. - View Dependent Claims (25, 26)
-
Specification