# US 10,771,336 B2 · Topology-aware controller associations in software-defined networks

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,771,336 B2
- Document ID: US10771336B2
- Status: Granted
- Kind: B2
- Application number: 15/712,886
- Filed: 2017-09-22
- Published: 2019-03-28
- Granted: 2020-09-08
- Earliest claimed: 2017-09-22
- Assignees: Futurewei Technologies, Inc.
- Applicants: Futurewei Technologies, Inc.
- Inventors: Jingjing Zhang; Wei Wei; Liurong Qian
- Web page: https://patentgrep.com/patent/US10771336B2

## CPC

- H04L 41/0893: Assignment of logical groups to network elements
- H04L 41/0816: the condition being an adaptation, e.g. in response to network events
- H04L 41/122: of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
- H04L 45/64: using an overlay routing layer
- H04L 45/04: {Interdomain routing, e.g. hierarchical routing}
- H04L 45/42: Centralised routing
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Control plane management based on physical topology of nodes in software-defined networks (SDNs) is provided. Nodes in an SDN are organized into a plurality of node clusters. A cluster of nodes in an SDN is formed and control plane management for the nodes within the cluster is provided. A topology-aware assignment of nodes to controllers in an SDN is provided. Related nodes such as root and corresponding child nodes are assigned to a single cluster in one embodiment to lessen the impacts of controller failure. The assignment of nodes to controllers is also provided based on minimizing traffic between node clusters and between nodes and external networks.

## Claims

### Claim 1

A system, comprising:
one or more networks comprising a plurality of nodes and a plurality of links between a subset of the nodes, each node is associated with at least one device;
a plurality of controllers configured to manage control plane functions for the one or more networks; and
one or more servers, coupled to the one or more networks and the plurality of controllers, including a computer-readable medium storing instructions that when executed by one or more processors, cause the one or more processors to:
determine a first parent node that is isolated from a second parent node in the one or more networks;
create from the plurality of nodes a first node cluster including the first parent node and one or more first child nodes having one or more links to the first parent node;
create from the plurality of nodes a second node cluster including the second parent node and one or more second child nodes having one or more links to the second parent node, wherein nodes of the second node cluster are isolated from nodes of the first node cluster; and
configure the first node cluster for control by a first controller of the plurality and the second node cluster for control by a second controller of the plurality.

### Claim 2 (depends on 1)

The system of claim 1, wherein the one or more processors execute the instructions to:
create the plurality of first and second node clusters based on minimizing a total amount of traffic connecting nodes within each of the first and second node clusters to the one or more networks; and
assign nodes to each node cluster in accordance with a minimal total traffic determination.

### Claim 3 (depends on 2)

The system of claim 2, wherein:
each of the first and second node clusters include nodes of the plurality that are isolated from other nodes of other node clusters.

### Claim 4 (depends on 3)

The system of claim 3, wherein:
a corresponding subset of nodes for each of the first and second node clusters includes at least one parent node and a group of child nodes having a data path through the at least one parent node;
the at least one parent node of each of the first and second node clusters is isolated from the at least one parent node of each other node cluster; and
each controller controls the at least one parent node and each group of child nodes for the first or second node cluster corresponding to the controller.

### Claim 5 (depends on 4)

The system of claim 4, wherein the one or more processors execute the instructions to:
create the plurality of node clusters based on assigning each child node corresponding to a parent node to the same node cluster as the parent node.

### Claim 6 (depends on 5)

The system of claim 5, wherein the one or more processors create the plurality of node clusters based on minimizing a sum of a set of weights representing the total amount of traffic between each of the first and second node clusters and the one or more networks.

### Claim 7 (depends on 6)

The system of claim 6, wherein the total amount of traffic between each of the first and second node clusters and the one or more networks includes:
a sum of upstream traffic between nodes of different clusters; and
a sum of downstream traffic between nodes of different clusters.

### Claim 8 (depends on 7)

The system of claim 7, wherein minimizing the sum of the set of weights includes applying a larger weighting to the upstream traffic.

### Claim 9 (depends on 1)

The system of claim 1, wherein:
configuring the first node cluster for control by a first controller of the plurality includes configuring a control link between the first controller and each node of the first node cluster; and
configuring the second node cluster for control by a second controller of the plurality includes configuring a control link between the second controller and each node of the second node cluster.

### Claim 10 (depends on 1)

The system of claim 1, wherein the one or more processors execute the instructions to:
identify a first node associated with a line terminal device having a plurality of ports;
assign a first port of the line terminal device to a third controller; and
assign a second port of the line terminal device to a fourth controller.

### Claim 11 (depends on 1)

The system of claim 1, wherein:
the one or more networks are one or more software-defined access networks.

### Claim 12

A computer-implemented method for network management, comprising:
accessing, by one or more processors, network information for a plurality of nodes, each node associated with at least one device;
creating, by the one or more processors, a plurality of node clusters based on minimizing a total amount of traffic connecting nodes within each node cluster to one or more networks, each node cluster including a subset of nodes of the plurality that is isolated from other nodes of other node clusters, and the subset of nodes for each node cluster includes
at least one parent node and a corresponding group of child nodes having a data path through the at least one parent node,
the at least one parent node of each node cluster is isolated from the at least one parent node of each other node cluster, and
and each controller controls the at least one parent node and each group of child nodes for a corresponding node cluster;
assigning, by the one or more processors, each of the plurality of nodes to one of the plurality of node clusters in accordance with a minimal total traffic determination; and
configuring, by the one or more processors, each of a plurality of controllers for control of the subset of nodes associated with one or more of the node clusters.

### Claim 13 (depends on 12)

The computer-implemented method of claim 12, further comprising:
creating the plurality of node clusters based on assigning each child node corresponding to a parent node to the same node cluster as the parent node.

### Claim 14 (depends on 12)

The computer-implemented method of claim 12, wherein creating a plurality of node clusters includes minimizing a sum of a set of weights representing the total amount of traffic between each node cluster and the one or more networks.

### Claim 15 (depends on 14)

The computer-implemented method of claim 14, wherein the total amount of traffic between each node cluster and the one or more networks includes:
a sum of upstream traffic between nodes of different clusters; and
a sum of downstream traffic between nodes of different clusters.

### Claim 16 (depends on 12)

The computer-implemented method of claim 12, wherein configuring each controller for control of a subset of nodes associated with one or more of the node clusters includes creating a control link between the controller and each node of a corresponding cluster.

### Claim 17

A non-transitory computer-readable medium storing computer instructions for network management, that when executed by one or more processors, cause the one or more processors to perform the steps of:
access network information for a plurality of nodes, each node associated with at least one device;
assign to each node a weight representing a total amount of traffic associated with the node;
determine that a first combined weight of a first node and a second node is less than a capacity of a first controller, the second node is a parent to the first node;
in response to determining that the first combined weight is less than the capacity, determine that a second combined weight of the first node, the second node, and a third node is less than the capacity, the third node is a child to the second node;
in response to determining that the second combined weight is less than the capacity, determine that a third combined weight of the first node, the second node, the third node, and a fourth node is equal to or greater than the capacity, the fourth node is a parent to the second node; and
in response to determining that the third combined weight is equal to or greater than the capacity, assign the first node, the second node, and the third node to the first controller and assign the fourth node to a second controller.

### Claim 18 (depends on 17)

The non-transitory computer-readable medium of claim 17, wherein the instructions cause the one or more processors to:
create a plurality of node clusters based on minimizing a total amount of traffic connecting nodes within each node cluster to one or more networks; and
assign the first node, the second node, and the third node to a first node cluster and assign the fourth node to a second node cluster in accordance with a minimal total traffic determination.

### Claim 19 (depends on 18)

The non-transitory computer-readable medium of claim 18, wherein:
a corresponding subset of nodes for each of the first and second node clusters includes at least one parent node and a group of child nodes having a data path through the at least one parent node;
the at least one parent node of each of the first and second node clusters is isolated from the at least one parent node of each other of the first and second node clusters; and
each controller controls the at least one parent node and each group of child nodes for a node cluster corresponding to the controller.
