# US 10,313,186 B2 · Scalable controller for hardware VTEPS

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

- Number: US 10,313,186 B2
- Document ID: US10313186B2
- Status: Granted
- Kind: B2
- Application number: 15/004,946
- Filed: 2016-01-24
- Published: 2017-03-02
- Granted: 2019-06-04
- Earliest claimed: 2015-08-31
- Assignees: Nicira, Inc.
- Applicants: Nicira, Inc.
- Inventors: Ziyou Wang; Hua Wang; Ariel Tubaltsev; Hsin-Yi Shen; Sarvani Vakkalanka; Anupam Chanda
- Web page: https://patentgrep.com/patent/US10313186B2

## CPC

- H04L 41/082: the condition being updates or upgrades of network functionality
- G06F 16/258: {Data format conversion from or to a database}
- H04L 41/044: comprising hierarchical management structures
- H04L 41/0895: Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
- H04L 41/342: between virtual entities, e.g. orchestrators, SDN or NFV entities
- H04L 41/40: using virtualisation of network functions or resources, e.g. SDN or NFV entities
- H04L 45/44: Distributed routing
- H04L 45/64: using an overlay routing layer
- H04L 63/20: {for managing network security; network security policies in general (filtering policies H04L63/0227)}
- H04L 67/1012: based on compliance of requirements or conditions with available server resources
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

For a virtual distributed network environment employing physical forwarding elements that includes both software forwarding elements and third party devices serving as hardware forwarding elements, a scalable method for synchronizing configuration data of logical forwarding elements that are distributed across the various physical forwarding elements is provided. The method generates and updates the configuration data at a set of central controllers and then distributes the configuration data to the physical forwarding elements. The method delivers the updated configuration data to some of the physical forwarding elements by (i) determining a delta/differential between the updated configuration data held at the central controller and the obsolete configuration data held at those physical forwarding elements and (ii) delivering the determined differential configuration data to the physical forwarding elements.

## Claims

### Claim 1

A method for a device controller configuring a managed hardware forwarding element (HFE) in a network comprising (i) a plurality of managed software forwarding elements (SFEs) implementing a logical forwarding element along with the managed HFE and (ii) a set of central controllers, the method comprising:
at the device controller:
receiving, from the set of central controllers, a set of new configuration data associated with an updated state for implementing the logical forwarding element in the network, wherein the set of central controllers (i) communicate with the plurality of managed SFEs to configure the plurality of managed SFEs, and (ii) use the device controller to configure the managed HFE;
receiving, from the managed HFE, a set of current configuration data associated with a current state of the logical forwarding element implemented by the managed HFE;
computing a set of differential configuration data based on (i) the current set of configuration data received from the managed HFE and (ii) the new set of configuration data received from the set of central controllers; and
delivering the set of differential configuration data to the managed HFE in order to update configuration data previously provided to the managed HFE to configure the managed HFE to implement the logical forwarding element with the updated state.

### Claim 2 (depends on 1)

The method of claim 1, wherein the logical forwarding element is a logical switch for performing L2 packet switching in the network.

### Claim 3 (depends on 1)

The method of claim 1, wherein the managed HFE is a third party device and the device controller is a third-party device manager.

### Claim 4 (depends on 1)

The method of claim 1, wherein the managed HFE is a top-of-rack (TOR) switch.

### Claim 5 (depends on 3)

The method of claim 3, wherein the network comprises a set of third party device managers as intermediary between the central controller set and a plurality of third party devices, wherein the set of third party device managers comprises the device controller.

### Claim 6 (depends on 5)

The method of claim 5, wherein each third party device manager communicates with a subset of third party devices using a set of specific protocols that is optimized for the corresponding subset of third party devices, wherein the central controller set communicates with the managed SFEs and the set of third party device managers using a general protocol.

### Claim 7 (depends on 1)

The method of claim 1, wherein the device controller delivers the set of differential configuration data to the managed HFE using a specific protocol optimized for the managed HFE.

### Claim 8 (depends on 7)

The method of claim 7, wherein the set of differential configuration data is delivered as a set of OVSDB (open virtual switch database) transactions.

### Claim 9 (depends on 8)

The method of claim 8, wherein the set of OVSDB transactions comprises transactions to add or remove forwarding table entries.

### Claim 10 (depends on 1)

The method of claim 1 further comprising removing the received sets of configuration data from a storage of the device controller.

### Claim 11 (depends on 1)

The method of claim 1, wherein the set of differential configuration data is delivered to the managed HFE in order to update configuration data previously provided to the managed HFE to configure the managed HFE to implement the logical forwarding element with the current state.

### Claim 12

A non-transitory machine readable medium storing a program for a device controller which, when executed by at least one processing unit of a computing device, configures a managed hardware forwarding element (HFE) in a network comprising (i) a plurality of managed software forwarding elements (SFEs) implementing a logical forwarding element along with the managed HFE and (ii) a set of central controllers, the program comprising sets of instructions for:
receiving, from the set of central controllers, a set of new configuration data associated with an updated state for implementing the logical forwarding element in the network, wherein the set of central controllers (i) communicate with the plurality of managed SFEs to configure the plurality of managed SFEs, and (ii) use the device controller to configure the managed HFE;
receiving, from the managed HFE, a set of current configuration data associated with a current state of the logical forwarding element implemented by the managed HFE;
computing a set of differential configuration data based on (i) the current set of configuration data received from the managed HFE and (ii) the new set of configuration data received from the set of central controllers; and
delivering the set of differential configuration data to the managed HFE in order to update configuration data previously provided to the managed HFE to configure the managed HFE to implement the logical forwarding element with the updated state.

### Claim 13 (depends on 12)

The non-transitory machine readable medium of claim 12, wherein the logical forwarding element is a logical switch for performing L2 packet switching in the network.

### Claim 14 (depends on 12)

The non-transitory machine readable medium of claim 12, wherein the managed HFE is a third party device and the device controller is a third-party device manager.

### Claim 15 (depends on 14)

The non-transitory machine readable medium of claim 14, wherein the set of instructions for delivering the set of differential configuration data to the managed HFE comprises a set of instructions for delivering the set of differential configuration data using a specific protocol optimized for the managed HFE.

### Claim 16 (depends on 15)

The non-transitory machine readable medium of claim 15, wherein the set of differential configuration data is delivered as a set of transactions that include transactions to add or remove forwarding table entries.

### Claim 17 (depends on 12)

The non-transitory machine readable medium of claim 12, wherein the managed HFE is a top-of-rack (TOR) switch.
