Writing a DOCA validation plan for an OEM server
S8·E3The change board wants a yes · Dell lab conference room, Friday design review
Builds on: PowerEdge support matrix, iDRAC, BIOS, CPLD and the DPU, The validated stack and version pinning, Debugging and measuring with DOCA Bench
Before you read: what do you already know?
3 quick questions. Wrong answers are fine and expected; trying first makes the lesson stick.
After this lesson you can
- Define the scope and support boundary of a BlueField-3 qualification on a named PowerEdge model, riser configuration and SKU.
- Build a test matrix across operating modes, DOCA-Host profiles, firmware and BFB versions, server firmware and host OS.
- Write pass/fail criteria with the evidence that proves each one (DOCA Bench CSV, DTS metrics, mlxconfig before/after, iDRAC Lifecycle Log).
- List the regression triggers that reopen a signed-off row and the subset of tests each one re-runs.
- Produce a complete plan for a B3220 in an R760 and adapt it to a B3140H in an R770.
Episode 3 — The change board wants a yes
Friday afternoon, the conference room off the Dell lab floor, whiteboard already full. Around the table: the change board chair, the bureau’s virtualization lead, the network lead and his notebook, the Dell SE and his spreadsheet of promises, and you. Sixteen R760 nodes with B3220s have to be in production before quarter end, and the chair asks the question nobody in the room can answer. “Is this supported?” The virtualization lead says yes, it is on a compatibility list. You have to say out loud that a compatibility list is not what the chair is asking for. On video from a briefing room, the NVIDIA PM declines to give a date for the CPLD release: not announced.
Qualification plans exist because of the 03:40 call. The boot event that makes a PowerEdge print “No Memory Found” appeared at CPLD 1.1.5 and 1.1.7 with iDRAC 7.10.50.00 and BlueField-3 firmware 32.40.1000.[7] The PCIe training failure that fills the Lifecycle Log with “Device not detected: Nvidia Network Adapter” is fixed only from firmware 32.46.3048.[8] Nothing about “a B3220 in an R760” is true or false in general: it is true at a version set, in a riser configuration Dell lists, in one operating mode, on one host OS — and every one of those has to be named or the promise means nothing.[1][3]
“Supported” without a version set, a riser and a mode is an opinion, not a promise. You pick up the marker and start where every plan starts: scope.
1Scope: what the plan promises and to whom
A qualification plan is a promise with a boundary. It says: this PowerEdge model, in this riser configuration, with this BlueField-3 SKU at these firmware versions, in these modes, on this host OS, passed these checks, and here is the evidence. Dell’s manuals define the physical part of that boundary: the R770 allows DPUs in RC 1 and RC 2 (slots 31, 36) and RC 6-2 and RC 11-2 (slots 7, 2), and the R7725 allows the B3220 and B3240 in RC 2, 3, 4, 5 and 8, slots 2 and 7.[1][2] A plan that says “R770” without a riser configuration has not defined its scope.
The SKU is the second boundary. Write the OPN, not the marketing name: the B3220 is 900-9D3B6-00CV-AA0 or -00SV-AA0, the B3140H is 900-9D3D4-00EN-HA0 or -00NN-HA0, and the two have different memory, core counts and default modes.[16][3] The sourcing line matters too, because Dell’s support statement follows it: DSE rows exist only for Dell-sourced SKUs, since Dell “has not validated this feature and is unable to support it” on NVIDIA Channel cards.[14]
The version set is the third boundary, and it is the one customers forget. Dell KB 000227031’s boot issue is tied to CPLD 1.1.5/1.1.7, iDRAC 7.10.50.00 and BlueField firmware 32.40.1000; KB 000379421’s PCIe training failure is fixed from firmware 32.46.3048.[7][8] A sign-off therefore names every version it was earned at, and the plan names the changes that void it.
The lifecycle below is the shape every plan in this module follows. Read-only cases run before mutating ones, the evidence pack is assembled before sign-off, and a regression trigger re-enters at the inventory step, not at scope.[5][7]
Diagram source (Mermaid)
flowchart TD; S[Scope and support boundary] --> M[Test matrix]; M --> I[Pre-flight inventory]; I --> R[Read-only cases]; R --> X[Mutating cases]; X --> E[Evidence pack]; E --> P([Pass criteria met?]); P -- yes --> O[Sign-off row]; P -- no --> D["Defect - match to a KB or file new"]; D --> M; T["Regression trigger (BIOS, iDRAC, CPLD, firmware, BFB, riser)"] --> I
2The matrix: modes × profiles × firmware × OS × slot and power
Five axes, each with a reason from the sources.
Modes. DPU mode (ECPF), NIC mode and zero-trust are separate rows because each changes what the host can see and do, and each change requires an Arm and NIC reset: “Power cycle is recommended.”[3] On ESXi the split is sharper: DSE-enabled DPU mode and NIC mode require re-installing ESXi when you switch between them, so they are separate host builds, not a toggle.[4]
DOCA-Host profiles. Test the DOCA-OFED profile and the full profile separately, because their guarantees differ: DOCA-OFED is Level 1 (compatible with older and newer BlueField firmware) while DOCA services and the full profile are Level 2 (same October-to-July cycle).[5] A pass on one says nothing about the other.
Firmware and BFB. Anchor on the current Spectrum-X validated stack row — v2.3.1 pairs BlueField-3 firmware 32.50.1002 with DOCA-Host 3.5.0-082, BFB 3.5.0 and DTS 1.26.5 — and add an N-1 row to exercise the Level-1 forward/backward claim.[6][5] KB 000379421 requires the BFB to stay aligned with the firmware, so firmware and BFB are one column, not two.[8]
Server firmware. BIOS, iDRAC and CPLD are axes because the Dell issues were version-specific: CPLD 1.1.5/1.1.7 with iDRAC 7.10.50.00 for the boot-sync event, and firmware 32.46.3048 as the PCIe-training fix.[7][8]
Host OS. Use the DOCA 3.5.0 release’s supported host list (verify it in the release notes; it is not reproduced here) and ESXi 8.0 U3b or later for any DSE row.[4]
Slot, riser and power. Every riser configuration Dell allows, with and without the 8-pin auxiliary cable on the 150 W SKUs; the expected result without it is the “ATX power not detected! Halting system!!” halt, which the plan records as a known negative, not a defect.[1][2][10]
A full cross-product is too large; prune by writing the customer’s target row first, then one row per axis that varies only that axis. The evidence still has to exist for every row you sign.[6]
3Pass/fail criteria and the evidence that proves them
Every criterion has a pass condition, a fail signature and an artifact.
Enumeration. Pass: lspci shows the BlueField PCI functions; in DPU mode the rshim driver attaches (/dev/rshim0) and tmfifo_net0 is up; mlxconfig q INTERNAL_CPU_OFFLOAD_ENGINE reports the intended mode.[11][3] Fail: repeated “Device not detected: Nvidia Network Adapter” in the Lifecycle Log, or a card visible in lspci with no /dev/rshim — the forums show the latter when the BMC owns the RShim.[8][11] Artifacts: lspci -nn output, ls /dev/rshim*, mlxconfig q output.
Boot synchronization. Pass: twenty or more mixed cold, warm and graceful cycles with no “No Memory Found” at POST and no fatal PCIe entries in the Lifecycle Log.[7][9] Artifact: the Lifecycle Log export with cycle timestamps.
Provisioning. Pass: bfb-install completes, the rshim console shows BL2, BL31 and UEFI, and ssh to 192.168.100.2 over tmfifo works. Fail: the install “completes” but the console is silent and ssh never answers — the forum signature of a firmware/BFB mismatch.[12] Artifact: the console log.
Data path. Pass: OVS-DOCA flows are hardware-offloaded; a deliberately unsupported rule (mirror or multi-output) falls back to software without dropping traffic, because OVS-DOCA cannot offload multi-output flows.[13] Artifact: flow dumps before and after the negative case.
Performance. Record DOCA Bench output as CSV and perftest/NCCL numbers per mode and profile; export DOCA Telemetry Service metrics (validated-stack version 1.26.5) to Prometheus or NetQ as the evidence store.[6] DOCA Bench usage details are not in these notes; the plan requires the CSV, not a specific invocation.
Mode flip. Pass: mlxconfig q before shows 0, after the power cycle shows 1 (or the reverse), and the host view changes accordingly.[3] Firmware update. Pass: the update is followed by a full system power cycle and the Lifecycle Log has no fatal PCIe entry; a warm reboot is a fail by construction.[9]
VMware. DSE enable and disable with the ESXi reinstall between them, for Dell-sourced SKUs only.[4][14]
4Regression triggers and sign-off
A signed row stays signed until one of its axes moves. The triggers, each with the subset it re-runs:
| Trigger | Why | Re-run |
|---|---|---|
| BIOS, iDRAC or CPLD update | Boot-sync issue was tied to CPLD 1.1.5/1.1.7 and iDRAC 7.10.50.00 | Enumeration + boot synchronization |
| BlueField firmware update | PCIe training fix at 32.46.3048; power-cycle rule | Enumeration + boot sync + mode flip; full power cycle mandatory |
| BFB or DOCA version change | Level-2 components break at the October GA boundary | Provisioning + data path + performance |
| OVS-DOCA or HBN service version | Service-level compatibility is Level 2 | Data path + performance |
| Riser or power configuration change | Dell allows specific slot pairs; 150 W SKUs need the aux cable | Enumeration + boot sync |
The reasons are the Dell KBs and the dependency policy.[7][8][9][5][1]
Sign-off is one row per (server, riser, SKU, mode, profile, firmware, BFB, OS) with pass/fail, the log excerpts that prove it (Lifecycle Log, dmesg mlx5_core lines, rshim console), and the validated-stack row it maps to.[6] The row’s owner signs, the date is the date of the last mutating step, and the trigger list is attached so the next change request can find it.
Two cautions when a service is in scope. HBN 3.5.0 ships with DOCA 3.5.0 (BSP 4.16.0) on Ubuntu 22.04 according to its release notes, while the DOCA general-support page names Ubuntu 24.04 64k as the bundle default; the plan must quote both and record which BFB variant NVIDIA confirms for HBN before an image is pushed. HBN runs on the Arm side and “does not support BlueField platforms with 8GB on-board DDR memory”; check the SKU’s memory before promising HBN, and remember it needs DPU mode.[15][3] And any DSE row is out of scope for an NVIDIA-channel card, whatever the customer’s licence says.[14]
Scope. PowerEdge R760 (16G; listed as BlueField-3 enabled in KB 000227031).[7] Card: NVIDIA BlueField-3 B3220, 2x200 GbE, 150 W DPU SKU, OPN 900-9D3B6-00CV-AA0, quoted as a Partner DPU line.[16] Riser and slot: per the R760 ISM (not among this lesson’s sources — attach the page). Host: one OS from the DOCA 3.5.0 supported list. Support boundary: the card is a consigned Partner DPU line; Dell’s DSE KB excludes “NVIDIA Channel cards” without defining the term, so DSE rows stay out of scope until Dell confirms in writing whether this quote line is one.[14]
Matrix. Modes: DPU (shipping default) and NIC. Profiles: DOCA-OFED and full. Firmware/BFB: 32.50.1002 with BFB 3.5.0 (validated stack v2.3.1) and one N-1 row. Server firmware: current BIOS; record iDRAC and CPLD, flag 7.10.50.00 and 1.1.5/1.1.7. Power: with and without the 8-pin cable.[6][5][7][10]
Pre-flight inventory. iDRAC firmware inventory (BIOS, iDRAC, CPLD); sudo mlxfwmanager --query; sudo mlxconfig -d /dev/mst/<dev> q INTERNAL_CPU_OFFLOAD_ENGINE (expect 0); lspci -nn | grep 15b3; photo of the aux cable; Lifecycle Log export.[3][8]
Cases and criteria.
- Enumeration (read-only): PCI functions present,
/dev/rshim0present,tmfifo_net0up. Fail signature: “Device not detected: Nvidia Network Adapter”.[11][8] - Boot sync (read-only): 20 mixed cycles, no “No Memory Found”, clean Lifecycle Log.[7][9]
- Provisioning (mutating):
bfb-installwith BFB 3.5.0; console shows BL2/BL31/UEFI; ssh 192.168.100.2 works.[12] - Data path (read-only after 3): OVS-DOCA offload confirmed; mirror rule falls back without loss.[13]
- Performance: DOCA Bench CSV and perftest per mode/profile; DTS 1.26.5 metrics exported.[6]
- Mode flip (mutating): set
INTERNAL_CPU_OFFLOAD_ENGINE=1, full power cycle,qshows 1, no rshim; rollback set 0, power cycle,qshows 0.[3] - Firmware update (mutating): update to 32.50.1002 from NVIDIA DOCA downloads, BFB aligned, full power cycle; Lifecycle Log has no fatal PCIe entry.[8][9]
- Negative power case: DPU mode without the aux cable → expect “ATX power not detected” halt; record, refit, re-run 1.[10]
Evidence pack. DOCA Bench CSV, DTS export, mlxconfig q before/after for cases 6 and 7, Lifecycle Log exports, dmesg mlx5_core lines, rshim console log.
Regression triggers. As in the table above; October DOCA GA re-runs 3, 4 and 5.[5]
Sign-off row. R760 / (riser from ISM) / B3220 900-9D3B6-00CV-AA0 / DPU / DOCA-OFED / 32.50.1002 / BFB 3.5.0 / host OS — PASS — evidence links — maps to Spectrum-X v2.3.1.[6]
Scope. Server ____ (16G; BlueField-3 enabled per KB ____). Card B3220, ____ W DPU SKU, OPN ____. Sourcing line ____, therefore DSE rows: ____.
Matrix. Modes ____ and ____. Profiles ____ (Level ____) and ____ (Level ____). Firmware ____ with BFB ____ from validated stack row ____, plus an ____ row. Flag iDRAC ____ and CPLD ____ / ____.
Criteria. Enumeration: /dev/____ present and ____ up; fail signature “”. Boot sync: ____ mixed cycles with no “”. Provisioning: ssh to ____ works. Data path: the ____ rule falls back without loss. Mode flip: q before = ____, after the ____ = ____. Firmware update: followed by a full ____, Lifecycle Log has no ____ entry.
Triggers. BIOS/iDRAC/CPLD → re-run ____ + ____. October DOCA GA → re-run ____ + ____ + ____.
Write the plan for a B3140H in a PowerEdge R770 configured RC 11-2 with two RTX Pro 6000 GPUs in slots 7 and 2. The customer wants NIC mode for an east-west fabric today and asks whether they could run HBN later.
Acceptance criteria: (a) the slot the card goes in and its power rating, from the R770 manual; (b) whether the aux-cable negative case applies; (c) the shipping mode and the extra exposure the customer takes on if they flip to DPU mode for HBN, naming the KB; (d) whether the B3140H is eligible for HBN 3.5.0 by memory size and what mode it needs; (e) the mode-flip and rollback steps with their evidence; (f) the sign-off row fields.
Case closed: the row, and what reopens it
The board leaves with a document instead of an opinion: one row per server, riser, SKU, mode, profile, firmware, BFB and host OS, each with the evidence that earned it and the validated-stack row it maps to.[6] Attached is the trigger list, so the next BIOS, iDRAC or CPLD update reopens the enumeration and boot-synchronization cases instead of quietly voiding a sign-off nobody re-read.[7] The SE retires his spreadsheet of promises for the matrix; the network lead finally has counters in his notebook. Sixteen nodes go live inside the quarter; on the binder, in label tape: “POWER CYCLE IS NOT A REBOOT”. What you told the chair: “I can’t tell you it is supported — I can show you the row where it passed, and exactly what would reopen it.”
Lab
Pre-flight inventory (read-only, do all of it before any change):
- From iDRAC record BIOS, iDRAC and CPLD versions and export the Lifecycle Log. On the host:
sudo mst start && sudo mlxfwmanager --query, thensudo mlxconfig -d /dev/mst/<dev> q INTERNAL_CPU_OFFLOAD_ENGINE— record the value (expect 0 on a DPU SKU).[3][7] lspci -nn | grep 15b3,ls /dev/rshim*,ip link show tmfifo_net0— record all three. If/dev/rshim*is absent while the card is in lspci, stop: the BMC may own the RShim; that is a finding, not a step to force.[11]- If a BFB is already installed,
ssh 192.168.100.2from the host and record success or failure. Do not reflash in this lab.[12]
Mutating section — one mode flip, DPU to NIC and back. Rollback is written next to each step; keep the iDRAC virtual console open.
- Before:
sudo mlxconfig -d /dev/mst/<dev> q INTERNAL_CPU_OFFLOAD_ENGINE→ expect 0. Save the output to the evidence table as “before”.[3] - Set NIC mode:
sudo mlxconfig -d /dev/mst/<dev> s INTERNAL_CPU_OFFLOAD_ENGINE=1. Rollback for this step:sudo mlxconfig -d /dev/mst/<dev> s INTERNAL_CPU_OFFLOAD_ENGINE=0before the power cycle, which leaves the running mode unchanged.[3] - Full power cycle from iDRAC (power off, then on — not a warm reboot). Expected: the server POSTs; on a 16G box with the KB 000227031 firmware combination you may see “No Memory Found” and a self-reboot after about a minute — record it, it is expected there.[3][7]
- After:
q INTERNAL_CPU_OFFLOAD_ENGINE→ expect 1, andlspcistill shows the card. Save as “after”. Record whether/dev/rshim*is still present and whether the Arm console answers, but do not grade on it — the mode evidence is the mlxconfig value, not the rshim device (see the pre-flight note: RShim may be owned by the BlueField BMC). Ifqstill shows 0, the power cycle did not take effect: repeat it from iDRAC (power off, then on) before changing anything else. Rollback:s INTERNAL_CPU_OFFLOAD_ENGINE=0then a second full power cycle; verifyq→ 0.[3] - Fill the evidence table: columns step, command, before, after, Lifecycle Log entries during the step, rollback executed (yes/no). Export the Lifecycle Log again and attach. If any fatal PCIe entry appeared, you skipped the power cycle somewhere — re-read KB 000300192.[9]
- Convert the Worked plan into a checklist: one line per matrix cell, each with its criterion, fail signature and artifact. Expected: at least eight lines (enumeration, boot sync, provisioning, data path, performance, mode flip, firmware update, negative power case).[7][8][10]
- Open lesson 8.2’s TroubleshootingTree at the Dell branch. For each leaf — “No Memory Found”, “Device not detected”, fatal PCIe after firmware update, “ATX power not detected”, card in lspci but no /dev/rshim, bfb-install done but no ssh, offload lost on mirror — find the checklist line that would catch it. Expected: every leaf maps to at least one line. If a leaf has none, add the line; that gap is the point of the exercise.[11][12][13]
- Write the sign-off row for a hypothetical pass of the DPU-mode DOCA-OFED row, mapping it to the Spectrum-X v2.3.1 versions. Expected fields: server, riser, SKU/OPN, mode, profile, firmware 32.50.1002, BFB 3.5.0, OS, PASS, evidence links.[6]
- Optional: pull
nvcr.io/nvidia/doca/doca:devel-3.5.0-hostand confirmmlxconfigandmlxfwmanagerare present in the image so your checklist commands are runnable from a container on the lab host.
Retrieval check
10 questions from memory. Answer before looking anything up; misses become flashcards.
Explain it to a Dell SE
Explain to a Dell SE, in four sentences, what a qualification sign-off actually promises and why a BIOS update can void it.
Sources
Facts in this lesson were checked against Dell R770/R7725 ISM DPU pages, Dell KB 000227031 / 000379421 / 000300192 / 000225111, Broadcom KB 379391, DOCA 3.5.0 modes and dependency-policy pages, Spectrum-X validated stack v2.3.1, HBN 3.5.0 release notes, 2026-09-06. Dates are when each page was fetched.
- Dell PowerEdge R770 Installation and Service Manual — DPU specifications · fetched 2026-09-06
- Dell PowerEdge R7725 Installation and Service Manual — DPU specifications · fetched 2026-09-06
- BlueField Modes of Operation · fetched 2026-09-06 · DOCA 3.5.0
- Broadcom KB 379391 — Configuring BlueField-3 into DPU mode for vSphere DSE or NIC mode · fetched 2026-09-06
- DOCA Dependency Compatibility Policy · fetched 2026-09-06 · DOCA 3.5.0
- NVIDIA Spectrum-X Validated Solution Stack · fetched 2026-09-06 · DOCA 3.5.0
- Dell KB 000227031 — 'No Memory Found' on NVIDIA BlueField-3 enabled PowerEdge during POST · fetched 2026-09-06
- Dell KB 000379421 — PowerEdge: BlueField-3 DPU PCIe Initialization Failure · fetched 2026-09-06
- Dell KB 000300192 — XE9680L: a power cycle of the system is required after updating DPU firmware · fetched 2026-09-06
- NVIDIA forum — BlueField-3 (DPU mode) stuck in FW pre-initializing, no host netdevs (root cause: ATX power not detected) · fetched 2026-09-06
- NVIDIA forum — BlueField visible in lspci, rshim running, but no /dev/rshim and no tmfifo_net0 · fetched 2026-09-06
- NVIDIA forum — BF3 RShim not working (bfb-install done, no ssh to 192.168.100.2) · fetched 2026-09-06
- NVIDIA forum — Hardware offload lost when applying mirror in DOCA · fetched 2026-09-06
- Dell KB 000225111 — NVIDIA Channel DPU VMware DSE Support · fetched 2026-09-06
- HBN Service Release Notes (HBN 3.5.0) · fetched 2026-09-06 · DOCA 3.5.0
- NVIDIA BlueField-3 Networking Platform User Guide — Specifications · fetched 2026-09-06
The same idea elsewhere
Other lessons that cover this ground, sometimes from another course's angle.
- Scenario: a qualification requestElsewhere in this course · Same ground: vmware, plan and adapt
- Dell-specific bring-up: iDRAC, BIOS, CPLD, aux power, DSEElsewhere in this course · Same ground: vmware, r760 and r770
- HBN: BGP/EVPN on the serverElsewhere in this course · Same ground: HBN, modes and server