
Skill
doca-pcc-ztr-rttcc-algo
tune ZTR RTTCC congestion control algorithms
Description
Use this skill when the user is doing hands-on deployment, tuning, or evaluation of the DOCA-shipped Zero-Touch RoCE RTT-based Congestion Control (ZTR RTTCC) reference algorithm on a BlueField-3 DPA — wiring `doca_pcc_dev_ztr_rttcc_algo` into the shipped DOCA PCC sample, picking a variant (vanilla / PM / RX-rate / multipath / window-probeless) at DPACC build time, tuning host-set parameters, or diagnosing `DOCA_PCC_DEV_STATUS_FAIL` from the algorithm. Trigger even when the user does not say 'DOCA PCC' or 'ZTR RTTCC' — typical implicit phrasings: 'my RoCE-v2 flows aren't being throttled', 'PCC sample isn't dispatching to my algo', 'how do I pick the multipath PCC variant', 'set-params returns fail', 'algorithm loaded but counters are flat', or 'do I need a custom CC algorithm on BF3'. Refuse and route elsewhere for writing a custom PCC algorithm from scratch, read-only PCC counter inspection, the host-side `doca-pcc` lifecycle, or firmware-only pre-Programmable PCC — those belong to other skills.
SKILL.md
DOCA PCC ZTR RTTCC Algorithm
Where to start: This skill assumes DOCA is already
installed, the user's BlueField has a DPA processor that
the host can see through DOCA (a BlueField-3-generation
device per the README), the BlueField firmware has the
custom-PCC slot enabled, the DPACC compiler is installed at
a matched version per the DOCA Compatibility Policy, and the
user is doing hands-on deployment of the DOCA-shipped ZTR
RTTCC reference algorithm on a BlueField port that
already carries RoCE-v2 traffic — i.e. either deploying it
as the no-config-required baseline, tuning its documented
parameters, or evaluating it against a custom algorithm the
user intends to write. Open TASKS.md if the
user wants to do something (install / configure / build /
modify / run / test / debug / use); open
CAPABILITIES.md when the question is
what does the algorithm express, what are its variants and
parameters, what does it ship vs not ship. If the user has
not installed DOCA yet, route to
doca-setup first; if the user
has not stood up the host-side doca-pcc framework yet,
route to doca-pcc first (this
algorithm is a library consumed by the PCC framework, not
a standalone program); if the user only wants to inspect
PCC counters at runtime without changing the running
algorithm, route to
doca-pcc-counters;
if the user wants to write their own algorithm from
scratch, that is the doca-pcc library plus the public
PCC programming guide — this skill is for the shipped
reference algorithm specifically.
Example questions this skill answers well
The CLASSES of ZTR RTTCC 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.
- "Is the ZTR RTTCC reference algorithm the right
baseline for my deployment, or should I write a custom
algorithm?" — worked example: "I have a BlueField-3
carrying production RoCE-v2 traffic from a GPU cluster;
is the shipped algorithm a fine default or do I need
custom logic?". Answered by the decision rule in
CAPABILITIES.md ## Capabilities and modes("when to use the reference vs custom") + the env preconditions inTASKS.md ## install. - "How do I wire the shipped algorithm into the DOCA
PCC application that's already running on my host?" —
worked example: "
/opt/mellanox/doca/applications/pccis already building from sample sources; what do I change so the user algo callback dispatches todoca_pcc_dev_ztr_rttcc_algounder a chosen algo slot?". Answered by the integration sequence inCAPABILITIES.md ## Capabilities and modes- the in-place edits in
TASKS.md ## modify.
- the in-place edits in
- "Which variant of the algorithm am I getting — vanilla
RTT-CC, path-migration mode, RX-rate mode, multipath,
multipath with credits, window-probeless?" — worked
example: "the shipped library exposes one public
symbol
doca_pcc_dev_ztr_rttcc_algobut the device- side source ships several variants; how do I know which one I get and how do I pick another?". Answered by the variants table inCAPABILITIES.md ## Capabilities and modes. - "How do I confirm the algorithm is actually
modulating my RDMA / RoCE traffic, and not just
loading?" — worked example: "I followed the
integration steps; the application starts; how do I
know the algorithm is shaping flows under load?".
Answered by the observability surface in
CAPABILITIES.md ## Observability- the counter-watch loop in
TASKS.md ## testwhich routes todoca-pcc-counters.
- the counter-watch loop in
- "Which tunables does the algorithm expose, and how
do I change them from the host without rebuilding the
DPA-side image?" — worked example: "my workload is
more latency-sensitive than the default profile assumes
— which parameter knob do I adjust?". Answered by
the parameter surface in
CAPABILITIES.md ## Capabilities and modes- the
doca_pcc_dev_set_ztr_rttcc_paramsworkflow inTASKS.md ## use.
- the
- "What does this
DOCA_PCC_DEV_STATUS_FAILorDOCA_ERROR_*from adoca_pcc_dev_ztr_rttcc_*call mean and which layer caused it?" — worked example: "my init callback returnsDOCA_PCC_DEV_STATUS_FAILon first launch". Answered by the algorithm overlay on the host-side PCC taxonomy inCAPABILITIES.md ## Error taxonomy- the layered ladder in
TASKS.md ## debugthat escalates throughdoca-pccanddoca-debug.
- the layered ladder in
Audience
This skill serves external developers operating a
BlueField-3-class DPU who want to deploy NVIDIA's shipped
reference PCC algorithm on RoCE-v2 traffic, OR who are
evaluating it against a custom algorithm they intend to
write. The reference algorithm is zero-touch by design
— the no-config-required baseline — and the canonical use
case is dropping it onto a port and confirming it shapes
flows correctly under congestion. It is not for NVIDIA
developers contributing to the algorithm itself, nor for
users who want general PCC programming theory (route via
the public DOCA PCC programming guide), nor for users who
only want to inspect PCC counters (route to
doca-pcc-counters).
Language scope. The algorithm ships as a DPA-side
library (pkg-config module doca-pcc-ztr-rttcc-algo)
plus a public header doca_pcc_dev_ztr_rttcc_algo.h that
DPA-side translation units include. The shipped algorithm
binary is the static library
libdoca_pcc_ztr_rttcc_algo_dev.a per the README; the
device-side translation unit that consumes it is C and is
compiled by DPACC. The host-side that drives the PCC
context comes from doca-pcc;
this library does NOT add a host-side surface beyond the
host-side helpers (also shipped as
libdoca_pcc_ztr_rttcc_algo.{a,so} per the README) that
the doca-pcc framework links. Other-language host-side
wrappers around doca-pcc can drive this algorithm through
the same lifecycle described in doca-pcc; the DPA-side
integration always stays C-via-DPACC.
When to load this skill
Load this skill when the user is doing hands-on deployment,
tuning, or evaluation of the DOCA-shipped ZTR RTTCC
reference algorithm on a BlueField port carrying RoCE-v2
traffic, in any host language plus the DPA-side translation
unit built by dpacc. Concretely:
- Deciding whether the shipped algorithm is the right baseline for the user's RoCE-v2 workload, or whether the user needs a custom algorithm.
- Wiring the algorithm into the DOCA PCC sample application by patching the user-algo / user-init / user-set-algo-params callbacks per the steps the shipped README documents.
- Picking which of the algorithm's documented variants
(vanilla, path-migration, RX-rate, RX-rate + PM,
multipath, multipath + credits, window-probeless)
matches the user's intent — and surfacing that the
public surface only ships one symbol
(
doca_pcc_dev_ztr_rttcc_algo); the variants live in the DPA-side source the user compiles against. - Tuning the host-set parameters the algorithm exposes
(per the parameter list in
doca_pcc_dev_ztr_rttcc_algo.hand the shippeddoca_pcc_dev_set_ztr_rttcc_params). - Observing whether the running algorithm is actually
modulating RoCE-v2 flows under load (route to
doca-pcc-countersfor the read-only inspection side). - Deciding when to replace the shipped algorithm with a custom one because latency target, fairness policy, or convergence behavior requirements diverge from what the reference provides.
Do not load this skill for general DOCA orientation;
for the host-side doca-pcc lifecycle (route to
doca-pcc); for writing a custom
algorithm from scratch (route to
doca-pcc and the public PCC
programming guide via
doca-public-knowledge-map);
for read-only PCC counter inspection (route to
doca-pcc-counters);
or for the default firmware-shipped PCC algorithms that
predate Programmable Congestion Control entirely (no
host-side code, no DPACC compile — that is a firmware-only
path routed via
doca-public-knowledge-map).
What this skill provides
This is a thin loader. The body keeps only the orientation needed to pick the right next file. The substantive algorithm-specific material lives in two companion files:
CAPABILITIES.md— what the shipped ZTR RTTCC algorithm expresses on this version + this BlueField generation + this firmware: the public DPA-side API surface (doca_pcc_dev_ztr_rttcc_init,doca_pcc_dev_ztr_rttcc_algo,doca_pcc_dev_set_ztr_rttcc_params,doca_pcc_dev_ztr_rttcc_get_param_num,doca_pcc_dev_ztr_rttcc_get_counter_num,doca_pcc_dev_ztr_rttcc_get_num_of_histograms), the documented variants (vanilla / path-migration / RX-rate / multipath / window-probeless — pick one at DPA-side compile time), the relationship to the host-sidedoca-pccframework (this is an algorithm body the framework loads), the relationship to thedoca-pcc-counterstool (which is the canonical inspection surface), the algorithm's parameter and counter surface (RTT-based congestion signal, per-feature parameter blocks), the error taxonomy inDOCA_PCC_DEV_STATUS_OK/_FAIL, and the safety policy.TASKS.md— step-by-step workflows for the in-scope algorithm verbs:install,configure,build,modify,run,test,debug,use. Plus aDeferred task verbsblock that points out-of-scope questions at the right next skill.
The skill assumes DOCA + the DPACC compiler + the
doca-pcc host-side framework are
already installed; the BlueField is a generation that
exposes the DPA processor (the algorithm runs on the DPA);
the BlueField firmware has the custom-PCC slot enabled
(inherited from
doca-pcc CAPABILITIES.md ## Safety policy);
and the BlueField port the algorithm will modulate has
RoCE-v2 traffic actually flowing on it (the algorithm
modulates existing RDMA / RoCE traffic — without traffic,
there is nothing for it to do).
What this skill deliberately does not ship
This skill is agent guidance, not a samples or templates bundle. To keep the boundary clean, it deliberately does not contain — and pull requests should not add:
- The algorithm body itself, in any language. The
shipped algorithm is the static library
libdoca_pcc_ztr_rttcc_algo_dev.a(plus the host-side helpers) installed by the matching DOCA host package per the README. The agent's job is to route the user to the installed library and header (doca_pcc_dev_ztr_rttcc_algo.h) and to prescribe the in-place edits documented in the README on the shipped DOCA PCC application source, not to author the algorithm. - A standalone PCC application. The DOCA PCC
application that hosts this algorithm is the shipped
C sample under
/opt/mellanox/doca/applications/pcc/(per the README). The agent's job is to prescribe the minimum-diff modifications the README documents and to walk the user through the rebuild — not to author a parallel application. - A description of every internal variant's
behavior. The DPA-side source ships several
variants (vanilla, path-migration, RX-rate, multipath,
multipath + credits, window-probeless). The agent
names the variant set, says which one is reachable via
the public symbol on this install, and routes
algorithm-design questions to the public PCC
programming guide via
doca-public-knowledge-map. It does not redefine each variant's mathematical behavior. - A specific congestion-control algorithm tutorial. Congestion-control theory, RoCE-v2 fairness analysis, workload-specific tuning — out of scope. Route to the user's own domain expertise and to the public DOCA PCC guide.
Loading order
- Read this
SKILL.mdfirst to confirm the user's question is in scope (deployment / tuning / evaluation of the shipped reference algorithm, not algorithm design from scratch and not read-only counter inspection). - For the algorithm capability matrix, the public
DPA-side API surface, the variant set, the parameter
and counter surface, the host-side
doca-pccframework relationship, thedoca-pcc-countersinspection-side relationship, the error taxonomy, the observability surface, and the safety policy, see CAPABILITIES.md. - For step-by-step workflows — install, configure, build, modify, run, test, debug, use — see TASKS.md.
Both companion files cross-link to each other,
doca-pcc for the host-side PCC
lifecycle that loads this algorithm,
doca-pcc-counters
for the read-only counter-inspection side of validating that
the algorithm is modulating traffic,
doca-dpa for the DPA-side
two-side-program model and the DPACC compiler discipline,
doca-version for the
canonical DOCA version-handling rules (with the DPACC
overlay inherited from
doca-dpa and
doca-pcc), and
doca-public-knowledge-map
whenever the right answer is "look it up in the public DOCA
PCC programming guide or the on-disk install layout".
Related skills
doca-pcc— the host-side PCC control library. This algorithm is loaded INTO adoca_pcccontext thatdoca-pccstands up; the host-side lifecycle (doca_pcccreate / configure / start / stop / destroy, the algorithm imagedoca_pcc_app, the attach-to-port semantics) is owned bydoca-pcc. This skill prescribes only the DPA-side algorithm integration on top.doca-pcc-counters— the read-only diagnostic CLI for PCC counters at the port. The canonical "is the algorithm actually modulating traffic" check goes through the counter tool; this skill names what counters the algorithm emits (CNP / NACK / AI / HAI / decrement / RTT-band counters per the public header) and routes the inspection workflow to the tool skill.doca-dpa— the host-side DPA control library. The algorithm runs on the DPA, compiled by DPACC; the two-side-program rule and the DOCA-and-DPACC version-match overlay inherited from here apply.doca-public-knowledge-map— the routing table for every public DOCA documentation source (the DOCA PCC programming guide at https://docs.nvidia.com/doca/sdk/doca-pcc/index.html; the DOCA PCC application guide; the DOCA Compatibility Policy) and the on-disk layout of an installed DOCA package.doca-setup— env preparation, install verification, DPACC compiler install / verification, BlueField firmware configuration (including the custom-PCC slot enable), and the I have no install yet path with the public NGC DOCA container. This skill assumes its preconditions are satisfied AND that DPACC is installed at a version that matches DOCA AND that the firmware- level custom-PCC slot is enabled.doca-version— canonical DOCA version-handling rules. This skill's## Version compatibilitycross-links the four-way match rule plus the DOCA-and-DPACC overlay inherited fromdoca-pcc.doca-structured-tools-contract— the bundle's structured-tools precedence rule (detect / prefer / fall back / report). The Command appendix in TASKS.md honors this contract.doca-programming-guide— general DOCA programming patterns. This skill layers algorithm-specific overlays on top of the universal build, modify-a-shipped-sample, and Core lifecycle patterns.doca-debug— cross-cutting debug ladder. Algorithm-specific debug (the algorithm loaded but counters do not move; the algorithm fails to initialize; the algorithm modulates traffic too aggressively / too gently for the workload) overlays on top of that ladder.doca-hardware-safety— cross-cutting hardware-safety meta-policy. Because the algorithm modulates production RoCE-v2 flows on a BlueField port, the meta-policy's pre-flight inventory, replica-first, and rollback rules apply via this skill's## Safety policyoverlay.
More skills from the skills repository
View all 305 skillsaccelerated-computing-cudf
accelerate data processing with cuDF
Jul 14Data AnalysisData EngineeringNVIDIAPerformanceaiq-deploy
deploy and manage NVIDIA AI-Q infrastructure
Jul 14DeploymentInfrastructureNVIDIAaiq-research
conduct deep research with AI-Q
Jul 14AgentsNVIDIAResearchamc-run-sample-calibration
run AMC sample dataset calibration
Jul 17Data AnalysisNVIDIATestingamc-run-video-calibration
calibrate video datasets with AutoMagicCalib
Jul 17AutomationImagingNVIDIAVideoamc-setup-calibration-stack
deploy AutoMagicCalib microservice with Docker
Jul 17DeploymentDockerNVIDIAOperations
More from NVIDIA
View publishernemoclaw-user-guide
retrieve NemoClaw documentation and configuration
NemoClaw
Jul 20DocumentationMCPSearchmcore-build-and-dependency
manage Megatron-LM development environments
Megatron-LM
Jul 14ContainersDeploymentPythonmcore-bump-base-image
update NVIDIA PyTorch base images
Megatron-LM
Jul 14CI/CDDeploymentmcore-cicd
manage CI/CD pipelines for Megatron-LM
Megatron-LM
Jul 14CI/CDDeploymentGitHubmcore-create-issue
investigate CI failures and create issues
Megatron-LM
Jul 14DebuggingGitHubTriagemcore-linting-and-formatting
lint and format Megatron-LM code
Megatron-LM
Jul 14Best PracticesCode Analysis