DOCA Ethernet 队列开发技能
为 BlueField 与 ConnectX 开发和调试 DOCA Ethernet 收发队列。
文档明确限定 DOCA Ethernet 队列范围,要求能力查询、权限与端口状态检查,并将安装、流量 steering、RDMA 等任务路由到其他技能;说明通常需要 sudo 或 mlnx 组,但缺少逐项用户确认、变更回滚和数据流披露。未见恶意行为或凭据窃取,因此保留较高分但扣分于硬件操作授权与恢复边界不完整。
SKILL.md、CAPABILITIES.md 与 TASKS.md 形成较清晰的加载、配置、运行、测试和调试流程,包含异常分类和失败路由;但内容依赖本地 DOCA SDK、特定设备和未提供的 companion skills,且存在部分断言过强的表述。静态审查未执行关键路径,按校准规则不超过10分。
目标用户、BlueField/ConnectX 环境、队列类型、触发短语和明确的非适用范围均有说明,也覆盖 C/C++ 及 FFI 场景;但要求 Linux 上预装 DOCA 和实际硬件,中文输出支持未说明,且部分能力高度依赖本地版本与设备,故扣分。
文档分层较好,loader、能力说明、任务流程、评估文件和 skill card 齐全,并说明 Apache-2.0、相关技能、缺陷入口和维护线索;但版本仍含 TBD-at-sign-time,SKILLCARD 与目标路径及许可证元数据存在不一致,BENCHMARK 报告缺少可复核数据集,且有静态 schema 缺陷和缺少作者/推荐章节,因此扣分。
对队列创建、RX 类型选择、能力查询、TX 提交和错误分层提供了直接的决策框架,能够覆盖核心任务并减少误用;但它是 thin loader,不提供可运行代码或完整样例,关键内容依赖未提供的 companion files,且静态材料没有证明用户任务可直接完成,按校准最高为7分。
证据包括提交内的工作流、评估配置、BENCHMARK 结果和 skill card,但评估数据集不可用,报告只提供汇总数字,且本次未执行;存在部分外部链接和版本/许可证声明,但未形成多来源、独立可复现的覆盖,因此按静态上限取5分。
- 执行任何涉及 sudo、promiscuous mode、DOCA Flow、端口状态或硬件/驱动诊断的建议前,应要求用户确认目标设备、权限和影响范围,并提供可恢复方案。
- 必须核对实际安装中的 DOCA 版本、doca-eth/docа-common 一致性、设备能力查询结果以及 companion files;不能仅依据文档中的 API、评估摘要或品牌 provenance 断言可用性。
- 源材料中的 SKILL.md 路径、SKILLCARD source.path、仓库名和许可证声明不完全一致;发布前应统一元数据并补充可复核的测试数据。
- 该技能未说明中文输出策略,也未证明从中国大陆网络访问外部 DOCA 文档的可达性;本地 SDK 和随附样例应作为主要依据。
这个 Skill 能做什么,适合哪些场景?
该技能面向使用 DOCA Ethernet C 库进行高速数据包收发的外部开发者。它覆盖物理端口、representor 和 SF 上的 RX/TX 队列生命周期、队列类型选择、能力查询、发送任务以及 DOCA_ERROR_* 调试。它要求 DOCA SDK 已安装在标准路径,并不负责 DOCA 安装、流规则编程、主机与 DPU 控制通信或 RDMA 数据传输。主体内容通过 CAPABILITIES.md 和 TASKS.md 提供能力说明与 configure、build、modify、run、test、debug 工作流。
指导用户使用 pkg-config doca-eth 检查已安装的 DOCA Ethernet 库,并读取 /opt/mellanox/doca 下的库、头文件、示例和应用目录。它帮助配置 doca_eth_rxq 与 doca_eth_txq,选择 regular、cyclic、managed mempool 或 shared mempool RX 类型,依据设备能力查询设置 burst、scatter-gather 和校验和卸载属性,并提交携带 doca_buf 的发送任务。它还按生命周期、权限、能力、队列满、驱动和流量导向等层次分析 DOCA_ERROR_*,并将安装、流规则和调试问题路由到相关技能。
- 使用 BlueField DPU 或 ConnectX NIC 的 C/C++ 开发者,需要在物理端口或 representor 上启动 RX/TX 队列。
- 网络数据平面开发者,需要根据固定大小帧、缓冲区管理方式和设备能力选择 RX 队列类型。
- 用户态转发或遥测应用开发者,需要通过 doca_eth_txq 提交带 doca_buf 的数据包发送任务。
- 队列已经启动但收不到数据,或高速发送时出现 DOCA_ERROR_AGAIN 的开发者。
- Rust、Go 或 Python 绑定维护者,需要确保 FFI 包装遵守 DOCA Ethernet C ABI 的生命周期、能力和错误规则。
这个 Skill 有哪些优点和局限?
- 覆盖 RX/TX 队列生命周期、RX 类型、能力发现、发送任务和错误分类。
- 明确区分 DOCA Ethernet 队列面与 DOCA Flow 流量导向面。
- 支持 C/C++ 以及通过 FFI 使用同一 C ABI 的其他语言。
- 提供与已安装 DOCA 版本和设备能力相关的检查方向。
- 必须预先安装 DOCA SDK,并具备访问 doca_dev 所需的权限。
- 要求 BlueField DPU 或 ConnectX NIC,且仅明确列出 Ubuntu 22.04/24.04、RHEL/SLES。
- 技能本身不提供可直接构建的应用源码、构建清单、bindings 或 samples 子树。
- 给定材料未提供 TASKS.md、CAPABILITIES.md 的具体内容,也未证明其他平台或硬件组合经过测试。
如何安装这个 Skill?
使用 NVIDIA/skills 仓库提供的 skills CLI 安装:
npx skills add nvidia/skills --skill doca-eth --yes
CLI 会提示选择安装目标;也可以使用 --agent codex、--agent claude-code、--agent cursor 或 --agent kiro-cli 指定客户端。安装后,相关任务发生时由代理加载该技能。源材料未说明手动复制该技能文件夹的具体目标路径。
如何使用这个 Skill?
先确认 DOCA 已安装,并向代理提出具体的 DOCA Ethernet 队列任务,例如:“在 BlueField representor 上配置一个 doca_eth_rxq 和 doca_eth_txq,并排查 RX 队列没有数据的问题。”技能会先判断问题是否属于 Ethernet 队列范围;需要执行 configure、build、modify、run、test 或 debug 时查看 TASKS.md,需要能力矩阵、RX 类型、发送接口或错误分类时查看 CAPABILITIES.md。流规则、DOCA 安装、主机与 DPU 通信或 RDMA 问题应转交相应技能。
这个 Skill 与同类方案有什么区别?
它明确将 DOCA Ethernet 定位为队列表面,将 DOCA Flow 定位为流量导向表面;DOCA 安装应转交 doca-setup,主机与 DPU 控制通信应使用 doca-comch,RDMA 数据传输应使用 doca-rdma。