doca-comch

Guides host-to-BlueField DPU control-plane messaging using the DOCA Comch C library.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Developers building applications that exchange control or data messages between a host process and a BlueField DPU over PCIe face tricky decisions: server vs client role assignment, slow-path vs fast-path selection, capability discovery, and cryptic DOCA_ERROR_* failures. This Skill provides structured guidance for the entire DOCA Comch workflow so agents give correct, version-aware answers instead of generic networking advice.

Core Features & Use Cases

  • Role and path selection: Establishes the asymmetric model (server on DPU, client on host) and chooses between slow-path send-task/recv-callback and fast-path producer/consumer based on throughput needs.
  • Capability discovery and error diagnosis: Queries doca_comch_cap_get_* for max message size and client limits, and maps DOCA_ERROR_* returns (BAD_STATE, AGAIN, NOT_PERMITTED, CONNECTION_RESET) to root causes.
  • Version compatibility handling: Covers the DOCA 2.5 rename from Comm Channel to Comch and detects partial installs via pkg-config checks.
  • Use Case: A developer sees DOCA_ERROR_NOT_PERMITTED from doca_comch_server_create on a freshly imaged BlueField; the Skill walks the representor visibility and permission matrix to fix the environment before touching code.

Quick Start

Ask your agent to help you bring up a Comch channel between the host and BlueField DPU, choosing server and client roles and sending a first control message.

Frequently Asked Questions about doca-comch

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

FAQPage Schema
How do I set up a DOCA Comch channel between host and BlueField DPU?

Set up a Comch channel by creating a doca_comch_server on the DPU side and a doca_comch_client on the host side, since Comch is asymmetric with no peer-to-peer mode. Verify representor visibility on the DPU and PCIe reachability on the host before any object creation, then register connection callbacks and call doca_ctx_start().

What is the difference between Comch slow-path and fast-path?

Slow-path uses message-oriented send-task and recv-callback APIs suited for control-plane and low-rate messages, while fast-path uses separate producer and consumer context objects for batched asynchronous bulk transfers. Both can coexist on one channel, but each has its own lifecycle.

Why does doca_comch_server_create return DOCA_ERROR_NOT_PERMITTED?

DOCA_ERROR_NOT_PERMITTED from server_create means the host representor is not visible to the DPU process or the user lacks permission. Check /sys/class/net/ on the DPU and confirm group membership; this is an environment issue, not a code bug.

Does DOCA Comch support the producer and consumer fast-path on all versions?

No, the producer and consumer fast-path is newer than the slow-path and not present on every device or release. Query doca_comch_consumer_cap_is_supported and doca_comch_producer_cap_is_supported against the active doca_devinfo before assuming availability.

Why does doca_task_submit return DOCA_ERROR_AGAIN on Comch sends?

DOCA_ERROR_AGAIN means the send queue is full, which is backpressure rather than a hardware error. Drain completions by calling doca_pe_progress() before resubmitting; if it recurs while draining, the producer is outpacing the consumer.

When should I not use the doca-comch skill?

Do not use it for installing DOCA itself, BFB or firmware bring-up, non-Comch DOCA libraries, or deploying Comch applications at scale. Those tasks route to doca-setup, doca-hardware-safety, or other dedicated skills.