Skip to content
Development
Skill

/doca-eth

Use this skill for hands-on DOCA Ethernet packet-queue work on a BlueField DPU or ConnectX NIC — bringing up a `doca_eth_rxq` or `doca_eth_txq` on a port / representor / SF, picking among the four `enum doca_eth_rxq_type` values (`_REGULAR` / `_CYCLIC` / `_MANAGED_MEMPOOL` /

From plugin
skills
3.8k200 skills

Claude Code

$ npx -y skills add NVIDIA/skills --skill doca-eth --agent claude-code

SKILL.md

doca-eth.SKILL.md
license: Apache-2.0
name: doca-eth
description: >
  Use this skill for hands-on DOCA Ethernet packet-queue work on a
  BlueField DPU or ConnectX NIC — bringing up a `doca_eth_rxq` or
  `doca_eth_txq` on a port / representor / SF, picking among the four
  `enum doca_eth_rxq_type` values (`_REGULAR` / `_CYCLIC` /
  `_MANAGED_MEMPOOL` / `_SHARED_MEMPOOL`), sizing burst or
  scatter-gather length against the `_cap_*` queries, submitting
  `doca_eth_txq_task_send` / `_lso_send` (carrying packet `doca_buf`s —
  no `doca_eth_frame` struct exists), or debugging DOCA_ERROR_* from an
  Ethernet call. `doca_eth_rxq` and `doca_eth_txq` are two Core
  contexts; one `doca_ctx_start()` does not cover both. Trigger on
  implicit phrasings: "my RX queue is up but no packets arrive",
  "send-task returns AGAIN at line rate", "which queue type for
  fixed-MTU ingress", "device open fails without sudo", or "is L3
  checksum offload available here". Refuse and route elsewhere for
  installing DOCA, flow-rule / steering programming, host↔DPU control
  messaging, or RDMA data movement.
metadata:
  author: NVIDIA <doca-feedback@nvidia.com>
  kind: library
  doca_version: "3.5"
  tags:
    - doca
    - ethernet
    - queues
compatibility: >
  Requires DOCA SDK installed at /opt/mellanox/doca on Linux
  (Ubuntu 22.04/24.04 or RHEL/SLES) with a BlueField DPU or
  ConnectX NIC attached. Reads the user's local install via
  `pkg-config doca-eth` and inspects
  /opt/mellanox/doca/{lib,include,samples,applications}.
  The validation steps require a live DOCA install.

DOCA Ethernet

Examples

  • **"My RX queue is up but no packets arrive."** — RX and TX are two

Core contexts; one `doca_ctx_start()` does not cover both.

  • **"Send-task returns AGAIN at line rate."** — size burst against

the `_cap_*` queries before changing queue type.

Instructions

Follow Loading order below. Open the tasks companion for configure / build / run. Open the capabilities companion for the RX-type taxonomy and send surface. Do not open every companion file.

**Where to start:** This skill assumes DOCA is already installed and the user is doing **hands-on packet-queue work** on a host or BlueField 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 a DOCA Ethernet queue express* on this version. If the user has not installed DOCA yet, route to `doca-setup/SKILL.md` first. **RX and TX are independent Core contexts.** A `doca_eth_rxq` and a `doca_eth_txq` each get their own `doca_ctx_create` / `_start` / `_stop` / `_destroy`; one `doca_ctx_start()` does **not** start both sides. Do not walk a single lifecycle for "the queue pair". If the user is asking *"how do I get packets to land on my RX queue at all"*, the answer lives in `doca-flow/SKILL.md` — DOCA Ethernet is the *queue* surface; DOCA Flow is the *steering* surface, and they are independent libraries.

Example questions this skill answers well

The CLASSES of DOCA Ethernet questions this skill is built to answer, each with one worked example. The agent should treat the *class* as the load-bearing piece — the worked example is a single instance.

  • **"How do I bring up an RX and TX queue on a representor or

physical port?"** — worked example: *"set up a `doca_eth_rxq` plus a `doca_eth_txq` on a single BlueField representor for first-run testing"*. Answered by two independent Core contexts (each with its own start) in

configure +

Capabilities and modes

RX / TX object table.

  • **"Which RX type fits my data shape — regular, cyclic, or

managed-recv?"** — worked example: *"line-rate ingress with fixed-size frames into a pre-allocated buffer ring"*. Answered by the RX-type taxonomy in

Capabilities and modes

  • the capability-query rule (`doca_eth_rxq_cap_is_type_supported`

against a `doca_devinfo`) in

configure.

  • **"How do I send a packet from user code through `doca_eth_txq`?"**

— worked example: *"allocate a packet `doca_buf`, attach the payload, submit one send-task, wait for the completion event"*. Answered by the TX submission shape in

Capabilities and modes

  • the property-set workflow in

modify.

  • **"My queue is up but no packets arrive — why?"** — worked

example: *"`doca_eth_rxq` started cleanly but the recv callback never fires"*. Answered by the steering-dependency rule in

Safety policy

  • the env-prep checklist in

configure step 1, which

routes the steering side to `doca-flow/SKILL.md` and the promiscuous-mode side to `doca-setup/SKILL.md`.

  • **"Is this Ethernet capability available on my device + my

installed DOCA?"** — worked example: *"does this device advertise L3 checksum offload"*. Answered by the capability-query rule (`doca_eth_txq_cap_is_l3_chksum_offload_supported` against a `doca_devinfo`) in

Capabilities and modes

  • the version-and-device overlay in

Version compatibility.

  • **"What does this `DOCA_ERROR_*` from an Ethernet call mean and

which layer caused it?"** — worked example: *"`DOCA_ERROR_AGAIN` on `doca_task_submit` for an `eth_txq` send-task at high rate"*. Answered by the Ethernet overlay on the cross-library taxonomy in

Error taxonomy

  • the layered ladder in

debug that escalates to

`doca-debug/SKILL.md`.

**Picking the root-cause layer when several could explain a symptom.** Walk the layers bottom-up (install → version → build → link → runtime → program → driver) with the read-only check each layer names in `TASKS.md` `## debug`. The lowest layer whose check fails is the root cause: fix it, change one variable at a time, and re-run the same check before moving up. For a silent RX queue, rule out the three runtime preconditions (device access, port up, traffic steered to the queue) before any program or driver cause.

Audience

This skill serves **external developers building application

Read more
@nvidia
Ships withskills

Official, NVIDIA-verified Agent Skills for Claude Code, Codex, and other coding agents.

3.8k200 skills
Get the whole plugin

Stars on GitHub

Momentum

stars in total
3.8k
Star history of NVIDIA/skills on GitHub, a chart by star-history.com

Other skills on skills.

nvidia-skill-finder

nvidia-skill-finder

Use for NVIDIA-related requests where an NVIDIA skill might help, even if the user did not ask for a skill. Trigger on NVIDIA…

@nvidia@nvidiaInstall Skill
accelerated-computing-cudf

accelerated-computing-…

Official NVIDIA-authored guidance for NVIDIA cuDF GPU DataFrames, pandas acceleration, dask-cuDF, ETL, joins, groupby,…

@nvidia@nvidiaInstall Skill
amc-run-rtsp-calibration

amc-run-rtsp-calibrati…

Calibrate a new dataset from live RTSP camera streams via the AutoMagicCalib REST API. Use when the user provides RTSP URLs or…

@nvidia@nvidiaInstall Skill
amc-run-sample-calibration

amc-run-sample-calibra…

Run end-to-end calibration on the shipped sample dataset (sdg_08_2_sample_data_010926.zip) against a running AMC microservice.…

@nvidia@nvidiaInstall Skill
amc-run-video-calibration

amc-run-video-calibrat…

Calibrates pre-recorded `cam_*.mp4` datasets through the AutoMagicCalib REST API. Use for user-supplied local MP4s; route live…

@nvidia@nvidiaInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills11d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc12d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react2d252k
@facebook@facebookInstall Skill

Questions about doca-eth.

Which coding agents can use doca-eth?
doca-eth installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.