Agent skill · NVIDIA
doca-devemu
Use this skill when the user is doing hands-on DOCA Device Emulation on a BlueField DPU — exposing a custom emulated PCIe device the host sees as a real peripheral while DPU-side code runs the backend, picking the sub-library (PCI Generic, virtio-net, virtio-fs), wiring the per-sub-library Core context plus doorbell / DMA primitives, querying `doca_devemu_*_cap_*`, or debugging DOCA_ERROR_* from a `doca_devemu_*` call. Trigger even when the user does not say "devemu" — typical implicit phrasings include "expose a custom PCIe device from BlueField to the host", "host should see a virtio NIC backed by my DPU code", "lspci does not show my emulated device", "device enumerated but no driver binds", "DPU sees nothing when host kicks the queue", or "virtio feature negotiation failed at bind". Refuse and route elsewhere for the packaged DOCA SNAP / Virtio-net Services, host-side virtio kernel drivers, backend body design, or standard BlueField NIC behavior — those belong to other skills.
What it needs
About 6k tokens when loaded.
What this skill does
DOCA Device Emulation Where to start: This skill assumes DOCA is already installed on the host AND on the BlueField, the user is doing hands-on emulated-PCIe-device work from the DPU side (writing the backend that the host's kernel driver will talk to over the emulated PCIe surface), and the user knows which CLASS of emulated device they want to build. Open TASKS.md if the user wants to do something (configure / build / modify / run / test / debug); open CAPABILITIES.md when the question is what can Device Emulation express on this DOCA version + this BlueField generation + this firmware. If the user has not installed DOCA yet, route to doca-setup first. Before anything else, the agent must route the user to the right sub-library — DOCA Device Emulation is an umbrella that covers PCI Generic (raw PCIe device emulation), virtio-net (emulated virtio network device), and virtio-fs (emulated virtio filesystem device); each sub-library has its own context, its own pkg-config module, and its own capability surface. The sub-library selection rule lives in CAPABILITIES.md ## Capabilities and modes. If the user wants a packaged solution rather than a library (e.g. "I want NVMe SNAP on my host without writing the backend myself", or "I want a managed virtio-net daemon"), route via doca-public-knowledge-map to the DOCA SNAP Service / DOCA Virtio-net Service guides — those services are built on top of this library and are a different artifact than what this skill covers. Audience This skill serves external developers building applications that consume the DOCA Device Emulation library — i.e., users whose DPU-side code calls docadevemupci, docadevemuvirtio, or docadevemuvfs (directly in C / C++, or through FFI / bindings from another language) to expose an emulated PCIe device to the host that the host's existing kernel drivers can drive as if it were a real PCIe peripheral. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills NVIDIA/doca-devemu