DOCA Flow gRPC 远程控制技能
帮助非 C++ 客户端安全地部署、配置和排查 DOCA Flow 的 gRPC 远程控制面。
明确披露服务端使用grpc::InsecureServerCredentials()、无内置TLS/mTLS/token认证,并要求受信网络、外部防火墙或代理、先冒烟后放量,具备较好的数据流和外部影响提示。扣分原因是安全策略仍多次要求“必须TLS/认证”,与二进制不可配置的事实存在冲突;未具体定义最小权限授权、回滚和灾难恢复方案。
SKILL.md、CAPABILITIES.md和TASKS.md提供了较完整的配置、启动、冒烟和分层诊断流程,并要求依据日志、状态码和.proto核验。扣分原因是文档中TLS失败、证书和认证配置仍按服务端可配置场景描述,且没有可执行测试套件、固定输出或异常输入复现证据;静态评估不超过10分。
受众、适用场景、触发短语、非适用范围、远程控制与直接链接的选择条件均较清楚,也覆盖多种客户端语言。扣分原因是中文支持未说明,且关键参考依赖grpc.io和NVIDIA在线文档;功能本身主要依赖本地DOCA环境,未证明中国大陆网络条件下外部资料可达。
采用SKILL.md、CAPABILITIES.md、TASKS.md分层结构,包含依赖、限制、相关技能、维护入口和任务路由,前置许可证也明确为Apache-2.0。扣分原因是SKILLCARD.yaml的仓库路径、许可证与题设元数据不一致,版本、签名和扫描信息仍为TBD;BENCHMARK.md还记录了缺少推荐章节、作者和非预期文件等结构问题。
远程与本地方案决策、.proto作为契约、绑定验证、单客户端冒烟、状态码诊断和配置变更后重测等内容对目标任务有直接帮助。扣分原因是技能刻意不提供具体RPC、完整命令、样例代码或测试夹具,并假设DOCA和健康的doca-flow应用已存在;静态材料不足以证明输出可直接执行,按上限不超过7分。
文档要求以安装版本的.proto、--help、日志和状态码为依据,并提供了公共资料指针;BENCHMARK.md声称有评估结果。扣分原因是没有包含服务端实现、提交的测试套件或可复现CI证据,评估数据集不可用,且多项关键实现断言只能由外部源验证;静态评估不超过5分。
- 服务端是明文控制面;不要把文档中关于TLS/mTLS/token的描述理解为二进制开关,必须由外部代理、隧道或隔离网络提供保护。
- CAPABILITIES.md和TASKS.md的认证/TLS故障分类与“无内置认证”结论存在残余矛盾,执行前应以实际二进制、--help、日志和安装版本.proto为准。
- SKILLCARD.yaml的许可证、仓库路径、版本和签名字段与题设元数据不完全一致,且基准报告缺少可复现评估数据。
- 文档不提供具体RPC、客户端代码或回滚方案;涉及真实数据面变更时仍需人工安全审查和现场验证。
这个 Skill 能做什么,适合哪些场景?
该技能面向需要从网络边界外控制运行中 DOCA Flow 流水线的运维人员和开发者。它覆盖 doca_flow_grpc 的构建前提、启动绑定、客户端连通性、单客户端冒烟测试、版本问题和分层故障排查。服务器使用明文 gRPC,不提供 TLS、mTLS 或令牌认证开关,因此必须部署在受信任的隔离网络中,并由外部代理、sidecar 或 VPN 提供身份与传输保护。它不是 doca-flow API、DOCA 安装流程或通用 gRPC 工具的替代品。
指导用户判断应使用远程 gRPC 控制面还是直接链接 libdoca_flow.so;定位安装中的 .proto 文件并使用标准 gRPC 工具生成客户端绑定;根据 DOCA 源码和启用的 gRPC 构建选项生成未默认安装的 doca_flow_grpc 二进制;规划外部代理、sidecar、VPN 和网络分段;执行启动、绑定、单客户端冒烟测试及逐层故障诊断。它主要读取 SKILL.md、CAPABILITIES.md、TASKS.md、DOCA 源码树中的构建文件和 .proto 文件,并输出部署、测试、路由和安全建议。
- 控制面工程师希望从另一台主机使用 Python、Go 或 Rust 编程 BlueField 上的 Flow 规则。
- 平台运维人员需要在已有 doca-flow 应用旁启动远程 gRPC 控制面。
- 安全工程师发现服务器绑定到 0.0.0.0,需要判断如何通过外部基础设施隔离和保护明文端点。
- 开发者需要从本机安装中找到 Flow 的 .proto 文件并生成匹配版本的客户端。
- 运维人员遇到连接超时、RPC 错误、Flow 前置条件失败或客户端与服务器版本不匹配。
这个 Skill 有哪些优点和局限?
- 明确覆盖非 C++ 客户端远程控制 DOCA Flow 的部署和排障场景。
- 把安装中的 .proto 文件作为契约来源,避免固定过时的 RPC 字段或客户端代码。
- 明确指出服务器明文传输和缺少内置认证,给出外部安全层和隔离网络要求。
- 包含远程控制面与直接链接 libdoca_flow.so 之间的选型路由。
- 需要 DOCA、Linux、兼容的 NVIDIA 硬件和启用 gRPC 的源码构建环境。
- doca_flow_grpc 未默认安装,源材料未提供完整构建命令或预编译包。
- 服务器没有内置 TLS、mTLS 或令牌认证,安全部署依赖外部代理、sidecar 或 VPN。
- 技能不包含可直接运行的客户端代码、脚本、样例、RPC 方法清单或字段清单。
如何安装这个 Skill?
使用仓库 README 中支持的 skills CLI 安装指定技能:
npx skills add nvidia/skills --skill doca-flow-grpc-server --yes
安装后,在目标 Agent 下次加载相关技能时使用它。该技能本身不提供预编译的 doca_flow_grpc 安装包;源材料说明该二进制需在启用 gRPC 的 DOCA 源码树中构建。
如何使用这个 Skill?
在已安装 DOCA、存在 doca-flow 应用且具备 BlueField DPU 或 ConnectX NIC 的 Linux 环境中触发,例如:“我想从另一台主机用 Python 远程编程 BlueField 上的 DOCA Flow 规则,如何部署和验证?”先读取 SKILL.md,再按需读取 CAPABILITIES.md 了解契约、安全和错误分类,读取 TASKS.md 执行 configure、run、test 或 debug 流程。先验证一个客户端和一个 RPC 的端到端冒烟测试,再考虑向更多客户端开放。不要把 TLS、mTLS 或令牌认证当作该二进制的配置项。
这个 Skill 与同类方案有什么区别?
与直接链接 libdoca_flow.so 相比,gRPC 控制面适合控制进程位于另一台主机或不同进程边界的场景;如果客户端可直接链接 Flow 库,技能会引导用户评估是否无需远程控制面。