Implementing fixed points in network state updates using generation numbers
First Claim
1. A machine-readable medium storing a program executable by at least one processing unit of a particular publisher controller in a network control system, the network control system comprising a plurality of controllers that manage a plurality of forwarding elements in order to implement a plurality of logical datapath sets, the plurality of controllers comprising a plurality of publisher controllers, the program comprising sets of instructions for:
- identifying a first set of publications that the particular publisher controller is responsible for publishing, the publications including network state data;
publishing the first set of publications with a first generation number to a set of subscriber controllers of the plurality of controllers;
detecting a change in an allocation of publication responsibilities of at least one publisher controller of the plurality of publisher controllers;
determining a second generation number based on the changed allocation; and
publishing, with the second generation number, a second set of publications for which the particular publisher controller is responsible based on the changed allocation.
2 Assignments
0 Petitions
Accused Products
Abstract
Some embodiments provide a novel network control system that provides publications for managing different slices (e.g., logical and/or physical entities) of a network. The publications are published from publisher controllers in the network control system to subscriber controllers. The network control system uses publications with generation numbers and buffered subscribers to implement the fixed points in order to help maintain a consistent network state. The information published with a publication is useful for resolving conflicts in the network control system when multiple publisher controllers provide conflicting inputs to a subscriber controller.
-
Citations
20 Claims
-
1. A machine-readable medium storing a program executable by at least one processing unit of a particular publisher controller in a network control system, the network control system comprising a plurality of controllers that manage a plurality of forwarding elements in order to implement a plurality of logical datapath sets, the plurality of controllers comprising a plurality of publisher controllers, the program comprising sets of instructions for:
-
identifying a first set of publications that the particular publisher controller is responsible for publishing, the publications including network state data; publishing the first set of publications with a first generation number to a set of subscriber controllers of the plurality of controllers; detecting a change in an allocation of publication responsibilities of at least one publisher controller of the plurality of publisher controllers; determining a second generation number based on the changed allocation; and publishing, with the second generation number, a second set of publications for which the particular publisher controller is responsible based on the changed allocation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. For a subscriber controller of a network control system that manages a plurality of forwarding elements in order to implement a plurality of logical datapath sets, a method comprising:
-
receiving a first publication comprising network state data, the first publication having a first generation number from a first publisher controller; receiving a second publication comprising network state data, the second publication having a second generation number from a second publisher controller; when the first generation number is more current than the second generation number, storing the first publication; when the second generation number is more current than the first generation number, storing the second publication; and computing a set of outputs using the stored publication for implementing the plurality of logical datapath sets. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. For a particular publisher controller in a network control system comprising a plurality of controllers that manage a plurality of forwarding elements in order to implement a plurality of logical datapath sets, the plurality of controllers comprising a plurality of publisher controllers, a method comprising:
-
identifying a first set of publications that the particular publisher controller is responsible for publishing, the publication including network state data; publishing the first set of publications with a first generation number to a set of subscriber controllers of the plurality of controllers; detecting a change in an allocation of publication responsibilities of at least one publisher controller of the plurality of publisher controllers; determining a second generation number based on the changed allocation; and publishing, with the second generation number, a second set of publications for which the particular publisher controller is responsible based on the changed allocation. - View Dependent Claims (17, 18, 19, 20)
-
Specification