# US 10,320,585 B2 · Network control apparatus and method for creating and modifying logical switching elements

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,320,585 B2
- Document ID: US10320585B2
- Status: Granted
- Kind: B2
- Application number: 15/358,644
- Filed: 2016-11-22
- Published: 2017-03-23
- Granted: 2019-06-11
- Earliest claimed: 2010-07-06
- Assignees: Nicira, Inc.
- Applicants: Nicira, Inc.
- Inventors: Teemu Koponen; Pankaj Thakkar; Martin Casado; W. Andrew Lambeth
- Web page: https://patentgrep.com/patent/US10320585B2

## CPC

- H04L 49/70: {Virtual switches}
- H04L 12/56: {Packet switching systems}
- H04L 45/42: Centralised routing
- H04L 47/50: Queue scheduling
- H04L 49/254: {Centralised controller, i.e. arbitration or scheduling}
- H04L 2101/668: Internet protocol [IP] address subnets
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

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.

## Claims

### Claim 1

A method implemented by a control application for defining a set of logical datapath sets implemented by a plurality of managed switching elements that forward data in the network, the method comprising:
receiving input logical control plane data for the set of logical datapath sets;
converting the input logical control plane data to output logical forwarding plane data that, in combination with the logical control plane data, defines the set of logical datapath sets in terms of a set of logical flow entries;
publishing the output logical forwarding plane data to a virtualization application for subsequent translation into physical control plane data that specifies rules for a set of managed switching elements in the plurality of managed switching elements to follow in order to implement the set of logical datapath sets.

### Claim 2 (depends on 1)

The method of claim 1, wherein the input logical control plane data is at least one of partially supplied and fully supplied by at least one user.

### Claim 3 (depends on 1)

The method of claim 1 further comprising detecting changes to the set of managed physical switching elements, wherein receiving the input logical control plane data comprises receiving data relating to at least one detected change.

### Claim 4 (depends on 3)

The method of claim 3, wherein detecting changes to the set of managed physical switching elements comprises monitoring data storage structures that store data regarding the set of managed physical switching elements.

### Claim 5 (depends on 1)

The method of claim 1, wherein the physical control plane data is translated by the set of managed physical switching elements to physical forwarding plane data that directs forwarding of data packets by the set of managed physical switching elements.

### Claim 6 (depends on 1)

The method of claim 1, wherein the control application and the virtualization application execute on a same computer.

### Claim 7 (depends on 1)

The method of claim 1, wherein the control application and the virtualization application execute on two different computers.

### Claim 8 (depends on 1)

The method of claim 1 further comprising storing the output logical forwarding plane data in a set of tables.

### Claim 9 (depends on 1)

The method of claim 1, wherein the set of logical forwarding flow entries are in at least one logical forwarding table that is not accessible for input by a source of input of the logical control plane data.

### Claim 10 (depends on 9)

The method of claim 9, wherein the set of logical forwarding flow entries specifies forwarding rules for forwarding data between logical addresses connected by the logical datapath sets.

### Claim 11 (depends on 10)

The method of claim 10, wherein the at least one logical forwarding table is a layer 2 (L2) table and the set of logical forwarding flow entries specifies L2 forwarding rules.

### Claim 12 (depends on 11)

The method of claim 11, wherein the L2 forwarding rules are specified in terms of media access control (MAC) addresses.

### Claim 13 (depends on 10)

The method of claim 10, wherein the at least one logical forwarding table is a layer 3 (L3) table and the set of logical forwarding flow entries specifies L3 forwarding rules.

### Claim 14 (depends on 13)

The method of claim 13, wherein the L3 forwarding rules are specified in terms of internet protocol (IP) addresses.

### Claim 15 (depends on 1)

The method of claim 1, wherein the output logical forwarding plane data is published to a data structure that stores a state of a network comprising the managed physical switching elements.

### Claim 16 (depends on 15)

The method of claim 15 further comprising detecting changes to the state of the network, wherein receiving the input logical control plane data comprises receiving data relating to at least one detected change.

### Claim 17 (depends on 16)

The method of claim 16, wherein detecting changes to state of the network comprises monitoring the data structure to identify changes in the state of the network.

### Claim 18 (depends on 1)

The method of claim 1, wherein publishing the physical control plane data comprises publishing the control plane data to a data structure shared with the virtualization application.

### Claim 19 (depends on 18)

The method of claim 18, wherein the shared data structure stores a state of a network comprising the managed physical forwarding elements.
