doca-pcc

Guides host-side loading of custom congestion control algorithms onto BlueField DPUs via DOCA PCC.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Deploying a custom Programmable Congestion Control algorithm onto a BlueField DPU involves a two-side-program model (host-side doca-pcc plus a dpacc-compiled DPA-side algorithm), triple-axis capability preconditions, and a confusing DOCA_ERROR_* surface; this Skill walks an agent through that entire workflow correctly.

Core Features & Use Cases

  • Host-side PCC lifecycle guidance: Create per-port doca_pcc contexts, load dpacc-compiled doca_pcc_app images, parameterize algorithms, and start/stop with correct teardown ordering.
  • Triple-axis capability discovery: Verify DOCA cap-queries, DPA-capable BlueField generation, and firmware custom-PCC slot enablement before any load call.
  • PCC-specific error taxonomy: Disambiguate DOCA_ERROR_NOT_PERMITTED (firmware slot vs device access), DOCA_ERROR_DRIVER (DOCA/DPACC version skew), and DOCA_ERROR_INVALID_VALUE (parameter shape mismatch).
  • Use Case: A developer asks their agent to load a custom rate-update algorithm onto a BlueField port carrying RoCE traffic; the Skill guides configure, build, run, test, and debug steps while routing out-of-scope questions (algorithm design, pcc_counters CLI, RDMA setup) to the right skills.

Quick Start

Ask your agent to load a custom congestion control algorithm onto the BlueField port carrying your RoCE traffic using the doca-pcc library.

Frequently Asked Questions about doca-pcc

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

FAQPage Schema
How do I load a custom congestion control algorithm onto a BlueField DPU?

Create a doca_pcc context against the doca_dev for the target port, load the dpacc-compiled doca_pcc_app image, set the algorithm's host-side parameters, and call doca_pcc_start. The Skill walks configure, build, run, test, and debug steps in order.

What is the difference between doca-pcc and the pcc_counters CLI?

doca-pcc is a host-side library for loading custom congestion control algorithms, while pcc_counters is a read-only diagnostic CLI for inspecting PCC counters at a port. They share a name prefix but are separate artifacts; the Skill routes counter questions to the DOCA tools documentation.

Why does doca_pcc return DOCA_ERROR_NOT_PERMITTED on algorithm load?

The most common cause is the BlueField firmware not having the custom-PCC slot enabled, which looks identical to a device-access permission problem at the API surface. The fix is a firmware-side enable plus a BlueField reset, not a host-OS permission change.

Does DOCA PCC work on any BlueField generation?

No. Custom PCC requires a BlueField generation that exposes a DPA processor to the host, firmware with the custom-PCC slot enabled, and a DOCA install whose doca_pcc_cap_* queries confirm support. Older BlueField generations without DPA hardware fail capability queries regardless of DOCA version.

Can this skill help me design a congestion control algorithm?

No. The doca-pcc library loads an algorithm the user supplies; it does not define one. Algorithm design is a domain and research question routed to the public DOCA PCC programming guide and the user's own congestion-control expertise.

Why does my loaded PCC algorithm show no effect on RoCE traffic?

The most common causes are no RDMA/RoCE traffic on the attached port, doca_pcc_start never being called, or the host not progressing the progress engine so reports never arrive. Verify traffic exists on the port and inspect port counters with the pcc_counters tool.