doca-flow-grpc-server

Configure, harden, and debug the DOCA Flow gRPC server for remote Flow programming.

3.2k|370|Updated Feb 25, 2026
One-click install
npx skills add https://github.com/NVIDIA/skills --skill doca-flow-grpc-server
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: doca-flow-grpc-server
Source: https://github.com/NVIDIA/skills/tree/main/skills/doca-flow-grpc-server
Command: npx skills add https://github.com/NVIDIA/skills --skill doca-flow-grpc-server

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Programming NVIDIA DOCA Flow pipelines normally requires linking libdoca_flow.so directly into a C/C++ process, which blocks teams whose control plane runs in Python, Go, Rust, or on a different host. This Skill guides agents through standing up, securing, and troubleshooting doca_flow_grpc, the DOCA-shipped gRPC remote-control surface for doca-flow.

Core Features & Use Cases

  • Remote-vs-direct decision guidance: Determines whether a gRPC control plane is justified or whether a direct libdoca_flow.so link is the simpler answer.
  • Plaintext endpoint hardening: The shipped server uses grpc::InsecureServerCredentials() with no TLS or token-auth knobs, so the Skill enforces binding on a trusted segment behind an external proxy, sidecar, or VPN.
  • Contract-first client bring-up: Locates the shipped .proto files as the authoritative RPC contract and generates client stubs via protoc for any gRPC-supported language.
  • Layered debugging taxonomy: Diagnoses failures across server-not-started, binding-failed, external-layer-rejected, RPC-call-error, Flow-precondition, and version-mismatch layers.
  • Use Case: A control-plane engineer needs a Python service on a separate host to program Flow pipes on a BlueField DPU; the Skill walks through building the server, locating the .proto files, smoking one read-only RPC, then safely exposing the endpoint.

Quick Start

Ask your agent to help you bring up the doca_flow_grpc server and connect a Python client to program Flow rules on a remote BlueField.

Frequently Asked Questions about doca-flow-grpc-server

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I program DOCA Flow rules from Python on a remote host?

Use the doca_flow_grpc server as a remote control plane in front of doca-flow. Build it from the DOCA source tree with gRPC support enabled, generate Python stubs from the shipped .proto files with protoc, and dial the server through an external TLS-terminating proxy.

Should I use the gRPC server or link libdoca_flow.so directly?

Link libdoca_flow.so directly when your controlling process is C/C++ and runs in the same address space; it is simpler with a smaller attack surface. Use the gRPC server only when the client is non-C++ or runs on a different host or network segment.

Does the DOCA Flow gRPC server support TLS or authentication?

No. The shipped binary hard-codes grpc::InsecureServerCredentials() with no TLS, mTLS, or token-auth configuration knobs. Transport security must come from an external proxy, sidecar, or VPN, with the plaintext endpoint bound on a trusted isolated segment.

Where are the .proto files for the DOCA Flow gRPC contract?

In the DOCA source tree they live under libs/doca_flow/grpc/ (common.proto, doca_flow.proto, packet_buffering.proto). On a binary install, run pkg-config doca-flow --variable=prefix and search that prefix for .proto files rather than assuming a fixed path.

Why does my gRPC client fail to connect to the Flow server?

Walk the layered error taxonomy: confirm the server process started, verify the bind address and port, check the external proxy or VPN logs for rejections, and match any gRPC status code to the .proto contract. Quote status codes verbatim and retry once before escalating.

Is doca_flow_grpc installed with the DOCA package?

No. It is a build artifact marked install: false in the meson build, gated by flag_enable_grpc_support and flag_enable_grpc_flow_library. You must build DOCA from source with those flags enabled and find the binary in the build directory.