IP Library Granted Patent US 11,539,591
Granted Patent B2
US 11,539,591 · App. 16/435,519 · Granted Dec 27, 2022

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.
H04L41/0893G06F15/17312H04L12/4633H04L41/0816H04L41/0853H04L41/0896H04L45/00H04L45/586H04L47/783H04L49/00H04L49/1546H04L49/3063H04L49/70H04L61/5007G06F11/07H04L2101/622
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 11,539,591
App. No.
16/435,519
Granted
Dec 27, 2022
Kind
B2
Abstract

A method of implementing a logical switching element. The method generates data for programming a set of two or more physical forwarding elements to implement the logical switching element. The method uses a first controller to distribute at least a first portion of the generated data to a first plurality of physical forwarding elements in the set of physical forwarding elements. The first controller serves as the master controller for the first plurality of physical forwarding elements. The method uses a second controller to distribute at least a second portion of the generated data to a second plurality of physical forwarding elements in the set of physical forwarding elements. The second controller serves as the master controller for the second plurality of physical forwarding elements.

Claims (42)

1. A method of implementing a logical switching element, the method comprising:

generating data for programming a set of two or more physical forwarding elements to implement the logical switching element;

using a first controller to distribute at least a first portion of the generated data to a first plurality of physical forwarding elements in the set of physical forwarding elements; and

using a second controller to distribute at least a second portion of the generated data to a second plurality of physical forwarding elements in the set of physical forwarding elements,

said first controller serving as the master controller for the first plurality of physical forwarding elements and the second controller serving as the master controller for the second plurality of physical forwarding elements.

2. The method of claim 1 , wherein:

generating the data comprises generating the data at the first controller;

using the first controller comprises distributing the first portion from the first controller to the first plurality of physical forwarding elements; and

using the second controller comprises distributing the second portion to second controller for the second controller to distribute to the second plurality of physical forwarding elements.

3. The method of claim 1 , wherein:

the logical switching element is a first logical switching element; and

the first and second controllers are part of a cluster of controllers that configure physical forwarding elements including at least the set of physical forwarding elements and another physical forwarding element to implement different logical switching elements including at least the first logical switching element and a second logical switching element.

4. The method of claim 3 , wherein:

the physical forwarding elements operate in a multi-tenant datacenter; and

the different logical forwarding elements comprise a plurality of logical switching elements for a plurality of different tenants of the multi-tenant datacenter.

5. The method of claim 3 , wherein the logical switching elements comprise logical switches.

6. The method of claim 3 , wherein the physical forwarding elements comprise software switches executing on host computers along with machines that are part of a logical network that includes the first logical switching element.

7. The method of claim 3 , wherein the physical forwarding elements comprise top of rack switches.

8. The method of claim 3 , wherein the physical forwarding elements comprise hardware forwarding elements.

9. The method of claim 1 , wherein generating the data comprises generating physical control plane data for the first and second pluralities of physical forwarding elements.

10. The method of claim 9 further comprising receiving logical forwarding data from a third controller, wherein generating the data further comprises generating the physical control plane data from the logical forwarding data.

11. A non-transitory machine readable medium storing a program which when executed by at least one processing unit implements a logical switching element, the program comprising sets of instructions for:

generating data for programming a set of two or more physical forwarding elements to implement the logical switching element;

using a first controller to distribute at least a first portion of the generated data to a first plurality of physical forwarding elements in the set of physical forwarding elements; and

using a second controller to distribute at least a second portion of the generated data to a second plurality of physical forwarding elements in the set of physical forwarding elements,

said first controller serving as the master controller for the first plurality of physical forwarding elements and the second controller serving as the master controller for the second plurality of physical forwarding elements.

12. The non-transitory machine readable medium of claim 11 , wherein:

the set of instructions for generating the data comprises a set of instructions for generating the data at the first controller;

the set of instructions for using the first controller comprises a set of instructions for distributing the first portion from the first controller to the first plurality of physical forwarding elements; and

the set of instructions for using the second controller comprises as set of instructions for distributing the second portion to second controller for the second controller to distribute to the second plurality of physical forwarding elements.

13. The non-transitory machine readable medium of claim 11 , wherein:

the logical switching element is a first logical switching element; and

the first and second controllers are part of a cluster of controllers that configure physical forwarding elements including at least the set of physical forwarding elements and another physical forwarding element to implement different logical switching elements including at least the first logical switching element and a second logical switching element.

14. The non-transitory machine readable medium of claim 13 , wherein:

the physical forwarding elements operate in a multi-tenant datacenter; and

the different logical switching elements comprise a plurality of logical switching elements for a plurality of different tenants of the multi-tenant datacenter.

15. The non-transitory machine readable medium of claim 13 , wherein the logical switching elements comprise logical switches.

16. The non-transitory machine readable medium of claim 13 , wherein the physical forwarding elements comprise software switches executing on host computers along with machines that are part of a logical network that includes the first logical switching element.

17. The non-transitory machine readable medium of claim 13 , wherein the physical forwarding elements comprise top of rack switches.

18. The non-transitory machine readable medium of claim 13 , wherein the physical forwarding elements comprise hardware forwarding elements.

19. The non-transitory machine readable medium of claim 11 , wherein the set of instructions for generating the data comprises a set of instructions for generating physical control plane data for the first and second pluralities of physical forwarding elements.

20. The non-transitory machine readable medium of claim 19 , wherein the program further comprises a set of instructions for receiving logical forwarding data from a third controller, wherein the set of instructions for generating the data further comprises a set of instructions for generating the physical control plane data from the logical forwarding data.

Assignments (2)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2022
From: LAMBETH, W. ANDREW; KOPONEN, TEEMU; CASADO, MARTIN
To: NICIRA, INC.
Reel/Frame 061618/0327 →
Continuity (19)
Continuation 15173611 · Jun 3, 2016
Continuation 13219578 · Aug 26, 2011
Continuation In Part 13177538 · Jul 6, 2011
Continuation In Part 13177536 · Jul 6, 2011
Continuation 13177533 · Jul 6, 2011
Provisional Application 61505103 · Jul 6, 2011
Provisional Application 61505102 · Jul 6, 2011
Provisional Application 61505100 · Jul 6, 2011
Provisional Application 61501785 · Jun 28, 2011
Provisional Application 61501743 · Jun 27, 2011
Provisional Application 61482615 · May 4, 2011
Provisional Application 61482616 · May 4, 2011
Provisional Application 61482205 · May 3, 2011
Provisional Application 61466453 · Mar 22, 2011
Provisional Application 61429754 · Jan 4, 2011
Provisional Application 61429753 · Jan 4, 2011
Provisional Application 61361913 · Jul 6, 2010
Provisional Application 61361912 · Jul 6, 2010
Related Publication 20200014598A1 · Jan 9, 2020
Cited By (2)
US 12,463,871 US 12,695,667