Rate This Document
Findability
Accuracy
Completeness
Readability

Introduction

In programming scenarios, the Data Processing & Acceleration Kit (DPAK), a unified software framework, can work with data processing units (DPUs) in public and private clouds. In cloud environments, DPUs are usually a main channel for external service communication of compute nodes (servers) to accelerate and offload network and storage functions.

Flexible Data Acceleration (FlexDA) is an open programming framework that provides flexible APIs and a toolchain for developers. Featuring modularity, interoperability, and scalability, FlexDA supports custom extension of network functions, such as packet parsing, flow table management, and pipeline customization, thereby improving the efficiency and adaptability of data acceleration tasks. This framework is mainly used in cloud computing and distributed systems, and resolves the disadvantages of conventional architectures in terms of flexibility and integration capabilities.

Implementation Principles

FlexDA provides open programming capabilities of Open vSwitch (OVS) through a programming library and a toolchain.

OVS open programming allows developers to extend OVS services based on Huawei DPUs. They can implement custom packet parsing, flow tables, flow table keys/actions, and pipelines based on the match-action mechanism of OVS.

Software Architecture

Figure 1 shows the open programming library and toolchain provided by FlexDA.

Figure 1 Layered architecture of FlexDA

The programming library defines various open APIs of FlexDA. According to the overall service design, the library includes L2 and L3 APIs.

  • L1 openness: Configuration APIs, which are not within the scope of open programming.
  • L2 openness: Focuses on the openness of basic services. For services on FlexDA, the APIs at the service layer are open, allowing developers to implement hook APIs and call library APIs. Developers can extend the basic service capabilities and integrate custom service logic into the basic service capabilities.
  • L3 openness: Focuses on the openness of the general-purpose computing power of FlexDA. By providing a general basic library for a specific domain, developers can build their own service capabilities from scratch.

Application Scenarios

FlexDA supports network service development via the open programming library and toolchain, enabling the transition from version-based evolution to ecosystem-based customization. With changes in FlexDA's product release mode, developers can develop service scenarios on the chip. The chip computing power can be better utilized, implementing the convergence of CPU and DPU computing power to accelerate ecosystem services.

Based on the L2 and L3 open APIs, FlexDA gradually optimizes the open programming library which is the foundation of the FlexDA open programming ecosystem. It also improves the toolchain for the E2E development process to enhance the friendliness and usability of development tools. In addition, FlexDA open programming abstracts FlexDA service openness capabilities and gradually forms a domain-specific language (DSL) that is independent of hardware information. The DSL allows developers to develop microcode programs that can run efficiently on chips by describing the service logic, with no need to understand the hardware architecture and design principles.