DOCA DPDK 桥接技能
为现有 DPDK 应用接入 DOCA 能力,无需重写数据面。
文档明确限定现有 DPDK 应用、披露 DOCA/DPDK 依赖、权限要求、版本配对、生命周期顺序和反向清理,并禁止猜测 API;但需要 sudo、hugepages、PCI 绑定等高影响操作,缺少逐步用户确认、隔离方案和可验证回滚,因此扣分。
配置、构建、运行、测试和调试流程较完整,错误分类和异常分层较清晰;但仅静态阅读,缺少可复现的关键路径测试,且部分 API/兼容性断言依赖本机安装或未提供的配套文件,因此不超过静态上限并扣分。
触发条件、适用人群、排除范围、相关技能路由和 C/C++ 语言边界都很明确;但依赖 Linux、特定 NVIDIA 硬件、已安装 SDK/DPDK,中文支持未实证,且无法确认中国大陆网络环境下外部文档可达,因此扣分。
信息架构、加载顺序、任务分类、示例问题、限制和维护入口较清楚;但版本仍为 TBD,缺少明确变更记录和作者字段,SKILL.md 的 Apache-2.0 与用户提供的仓库许可证元数据 NOASSERTION 存在不一致,SKILLCARD 还给出不同许可证组合,因此扣分。
该技能对现有 DPDK 应用接入 DOCA 的核心路径、端口绑定、缓冲区转换和故障分层提供了可直接采用的指导;但没有可执行样例,静态材料未独立验证输出正确性,且多个关键结果仍需用户本机检查,因此只给有限分数。
内容提供符号、命令、文件路径、错误映射和版本检查点,具备一定审计性;但 benchmark 声称的评测数据集不可用,未提供独立可复现的测试套件或多来源佐证,故分数较低。
- 执行前确认用户明确同意 sudo、hugepages、PCI 设备绑定和硬件端口变更,并准备恢复方案。
- 不要把 BENCHMARK.md 的 PASS 或 SKILLCARD 的签名字段视为已验证证据;报告称评测数据集不可用,且版本/许可证元数据存在不一致。
- 必须以用户本机安装的头文件、pkg-config 输出和实际 DOCA/DPDK 配对窗口为准;不要仅依据文档中的 API 或兼容性断言。
这个 Skill 能做什么,适合哪些场景?
该技能面向已经维护 DPDK 数据面的开发者,指导其在同一进程中接入 DOCA,最常见的用途是使用 DOCA Flow 进行硬件流量转向。它覆盖 DPDK 端口与 doca_dev 的绑定、rte_mbuf 与 doca_buf 的转换、能力查询以及 DOCA_ERROR_* 故障排查。使用前需要在 Linux 上安装 DOCA SDK 和独立的 DPDK,并满足相应的版本匹配、设备和权限条件。它是一个薄加载器,具体能力矩阵和操作流程位于同目录的 CAPABILITIES.md 与 TASKS.md。
读取本机的 pkg-config doca-dpdk-bridge 和 pkg-config libdpdk 信息,并检查 /opt/mellanox/doca 下的库、头文件、示例和应用目录;指导调用 doca_dpdk_port_probe、doca_dpdk_port_as_dev 将 DPDK 端口映射到 doca_dev;指导 doca_dpdk_mempool 相关的 rte_mbuf 与 DOCA buffer 转换;指导调用 doca_dpdk_cap_is_rep_port_supported;按照安装、版本、构建、链接、运行时、程序和驱动层次分析 DOCA_ERROR_*。
- 已有 DPDK 数据面并希望在不迁移到 DOCA 原生 API 的情况下加入 DOCA Flow 硬件转向的开发者。
- 已经取得 DPDK 端口 ID,需要让 DOCA Core 或 DOCA Flow 访问同一物理端口的开发者。
- DPDK 快速路径产生 rte_mbuf,需要将数据交给 DOCA 库处理的开发者。
- pkg-config 无法找到桥接库,或 DPDK 与 DOCA 版本疑似不匹配的开发者。
- 收到端口注册、权限、能力或 mbuf 转换相关 DOCA_ERROR_* 的开发者。
这个 Skill 有哪些优点和局限?
- 专门处理现有 DPDK 应用与 DOCA 的互操作场景。
- 覆盖端口交接、mbuf/buf 转换、能力检查、版本耦合和分层故障排查。
- 明确区分桥接路径与全新 DOCA-native 数据面的适用边界。
- 不绑定某个固定项目构建文件,能依据用户本机安装的 pkg-config 信息制定方案。
- 不适合从零开始的 DOCA-native packet I/O 项目,也不覆盖 DOCA 或 DPDK 的安装和学习。
- 技能本身不提供可直接构建的应用源码、samples、bindings、reference 子树或独立构建清单。
- 依赖 DOCA 与 DPDK 的匹配版本、Linux、特定硬件和设备权限;源材料未给出具体版本窗口。
- SKILL.md 本身主要负责路由,完整桥接矩阵和逐步流程依赖未在题面展开的 companion 文件。
如何安装这个 Skill?
使用仓库 README 提供的 skills CLI 安装命令:npx skills add nvidia/skills --skill doca-dpdk-bridge --yes。安装后,让兼容的 Agent 在遇到相关任务时加载该技能。源材料未说明该技能在本地 Agent 中的具体安装目录,也未提供单独的 DOCA 或 DPDK 安装步骤。
如何使用这个 Skill?
先确认已有 DPDK 应用、已安装 DOCA 和 DPDK,并具备目标设备访问权限。可向 Agent 提问:"我有一个 DPDK 应用,如何在不重写数据面的情况下加入 DOCA Flow 规则?";"如何把 DPDK port id 注册为 doca_dev?";或 "pkg-config --exists doca-dpdk-bridge 失败,如何排查?"。需要执行 configure、build、modify、run、test 或 debug 时,继续读取 TASKS.md;需要查询能力边界时读取 CAPABILITIES.md。
这个 Skill 与同类方案有什么区别?
对于已有 DPDK 代码并希望叠加 DOCA 能力,应选择 doca-dpdk-bridge;对于没有 DPDK 包袱、需要全新 DOCA-native packet I/O 的项目,源材料推荐 doca-eth。doca-flow 是常见的配套 steering library,而不是该桥的替代品;doca-setup 负责 DOCA 安装准备。