DSL Compiler for Network Device Slow-Path Tasks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current network devices lack flexibility and programmability for customizing slow-path tasks, which are typically complex and inaccessible to users other than network engineers, due to the need for specialized skills and tools.

Innovation Solution

A domain-specific language is introduced that allows users to describe slow-path network processing functions independently of the target device's hardware, partitioning code for efficient compilation into executable code for either general-purpose or network processors, enabling device-independent and extendable programming.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If domain-specific language is used to describe slow-path tasks, then ease of operation is improved, but device complexity increases due to compilation requirements

Engineering Contradiction:
Improveease of customizationVSAvoidcompilation system complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

A domain-specific language (DSL) compiler acts as an intermediary between user-friendly high-level task descriptions and low-level processor instructions. The compiler translates DSL code into executable code for network processors or general-purpose processors, shielding users from hardware complexity while enabling efficient execution on specialized hardware.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The compilation system automatically determines the optimal target processor (network processor or general-purpose processor) based on the analyzed DSL code characteristics. The system self-configures the compilation process without requiring users to manually specify hardware targets, making the complexity management transparent to end users.

Inventive Principle:
Principle #25Self-service

2Productivity

If code is compiled to target specific processor types, then productivity is improved through efficient execution, but adaptability decreases due to hardware-specific optimization

Engineering Contradiction:
Improveexecution efficiencyVSAvoidhardware independence
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The compilation system dynamically adapts its output based on the target hardware configuration. The same DSL source code can be compiled to different target processors (network processor or general-purpose processor) depending on what is available in the network device, allowing efficient execution on whatever hardware is present while maintaining hardware independence through the abstract DSL layer.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The domain-specific language serves as a universal intermediate representation that can be compiled to multiple different processor architectures. This allows a single DSL codebase to run efficiently on various hardware platforms including network processors with specialized packet processing capabilities and general-purpose processors, making the system universally adaptable to different network device configurations.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Manufacturing precision

If specialized processor knowledge is required for programming, then manufacturing precision is improved through optimized code generation, but ease of manufacture worsens due to skill requirements

Engineering Contradiction:
Improvecode optimization precisionVSAvoidprogramming accessibility
Core Design Contradiction:
Manufacturing precisionVSEase of manufacture

Solution Approach 1:

The DSL compiler serves as an intermediary that automatically performs the complex task of generating optimized code for specialized processors. Users write high-level DSL code without needing to understand network processor architecture or assembly language, while the compiler handles the precision-critical code generation and optimization, making specialized processor programming accessible to general users.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The compilation system automatically analyzes DSL code and self-generates the most appropriate optimized code for the target processor type. The system performs self-optimization by selecting appropriate code generation strategies based on the target hardware capabilities, eliminating the need for users to manually optimize code for specialized processors while still achieving high manufacturing precision.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11347488B2Compiling domain-specific language code to generate executable code targeting an appropriate type of processor of a network device
Publication Date: 2022.05.31 FORTINET INC
  • US11347488B2 patent drawing
  • US11347488B2 patent drawing
  • US11347488B2 patent drawing

AI summary

Systems and methods for programming a network device using a domain-specific language (DSL) are provided. According to one embodiment, source code in a form of a DSL, describing a slow-path task that is to be performed by a network device, is received by a processing resource. A determination is made regarding one or more types of processors are available within the network device to implement the slow-path task. For each portion of the source code, a preferred type of processor is determined by which the portion of the source code would be most efficiently implemented. When the preferred type of processor is available within the network device, executable code is generated targeting the preferred type of processor based on the portion of the source code; otherwise, intermediate code is generated in a form of a high-level programming language, targeting a general purpose processor of the network device.