IL230202A

Method and apparatus for resilient routing of control traffic in a split-architecture system

Abstract

This record has no abstract on file.

Term

No projected expiry on record.

  1. Priority
  2. Filed
  3. Published
  4. Today

14 claims: 3 independent, 11 dependent

  1. 1
    22 230202/2 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 5 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 10 the controller, the controller routing tree T' representing a non-load balanced control traffic path between switches and the controller, the control traffic representing bidirectional 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 15 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;20 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 25 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 30 storing the modified shortest-path tree T' in the non-transitory machine-readable or computer-readable storage media. 23 230202/2
  2. 12
    A controller in a network with a split architecture, comprising:20 a microprocessor coupled to a non-transitory machine-readable media and operable as a controller routing tree module to determine a controller routing tree T', the controller: graphing 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 25 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, determining 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;25 230202/2 storing the shortest-path tree T in the non-transitory machine-readable 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, traverse 5 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, modifying the shortest-path tree T to obtain a modified shortest-path tree T' with improved resilience;and 10 storing the modified shortest-path tree T' in the non-transitory machine-readable or computer-readable storage media, said controller in combination with a switch, wherein the controller communicates to, and the switch stores in a non-transitory machine-readable media, an outgoing primary link and, as a backup, if any, at least one outgoing secondary link from the switch to an immediate upstream switch based on the 15 paths from the switch to the controller in the shortest-path tree T' as determined by the controller routing tree module and further wherein the switch is configured to detect a failure in an upstream link or node and change, by the switch, its route to the controller by changing the outgoing primary link to an outgoing secondary link, if any, serving as a backup. 20 13. 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 25 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- 30 directional information from each switch to the controller and forwarding decision information from the controller to the switch, the method comprising the steps of: 26 230202/2 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 5 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 10 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;15 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 20 the other shortest-paths and storing the selected shortest-path in the non-transitory machine-readable or computer-readable storage media.
  3. 15
    A controller in a network with a split architecture, comprising:25 a microprocessor coupled to a non-transitory machine-readable media and operable as a controller routing tree module to determine a controller routing tree T', the controller: graphing 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 30 set of nodes in the network, and E is the set of bidirectional edges between nodes traversing each switch to the controller;27 230202/2 based on all of the possible distances, determining 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;storing the shortest-path tree T in the non-transitory machine-readable media;5 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 10 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 media;and if there is more than one equal-length, shortest-path from the switch to the 15 controller, selecting as the shortest-path the one having the most resilience compared to the other shortest-paths;and storing the selected shortest-path in the non-transitory machine-readable media, said controller in combination with a switch, wherein the controller communicates to, and the switch stores in a non-transitory machine-readable media, an outgoing primary 20 link and, as a backup, if any, at least one outgoing secondary link from the switch to an immediate upstream switch based on the paths from the switch to the controller in the shortest-path tree as determined by the controller routing tree module;wherein the switch is configured to detect a failure in an upstream link or node;and 25 change, by the switch, its path to the controller by changing the outgoing primary link to an outgoing secondary link, if any, serving as a backup. For the Applicants, WOLFF, BREGMAN AND GOLLER