METHOD AND APPARATUS FOR RESILIENT ROUTING OF CONTROL TRAFFIC IN A SPLIT-ARCHITECTURE SYSTEM
First Claim
1. A method implemented by a network topology design system, the network topology design system including a controller having a microprocessor coupled to a non-transitory machine-readable or computer-readable storage media and operable as a controller routing tree module, the method to determine a controller routing tree T′
- for use within a split architecture network represented by network graph G, where control plane components are executed by the controller separate from data plane components executed by a plurality of switches, G=(V, E), where V is the set of nodes in the network, and E is the set of bidirectional edges between nodes traversing each switch to the controller, the controller routing tree T′
representing a non-load balanced control traffic path between switches and the controller, the control traffic representing bi-directional information from each switch to the controller and forwarding decision information from the controller to the switch, the method comprising the steps of;
graphing, by the network topology design system, all possible distances to the controller from each switch in G, each such the distance being comprised of a subset of E;
based on all possible distances, determining a shortest-path to the controller for each such switch, all the shortest-paths from each switch to the controller comprising the shortest-path tree T for the controller;
storing the shortest-path tree T in the non-transitory machine-readable or computer-readable storage media;
based on the shortest-path to the controller for each switch, designating all immediate neighbor nodes of such switch in G as either upstream or downstream;
commencing with the switch(es) that are neighbors to the controller and traversing to each immediate downstream switch until all of the switches in G are processed, determining and assigning, by the network topology design system, a weight for each switch in G;
based on the weight assigned to each switch, modifying the shortest-path tree T to obtain a modified shortest-path tree T′
with improved resilience; and
storing the modified shortest-path tree T′
in the non-transitory machine-readable or computer-readable storage media.
1 Assignment
0 Petitions
Accused Products
Abstract
The invention is a routing algorithm characteristic that minimizes the weight, meaning that the probability that a node is disconnected from the controller in case of a failure in the network is minimized. The first algorithm used in the invention is an approximation algorithm for finding the controller routing tree that provides maximum resilience in the network. The algorithm is referred to herein as the Maximum Resilience (MR) algorithm. The heuristic MR algorithm selects a shortest-path tree as a starting point and modifies the tree in order to improve resilience. The output of the MR algorithm is not necessarily a shortest-path tree, but provides more resilience compared to the initial tree. The RASP algorithm provides a shortest-path tree with improved network resilience compared to other possible shortest-path trees.
44 Citations
20 Claims
-
1. A method implemented by a network topology design system, the network topology design system including a controller having a microprocessor coupled to a non-transitory machine-readable or computer-readable storage media and operable as a controller routing tree module, the method to determine a controller routing tree T′
- for use within a split architecture network represented by network graph G, where control plane components are executed by the controller separate from data plane components executed by a plurality of switches, G=(V, E), where V is the set of nodes in the network, and E is the set of bidirectional edges between nodes traversing each switch to the controller, the controller routing tree T′
representing a non-load balanced control traffic path between switches and the controller, the control traffic representing bi-directional information from each switch to the controller and forwarding decision information from the controller to the switch, the method comprising the steps of;graphing, by the network topology design system, all possible distances to the controller from each switch in G, each such the distance being comprised of a subset of E; based on all possible distances, determining a shortest-path to the controller for each such switch, all the shortest-paths from each switch to the controller comprising the shortest-path tree T for the controller; storing the shortest-path tree T in the non-transitory machine-readable or computer-readable storage media; based on the shortest-path to the controller for each switch, designating all immediate neighbor nodes of such switch in G as either upstream or downstream; commencing with the switch(es) that are neighbors to the controller and traversing to each immediate downstream switch until all of the switches in G are processed, determining and assigning, by the network topology design system, a weight for each switch in G; based on the weight assigned to each switch, modifying the shortest-path tree T to obtain a modified shortest-path tree T′
with improved resilience; andstoring the modified shortest-path tree T′
in the non-transitory machine-readable or computer-readable storage media. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
- for use within a split architecture network represented by network graph G, where control plane components are executed by the controller separate from data plane components executed by a plurality of switches, G=(V, E), where V is the set of nodes in the network, and E is the set of bidirectional edges between nodes traversing each switch to the controller, the controller routing tree T′
-
12. A controller in a network with a split architecture, comprising:
-
a microprocessor coupled to a non-transitory machine-readable or computer-readable storage media and operable as a controller routing tree module to determine a controller routing tree T′
, the controller operable to;graph all possible distances to the controller from each switch in G, each such the distance being comprised of a subset of E, wherein G=(V, E), where V is the set of nodes in the network, and E is the set of bidirectional edges between nodes traversing each switch to the controller; based on all of the possible distances, determine a shortest-path to the controller for each switch in the network, all the shortest-paths from each switch to the controller comprising the shortest-path tree T for the controller; store the shortest-path tree T in the non-transitory machine-readable or computer-readable storage media; based on the shortest-path to the controller for each switch, designate all immediate neighbor nodes of such switch in G as either upstream or downstream; commencing with the switch(es) that are neighbors to the controller, traverse each immediately downstream switch until all of the switches in G are processed, so as to determine and assign, by the network topology design system, a weight for each switch in G; based on the weight of each switch, modify the shortest-path tree T to obtain a modified shortest-path tree T′
with improved resilience; andstore the modified shortest-path tree T′
in the non-transitory machine-readable or computer-readable storage media. - View Dependent Claims (13, 14)
-
-
15. A method implemented by a network topology design system, the network topology design system including a controller having a microprocessor coupled to a non-transitory machine-readable or computer-readable storage media and operable as a controller routing tree module, the method to determine a controller routing tree T′
- for use within a split architecture network represented by network graph G, where control plane components are executed by the controller separate from data plane components executed by a plurality of switches, G=(V, E), where V is the set of nodes in the network, and E is the set of bidirectional edges between nodes traversing each switch to the controller, the controller routing tree T′
representing a non-load balanced control traffic path between each switch and the controller, the control traffic representing bi-directional information from each switch to the controller and forwarding decision information from the controller to the switch, the method comprising the steps of;graphing, by the network topology design system, all possible distances to the controller from each switch in G, each such the distance being comprised of a subset of E; based on all of the possible distances, determining a shortest-path to the controller for each such switch, all of the shortest-paths from each switch to the controller comprising the shortest-path tree T for the controller; storing the shortest-path tree T in the non-transitory machine-readable or computer-readable storage media; based on the shortest-path to the controller for each switch, designating all immediate neighbor nodes of such switch in G as either upstream or downstream; establishing an edge weight parameter for each link between each switch and each of the switches traversed along each path to the controller; determining if there are more than one equal-length, shortest-paths between the controller and the switch; if there is not more than one equal-length, shortest-path between the controller and the switch, selecting such shortest-path and storing it in the non-transitory machine-readable or computer-readable storage media; and if there is more than one equal-length, shortest-path from the switch to the controller, selecting as the shortest-path the path having the most resilience compared to the other shortest-paths and storing the selected shortest-path in the non-transitory machine-readable or computer-readable storage media. - View Dependent Claims (16)
- for use within a split architecture network represented by network graph G, where control plane components are executed by the controller separate from data plane components executed by a plurality of switches, G=(V, E), where V is the set of nodes in the network, and E is the set of bidirectional edges between nodes traversing each switch to the controller, the controller routing tree T′
-
17. A controller in a network with a split architecture, comprising:
-
a microprocessor coupled to a non-transitory machine-readable or computer-readable storage media and operable as a controller routing tree module to determine a controller routing tree T′
, the controller operable to;graph all possible distances to the controller from each switch in G, each such the distance being comprised of a subset of E, wherein G=(V, E), where V is the set of nodes in the network, and E is the set of bidirectional edges between nodes traversing each switch to the controller; based on all of the possible distances, determine an initial shortest-path to the controller for each switch in the network, all the shortest-paths from each switch to the controller comprising the shortest-path tree T for the controller; store the shortest-path tree T in the non-transitory machine-readable or computer-readable storage media; based on the shortest-path to the controller for each switch, designate all immediate neighbor nodes of such switch in G as either upstream or downstream; establish an edge weight parameter for each link between each switch and each of the switches traversed along each path to the controller; determine if there are more than one equal-length, shortest-paths between the controller and the switch; if there is not more than one equal-length, shortest-path between the controller and the switch, select such shortest-path and storing it in the non-transitory machine-readable or computer-readable storage media; and if there is more than one equal-length, shortest-path from the switch to the controller, select as the shortest-path the one having the most resilience compared to the other shortest-paths; and store the selected shortest-path in the non-transitory machine-readable or computer-readable storage media. - View Dependent Claims (18, 19, 20)
-
Specification