# US 10,374,874 B2 · Reducing data plane disruption in a virtual switch

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

- Number: US 10,374,874 B2
- Document ID: US10374874B2
- Status: Granted
- Kind: B2
- Application number: 15/296,612
- Filed: 2016-10-18
- Published: 2018-04-19
- Granted: 2019-08-06
- Earliest claimed: 2016-10-18
- Assignees: Nicira, Inc.
- Applicants: Nicira, Inc.
- Inventors: Harold Vinson C. Lim
- Web page: https://patentgrep.com/patent/US10374874B2

## CPC

- H04L 41/0806: for initial configuration or provisioning, e.g. plug-and-play
- H04L 41/0895: Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
- H04L 49/70: {Virtual switches}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Described herein are systems, methods, and software to reduce data plane disruption during a startup event for a virtual switch controller. In one example, during a startup event, applications are initiated on a virtual switch controller to configure the virtual switch. Once initiated, an application, which depends on one or more other applications, may hold configuration operations until notifications are received from the one or more other applications operating on the virtual switch controller. Once the notifications are received, the application may resume the required configuration operations.

## Claims

### Claim 1

A computer implemented method of operating a virtual switch controller to configure a virtual switch, the virtual switch controller comprising a plurality of applications, the method comprising:
during a startup event, initiating on the virtual switch controller the plurality of applications to configure the virtual switch for a plurality of computing nodes;
in a first application of the plurality of applications, pausing, by a configuration application of the first application, execution of the first application until one or more completion notifications are received from one or more other applications in the plurality of applications;
in the first application, receiving from the one or more other applications the one or more completion notifications;
in the first application and in response to receiving the one or more completion notifications, resuming, by the configuration application of the first application, the first application to configure the virtual switch for the plurality of computing nodes.

### Claim 2 (depends on 1)

The method of claim 1 further comprising, in the first application, registering with the one or more other applications to receive the one or more completion notifications.

### Claim 3 (depends on 1)

The method of claim 1 wherein the first application comprises a master configuration application, and wherein resuming the first application to configure the virtual switch for the plurality of computing nodes comprises configuring a data plane for the plurality of computing nodes.

### Claim 4 (depends on 3)

The method of claim 3 further comprising, in the first application, receiving a run-time configuration for the data plane, and wherein configuring the data plane for the plurality of computing nodes comprises configuring the data plane for the plurality of computing nodes based on the run-time configuration.

### Claim 5 (depends on 4)

The method of claim 4 further comprising, in the first application, identifying a current configuration for the data plane, and wherein configuring the data plane for the plurality of computing nodes based on the run-time configuration comprises: identifying differences between the run-time configuration and the current configuration; and configuring the data plane for the plurality of computing nodes using the identified differences.

### Claim 6 (depends on 1)

The method of claim 1 wherein initiating the plurality of applications occurs in response to a startup of the virtual switch controller.

### Claim 7 (depends on 1)

The method of claim 1 wherein initiating the plurality of applications occurs in response to a restart of the virtual switch controller.

### Claim 8 (depends on 1)

The method of claim 1 further comprising: in the first application, receiving registration notifications from one or more dependent applications; in the first application, identifying a completion of configuration operations by the first application; and in the first application and in response to identifying the completion, notifying the one or more dependent applications of the completion.

### Claim 9

A computer apparatus comprising:
one or more non-transitory computer readable storage media;
a processing system operatively coupled with the one or more non-transitory computer readable storage media; and
program instructions stored on the one or more non-transitory computer readable storage media to operate as a virtual switch controller comprising a plurality of applications to program a data plane of a virtual switch that, when read and executed by the processing system, direct the processing system to at least:
during a startup event, initiate on the virtual switch controller the plurality of applications to configure the virtual switch for a plurality of computing nodes;
in a first application of the plurality of applications, pausing, by a configuration application of the first application, execution of the first application until one or more completion notifications are received from one or more other applications in the plurality of applications;
in the first application, receive from the one or more other applications the one or more completion notifications; in the first application and in response to receiving the one or more completion notifications, resuming, by the configuration application of the first application, the first application to configure the virtual switch for the plurality of computing nodes.

### Claim 10 (depends on 9)

The computer apparatus of claim 9 wherein the program instructions further direct the processing system to, in the first application, register with the one or more other applications to receive the one or more completion notifications.

### Claim 11 (depends on 9)

The computer apparatus of claim 9 wherein the first application comprises a master configuration application, and wherein the program instructions to resume the first application to configure the virtual switch for the plurality of computing nodes direct the processing system to configure a data plane for the plurality of computing nodes.

### Claim 12 (depends on 11)

The computer apparatus of claim 11 wherein the program instructions further direct the processing system to, in the first application, receive a run-time configuration for the data plane, and wherein the program instructions to configure the data plane for the plurality of computing nodes direct the processing system to configure the data plane for the plurality of computing nodes based on the run-time configuration.

### Claim 13 (depends on 12)

The computer apparatus of claim 12 wherein the program instructions further direct the processing system to, in the first application, identify a current configuration for the data plane, and wherein the program instructions to configure the data plane for the plurality of computing nodes based on the run-time configuration direct the processing system to: identify differences between the run-time configuration and the current configuration; and configure the data plane for the plurality of computing nodes using the identified differences.

### Claim 14 (depends on 9)

The computer apparatus of claim 9 wherein the program instructions to initiate the plurality of applications direct the processing system to initiate the plurality of applications in response to a startup of the virtual switch controller.

### Claim 15 (depends on 9)

The computer apparatus of claim 9 wherein the program instructions to initiate the plurality of applications direct the processing system to initiate the plurality of applications in response to a restart of the virtual switch controller.

### Claim 16 (depends on 9)

The computer apparatus of claim 9 wherein the program instructions further direct the processing system to: in the first application, receive registration notifications from one or more dependent applications; in the first application, identify a completion of configuration operations by the first application; and in the first application and in response to identifying the completion, notifying the one or more dependent applications of the completion.

### Claim 17

An apparatus comprising:
one or more non-transitory computer readable storage media; and
program instructions stored on the one or more non-transitory computer readable storage media to operate as a virtual switch controller comprising a plurality of applications to program a data plane of a virtual switch that, when read and executed by a processing system, direct the processing system to at least:
during a startup event, initiate on the virtual switch controller the plurality of applications to configure the virtual switch for a plurality of computing nodes;
in a first application of the plurality of applications, pausing, by a configuration application of the first application, execution of the first application until one or more completion notifications are received from one or more other applications in the plurality of applications;
in the first application, receive from the one or more other applications the one or more completion notifications;
in the first application and in response to receiving the one or more completion notifications, resume, by the configuration application of the first application, the first application to configure the virtual switch for the plurality of computing nodes.

### Claim 18 (depends on 17)

The apparatus of claim 17 wherein the program instructions further direct the processing system to, in the first application, register with the one or more other applications to receive the one or more completion notifications.

### Claim 19 (depends on 17)

The apparatus of claim 17 wherein the first application comprises a master configuration application, wherein the program instructions further direct the processing system to receive a run-time configuration for the data plane from a central controller for a plurality of virtual switches, and wherein the program instructions to resume the first application to configure the virtual switch for the plurality of computing nodes direct the processing system to resume the first application to configure a data plane for the plurality of computing nodes based on the runtime configuration.

### Claim 20 (depends on 19)

The apparatus of claim 19 wherein the program instructions further direct the processing system to, in the first application, identify a current configuration for the data plane, and wherein the program instructions to configure the data plane for the plurality of computing nodes based on the run-time configuration direct the processing system to: identify differences between the run-time configuration and the current configuration; and configure the data plane for the plurality of computing nodes using the identified differences.
