Network control apparatus and method with table mapping engine
First Claim
1. A controller that executes a control application that manages a plurality of managed switching elements that forward data through a network, the control application comprising:
- a first set of tables for storing input logical control plane data tuples for specifying one or more logical switching elements;
a second set of tables for storing output logical forwarding plane data tuples that define a logical data path set as a plurality of logical flow entries for the one or more logical switching elements; and
a table mapping engine for mapping the input logical control plane data tuples in the first set of tables to output logical forwarding plane data tuples in the second set of tables by performing a set of database join operations on the input logical control plane data tuples in the first set of tables,wherein at least a portion of the output logical forwarding plane data tuples are for a virtualization application to subsequently translate into physical control plane data tuples for propagating to a set of the plurality of managed switching elements.
2 Assignments
0 Petitions
Accused Products
Abstract
Some embodiments provide a controller for managing a plurality of managed switching elements that forward data through a network. The controller comprising a first set of tables for storing input logical control plane data, and a second set of tables for storing output logical forwarding plane data. It also includes a table mapping engine for mapping the input logical control plane data in the first set of tables to output logical forwarding plane data in the second set of tables by performing a set of database join operations on the input logical control plane data in the first set of tables. The logical forwarding plane data is subsequently translated into physical forwarding behaviors that direct the forwarding of data by the managed switching elements.
263 Citations
22 Claims
-
1. A controller that executes a control application that manages a plurality of managed switching elements that forward data through a network, the control application comprising:
-
a first set of tables for storing input logical control plane data tuples for specifying one or more logical switching elements; a second set of tables for storing output logical forwarding plane data tuples that define a logical data path set as a plurality of logical flow entries for the one or more logical switching elements; and a table mapping engine for mapping the input logical control plane data tuples in the first set of tables to output logical forwarding plane data tuples in the second set of tables by performing a set of database join operations on the input logical control plane data tuples in the first set of tables, wherein at least a portion of the output logical forwarding plane data tuples are for a virtualization application to subsequently translate into physical control plane data tuples for propagating to a set of the plurality of managed switching elements. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A non-transitory computer readable medium storing a program which when executed by at least one processing unit generates logical forwarding plane data from logical control plane data, the program comprising sets of instructions for:
-
detecting a change in input logical control plane data tuples for controlling one or more logical switching elements; upon detecting the change, selecting a query plan from a plurality of different query plans for the input logical control plane data tuples based on the change, the selected query plan comprising a set of database join operations; and executing the selected query plan on the input logical control plane data tuples to generate output logical forwarding plane data tuples that define a logical data path set as a plurality of logical flow entries for the one or more logical switching elements. - View Dependent Claims (18, 19)
-
-
20. A method for managing a network comprising a plurality of network elements, the network elements comprising a plurality of managed switching elements that forward data among the network elements, the method comprising:
-
receiving input logical control plane data tuples from a user, the input logical control plane data tuples for controlling one or more logical switching elements; storing the received input logical control plane data tuples in a first set of tables; mapping the input logical control plane data tuples to output logical forwarding plane data tuples by performing a set of database join operations on the input logical control plane data tuples, wherein the output logical forwarding plane data tuples define a logical data path set as a plurality of logical flow entries for the one or more logical switching elements; and storing the output logical forwarding plane data tuples in a second set of tables, wherein the stored output logical forwarding plane data tuples are for sending to a virtualization application for translation by the virtualization application into physical control plane data tuples that specify rules for a set of the plurality of managed switching elements to follow in order to implement the logical data path set when processing data packets. - View Dependent Claims (21, 22)
-
Specification