| license | Apache-2.0 |
| name | doca-comch |
| description | Use this skill when the user is doing hands-on DOCA Comch work on a host + BlueField pair — bringing up host ↔ DPU PCIe control-plane messaging, picking server (DPU) vs client (host) roles, choosing slow-path send-task / recv-callback vs fast-path producer / consumer, querying max-msg-size or max-clients capabilities, registering connection callbacks, or debugging DOCA_ERROR_* returns from the Comch API. Trigger even when the user does not explicitly mention "DOCA Comch" or "Comm Channel" (renamed in DOCA 2.5) — typical implicit phrasings include "send a control message from host to BlueField over PCIe", "DPU can't see the host representor", "DOCA_ERROR_NOT_PERMITTED on server_create", "DOCA_ERROR_AGAIN on task_send submit", "connect callback never fires", or "stream bulk data from a host driver to a DPU agent". Refuse and route elsewhere for installing DOCA itself, BFB / firmware bring-up, non-Comch DOCA libraries, or deploying Comch apps at scale — those belong to other skills.
|
| metadata | {"kind":"library"} |
| compatibility | Requires DOCA SDK installed at /opt/mellanox/doca on Linux (Ubuntu 22.04/24.04 or RHEL/SLES) on a host + BlueField pair (the Comch channel runs over the RoCE/IB protocol, not the TCP/IP stack). Reads the user's local install via `pkg-config doca-comch` (legacy `doca-comm-channel` on installs <2.5) and inspects /opt/mellanox/doca/{lib,include,samples,applications}.
|
DOCA Comch
Where to start: This skill assumes DOCA is already installed and
the user is doing hands-on Comch work on a BlueField + host
pair with DOCA. 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 Comch express on this version. If the user has not
installed DOCA yet, route to
doca-setup first. If the user is
asking "is Comch even on this DOCA" because the docs they read
mention doca-comm-channel, route to
CAPABILITIES.md ## Version compatibility
for the 2.5 rename.
Example questions this skill answers well
The CLASSES of Comch 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 a Comch channel between host and DPU?" —
worked example: "server side on the DPU, client side on the
host, exchange a first control message". Answered by the
role-selection + lifecycle workflow in
TASKS.md ## configure +
CAPABILITIES.md ## Capabilities and modes
server-vs-client table.
- "How do I move bulk data over Comch with low CPU?" — worked
example: "stream a 64 KiB chunk every 100 µs from the host
driver to a DPU agent". Answered by the producer / consumer
fast-path described in
CAPABILITIES.md ## Capabilities and modes
- the channel-setup workflow in
TASKS.md ## configure
step 4, with the "slow-path vs fast-path" selection rule.
- "What is the maximum message size I can send?" — worked
example: "can I send a 4 MiB control message in one shot?".
Answered by the capability-query rule
(
doca_comch_cap_get_max_msg_size) in
CAPABILITIES.md ## Capabilities and modes
- "Why doesn't the DPU side see the representor?" — worked
example: .
Answered by the representor + permission overlay in