K-NET DTOE
最新消息
[2026.03.31]:DTOE首次发布,新增KNET-DTOE接口。
DTOE简介
K-NET(K-Network,网络加速套件)旨在打造一款网络加速套件,提供统一的软件框架,发挥软硬协同优势,释放网卡硬件性能。DTOE(Direct TCP Offloading Engine,TCP协议卸载加速引擎)是K-NET网络加速套件的一个加速特性。K-NET的详细介绍可参见K-NET。 DTOE将TCP数据传输过程卸载到网卡硬件中进行,降低系统CPU的消耗,提高服务器处理性能;连接建立和删除以及连接维护等功能继续由软件内核处理。开发者可基于DTOE API接口对既有业务的TCP网络通信代码编程改造,实现DTOE卸载加速能力。 详细介绍可参见《Data Acceration Kit 26.0.T1 FlexDA DTOE 开发指南》。
K-NET通过封装DTOE接口,提供更接近socket语义的KNET-DTOE接口,提升易用性。
图 1 KNET-DTOE架构图

版本配套关系
产品版本信息
| 产品名称 | 软件名称 | 软件版本 |
|---|---|---|
| Data Acceleration Kit | K-NET DTOE | 26.0.T1 |
版本配套关系
| 项目 | 版本 |
|---|---|
| 操作系统 | openEuler 24.03 LTS SP2 |
| 服务器 | S920X20 |
| 网卡 | SP670 |
| CPU | 鲲鹏920新型号 7280Z |
源码下载
下载K-NET DTOE源码。
git clone https://gitcode.com/openeuler/knet.git
git checkout dtoe
源码目录结构
.
├── cmake // 存放构建依赖
├── conf // 存放初始配置项
├── demo // 存放示例demo
├── docs // 文档说明
├── opensource // 存放项目依赖
├── package // 存放rpm包构建配置
├── src // 存放项目的功能实现源码,仅该目录参与构建出包
├── test // 存放项目的UT和SDV测试
└── build.py // 统一的构建入口
安装K-NET
安装DTOE依赖
安装网卡DTOE驱动固件的指导,请参见《Data Acceration Kit 26.0.T1 FlexDA DTOE 开发指南》。
安装开源依赖
安装libboundscheck依赖。
yum install -y libboundscheck
安装K-NET
-
下载K-NET源码并编译。
git clone https://atomgit.com/openeuler/knet.git cd knet python build.py Release dtoe rpm -
安装K-NET。
rpm -ivh build/rpmbuild/RPMS/ubs-knet-1.0.0.aarch64.rpm
业务适配
业务适配API接口
根据API接口描述修改对应的业务代码,具体接口描述见knet_dtoe_api。
业务编译
-
添加编译选项:指定头文件搜索路径与链接的库名称,以iPerf3为例。
// Makefile.am libiperf_la_LIBADD = -lknet_frame AM_CPPFLAGS = -I/usr/include/knet -
编译构建业务,以iPerf3为例。
// iperf3目录下 sh bootstrap.sh ./configure; make
K-NET配置文件DTOE配置参考
$ vim /etc/knet/knet_comm.conf
配置参考如下:
| 配置项 | 说明 | 默认值 | 取值范围 | 约束说明 |
|---|---|---|---|---|
| log_level | 日志级别 | "WARNING" | "ERROR", "WARNING", "INFO", "DEBUG" | 支持大小写混写 |
| channel_num | 通道个数 | 1 | 1-64 | tx和rx通道个数各有channel_num个 |
K-NET日志
KNET运行过程中打印的日志在目录/var/log/knet/knet_comm.log。