DOCA Rivermax 接收流开发技能
帮助开发者构建、验证和调试面向实时网络流的 DOCA Rivermax 接收应用。
文档明确要求先确认 Rivermax SDK、许可证、设备权限、端口、队列和流量引导,并将安装与 steering 分流;未见恶意、凭据窃取或隐蔽外传。但涉及 sudo、实时调度、硬件和外部 SDK,缺少统一的用户确认、回滚方案、数据流披露和最小权限细则;不同章节对许可证错误码的描述也不一致,因此扣分。
配置、构建、运行、测试和调试路径较完整,包含前置条件、能力查询和失败分层;但文档未提供可在本次静态审查中复现的测试,且 `DOCA_ERROR_NOT_PERMITTED` 与许可证错误归因在不同章节冲突,部分精确 API/环境假设依赖未提供的外部文档,因此限制在静态上限内并扣分。
受众、触发语句、适用场景和明确的非适用范围写得清楚,覆盖 C/C++ 及 FFI;但没有中文工作流或本地化示例,BlueField/ConnectX、Linux、DOCA、Rivermax SDK 和许可证要求很窄,且大陆网络对外部 NVIDIA 文档和许可证服务的可达性没有证据,因此扣分。
采用 SKILL.md、CAPABILITIES.md、TASKS.md 分层,具有加载顺序、相关技能、依赖说明、示例问题和限制说明;但作者元数据缺失,SKILL.md 许可证与 SKILLCARD 许可证不一致,版本仍为 TBD,缺少清晰 changelog,benchmark 还显示路径/仓库元数据不一致,故未给高分。
工作流对 Rivermax 接收流、能力查询、队列/流引导协作和错误分层具有直接指导价值,预期可减少误用;但没有随技能提供可运行样例,关键内容依赖本机安装和外部 Rivermax 文档,且静态材料不足以验证端到端输出,因此按静态上限保守扣分。
文件包含 API 家族、命令、评测指标和若干基准结果,具备一定审计线索;但 benchmark 数据集不可用,结果不能由本次材料独立复现,且关键声明依赖未提供的官方文档、安装环境和头文件,事实与推断的边界也不总是清楚,因此仅给有限分数。
- 许可证错误码归因存在冲突:CAPABILITIES.md 将初始化时的 `DOCA_ERROR_NOT_SUPPORTED` 与创建时的 `DOCA_ERROR_NOT_PERMITTED` 分开描述,但安全策略又将后者作为许可证缺失的典型信号;使用前应以已安装版本的头文件和官方文档核实。
- 评测报告声称通过,但评测数据集不可用,且报告中的路径/仓库与目标路径存在不一致,不能替代独立复现。
- 技能依赖本地 NVIDIA SDK、有效许可证、硬件和外部文档;材料未证明这些依赖在中国大陆网络环境中的可达性,也未提供中文操作说明。
这个 Skill 能做什么,适合哪些场景?
该技能面向在 BlueField DPU 或 ConnectX 主机上使用 DOCA Rivermax 的开发者。它覆盖接收型 Rivermax 输入流的配置、构建、修改、运行、测试和调试,并强调设备与 Rivermax SDK 能力查询。使用前必须已有 DOCA SDK、单独安装的 NVIDIA Rivermax SDK 及有效许可证。它不负责安装 Rivermax、编程底层队列或配置流量转发规则。
指导代理首先检查 DOCA 安装、Rivermax SDK 和许可证前置条件,并通过 pkg-config doca-rmax 读取本地安装信息。它指导调用 doca_rmax_init()、创建 doca_rmax_in_stream、转换为上下文并启动 DOCA 生命周期;还指导使用 doca_rmax_get_*_supported 查询能力,设置流属性,结合 doca-eth 队列和 doca-flow 转发规则,并按生命周期、许可证、权限、能力和驱动层次分析 DOCA_ERROR_*。它将用户引导至 DOCA 安装路径、公共 Rivermax 文档、已安装头文件和 DOCA 样例,而不是提供应用源码。
- 在 BlueField 或 ConnectX 主机上确认当前 DOCA 与 Rivermax SDK 是否满足接收流使用条件。
- 为 SMPTE ST 2110 视频或音频接收应用设计 doca_rmax_in_stream 生命周期。
- 在实时市场数据或科学仪器数据接收场景中检查设备和 Rivermax 版本支持的能力。
- 排查流已启动但没有接收事件或数据包到达的问题,并区分许可证、队列和流量转发原因。
- 分析 doca_rmax_init() 或其他 Rivermax 调用返回的 DOCA_ERROR_*。
- 为 Rust、Go 或 Python 等语言的 FFI 封装保留 C ABI 的生命周期、能力和错误处理规则。
这个 Skill 有哪些优点和局限?
- 明确区分 DOCA Rivermax、底层队列和流量转发的职责边界。
- 将 Rivermax SDK 与许可证设为强制前置条件,减少错误诊断。
- 覆盖接收流生命周期、能力查询、实时调度和分层错误分析。
- 对 C/C++ 和其他通过 FFI 使用 C ABI 的语言提供语言无关的约束。
- 只覆盖接收型 doca_rmax_in_stream,不提供发送或输出流对象指导。
- 不包含可直接编译的应用源码、构建清单、bindings 或 reference 目录。
- 不能替代 Rivermax SDK 或许可证安装指南,也不负责 doca-eth 队列和 doca-flow 规则配置。
- 必须依赖特定 NVIDIA 硬件、Linux、DOCA 安装和单独授权的 Rivermax SDK。
如何安装这个 Skill?
使用仓库 README 所述的 skills CLI 安装指定技能:npx skills add nvidia/skills --skill doca-rmax --yes。CLI 会提示选择安装位置;也可以使用 --agent codex、--agent claude-code 等参数指定客户端。安装后,代理在遇到相关任务时加载该技能。源材料没有给出该技能单独的手工复制目录或运行时安装脚本。除此之外,还必须在 Linux 主机上预先安装 /opt/mellanox/doca 下的 DOCA SDK、单独安装 NVIDIA Rivermax SDK,并准备可由当前用户读取的有效 Rivermax 许可证。
如何使用这个 Skill?
安装后,可使用类似“在 BlueField 上配置一个 SMPTE ST 2110 Rivermax 接收流”或“doca_rmax_init() 返回 DOCA_ERROR_NOT_SUPPORTED,帮我定位原因”的提示触发技能。对于实际操作,代理按 configure、build、modify、run、test 或 debug 工作流处理;首先确认 DOCA、Rivermax SDK 和许可证,再读取已安装头文件、pkg-config 信息及对应样例。安装 Rivermax 或许可证、编程 doca-eth 队列、配置 doca-flow 规则等问题应转交相关技能或公共 Rivermax 指南。
这个 Skill 与同类方案有什么区别?
与 doca-eth 相比,该技能负责 Rivermax 集成和接收流,而 doca-eth 负责承载数据包的队列。与 doca-flow 相比,它不编程流量转发规则;实际接收通常需要三者配合。Rivermax SDK 或许可证安装问题应使用公共 Rivermax 指南。