DOCA SPCX Congestion-Control Tool
Where to start: This is a tool skill for invoking
doca_spcx_cc — the documented host-side CLI that exercises
an SPCX-class Programmable Congestion Control algorithm on a
live RDMA / RoCE fabric driven by a BlueField with a DPA
processor. Open TASKS.md and start at
## configure for the
SPCX-vs-PCC-vs-factory-firmware decision tree (load-bearing
gate before any code), the role decision (RP / NP), the
DPA-side algorithm authoring vs consumption split, and the
live-link / contention precondition. Open
CAPABILITIES.md when the question is
what does SPCX let me express that doca-pcc does not,
what is the SPCX-vs-PCC tradeoff, what runtime metrics
does the tool surface, or what is the safety posture for
loading a custom CC algorithm on a production fabric. If
DOCA is not installed yet, route to
doca-setup first.
This skill is the next-gen programmable-CC surface.
doca-pcc is the established
PCC story; SPCX is the documented extension that authors
SPCX-class algorithms on the same DPA hardware substrate.
doca-pcc-ztr-rttcc-algo
is one shipped reference algorithm (zero-touch RTT-based
CC) that can be loaded through either the PCC or SPCX path
depending on the install and the user's algorithm choice;
the agent surfaces this decision tree explicitly per
CAPABILITIES.md ## Capabilities and modes.
Example questions this skill answers well
The CLASSES of doca_spcx_cc questions this skill is built
to answer, each with one worked example. The class is the
load-bearing piece; the worked example is one instance.
- "Should I use SPCX or
doca-pcc for my custom CC
algorithm?" — worked example: "I want to write a new
RTT-based congestion-control algorithm for my RoCE
fabric — which surface do I target?". Answered by the
SPCX-vs-PCC-vs-factory-firmware decision tree in
CAPABILITIES.md ## Capabilities and modes
- the
"is SPCX the right surface on this install?" gate in
TASKS.md ## configure step 1.
- "How do I evaluate my authored SPCX algorithm on a
real RDMA link before letting it touch production?" —
worked example: "I have a DPACC-compiled SPCX algorithm
and a non-prod BlueField pair; how do I run a
contention-positive evaluation?". Answered by the
authoring vs consumption split + the live-link
precondition in
CAPABILITIES.md ## Capabilities and modes
- the replica-first evaluation flow in
TASKS.md ## test.
- "My SPCX algorithm appears to load cleanly but the
link's throughput / latency curve is unchanged — what's
going on?" — worked example: "the host-side
doca_pcc --status reports Active and a stable session, but my
RoCE flows look like the factory algorithm is still in
charge". Answered by the live-link / contention rule
in
CAPABILITIES.md ## Capabilities and modes
- the
"algorithm has no signal under no contention"
guidance in
TASKS.md ## test +
TASKS.md ## debug (route through
the layered error taxonomy before blaming the
algorithm).
- "My SPCX algorithm passed replica testing — what's
the gate before I roll it forward to production?" —
worked example: "my CC algorithm works on the two
BlueField pairs in the lab; can I push it to the
fleet?". Answered by the safety overlay in
CAPABILITIES.md ## Safety policy
(heavily cross-linked to
doca-hardware-safety CAPABILITIES.md ## Safety policy):
blast-radius bounded, observability gate proven, OOB
reachable, factory-PCC rollback rehearsed, escalation
path documented before any production cutover.
- "Is
doca_spcx_cc on my install, and is it paired
with the matching doca-pcc library and DPACC compiler
version?" — worked example: "is the SPCX surface
available on my DOCA install?". Answered by the
version-overlay in
CAPABILITIES.md ## Version compatibility,
which redirects to the canonical
doca-version chain
and adds the tool ↔ doca-pcc library ↔ DPACC
compiler ↔ firmware custom-PCC slot match rule.
- "My SPCX session errored — is it the tool, the
algorithm, the device, or the firmware?" — worked
example: "
doca_spcx_cc exits with
DOCA_PCC_PS_ERROR on start". Answered by the
layered error taxonomy in
CAPABILITIES.md ## Error taxonomy
- the layered walk in
TASKS.md ## debug.
Audience
This skill serves external developers, platform
operators, and AI agents authoring, loading, and
evaluating an SPCX-class Programmable Congestion Control
algorithm on a BlueField with a DPA processor, against a
live RDMA / RoCE fabric. Concretely:
- A CC researcher / developer who has authored an
SPCX-class DPA-side algorithm (or who is consuming a
documented shipped reference such as the zero-touch
RTT-based algorithm via
doca-pcc-ztr-rttcc-algo
on the SPCX path when the install + algorithm support
it) and needs the operator-side harness to load,
parameterize, start, observe, and stop the algorithm.
- A platform operator running a programmable-CC pilot
on a non-prod RDMA fabric to characterise the
algorithm's behaviour under controlled contention.
- An AI agent producing a "is this SPCX algorithm safe
to roll forward" answer honestly — with evidence
from a contention-positive evaluation, a documented
rollback to the factory PCC, and an explicit blast-
radius bound — instead of a guess from datasheet
prose.
It is not for users debugging the doca_spcx_cc
binary itself, not a substitute for the live public
DOCA SPCX / DOCA PCC programming guides, not the
right place for the DPA-side algorithm authoring detail
(that path goes through the public DOCA SPCX programming
guide and the
doca-pcc +
doca-dpa skills), and
not the right place for default factory PCC
configuration (no host-side library or SPCX tool needed;
route via
doca-public-knowledge-map).
The tool is shipped as a CLI binary under
/opt/mellanox/doca/tools/, not a library you link
against. The skill uses the same kind: tool
three-file shape as the rest of the bundle so the
agent's task-verb contract is uniform across libraries,
services, and tools.
Language scope
doca_spcx_cc is a C host-side CLI that links the
host-side doca-pcc
library and loads a DPA-side SPCX algorithm image built
by the DPACC compiler. The algorithm body is a separate
DPA-side translation unit written in the language DPACC
accepts. The skill keeps workflow guidance
language-neutral and routes per-language questions to
the public DOCA SPCX / DOCA PCC / DPACC guides via
doca-public-knowledge-map.
When to load this skill
Load this skill when the user is — or the agent needs to
— invoke doca_spcx_cc on a real host with DOCA
installed, paired with a BlueField that has its DPA
processor exposed AND the firmware custom-PCC slot
enabled, against a port carrying RDMA / RoCE traffic with
actual contention. Concretely:
- Loading an authored SPCX algorithm (or a documented
shipped reference) onto the BlueField via the SPCX
surface, parameterizing it, starting it, and observing
its effect on the live link.
- Evaluating an SPCX algorithm on a non-prod replica
before any production rollout — capturing the
contention-positive run as evidence.
- Comparing SPCX vs
doca-pcc paths for the same
algorithm class on the same install (where both paths
are available) and deciding which to commit to.
- Producing a "safe to roll forward" recommendation
with the documented evidence + rollback plan, or
refusing the recommendation when the evidence /
rollback is missing per
CAPABILITIES.md ## Safety policy.
- Diagnosing a
DOCA_PCC_PS_ERROR or a silent-no-effect
symptom against the layered error taxonomy.
Do not load this skill for general DOCA orientation,
DPA-side algorithm authoring detail, raw cycle profiling
of the DPA, the factory PCC algorithm shipped in the
firmware, or DOCA install. For those, route to
doca-public-knowledge-map,
doca-pcc,
doca-dpa, or
doca-setup.
What this skill provides
This is a thin loader. Substantive material lives
in two companion files:
CAPABILITIES.md — what SPCX expresses that PCC does
not (and where the surfaces overlap), the
SPCX-vs-PCC-vs-factory-firmware decision tree, the
authoring vs consumption split, the role decision
(RP / NP), the documented probe-packet format axis,
the live-link / contention precondition rule (the
load-bearing safety invariant — "a CC algorithm has
no signal under no contention"), the runtime
observability surface (per-port / per-flow trace
formats + the host-side status surface), the
triple-axis precondition rule
(doca-pcc: DPA-capable
BlueField + firmware custom-PCC slot enabled +
doca_pcc_cap_* agreement) extended with SPCX-specific
availability, the version overlay (tool ↔ library ↔
DPACC ↔ firmware), the layered error taxonomy
(install / device-binding / fw-slot / DPA-image /
algorithm-precondition / live-link-precondition /
runtime / version / cross-cutting), the observability
surface, and the heavily-overlaid safety posture (a
wrong CC algorithm on production can melt the
fabric).
TASKS.md — step-by-step workflows for the in-scope
task verbs: install (host-side DOCA install + DPA
prerequisites + firmware custom-PCC slot), configure
(SPCX-vs-PCC decision + role + algorithm + parameters
- probe-packet format),
build (route to install —
the host-side tool is shipped; the DPA-side algorithm
is user-built by DPACC), modify (refuse — do not
patch the binary; modify the invocation, algorithm,
and parameters), run (the
prepare → smoke → contention-positive evaluation
flow), test (iterative loop on the replica before
production), debug (walk the error taxonomy),
use (the "safe to roll forward" decision with
evidence + rollback + escalation), plus a Deferred task verbs block.
The skill assumes a host where DOCA is already
installed, a BlueField with a DPA processor and the
firmware-level custom-PCC slot enabled is present and
visible, the DPACC compiler is installed at a version
matched to the host-side DOCA, the user already knows
how (at sketch level) to write the DPA-side SPCX
algorithm (or has a shipped reference algorithm to
consume), and a non-prod RDMA / RoCE fabric with
controllable contention is available for evaluation.
What this skill deliberately does not ship
This skill is agent guidance, not a samples or
scripts bundle. To keep the boundary clean, it
deliberately does not contain — and pull requests
should not add:
- A specific congestion-control algorithm. SPCX
loads an algorithm the user supplies; the skill
refuses to invent algorithm bodies and routes any
"what algorithm should I write" question to the
public DOCA SPCX / DOCA PCC programming guides and
to the user's own domain expertise.
- Pre-baked example output (throughput / latency
curves, per-flow counter snapshots). Output is
device-, firmware-, fabric-topology-, and
workload-specific; pinning one would mislead
operators elsewhere.
- Specific flag strings, subcommand names,
probe-packet format tokens, or metric names beyond
what the public DOCA SPCX page and
--help
document. The SPCX surface is the newer of the
programmable-CC surfaces and the documented flag
set evolves; the installed --help is the
authoritative inventory.
- Wrappers, parsers, or scripts in any language
that consume the tool's output. The output format
is documented; users who want to script against it
should read the live guide and write the parser
against their installed version.
- A specific tuning recommendation derived from a
single observation. CC tuning on a live fabric
is high-stakes; the skill prescribes how to
capture evidence and compare against the factory
PCC baseline and refuses to translate a single
observation into a parameter-change recommendation
without the user's own domain analysis.
- A
samples/ or reference/ subtree. This is
a thin loader for a shipped CLI; substantive
material lives on the public page, in --help,
and in
doca-pcc +
doca-dpa.
Loading order
- Read this
SKILL.md first to confirm the user's
question is in scope (SPCX-side custom CC work,
not factory firmware PCC, not raw DPA cycle
profiling, and not algorithm authoring detail).
- For the SPCX-vs-PCC decision tree, the authoring
vs consumption split, the live-link precondition,
the version overlay, the error taxonomy, the
observability surface, and the safety posture,
see CAPABILITIES.md.
- For the documented invocations and the
prepare → smoke → contention-positive evaluation
workflow —
install, configure, build,
modify, run, test, debug, use — see
TASKS.md.
Related skills
doca-pcc — the
established host-side library for Programmable
Congestion Control. The SPCX tool builds on and
links this library; the SPCX-vs-PCC decision tree
in
CAPABILITIES.md ## Capabilities and modes
is the load-bearing routing rule. Conflating the
two is the most common programmable-CC first-touch
error.
doca-pcc-ztr-rttcc-algo
— the shipped reference zero-touch RTT-based CC
algorithm. When the user wants to deploy a
documented reference algorithm via the SPCX path
(rather than author one), this is the
algorithm-side skill paired with this tool's
operator-side workflow.
doca-dpa — the
host-side DPA control library the SPCX algorithm's
DPA-side body builds on. For DPA-level questions
(kernel-launch model, DPACC build flags, DPA-side
comms / verbs), this is the skill the agent loads
alongside.
doca-rdma — the
library whose RDMA / RoCE flows on the attached
BlueField port the SPCX algorithm is controlling.
Without RDMA traffic in flight and contention on
the fabric, the algorithm has no signal — surface
this precondition with the user before any
evaluation.
doca-pcc-counters —
the sibling tool for read-only PCC counter
inspection. SPCX exposes its own runtime
observability surface; the PCC counter tool is the
cheaper "is anything happening on this port"
first step before / during an SPCX evaluation.
doca-hardware-safety
— the bundle-wide hardware-safety meta-policy
(pre-flight inventory, OOB requirement,
replica-first, observability-before-workload,
rollback discipline, escalation). The ## Safety policy overlay in this skill is heavily layered
on the meta-policy; deploying a wrong CC algorithm
on a production fabric is a meta-policy STOP
case.
doca-public-knowledge-map
— routing to the public DOCA SPCX programming
guide, the public DOCA PCC programming guide, the
public DOCA DPA / DPACC guides, and the rest of
the public DOCA documentation set.
doca-version —
canonical DOCA version-handling rules. The
## Version compatibility section in
CAPABILITIES.md is a concise
overlay that redirects here for the body and adds
the tool ↔ doca-pcc library ↔ DPACC ↔ firmware
custom-PCC slot matching rule.
doca-setup — env
preparation, install verification, DPACC compiler
install / verification, BlueField firmware
configuration (custom-PCC slot enablement is a
firmware-level setting), and the I have no
install yet path with the public NGC DOCA
container.
doca-debug — the
cross-cutting debug ladder. SPCX-specific debug
layers on top of that ladder; cross-link the
captured runtime evidence + counter snapshots
into a doca-debug session when the cause is
below DOCA.
doca-structured-tools-contract
— the bundle's detect → prefer → fall back →
report contract for structured helper tools. The
command appendix in TASKS.md
honors this contract.
doca-programming-guide
— general DOCA programming patterns shared by
every library / tool surface, including the
cross-library DOCA_ERROR_* taxonomy this
tool's host-side error layer overlays on top of.
The default factory PCC algorithms shipped inside
ConnectX firmware are not in scope for this skill —
those work without doca_spcx_cc and are configured
through firmware-level knobs, not through any host-side
library or tool API. Route via
doca-public-knowledge-map.
Conflating the factory PCC story with SPCX is the
single most common programmable-CC first-touch error.
1---2name: doca-spcx-cc3description: Use this skill when the user is invoking `doca_spcx_cc` (the host-side CLI under /opt/mellanox/doca/tools/) to load, parameterize, start, observe, or stop a Programmable Congestion Control (SPCX) algorithm on a BlueField with a DPA processor against a live RDMA / RoCE fabric, or picking SPCX vs the established `doca-pcc` surface. Trigger even when the user does not say "DOCA SPCX" or "doca_spcx_cc" — typical implicit phrasings include "I want to write a custom RTT-based CC algorithm for my RoCE fabric", "my SPCX session loaded but throughput / latency didn't change", "doca_pcc status shows Active but factory CC seems to still be in charge", "DOCA_PCC_PS_ERROR on start", "is the programmable-CC surface available on my install", or "DPA-side algorithm image won't load". Refuse and route elsewhere for DPA-side algorithm authoring detail, factory PCC firmware configuration, read-only PCC counter inspection, raw DPA cycle profiling, RDMA library programming, or general DOCA install — those belong to other skills.4license: Apache-2.05---67# DOCA SPCX Congestion-Control Tool89**Where to start:** This is a tool skill for invoking10`doca_spcx_cc` — the documented host-side CLI that exercises11an SPCX-class Programmable Congestion Control algorithm on a12live RDMA / RoCE fabric driven by a BlueField with a DPA13processor. Open [`TASKS.md`](TASKS.md) and start at14[`## configure`](TASKS.md#configure) for the15SPCX-vs-PCC-vs-factory-firmware decision tree (load-bearing16gate before any code), the role decision (RP / NP), the17DPA-side algorithm authoring vs consumption split, and the18live-link / contention precondition. Open19[`CAPABILITIES.md`](CAPABILITIES.md) when the question is20*what does SPCX let me express that `doca-pcc` does not*,21*what is the SPCX-vs-PCC tradeoff*, *what runtime metrics22does the tool surface*, or *what is the safety posture for23loading a custom CC algorithm on a production fabric*. If24DOCA is not installed yet, route to25[`doca-setup`](../../doca-setup/SKILL.md) first.2627This skill is the **next-gen programmable-CC surface**.28[`doca-pcc`](../../libs/doca-pcc/SKILL.md) is the established29PCC story; SPCX is the documented extension that authors30SPCX-class algorithms on the same DPA hardware substrate.31[`doca-pcc-ztr-rttcc-algo`](../../libs/doca-pcc-ztr-rttcc-algo/SKILL.md)32is one shipped reference algorithm (zero-touch RTT-based33CC) that can be loaded through either the PCC or SPCX path34depending on the install and the user's algorithm choice;35the agent surfaces this decision tree explicitly per36[`CAPABILITIES.md ## Capabilities and modes`](CAPABILITIES.md#capabilities-and-modes).3738## Example questions this skill answers well3940The CLASSES of `doca_spcx_cc` questions this skill is built41to answer, each with one worked example. The class is the42load-bearing piece; the worked example is one instance.4344- **"Should I use SPCX or `doca-pcc` for my custom CC45 algorithm?"** — worked example: *"I want to write a new46 RTT-based congestion-control algorithm for my RoCE47 fabric — which surface do I target?"*. Answered by the48 SPCX-vs-PCC-vs-factory-firmware decision tree in49 [`CAPABILITIES.md ## Capabilities and modes`](CAPABILITIES.md#capabilities-and-modes)50 + the51 *"is SPCX the right surface on this install?"* gate in52 [`TASKS.md ## configure`](TASKS.md#configure) step 1.53- **"How do I evaluate my authored SPCX algorithm on a54 real RDMA link before letting it touch production?"** —55 worked example: *"I have a DPACC-compiled SPCX algorithm56 and a non-prod BlueField pair; how do I run a57 contention-positive evaluation?"*. Answered by the58 authoring vs consumption split + the live-link59 precondition in60 [`CAPABILITIES.md ## Capabilities and modes`](CAPABILITIES.md#capabilities-and-modes)61 + the replica-first evaluation flow in62 [`TASKS.md ## test`](TASKS.md#test).63- **"My SPCX algorithm appears to load cleanly but the64 link's throughput / latency curve is unchanged — what's65 going on?"** — worked example: *"the host-side `doca_pcc66 --status` reports `Active` and a stable session, but my67 RoCE flows look like the factory algorithm is still in68 charge"*. Answered by the live-link / contention rule69 in70 [`CAPABILITIES.md ## Capabilities and modes`](CAPABILITIES.md#capabilities-and-modes)71 + the72 *"algorithm has no signal under no contention"*73 guidance in74 [`TASKS.md ## test`](TASKS.md#test) +75 [`TASKS.md ## debug`](TASKS.md#debug) (route through76 the layered error taxonomy before blaming the77 algorithm).78- **"My SPCX algorithm passed replica testing — what's79 the gate before I roll it forward to production?"** —80 worked example: *"my CC algorithm works on the two81 BlueField pairs in the lab; can I push it to the82 fleet?"*. Answered by the safety overlay in83 [`CAPABILITIES.md ## Safety policy`](CAPABILITIES.md#safety-policy)84 (heavily cross-linked to85 [`doca-hardware-safety CAPABILITIES.md ## Safety policy`](../../doca-hardware-safety/CAPABILITIES.md#safety-policy)):86 blast-radius bounded, observability gate proven, OOB87 reachable, factory-PCC rollback rehearsed, escalation88 path documented before any production cutover.89- **"Is `doca_spcx_cc` on my install, and is it paired90 with the matching `doca-pcc` library and DPACC compiler91 version?"** — worked example: *"is the SPCX surface92 available on my DOCA install?"*. Answered by the93 version-overlay in94 [`CAPABILITIES.md ## Version compatibility`](CAPABILITIES.md#version-compatibility),95 which redirects to the canonical96 [`doca-version`](../../doca-version/SKILL.md) chain97 and adds the *tool ↔ `doca-pcc` library ↔ DPACC98 compiler ↔ firmware custom-PCC slot* match rule.99- **"My SPCX session errored — is it the tool, the100 algorithm, the device, or the firmware?"** — worked101 example: *"`doca_spcx_cc` exits with102 `DOCA_PCC_PS_ERROR` on start"*. Answered by the103 layered error taxonomy in104 [`CAPABILITIES.md ## Error taxonomy`](CAPABILITIES.md#error-taxonomy)105 + the layered walk in106 [`TASKS.md ## debug`](TASKS.md#debug).107108## Audience109110This skill serves **external developers, platform111operators, and AI agents authoring, loading, and112evaluating an SPCX-class Programmable Congestion Control113algorithm on a BlueField with a DPA processor, against a114live RDMA / RoCE fabric**. Concretely:115116- A CC researcher / developer who has authored an117 SPCX-class DPA-side algorithm (or who is consuming a118 documented shipped reference such as the zero-touch119 RTT-based algorithm via120 [`doca-pcc-ztr-rttcc-algo`](../../libs/doca-pcc-ztr-rttcc-algo/SKILL.md)121 on the SPCX path when the install + algorithm support122 it) and needs the operator-side harness to load,123 parameterize, start, observe, and stop the algorithm.124- A platform operator running a programmable-CC pilot125 on a non-prod RDMA fabric to characterise the126 algorithm's behaviour under controlled contention.127- An AI agent producing a *"is this SPCX algorithm safe128 to roll forward"* answer honestly — with evidence129 from a contention-positive evaluation, a documented130 rollback to the factory PCC, and an explicit blast-131 radius bound — instead of a guess from datasheet132 prose.133134It is **not** for users debugging the `doca_spcx_cc`135binary itself, **not** a substitute for the live public136DOCA SPCX / DOCA PCC programming guides, **not** the137right place for the DPA-side algorithm authoring detail138(that path goes through the public DOCA SPCX programming139guide and the140[`doca-pcc`](../../libs/doca-pcc/SKILL.md) +141[`doca-dpa`](../../libs/doca-dpa/SKILL.md) skills), and142**not** the right place for default factory PCC143configuration (no host-side library or SPCX tool needed;144route via145[`doca-public-knowledge-map`](../../doca-public-knowledge-map/SKILL.md)).146147The tool is shipped as a **CLI binary** under148`/opt/mellanox/doca/tools/`, not a library you link149against. The skill uses the same `kind: tool`150three-file shape as the rest of the bundle so the151agent's task-verb contract is uniform across libraries,152services, and tools.153154## Language scope155156`doca_spcx_cc` is a C host-side CLI that links the157host-side [`doca-pcc`](../../libs/doca-pcc/SKILL.md)158library and loads a DPA-side SPCX algorithm image built159by the DPACC compiler. The algorithm body is a separate160DPA-side translation unit written in the language DPACC161accepts. The skill keeps workflow guidance162language-neutral and routes per-language questions to163the public DOCA SPCX / DOCA PCC / DPACC guides via164[`doca-public-knowledge-map`](../../doca-public-knowledge-map/SKILL.md).165166## When to load this skill167168Load this skill when the user is — or the agent needs to169— invoke `doca_spcx_cc` on a real host with DOCA170installed, paired with a BlueField that has its DPA171processor exposed AND the firmware custom-PCC slot172enabled, against a port carrying RDMA / RoCE traffic with173**actual contention**. Concretely:174175- Loading an authored SPCX algorithm (or a documented176 shipped reference) onto the BlueField via the SPCX177 surface, parameterizing it, starting it, and observing178 its effect on the live link.179- Evaluating an SPCX algorithm on a non-prod replica180 before any production rollout — capturing the181 contention-positive run as evidence.182- Comparing SPCX vs `doca-pcc` paths for the same183 algorithm class on the same install (where both paths184 are available) and deciding which to commit to.185- Producing a *"safe to roll forward"* recommendation186 with the documented evidence + rollback plan, or187 refusing the recommendation when the evidence /188 rollback is missing per189 [`CAPABILITIES.md ## Safety policy`](CAPABILITIES.md#safety-policy).190- Diagnosing a `DOCA_PCC_PS_ERROR` or a silent-no-effect191 symptom against the layered error taxonomy.192193Do **not** load this skill for general DOCA orientation,194DPA-side algorithm authoring detail, raw cycle profiling195of the DPA, the factory PCC algorithm shipped in the196firmware, or DOCA install. For those, route to197[`doca-public-knowledge-map`](../../doca-public-knowledge-map/SKILL.md),198[`doca-pcc`](../../libs/doca-pcc/SKILL.md),199[`doca-dpa`](../../libs/doca-dpa/SKILL.md), or200[`doca-setup`](../../doca-setup/SKILL.md).201202## What this skill provides203204This is a **thin loader**. Substantive material lives205in two companion files:206207- `CAPABILITIES.md` — what SPCX expresses that PCC does208 not (and where the surfaces overlap), the209 SPCX-vs-PCC-vs-factory-firmware decision tree, the210 authoring vs consumption split, the role decision211 (RP / NP), the documented probe-packet format axis,212 the live-link / contention precondition rule (the213 load-bearing safety invariant — *"a CC algorithm has214 no signal under no contention"*), the runtime215 observability surface (per-port / per-flow trace216 formats + the host-side status surface), the217 triple-axis precondition rule218 ([`doca-pcc`](../../libs/doca-pcc/SKILL.md): DPA-capable219 BlueField + firmware custom-PCC slot enabled +220 `doca_pcc_cap_*` agreement) extended with SPCX-specific221 availability, the version overlay (tool ↔ library ↔222 DPACC ↔ firmware), the layered error taxonomy223 (install / device-binding / fw-slot / DPA-image /224 algorithm-precondition / live-link-precondition /225 runtime / version / cross-cutting), the observability226 surface, and the heavily-overlaid safety posture (a227 wrong CC algorithm on production can melt the228 fabric).229- `TASKS.md` — step-by-step workflows for the in-scope230 task verbs: `install` (host-side DOCA install + DPA231 prerequisites + firmware custom-PCC slot), `configure`232 (SPCX-vs-PCC decision + role + algorithm + parameters233 + probe-packet format), `build` (route to install —234 the host-side tool is shipped; the DPA-side algorithm235 is user-built by DPACC), `modify` (refuse — do not236 patch the binary; modify the invocation, algorithm,237 and parameters), `run` (the238 prepare → smoke → contention-positive evaluation239 flow), `test` (iterative loop on the replica before240 production), `debug` (walk the error taxonomy),241 `use` (the *"safe to roll forward"* decision with242 evidence + rollback + escalation), plus a `Deferred243 task verbs` block.244245The skill assumes a host where DOCA is already246installed, a BlueField with a DPA processor and the247firmware-level custom-PCC slot enabled is present and248visible, the DPACC compiler is installed at a version249matched to the host-side DOCA, the user already knows250how (at sketch level) to write the DPA-side SPCX251algorithm (or has a shipped reference algorithm to252consume), and a non-prod RDMA / RoCE fabric with253controllable contention is available for evaluation.254255## What this skill deliberately does not ship256257This skill is **agent guidance**, not a samples or258scripts bundle. To keep the boundary clean, it259deliberately does not contain — and pull requests260should not add:261262- **A specific congestion-control algorithm.** SPCX263 *loads* an algorithm the user supplies; the skill264 refuses to invent algorithm bodies and routes any265 *"what algorithm should I write"* question to the266 public DOCA SPCX / DOCA PCC programming guides and267 to the user's own domain expertise.268- **Pre-baked example output** (throughput / latency269 curves, per-flow counter snapshots). Output is270 device-, firmware-, fabric-topology-, and271 workload-specific; pinning one would mislead272 operators elsewhere.273- **Specific flag strings, subcommand names,274 probe-packet format tokens, or metric names beyond275 what the public DOCA SPCX page and `--help`276 document.** The SPCX surface is the newer of the277 programmable-CC surfaces and the documented flag278 set evolves; the installed `--help` is the279 authoritative inventory.280- **Wrappers, parsers, or scripts** in any language281 that consume the tool's output. The output format282 is documented; users who want to script against it283 should read the live guide and write the parser284 against their installed version.285- **A specific tuning recommendation derived from a286 single observation.** CC tuning on a live fabric287 is high-stakes; the skill prescribes how to288 *capture evidence and compare against the factory289 PCC baseline* and refuses to translate a single290 observation into a parameter-change recommendation291 without the user's own domain analysis.292- **A `samples/` or `reference/` subtree.** This is293 a thin loader for a shipped CLI; substantive294 material lives on the public page, in `--help`,295 and in296 [`doca-pcc`](../../libs/doca-pcc/SKILL.md) +297 [`doca-dpa`](../../libs/doca-dpa/SKILL.md).298299## Loading order3003011. Read this `SKILL.md` first to confirm the user's302 question is in scope (SPCX-side custom CC work,303 not factory firmware PCC, not raw DPA cycle304 profiling, and not algorithm authoring detail).3052. **For the SPCX-vs-PCC decision tree, the authoring306 vs consumption split, the live-link precondition,307 the version overlay, the error taxonomy, the308 observability surface, and the safety posture,309 see [CAPABILITIES.md](CAPABILITIES.md).**3103. **For the documented invocations and the311 prepare → smoke → contention-positive evaluation312 workflow — `install`, `configure`, `build`,313 `modify`, `run`, `test`, `debug`, `use` — see314 [TASKS.md](TASKS.md).**315316## Related skills317318- [`doca-pcc`](../../libs/doca-pcc/SKILL.md) — the319 established host-side library for Programmable320 Congestion Control. The SPCX tool builds on and321 links this library; the SPCX-vs-PCC decision tree322 in323 [`CAPABILITIES.md ## Capabilities and modes`](CAPABILITIES.md#capabilities-and-modes)324 is the load-bearing routing rule. Conflating the325 two is the most common programmable-CC first-touch326 error.327- [`doca-pcc-ztr-rttcc-algo`](../../libs/doca-pcc-ztr-rttcc-algo/SKILL.md)328 — the shipped reference zero-touch RTT-based CC329 algorithm. When the user wants to deploy a330 documented reference algorithm via the SPCX path331 (rather than author one), this is the332 algorithm-side skill paired with this tool's333 operator-side workflow.334- [`doca-dpa`](../../libs/doca-dpa/SKILL.md) — the335 host-side DPA control library the SPCX algorithm's336 DPA-side body builds on. For DPA-level questions337 (kernel-launch model, DPACC build flags, DPA-side338 comms / verbs), this is the skill the agent loads339 alongside.340- [`doca-rdma`](../../libs/doca-rdma/SKILL.md) — the341 library whose RDMA / RoCE flows on the attached342 BlueField port the SPCX algorithm is controlling.343 Without RDMA traffic in flight and contention on344 the fabric, the algorithm has no signal — surface345 this precondition with the user before any346 evaluation.347- [`doca-pcc-counters`](../doca-pcc-counters/SKILL.md) —348 the sibling tool for read-only PCC counter349 inspection. SPCX exposes its own runtime350 observability surface; the PCC counter tool is the351 cheaper *"is anything happening on this port"*352 first step before / during an SPCX evaluation.353- [`doca-hardware-safety`](../../doca-hardware-safety/SKILL.md)354 — the bundle-wide hardware-safety meta-policy355 (pre-flight inventory, OOB requirement,356 replica-first, observability-before-workload,357 rollback discipline, escalation). The `## Safety358 policy` overlay in this skill is heavily layered359 on the meta-policy; deploying a wrong CC algorithm360 on a production fabric is a *meta-policy STOP*361 case.362- [`doca-public-knowledge-map`](../../doca-public-knowledge-map/SKILL.md)363 — routing to the public DOCA SPCX programming364 guide, the public DOCA PCC programming guide, the365 public DOCA DPA / DPACC guides, and the rest of366 the public DOCA documentation set.367- [`doca-version`](../../doca-version/SKILL.md) —368 canonical DOCA version-handling rules. The369 `## Version compatibility` section in370 [`CAPABILITIES.md`](CAPABILITIES.md) is a concise371 overlay that redirects here for the body and adds372 the *tool ↔ `doca-pcc` library ↔ DPACC ↔ firmware373 custom-PCC slot* matching rule.374- [`doca-setup`](../../doca-setup/SKILL.md) — env375 preparation, install verification, DPACC compiler376 install / verification, BlueField firmware377 configuration (custom-PCC slot enablement is a378 firmware-level setting), and the *I have no379 install yet* path with the public NGC DOCA380 container.381- [`doca-debug`](../../doca-debug/SKILL.md) — the382 cross-cutting debug ladder. SPCX-specific debug383 layers on top of that ladder; cross-link the384 captured runtime evidence + counter snapshots385 into a `doca-debug` session when the cause is386 below DOCA.387- [`doca-structured-tools-contract`](../../doca-structured-tools-contract/SKILL.md)388 — the bundle's detect → prefer → fall back →389 report contract for structured helper tools. The390 command appendix in [`TASKS.md`](TASKS.md)391 honors this contract.392- [`doca-programming-guide`](../../doca-programming-guide/SKILL.md)393 — general DOCA programming patterns shared by394 every library / tool surface, including the395 cross-library `DOCA_ERROR_*` taxonomy this396 tool's host-side error layer overlays on top of.397398The default factory PCC algorithms shipped inside399ConnectX firmware are **not in scope** for this skill —400those work without `doca_spcx_cc` and are configured401through firmware-level knobs, not through any host-side402library or tool API. Route via403[`doca-public-knowledge-map`](../../doca-public-knowledge-map/SKILL.md).404Conflating the factory PCC story with SPCX is the405single most common programmable-CC first-touch error.