doca-flow
DOCA Flow packet steering on NVIDIA NICs/DPUs, linked into a C application: match/action pipes, ports, representors, forwarding, hairpin, counters.
Skill by NVIDIA <doca@nvidia.com>
Chalk Labs
Need help deploying doca-flow?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/nvidia-doca-flow
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/doca-flow
What's inside
- Skill name
doca-flow- Description
- DOCA Flow packet steering on NVIDIA NICs/DPUs, linked into a C application: match/action pipes, ports, representors, forwarding, hairpin, counters. Trigger on packet steering, classifier, rule-matching, representor, hairpin or 5-tuple-to-queue questions even when "DOCA Flow" is not named. Remote or non-C++ control over gRPC belongs to doca-flow-grpc-server. Also covers pipe validation before hardware programming, Flow/DOCA version match, and Flow API errors. First app: follow the local bundle (doca-setup, doca-programming-guide, doca-flow, doca-public-knowledge-map). Stage 1 pull nvcr.io/nvidia/doca/doca (NGC catalog tag, never invent); Stage 2 needs a real NIC. Then ls samples inside the container; never emit main.c, a Dockerfile, or hand-typed -l flags. Route software-only host pipelines, plain DPDK `rte_flow`, kernel TC, OVS, BFB bring-up, and DPU OS installation elsewhere. DPU OS installation is destructive and always requires explicit confirmation.
- License
- Apache-2.0
- Compatibility
- Requires DOCA SDK installed at /opt/mellanox/doca on Linux (Ubuntu 22.04/24.04 or RHEL/SLES) with a supported NVIDIA NIC/DPU attached. Reads the user's local install via `pkg-config doca-flow` and inspects /opt/mellanox/doca/{lib,include,samples,applications}. The validation steps require a live DOCA install.
- Metadata
- kind: library · author: NVIDIA <doca@nvidia.com> · doca_version: 3.5
- Instructions
- 307 lines in SKILL.md · view on GitHub
Files (8)
- BENCHMARK.md
- CAPABILITIES.md
- SKILL.md
- SKILLCARD.yaml
- TASKS.md
- evals.json · evals/
- skill-card.md
- skill.oms.sig
SKILL.md (first lines)
# DOCA Flow ## Examples - **“How do I bring up a Flow port on a representor?”** — this is in scope. Use the installed header and a shipped sample; do not author a first-app `main.c`. - **“Match 5-tuple and send to a queue.”** — express it as a Flow pipe. Do not fall back to kernel tc or iptables. ## Instructions Follow Loading order below. Open the tasks companion for configure / modify / debug. Open the capabilities companion for the pipe-spec schema and safety policy. For connection tracking, read the tasks companion's `flow-ct` section before starting ports: CT initialization is process-global and must precede port start. Adding CT to running ports requires an approved interruption and reconstruction from a captured configuration, not a per-port `doca_ctx_start` call or reuse of invalidated pipe handles. ## Non-negotiable: first app is NGC pull + a shipped sample, not authored C When the user is new to DOCA, has docker, has no host DOCA, or asks for a first Flow app, do this **before host `pkg-config` and before any source listing**: 1. **Bundle first.** This answer follows the local doca-skills bundle: `doca-setup/SKILL.md` (Stage 1 vs Stage 2), `doca-programming-guide/SKILL.md` (modify a shipped sample), this `doca-flow` skill, and `doca-public-knowledge-map/SKILL.md`. Name those skills. Do not invent other skill names. 2. **Stage 1 vs Stage 2 before any command.** Stage 1 = NGC container on a laptop (compile / learn; no real packets). Stage 2 = a real BlueField or ConnectX for pipe runtime. Docker compiles only; do not say the app works entirely inside docker. 3. **Path 0 (Stage 1).** Copy a tag from https://catalog.ngc.nvidia.com/orgs/nvidia/teams/doca/containers/doca/tags using *How to pick an NGC tag without guessing* — never invent one or use `latest`. Then `docker pull nvcr.io/nvidia/doca/doca:<tag>` and `docker run -it --rm -v $HOME/dev/doca-work:/work nvcr.io/nvidia/doca/doca:<tag> bash` (an empty dir, never `$HOME`). No invented `Dockerfile`, no source build. 4. **Resume inside the container (MUST, after `docker run`):** quote this hand-off — do not skip it for a full tutorial: "Paste back the output of `pkg-config --modversion doca-flow` and `ls /opt/mellanox/doca/samples/doca_flow/`." Then: "I resume from doca-programming-guide ## modify step 1 with the real install in hand." Name a directory that listing shows; copy it. If `ls` is empty, stop — do not scaffold. Use `doca-flow` on that `pkg-config` line, not `doca-common`. 5. **Never** emit a new `main.c`, `Makefile`, `Dockerfile`, or hand-typed `-l` / `-L` flags. Paste `pkg-config --libs doca-flow`. ## Non-negotiable: the deliverable uses DOCA Flow, not kernel tc/iptables When this skill is in scope, the user is asking for **DOCA Flow**. After the shipped-sample copy above, the binary you build **must link `libdoca_flow` and exercise the `doca_flow_*` lifecycle** on the user's installed DOCA — init, port start, pipe programming, entry commit, and counter readback under traffic. Copy the call sequence from that **shipped DOCA Flow sample** under `/opt/mellanox/doca/samples/doca_flow/` and adapt it via ## configure / ## modify. Verify every symbol against the installed header ([Ground rule](#ground-rule-verify-every-api-name-against-the-installed-header) below) and the add-entry table in ## API surface and name guards. Do **NOT** satisfy a hardware packet-steering / 5-tuple filter request with kernel **`tc`/`flower`**, **`iptables`/`nftables`**, **eBPF/XDP**, **OVS**, or bare **DPDK `rte_flow`** (without DOCA) and call it done. Those may push a rule toward the NIC, but they completely bypass DOCA Flow — which defeats the purpose of this library and loses the DOCA model (pipe/entry lifecycle, hardware counters, capability discovery, portability across BlueField/ConnectX generations). "`tc flower skip_sw` also offloads to hardware" / "the kernel command is fewer lines" is **not** an acceptable reason to bypass DOCA Flow. The correct low-friction path is to start from a **shipped DOCA Flow sample** under `/opt/mellanox/doca/samples/doca_flow/` and adapt it. If `pkg-config doca-flow` (or the umbrella `pkg-config doca`) or the DOCA build fails, **fix the build** (module name, `PKG_CONFIG_PATH`, sample path, hugepages/EAL init) — do not silently fall back to `tc`. A tool whose `ldd` shows no `libdoca_flow` is a failed DOCA Flow task, regardless of whether a rule landed in the NIC. Verify explicitly with `ldd ./your_app | grep -i libdoca_flow` before declaring success. **Never invent a link line.** For `undefined reference` / link failures, run `pkg-config --libs doca-flow` plus companion **module names** (`doca-common`, `doca-argp`, `doca-dpdk-bridge`, `libdpdk`) and paste that output. Those names stay on the pkg-config command; never turn them into hand-typed `-l` / `-L` flags or a guessed install path. The shipped sample's `meson.build` `dependency()` list is the module set; `pkg-config` is the only translator into linker flags. **Where to start:** Open the tasks companion to *do* something (configure / build / modify / run / test / debug); open the capabilities companion when the question is *what can Flow express* on this version. **You MUST open ## configure before writing or running any port code** — its bring-up gate decides whether the binary launches at all. If DOCA is not installed yet, route to `doca-setup/SKILL.md` first. ## Ground rule: verify every API name against the installed header Before quoting any `doca_*` / `DOCA_*` identifier, confirm it exists in the user's installed headers — the header on the machine is ground truth above prose, the API reference, blog posts, or memory: ```bash for header in "$(pkg-config --variable=includedir doca-common)"/doca_flow*.h; do grep -n '<candidate_name>' "$header" # For a multi-line function declaration, print through its closing `);`. awk '/<candidate_name>[[:space:]]*\(/,/[)][[:space:]]*;/' "$header" done ```
From NVIDIA/skills, Apache-2.0.
More from NVIDIA/skills
- 0.846score
nemo-fabric-integrate
NVIDIA Corporation and Affiliates
Use this skill when integrating NVIDIA NeMo Fabric into a consumer application, service, evaluation harness, or platform through the typed Python SDK —…
SkillAFreshness: A★ 3.7KClaude Code +9 - 0.846score
jetson-video-pipeline
Vinit Bansal <vinitkumarb@nvidia.com>
Use when planning, executing, and independently validating Jetson Video Codec SDK or PyNvVideoCodec encode/decode, transcode, segmentation, container decode…
SkillAFreshness: A★ 3.7KClaude Code +9 - 0.846score
nvflare-convert-pytorch
NVIDIA FLARE Team <federatedlearning@nvidia.com>
Convert existing plain or manual PyTorch training code into an NVFLARE federated job using Client API model exchange, local validation, and job export; use…
SkillAFreshness: A★ 3.7KClaude Code +9 - 0.846score
nemo-relay-get-started
NVIDIA Corporation and Affiliates
Use this skill when first-time NeMo Relay users want help selecting and following an appropriate quick-start guide or verifying their first working integration.
SkillAFreshness: A★ 3.7KClaude Code +9 - 0.846score
jetson-video-recipe
Vinit Bansal <vinitkumarb@nvidia.com>
Use when turning a Jetson encoder use case into one surface-neutral recipe with native Video Codec SDK and PyNvVideoCodec projections.
SkillAFreshness: A★ 3.7KClaude Code +9 - 0.846score
nvidia-broadcast
NVIDIA Broadcast Team <broadcast-skills-dev@nvidia.com>
Use when controlling NVIDIA Broadcast through MCP to apply effects, process local media, select devices, or change camera resolution, or when Broadcast is…
SkillAFreshness: A★ 3.7KClaude Code +9 - 0.846score
jetson-video-setup
Vinit Bansal <vinitkumarb@nvidia.com>
Use when installing, repairing, reusing, inspecting, or verifying readiness of the native NVIDIA Video Codec SDK or PyNvVideoCodec on Jetson, including the…
SkillAFreshness: A★ 3.7KClaude Code +9 - 0.846score
nvflare-diagnose-job
NVIDIA FLARE Team <federatedlearning@nvidia.com>
Use when the user asks why a reported NVFLARE job failure signal occurred: the job failed, stalled, timed out, lost clients, ended with EXECUTION_EXCEPTION…
SkillAFreshness: A★ 3.7KClaude Code +9 - 0.846score
nvflare-convert-lightning
NVIDIA FLARE Team <federatedlearning@nvidia.com>
Convert existing PyTorch Lightning training code into an NVFLARE federated job using the Lightning Client API patch, local validation, and job export; use…
SkillAFreshness: A★ 3.7KClaude Code +9 - 0.846score
nemo-relay-install
NVIDIA Corporation and Affiliates
Use this skill when choosing or running NeMo Relay installation for an agent runtime, application language, framework integration, or plugin bundle, or…
SkillAFreshness: A★ 3.7KClaude Code +9 - 0.846score
nvflare-fed-stats
NVIDIA FLARE Team <federatedlearning@nvidia.com>
Compute federated statistics over tabular data (count, sum, mean, stddev, var, histogram, quantile, noise-protected min/max) and image data (count…
SkillAFreshness: A★ 3.7KClaude Code +9 - 0.846score
jetson-video-capability
Vinit Bansal <vinitkumarb@nvidia.com>
Use when Jetson codec, profile, chroma, bit-depth, dimension, engine-count, or operational support must be reconciled from live APIs, authenticated NVIDIA…
SkillAFreshness: A★ 3.7KClaude Code +9
Signals
- Stars
- 3,718
- Forks
- 457
- Open issues
- 8
- Last commit (this folder)
- Oct 22, 2026 (12 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/NVIDIA/skills
- Website
- docs.nvidia.com/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from NVIDIA <doca@nvidia.com>
- 0.790score
doca-bf4-deployment
NVIDIA <doca@nvidia.com>
WARNING: guides IRREVERSIBLE BlueField-4 hardware operations (PLDM firmware burns, ISO reflashes, power cycles, BMC factory resets); every mutating step is…
SkillAFreshness: A★ 3.7KClaude Code +9 - 0.790score
doca-container-deployment
NVIDIA <doca@nvidia.com>
Running an in-bundle DOCA service as a container on a BlueField (Argus, DMS, Firefly, or UROM service): kubelet standalone watching a static-pod manifests…
SkillAFreshness: A★ 3.7KClaude Code +9 - 0.790score
doca-bf3-deployment
NVIDIA <doca@nvidia.com>
Use this skill for BlueField-3 (BF3) day-1 platform bring-up via the classic RShim/BFB path: pushing a BlueField bundle (BFB) to the DPU over RShim with…
SkillAFreshness: A★ 3.7KClaude Code +9 - 0.790score
doca-bare-metal-deployment
NVIDIA <doca@nvidia.com>
Running a DOCA-linked binary directly on the hardware, with no container or kubelet: on host x86 with a BlueField NIC over PCIe, or bare-metal on BlueField Arm.
SkillAFreshness: A★ 3.7KClaude Code +9 - 0.790score
doca-collectx-deployment
NVIDIA <doca@nvidia.com>
Use this skill to deploy and operate a CollectX (clx) based DOCA telemetry collector on a host or BlueField — wiring providers / counters into the collector…
SkillAFreshness: A★ 3.7KClaude Code +9 - 0.790score
doca-verbs
NVIDIA <doca@nvidia.com>
Raw verbs inside DOCA Core (doca-verbs): direct control of QP, CQ, PD, SRQ and address-handle objects through doca_verbs_context and doca_verbs_qp_create /…
SkillAFreshness: A★ 3.7KClaude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get doca-flow running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
doca-flow skill. Agent Mart. https://agentmart.dev/skills/nvidia-doca-flow (last updated 2026-10-24)