IP Library Granted Patent US 9,363,210
Granted Patent B2
US 9,363,210 · App. 13/219,578 · Granted Jun 7, 2016

Distributed network control system with one master controller per logical datapath set

Inventors: W. Andrew Lambeth (San Mateo, CA); Teemu Koponen (San Francisco, CA); Martin Casado (Portola Valley, CA)
Assignee: NICIRA, INC.
H04L49/70G06F15/17312H04L12/4633H04L12/5689H04L12/5696H04L41/0893H04L41/0896H04L45/586H04L47/783H04L49/1546H04L49/3063G06F11/07
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,363,210
App. No.
13/219,578
Granted
Jun 7, 2016
Kind
B2
Abstract

A network control system for managing a plurality of managed switching elements that implement a plurality of logical datapath sets. The network control system includes a first controller instance that manages the logical datapath sets by generating, based on logical forwarding plane data, physical control plane data. The network control system also includes a second controller instance that manages the managed switching elements by receiving physical control plane data and sending the physical control plane data to the switching elements.

Claims (23)

1. A non-transitory machine readable medium storing a program, which when executed by at least one processing unit provides a first network controller instance that is part of a network control system comprising a plurality of network controller instances, the program comprising sets of instructions for:

generating, based on logical forwarding plane data that specifies a particular logical data path set in terms of logical forwarding behaviors of the particular logical data path set, output physical control plane data that specifies rules for at least a first managed switching element and a second managed switching element, respectively, to follow in order to implement the particular logical data path set, wherein the first network controller instance is a master controller instance for the particular logical data path set and the first managed switching element; and

sending (i) the output physical control plane data that specifies rules for the first managed switching element to the first managed switching element and (ii) the output physical control plane data that specifies rules for the second managed switching element to a second network controller instance that manages the second managed switching element.

2. The non-transitory machine readable medium of claim 1 , wherein the master controller instance for the particular logical data path set is the only controller instance that generates the output physical control plane data that specifies rules for a group of managed switching elements to follow in order to implement the logical datapath set, the group of managed switching elements comprising the first and second managed switching elements.

3. The non-transitory machine readable medium of claim 1 , wherein the second network controller instance sends the output physical control plane data for the second managed switching element to the second managed switching element.

4. The non-transitory machine readable medium of claim 3 , wherein the master controller instance determines to make a modification after receiving a modification request from a third network controller instance.

5. The non-transitory machine readable medium of claim 4 , wherein the master controller instance receives the modification request as a request that is stored on a request list that is propagated through network information base (NIB) storages of the first and third network controller instances when the NIB storages are replicated across the master controller instance and the third network controller instance.

6. The non-transitory machine readable medium of claim 1 , wherein the program further comprises sets of instructions for:

receiving logical control plane data that specifies a definition for the particular logical data path set; and

generating at least a portion of the logical forwarding plane data based on the received logical control plane data.

7. The non-transitory machine readable medium of claim 1 , wherein the first and second managed switching elements convert the physical control plane data to physical forwarding plane data, said physical forwarding plane data allowing the first and second managed switching elements to forward packets to implement logical forwarding behaviors specified for the particular logical data path set.

8. The non-transitory machine readable medium of claim 1 , wherein the first managed switching element implements at least one additional logical data path set in addition to the particular logical data path set.

9. The non-transitory machine readable medium of claim 1 , wherein a third network controller instance is prevented from generating logical forwarding plane data for the particular logical data path set while the first network controller instance operates as the master controller instance for the particular logical data path set, wherein, upon failure of the first network controller instance, the third network controller instance operates as a new master controller instance of the particular logical data path set.

10. A network control system for managing a plurality of managed switching elements that implement a plurality of logical data path sets, the network control system comprising:

a first controller instance that manages a particular logical data path set of the plurality of logical data path sets and a first managed switching element of the plurality of managed switching elements, wherein the first controller instance is for generating, based on logical forwarding plane data that specifies the particular logical data path set in terms of forwarding behaviors of the particular logical data path set, physical control plane data that specifies rules for the first managed switching element and a second managed switching element, respectively, in order to define forwarding behaviors of the first and second managed switching elements to implement the particular logical data path set; and

a second controller instance that manages the second managed switching element, wherein the second controller instance is for ci) receiving the physical control plane data that specifies rules for the second managed switching element and is generated by the first controller instance and cii) sending the received physical control plane data to the second managed switching element.

11. The network control system of claim 10 , wherein the first controller instance is further for receiving logical control plane data that specifies a definition for the particular logical data path set and for generating, based on the received logical control plane data, the logical forwarding plane data for subsequent conversion into physical control plane data.

12. The network control system of claim 11 , wherein the logical control plane data for the particular logical data path set is supplied to the first controller instance through a user interface.

13. The network control system of claim 10 , wherein the particular logical data path set is a first logical data path set, wherein the second controller instance is further for receiving physical control plane data for a second logical data path set and sending the received physical control plane data for the second logical data path set to the second managed switching element.

14. The network control system of claim 10 , wherein the first and second managed switching elements are for receiving the physical control plane data and converting the received physical control plane data to physical forwarding plane data.

15. The network control system of claim 10 , wherein the particular logical data path set is a first logical data path set, wherein the first controller instance also manages a second logical data path set.

16. The network control system of claim 10 , wherein the second controller instance also manages a third managed switching element.

17. The network control system of claim 16 , wherein the particular logical data path set is a first logical data path set, wherein the second controller instance is further for receiving physical control plane data for a second logical data path set from a third controller instance that manages the second logical data path set.

Assignments (3)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
CHANGE OF NAME Recorded Jun 15, 2012
From: NICIRA NETWORKS, INC.
To: NICIRA, INC.
Reel/Frame 028381/0048 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 6, 2012
From: LAMBETH, W. ANDREW; KOPONEN, TEEMU; CASADO, MARTIN
To: NICIRA NETWORKS, INC.
Reel/Frame 028005/0059 →
Continuity (17)
Continuation 13177533 · Jul 6, 2011
Continuation In Part 13177536 · Jul 6, 2011
Continuation In Part 13177538 · Jul 6, 2011
Provisional Application 61361912 · Jul 6, 2010
Provisional Application 61361913 · Jul 6, 2010
Provisional Application 61429753 · Jan 4, 2011
Provisional Application 61429754 · Jan 4, 2011
Provisional Application 61466453 · Mar 22, 2011
Provisional Application 61482205 · May 3, 2011
Provisional Application 61482615 · May 4, 2011
Provisional Application 61482616 · May 4, 2011
Provisional Application 61501743 · Jun 27, 2011
Provisional Application 61501785 · Jun 28, 2011
Provisional Application 61505100 · Jul 6, 2011
Provisional Application 61505102 · Jul 6, 2011
Provisional Application 61505103 · Jul 6, 2011
Related Publication 20130060819A1 · Mar 7, 2013