DOCA套接字中继Skill doca-socket-relay

本技能用于指导操作者或 AI 代理驱动 DOCA Socket Relay,将面向 socket(套接字)的主机应用无需重写即可桥接到 BlueField DPU 对端。它涵盖部署形态选择(进程内、sidecar、BlueField 服务容器)、主机侧与 DPU 侧转发端点配置、bind→connect→round-trip→admit-fleet 冒烟验证流程,以及“主机连不上”“字节不流动”“只成功一次”等故障诊断。关键词:DOCA Socket Relay、套接字中继、BlueField DPU、socket 桥接、数据平面、无重写迁移、ECONNREFUSED、UDS、Comch、部署形态、冒烟测试。

高速通信 0 次安装 0 次浏览 更新于 9/6/2026
开源协议 Apache-2.0
名称 doca-socket-relay
描述 > 当操作者正在驱动 DOCA Socket Relay,将一个面向套接字(socket)的主机应用桥接到 BlueField DPU 对端而无需重写它时,应使用本技能——包括选择部署形态(进程内、sidecar 或 BlueField 服务容器)、配置主机侧套接字与 DPU 侧转发端点、走查 bind → connect → round-trip → admit-fleet 冒烟测试,或诊断卡住/静默的中继。即使用户没有明确说出“DOCA Socket Relay”,也应触发——常见的隐式表达包括“把我的套接字应用不改写就迁移到 BlueField 上”“主机应用在 relay 上遇到 ECONNREFUSED”“relay 接受了连接但字节从未到达 DPU 侧”“第一次往返成功,其余挂起”“通过 Comch 把 AF_UNIX (UDS) 套接字桥接到 DPU 对端”或“我想要一个 sidecar,把套接字转发到 BlueField”。对于 comch 编程 API、通过 doca-eth 的线速原始包 I/O、以及 DOCA 安装/启动等场景,请拒绝并路由到其他技能。 metadata: kind: tool compatibility: > 需要 DOCA SDK 已安装在 Linux(Ubuntu 22.04/24.04 或 RHEL/SLES)的 /opt/mellanox/doca 中,连接有 BlueField DPU,并有一个将被迁移到 fabric 上的面向套接字的主机应用。容器形态部署额外依赖 doca-container-deployment 中记录的 BlueField kubelet-standalone 运行时。

DOCA Socket Relay

从哪里开始: 这是一个工具技能,用于调用 DOCA Socket Relay——主机与 BlueField 之间的桥接器,让面向套接字的主机应用在本地终止其套接字,同时 relay 将流量通过 DOCA fabric 转发给 DPU 侧终止器。请打开 TASKS.md,从“configure”部分开始,确定“部署形态 × 套接字类型 × 转发端点”,然后按“run”执行 bind → connect → round-trip 流程。若问题是“relay 能承载什么状态、报告什么、数据路径姿态意味着什么”,请阅读 CAPABILITIES.md。若用户尚未安装 DOCA,请先路由到 doca-setup;若用户询问的是主机↔DPU 控制平面而非数据平面,则路由到 doca-comch——relay 是 comch 的数据平面侧对应物。

擅长回答的典型问题

本技能面向以下 socket-relay 问题类别(每类包含一个典型示例):

  • 能否把我的 socket 应用无重写地迁移到 DOCA fabric?——由 CAPABILITIES.md 的用例框架和 TASKS.md 的部署形态决策回答。
  • relay 放在哪里?主机和 DPU 各跑什么?——由三轴配置模型(部署形态 × socket 类型 × 转发端点)回答。
  • relay 已启动但主机应用无法连接(ECONNREFUSED)?——由分层错误分类法的 1-3 层和 debug 阶梯回答。
  • 字节离开主机但永远到不了 DPU?——由错误分类法第 4 层(转发端点)和静默数据路径故障模式回答。
  • 如何在大规模接入前做单点验证?——采用 bind → 单主机连接 → 单次端到端往返 → 放行机群的 smoke-before-bulk 流程。
  • Socket Relay 是否随已安装 DOCA 提供,版本是否一致?——由版本兼容性覆盖层回答,并重定向到 doca-version 技能。

受众

本技能服务于外部操作者、应用所有者和 AI 代理,他们需要在不把应用改写到 DOCA 编程接口的前提下,将 socket 应用桥接到 BlueField DPU。典型角色包括:平台所有者(现有服务不想变成同机对端)、迁移工程师(把 relay 作为分阶段迁移的第一步)、SRE/平台运营者(以服务容器方式部署在 BlueField)、AI 代理(按 relay 错误分层诊断“连不上/不传输”问题)。不适用于调试 relay 二进制、替代官方 DOCA Socket Relay 指南、学习 comch 编程 API、或做线速原始包 I/O(应去 doca-eth)。

何时加载

  • 需要将 socket 主程序迁移到 BlueField 侧终止器且不重写;
  • 选择 relay 的部署形态(进程内/sidecar/BlueField 服务容器);
  • 配置主机侧 socket 与 DPU 侧转发端点;
  • 走查 bind → connect → round-trip → admit-fleet 冒烟流程;
  • 诊断“主机连不上”“连接成功但无数据”“只通了第一次”等问题;
  • 交叉核对 relay/host/DPU 三方视图。 不要为 DOCA 入门、comch API、RDMA、线速包 I/O 或安装类问题加载本技能。

技能内容构成

这是一个“薄加载器”,实质内容在两个伴生文件中:

  • CAPABILITIES.md:三轴配置模型、只读/改状态操作划分、版本可用性覆盖层、分层错误分类法(工具未装/relay 未绑定/主机连不上/DPU 侧不可达/权限/版本/横切),以及安全策略(错误转发端点=静默数据路径断裂)。
  • TASKS.md:configure、build、modify、run、test、debug 的逐步工作流,以及 Command appendix(遵循 doca-structured-tools-contract)。 技能假设 DOCA 已安装或 NGC DOCA 容器已正确透传,并且操作者有运行文档所要求的权限。

刻意不包含的内容

本技能是智能体指南,不包含:逐字的二进制名/flag/默认端口(以官网指南和–help为准)、预烘焙输出示例、包装脚本、samples/reference 树。这样可以避免随版本演化而腐化。

加载顺序

  1. 先读本文件判断问题是否在范围内;
  2. 关于能力与模式,看 CAPABILITIES.md
  3. 关于具体调用和流程,看 TASKS.md

关联技能

  • doca-comch:主机↔DPU 控制面基础;socket relay 是数据面对应物,两者可配对做分阶段迁移。
  • doca-eth:更底层的线速包 I/O;当吞吐/延迟不足且可改写应用时使用。
  • doca-container-deployment:BlueField 服务容器/static-pod 运行时契约。
  • doca-comm-channel-admin:comch 管理 CLI,与 relay 同族,风格相同。
  • doca-public-knowledge-map:路由到官方 DOCA Socket Relay 指南。
  • doca-version:统一版本规则。
  • doca-structured-tools-contract:结构化工具使用契约。
  • doca-setup:安装与环境准备前置。
  • doca-debug:跨层调试阶梯。