doca-eth

Configure and debug DOCA Ethernet RX/TX packet queues on BlueField DPUs and ConnectX NICs.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Building line-rate packet I/O with the DOCA Ethernet library requires choosing the right RX queue type, sizing queues against per-device capability limits, and diagnosing silent failures like an RX queue that receives no packets. This Skill guides agents through those decisions using the real doca_eth_rxq_* / doca_eth_txq_* API surface instead of hallucinated symbols.

Core Features & Use Cases

  • Queue bring-up workflows: Step-by-step configure, build, modify, run, test, and debug verbs for doca_eth_rxq and doca_eth_txq contexts on ports, representors, and SFs.
  • RX-type selection and capability discovery: Taxonomy of the four enum doca_eth_rxq_type values (_REGULAR, _CYCLIC, _MANAGED_MEMPOOL, _SHARED_MEMPOOL) with mandatory doca_eth_*_cap_* queries before assuming device support.
  • Error and safety diagnosis: Ethernet-specific overlay on the DOCA_ERROR_* taxonomy plus a precondition matrix (device access, port link state, traffic steering) for the silent-RX-queue failure mode.
  • Use Case: A developer's doca_eth_rxq starts cleanly but no packets arrive; the Skill walks the steering and promiscuous-mode preconditions and routes flow-rule programming to the doca-flow skill rather than misdiagnosing an Ethernet bug.

Quick Start

Ask your agent to help bring up a doca_eth_rxq and doca_eth_txq on a BlueField representor and choose the right RX queue type for your traffic shape.

Frequently Asked Questions about doca-eth

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

FAQPage Schema
How do I bring up a DOCA Ethernet RX and TX queue on a BlueField port?

Verify device access, port link state, and a steering plan first, then create doca_eth_rxq and doca_eth_txq as independent DOCA Core contexts. Set the RX type and burst size within capability limits before calling doca_ctx_start on each queue.

Which doca_eth_rxq_type should I use for my packet workload?

Choose based on data shape: REGULAR for per-packet task handling, CYCLIC for fixed-MTU line-rate ingress into a preallocated ring, MANAGED_MEMPOOL for library-managed buffers, and SHARED_MEMPOOL for multi-queue shared buffers. Always confirm support with doca_eth_rxq_cap_is_type_supported.

Why does my DOCA Ethernet RX queue receive no packets?

A started RX queue without steering is silent, not broken. Packets arrive only if a DOCA Flow rule steers traffic to the queue or the interface is in kernel promiscuous mode; also verify the port reports linkup via devlink or ip link.

What does DOCA_ERROR_AGAIN mean when submitting Ethernet send-tasks?

DOCA_ERROR_AGAIN on TX submission means the send queue is full, not a hardware failure. Drain completions by calling doca_pe_progress before resubmitting, or raise queue sizing within the device capability limit.

Does DOCA Ethernet support L3 checksum offload on my device?

Checksum offload is device-conditional and must be verified with doca_eth_txq_cap_is_l3_chksum_offload_supported against the active doca_devinfo. Requesting it on a device that does not advertise it fails with DOCA_ERROR_NOT_SUPPORTED at start.

When should I use doca-flow instead of the DOCA Ethernet skill?

Use doca-flow for programming steering rules that decide which packets reach which RX queue, including Flow pipes, RSS, and hairpin. DOCA Ethernet covers only the queue surface; it consumes steering output but does not program it.