IP Library Granted Patent US 9,395,960
Granted Patent B2
US 9,395,960 · App. 13/771,026 · Granted Jul 19, 2016

Method and system for data plane abstraction to enable a dynamic creation of network applications

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,395,960
App. No.
13/771,026
Granted
Jul 19, 2016
Kind
B2
Abstract

The method includes receiving, by a data plane definition language compiler, a first data plane definition describing customized functionality of a data plane of a first network application, and compiling the data plane definition to generate a first set of customized data processing modules and a program interface that allows a control plane of the network application to access the first set of customized data processing modules. The method also includes loading the first set of customized data processing modules into a data plane container, wherein the network application is executed via a network operating system, and wherein, upon execution of the network application the customized data processing module causes the data plane container of the network application to process packets differently than prior to loading the customized data processing module in the data plane container.

Claims (37)

1. A method for network application development, the method comprising:

receiving, by a data plane definition language compiler, a first data plane definition describing customized functionality of a data plane of a first network application;

compiling the data plane definition to generate a first set of customized data processing modules and a program interface that allows a control plane of the network application to access the first set of customized data processing modules;

loading the first set of customized data processing modules into a data plane container, wherein the network application is executed via a network operating system, and wherein, upon execution of the network application the first set of customized data processing modules causes the data plane container of the network application to process packets differently than prior to loading the first set of customized data processing modules in the data plane container; and

in response to receiving a second data plane definition:

dynamically generating a second set of customized data processing modules; and

dynamically loading the second set of customized data processing modules into the data plane container;

wherein the network operating system prevents the first network application from accessing the second set of customized data processing modules; and

wherein the network operating system prevents the second network application from accessing the first set of customized data processing modules.

2. The method of claim 1 , wherein the control plane of the first network application and the control plane of the second network application concurrently communicate with the data plane container to access the respective customized data processing modules.

3. The method of claim 1 , wherein the data plane definition is received in a domain specific language.

4. The method of claim 1 , wherein the customized data processing modules are configured to perform configurable functions including parse, lookup, update, and modify, wherein the configurable function of parse comprises determining the structure of incoming blocks of data;

wherein the configurable function of lookup comprises identifying a set of relevant rules for the specific packet at hand from a set of tables;

wherein the configurable function of update comprises modifying an internal state of the data plane processing module based on the combination of rules extracted from the lookup state and the incoming packet, and

wherein the configurable function of modify comprises a set of rewrite capabilities to generate new headers of blocks of data that will be sent out of the data plane processing module.

5. The method of claim 1 , wherein the data plane container orchestrates an execution order of the first set of customized data processing modules and the second set of customized data processing modules by connecting the individual customized data processing modules according to a configuration policy.

6. The method of claim 1 , wherein the customized data processing module is composed of multiple instances through an abstraction of the data plane.

7. A computer program product for network application development, the computer program product comprising: a non-transitory computer readable storage device; and computer readable code, stored on the computer readable storage device and executable by a computer processor to:

receive, by a data plane definition language compiler, a first data plane definition describing customized functionality of a data plane of a first network application;

compile the data plane definition to generate a first set of customized data processing modules and a program interface that allows a control plane of the network application to access the first set of customized data processing modules; and

load the first set of customized data processing modules into a data plane container,

wherein the network application is executed via a network operating system, and

wherein, upon execution of the network application the customized data processing module causes the data plane container of the network application to process packets differently than prior to loading the customized data processing module in the data plane container; and

in response to receiving a second data plane definition:

dynamically generate a second set of customized data processing modules; and

dynamically load the second set of customized data processing modules into the data plane container,

wherein the network operating system prevents the first network application from accessing the second set of customized data processing modules; and

wherein the network operating system prevents the second network application from accessing the first set of customized data processing modules.

8. The computer program product of claim 7 , wherein the control plane of the first network application and the control plane of the second network application concurrently communicate with the data plane container to access the respective customized data processing modules.

9. The computer program product of claim 7 , wherein the data plane definition is received in a domain specific language.

10. The computer program product of claim 7 , wherein the customized data processing modules are configured to perform configurable functions including parse, lookup, update, and modify,

wherein the configurable function of parse comprises determining the structure of incoming blocks of data;

wherein the configurable function of lookup comprises identifying the set of relevant rules for the specific packet at hand from a set of tables;

wherein the configurable function of update comprises modifying an internal state of the data plane processing module based on the combination of rules extracted from the lookup state and the incoming packet; and

wherein the configurable function of modify comprises a set of rewrite capabilities to generate new headers of blocks of data that will be sent out of the data plane processing module.

11. The computer program product of claim 7 , wherein the data plane container orchestrates an execution order of the first set of customized data processing modules and the second set of customized data processing modules by connecting the individual customized data processing modules according to a configuration policy.

12. The computer program product of claim 7 , wherein the customized data processing module is composed of multiple instances through an abstraction of the data plane.

Assignments (3)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2017
From: PLUMGRID, INC.
To: NICIRA, INC.
Reel/Frame 041067/0614 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2013
From: MONCLUS, PERE; SINGH, SUSHIL; BLANCO, BRENDEN; STAROVOITOV, ALEXEI; NEMAT, AWAIS
To: PLUMGRID, INC.
Reel/Frame 029834/0827 →