Data Plane Program Incremental Development
Find Innovative SolutionsGenerate 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
Engineering 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
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.
2Adaptability or versatility
If customers modify existing code to add custom features, then adaptability is improved, but system compatibility and reliability are worsened
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.
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.
3Ease of operation
If data plane programs are developed incrementally with custom features, then ease of operation is improved, but device complexity increases
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.
Data Source
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.


