DOCA Flow DPA Perf (doca_flow_dpa_perf)
Where to start: This is a tool skill for invoking
doca_flow_dpa_perf, the DPA-accelerated Flow performance tool.
Open TASKS.md and start at
## configure to confirm DPA-capable
hardware + VNF Flow mode + the active / passive device split, then
## run for the smoke-before-bulk flow with a
small operation count before any sweep, then
## test for the eval-loop overlay that gates
defensible Kops/sec numbers. Open CAPABILITIES.md
when the question is what doca_flow_dpa_perf can measure,
what the DPA preconditions are, which devices it runs on,
or how to interpret update / disable / self-test output without
fooling yourself. If DOCA is not installed yet, route to
doca-setup first; if the device is
not DPA-capable (no ConnectX-7+ or BlueField-3+) then this tool is
the wrong surface and the right answer is
doca-flow-perf.
Example questions this skill answers well
The CLASSES of doca_flow_dpa_perf questions this skill is built
to answer, each with one worked example. The class is the
load-bearing piece; the worked example is one instance.
- "Should I measure the DPA-offloaded Flow path or the
host / DPU-CPU Flow path for this question?" — worked
example: "my workload programs path-selector entries via
DOCA Flow; do I baseline with
doca_flow_dpa_perf or with
doca_flow_perf?". Answered by the DPA-vs-host boundary
in
CAPABILITIES.md ## Capabilities and modes
and the device-preconditions table.
- "What does the DPA-offload actually accelerate, and what
doesn't it change?" — worked example: "if I move my Flow
rule update path to the DPA, what changes in the data plane
for the packets themselves?". Answered by the DPA-Provider
scope in
CAPABILITIES.md ## Capabilities and modes.
- "What hardware do I need to use this tool at all?" —
worked example: "is my BlueField-2 DPA-capable?". Answered
by the device-preconditions table in
CAPABILITIES.md ## Capabilities and modes
(BlueField-3 yes, BlueField-2 no; ConnectX-7 minimum
supported, ConnectX-8 recommended, and later generations
supported per the public guide and the
shipped README on the user's install).
- "How do I size my run — burst, queue, completion threshold,
number of operations, iterations — to get a defensible
Kops/sec number?" — worked example: "I want the median
iteration time and standard deviation, not a single noisy
first-iteration spike". Answered by the eval-loop overlay
in
TASKS.md ## test and the iteration-stats
rule in
CAPABILITIES.md ## Observability.
- "My tool reports zero ops / hangs / fails the self-test —
what does that mean?" — worked example: "the tool runs but
the self-test step fails". Answered by the layered error
taxonomy in
CAPABILITIES.md ## Error taxonomy
- the debug ladder in
TASKS.md ## debug.
- "How do I quote a DPA-perf number alongside a host-side
Flow-perf number for the same workload, in a way the next
engineer can actually compare?" — worked example: "two
Kops/sec numbers for what is supposedly the same workload".
Answered by the four-tuple capture rule in
CAPABILITIES.md ## Safety policy
- the per-tool-name rule (the host tool and the DPA tool are
different surfaces; their numbers are not interchangeable
without naming which tool produced which).
Audience
This skill serves external operators, performance engineers,
DOCA Flow application developers, and AI agents who need a
defensible measurement of the DPA-offloaded Flow update path on
DPA-capable hardware. Concretely:
- A platform operator deciding whether to move a path-selector
workload onto the DPA versus keeping it on the host / DPU-CPU
path, and wanting a number to compare.
- A performance engineer producing a "DPA Kops/sec for update
operation, queue-size X, burst-size Y, N workers" baseline
on a specific device + DOCA version so a downstream
comparison is meaningful.
- A DOCA Flow application developer who has already used
doca-dpa to land a DPA-offload of their Flow rule update
path and wants to characterize what the device delivers.
- An AI agent answering "what update rate should I expect from
the DPA-offloaded Flow path on device Y?" honestly — with a
measured number, the command line that produced it, and the
device + DOCA version + as-deployed environment that scopes
it — instead of guessing from datasheet headlines.
It is not for users debugging the tool's source code,
not a substitute for the live public DOCA Flow DPA Perf guide
on docs.nvidia.com, not the place to learn the doca-flow
or doca-dpa APIs (that audience belongs in
doca-flow and
doca-dpa), and not the right
tool for the host / DPU-CPU Flow path (route to
doca-flow-perf).
doca_flow_dpa_perf is shipped as a single CLI binary with
DPA-side device code linked in. The skill uses the same
kind: tool three-file shape as the rest of the bundle so
the agent's task-verb contract is uniform across the bundle.
Language scope
This skill governs invocation, output interpretation, and
recommendation-of-routing for the doca_flow_dpa_perf CLI on
DPA-capable hardware. The tool itself has both a host-side
control (C-language ARGP + DOCA + DPDK code per the shipped
flow_dpa_perf.c / flow_dpa_perf_core.c) and a DPA-side device
component (DPA-side code on the shipped DPA device runtime).
External users do not link any of this; what they configure is
the JSON-config-or-CLI invocation surface. For the
doca-dpa programming model behind the DPA-side execution
engine, see
doca-dpa; for the doca-flow
API behind the pipeline the DPA path executes, see
doca-flow.
When to load this skill
Load this skill when the user is — or the agent needs to —
invoke doca_flow_dpa_perf on a real host with DOCA installed
and a DPA-capable device attached (or the public NGC DOCA
container with the equivalent device passthrough) to measure
update / disable rates on the DPA-offloaded Flow path.
Concretely:
- Confirming DPA preconditions (DPA-capable device class,
VNF Flow mode, recommended PF use, no SFs) before invoking
the tool.
- Picking the active / passive device split appropriate to the
user's hardware (two-port BlueField-3 active + passive; one-
port ConnectX-9 active only).
- Picking the workload-shape axes (burst size, queue size,
completion threshold, hash pipe algorithm, work policy,
number of PSL tables, table size, number of workers).
- Picking the operation axis (update or disable-enable) per the
shipped README's documented operations.
- Producing a defensible Kops/sec number with iteration stats
(median, max, standard deviation) captured.
- Diagnosing zero-ops / hung / failed-self-test runs through
the layered error taxonomy.
Do not load this skill for general DOCA orientation, Flow
program API work, or installation. For those, use
doca-public-knowledge-map,
the matching libs/<library> skill, or
doca-setup. Do not load it for
the host / DPU-CPU Flow path — that audience belongs in
doca-flow-perf.
What this skill provides
This is a thin loader. Substantive material lives in two
companion files:
CAPABILITIES.md — what doca_flow_dpa_perf measures
(the DPA-Provider-on-DPA-device update / disable path
specifically), the DPA-vs-host-path boundary, the
device-preconditions table (ConnectX-7+ / BlueField-3+),
the documented VNF-only Flow-mode rule, the PF-vs-VF-vs-SF
rule (SFs not supported on DPA), the workload-shape axes
(burst, queue, completion threshold, hash pipe algorithm,
work policy, PSL tables, table size, workers), the
operation axis (update vs disable-enable), the version
overlay (this tool rides the doca-flow and doca-dpa
versions it links against; the canonical rules live in
doca-version), the layered
error taxonomy
(config-syntax / device-binding / dpa-precondition /
workload-precondition / measurement-soundness / self-test /
version / cross-cutting), the observability surface
(iteration statistics, self-test path-selector verification,
tcpdump-side traffic verification), and the safety posture
(smoke-before-bulk, four-tuple capture, name the tool that
produced the number).
TASKS.md — step-by-step workflows for the in-scope task
verbs: install (route to setup; the binary is shipped),
configure (DPA-preconditions + active / passive device +
workload-shape decision), build (route to install — the
binary is shipped), modify (refuse — modify the invocation,
not the binary), run (smoke before bulk), test (eval
loop), debug (layered diagnosis), use (consume the
captured number), plus a Deferred task verbs block routing
out-of-scope questions and a Command appendix.
The skill assumes a host where DOCA is already installed (or
the NGC DOCA container is running) on a DPA-capable device and
the operator has the permissions to bind the device and allocate
the DPA execution resources the tool needs.
What this skill deliberately does not ship
This skill is agent guidance, not a samples or scripts
bundle. To keep the boundary clean, it deliberately does not
contain — and pull requests should not add:
- Verbatim default values for flag inventories beyond what
the shipped README or installed
--help documents. Read
defaults from the README first, then fall back to the
installed binary's --help. If neither defines a needed
default, stop and request the operator's explicit value
instead of guessing. The
flag surface is install-specific within the documented
surface; the documented invocations + --help on the
installed version are the authoritative answer. Inventing
a flag is the most common hallucination failure.
- Pre-baked example Kops/sec numbers or expected throughput
numbers. Output is device-, firmware-, DOCA-version-,
workload-, and platform-specific; a pinned number for one
platform misleads operators on a different platform /
version. The shipped README's example numbers are
illustrative, not a baseline the agent should quote as
ground truth.
- Wrappers, parsers, or scripts in any language that
consume the tool's stdout / CSV. The output format is
documented; if a user wants to script against it, the
right answer is "read the live guide, write the parser
against your installed version".
- A
samples/ or reference/ subtree. This is a thin
loader for a documented CLI; substantive material lives on
the public page, in --help, and in the shipped README on
the user's install.
Loading order
- Read this
SKILL.md first to confirm the user's question
is in scope (the user actually wants to invoke
doca_flow_dpa_perf on DPA-capable hardware, not measure
the host / DPU-CPU Flow path).
- For what
doca_flow_dpa_perf measures, the DPA-vs-host
boundary, the device-preconditions table, the workload-
shape axes, the version overlay, the error taxonomy, the
observability surface, and the safety posture, see
CAPABILITIES.md.
- For the documented invocations and the smoke-before-bulk
workflow —
install, configure, build, modify,
run, test, debug, use — see TASKS.md.
Related skills
doca-flow — the base
library whose pipeline this tool measures on the DPA
path. The pipe / entry / rule surface this tool drives is
created by doca-flow program code; the library's pipe
attributes and capability surface are the upstream context.
doca-dpa — the
programming model behind the DPA execution engine the tool
runs on. When the user's question goes from "measure the
DPA path" to "why is the DPA path doing this", that
skill is the next stop.
doca-flow-perf — the
host / DPU-CPU Flow performance tool. The cross-tool
comparison rule lives in
CAPABILITIES.md ## Capabilities and modes:
name which tool produced which number.
doca-flow-tune — the Flow
tuning tool. A DPA-perf number is the kind of baseline
doca-flow-tune then optimizes on top of, via a Flow-program
modify-a-sample loop.
doca-public-knowledge-map —
routing to the public DOCA Flow DPA Perf page on
docs.nvidia.com and the rest of the public DOCA
documentation set.
doca-version — canonical
DOCA version-handling rules. The
## Version compatibility
section in this skill is a thin overlay on top.
doca-setup — env preparation,
install verification, hugepages, NUMA awareness, and the
I have no install yet path with the public NGC DOCA
container.
doca-debug — the cross-cutting
debug ladder. DPA-perf surfaces its own error taxonomy;
when the cause turns out to be below DOCA, the taxonomy
hands off to doca-debug.
doca-hardware-safety —
the cross-cutting hardware-safety meta-policy this skill's
## Safety policy overlays.
1---2name: doca-flow-dpa-perf3description: Use this skill when the user is invoking doca_flow_dpa_perf on DPA-capable hardware (ConnectX-7 minimum supported, ConnectX-8 recommended, or BlueField-3) to measure rule update / disable rates on the DPA-offloaded DOCA Flow path — picking the active / passive device split, choosing workload-shape axes (burst, queue, completion threshold, workers, hash pipe algo, PSL tables), or reading Kops/sec iteration stats and the optional self-test. Trigger even when the user does not explicitly mention "doca_flow_dpa_perf" or "DPA Provider" — typical implicit phrasings include "how fast can the DPA program path-selector entries", "baseline rule-update rate on ConnectX-8", "tool reports zero ops on my BlueField", "self-test sentinel never shows on tcpdump", or "is my BlueField-2 DPA-capable". Refuse and route elsewhere for the host / DPU-CPU Flow path (doca-flow-perf), Flow pipeline tuning (doca-flow-tune), writing doca-flow / doca-dpa applications, or DOCA install — those belong to other skills.4license: Apache-2.05---67# DOCA Flow DPA Perf (`doca_flow_dpa_perf`)89**Where to start:** This is a tool skill for invoking10`doca_flow_dpa_perf`, the DPA-accelerated Flow performance tool.11Open [`TASKS.md`](TASKS.md) and start at12[`## configure`](TASKS.md#configure) to confirm DPA-capable13hardware + VNF Flow mode + the active / passive device split, then14[`## run`](TASKS.md#run) for the smoke-before-bulk flow with a15small operation count before any sweep, then16[`## test`](TASKS.md#test) for the eval-loop overlay that gates17defensible Kops/sec numbers. Open [`CAPABILITIES.md`](CAPABILITIES.md)18when the question is *what `doca_flow_dpa_perf` can measure*,19*what the DPA preconditions are*, *which devices it runs on*,20or *how to interpret update / disable / self-test output without21fooling yourself*. If DOCA is not installed yet, route to22[`doca-setup`](../../doca-setup/SKILL.md) first; if the device is23not DPA-capable (no ConnectX-7+ or BlueField-3+) then this tool is24the wrong surface and the right answer is25[`doca-flow-perf`](../doca-flow-perf/SKILL.md).2627## Example questions this skill answers well2829The CLASSES of `doca_flow_dpa_perf` questions this skill is built30to answer, each with one worked example. The class is the31load-bearing piece; the worked example is one instance.3233- **"Should I measure the DPA-offloaded Flow path or the34 host / DPU-CPU Flow path for this question?"** — worked35 example: *"my workload programs path-selector entries via36 DOCA Flow; do I baseline with `doca_flow_dpa_perf` or with37 `doca_flow_perf`?"*. Answered by the *DPA-vs-host* boundary38 in39 [`CAPABILITIES.md ## Capabilities and modes`](CAPABILITIES.md#capabilities-and-modes)40 and the device-preconditions table.41- **"What does the DPA-offload actually accelerate, and what42 doesn't it change?"** — worked example: *"if I move my Flow43 rule update path to the DPA, what changes in the data plane44 for the packets themselves?"*. Answered by the DPA-Provider45 scope in46 [`CAPABILITIES.md ## Capabilities and modes`](CAPABILITIES.md#capabilities-and-modes).47- **"What hardware do I need to use this tool at all?"** —48 worked example: *"is my BlueField-2 DPA-capable?"*. Answered49 by the device-preconditions table in50 [`CAPABILITIES.md ## Capabilities and modes`](CAPABILITIES.md#capabilities-and-modes)51 (BlueField-3 yes, BlueField-2 no; ConnectX-7 minimum52 supported, ConnectX-8 recommended, and later generations53 supported per the public guide and the54 shipped README on the user's install).55- **"How do I size my run — burst, queue, completion threshold,56 number of operations, iterations — to get a defensible57 Kops/sec number?"** — worked example: *"I want the median58 iteration time and standard deviation, not a single noisy59 first-iteration spike"*. Answered by the eval-loop overlay60 in61 [`TASKS.md ## test`](TASKS.md#test) and the iteration-stats62 rule in63 [`CAPABILITIES.md ## Observability`](CAPABILITIES.md#observability).64- **"My tool reports zero ops / hangs / fails the self-test —65 what does that mean?"** — worked example: *"the tool runs but66 the self-test step fails"*. Answered by the layered error67 taxonomy in68 [`CAPABILITIES.md ## Error taxonomy`](CAPABILITIES.md#error-taxonomy)69 + the debug ladder in70 [`TASKS.md ## debug`](TASKS.md#debug).71- **"How do I quote a DPA-perf number alongside a host-side72 Flow-perf number for the same workload, in a way the next73 engineer can actually compare?"** — worked example: *"two74 Kops/sec numbers for what is supposedly the same workload"*.75 Answered by the four-tuple capture rule in76 [`CAPABILITIES.md ## Safety policy`](CAPABILITIES.md#safety-policy)77 + the per-tool-name rule (the host tool and the DPA tool are78 different surfaces; their numbers are not interchangeable79 without naming which tool produced which).8081## Audience8283This skill serves **external operators, performance engineers,84DOCA Flow application developers, and AI agents who need a85defensible measurement of the DPA-offloaded Flow update path** on86DPA-capable hardware. Concretely:8788- A platform operator deciding whether to move a path-selector89 workload onto the DPA versus keeping it on the host / DPU-CPU90 path, and wanting a number to compare.91- A performance engineer producing a *"DPA Kops/sec for update92 operation, queue-size X, burst-size Y, N workers"* baseline93 on a specific device + DOCA version so a downstream94 comparison is meaningful.95- A DOCA Flow application developer who has already used96 `doca-dpa` to land a DPA-offload of their Flow rule update97 path and wants to characterize what the device delivers.98- An AI agent answering *"what update rate should I expect from99 the DPA-offloaded Flow path on device Y?"* honestly — with a100 measured number, the command line that produced it, and the101 device + DOCA version + as-deployed environment that scopes102 it — instead of guessing from datasheet headlines.103104It is **not** for users debugging the tool's source code,105**not** a substitute for the live public DOCA Flow DPA Perf guide106on `docs.nvidia.com`, **not** the place to learn the `doca-flow`107or `doca-dpa` APIs (that audience belongs in108[`doca-flow`](../../libs/doca-flow/SKILL.md) and109`doca-dpa`), and **not** the right110tool for the host / DPU-CPU Flow path (route to111[`doca-flow-perf`](../doca-flow-perf/SKILL.md)).112113`doca_flow_dpa_perf` is shipped as a **single CLI binary** with114DPA-side device code linked in. The skill uses the same115`kind: tool` three-file shape as the rest of the bundle so116the agent's task-verb contract is uniform across the bundle.117118## Language scope119120This skill governs invocation, output interpretation, and121recommendation-of-routing for the `doca_flow_dpa_perf` CLI on122DPA-capable hardware. The tool itself has both a host-side123control (C-language ARGP + DOCA + DPDK code per the shipped124`flow_dpa_perf.c` / `flow_dpa_perf_core.c`) and a DPA-side device125component (DPA-side code on the shipped DPA device runtime).126External users do not link any of this; what they configure is127the JSON-config-or-CLI invocation surface. For the128`doca-dpa` programming model behind the DPA-side execution129engine, see130`doca-dpa`; for the `doca-flow`131API behind the pipeline the DPA path executes, see132[`doca-flow`](../../libs/doca-flow/SKILL.md).133134## When to load this skill135136Load this skill when the user is — or the agent needs to —137invoke `doca_flow_dpa_perf` on a real host with DOCA installed138and a DPA-capable device attached (or the public NGC DOCA139container with the equivalent device passthrough) to measure140update / disable rates on the DPA-offloaded Flow path.141Concretely:142143- Confirming DPA preconditions (DPA-capable device class,144 VNF Flow mode, recommended PF use, no SFs) before invoking145 the tool.146- Picking the active / passive device split appropriate to the147 user's hardware (two-port BlueField-3 active + passive; one-148 port ConnectX-9 active only).149- Picking the workload-shape axes (burst size, queue size,150 completion threshold, hash pipe algorithm, work policy,151 number of PSL tables, table size, number of workers).152- Picking the operation axis (update or disable-enable) per the153 shipped README's documented operations.154- Producing a defensible Kops/sec number with iteration stats155 (median, max, standard deviation) captured.156- Diagnosing zero-ops / hung / failed-self-test runs through157 the layered error taxonomy.158159Do **not** load this skill for general DOCA orientation, Flow160program API work, or installation. For those, use161[`doca-public-knowledge-map`](../../doca-public-knowledge-map/SKILL.md),162the matching `libs/<library>` skill, or163[`doca-setup`](../../doca-setup/SKILL.md). Do not load it for164the host / DPU-CPU Flow path — that audience belongs in165[`doca-flow-perf`](../doca-flow-perf/SKILL.md).166167## What this skill provides168169This is a **thin loader**. Substantive material lives in two170companion files:171172- `CAPABILITIES.md` — what `doca_flow_dpa_perf` measures173 (the DPA-Provider-on-DPA-device update / disable path174 specifically), the DPA-vs-host-path boundary, the175 device-preconditions table (ConnectX-7+ / BlueField-3+),176 the documented VNF-only Flow-mode rule, the PF-vs-VF-vs-SF177 rule (SFs not supported on DPA), the workload-shape axes178 (burst, queue, completion threshold, hash pipe algorithm,179 work policy, PSL tables, table size, workers), the180 operation axis (update vs disable-enable), the version181 overlay (this tool rides the `doca-flow` and `doca-dpa`182 versions it links against; the canonical rules live in183 [`doca-version`](../../doca-version/SKILL.md)), the layered184 error taxonomy185 (config-syntax / device-binding / dpa-precondition /186 workload-precondition / measurement-soundness / self-test /187 version / cross-cutting), the observability surface188 (iteration statistics, self-test path-selector verification,189 tcpdump-side traffic verification), and the safety posture190 (smoke-before-bulk, four-tuple capture, name the tool that191 produced the number).192- `TASKS.md` — step-by-step workflows for the in-scope task193 verbs: `install` (route to setup; the binary is shipped),194 `configure` (DPA-preconditions + active / passive device +195 workload-shape decision), `build` (route to install — the196 binary is shipped), `modify` (refuse — modify the invocation,197 not the binary), `run` (smoke before bulk), `test` (eval198 loop), `debug` (layered diagnosis), `use` (consume the199 captured number), plus a `Deferred task verbs` block routing200 out-of-scope questions and a `Command appendix`.201202The skill assumes a host where DOCA is already installed (or203the NGC DOCA container is running) on a DPA-capable device and204the operator has the permissions to bind the device and allocate205the DPA execution resources the tool needs.206207## What this skill deliberately does not ship208209This skill is **agent guidance**, not a samples or scripts210bundle. To keep the boundary clean, it deliberately does not211contain — and pull requests should not add:212213- **Verbatim default values for flag inventories beyond what214 the shipped README or installed `--help` documents.** Read215 defaults from the README first, then fall back to the216 installed binary's `--help`. If neither defines a needed217 default, stop and request the operator's explicit value218 instead of guessing. The219 flag surface is install-specific within the documented220 surface; the documented invocations + `--help` on the221 installed version are the authoritative answer. Inventing222 a flag is the most common hallucination failure.223- **Pre-baked example Kops/sec numbers or expected throughput224 numbers.** Output is device-, firmware-, DOCA-version-,225 workload-, and platform-specific; a pinned number for one226 platform misleads operators on a different platform /227 version. The shipped README's example numbers are228 *illustrative*, not a baseline the agent should quote as229 ground truth.230- **Wrappers, parsers, or scripts** in any language that231 consume the tool's stdout / CSV. The output format is232 documented; if a user wants to script against it, the233 right answer is "read the live guide, write the parser234 against your installed version".235- **A `samples/` or `reference/` subtree.** This is a thin236 loader for a documented CLI; substantive material lives on237 the public page, in `--help`, and in the shipped README on238 the user's install.239240## Loading order2412421. Read this `SKILL.md` first to confirm the user's question243 is in scope (the user actually wants to invoke244 `doca_flow_dpa_perf` on DPA-capable hardware, not measure245 the host / DPU-CPU Flow path).2462. **For what `doca_flow_dpa_perf` measures, the DPA-vs-host247 boundary, the device-preconditions table, the workload-248 shape axes, the version overlay, the error taxonomy, the249 observability surface, and the safety posture, see250 [CAPABILITIES.md](CAPABILITIES.md).**2513. **For the documented invocations and the smoke-before-bulk252 workflow — `install`, `configure`, `build`, `modify`,253 `run`, `test`, `debug`, `use` — see [TASKS.md](TASKS.md).**254255## Related skills256257- [`doca-flow`](../../libs/doca-flow/SKILL.md) — the **base258 library** whose pipeline this tool measures on the DPA259 path. The pipe / entry / rule surface this tool drives is260 created by `doca-flow` program code; the library's pipe261 attributes and capability surface are the upstream context.262- `doca-dpa` — the263 programming model behind the DPA execution engine the tool264 runs on. When the user's question goes from *"measure the265 DPA path"* to *"why is the DPA path doing this"*, that266 skill is the next stop.267- [`doca-flow-perf`](../doca-flow-perf/SKILL.md) — the268 host / DPU-CPU Flow performance tool. The cross-tool269 comparison rule lives in270 [`CAPABILITIES.md ## Capabilities and modes`](CAPABILITIES.md#capabilities-and-modes):271 name which tool produced which number.272- [`doca-flow-tune`](../doca-flow-tune/SKILL.md) — the Flow273 tuning tool. A DPA-perf number is the kind of baseline274 `doca-flow-tune` then optimizes on top of, via a Flow-program275 modify-a-sample loop.276- [`doca-public-knowledge-map`](../../doca-public-knowledge-map/SKILL.md) —277 routing to the public DOCA Flow DPA Perf page on278 `docs.nvidia.com` and the rest of the public DOCA279 documentation set.280- [`doca-version`](../../doca-version/SKILL.md) — canonical281 DOCA version-handling rules. The282 [`## Version compatibility`](CAPABILITIES.md#version-compatibility)283 section in this skill is a thin overlay on top.284- [`doca-setup`](../../doca-setup/SKILL.md) — env preparation,285 install verification, hugepages, NUMA awareness, and the286 *I have no install yet* path with the public NGC DOCA287 container.288- [`doca-debug`](../../doca-debug/SKILL.md) — the cross-cutting289 debug ladder. DPA-perf surfaces *its own* error taxonomy;290 when the cause turns out to be below DOCA, the taxonomy291 hands off to `doca-debug`.292- [`doca-hardware-safety`](../../doca-hardware-safety/SKILL.md) —293 the cross-cutting hardware-safety meta-policy this skill's294 `## Safety policy` overlays.