Incremental Compiling for Heterogeneous Network Devices
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing network programmability is static, preventing the addition of new network functions at runtime without causing interruptions, which hinders seamless network application upgrades.
Innovation Solution
An incremental compiling method and system for heterogeneous devices, which involves developing network programs using P4, modeling device constraints, allocating intermediate representations to device units, generating rule expressions, and enabling incremental deployment of network functions without interrupting existing operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If network functions are recompiled and loaded at runtime, then new network functions can be added, but program interruption occurs and seamless upgrade cannot be realized
Solution Approach 1:
The patent segments the network program into multiple independent modules that can be compiled separately. Each module corresponds to a specific network function and can be independently loaded, updated, and executed. This segmentation allows new functions to be added without recompiling the entire program, thus avoiding program interruption while maintaining reliability.
Solution Approach 2:
The patent implements a dynamic module loading mechanism that enables network function modules to be loaded, unloaded, and updated at runtime without stopping the program. The system dynamically manages the lifecycle of network function modules, allowing seamless upgrades by loading new modules while existing modules continue to operate, thus resolving the contradiction between adaptability and reliability.
2Adaptability or versatility
If all network functions are recompiled when adding new functions, then new functions can be deployed, but compilation time and resources increase
Solution Approach 1:
The patent divides the network program into independent compilable modules, each representing a specific network function. When a new function needs to be deployed, only the corresponding module needs to be compiled and loaded, rather than recompiling the entire program. This significantly reduces compilation time and resource consumption while maintaining the ability to deploy new functions.
Solution Approach 2:
The patent performs preliminary compilation of individual network function modules separately before deployment. Each module is pre-compiled and packaged as an independent unit, so that during deployment, only the necessary module needs to be loaded and activated. This preliminary preparation eliminates the need for full program recompilation, reducing deployment time and resource usage.
3Adaptability or versatility
If network functions are updated at runtime, then seamless upgrade is achieved, but device resource management becomes complex
Solution Approach 1:
The patent designs a universal module management mechanism that handles loading, unloading, activation, and deactivation of network function modules through standardized interfaces and procedures. This universal management system simplifies resource management by providing a consistent approach to managing different types of modules, reducing the complexity that would otherwise arise from runtime updates of diverse network functions.
Solution Approach 2:
The patent introduces a module management system as an intermediary layer between the network function modules and the underlying device resources. This intermediary manages the allocation, monitoring, and release of resources associated with each module, abstracting the complexity of resource management from the runtime update process. The intermediary handles memory allocation, processor resource management, and other resource-related operations, simplifying the overall system complexity.
Data Source
AI summary
An incremental compiling method and an incremental compiling system based on a heterogeneous device. The method comprises: a user using P4 to develop a network program, checking the syntax and semantics of the network program and converting into an intermediate representation; allocating intermediate representation files according to constraints such as the functions and resources of the heterogeneous device; then, transforming the network program into different rule expressions of the heterogeneous device according to the constraints of the heterogeneous device, flow table entries and the like, and loading the on different rule expressions to a target device; when the user needs to deploy network functions incrementally, the user only needs to write new network programs and regenerate rule expressions; by comparing and analyzing the old and new rule expressions, a rule expression that can be loaded on heterogeneous device is formed, and the incremental deployment of network functions is realized.


