Agent skill · software engineering · nvidia

doca-flow

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. 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.

Why this skill is useful

Adds specific DOCA Flow lifecycle scripts and validation procedures that are not commonly known or documented publicly.

What it needs

Requires doca-sdk installed locally. About 9k tokens when loaded. Last updated 2026-08-07. 2,816 stars on the source repository.

What this skill does

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 docactxstart 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. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills nvidia/doca-flow

View the source on GitHub

Browse the @skills marketplace