Managing network routes from a central server
First Claim
Patent Images
1. A network device, comprising:
- a memory device that is configured to store data; and
a processor that is operative on the data to perform actions, including;
receiving state information from each forwarding device within a plurality of forwarding devices within a defined network;
determining a network demand for each of the plurality of forwarding devices within the defined network;
determining a set of paths between source-destination pairs of forwarding devices within the plurality of forwarding devices;
for each forwarding device in the plurality of forwarding devices;
determining from the set of paths a desired state, anddetermining differences between the received state information and the desired state;
defining an operational command schedule based on the determined differences, the operational command schedule being arranged in a sequence that makes a completed new path structure before breaking an existing path structure between forwarding devices; and
transmitting each operational command, within the operational command schedule based on the arranged sequence, to one or more of the forwarding devices, wherein the one or more forwarding devices are instructed to inhibit implementation of a received operational command until receiving an indication that the new path structure is usable.
2 Assignments
0 Petitions
Accused Products
Abstract
Embodiments are directed towards managing network routes using a centralized service on behalf of a network of a plurality of forwarding devices. The centralized service develops a global view of the network based on information from the forwarding devices. The centralized service computes changes to the routing policy for each of the nodes. The centralized service then generates an operational command schedule that is distributed to the forwarding devices using a “make before break” sequence to ensure that transient black holes do not happen as the new routing policy is being implemented.
37 Citations
20 Claims
-
1. A network device, comprising:
-
a memory device that is configured to store data; and a processor that is operative on the data to perform actions, including; receiving state information from each forwarding device within a plurality of forwarding devices within a defined network; determining a network demand for each of the plurality of forwarding devices within the defined network; determining a set of paths between source-destination pairs of forwarding devices within the plurality of forwarding devices; for each forwarding device in the plurality of forwarding devices; determining from the set of paths a desired state, and determining differences between the received state information and the desired state; defining an operational command schedule based on the determined differences, the operational command schedule being arranged in a sequence that makes a completed new path structure before breaking an existing path structure between forwarding devices; and transmitting each operational command, within the operational command schedule based on the arranged sequence, to one or more of the forwarding devices, wherein the one or more forwarding devices are instructed to inhibit implementation of a received operational command until receiving an indication that the new path structure is usable. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system, comprising:
-
a first network infrastructure having a plurality of forwarding devices therein; and a network device having a processor that is configured to perform actions, including; receiving state information from each forwarding device within the first network infrastructure; determining a network demand for each of the plurality of forwarding devices; determining a set of paths between source-destination pairs of forwarding devices within the plurality of forwarding devices; for each forwarding device in the plurality of forwarding devices; determining from the set of paths a desired state, and determining a difference between the received state information and the desired state; and defining an operational command schedule based on the determined difference, the operational command schedule being arranged in a sequence that makes a completed new path structure before breaking an existing path structure between, forwarding devices; and transmitting each operational command, within the operational command schedule based on the arranged sequence, to one or more of the forwarding devices, wherein the one or more forwarding devices are instructed to inhibit implementation of a received operational command until receiving an indication that the new path structure is usable. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer-readable storage device having computer-executable instructions stored thereon such that when the storage device is accessed by a computing device, the instructions are executable by the computing device to perform actions, comprising:
-
receiving state information from each forwarding device within a plurality of forwarding devices within a defined network; determining a network demand for each of the plurality of forwarding devices within the defined network; determining a set of paths between source-destination pairs of forwarding devices within the plurality of forwarding devices; for each forwarding device in the plurality of forwarding devices; determining from the set of paths a desired state, and determining differences between the received state information and the desired state; defining an operational command schedule based on the determined differences, the operational command schedule being arranged in a sequence that makes a completed new path structure before breaking an existing path structure between forwarding devices; and transmitting each operational command, within the operational command schedule based on the arranged sequence, to one or more of the forwarding devices, wherein a sequence identifier is associated with each operational command, the sequence identifier being used to prevent out of order operational commands from being implemented by a forwarding device. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification