IP Library Granted Patent US 9,602,422
Granted Patent B2
US 9,602,422 · App. 14/316,789 · Granted Mar 21, 2017

Implementing fixed points in network state updates using generation numbers

Inventors: Alexander Yip (Menlo Park, CA); Timothy L. Hinrichs (Los Altos, CA); Amar Padmanabhan (Menlo Park, CA); Natasha Gude (San Francisco, CA); Igor Ganichev (Mountain View, CA); Anuprem Chalvadi (Sunnyvale, CA)
Assignee: NICIRA, INC.
H04L47/56H04L41/042H04L41/046H04L41/0873H04L43/08H04L43/0811H04L47/10H04L67/10
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,602,422
App. No.
14/316,789
Granted
Mar 21, 2017
Kind
B2
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.

Claims (35)

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. The machine-readable medium of claim 1 , wherein the first and second sets of publications comprise state data relating to a set of logical datapath sets of the plurality of logical datapath sets.

3. The machine-readable medium of claim 1 , wherein the first and second sets of publications comprise state data relating to a set of forwarding elements of the plurality of forwarding elements.

4. The machine-readable medium of claim 1 , wherein the program further comprises a set of instructions for notifying other controllers of the plurality of controllers about the second generation number.

5. The machine-readable medium of claim 4 , wherein the set of instructions for notifying other controllers of the plurality of controllers comprises a set of instructions for updating a centralized database with the second generation number.

6. The machine-readable medium of claim 1 , wherein the set of instructions for detecting the change in the allocation comprises a set of instructions for detecting that a publisher controller of the plurality of publisher controllers has failed.

7. The machine-readable medium of claim 1 , wherein the set of instructions for detecting the change in the allocation comprises a set of instructions for detecting that a publisher controller of the plurality of publisher controllers that was previously responsible for a particular publication is no longer responsible for the particular publication.

8. The machine-readable medium of claim 1 , wherein when the change in the allocation does not affect the particular publisher controller, the second set of publications comprises the same publications as the first set of publications.

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.

10. The method of claim 9 , wherein the network state data of the publications is related to a set of forwarding elements of the plurality of forwarding elements.

11. The method of claim 10 , wherein computing the set of outputs comprises computing forwarding rules for the set of forwarding elements based on the network state data.

12. The method of claim 9 , wherein the network state data of the publications is related to a set of logical datapath sets of the plurality of logical datapath sets.

13. The method of claim 12 , wherein computing the set of outputs comprises computing physical forwarding state data for the set of logical datapath sets based on the network state data.

14. The method of claim 9 , wherein the first generation number is more current than the second generation number when the first generation number is higher than the second generation number.

15. The method of claim 9 further comprising removing the second publication when the stored first publication is the same as the received second publication.

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.

17. The method of claim 16 , wherein the first and second sets of publications comprise state data relating to a set of logical datapath sets of the plurality of logical datapath sets.

18. The method of claim 16 , wherein the first and second sets of publications comprise state data relating to a set of forwarding elements of the plurality of forwarding elements.

19. The method of claim 16 further comprising notifying other controllers of the plurality of controllers about the second generation number.

20. The method of claim 19 , wherein notifying the other controllers of the plurality of controllers comprises updating a centralized database with the second generation number.

Assignments (3)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2014
From: GUDE, NATASHA
To: NICIRA, INC.
Reel/Frame 033499/0384 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2014
From: YIP, ALEXANDER; HINRICHS, TIMOTHY L; PADMANABHAN, AMAR; GANICHEV, IGOR; CHALVADI, ANUPREM
To: NICIRA, INC.
Reel/Frame 033243/0971 →
Continuity (2)
Provisional Application 61988869 · May 5, 2014
Related Publication 20150319031A1 · Nov 5, 2015