Agent skill · software engineering · nvidia

doca-erasure-coding

Hardware-offloaded erasure coding with DOCA Erasure Coding (Reed-Solomon, doca_ec) on a BlueField DPU, ConnectX NIC, or host: generating parity for data blocks, rebuilding lost blocks from the survivors, and refreshing parity after a change. Trigger on "one data block changed, how do I refresh parity without re-encoding", "a disk failed and 2 parity blocks are gone, can I rebuild", "RAID-6 resilience across 12 disks", "my doca_ec_task_create returns NOT_PERMITTED", or "is this N+K layout still recoverable", even without naming DOCA Erasure Coding. Covers bringing up a doca_ec context, the create / recover / update tasks, matrix type / N / K / block size, doca_ec_cap_* queries before sizing, doca_mmap src/dst permissions, and DOCA_ERROR_* from doca_ec_task_*. Refuse and route elsewhere for non-Reed-Solomon codes (fountain / LDPC / raptor), pure-replication designs, network FEC, or other DOCA accelerator libraries (SHA / Compress / AES-GCM / DMA).

Why this skill is useful

Adds specific commands and context for DOCA Erasure Coding that are not widely documented, enabling advanced programming tasks on BlueField DPUs and ConnectX NICs.

What it needs

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

What this skill does

DOCA Erasure Coding Examples "A disk failed; can I rebuild from parity?" — this is in scope if the layout is Reed-Solomon N+K. Query docaeccap before sizing recover. "One data block changed; refresh parity without re-encoding." — use the update task. Do not route this to replication or network FEC. Quick answer: capability check and sample choice Before writing code, query the device: docaeccaptaskcreateissupported, docaeccaptaskupdateissupported or docaeccaptaskrecoverissupported for the task you need, then docaeccapgetmaxblocksize and docaeccapgetmaxbuflistlen to size blocks. Start from the shipped sample for that task under /opt/mellanox/doca/samples/docaerasurecoding/ (copy it; never edit the installed one). Use the update task to refresh parity for a changed block instead of re-encoding everything. Instructions Follow Loading order below. Open the tasks companion for configure / recover / debug. Open the capabilities companion for create / recover / update and matrix policy. Do not open every companion file. Where to start: This skill assumes DOCA is already installed and the user is doing hands-on erasure-coding work on a BlueField / ConnectX / host with DOCA. Open the tasks companion if the user wants to do something (configure / build / modify / run / test / debug); open the capabilities companion when the question is what can DOCA Erasure Coding express on this version. If the user has not installed DOCA yet, route to doca-setup/SKILL.md first. If the user is asking "should I even use erasure coding here, or just replicate the data?", the path-selection rule in Capabilities and modes is the first stop — erasure coding is a storage-resilience primitive (RAID-6 / distributed file system parity / object-storage erasure-coded buckets), not a network primitive and not a replication substitute. How to use this skill. Read this file, then search the companion file for the ## <name> heading the question needs and read that whole section. …

How to use it

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

@skills nvidia/doca-erasure-coding

View the source on GitHub

Browse the @skills marketplace