Data Plane Program Incremental Development

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data plane programming languages like P4 are not designed for modular or incremental programming, making it difficult for customers to add custom features to switching/routing systems without accessing vendor-supplied proprietary code, which may contain confidential information.

Innovation Solution

A network management device with incremental development logic enables customers to add custom network packet processing instructions to pre-existing instructions using a data plane incremental development environment, allowing customers to define new headers, parsers, tables, and actions without modifying the existing code, ensuring confidentiality and compatibility with the existing system.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If customers access vendor-supplied proprietary code to add custom features, then customization capability is improved, but confidentiality of proprietary code is compromised

Engineering Contradiction:
Improvecustomization capabilityVSAvoidconfidentiality of proprietary code
Core Design Contradiction:
Adaptability or versatilityVSLoss of information

Solution Approach 1:

The system segments the data plane program into pre-existing instructions (vendor-supplied) and custom instructions (customer-defined). Customers can add custom packet processing instructions without accessing the proprietary pre-existing code, maintaining confidentiality while enabling customization through incremental development of separate code segments.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If customers modify existing code to add custom features, then adaptability is improved, but system compatibility and reliability are worsened

Engineering Contradiction:
Improvecustomization capabilityVSAvoidsystem compatibility
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system separates custom packet processing instructions from pre-existing instructions, allowing customers to modify only their own code segment without touching the vendor-supplied code. This segmentation ensures that customizations do not compromise the reliability or compatibility of the existing system.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system introduces an intermediary mechanism (the incremental development environment) that allows custom instructions to be added and integrated without direct modification of existing code. This intermediary layer protects the integrity of pre-existing instructions while enabling customer customizations.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If data plane programs are developed incrementally with custom features, then ease of operation is improved, but device complexity increases

Engineering Contradiction:
Improveease of customizationVSAvoidprogram structure complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The system divides the data plane program into distinct segments (pre-existing instructions and custom instructions), making it easier for customers to operate and customize their own segment without being overwhelmed by the complete program structure. This segmentation simplifies the user's task while the system manages the overall complexity.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11005754B1Incremental development of a data plane program
Publication Date: 2021.05.11 CISCO TECHNOLOGY INC
  • US11005754B1 patent drawing
  • US11005754B1 patent drawing
  • US11005754B1 patent drawing

AI summary

In one example embodiment, a network management device obtains a definition of a first network packet header, an identification of a condition indicating that a network packet has the first network packet header, and a definition of processing action information that includes a key and a processing action to be taken on the network packet when metadata in the network packet matches the key. The network management device merges custom network packet processing instructions written in a data plane programming language with pre-existing network packet processing instructions written in the data plane programming language to produce merged network packet processing instructions written in the data plane programming language. The custom network packet processing instructions define the first network packet header, identify the condition, and define the processing action information. The network management device provides the merged network packet processing instructions for execution by a network node.