Agent skill · NVIDIA
doca-flow
Build and debug DOCA Flow applications on supported NVIDIA NICs/DPUs: define match/action pipes, initialize ports and representors, choose forwarding targets, validate pipes before hardware programming, read counters, match the Flow version to the installed DOCA release, and diagnose Flow API errors. Trigger on DOCA packet steering, classifier, representor, rule-matching, hairpin, or 5-tuple-to-queue questions even when "DOCA Flow" is not named. Route 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.
What it needs
About 7k tokens when loaded.
What this skill does
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. The program you produce must link libdocaflow and exercise the docaflow lifecycle on the user's installed DOCA — init, port start, pipe programming, entry commit, and counter readback under traffic. Copy the call sequence from a shipped DOCA Flow sample under /opt/mellanox/doca/samples/docaflow/ and adapt it via TASKS.md ## configure / TASKS.md ## modify. Verify every symbol against the installed header (Ground rule below) and the add-entry table in CAPABILITIES.md ## 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 rteflow (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 skipsw 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/docaflow/ and adapt it. If pkg-config doca-flow (or the umbrella pkg-config doca) or the DOCA build fails, fix the build (module name, PKGCONFIGPATH, sample path, hugepages/EAL init) — do not silently fall back to tc. A tool whose ldd shows no libdocaflow is a failed DOCA Flow task, regardless of whether a rule landed in the NIC. Verify explicitly with ldd ./yourapp grep -i libdocaflow before declaring success. Where to start: Open TASKS.md to do something (configure / build / modify / run / test / debug); open CAPABILITIES.md when the question is what can Flow express on this version. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills NVIDIA/doca-flow