Patent application number | Description | Published |
20100070677 | System and Method for Reducing Communication Overhead Between Network Interface Controllers and Virtual Machines - Available buffers in the memory space of a guest operating system of a virtual machine are provided to a network interface controller (NIC) for use during direct memory access (DMA) and the guest operating system is notified accordingly when data is written into such available buffers. These capabilities obviate the requirement of using hypervisor memory as a staging area to determine which virtual machine to forward incoming data. | 03-18-2010 |
20120120964 | NETWORK CONTROL APPARATUS AND METHOD FOR POPULATING LOGICAL DATAPATH SETS - 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. | 05-17-2012 |
20120147898 | NETWORK CONTROL APPARATUS AND METHOD FOR CREATING AND MODIFYING LOGICAL SWITCHING ELEMENTS - A network controller for managing several managed switching elements that forward data in a network that includes the managed switching elements. The network controller is further for creating a logical switching element to be implemented in a set of managed switching elements. The network controller includes a set of modules for receiving input data specifying a logical switching element and for creating, based on the received input data, a set of logical switch constructs for the logical switching element by performing a set of database join operations. At least one of the logical switch constructs is for facilitating non-forwarding behavior of the logical switching element. | 06-14-2012 |
20130044636 | DISTRIBUTED LOGICAL L3 ROUTING - A novel method for configuring first and second managed forwarding elements to perform logical L2 switching and L3 routing is described. The method generates a first set of flow entries for configuring the first managed forwarding element to perform logical L2 ingress processing and L3 routing processing. The method generates a second set of flow entries for configuring the second managed forwarding element to performing logical L2 egress processing. | 02-21-2013 |
20130044641 | FEDERATING INTERCONNECTION SWITCHING ELEMENT NETWORK TO TWO OR MORE LEVELS - A network control system for interconnecting several separate networks. The system includes i) several interconnection switching elements, each of which is for connecting one of the separate networks to a common interconnecting network, ii) a first set of network controllers for managing a first set of the interconnection switching elements at a first set of separate networks in order for machines at different networks within the first set to communicate with each other, iii) a second set of network controllers for managing a second set of interconnection switching elements at a second set of separate networks in order for machines at different networks within the second set to communicate with each other, and iv) a third set of network controllers for managing the first and second sets of network controllers in order for machines at networks in the first set to communicate with machines at networks in the second set. | 02-21-2013 |
20130044751 | PACKET PROCESSING IN MANAGED INTERCONNECTION SWITCHING ELEMENTS - Some embodiments provide a novel method for forwarding a packet at a first managed interconnection switching element in a managed network of interconnection switching elements. The method receives a packet from a source machine on a first network segment in a first network. The packet identifies a destination machine located on a second network segment in a second, different network. The method removes a context tag that identifies the first network segment. The method uses the identification of the first network segment to determine a logical switching element that connects at least the first and second network segments. The method encapsulates the packet with a logical context identifier that identifies a logical port of the logical switching element. The logical port corresponds to the second network segment. The method transmits the twice-encapsulated packet towards a second managed interconnection switching element at the second network. | 02-21-2013 |
20130044752 | FLOW GENERATION FROM SECOND LEVEL CONTROLLER TO FIRST LEVEL CONTROLLER TO MANAGED SWITCHING ELEMENT - A network control system that includes a first set of network controllers for (i) receiving a logical control plane definition of a logical switching element that couples to both a first set of network hosts in a first domain and a second set of network hosts in a second domain, (ii) translating the logical control plane definition of the logical switching element into a first set of flow entries in a first logical forwarding plane, and (iii) translating the first set of flow entries into a second set of flow entries in a second logical forwarding plane. The network control system includes a second set of network controllers in the first domain for (i) receiving a portion of the second set of flow entries and (ii) translating the portion of the second set of flow entries into a third set of flow entries in a physical control plane. | 02-21-2013 |
20130044761 | HIERARCHICAL CONTROLLER CLUSTERS FOR INTERCONNECTING TWO OR MORE LOGICAL DATAPATH SETS - Some embodiments provide a novel network control system for managing a set of switching elements in a network. The network control system includes a first set of network controllers for managing a first set of switching elements that enable communication between a first set of machines. The network control system includes a second set of network controllers for managing a second set of switching elements that enable communication between a second set of machines. The second set of switching elements is separate from the first set of switching elements and the second set of machines is separate from the first set of machines. The network control system includes a third set of network controllers for managing the first and second sets of network controllers in order to enable communication between machines in the first set of machines and machines in the second set of machines. | 02-21-2013 |
20130044762 | Packet processing in managed interconnection switching elements - Some embodiments provide a novel network control system for interconnecting several separate networks. The system includes a set of interconnection switching elements. Each interconnection switching element in the set is for connecting one of the separate networks to a common interconnecting network. The system includes a set of network controllers for managing the interconnection switching elements in order for the interconnection switching elements to send packets from a first machine at a first one of the networks to a second machine at a second one of the networks. | 02-21-2013 |
20130044763 | PACKET PROCESSING IN FEDERATED NETWORK - Some embodiments provide a novel method for forwarding a packet at a managed switching element in a first domain. The method receives a packet from a local machine. The method encapsulates the packet with a first context identifier that identifies a first logical port of a first logical switching element that couples to machines in both the first domain and a second domain. The first logical port maps to a destination address of the packet. Based on a mapping of the first logical port to a second logical port of a second logical switching element that couples to machines in only the first domain, the method encapsulates the packet with a second context identifier that identifies the second logical port. The method transmits the twice-encapsulated packet out of a port of the managed switching element based on the second context identifier. | 02-21-2013 |
20130044764 | GENERATING FLOWS FOR MANAGED INTERCONNECTION SWITCHES - A network controller for managing a set of interconnection switching elements that connect segmented networks to a shared physical interconnection network. The network controller includes i) an interface for receiving a logical control plane definition of a logical switching element that couples to a set of network segments at different segmented networks; ii) a control application for translating the logical control plane definition of the logical switching element into a first set of flow entries in a logical forwarding plane; and iii) a virtualization application for translating the first set of flow entries into a second set of flow entries in a physical control plane. The flow entries in the physical control plane are for subsequent conversion by the managed interconnection switching elements into a third set of flow entries in a physical forwarding plane that directs the forwarding of network data by the managed interconnection switching elements. | 02-21-2013 |
20130058208 | FAULT TOLERANT MANAGED SWITCHING ELEMENT ARCHITECTURE - In a hierarchical switching architecture that includes at least one lower level managed switching element that connects to several higher level managed switching elements, some embodiments provide a method of identifying a higher level managed switching element to which the lower level managed switching element forwards a packet for further processing. The method computes a distribution metric based on a set of attributes of the packet. The method performs a lookup on a hierarchy traversal table that specifies (1) a set of primary higher level managed switching elements and (2) a set of secondary higher level managed switching element. The lookup is for determining a higher level managed switching element specified in the hierarchical traversal table to forward the packet for further processing. The method forwards the packet to the determined higher level managed switching element. | 03-07-2013 |
20130058215 | NETWORK VIRTUALIZATION APPARATUS AND METHOD WITH A TABLE MAPPING ENGINE - Some embodiments provide a virtualizer for managing a plurality of managed switching elements that forward data through a network. The virtualizer comprises a first set of tables for storing input logical forwarding plane data and a second set of tables for storing output physical control plane data. It also includes a table mapping engine for mapping the input logical forwarding plane data in the first set of tables to output physical control plane data in the second set of tables by performing a set of database join operations on the input logical forwarding plane data in the first set of tables. In some embodiments, the physical control plane data is subsequently translated into physical forwarding behaviors that direct the forwarding of data by the managed switching elements. | 03-07-2013 |
20130058225 | DISTRIBUTED NETWORK CONTROL APPARATUS AND METHOD - Some embodiments provide a distributed control system for controlling managed switching elements of a network. The distributed control system comprises a first controller for converting a first set of input logical control plane data to a first set of output logical forwarding plane data. It also includes a second controller for converting a second set of input logical control plane data to a second set of output logical forwarding plane data. The logical forwarding plane data is translated into physical forwarding behaviors that direct the forwarding of data by the managed switching elements. | 03-07-2013 |
20130058228 | NETWORK VIRTUALIZATION APPARATUS AND METHOD - Some embodiments provide a network virtualizer for managing several managed switching elements that forward data in a network. The virtualizer includes an interface for receiving input logical forwarding plane data. It also includes a converter for converting the input logical forwarding plane data to output physical control plane data. In some embodiments, the physical control plane data is translation into physical forwarding plane data that direct the forwarding of data by the managed switching elements. | 03-07-2013 |
20130058229 | METHOD AND APPARATUS FOR ROBUST PACKET DISTRIBUTION AMONG HIERARCHICAL MANAGED SWITCHING ELEMENTS - For a network that includes several managed edge switching elements and several managed non-edge switching elements that are for implementing a logical switching element, some embodiments provide a method of distributing packet processing across the several managed non-edge switching elements. The method receives a packet for processing through the logical switching element. Based on a determination that the packet needs to be processed by a managed non-edge switching element, the method determines a particular managed non-edge switching element of the several managed non-edge switching elements to forward the packet. The method forwards the packet to the particular managed non-edge switching element for the particular managed non-edge switching element to process the packet. | 03-07-2013 |
20130058250 | HIERARCHICAL MANAGED SWITCH ARCHITECTURE - Some embodiments provide a method for managing several managed switching elements in a network. The method determines configurations for the several managed switching elements to implement a first logical data path set. Based on the determined configurations, the method configures a first set of the several managed switching elements to implement the first logical data path set. The method configures a second set of the several managed switching elements to implement a second logical data path set. | 03-07-2013 |
20130058331 | DEPLOYMENT OF HIERARCHICAL MANAGED SWITCHING ELEMENTS - Some embodiments provide a method that identifies several higher level switching elements for facilitating lower level switching elements to forward packets among network hosts. The method establishes a set of tunnels among the lower level switching elements and the higher level switching elements. At least one tunnel is established between a lower level switching element and a higher level switching element. For each higher level switching element in the several higher level switching elements, the method identifies a first set of forwarding data that specifies forwarding of packets between the higher level switching element and the several lower level switching elements. For each lower level switching element in the several lower level switching elements, the method identifies a second set of forwarding data that specifies forwarding of packets between the lower level switching element, the several of network hosts, and the several higher level switching elements. | 03-07-2013 |
20130058339 | NETWORK CONTROL APPARATUS AND METHOD - Some embodiments provide a controller for managing several managed switching elements that forward data in a network. The controller includes an interface for receiving input logical control plane data. It also includes a converter for converting the input logical control plane data to output logical forwarding plane data. The logical forwarding plane data for subsequent translation into a set of physical forwarding behaviors that direct the forwarding of data by the managed switching elements. | 03-07-2013 |
20130058340 | NETWORK CONTROL APPARATUS AND METHOD WITH TABLE MAPPING ENGINE - 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. | 03-07-2013 |
20130058341 | NETWORK CONTROL APPARATUS AND METHOD WITH PORT SECURITY CONTROLS - Port security in some embodiments is a technique to apply to a particular port of a logical switching element such that the network data entering and existing the logical switching element through the particular logical port have certain addresses that the switching element has restricted the logical port to use. For instance, a logical switching element may restrict a particular logical port to one or more certain network addresses. To enable a logical port of a logical switch for port security, the control application of some embodiments receives user inputs that designate a particular logical port and a logical switch to which the particular logical port belongs. The control application in some embodiments formats the user inputs into logical control plane data specifying the designation. The control application in some embodiments then converts the logical control plane data into logical forwarding data that specify port security functions. | 03-07-2013 |
20130058342 | LOGICAL PACKET PROCESSING PIPELINE THAT RETAINS STATE INFORMATION TO EFFECTUATE EFFICIENT PROCESSING OF PACKETS - Some embodiments provide a method of processing a packet through a logical switching element implemented by several managed switching elements. The method receives a packet for processing through a logical processing pipeline of the logical switching element. The method processes the packet through the logical processing pipeline. The method stores state information in the packet for indicating that the packet has been processed through the logical processing pipeline in order to prevent other managed switching elements from processing the packet through the logical processing pipeline. The method forwards the processed packet to a managed switching element of the several managed switching elements. | 03-07-2013 |
20130058343 | USE OF RICH CONTEXT TAGS IN LOGICAL DATA PROCESSING - For a logical switching element implemented across several managed switching elements, some embodiments provide a method that receives a packet for processing through a logical processing pipeline of the logical switching element. The method processes the packet through a first set of stages of the logical processing pipeline of the logical switching element. The method generates a set of context tag values for indicating that the packet has been processed through the first set of stages of the logical processing pipeline. The method forwards the packet to a managed switching elements of the several managed switching elements for the managed switching element to further process the packet based on the context tag of the packet. | 03-07-2013 |
20130058344 | ONE-HOP PACKET PROCESSING IN A NETWORK WITH MANAGED SWITCHING ELEMENTS - For a logical switching element implemented across several managed switching elements, some embodiments provide a method that receives a packet for processing through the logical switching element. The method performs a set of logical forwarding operations for determining a particular destination at the logical switching element to forward the packet. Based on the particular destination at the logical switching element, the method performs a set of physical forwarding operations for determining a destination at a managed switching element of the several managed switching elements that corresponds to the particular destination at the logical switching element. The method forwards the packet to the destination at the managed switching element. | 03-07-2013 |
20130058357 | DISTRIBUTED NETWORK VIRTUALIZATION APPARATUS AND METHOD - Some embodiments provide a distributed control system for controlling managed switching elements of a network. The distributed control system comprises a first network virtualizer for converting a first set of input logical forwarding plane data to a first set of output physical control plane data. It also includes a second network virtualizer for converting a second set of input logical forwarding plane data to a second set of output physical control plane data. In some embodiments, the physical control plane data is translated into physical forwarding behaviors that direct the forwarding of data by the managed switching elements. | 03-07-2013 |
20130058358 | NETWORK CONTROL APPARATUS AND METHOD WITH QUALITY OF SERVICE CONTROLS - A control application of some embodiments allows a user to enable a logical switching element for Quality of Service (QoS). QoS in some embodiments is a technique to apply to a particular logical port of a logical switching element such that the switching element can guarantee a certain level of performance to network data that a machine sends through the particular logical port. The control application of some embodiments receives user inputs that specify a particular logical switch to enable for QoS. The control application may additionally receive performance constraints data. The control application in some embodiments formats the user inputs into logical control plane data. The control application in some embodiments then converts the logical control plane data into logical forwarding data that specify QoS functions. | 03-07-2013 |
20130103817 | CHASSIS CONTROLLER - A network control system for generating physical control plane data for managing first and second managed forwarding elements that implement forwarding operations associated with a first logical datapath set is described. The system includes a first controller instance for converting logical control plane data for the first logical datapath set to universal physical control plane (UPCP) data. The system further includes a second controller instance for converting UPCP data to customized physical control plane (CPCP) data for the first managed forwarding element but not the second managed forwarding element. The system further includes a third controller instance for receiving UPCP data generated by the first controller instance, identifying the second controller instance as the controller instance responsible for generating the CPCP data for the first managed forward element, and supplying the received UPCP data to the second controller instance. | 04-25-2013 |
20130103818 | PHYSICAL CONTROLLER - A network control system for generating physical control plane data for managing first and second managed forwarding elements that implement forwarding operations associated with a first logical datapath set is described. The system includes a first controller instance for converting logical control plane data for the first logical datapath set to universal physical control plane (UPCP) data. The system further includes a second controller instance for converting UPCP data to customized physical control plane (CPCP) data for the first managed forwarding element but not the second managed forwarding element. | 04-25-2013 |
20130114466 | NETWORK VIRTUALIZATION APPARATUS AND METHOD WITH SCHEDULING CAPABILITIES - Some embodiments provide a controller for managing several managed switching elements that forward data in a network. The controller includes an interface for receiving input logical control plane data in terms of input events data. The controller includes an input scheduler for (1) categorizing the input events data into different groups based on certain criteria and (2) scheduling supplying of the input event data into a converter based on the groups so that the converter processes a group of input events data together. The controller includes the converter for converting the input logical control plane data to output logical forwarding plane data. The controller includes a network information base (NIB) data structure module for storing the output logical forwarding plane data. The logical forwarding plane data is for subsequent translation into physical control plane data. | 05-09-2013 |
20130117428 | PHYSICAL CONTROLLERS FOR CONVERTING UNIVERSAL FLOWS - Some embodiments provide a network control system for generating physical control plane data for managing first and second managed forwarding elements that implement forwarding operations associated with a first logical datapath set. The system includes a first controller instance for converting logical control plane data for the first logical datapath set to universal physical control plane (UPCP) data. The system includes a second controller instance for converting UPCP data to customized physical control plane (CPCP) data for the first managed forwarding element but not the second managed forwarding element. Each controller instance includes a network information base (NIB) storage for storing data and exchanging data with the other controller instance. | 05-09-2013 |
20130117429 | CHASSIS CONTROLLERS FOR CONVERTING UNIVERSAL FLOWS - A network control system for generating physical control plane data for managing first and second managed forwarding elements that implement forwarding operations associated with a first logical datapath set is described. The system includes (1) a first controller for converting logical control plane data for the first logical datapath set to universal physical control plane (UPCP) data, (2) a second controller for converting UPCP data to customized physical control plane (CPCP) data for the first managed forwarding element but not the second managed forwarding element, and (3) a third controller for receiving UPCP data generated by the first controller instance, identifying the second controller as the controller instance responsible for generating the CPCP data for the first managed forward element, and supplying the received UPCP data to the second controller. Each controller includes a network information base (NIB) storage for exchanging data with another controller instance. | 05-09-2013 |
20130121209 | WAN OPTIMIZER FOR LOGICAL NETWORKS - Some embodiments provide a non-transitory machine readable medium of a controller of a network control system for configuring a wide area network (WAN) optimizer instance to implement a WAN optimizer for a logical network. The controller receives a configuration for the WAN optimizer to optimize network data from the logical network for transmission to another WAN optimizer. The controller identifies several other controllers in the network control system on which to implement the logical network. The controller distributes the configuration for implementation on the WAN optimizer. | 05-16-2013 |
20130125120 | MIGRATING MIDDLEBOX STATE FOR DISTRIBUTED MIDDLEBOXES - A controller of a network control system for configuring several middlebox instances is described. The middlebox instances implement a middlebox in a distributed manner in several hosts. The controller configures, in a first host, a first middlebox instance to receive a notification from a migration module before a virtual machine (VM) running in the first host migrates to a second host and to send middlebox state related to the VM to the migration module. | 05-16-2013 |
20130125230 | FIREWALLS IN LOGICAL NETWORKS - Some embodiments provide a method for configuring a logical firewall in a hosting system that includes a set of nodes. The logical firewall is part of a logical network that includes a set of logical forwarding elements. The method receives a configuration for the firewall that specifies packet processing rules for the firewall. The method identifies several of the nodes on which to implement the logical forwarding elements. The method distributes the firewall configuration for implementation on the identified nodes. At a node, the firewall of some embodiments receives a packet, from a managed switching element within the node, through a software port between the managed switching element and the distributed firewall application. The firewall determines whether to allow the packet based on the received configuration. When the packet is allowed, the firewall the packet back to the managed switching element through the software port. | 05-16-2013 |
20130128891 | CONNECTION IDENTIFIER ASSIGNMENT AND SOURCE NETWORK ADDRESS TRANSLATION - A controller of a network control system for configuring several middlebox instances is described. The middlebox instances implement a middlebox in a distributed manner in several hosts. The controller assigns a first set of identifiers to a first middlebox instance that associates an identifier in the first set with a first packet. The controller assigns a second set of identifiers to a second middlebox instance that associates an identifier in the second set with a second packet. | 05-23-2013 |
20130132531 | ARCHITECTURE OF NETWORKS WITH MIDDLEBOXES - Some embodiments provide a system for implementing a logical network that includes a set of end machines, a first logical middlebox, and a second logical middlebox connected by a set of logical forwarding elements. The system includes a set of nodes. Each of several nodes includes (i) a virtual machine for implementing an end machine of the logical network, (ii) a managed switching element for implementing the set of logical forwarding elements of the logical network, and (iii) a middlebox element for implementing the first logical middlebox of the logical network. The system includes a physical middlebox appliance for implementing the second logical middlebox. | 05-23-2013 |
20130132532 | LOAD BALANCING AND DESTINATION NETWORK ADDRESS TRANSLATION MIDDLEBOXES - A controller of a network control system for configuring several middlebox instances is described. The middlebox instances implement a middlebox in a distributed manner in several hosts. The controller configures a first middlebox instance to obtain status of a set of servers and disseminate the obtained status to a second middlebox instance. The controller configures the second middlebox instance to use the status to select a server from the set of servers. | 05-23-2013 |
20130132533 | CONTROL PLANE INTERFACE FOR LOGICAL MIDDLEBOX SERVICES - Some embodiments provide a non-transitory machine readable medium of a first middlebox element of several middlebox elements to implement a middlebox instance in a distributed manner in several hosts. The non-transitory machine readable medium stores a set of instructions for receiving (1) configuration data for configuring the middlebox instance to implement a middlebox in a logical network and (2) a particular identifier associated with the middlebox in the logical network. The non-transitory machine readable medium stores a set of instructions for generating (1) a set of rules to process packets for the middlebox in the logical network and (2) an internal identifier associated with the set of rules. The non-transitory machine readable medium stores a set of instructions for associating the particular identifier with the internal identifier for later processing of packets having the particular identifier. | 05-23-2013 |
20130132536 | NETWORK CONTROL SYSTEM FOR CONFIGURING MIDDLEBOXES - Some embodiments provide a method for configuring a logical middlebox in a hosting system that includes a set of nodes. The logical middlebox is part of a logical network that includes a set of logical forwarding elements that connect a set of end machines. The method receives a set of configuration data for the logical middlebox. The method uses a stored set of tables describing physical locations of the end machines to identify a set of nodes at which to implement the logical middlebox. The method provides the logical middlebox configuration for distribution to the identified nodes. | 05-23-2013 |
20130142203 | MULTI-DOMAIN INTERCONNECT - A network system that includes a first set of network hosts in a first domain and a second set of network hosts in a second domain. Within each of the domains, the system includes several edge switching elements (SEs) that each couple to the network hosts and forward network data to and from the set of network hosts. Within the first domain, the system includes (i) an interior SE that couples to a particular edge SE in order to receive network data for forwarding from the edge SE when the edge SE does not recognize a destination location of the network data and (ii) an interconnection SE that couples to the interior SE, the edge SE, and the second domain through an external network. When the edge SE receives network data with a destination address in the second domain, it forwards the network data directly to the interconnection SE. | 06-06-2013 |
20130148541 | DISTRIBUTED LOGICAL L3 ROUTING - A non-transitory machine readable medium storing a program that configures first and second managed forwarding elements to perform logical L2 switching and L3 routing is described. The program generates a first set of flow entries for configuring the first managed forwarding element to perform (1) a first logical L2 processing for a first logical L2 domain, (2) a logical L3 processing, and (3) a second logical L2 processing for a second logical L2 domain. The program generates a second set of flow entries for configuring the second managed forwarding element to determine whether the first managed forwarding element has performed the first logical L2 processing, the logical L3 processing, and the second logical L2 processing. | 06-13-2013 |
20130148542 | HANDLING NAT IN LOGICAL L3 ROUTING - A non-transitory machine readable medium storing a program that configures first and second managed forwarding elements to perform logical L2 switching and L3 routing is described. The program generates a first set of flow entries for configuring the first managed forwarding element to perform (1) a first logical L2 processing for a first logical L2 domain, (2) a logical L3 processing, (3) a network address translation (NAT) processing on packets to be sent to the second managed forwarding element, and (4) a logical ingress L2 processing for a second logical L2 domain on the packets. The program generates a second set of flow entries for configuring the second managed forwarding element to perform a logical egress L2 processing for the second logical L2 domain on the packets. | 06-13-2013 |
20130148543 | HANDLING REVERSE NAT IN LOGICAL L3 ROUTING - A non-transitory machine readable medium storing a program that configures first and second managed forwarding elements to perform logical L2 switching and L3 routing is described. The program generates a first set of flow entries for configuring the first managed forwarding element to (1) perform a network address translation (NAT) processing on a first packet and (2) send, to a second managed switching element. The first packet and information indicate that the NAT processing has been performed on the first packet. The program generates a second set of flow entries for configuring the second managed forwarding element to (1) skip performing a logical L3 processing on a second packet to be sent to the first managed forwarding element in response to receiving the first packet and (2) send the second packet to the first managed switching element. | 06-13-2013 |
20130151661 | HANDLING NAT MIGRATION IN LOGICAL L3 ROUTING - For a network controller for managing managed forwarding elements running in hosts in a network, a method for configuring a host to facilitate migration of a virtual machine (VM) from a first host to a second host is described. The method configure, in the first host, a first managed forwarding element to perform (1) a logical L3 routing processing and (2) a network address translation (NAT) processing for a VM running in the first host. The method configures the first host to automatically send NAT information to the second host when the VM migrates to the second host so that a second managed forwarding element running in the second host can perform a NAT processing for the migrated VM based on the NAT information. | 06-13-2013 |
20130151676 | LOGICAL L3 ROUTING WITH DHCP - For a network controller for managing a set of hosts, a method for configuring a host to provide a Dynamic Host Configuration Protocol (DHCP) service is described. The method configures a DHCP module in a first host to provide a DHCP service. The method configures a managed forwarding element in the first host to ( | 06-13-2013 |
20130208623 | UNIVERSAL PHYSICAL CONTROL PLANE - A controller for generating universal physical control plane (UPCP) data for configuring a set of managed forwarding elements that forward data in a network is described. The controller includes a control module for converting logical control plane (LCP) data to logical forwarding plane (LFP) data. The controller includes a virtualization module for converting the LFP data to UPCP data. The UPCP data is for subsequent conversion into customized physical control plane (CPCP) data for each of the managed forwarding elements. The CPCP data directs the forwarding of data by the managed forwarding element. | 08-15-2013 |
20130211549 | SCHEDULING DISTRIBUTION OF LOGICAL CONTROL PLANE DATA - A controller for distributing logical control plane data to other controllers is described. The controller includes an interface for receiving user inputs to define logical datapath sets. The controller includes a translator for translating the user inputs to output logical control plane data. The logical control plane data is for subsequent translation into logical forwarding plane data by several other controllers. The controller includes a scheduler for (1) storing the output logical control plane data in a plurality of storage structures, each storage structure corresponding to one of the other controllers and (2) sending the output logical control plane data to the other controllers from the corresponding storage structure. | 08-15-2013 |
20130212148 | DISTRIBUTED NETWORK CONTROL SYSTEM - For a controller of a distributed network control system comprising several controllers for managing forwarding elements that forward data in a network, a method for managing the forwarding elements is described. The method changes a set of data tuples stored in a relational database of the first controller that stores data tuples containing data for managing a set of forwarding elements. The method sends the changed data tuples to at least one of other controllers of the network control system. The other controller receiving the changed data tuples processes the changed data tuples and sends the processed data tuples to at least one of the managed forwarding elements. | 08-15-2013 |
20130212235 | MAINTAINING QUALITY OF SERVICE IN SHARED FORWARDING ELEMENTS MANAGED BY A NETWORK CONTROL SYSTEM - A non-transitory machine readable medium storing a program that manages a plurality managed forwarding elements that forward data through a network is described. The program receives user inputs that define forwarding performance constraints of a set of managed forwarding elements. Based on the inputs, the program generates a set of universal flow entries for configuring the set of managed forwarding elements to apply the forwarding performance constraints to data traffic that the managed forwarding elements forward. The set of universal flow entries is for subsequent conversion into a set of customized flow entries for the managed forwarding elements. | 08-15-2013 |
20130212243 | SCHEDULING DISTRIBUTION OF LOGICAL FORWARDING PLANE DATA - A controller for managing several managed switching elements that forward data in a network is described. The controller includes an interface for receiving input logical control plane data in terms of input events data. The controller includes a converter for converting the input logical control plane data to output logical forwarding plane data by processing the input events data. The logical forwarding plane data is for subsequent translation into physical control plane data. The controller includes an input scheduler for (1) categorizing the input events data into different groups based on certain criteria and (2) supplying the input events data into the converter in a manner that each different group of input events data is processed separately by the converter. | 08-15-2013 |
20130212244 | COMMUNICATION CHANNEL FOR DISTRIBUTED NETWORK CONTROL SYSTEM - For a particular controller for managing managed forwarding elements that forward data in a network, a method for computing forwarding state using a set of inputs from a first controller and a second controller that is a back up controller for the first controller is described. The method receives a first subset of the set of inputs from the first controller. After failure of the first controller, the method receives a second subset of the set of inputs from the second controller. At least one input of the second subset of the set of inputs is duplicative of an input in the first subset. The method computes forwarding state using the first and second subsets of the inputs but without using the duplicative input. | 08-15-2013 |
20130219037 | SCHEDULING DISTRIBUTION OF PHYSICAL CONTROL PLANE DATA - A controller for managing several managed switching elements that forward data in a network is described. The controller includes an interface for receiving input logical forwarding plane data in terms of input events data. The controller includes a converter for converting the input logical forwarding plane data to output physical control plane data by processing the input events data. The physical control plane data is for subsequent translation into physical forwarding plane data. The controller includes an input scheduler for (1) categorizing the input events data into different groups based on certain criteria and (2) supplying the input events data into the converter in a manner that each different group of input events data is processed separately by the converter. | 08-22-2013 |
20130219078 | TUNNEL CREATION - A non-transitory machine readable medium storing a program that configures managed forwarding elements to establish tunnels between the managed forwarding elements is described. From a particular managed forwarding element, the program receives information regarding coupling of a network element to the first managed forwarding element. Upon receiving the information, the program generates a set of universal flow entries for configuring another managed forwarding element to establish a tunnel to the particular managed forwarding element. | 08-22-2013 |
20140351432 | USING TRANSACTIONS TO MINIMIZE CHURN IN A DISTRIBUTED NETWORK CONTROL SYSTEM - A particular network controller receives a first set of inputs from the first controller and a second set of inputs from the second controller. The particular controller then starts to compute a set of outputs using the first set of inputs. After a failure of the first controller, the particular controller receives a third set of inputs from the second controller. The third set of inputs and the first or second set of inputs makes up a group of inputs for being processed together and separately from another group of inputs. The particular controller then receives an indicator from the second controller, which indicates that all inputs of the group of inputs have arrived at the particular controller. After receiving the indicator and after computing the set of outputs completely, the particular controller sends the set of outputs to a fourth controller or to a managed forwarding element. | 11-27-2014 |
20150016286 | Tracing Network Packets by a Cluster of Network Controllers - Some embodiments provide a method for a first network controller that manages a set of logical forwarding elements implemented in several managed forwarding elements. The method receives a request to trace a specified packet having a particular source on a logical forwarding element. The method generates the packet according to the packet specification. The generated packet includes an indicator that the packet is for a trace operation. The method sends the packet to a second network controller that manages a managed forwarding element associated with the particular source. The method receives a first set of messages regarding operations performed on the packet from a set of network controllers that receives a second set of messages regarding operations performed on the packet from a set of managed forwarding elements that process the packet. | 01-15-2015 |
20150016287 | Tracing Network Packets Through Logical and Physical Networks - Some embodiments provide a method for a network controller that manages a plurality of managed forwarding elements. The method receives a request to trace a specified packet having a particular source on a logical forwarding element. The method generates the packet according to the packet specification. The generated packet includes an indicator that the packet is for a trace operation. The method inserts the packet into a managed forwarding element associated with the particular source such that the managed forwarding element processes the packet as though the packet was received from the particular source. The method receives, from a set of managed forwarding elements, a set of messages regarding logical processing operations and physical forwarding operations that each managed forwarding element in the set of managed forwarding elements performs on the packet. | 01-15-2015 |
20150016298 | Tracing Logical Network Packets Through Physical Network - Some embodiments provide a method for a network controller that manages several managed forwarding elements. The method receives a request to trace a specified packet having a particular source on a logical switching element. The method generates the packet at the network controller according to the packet specification. The generated packet includes an indicator that the packet is for a trace operation. The method inserts the packet into a managed forwarding element associated with the particular source. The method receives a set of messages from a set of managed forwarding elements that process the packet regarding operations performed on the packet. | 01-15-2015 |
20150052262 | Providing Services for Logical Networks - Some embodiments provide a method for a network controller that manages several logical networks. The method receives a specification of a logical network that includes at least one logical forwarding element attached to a logical service (e.g., DHCP). The method selects at least one host machine to host the specified logical service from several host machines designated for hosting logical services. The method generates logical service configuration information for distribution to the selected host machine. In some embodiments, the method selects a master host machine and a backup host machine for hosting logical service. In some embodiments, a particular one of the designated host machines hosts at least two DHCP services for two different logical networks as separate processes operating on the particular host machine. | 02-19-2015 |
20150052522 | Generation of DHCP Configuration Files - Some embodiments provide a method for an application operating on a host machine. The method receives a configuration of a Dynamic Host Configuration Protocol (DHCP) service for implementation within a virtualized container on the host machine. The configuration includes several database table entries. The method converts the several database table entries into a configuration file for use by a process that operates in the virtualized container. the method initializes the process in the virtualized container. The process in the virtualized container reads the configuration file in order to perform DHCP services for machines connected to at least one logical forwarding element of a logical network. | 02-19-2015 |
20150063360 | High Availability L3 Gateways for Logical Networks - Some embodiments provide a method for a network controller in a network control system that manages a plurality of logical networks. The method receives a specification of a logical network that includes a logical router. The method selects at least two host machines to implement a routing table for the logical router from several host machines designated for hosting logical routers. The selected host machines include a designated master host machine for the routing table. The method generates data tuples for provisioning a set of managed forwarding elements that implement the logical network to send data packets that require processing by the routing table to the selected host machines. The data tuples specify an order for the selected host machines with the designated master host machine as the first host machine in the specified order. | 03-05-2015 |
20150063364 | Multiple Active L3 Gateways for Logical Networks - Some embodiments provide a method for a network controller in a network control system that manages a plurality of logical networks. The method receives a specification of a logical network that comprises a logical router with a logical port that connects to an external network. The method selects several host machines to host a L3 gateway that implements the connection to the external network for the logical router from a set of host machines designated for hosting logical routers. The method generates data tuples for provisioning a set of managed forwarding elements that implement the logical network to send data packets that require processing by the L3 gateway to the selected host machines. The data tuples specify for the managed forwarding elements to distribute the data packets across the selected host machines. | 03-05-2015 |
20150081861 | CONNECTION IDENTIFIER ASSIGNMENT AND SOURCE NETWORK ADDRESS TRANSLATION - A controller of a network control system for configuring several middlebox instances is described. The middlebox instances implement a middlebox in a distributed manner in several hosts. The controller assigns a first set of identifiers to a first middlebox instance that associates an identifier in the first set with a first packet. The controller assigns a second set of identifiers to a second middlebox instance that associates an identifier in the second set with a second packet. | 03-19-2015 |