IP Library Granted Patent US 11,979,280
Granted Patent B2
US 11,979,280 · App. 16/147,833 · Granted May 7, 2024

Network control apparatus and method for populating logical datapath sets

Inventors: Martin Casado (Portola Valley, CA); Teemu Koponen (San Francisco, CA); W. Andrew Lambeth (Palo Alto, CA); Pankaj Thakkar (Cupertino, CA)
Assignee: Nicira, Inc.
H04L41/0816H04L41/0813H04L41/0893H04L47/125H04L49/70
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,979,280
App. No.
16/147,833
Granted
May 7, 2024
Kind
B2
Abstract

For a network control system that receives, from a user, logical datapath sets that logically express desired forwarding behaviors that are to be implemented by a set of managed switching elements, a controller for managing several managed switching elements that forward data in a network that includes the managed switching elements is described. The controller includes a set of modules for detecting a change in one or more managed switching elements and for updating logical datapath set based on the detected change. The logical datapath set is for subsequent translation into a set of physical forwarding behaviors of the managed switching elements.

Claims (53)

1. A non-transitory machine readable medium of a controller in a network control system for controlling a plurality of managed switching elements that forward data in a network, the non-transitory machine readable medium storing a program for execution by a set of processing units of the controller, the program comprising sets of instructions for:

at the controller:

receiving a user input first set of data;

converting the user input first set of data into a logical control plane (LCP) second set of data that specifies a logical switch implemented by a set of two or more managed switching elements executing on a plurality of host computers in the network;

converting the LCP second set of data into a logical forwarding plane (LFP) third set of data that defines a set of logical forwarding rules for the logical switch; and

converting the LFP third set of data into a set of physical forwarding rules that directs the forwarding for the set of managed switching elements of the plurality of managed switching elements.

2. The non-transitory machine readable medium of claim 1 , wherein the LCP second set of data is part of a larger LCP fourth set of data, the program further comprising a set of instructions for:

filtering out, from the LCP fourth set of data, LCP data that is not a part of the LCP second set of data,

wherein the set of instructions for converting the LCP second set of data into the LFP third set of data comprises a set of instructions for converting the LCP second set of data that is not filtered out into the LFP third set of data.

3. The non-transitory machine readable medium of claim 1 , wherein:

the LCP second set of data is stored in a first set of tables,

the LFP third set of data is stored in a second set of tables, and

the set of instructions for converting the LCP second set of data into the LFP third set of data comprises a set of instructions for using a table mapping that maps records in the first set of tables to records in the second set of tables to convert the LCP second set of data stored in the first set of tables into the LFP third set of data stored in the second set of tables.

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

detecting changes to the managed switching elements; and

based on the changes, supplying the user input first set of data to be converted into the LCP second set of data to be converted into the LFP third set of data that defines the logical switch.

5. The non-transitory machine readable medium of claim 4 , wherein the set of instructions for detecting changes to the managed switching elements comprises a set of instructions for monitoring a data storage structure that stores managed switching element data regarding the managed switching elements to detect changes to the managed switching elements.

6. The non-transitory computer readable medium of claim 1 , wherein the controller is a first controller, the logical switch is a first logical switch, the set of logical forwarding rules is a first set of logical forwarding rules, the set of physical forwarding rules is a first set of physical forwarding rules, the set of managed switching elements is a first set of managed switching elements, the program is a first program, and the network control system comprises a second controller comprising a machine readable medium storing a second program for execution by a set of processing units of the second controller, the second program comprising sets of instructions for:

converting the user input first set of data into an LCP fourth set of data that specifies a second logical switch; and

converting the LCP fourth set of data into an LFP fifth set of data that defines a second set of logical forwarding rules for the second logical switch,

wherein the LFP fifth set of data is for translation into a second set of physical forwarding rules that directs the forwarding for a second set of managed switching elements of the plurality of managed switching elements.

7. The non-transitory computer readable medium of claim 6 , wherein the first logical switch differs from the second logical switch.

8. The non-transitory computer readable medium of claim 7 , wherein the first controller is a master controller of the first logical switch, while the second controller is a master controller of the second logical switch.

9. The non-transitory computer readable medium of claim 8 , wherein the LCP second and fourth sets of data are part of a larger LCP sixth set of data, wherein each program further comprises a set of instructions for:

filtering out, from the LCP sixth set of data, LCP data that is not a part of the LCP set of data that specifies a logical switch for which the controller is a master controller,

wherein the set of instructions for converting the LCP second set of data into the LFP third set of data comprises a set of instructions for converting the LCP second set of data that is not filtered out into the LFP third set of data, and

wherein the set of instructions for converting the LCP fourth set of data into the LFP fifth set of data comprises a set of instructions for converting the LCP fourth set of data that is not filtered out into the LFP fifth set of data.

10. A method for a controller in a network control system for controlling a plurality of managed switching elements that forward data in a network, the method comprising:

at the controller:

receiving a user input first set of data;

converting the user input first set of data into a logical control plane (LCP) second set of data that specifies a logical switch implemented by a set of two or more managed switching elements executing on a plurality of host computers in the network;

converting the LCP second set of data into a logical forwarding plane (LFP) third set of data that defines a set of logical forwarding rules for the logical switch; and

converting the LFP third set of data into a set of physical forwarding rules that directs the forwarding for the set of managed switching elements of the plurality of managed switching elements.

11. The method of claim 10 , wherein the LCP second set of data is part of a larger LCP fourth set of data, the method further comprising:

filtering out, from the LCP fourth set of data, LCP data that is not a part of the LCP second set of data,

wherein converting the LCP second set of data into the LFP third set of data comprises converting the LCP second set of data that is not filtered out into the LFP third set of data.

12. The method of claim 10 , wherein:

The LCP second set of data is stored in a first set of tables,

the LFP third set of data is stored in a second set of tables, and

converting the LCP second set of data into the LFP third set of data comprises using a table mapping that maps records in the first set of tables to records in the second set of tables to convert the LCP second set of data stored in the first set of tables into the LFP third set of data stored in the second set of tables.

13. The method of claim 10 , wherein the method further comprises:

detecting changes to the managed switching elements; and

based on the changes, supplying the user input first set of data to be converted into the LCP second set of data to be converted into the LFP third set of data that defines the logical switch.

14. The method of claim 13 , wherein detecting changes to the managed switching elements comprises monitoring a data storage structure that stores managed switching element data regarding the managed switching elements to detect changes to the managed switching elements.

15. The method of claim 10 , wherein the controller is a first controller, the logical switch is a first logical switch, the set of logical forwarding rules is a first set of logical forwarding rules, the set of physical forwarding rules is a first set of physical forwarding rules, the set of managed switching elements is a first set of managed switching elements, and the network control system comprises a second controller, the method comprising:

converting the user input first set of data into an LCP fourth set of data that specifies a second logical switch; and

converting the LCP fourth set of data into an LFP fifth set of data that defines a second set of logical forwarding rules for the second logical switch,

wherein the LFP fifth set of data is for translation into a second set of physical forwarding rules that directs the forwarding for a second set of managed switching elements of the plurality of managed switching elements.

16. The method of claim 15 , wherein the first logical switch differs from the second logical switch.

17. The method of claim 16 wherein the first controller is a master controller of the first logical switch, while the second controller is a master controller of the second logical switch.

18. The method of claim 17 , wherein the LCP second and fourth sets of data are part of a larger LCP sixth set of data, the method further comprising:

filtering out, from the LCP sixth set of data, LCP data that is not part of the LCP set of data that specifies a logical switch for which the controller is a master controller,

wherein converting the LCP second set of data into the LFP third set of data comprises converting the LCP second set of data that is not filtered out into the LFP third set of data, and wherein converting the LCP fourth set of data into LFP fifth set of data comprises converting the LCP fourth set of data that is not filtered out into the LFP fifth set of data.

Assignments (2)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2019
From: CASADO, MARTIN; KOPONEN, TEEMU; LAMBETH, W. ANDREW; THAKKAR, PANKAJ
To: NICIRA, INC.
Reel/Frame 049947/0575 →
Continuity (18)
Continuation 13269409 · Oct 7, 2011
Continuation In Part 13177538 · Jul 6, 2011
Continuation 13177532 · Jul 6, 2011
Continuation In Part 13177536 · Jul 6, 2011
Provisional Application 61505100 · Jul 6, 2011
Provisional Application 61505103 · Jul 6, 2011
Provisional Application 61505102 · 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 61429753 · Jan 4, 2011
Provisional Application 61429754 · Jan 4, 2011
Provisional Application 61361913 · Jul 6, 2010
Provisional Application 61361912 · Jul 6, 2010
Related Publication 20190104018A1 · Apr 4, 2019