DOCA Common 基础编程技能
为 BlueField 和 ConnectX DOCA 应用提供通用编程基础。
内容明确限定为文档指导,声明无凭据要求,并将安装、硬件安全和调试分流;但运行工作流涉及设备、文件重定向和硬件相关操作,未形成统一的用户确认、最小权限、回滚及敏感数据处理流程,因此扣分。
SKILL.md、CAPABILITIES.md 和 TASKS.md 的生命周期、能力检查、PE 驱动和错误分流基本一致,且异常时通常要求停止或升级;但静态审查无法复现关键路径,部分 API、版本和安装假设依赖本地环境,测试覆盖和失败输出契约不足,因此不超过静态上限并扣分。
触发条件、适用人群、典型问题和非适用范围写得清楚,并覆盖 C/C++ 与 FFI;但没有中文使用指导或本土网络可达性分析,核心参考和安装路径依赖 NVIDIA 文档、DOCA 安装及硬件环境,因此扣分。
采用 loader、能力说明和任务工作流的分层结构,含交叉链接、示例问题、边界、评测记录和安全联系人;但版本、签名、扫描时间仍为 TBD,维护责任与变更历史不完整,且许可证信息在不同文件中不一致(Apache-2.0、Apache-2.0 AND CC-BY-4.0、元数据 NOASSERTION),因此扣分。
文档直接覆盖设备发现、能力门控、缓冲区生命周期、上下文、进度引擎、日志和调试路由,理论上能完成核心指导任务;但没有可直接编译的代码或代表性可复现输出,BENCHMARK.md 说明评测数据集不可用,静态证据不足以证明结果完整性,因此按上限给分。
存在提交内的 evals、BENCHMARK.md、SKILLCARD 和明确的符号与工作流引用,提供有限可审计线索;但评测数据集不可用,报告结果无法由所给文件独立复现,也缺少多源交叉验证,因此扣分。
- 这是低置信度静态审查,未执行任何命令、示例或测试。
- 使用前应确认本地 DOCA 版本、硬件能力、权限和 API 是否匹配;不要把文档中的示例流程视为已验证代码。
- 应统一许可证、版本签名和维护信息,并补充中文说明、失败输出示例、用户确认和回滚边界。
这个 Skill 能做什么,适合哪些场景?
doca-common 面向在 BlueField DPU 或 ConnectX NIC 上进行 DOCA 编程的开发者。它覆盖 doca_ctx 生命周期、设备发现与能力检查、零拷贝缓冲区连接、进度引擎完成处理以及 DOCA Log 的双层日志模型。该技能是轻量级加载器,主要指引代理进一步读取 CAPABILITIES.md 和 TASKS.md。它要求系统已安装 DOCA SDK,不负责 DOCA 安装或独立的库专项指导。
指导代理检查本地 DOCA 安装,包括使用 pkg-config --modversion doca-common 获取版本并查看 /opt/mellanox/doca/{lib,include,samples,applications};规划 doca_devinfo、doca_dev、doca_ctx、doca_mmap、doca_buf_inventory、doca_buf 和 doca_pe 的生命周期与连接;要求在使用功能前依据活动设备的 doca_*_cap_* 能力进行判断;解释 --sdk-log-level 与应用侧日志级别设置;并将安装、查文档及库专项问题路由到相关技能。
- 正在为 BlueField-3 编写 DOCA Flow、RDMA 或 Eth 应用,需要先搭建通用上下文和进度引擎的开发者。
- 发现设备后需要根据运行时 doca_devinfo 能力决定是否启用某项硬件功能的开发者。
- 需要在 doca-eth、doca-dma 和 doca-rdma 之间共享零拷贝缓冲区的开发者。
- 任务提交成功但没有完成,正在检查 doca_pe_progress 驱动循环的开发者。
- 设置了 `--sdk-log-level` 但看不到应用自身 `DOCA_LOG_DBG` 输出的开发者。
- 需要为 Rust、Go 或 Python 封装 DOCA 公共 C ABI 的开发者。
这个 Skill 有哪些优点和局限?
- 覆盖多数 DOCA 应用都会遇到的 ctx、dev、buf、PE 和日志基础。
- 强调以活动设备能力而非公开文档提示作为运行时功能判断依据。
- 明确生命周期顺序、跨库零拷贝缓冲区和任务完成处理等常见故障点。
- 支持通过 FFI 或绑定使用 DOCA 的非 C 语言场景,并以公共 C ABI 为权威表面。
- 必须预先安装 DOCA SDK,并具备 BlueField DPU 或 ConnectX NIC;不覆盖 DOCA 安装。
- SKILL.md 本身是薄加载器,实质性步骤依赖未在此处展开的 CAPABILITIES.md 和 TASKS.md。
- 不提供可直接构建的应用源码、构建清单、samples、bindings 或 reference 子树。
- 来源只说明 Linux、Ubuntu 22.04/24.04、RHEL/SLES 兼容范围,未提供独立测试结果或具体硬件覆盖矩阵。
如何安装这个 Skill?
使用仓库 README 中的 Skills CLI 安装指定技能:npx skills add nvidia/skills --skill doca-common --yes。CLI 会提示或写入安装目标;无需手动克隆仓库或复制技能目录。README 未提供 doca-common 的独立安装包。
如何使用这个 Skill?
在已安装 DOCA SDK 的 Linux 主机上,让代理处理具体的 DOCA 基础编程任务,例如:我的 doca_rdma 任务提交成功但没有完成,请检查 doca_pe 和运行循环。 对于通用原语,继续读取 CAPABILITIES.md;对于 configure、build、modify、run、test、debug、use 或 log 工作流,继续读取 TASKS.md。Flow、RDMA、Eth 等库专项问题应同时加载对应技能。