Doca Bf3 Deployment
NVIDIAOfficialCreated by NVIDIA
- Skill
- Workflow
- Cloud and DevOps
- Apache-2.0
- Medium risk
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill provides the operational framework for BlueField-3 (BF3) day-1 platform bring-up. It guides users through the classic RShim/BFB installation path, covering the management of the host-to-DPU TMFIFO channel, DPU mode selection, and post-installation verification. It includes a six-state classifier to help diagnose and recover DPUs that fail to reach a ready state after a bundle push. The skill is designed for operators with physical access to BF3 hardware and requires integration with hardware safety policies for any destructive operations like firmware burns or mode changes.
What it does
- Guides the BFB installation process via the host-side RShim interface.
- Manages the host-to-DPU TMFIFO management channel configuration.
- Provides a six-state classifier for diagnosing DPU readiness issues.
- Verifies successful BFB installation and version compatibility.
- Assists with DPU mode selection between DPU/embedded-function and separated-host/NIC modes.
- Routes destructive hardware operations to the appropriate safety-governed workflows.
When to use it
- When performing initial platform bring-up for a physical BlueField-3 DPU.
- When a BFB installation appears to finish but the DPU fails to become ready.
- When troubleshooting connectivity issues between the host and the DPU over TMFIFO.
- When needing to verify the installed BFB version and overall system health.
- When determining if a DPU should be configured for DPU or separated-host mode.
Advantages
- Standardizes the bring-up procedure for BlueField-3 hardware.
- Reduces downtime by providing a structured diagnostic path for failed installs.
- Ensures safe operation by integrating with hardware safety policies for destructive tasks.
- Clarifies the distinction between host-side and Arm-side DOCA installations.
Usage examples
- “I have a BlueField-3 and a BFB image — how do I push it?”
- The agent provides the step-by-step sequence for using bfb-install from the host, ensuring the RShim daemon is active and the DPU is ready.
- “bfb-install exited 0 but the DPU never came back.”
- The agent initiates the six-state classifier to identify the current DPU state and suggests recovery steps instead of re-attempting the burn.
- “ping 192.168.100.2 works but ssh fails.”
- The agent guides the user through the TMFIFO management channel verification, including checking local-loopback routing and SSH service status.
- “Is DOCA on the host or the Arm side?”
- The agent clarifies the installation requirements for both the host and the BlueField-Arm side, helping the user identify where the software should be deployed.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/nvidia/doca-bf3-deployment/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip doca-bf3-deployment.zip -d .agents/skills
Documentation by NVIDIA
DOCA BlueField-3 (BF3) deployment
Examples
"I have a BlueField-3 and a BFB — how do I push it?" — RShim plus bfb-install from the host. Exit 0 is not success until the DPU is ready.
"bfb-install exited 0 but the DPU never came back." — start at the six-state classifier, not a second burn.
Instructions
Follow Loading order below. Open the tasks companion for BFB push and recover. Open the capabilities companion for the RShim/BFB contract and safety overlay. Do not open every companion file.
Where to start: This skill is the bundle's home for BlueField-3
day-1 platform bring-up — taking a BF3 from "powered card in the
slot" (or a card that just came back broken from a BFB push) to
"Arm OS healthy, TMFIFO up, host PFs bound, four-way version match
closed, ready to run a workload". It owns the classic RShim/BFB
path that BF3 uses today; the newer BMC-Redfish provisioning path
is the sibling skill
doca-bf4-deployment/SKILL.md (the BF4
equivalent). If the user has a BF3 and needs to push a BFB, recover
a DPU that did not come back, or verify the install, open
the tasks companion and start at
## configure. If the question is what shape
does the BF3 platform-bring-up surface even have, start at
the capabilities companion. Once the BF3 is healthy, this
skill routes onward to the deployment skills — running a binary
goes to
doca-bare-metal-deployment/SKILL.md;
deploying a service container goes to
doca-container-deployment/SKILL.md.
Every mutating burn invoked from a bring-up step — the BFB
reflash itself, any mlxconfig set (including a DPU/separated-host
mode flip), a firmware burn, or a kernel-boot-parameter change — is
governed by the change-application meta-policy in
doca-hardware-safety/SKILL.md, which
the agent loads ALONGSIDE this skill. This skill adds only the
BF3-specific operational sequencing on top; it does NOT redefine
the preflight / OOB-console / maintenance-window / rollback
discipline that meta-policy owns.
Audience
This skill serves external DOCA operators bringing up a real BlueField-3 — i.e. people who already have:
a physical BlueField-3 in a host (or a standalone BF3 they can reach over its console / management network),
host-side RShim access to the DPU (the RShim userspace daemon and the
/dev/rshim*character-device tree present over the PCIe or USB RShim interface), anda matching DOCA-Host install on the host plus a BlueField bundle (BFB) image downloaded from the public DOCA Downloads page.
It is not for:
BlueField-4 bring-up (the BMC-Redfish provisioning path) — route to
doca-bf4-deployment/SKILL.md, the BF4 equivalent of this skill,kernel-driver or BlueField-OS developers contributing to
mlx5_*or the BFB image itself (outside the scope of field deployment),operators who already have a healthy BF3 and just want to run a binary (route to
doca-bare-metal-deployment/SKILL.md) or deploy a service container (route todoca-container-deployment/SKILL.md),fresh-no-hardware users with no DOCA install — route to
doca-setup ## no-install.
The skill teaches the agent the BF3 bring-up procedure and the
rules for quoting documented commands from the public BlueField
Platform Software Manual, the public DOCA Installation Guide, and
the MFT manual via
doca-public-knowledge-map/SKILL.md;
it does not invent bfb-install flag sets, BFB image filenames,
RShim character-device paths, bf.cfg schema keys, mlxconfig
parameter names, or TMFIFO subnets from memory. Where a fact is
already vetted in
doca-bare-metal-deployment ## bluefield-lifecycle,
this skill reuses that exact fact rather than restating a new one.
When to load this skill
Load this skill when the user is doing hands-on BlueField-3 platform bring-up over the RShim/BFB path, or asking a cross-cutting BF3 lifecycle question that is not specific to one library's API. Concretely:
Pushing a BFB image to a BF3 for the first time (or re-pushing after a failed install), from the host over the RShim interface with
bfb-install.Bringing up or recovering the host-to-DPU TMFIFO management channel (
tmfifo_net0, the documented192.168.100.xconvention) and the RShim console.Confirming RShim driver/daemon state on the host (the userspace
rshimdaemon and the/dev/rshim*tree) before any push or console capture.Deciding (and routing) a DPU-mode change — DPU / embedded-function mode vs separated-host / NIC mode — knowing the actual
mlxconfig setburn leaves this skill fordoca-hardware-safety/SKILL.md.Recovering a BF3 that did not come back after a BFB push:
bfb-installexited 0 but the DPU never reached the documentedDPU is readymarker;ping 192.168.100.2works but SSH refuses; host PFs are present inlspci -d 15b3:but their netdevs are gone.Verifying a BF3 install —
cat /etc/mlnx-releaseon the Arm side, the four-way version match perdoca-version/SKILL.md— and distinguishing the host-side DOCA install from the BlueField-Arm-side DOCA install.Cross-cutting questions: "is DOCA on the host or on the Arm side, and which one do I install?", "my BF3 was fine last week and after a BFB push it never came back — where do I start?", "how do I tell which
/dev/rshim<N>is which BlueField on a multi-DPU host?".
Do not load this skill for: BlueField-4 bring-up (route to
doca-bf4-deployment/SKILL.md, the BF4
equivalent); running a DOCA-linked binary on a healthy BF3 (route to
doca-bare-metal-deployment/SKILL.md);
deploying a DOCA service container (route to
doca-container-deployment/SKILL.md);
env-preparation including hugepages, IOMMU, pkg-config, and devlink
mode flips (use doca-setup/SKILL.md); the body of
the version-match rule (use doca-version/SKILL.md);
or any hardware-state-changing burn itself — the change-application
discipline is meta-policy owned by
doca-hardware-safety/SKILL.md, loaded
ALONGSIDE this skill.
What this skill provides
This is a thin loader. Substantive material lives in two companion files:
the capabilities companion — the BF3 platform-bring-up contract: the RShim/BFB transport surface (the userspace RShim daemon, the
/dev/rshim*tree, console-over-rshim, the BFB image as the unit of input), the TMFIFO management-channel surface (tmfifo_net0/tm-br, the documented192.168.100.xconvention, theip route get-before-pingloopback gotcha), the DPU-mode surface (DPU / embedded-function vs separated-host / NIC mode, set viamlxconfigat BFB-install time — a MUTATING burn routed todoca-hardware-safety/SKILL.md), the host-side-vs-Arm-side DOCA install distinction, the BF3-version overlay on the four-way match owned bydoca-version/SKILL.md, the cross-cutting error taxonomy, the observability surface, and the safety policy (overlay ondoca-hardware-safety/SKILL.md).the tasks companion — step-by-step workflows for the in-scope BF3 lifecycle verbs:
configure,build(routing stub),modify,run(the BFB-install + RShim/TMFIFO bring-up sequence),test(the post-BFB readiness smoke),debug(the six-statebluefield-state-classifier), and theDeferred task verbsblock routing app-launch / container / install / library-API / hardware-state-change / BF4 questions out to their owning skills.
The skill assumes a target where:
a BlueField-3 is physically present and powered, reachable from a host that has the RShim daemon and
/dev/rshim*tree available,the operator has a BFB image downloaded from the public DOCA Downloads page (route via
doca-public-knowledge-map/SKILL.md), andthe operator has an out-of-band path (BMC console, serial-over-LAN, or physical UART) to reach the BF3 if a push breaks the Arm OS.
It does not cover installing DOCA on a host from scratch (that
goes through doca-setup/SKILL.md), and it does
not cover BlueField-4 (that goes through
doca-bf4-deployment/SKILL.md).
Loading order
Read this skill first to confirm the user's question is in scope (BF3 platform bring-up over the RShim/BFB path; NOT BF4, NOT app-launch, NOT a library-API question).
For the bring-up contract (RShim/BFB transport, TMFIFO channel, DPU-mode surface, host-vs-Arm install distinction, BF3-version overlay, error taxonomy, observability surface, BF3 safety overlay), see the capabilities companion.
For step-by-step workflows —
configure,build(routing stub),modify,run(BFB install + RShim/TMFIFO bring-up),test(post-BFB readiness smoke),debug(the six-statebluefield-state-classifier), plus theDeferred task verbsblock — see the tasks companion.
Example questions this skill answers well
What this skill deliberately does not ship
Related skills
Files
- ATTRIBUTION.mdAdded by AutoGineer915 B
- BENCHMARK.md9.9 KiB
- CAPABILITIES.md18.5 KiB
- LICENSELicence file added by AutoGineer11.2 KiB
- SKILL.md10.4 KiB
- TASKS.md20.7 KiB
- evals/evals.json2.4 KiB
- references/details.md7.9 KiB
- skill-card.md4.5 KiB
- skill.oms.sig5.1 KiB
TASKS.md
DOCA BlueField-3 (BF3) deployment — Tasks
Where to start: The verb order is configure → build → modify → run → test → debug. For BF3 platform bring-up, build is a
routing stub — there is no application or BFB artifact to build
inside this skill (building a DOCA-linked binary lives in
doca-programming-guide/SKILL.md;
building the BFB image itself is out of scope).
This skill owns taking a real BF3 from "powered card" to "Arm OS
healthy, host PFs bound, version match closed". The ## run verb is
the BFB-install + RShim/TMFIFO bring-up sequence; ## test is the
post-BFB readiness smoke; ## debug is the six-state classifier.
Every step assumes the operator has consulted the live public
BlueField Platform Software Manual, the public DOCA Installation
Guide, and the MFT manual (all reachable through
doca-public-knowledge-map ## Public documentation entry points (doca-public-knowledge-map/SKILL.md#public-documentation-entry-points))
and is using them as the authoritative reference; this file
prescribes the order and what to look up where, not a copy-paste
runbook. If the release-matched live manual or installed tool
--help is unavailable, STOP rather than using remembered flags,
paths, keys, subnets, or timeout values. Every mutating burn (BFB reflash, mlxconfig set, firmware
burn, kernel-boot-parameter change) STILL routes through
doca-hardware-safety/SKILL.md for the
meta-policy — this file adds only the BF3-specific sequencing. These
operations are destructive: verify the exact target and require explicit
target-bound confirmation before issuing any command.
configure
Preparing the BF3 bring-up, confirming every precondition the push will rely on, and recognizing the install side BEFORE any BFB is pushed.
Recognise the install side. Confirm with the operator which side the work touches — host-side DOCA-Host on the host OS, OR Arm-side DOCA baked into the BFB landing on the DPU cores. Per the install-side table in
CAPABILITIES.md ## Capabilities and modes, this is the FIRST question for any BF3 deploy. If the operator is ambiguous, derive it from where the install lives (/opt/mellanox/docaon the host vs on the BF3 Arm). Do NOT guess.Confirm the BF3 and host prerequisites are present. Confirm
lspci -d 15b3:identifies the intended physical BF3 andpkg-config --modversion doca-commonidentifies the host-side DOCA-Host install, then run all of:dpkg -s rshim/rpm -q rshim(userspace package installed),systemctl status rshim(daemonactive (running)), andls /dev/rshim*(character-device tree present), per the BSP manual. On DOCA 3.3+lsmod | grep rshimis EXPECTED empty (the in-tree module is gone) and is NOT failure evidence. If the daemon or/dev/rshim*tree is missing, the host has no path to push.Disambiguate which
/dev/rshim<N>is which BF3. On a multi-DPU host, read theDEV_NAMEfield of each/dev/rshim*/miscfile and cross-match againstlspci -d 15b3: -nn(the canonical one-liner is indoca-bare-metal-deployment/CAPABILITIES.md#rshim-instance--bluefield-disambiguation-canonical-one-liner). This is the precondition for every per-DPUbfb-install; skipping it is the #1 cause of "I flashed the wrong DPU".Confirm the OOB path exists. A BMC console-over-Redfish, BMC IPMI serial-over-LAN, or physical UART to reach the BF3 if the push breaks the Arm OS — per the safety precondition in
CAPABILITIES.md ## Safety policy. Without one, the bar to proceed is "stop, escalate" perdoca-hardware-safety/SKILL.md.Verify the BFB image. Confirm the BFB image SHA matches the SHA the operator downloaded from the documented public DOCA Downloads page (route via
doca-public-knowledge-map ## Public documentation entry points(doca-public-knowledge-map/SKILL.md#public-documentation-entry-points)) — pushing a corrupted BFB is the load-bearing first-run failure. If the published SHA is unavailable or the values differ, STOP; do not push. Do NOT invent the BFB filename.Capture the BEFORE version anchors. Per
CAPABILITIES.md ## Version compatibility, record (read-only): the host-side DOCA-Host version (pkg-config --modversion doca-common), the current Arm-side BFB (cat /etc/mlnx-release+bfver), and the per-device NIC firmware (flint -d <bdf> q). This capture is the rollback anchor — without a BEFORE state, "rollback" is a phrase, not a thing the operator can do. Close the four-way match perdoca-version TASKS.md ## configure(doca-version/TASKS.md#configure).Decide the DPU mode BEFORE the push. If the BF3 must boot in a specific mode (DPU / embedded-function vs separated-host / NIC mode), that decision belongs at BFB-install time — the
mlxconfigset is applied from abfb_modify_os()hook inbf.cfg, and reconfiguring after install typically needs another push. The mode-set burn itself routes todoca-hardware-safety/SKILL.md; this step only records the decision so thebf.cfgauthored in## runcarries it.
build
BF3 platform bring-up is the deploy-the-platform path; there is no application or BFB artifact for the operator to build inside this skill.
If the user is asking how to build a DOCA-linked binary they want to run on the healthy BF3, hand off to
doca-programming-guide ## build(doca-programming-guide/TASKS.md#build) (the canonicalpkg-config doca-<library>+ meson pattern). Once the BF3 is healthy, control routes onward todoca-bare-metal-deployment/SKILL.md.If the user is asking how to build the BFB image itself, that is out of scope for this bundle; route to the public BlueField Platform Software documentation via
doca-public-knowledge-map/SKILL.md.If the user is asking how to author
bf.cfg, that is composed against the live BSP-manual schema at push time, not built ahead; see## runstep 1.The
bf.cfgbfb_modify_os()hook is the documented mechanism for seeding post-install state; the agent quotes its parameter keys from the public schema and does NOT invent key names.
modify
BF3 bring-up does not have a modify a sample program workflow; the
platform-side analog of "modify" is re-walk the bring-up after the
BFB, the bf.cfg, or the underlying mode/version state changes.
A BFB change is a bring-up event. Pushing a different BFB re-opens the readiness smoke in
## test— the new BFB may land a different Arm-side DOCA version, a different host PF layout, or a different mode. Re-walk## configurestep 6 (version anchors), then## run, then## test.A
bf.cfgchange is a bring-up event. Editing the password, theauthorized_keyshook, or the mode-set hook changes the post-install state; treat each edit as a fresh push and re-walk## runstep 1 (authorbf.cfg) and## test.A host-side change is a bring-up event. A host-side DOCA-Host reinstall, an apt-source repo-pin change, or an
LD_LIBRARY_PATHchange re-opens the four-way match; re-walk## configurestep 6 and route the host reinstall throughdoca-setup/SKILL.md.A mode flip or firmware burn leaves this verb entirely. Any
mlxconfig set(DPU/separated-host mode flip), firmware burn, or BFB reflash is owned bydoca-hardware-safety ## modify(doca-hardware-safety/TASKS.md#modify); this skill does NOT walk that burn. Control returns here at## configurestep 6 once the change is complete and verified per the meta-policy.
The anti-pattern alert: re-pushing a BFB or editing a bf.cfg
without re-running the readiness smoke is the canonical "the DPU
came back wrong and I did not notice" failure. Treat every
platform-side change as a fresh bring-up.
run
The BFB-install + RShim/TMFIFO bring-up sequence — pushing the BFB
and getting the host-to-DPU channel healthy. Every step assumes the
preconditions in ## configure are done.
Author
bf.cfgfrom the documented schema. The BFB-install path takes an installer configuration file (bf.cfg) controlling post-install Arm-side state. Two operator-relevant rules: (a) for passwordless SSH to survive the install, set the documented password parameter AND seed the SSH public key via abfb_modify_os()hook that writes the to-be-installed rootfs (mounted under/mntduring install per the BSP manual) — the default BFB install rewrites the home.ssh/, so a pre-existing key is GONE unless reseeded; there is NO top-levelauthorized_keysbf.cfgparameter, the mechanism is the hook. (b) for a specific DPU mode, the requiredmlxconfig setinvocations run from abfb_modify_os()hook (decision recorded in## configurestep 7; the burn routes todoca-hardware-safety/SKILL.md). Quote thebf.cfgkeys from the public schema; do NOT invent them.Push the BFB over RShim. Run the host-side
bfb-installinvocation per its--helpand the BSP manual, targeting the/dev/rshim<N>disambiguated in## configurestep 3. The push streams the BFB to the BF3 over RShim/PCIe; the Arm side reboots through UEFI to Linux up to first-boot init. The BFB reflash is a mutating change — loaddoca-hardware-safety/SKILL.mdALONGSIDE for the preflight / OOB / rollback discipline.Do NOT trust
bfb-installexit code 0 alone. This is the single most expensive failure mode.bfb-installhas been observed to exit 0 while the Arm-side flow only partially completed — the canonical field signature is "Ubuntu installation completed" followed by anINFO[MISC]: NIC firmware update failedline. Parse the actual console / log output for: (a) any[MISC]/[ERR]line with a failure verb, (b) the documentedLinux upmarker, (c) the documentedDPU is readymarker. If (a) is present or (b)/(c) are absent, the install is partial — advance to## debuginstead of declaring success.Verify the RShim console and TMFIFO channel. Watch
/dev/rshim<N>/consolefor the documented boot markers, then bring up TMFIFO:ip addr show tmfifo_net0(or thetm-brbridge) on the host, and — CRITICALLY —ip route get <bf-tmfifo-address>BEFORE anyping. Acceptdev tmfifo_net0ORdev tm-bras healthy egress;dev lo/local <bf-addr> dev lois the local-loopback failure that makespinglie. The factory subnet (192.168.100.1/30host,192.168.100.2/30BF) comes from the BSP manual; do NOT fabricate it.Hand off to the readiness smoke. "BFB install completed" means the installer's I/O is done; it does NOT mean the Arm OS is up, TMFIFO is reachable, SSH is live, or host PFs are bound. Always run
## testbefore re-declaring the BF3 healthy.
test
BF3 bring-up has no compile-and-unit-test workflow — testing is the operational post-BFB readiness smoke against real hardware.
## test is an iterative loop, not a one-shot pass. Every push,
every bf.cfg edit, every mode/version change re-opens the smoke.
Skipping the re-run after a mutation is the failure mode this loop
replaces.
Wait for documented readiness markers, not a timer. Poll the RShim console buffer for
Linux up/DPU is ready(per the BSP manual), AND the Arm-side SSH endpoint responding, AND (where present) the BMC health endpoint reportingOK. If any never reports ready within the manual's documented bound, the BF3 is partial — advance to## debug. If the release-matched manual provides no bound, do not wait indefinitely or invent one: stop the poll, preserve the console evidence, and escalate for a release-specific bound before classifying readiness.Route the host PF rebind if netdevs are missing. A push can leave the host
mlx5driver stale: PFs present inlspci -d 15b3:butip link showshows no netdevs andibv_devinfois empty. A sysfs PF bind/unbind is a disruptive PCIe mutation: capture the current BF3 BDF-to-driver mapping and rollback path, then hand that evidence and the documented rebind procedure todoca-hardware-safety ## modify(doca-hardware-safety/TASKS.md#modify) for quiescing, OOB/maintenance applicability, apply/rollback, and post-change inventory. Return here only to re-verify withip link show/ibv_devinfo/devlink dev show. The BDF strings come from the pre-flightlspci -d 15b3:capture, NOT from memory; never emit anecho .../binddirectly from this skill.Verify the install landed.
cat /etc/mlnx-release+bfveron the Arm side confirm which BFB landed;flint -d <bdf> qreads the per-device FW version. These are the Arm-side and NIC legs of the four-way match.Check the
/home/ubuntuownership gotcha. On certain BFB images/home/ubuntuships owned byroot, breaking the normal pattern of theubuntuuser writing under their own home. Checkstat -c '%U:%G' /home/ubuntuafter first SSH. Before proposing a recursive ownership change, verify the shell is on the BF3 Arm side (not the host), resolve the target withreadlink -f, require it to be exactly/home/ubuntu, and record the current owner. If it isroot:root, propose the documentedchown -R ubuntu:ubuntu /home/ubuntufix (per the BSP manual) BEFORE pasting any script that writes there.Re-close the four-way version match. Once Arm OS is healthy and host PFs are bound, walk the four-way match owned by
doca-version/TASKS.mdagainst the new BF3 state BEFORE handing onward to a deployment skill. A skipped re-close after a push is the most common cause of "ran fine yesterday, breaks today".
Identical smoke and evidence rule. Before and after each
recovery, run the same readiness smoke and preserve the same tuple:
RShim markers and failure lines; TMFIFO address plus ip route get;
Arm SSH plus uptime/relevant dmesg; host PF outputs from lspci,
ip link, ibv_devinfo, and devlink; Arm BFB/FW anchors; and the
four-way match. A changed command set is not comparable evidence.
Loop termination: "same kind" means the same failing check category
(readiness markers, PF binding, install verification, ownership, or
version match); "change nothing" means the identical smoke fails
with a materially identical captured evidence tuple. Stop after two
consecutive smokes meet both conditions — that means the cause is
below the platform layer (BFB image, host OS, silicon). Escalate to
doca-debug TASKS.md ## debug (doca-debug/TASKS.md#debug) with
the captured evidence. Once the smoke is green, hand off — running a
binary to
doca-bare-metal-deployment ## run (doca-bare-metal-deployment/TASKS.md#run),
a service container to
doca-container-deployment ## run (doca-container-deployment/TASKS.md#run).
debug
The six-state bluefield-state-classifier. When a BFB push, a
soft-reset, or a host PF rebind has been done and the BF3 is not
yet confirmed healthy, evaluate all six states against one captured
evidence tuple, IN ORDER, before choosing a recovery. Report every
match (an Arm OS can be "Linux up" AND "host PFs unbound"
simultaneously); never stop classification at the first match. Apply
recoveries in this priority order: installer-still-running →
uefi-only → linux-up-tmfifo-down → tmfifo-up-ssh-down →
arm-ok-host-pfs-unbound → host-bf-version-mismatch. The full state
evidence/recovery detail is in
CAPABILITIES.md ## Error taxonomy;
this is the evaluation order. Mutating recovery steps leave this
skill for doca-hardware-safety ## modify (doca-hardware-safety/TASKS.md#modify);
this skill owns only BF3-specific ordering and the identical
post-recovery smoke.
installer-still-running.bfb-installresident + console still emitting progress lines → WAIT, do not abort. Aborting a first-flash push mid-write creates the next state down.uefi-only. UEFI-exit marker present but noLinux up→ capture console + hostdmesg, do a documented cold power cycle (via BMC, notrebootfrom the dead Arm side) BEFORE re-pushing.linux-up-tmfifo-down.Linux uppresent but the TMFIFO probe returns no host-side address → re-check the host RShim daemon, run the documented TMFIFO bring-up, THEN re-run theip route getloopback check (a freshly-bound TMFIFO can land in the loopback failure mode and look like it works).tmfifo-up-ssh-down. TMFIFO route confirmed to the BF3 (not loopback) but SSH refuses/hangs → wait the documentedsshd-ready bound; else fall through to the RShim console for a userspace prompt and re-seed credentials; putauthorized_keysin thebf.cfgon the next push. If the release-matched manual gives no bound, do not invent one or wait indefinitely: preserve the console and route evidence and escalate for the release-specific bound.arm-ok-host-pfs-unbound. Arm SSH alive + OS healthy but host enumeration broken (lspcishows PFs,ip linkdoes not show netdevs,ibv_devinfoempty) → route the documented PF rebind throughdoca-hardware-safety ## modify(doca-hardware-safety/TASKS.md#modify), then return to the identical smoke in## test. Do NOT launch any DOCA binary in this state — every device-open fails with a misleading error.host-bf-version-mismatch. Everything above healthy but the four-way match does not close → walkdoca-version/TASKS.mdin full, resolve apt-source / repo-pin drift perdoca-version TASKS.md ## apt-source consistency(doca-version/TASKS.md#apt-source-consistency) BEFORE installing anything, and route any host reinstall throughdoca-setup/SKILL.md.
After all six are evaluated, recover in dependency order: first
protect an in-flight installer; then restore boot/Arm reachability
(uefi-only); then TMFIFO; then SSH; then host PF binding; finally
host/BFB version alignment. Apply one recovery at a time and re-run
the identical smoke/evidence tuple after each. If two consecutive
post-recovery tuples are identical, stop and escalate rather than
repeating the same recovery.
Cross-cutting host-layer issues (kernel version, driver state, PCIe
link state, hugepage health) that survive a healthy classifier walk
drop to
doca-debug TASKS.md ## debug (doca-debug/TASKS.md#debug). Never
declare the BF3 healthy from absence of evidence — a TMFIFO ping
without ip route get, an SSH connect without uptime/dmesg, an
lspci listing without a usable netdev are each NOT proof.
Deferred task verbs
BlueField-4 bring-up (the BMC-Redfish provisioning path) — out of scope here. Route to
doca-bf4-deployment/SKILL.md, the BF4 equivalent of this skill.Running a DOCA-linked binary on a healthy BF3 (launch mode, PCI/NUMA/CPU binding, per-tenant isolation, the binary error taxonomy) — out of scope here. Route to
doca-bare-metal-deployment/SKILL.mdonce the BF3 is healthy.Deploying a DOCA service container on the BF3 (kubelet standalone, static-pod manifests directory, pod-spec YAML, image-pull from NGC) — out of scope here. Route to
doca-container-deployment/SKILL.md.Env-preparation / host install (installing DOCA-Host on a fresh host, hugepages, IOMMU,
PKG_CONFIG_PATH/LD_LIBRARY_PATH, devlink mode flips) — out of scope here. Route todoca-setup/SKILL.md; BF3 bring-up assumes the host RShim surface is already in place.Hardware-state changes (
mlxconfig setincluding DPU/ separated-host mode flips, firmware burn, BFB reflash, kernel-boot-parameter changes) — the change-application discipline (preflight, OOB console, maintenance window, rollback) is meta-policy owned bydoca-hardware-safety ## modify(doca-hardware-safety/TASKS.md#modify); this skill loads it ALONGSIDE whenever a mutating burn is on the table and adds only the BF3-specific sequencing.Library-API and cross-library programming questions (building a DOCA-Flow pipe, an RDMA queue pair, the cross-library
DOCA_ERROR_*taxonomy) — out of scope here. Route todoca-programming-guide/SKILL.mdand the matchinglibs/<library>skill viadoca-public-knowledge-map ## Library- and module-specific guides(doca-public-knowledge-map/SKILL.md#library--and-module-specific-guides).The version-match body (four-way match rule, NGC semantics, headers-win) — out of scope here. Route to
doca-version/SKILL.md; this skill carries only the BF3 three-leg overlay.
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
The author says: No DOCA install required to read this skill (it is a platform-lifecycle overlay loaded against BF3 hardware); the bring-up and validation steps within DO require a real BlueField-3, host-side RShim access (PCIe or USB), the matching DOCA-Host install, and a BlueField bundle (BFB) image downloaded from the public DOCA Downloads page. The validation steps require a live DOCA install.
Security
What our scanner noticed· Medium risk
- Large base64-encoded blobs
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- NVIDIA
- Publisher
- NVIDIA (Official)
- Source
- NVIDIA/skills · skills/doca-bf3-deployment · commit fce3cca
- Licence
- Apache License 2.0 (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE-APACHE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by NVIDIA.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download doca-bf3-deployment.zip