DOCA 编程指南
帮助开发者从示例开始构建、测试和调试库无关的 DOCA 应用。
技能明确限制范围,要求先验证、分阶段运行、最小化作用域、不修改安装树,并对环境类与程序类问题分流;因此安全与数据流边界较清楚。扣分原因是涉及硬件编程、容器、复制文件和运行命令,但没有统一的用户确认门槛、回滚方案或外部副作用确认流程;许可证信息在文件间也不完全一致。
SKILL.md、CAPABILITIES.md 和 TASKS.md 形成了较完整的加载顺序、前置条件、生命周期、错误分类和调试路径,失败时通常要求停止或路由。扣分原因是静态审查未执行关键路径,许多 API、命令和跨库“通用”规则没有本地测试覆盖;BENCHMARK.md 的数据集不可用,不能将其视为完整复现证据。
受众、触发短语、适用场景和明确的非适用范围写得很清楚,并覆盖 C/C++ 与 FFI 消费者。扣分原因是依赖已安装 DOCA、Linux/容器和实际硬件;未说明中文交互支持,也未评估公共文档、论坛和 NGC 在中国大陆网络中的可达性。
文档采用 loader、能力说明和任务工作流的分层结构,包含依赖、相关技能、示例问题、版本规则和限制说明。扣分原因是缺少作者字段、推荐的 Instructions/Examples 小节、明确的维护责任与更新路径、正式 changelog;skill-card.md 的 Apache 2.0 AND CC-BY-4.0 与 SKILL.md 的 Apache-2.0 存在元数据不一致。
技能覆盖首次应用派生、pkg-config/Meson 构建、生命周期、错误解释、测试和调试,并提供较具体的流程;BENCHMARK.md 报告了通过和较高的辅助表现。扣分原因是源文件没有可直接编译的示例或模板,输出依赖用户现场安装、版本和库专用技能;评估数据集不可用且未执行,无法确认代表性结果只需轻量复核。
源文件中的流程、命令、路径和符号大多可审计,且引用了公开文档、样例和仓库类别;BENCHMARK.md 还提供了有限的评估摘要。扣分原因是本次只能静态阅读,没有执行复现,基准数据集和原始试验记录缺失,也没有足够的独立交叉验证。
- 运行或修改 DOCA 程序可能影响真实 NIC、DPU、代表端口、队列或网络流量;在执行前应明确取得用户确认,并准备可恢复的回滚步骤。
- 该技能依赖已安装且版本匹配的 DOCA、Linux/容器环境和部分真实硬件;未提供中文资料或中国大陆网络可达性保证。
- 不要把 BENCHMARK.md 的摘要当作独立测试证明;原始数据集不可用,本次也未执行命令。
- 发布前应统一 SKILL.md 与 skill-card.md 的许可证、作者和维护信息。
这个 Skill 能做什么,适合哪些场景?
该技能面向使用 DOCA 库构建应用的外部开发者,重点覆盖首次开发、通用构建模式、对象生命周期、错误处理和调试。它指导用户从已安装的 DOCA 示例派生应用,使用 pkg-config 与 Meson 构建,也说明通过公共 C ABI 从 Rust、Go 或 Python 使用 FFI。技能要求环境准备已经完成,并将安装、版本查询及库内部 API 问题转交给相关技能。
读取技能说明及其 CAPABILITIES.md、TASKS.md 伴随材料;指导用户选择并修改已安装于 /opt/mellanox/doca 的 C 示例;给出 doca-{library} 的 pkg-config 与 Meson 构建模式,以及非 C 语言的公共 C ABI/FFI 路径;说明 cfg-create→init→start→use→stop→destroy 生命周期;指导使用 doca_error_get_descr() 解码 DOCA_ERROR_*,并按验证、运行、测试和调试顺序排查问题。
- 刚开始使用任意 DOCA 库、希望从已发布示例派生第一个应用的开发者。
- 需要为 doca_rdma_* 等库调用选择规范 pkg-config 与 Meson 构建方式的 C/C++ 开发者。
- 希望通过公共 C ABI 从 Rust、Go 或 Python 调用 DOCA、但不编写 C 包装器的开发者。
- 遇到 DOCA_ERROR_BAD_STATE 或应用启动后没有网络行为、需要通用调试顺序的开发者。
- 需要区分样例、应用、可选依赖缺失与真实 SDK 回归的开发者。
这个 Skill 有哪些优点和局限?
- 覆盖库无关的 DOCA 首次开发流程、构建、生命周期、错误、观测和调试。
- 同时提供 C/C++ 直接开发与 Rust、Go、Python 等语言的 FFI 思路。
- 明确区分编程问题与安装、知识路由及库内部 API 问题。
- 依托已安装 DOCA 的官方示例,避免提供未经编译验证的应用源码。
- 这是薄加载器,实质工作流依赖 CAPABILITIES.md 和 TASKS.md 等伴随材料。
- 不提供预写应用源码、绑定、独立构建清单或 samples/reference 子树。
- 不负责 DOCA 安装、hugepages、设备准备、版本查询或库特定 API 构造。
- 部分验证步骤要求在 /opt/mellanox/doca 存在实时 DOCA 安装。
如何安装这个 Skill?
使用仓库 README 支持的 skills CLI:npx skills add nvidia/skills --skill doca-programming-guide --yes。CLI 会提示安装目标;无需克隆仓库或手动复制目录。README 未规定固定的本地安装路径。
如何使用这个 Skill?
安装后,在相关编程任务中直接提示代理,例如:“我想为 DOCA Flow 编写第一个应用”或“如何从 Rust 调用 DOCA Comch 而不写 C?”。使用前应已有可用 DOCA 安装,且 pkg-config doca-{library} 能解析;安装、hugepages、设备可见性和库专属 API 问题应转交相关技能。