| 开源协议 | Apache-2.0 |
| 名称 | doca-compress |
| 描述 | > 用于在 BlueField DPU、ConnectX 网卡或装有 DOCA 的主机上执行 DOCA Compress 动手编程,支持 compress-deflate、decompress-deflate、decompress-lz4-stream/block 任务,包括缓冲区规划、mmap 权限、卸载路径选择、往返校验与 DOCA_ERROR_* 调试。 metadata: kind: library compatibility: > 需要 DOCA SDK 安装于 /opt/mellanox/doca,Linux Ubuntu 22.04/24.04 或 RHEL/SLES,并连接 BlueField DPU 或 ConnectX 网卡。 |
DOCA Compress(DOCA 压缩加速技能)
定位: 本技能假定 DOCA 已安装,面向在 BlueField/ConnectX/宿主机 DOCA 环境中的动手 Compress 工作(批量 DEFLATE 压缩或解压缩)。若要“执行”配置/构建/修改/运行/测试/调试,打开 TASKS.md;若要了解“此版本的 DOCA Compress 能提供哪些能力”,打开 CAPABILITIES.md。尚未安装 DOCA 时先走 doca-setup;不确定是否应卸载压缩到硬件时,参考 CAPABILITIES.md 中的尺寸阈值路径选择规则——大块压缩适合卸载,微小单次操作不适合。
本技能擅长回答的问题类型
- “应不应该用 DOCA Compress 卸载压缩,还是 CPU 上跑 zlib/zstd?” → 尺寸阈值规则 + 安全策略中的“不要用”场景。
- “我的设备支持哪种 compress/decompress 任务?每次能提交多大的缓冲区?” → 每任务能力查询(如 doca_compress_cap_task_compress_deflate_is_supported / _get_max_buf_size)。
- “我只解压入站网络数据,是否可单独使用?” → 任务类型表中解压-only 形态是合法场景,只需启用对应解压任务。
- “源/目的 mmap 需要什么权限?” → 权限矩阵:源至少 DOCA_ACCESS_FLAG_LOCAL_READ_ONLY,目的需要 DOCA_ACCESS_FLAG_LOCAL_READ_WRITE。
- “DOCA 版本上有没有某 API?” → 版本兼容层 + doca-version 交叉参考,按版本发现,不假设。
- “某个 DOCA_ERROR_* 是什么含义,是哪一层引起的?” → 错误分类 + TASKS.md 的分层调试。
目标受众
此技能服务外部开发者,他们构建应用通过 C/C++ 或 FFI 绑定调用 doca_compress_* 来在 BlueField DPU/ConnectX 上卸载批量 DEFLATE 压缩/解压。语言范围上 DOCA Compress 提供 C 库(pkg-config 模块名 doca-compress),示例为 C;其他语言经 FFI 调用同一公共 ABI。
何时加载此技能
包括:在 doca_dev 上初始化 doca_compress 上下文并在 doca_ctx_start() 前配置至少一种任务;选择压缩任务 vs 解压任务;正确设置 doca_mmap 的源/目的缓冲权限;根据每任务 max_buf_size 上限和算法最坏输出大小规划缓冲区;通过 cap 函数检查设备支持;用往返压缩/解压做验证;决定是否值得卸载;调试 DOCA_ERROR_*;设计非 C 语言绑定等。不适合:DOCA 安装、常规 CPU 压缩库、其他 DOCA 库。
提供的内容
这是一个轻量加载器。主体内容在 CAPABILITIES.md(任务类型、能力查询、安全策略、错误分类、路径选择)和 TASKS.md(配置、构建、修改、运行、测试、调试六个步骤)。兼容性:需要 /opt/mellanox/doca 的 DOCA SDK,读取安装时运行 pkg-config doca-compress。本技能刻意不携带完整应用源码、预编码 fixture 或独立构建清单;用户应使用官方示例和公有文档。
加载顺序
- 先读 SKILL.md 确认问题范围;
- 能力问题读 CAPABILITIES.md;
- 操作问题读 TASKS.md。
相关技能:doca-public-knowledge-map、doca-setup、doca-version、doca-structured-tools-contract、doca-programming-guide、doca-dma、doca-debug。