Patentable/Patents/US-RE050936-B2
US-RE050936-B2

Systems and methods for improving tolerance of delay and disruption of a control-to-data-plane interface in a software-defined network

PublishedJune 23, 2026
Assigneenot available in USPTO data we have
InventorsBrian Barritt
Technical Abstract

This disclosure provides systems and methods for improving tolerance of delay and disruption of a control-to-data-plane interface (CDPI) in a software-defined network. A system can include a plurality of moving nodes and an SDN controller communicatively coupled to the plurality of moving nodes. The SDN controller can be configured to send a first control message to a first moving node of the plurality of moving nodes according to a CDPI protocol. The first control message can include instructions for the first moving node to execute a modification of a physical network topology parameter. The SDN controller also can be configured to send a second control message to the first moving node according to the CDPI protocol. The second control message can include instructions for the first moving node to modify routing information stored by the first node based on the modification of the physical network topology parameter.

Patent Claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

a plurality of moving nodes; and send a first control message to a first moving node of the plurality of moving nodes according to a control-to-data-plane interface (CDPI) protocol, the first control message including instructions for the first moving node to execute a modification of a physical network topology parameter, including at least instructions to cause the first moving node to aim a wireless transceiver towards a second moving node; and send a second control message to the first moving node according to the CDPI protocol, the second control message including instructions for the first moving node to modify routing information stored by the first moving node based on the modification of the physical network topology parameter. an SDN controller communicatively coupled to the plurality of moving nodes, wherein the SDN controller is configured to: . A system for configuring a software-defined network (SDN), the system comprising:

2

claim 1 . The system of, wherein the SDN controller is further configured to send the first control message specifying a first future time at which the first moving node is to execute the modification of the physical network topology parameter.

3

claim 2 . The system of, wherein the SDN controller is further configured to send the second control message specifying a second future time, later than the first future time, at which the first moving node is to modify the routing information.

4

claim 1 . The system of, wherein the SDN controller is further configured to receive, from the first moving node, a confirmation message indicating that the modification of the physical network topology parameter and the modification of the routing information stored by the first moving node have both been executed.

5

claim 1 receive, from the first moving node, a confirmation message indicating that the modification of the physical network topology parameter has been executed; and send the second control message responsive to receiving the confirmation message. . The system of, wherein the SDN controller is further configured to:

6

claim 1 . The system of, wherein the first control message includes instructions to cause the first moving node to modify at least one parameter associated with a transmitter of the first moving node.

7

claim 6 . The system of, wherein the at least one parameter associated with the transmitter of the first moving node includes at least one of a transmission power, a transmission frequency, and a modulation scheme.

8

sending, by an SDN controller communicatively coupled to a plurality of moving nodes, a first control message to a first moving node of the plurality of moving nodes according to a control-to-data-plane interface (CDPI) protocol, the first control message including instructions for the first moving node to execute a modification of a physical network topology parameter, including at least instructions to cause the first moving node to aim a wireless transceiver towards a second moving node; and sending, by the SDN controller, a second control message to the first moving node according to the CDPI protocol, the second control message including instructions for the first moving node to modify routing information stored by the first moving node based on the modification of the physical network topology parameter. . A method for configuring a software-defined network (SDN), the method comprising:

9

claim 8 . The method of, wherein the method further comprises sending, by the SDN controller, the first control message specifying a first future time at which the first moving node is to execute the modification of the physical network topology parameter.

10

claim 9 . The method of, wherein the method further comprises sending, by the SDN controller, the second control message specifying a second future time, later than the first future time, at which the first moving node is to modify the routing information.

11

claim 8 . The method of, wherein the method further comprises receiving, by the SDN controller from the first moving node, a confirmation message indicating that the modification of the physical network topology parameter and the modification of the routing information stored by the first moving node have both been executed.

12

claim 8 receiving, by the SDN controller from the first moving node, a confirmation message indicating that the modification of the physical network topology parameter has been executed; and sending, by the SDN controller, the second control message responsive to receiving the confirmation message. . The method of, wherein the method further comprises:

13

claim 8 . The method of, wherein sending the first control message includes sending instructions to cause the first moving node to modify at least one parameter associated with a transmitter of the first moving node.

14

claim 13 . The method of, wherein sending the first control message includes sending instructions to cause the first moving node to modify at least one of a transmission power, a transmission frequency, and a modulation scheme.

15

sending, by an SDN controller communicatively coupled to a plurality of moving nodes, a first control message to a first moving node of the plurality of moving nodes according to a control-to-data-plane interface (CDPI) protocol, the first control message including instructions for the first moving node to execute a modification of a physical network topology parameter, including at least instructions to cause the first moving node to aim a wireless transceiver towards a second moving node; and sending, by the SDN controller, a second control message to the first moving node according to the CDPI protocol, the second control message including instructions for the first moving node to modify routing information stored by the first moving node based on the modification of the physical network topology parameter. . A non-transitory computer-readable medium having instructions encoded thereon which, when executed by one or more processors, cause the one or more processors to perform a method for configuring a software-defined network (SDN), the method comprising:

16

15 . The non-transitory computer-readable medium, wherein the method further comprises sending, by the SDN controller, the first control message specifying a first future time at which the first moving node is to execute the modification of the physical network topology parameter.

17

claim 16 . The non-transitory computer-readable medium of, wherein the method further comprises sending, by the SDN controller, the second control message specifying a second future time, later than the first future time, at which the first moving node is to modify the routing information.

18

claim 15 . The non-transitory computer-readable medium of, wherein the method further comprises receiving, by the SDN controller from the first moving node, a confirmation message indicating that the modification of the physical network topology parameter and the modification of the routing information stored by the first moving node have both been executed.

19

claim 15 receiving, by the SDN controller from the first moving node, a confirmation message indicating that the modification of the physical network topology parameter has been executed; and sending, by the SDN controller, the second control message responsive to receiving the confirmation message. . The non-transitory computer-readable medium of, wherein the method further comprises:

20

claim 15 . The non-transitory computer-readable medium of, wherein sending the first control message includes sending instructions to cause the first moving node to modify at least one parameter associated with a transmitter of the first moving node.

21

claim 20 . The non-transitory computer-readable medium of, wherein sending the first control message includes sending instructions to cause the first moving node to modify at least one of a transmission power, a transmission frequency, and a modulation scheme.

22

receive information from a plurality of nodes of a network, the plurality of nodes including one node that is in motion relative to another node; determine a topology of the network for a given point in time based on the received information, the topology indicating which links between nodes in the network are possible and which are not possible; determine a plurality of flows for the determined topology based on client data information to be transmitted through the network, each of the plurality of flows comprising one or more requirements for a routing path through the network; generate instructions regarding a plurality of links to form for the determined topology based on based on the determined plurality of flows, the plurality of links being a set of the possible links in the topology of the network; and send the generated instructions to at least one node of the plurality of nodes of the network to cause the at least one node to form one or more of the plurality of links at the given point in time, a network controller configured to: wherein the generated instructions include routing information through the plurality of links; wherein the network controller is configured to send the generated instructions in at least two parts, and wherein a first part of the generated instructions is sent before a second part, and the second part of the generated instructions is sent after confirmation is received at the network controller that the first part of the generated instructions has been executed. 22. A system comprising:

23

claim 22 23. The system of, further comprising the plurality of nodes.

24

claim 22 24. The system of, wherein the plurality of nodes includes one or more high-altitude platforms.

25

claim 22 25. The system of, wherein the plurality of nodes is configured to communicate with one another using steerable wireless transceivers.

26

claim 22 26. The system of, wherein the generated instructions include a first point in time scheduled for forming the one or more of the plurality of links and a second point in time scheduled for the routing information.

27

claim 22 wherein a first part of the generated instructions is sent to a first node of the network and a second part of the generated instructions is sent to a second node of the network. 27. The system of, wherein the network controller is configured to send the generated instructions in at least two parts,

28

claim 22 28. The system of, wherein the generated instructions are sent prior to a scheduled time or time frame during which the one or more of the plurality of links is to be formed.

29

claim 22 29. The system of, wherein the generated instructions sent to the at least one node cause the at least one node to steer one or more transceivers to form the one or more of the plurality of links.

30

claim 22 determine that a confirmation that the generated instructions have been executed has not been received; and determine a new topology of the network for the given point in time. 30. The system of, wherein the network controller is further configured to:

31

receiving, by one or more processors, information from a plurality of nodes of a network, the plurality of nodes including one node that is in motion relative to another node; determining, by the one or more processors, a topology of the network for a given point in time based on the received information, the topology indicating which links between nodes in the network are possible and which are not possible; determining, by the one or more processors, a plurality of flows for the determined topology based on client data information to be transmitted through the network, each of the plurality of flows comprising one or more requirements for a routing path through the network; generating, by the one or more processors, instructions regarding a plurality of links to form for the determined topology based on the determined plurality of flows, the plurality of links being a set of the possible links in the topology of the network; and sending, by the one or more processors, the generated instructions to at least one node of the plurality of nodes of the network to cause the at least one node to form one or more of the plurality of links at the given point in time, wherein the generated instructions include routing information through the plurality of links; sending a first part of the generated instructions; receiving confirmation that the first part of the generated instructions has been executed; and sending a second part of the generated instructions. wherein the sending of the generated instructions includes: 31. A method comprising:

32

claim 31 32. The method of, wherein the plurality of nodes includes one or more high-altitude platforms.

33

claim 31 33. The method of, wherein the plurality of nodes is configured to communicate with one another using steerable wireless transceivers.

34

claim 31 34. The method of, wherein the generated instructions include a first point in time scheduled for forming the one or more of the plurality of links and a second point in time scheduled for the routing information.

35

claim 31 sending a first part of the generated instructions a first node of the network; and sending a second part of the generated instructions to a second node of the network. 35. The method of, wherein the sending of the generated instructions includes:

36

claim 31 36. The method of, wherein the sending of the generated instructions is performed prior to a scheduled time or time frame during which the one or more of the plurality of links is to be formed.

37

claim 31 37. The method of, wherein the generated instructions cause the at least one node to steer one or more transceivers to form the one or more of the plurality of links.

Detailed Description

Complete technical specification and implementation details from the patent document.

The present application is a reissue of U.S. Pat. No. 9,924,441, which is herein incorporated by reference as if fully set forth in this description. More than one reissue application has been filed for the reissue of U.S. Pat. No. 9,924,441. The reissue applications are application Ser. Nos. 16/825,467 (the present application) filed Mar. 20, 2020 and 16/825,402 filed Mar. 20, 2020.

Information can be transmitted over directional point-to-point computer networks, such as aerospace and other mobile networks. In such networks, links can be formed between pairs of nodes by aiming transceivers of each node pair towards each other. In some implementations, the network nodes may move over time, which can result in frequent disruption of the links in the network and can require frequent reconfiguration of the links. Typically, a control-to-data-plane interface (CDPI) in a software-defined network (SDN) requires reliable, low-latency links for transmitting control messages to network nodes. However, aerospace networks often do not have such reliable, low-latency links. Furthermore, CDPIs typically do not support messages to alter the physical topology of a directional point-to-point network.

In some aspects, the disclosure relates to a system for configuring a software-defined network (SDN). The system can include a plurality of moving nodes and an SDN controller communicatively coupled to the plurality of moving nodes. The SDN controller can be configured to send a first control message to a first moving node of the plurality of moving nodes according to a control-to-data-plane interface (CDPI) protocol. The first control message can include instructions for the first moving node to execute a modification of a physical network topology parameter, including at least instructions to cause the first moving node to aim a wireless transceiver towards a second moving node. The SDN also can be configured to send a second control message to the first moving node according to the CDPI protocol. The second control message can include instructions for the first moving node to modify routing information stored by the first moving node based on the modification of the physical network topology parameter.

In some implementations, the SDN controller can be further configured to send the first control message specifying a first future time at which the first moving node is to execute the modification of the physical network topology parameter. In some implementations, the SDN controller can be further configured to send the second control message specifying a second future time, later than the first future time, at which the first moving node is to modify the routing information. In some implementations, the SDN controller can be further configured to receive, from the first moving node, a confirmation message indicating that the modification of the physical network topology parameter and the modification of the routing information stored by the first moving node have both been executed.

In some implementations, the SDN controller can be further configured to receive, from the first moving node, a confirmation message indicating that the modification of the physical network topology parameter has been executed, and to send the second control message responsive to receiving the confirmation message. In some implementations, the first control message can include instructions to cause the first moving node to modify at least one parameter associated with a transmitter of the first moving node. In some implementations, the at least one parameter associated with the transmitter of the first moving node can include at least one of a transmission power, a transmission frequency, and a modulation scheme.

In another aspect, the disclosure relates to a method for configuring a software-defined network (SDN). The method can include sending, by an SDN controller communicatively coupled to a plurality of moving nodes, a first control message to a first moving node of the plurality of moving nodes according to a control-to-data-plane interface (CDPI) protocol. The first control message can include instructions for the first moving node to execute a modification of a physical network topology parameter, including at least instructions to cause the first moving node to aim a wireless transceiver towards a second moving node. The method also can include sending, by the SDN controller, a second control message to the first moving node according to the CDPI protocol. The second control message can include instructions for the first moving node to modify routing information stored by the first moving node based on the modification of the physical network topology parameter.

In some implementations, the method can include sending, by the SDN controller, the first control message specifying a first future time at which the first moving node is to execute the modification of the physical network topology parameter. In some implementations, the method can include sending, by the SDN controller, the second control message specifying a second future time, later than the first future time, at which the first moving node is to modify the routing information. In some implementations, the method can include receiving, by the SDN controller from the first moving node, a confirmation message indicating that the modification of the physical network topology parameter and the modification of the routing information stored by the first moving node have both been executed.

In some implementations, the method can include receiving, by the SDN controller from the first moving node, a confirmation message indicating that the modification of the physical network topology parameter has been executed, and sending, by the SDN controller, the second control message responsive to receiving the confirmation message. In some implementations, sending the first control message can include sending instructions to cause the first moving node to modify at least one parameter associated with a transmitter of the first moving node. In some implementations, sending the first control message can include sending instructions to cause the first moving node to modify at least one of a transmission power, a transmission frequency, and a modulation scheme.

In another aspect, the disclosure relates to a non-transitory computer-readable medium having instructions encoded thereon which, when executed by one or more processors, cause the one or more processors to perform a method for configuring a software-defined network (SDN). The method can include sending, by an SDN controller communicatively coupled to a plurality of moving nodes, a first control message to a first moving node of the plurality of moving nodes according to a control-to-data-plane interface (CDPI) protocol. The first control message can include instructions for the first moving node to execute a modification of a physical network topology parameter, including at least instructions to cause the first moving node to aim a wireless transceiver towards a second moving node. The method also can include sending, by the SDN controller, a second control message to the first moving node according to the CDPI protocol. The second control message can include instructions for the first moving node to modify routing information stored by the first moving node based on the modification of the physical network topology parameter.

In some implementations, the method can include sending, by the SDN controller, the first control message specifying a first future time at which the first moving node is to execute the modification of the physical network topology parameter. In some implementations, the method can include sending, by the SDN controller, the second control message specifying a second future time, later than the first future time, at which the first moving node is to modify the routing information. In some implementations, the method can include receiving, by the SDN controller from the first moving node, a confirmation message indicating that the modification of the physical network topology parameter and the modification of the routing information stored by the first moving node have both been executed.

In some implementations, the method can include receiving, by the SDN controller from the first moving node, a confirmation message indicating that the modification of the physical network topology parameter has been executed, and sending, by the SDN controller, the second control message responsive to receiving the confirmation message. In some implementations, sending the first control message can include sending instructions to cause the first moving node to modify at least one parameter associated with a transmitter of the first moving node. In some implementations, sending the first control message can include sending instructions to cause the first moving node to modify at least one of a transmission power, a transmission frequency, and a modulation scheme.

For purposes of clarity, not every component may be labeled in every figure. The drawings are not intended to be drawn to scale. Like reference numbers and designations in the various figures indicate like elements.

The systems and methods of the disclosure relate to improving tolerance of delay and disruption of a control-to-data-plane interface (CDPI) in a software-defined network. Particularly, the disclosure describes an SDN controller and a CDPI that allows the SDN controller to send control messages to network nodes that may include instructions for the network node to aim a steerable beam antenna at another network node to form a communication link. The SDN controller also can send instructions to a network node relating to a power level to be used for transmitting information, for example based on a distance between the nodes forming the link, or other radio functions such as communication channels to be used for transmitting and receiving data. In addition, the SDN controller can send updated routing information to network nodes, as is done in traditional software-defined networks. In some implementations, the control messages sent by the SDN controller can include scheduling information, which can help to increase the tolerance of a software-defined aerospace network to delay and disruption of network links that may occur during a topology reconfiguration.

1 FIG. 1 FIG. 100 100 100 100 105 105 105 107 107 107 110 110 110 110 110 110 100 100 100 100 100 110 110 110 105 105 100 110 105 is a block diagram of an example directional point-to-point computer network. The computer networkis a directional point-to-point computer network consisting of nodes mounted on various land- and air-based devices, some of which may change position with respect to other nodes in the networkover time. For example, the networkincludes nodes associated with each of two land-based datacentersa andb (generally referred to as datacenters), nodes associated with each of two ground stationsa andb (generally referred to as ground stations), and nodes associated with each of three airborne high altitude platforms (HAPs)a-c (generally referred to as HAPs). As shown, the HAPa is a blimp, the HAPb is an airplane, and the HAPc is a balloon. Arrows shown between a pair of nodes represent active communication links between the nodes. It should be understood that the networkas shown inis illustrative only, and in some implementations the networkmay include additional or different nodes. For example, in some implementations, the networkmay include additional HAPs, which may be balloons, blimps, airplanes, unmanned aerial vehicles (UAVs), satellites, or any other form of high altitude platform. In some implementations, the networkmay serve as an access network for client devices such as cellular phones, laptop computers, desktop computers, wearable devices, or tablet computers. The networkalso may be connected to a larger network, such as the Internet, and may be configured to provide a client device with access to resources stored on or provided through the larger computer network. In some implementations, the HAPscan include wireless transceivers associated with a cellular or other mobile network, such as eNodeB base stations or other wireless access points, such as WiMAX or UMTS access points. Together, the HAPscan form a wireless access network. The HAPscan connect to the datacenters, for example, via backbone network links or transit networks operated by third parties. The datacentersmay include servers hosting applications that are accessed by remote users as well as systems that monitor or control the components of the network. The HAPscan provide wireless access for the users, and can route user requests to the datacentersand return responses to the users via the backbone network links.

100 105 100 110 110 100 In some implementations, the networkcan be an SDN that is controlled by an SDN controller, which may be located, for example, in one of the datacenters. The nodes of the networkcan be configured to communicate with one another using steerable wireless transceivers. The transceivers may be mounted to actuators that can be controlled to point in a desired direction. To form a link between two nodes, such as the node associated with the HAPa and the node associated with the HAPa, the transceivers of the respective nodes can be controlled to point in the direction of one another so that data can be sent and received between the nodes. In some implementations, the power of the signals transmitted by each transceiver can also be controlled to facilitate formation of the links in the network. For example, nodes that are separated by a relatively large distance can be configured to operate at a higher power to compensate for the reduction in signal-to-noise ratio that occurs over the distance separating the two nodes. Nodes that are spaced nearer to one another may be controlled to operate at a relatively lower power so as to save power.

110 105 107 107 110 110 110 107 107 110 100 1 FIG. As the HAPsmove with respect to one another and with respect to the datacentersand ground stationsover time, some of the links shown in the block diagram ofmay become infeasible. For example, the link between the ground stationa and the HAPa may not be feasible when the path of the HAPa brings the HAPa into a position in which it is out of range of the ground stationa, or in which the earth is positioned between it and the ground stationa. Thus, due to the continuous movement of the HAPs, the topology of the networkmay require regular or irregular reconfiguration to maintain connectivity to satisfy provisioned network flows.

100 100 110 100 100 100 100 Generally, traditional CDPI implementations such as OpenFlow do not include support for control messages that include instructions for steering wireless transceivers or for controlling transmitter parameters, such as transmission power, frequency, and modulation scheme. Accordingly, an SDN controller that uses a traditional CDPI may not be able to control the nodes of the networkto reconfigure the topology of the network. Furthermore, most CDPIs require network links that are highly reliable and exhibit low latency. Due to the continuous movement of the HAPs, as well as the relatively large distances between nodes in the network, the networkmay not exhibit the reliability and low latency required by typical CDPIs. As a result, it can be difficult to effectively manage the networkover time using a traditional SDN controller and CDPI. To address this issue, an SDN controller and CDPI can be configured to support control messages including instructions for network nodes to modify topology parameters, for example by reconfiguring their steerable wireless transceivers or by adjusting the power output of their transceivers. In addition, control messages can include instructions for a network node to execute topology and routing changes at specified times in the future, which can help to compensate for the delays or disruptions that may occur when attempting to form new links in a directional point-to-point network such as the network.

2 FIG. 1 FIG. 200 300 205 207 205 207 206 207 100 205 207 207 207 205 207 205 207 205 210 215 220 225 is a block diagram of an example systemfor configuring a computer network. The systemincludes an SDN controllerin communication with a network. The SDN controllercommunicates with the networkvia a CDPI. In some implementations, the networkmay be or may include a directional point-to-point network having one or more nodes that move relative to other nodes over time, similar to the networkshown in. The SDN controllermay be any type of computing device capable of sending control messages to the networkto configure the topology of the networkand to pass routing information to the nodes of the network. Although the SDN controlleris shown as a component separate from the network, it should be understood that in some implementations, the network controllermay be part of the network. The network controllerincludes a control message transceiver, a topology management module, a flow management module, and a database.

210 207 210 210 210 207 In some implementations, the control message transceivercan send control messages to the nodes of the network, and can receive responses to control messages from the nodes. Control messages sent to a network node can include instructions for the network node to reconfigure topology parameters. For example, the control message transceivercan send instructions to a node that causes the node to aim a steerable beam antenna at another network node to form a communication link. In some implementations, the control message transceivercan send instructions to a network node relating to the functionality of the transmitter used by the node to communicate with other nodes, such as a power level, a frequency, or a modulation scheme to be used by the node for transmitting information. In addition, the control message transceivercan send updated routing information to the nodes of the network, as is done in traditional software-defined networks.

207 207 210 210 207 210 3 3 FIGS.A-C As discussed above, reconfiguring the networkcan cause temporary delay and disruption of network links as the nodes steer their transceivers to form new links. To increase the tolerance of the networkto such delay and disruption, the control message transceivercan be configured to send control messages that include scheduling information. When the control message transceiverinstructs a node to break a first link and to instead establish a second link, there may be a significant delay between the breaking of the first link and the establishment of the second link. During this delay, the control plane (and the data plane) can be disrupted and will remain disrupted until the new link is formed and routing information for the new link is stored by the nodes of the network. In some cases, this disruption could cause the network node to become stranded. To avoid stranding the network node, the control message transceivercan instruct the node to establish the second link at a first scheduled time, and to update its routing information at a later time. The network node can receive these instructions and execute them autonomously according to the scheduling information associated with the instructions, even while the control plane is disrupted. An example of this is described further below in connection with.

210 210 210 210 4 4 FIGS.A-C In some implementations, the control message transceivercan be configured to wait for confirmation from a network node that a first network topology modification has been executed before sending instructions for a second network topology modification that is dependent on the first network control modification. For example, the control message transceivermay instruct a node to form a new link by aiming its transceiver at another node. Then, before sending updated routing information corresponding to the new link, the control message transceivercan wait for an acknowledgment from the node to confirm that the new link has been formed. After confirmation has been received, the control message transceivercan instruct the network nodes to update their routing information accordingly. In some implementations, if the SDN controller does not receive confirmation that the new link was formed, a new topology can be selected instead. An example of this is described further below in connection with.

215 207 207 215 207 207 207 225 The topology management modulecan be configured to determine the current topology of the network. In some implementations, the determination can be made based on information received from the network nodes. For example, the topology management modulecan be configured to receive information from each node in the networkcorresponding to the links currently formed by each node, and can aggregate this information to determine a complete topology of the network, including any failed links that may exist within the network. In some implementations, the this information can be stored in the database.

220 207 220 220 207 225 215 220 210 207 207 The flow management modulecan be configured to determine all of the flows that are currently provisioned in the network. In some implementations, the flow management modulecan determine the provisioned flows based on information received from network applications or from a separate traffic engineering application. In some implementations, the flow management modulecan aggregate the application data to determine the total amount of bandwidth required between each node pair in the network. This information can be stored, for example, in the database. Together, the topology management moduleand the flow management modulecan be configured to determine alternative topologies that may better facilitate processing of the provisioned network flows. When it is determined that a new topology may be desirable, the control message transceivercan be configured to send control messages including instructions for the nodes of the networkto modify topology parameters and routing information to achieve the new topology. As discussed above, such control messages also may be associated with scheduling information that can help the networkto accommodate delay and disruption that may occur as a result of implementing the topology and routing changes.

3 FIG.A 3 FIG.B 3 FIG.A 3 FIG.C 3 FIG.A 3 FIG.B 3 3 FIGS.A-C 301 303 303 is a block diagram of an example computer network having a first topology.is a block diagram of the example computer network shown inhaving a reconfigured network topology.is a flowchart of an example method for reconfiguring the computer network shown into achieve the topologyshown in.are described together below.

3 FIG.A 301 305 305 305 305 308 308 308 305 305 308 305 305 308 305 305 308 305 305 Referring now to, a computer network topologyincludes four nodesa-d (generally referred to as nodes). The nodesare coupled to one another by three linksa-c (generally referred to as links). In particular, the nodea is coupled to the nodec via linka, the nodea is coupled to the nodeb via the linkb, and the nodeb is coupled to the noded via the linkc. In this example, it is assumed that the noded has only a single wireless transceiver and therefore can only form a single link with at most one other node.

3 FIG.B 3 FIG.A 3 FIG.A 3 FIG.B 3 FIG.A 3 FIG.B 303 305 305 308 305 305 308 305 3085 305 301 303 305 305 305 308 305 308 308 308 308 305 Referring to, the topologyincludes the same nodesa-d that are shown in, but the linkc that joins the nodeb and the noded inis removed and replaced with the linkd which joins the nodesc andd as shown in. Because the noded has only a single wireless transceiver, there is no way to reconfigure the topologyofto achieve the topologyofin a “hitless” manner (i.e., without temporarily disrupting the network while the transceiver of noded is steered away from the nodeb and towards the nodec to form the linkd with the nodec. As a result, the control plane will become disrupted immediately after the linkc is broken in order to establish the linkd, and it will remain disrupted until the linkd is formed and routing information corresponding to the new linkd has been updated on the network nodes.

305 305 305 305 305 305 308 305 308 308 305 305 305 3 FIG.C In some implementations, the disruption described above could result in the noded becoming stranded (i.e., unreachable from every other node). For example, a first control message may be sent to the noded to cause the noded to steer its antenna away from the nodeb and towards the noded in order to form the new linkd. If a second control message is sent to the noded before the linkd has been established (or to any other node along a path that may include the linkd), the second control message may not reach its intended destination and the routing modification associated with the second control message will never be executed, which can lead to stranding of the network noded. To reduce the likelihood of such an event, control messages can include scheduling information specifying a time at which they should be executed. The noded can be configured to receive such control messages, and to execute them autonomously at the specified times even while the control plane is disrupted, which can help to reduce the likelihood of the noded becoming stranded. This example is described further below in connection with.

3 FIG.C 3 FIG.A 3 FIG.B 309 301 303 309 310 309 320 309 330 is a flowchart of an example methodfor reconfiguring the computer network having the topologyshown into achieve the topologyshown in. In brief overview, the methodincludes sending, by an SDN controller, a first control message to at least one node of a plurality of moving nodes (stage). The first control message includes instructions for the first node to execute a modification of a physical network topology parameter at a first time. The methodfurther includes sending, by the SDN controller, a second control message to the at least one moving node of the plurality of moving nodes (stage). The second control message includes instructions for the first node to execute a modification of routing information at a second time, later than the first time. The methodfurther includes receiving, by the SDN controller, confirmation that the modification of the physical network topology parameter and the modification of the routing information have been executed (stage).

3 3 FIGS.A-C 309 310 305 305 305 305 Referring again to, the methodincludes sending, by an SDN controller, a first control message to at least one node of a plurality of moving nodes (stage). The first control message includes instructions for the first node to execute a modification of a physical network topology parameter at a first time. In the above example, the first control message can be sent to the noded. The first control message can include instructions for the noded to steer its transceiver towards the nodec, and also can include instructions specifying a time at which the noded should execute this topology modification.

309 320 305 305 305 308 305 305 308 301 305 305 305 305 305 305 308 305 3 FIG.A The methodincludes sending, by the SDN controller, a second control message to the at least one moving node of the plurality of moving nodes (stage). The second control message includes instructions for the first node to execute a modification of routing information at a second time, later than the first time. In the example above, the second control message also can be sent to the noded. The routing modification instructions included in the second control message can correspond to the topology modification instructions included in the first control message. For example, the routing modification instructions included in the second control message can establish a new route from the noded to the nodec via the linkd, and can delete the route from the noded to the nodeb via the linkc. In some implementations, the second control message can be sent before the topologyofhas been modified (i.e., before the first time at which the topology modification instructions included in the first control message are to be executed), ensuring that the second control message can be received by the noded before the control plane is disrupted. The second control message can include instructions specifying a second time at which the noded should execute the routing modification, which can be later than the first time at which the noded is to execute the topology modification. Scheduling the topology and routing modifications in this way can allow the noded to complete the topology modification before attempting to update the corresponding routing information, and both modifications can be executed autonomously by the noded, thereby reducing the likelihood of the noded becoming stranded due to the disruption of the control plane that occurs when the linkc is broken. In some implementations, the difference between the first time and the second time can be based on the estimated time required for the noded to execute the topology modification instructions included in the first control message.

309 330 305 305 305 308 308 The methodincludes receiving, by the SDN controller, confirmation that the modification of the physical network topology parameter and the modification of the routing information have been executed (stage). In the above example, the noded can send a confirmation message to the SDN controller indicating the modification instructions associated with the first and second control messages have been executed. The SDN controller can therefore determine that the network noded is not stranded, and can then instruct the other nodesin the network to update their routing information accordingly (e.g., to account for the removal of the linkc and the establishment of the new linkd).

4 FIG.A 4 FIG.B 4 FIG.A 4 FIG.C 4 FIG.A 4 FIG.B 4 4 FIGS.A-C 401 403 403 is a block diagram of an example computer network having a first topology.is a block diagram of the example computer network shown inhaving a reconfigured network topology.is a flowchart of an example method for reconfiguring the computer network shown into achieve the topologyshown in.are described together below.

4 FIG.A 401 405 405 405 405 408 408 408 405 405 408 405 405 308 405 405 408 405 405 405 405 405 405 405 405 405 405 Referring now to, a computer network topologyincludes five nodesa-e (generally referred to as nodes). The nodesare coupled to one another by three linksa-d (generally referred to as links). In particular, the nodea is coupled to the nodeb via the linka, the nodeb is coupled to the nodec via the linkb, the nodec is coupled to the noded via the linkc, and the noded is coupled to the nodee via the linke. In the example that follows, it is assumed that each of the nodesc,d, ande have three wireless transceivers, and therefore each of these nodesc,d, ande can form a link with up to three other nodes.

4 FIG.B 4 FIG.A 403 405 405 408 408 408 405 405 408 405 405 405 405 405 405 405 405 405 405 405 Referring to, the topologyincludes the same nodesa-e and the same linksa-e that are shown in, but also include the addition of the linke that joins the nodec and the nodee. In some implementations, the new linke can allow for more efficient transmission of information from nodea to nodee, for example by using the routea-b-c-e instead of the longer routea-b-c-d-e.

408 405 405 408 408 408 405 405 405 405 405 405 408 3 3 FIG.A-C 4 FIG.C In this example, the new linke can be established in a “hitless” manner, because each of the nodesc ande that are joined by the new linke have at least one unused transceiver. As a result, unlike in the example discussed above in connection with, it can be possible to establish the new linke without disrupting the control plane. To ensure that this change is hitless, the SDN controller can confirm that the new linke has been successfully established before sending control messages to the network nodesto cause the nodes to update their routing information to include the new routea-b-c-d-e, because use of the new route is dependent upon the establishment of the new linke. This example is described further below in connection with.

4 FIG.C 4 FIG.A 4 FIG.B 409 401 403 409 410 409 420 430 is a flowchart of an example methodfor reconfiguring the computer network having the topologyshown into achieve the topologyshown in. In brief overview, the methodincludes sending, by an SDN controller, a first control message to at least one node of a plurality of moving nodes (stage). The first control message includes instructions for the first node to execute a modification of a physical network topology parameter. The methodfurther includes receiving, by the SDN controller, confirmation that the modification of the physical network topology parameter has been executed (stage), and sending, by the SDN controller responsive to receiving the confirmation, a second control message to the at least one moving node of the plurality of moving nodes (stage). The second control message includes instructions for the first node to execute a modification of routing information.

4 4 FIGS.A-C 409 410 405 405 405 405 408 Referring again to, the methodincludes sending, by an SDN controller, a first control message to at least one node of a plurality of moving nodes (stage). The first control message includes instructions for the first node to execute a modification of a physical network topology parameter. In the above example, the first control message can be sent to the nodesc ande. The first control message can include instructions for each of the nodesc ande to steer their respective transceivers towards one another and to update any transceiver parameters, such as output power, frequency, and modulation scheme, to allow for the establishment of the new linke.

409 420 405 405 405 405 405 405 408 The methodincludes receiving, by the SDN controller, confirmation that the modification of the physical network topology parameter has been executed (stage). In the above example, each of the nodesc ande can be configured to send a response to the SDN controller indicating that the nodesc ande have implemented the network topology changes that were specified in their respective control messages. After the SDN controller receives confirmation messages from both of the nodesc ande, the SDN controller can determine that the new linke has been established and is ready to be used for routing information in the network.

409 430 408 405 405 405 405 405 405 405 405 405 405 405 405 405 405 The methodincludes sending, by the SDN controller responsive to receiving the confirmation, a second control message to the at least one moving node of the plurality of moving nodes (stage). The second control message includes instructions for the first node to execute a modification of routing information. In the above example, the SDN controller can determine that the linke is ready for use after it has received the confirmation messages from both of the nodesc ande. The SDN controller can then send control messages to the nodesc ande (as well as the other nodes) indicating that the new, more efficient routea-b-c-e should be preferred over the old, less efficient routea-b-c-d-e.

405 405 408 408 405 405 405 In some implementations, if the SDN controller does not receive the confirmation messages from one of the nodesc ande, the SDN controller can determine that the new linke has not been established. As a result, the SDN controller will not send updated routing information corresponding to any route that requires the linke. In some implementations, the SDN controller can attempt to resend the control messages including instructions for each of the nodesc ande to steer their respective transceivers towards one another, and again wait for confirmation from both nodes that these changes have been executed before sending updated routing information to the nodes.

Implementations of the subject matter and the operations described in this specification can be implemented in digital electronic circuitry, or in computer software embodied on a tangible medium, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Implementations of the subject matter described in this specification can be implemented as one or more computer programs embodied on a tangible medium, i.e., one or more modules of computer program instructions, encoded on one or more computer storage media for execution by, or to control the operation of, a data processing apparatus. A computer storage medium can be, or be included in, a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of them. The computer storage medium can also be, or be included in, one or more separate components or media (e.g., multiple CDs, disks, or other storage devices). The computer storage medium may be tangible and non-transitory.

A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled languages, interpreted languages, declarative languages, and procedural languages, and the computer program can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, libraries, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.

The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform actions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., a field programmable gate array (“FPGA”) or an application specific integrated circuit (“ASIC”). Such a special purpose circuit may be referred to as a computer processor even if it is not a general-purpose processor.

While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any inventions or of what may be claimed, but rather as descriptions of features specific to particular implementations of particular inventions. Certain features that are described in this specification in the context of separate implementations can also be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation can also be implemented in multiple implementations separately or in any suitable sub-combination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a sub-combination or variation of a sub-combination.

Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the implementations described above should not be understood as requiring such separation in all implementations, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.

References to “or” may be construed as inclusive so that any terms described using “or” may indicate any of a single, more than one, and all of the described terms. The labels “first,” “second,” “third,” an so forth are not necessarily meant to indicate an ordering and are generally used merely to distinguish between like or similar items or elements.

Thus, particular implementations of the subject matter have been described. Other implementations are within the scope of the following claims. In some cases, the actions recited in the claims can be performed in a different order and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In certain implementations, multitasking or parallel processing may be used.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

March 20, 2020

Publication Date

June 23, 2026

Inventors

Brian Barritt

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Systems and methods for improving tolerance of delay and disruption of a control-to-data-plane interface in a software-defined network” (US-RE050936-B2). https://patentable.app/patents/US-RE050936-B2

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.