---
title: 简介
description: "在可编程场景下， DPAK （Data Processing & Acceleration Kit，数据处理加速套件）作为统一软件框架，与DPU卡配套使用，主要应用于公有云和私有云等环境。在云场景中，DPU通常作为计算节点（服务器）对外业务通信的主要通道，实现网络、存储等功能的加速与卸载。"
url: https://www.hikunpeng.com/document/detail/zh/flexda/devguide/dpak_dev0001.html
sourcePath: /source/zh/flexda/devguide/dpak_dev0001.html
indexId: 599c4fa1b4a03c8366635deaa058940564c982c45e4c710c0cb7a0789314431944
---
# 简介

在可编程场景下， DPAK （Data Processing & Acceleration Kit，数据处理加速套件）作为统一软件框架，与DPU卡配套使用，主要应用于公有云和私有云等环境。在云场景中，DPU通常作为计算节点（服务器）对外业务通信的主要通道，实现网络、存储等功能的加速与卸载。

FlexDA （Flexible Data Acceleration，灵活数据加速套件）是一种开放式的可编程软件架构，为开发者提供灵活的编程接口和工具链。通过模块化、互操作性和扩展性，支持网络功能的自定义扩展，例如实现自定义报文解析、流表管理和pipeline定制，从而提升数据加速任务的效率和适应性。该框架主要应用于云计算、分布式系统等场景，已解决传统架构在灵活性和集成能力方面的不足。

#### 实现原理

FlexDA 开放编程框架通过编程库和工具链，提供 OVS （Open vSwitch，开放虚拟交换机）开放编程能力。

OVS开放编程支持外部开发者基于华为DPU卡的OVS业务进行扩展定制，外部开发者可以在OVS的match-actions机制上，实现自定义报文解析、自定义流表、流表key/action和自定义pipeline能力。


#### 软件架构

FlexDA编程框架提供的开放编程库和工具链整体如图1所示。

图1 FlexDA编程框架分层架构

编程库主要定义了 FlexDA 开放可编程的各种开放编程接口，按整体的业务设计，FlexDA开放编程库包括了L2和L3层接口。

- L1层开放：配置接口，不属于开放编程的范围。
- L2层开放：聚焦在对基础业务的开放上，针对FlexDA上的业务，开放业务层的编程接口，允许开发者通过实现Hook API和调用Lib API这些接口进行业务扩展。开发者能够在基础业务的能力上进行一定程度的扩展，集成个性化的业务逻辑到基础业务能力上，实现对基础业务的扩展定制。
- L3层开放：聚焦在对FlexDA通用算力的开放上，通过提供面向一个业务领域的通用基础库，可以让开发者从零构建自有的业务能力。


#### 应用场景

FlexDA 编程框架通过发布开放编程库和开放编程工具链，支持FlexDA上的网络领域的业务开发，使其从版本化演进转变成生态化定制。通过改变FlexDA当前的产品发布模式，引入开发者共同在芯片上开发业务场景，充分利用芯片上的算力，实现CPU、DPU在生态业务上的多样算力融合，实现业务加速。

作为构建FlexDA开放编程生态的基础，FlexDA编程框架会基于L2层、L3层开放接口，逐步完善开放编程库；同时会基于FlexDA开放编程的开发全流程分析，完善开发工具链，提升开发工具的友好性和易用性。另外，FlexDA开放编程在演进过程中，通过抽象FlexDA业务开放能力，逐步形成面向业务领域、独立于硬件信息的专属的开发语言 DSL （Domain Specific Language，领域特定语言）。DSL让开发者不需要了解硬件架构、硬件设计原理，只需要描述业务逻辑本身，就可以完成可在芯片上高效运行的微码程序。
