doca-dpa

Guides host-side DOCA DPA context setup, kernel launches, and completion handling on BlueField.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Developers writing host-side programs against NVIDIA DOCA DPA on BlueField DPUs face a two-side-program model, version-sensitive DOCA/DPACC coupling, and confusing DOCA_ERROR_* failures; this Skill gives an AI agent the correct workflows and routing rules to configure, build, run, test, and debug that host-side DPA code.

Core Features & Use Cases

  • Host-side DPA lifecycle guidance: Walks through creating the doca_dpa context, loading a DPACC-compiled doca_dpa_app image, creating doca_dpa_thread execution contexts, launching kernels via doca_dpa_kernel_launch_update_*, and draining doca_dpa_completion.
  • Capability and version discovery: Enforces dual-axis capability checks (doca_dpa_cap_* queries plus BlueField generation) and DOCA/DPACC version matching per the DOCA Compatibility Policy.
  • Error taxonomy and debug ladder: Maps DOCA_ERROR_NOT_SUPPORTED, _DRIVER, _AGAIN, _INVALID_VALUE, and _BAD_STATE to DPA-specific root causes, including DPA-Comms and DPA-Verbs device-side overlays.
  • Use Case: A developer asks why their DPA kernel launch returns DOCA_ERROR_DRIVER; the agent checks pkg-config doca-dpa and dpacc versions, identifies a DOCA/DPACC skew, and prescribes rebuilding both sides.

Quick Start

Ask your agent to help you load a DPACC-compiled DPA application image and launch a DPA kernel from your host program on a BlueField.

Frequently Asked Questions about doca-dpa

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

FAQPage Schema
How do I launch a DPA kernel from my host program with DOCA?

Create a doca_dpa context against a DPA-capable BlueField doca_dev, load the DPACC-compiled doca_dpa_app image, create a doca_dpa_thread, then call the doca_dpa_kernel_launch_update_* family. Attach a doca_dpa_completion first, since launches are asynchronous from the host's perspective.

How do I check if my BlueField supports DPA features?

Run the doca_dpa_cap_* query family against the active doca_devinfo for the BlueField, and confirm the hardware generation actually exposes a DPA processor. Also verify pkg-config --modversion doca-dpa agrees with the installed dpacc version per the DOCA Compatibility Policy.

Why does my DPA kernel launch return DOCA_ERROR_DRIVER?

DOCA_ERROR_DRIVER on launch most often indicates a DOCA and DPACC version mismatch, or a DPA-side image built against a different DOCA install than the host runtime. Capture both versions, cross-check the Compatibility Policy, and rebuild both sides.

What is the difference between DPA Comms and DPA Verbs?

DPA Comms (libdoca_dpa_dev_comm.a) handles inter-DPA-thread messaging and signaling inside the kernel, while DPA Verbs (libdoca_dpa_dev_verbs.a) posts RDMA work requests from inside the kernel on host-configured QPs. Both are DPA-side archives linked by dpacc, not host-side libraries.

When should I not use the doca-dpa host-side skill?

Do not use it for writing DPA-side kernel code itself, DPACC compiler internals, host-to-DPU messaging (doca-comch), host-side RDMA (doca-rdma), or GPU-initiated networking (doca-gpunetio). Those belong to other skills or the public DOCA documentation.