Skip to content

DOCA-Host install and profiles

S2·E1The playbook that stops at BlueField-3 · Dell solution center, Round Rock, Monday of a five-day PoC

S2·E1Apply~35 minsources checked todaylab mutates hardwareverified against DOCA 3.5.0 docs (DOCA-Host Installation and Upgrade, DOCA Profiles, General Support, Dependency Compatibility Policy), 2026-09-06

Builds on: The DOCA framework map, versions and LTS

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

  • Install, upgrade and remove DOCA-Host on DEB and RPM hosts using the documented package commands.
  • Select the DOCA-Host profile that matches a host's role and justify the choice from the profile contents.
  • Verify the four-way version match (build-time, install-tree, runtime and BFB-image reads) plus the separate firmware-skew rule with exact commands, and recognise a partial install.
  • Explain why a BlueField-3 host runs DOCA-Host rather than MLNX_OFED.

Episode 1 — The playbook that stops at BlueField-3

The situation · Dell solution center, Round Rock, Monday of a five-day PoC

The Dell SE sets down a cold coffee and opens the spreadsheet where he keeps every promise: twenty-four PowerEdge nodes, sixteen R760 and eight XE9680L, acceptance demo Friday at nine. The customer rents bare-metal GPU nodes by the hour; if Friday lands, procurement releases the rest of the row. Row four says “host stack — Monday”, because the platform team owns an Ansible role that has not failed in three years. It runs the MLNX_OFED installer script, and forty ConnectX-7 hosts in production are the proof. The new nodes carry BlueField-3. The network lead opens a fresh notebook, writes one line, and asks you to confirm the role still applies.

It does not. The 3.5.0 General Support page names BlueField-2 and ConnectX-7 as the last generation supported by MLNX_OFED[3], which means a BlueField-3 host has no MLNX_OFED path at all. The transition guide is blunter: after the last MLNX_OFED release no new features are added, everything new lands in DOCA-OFED, and the LTS line carries critical fixes only, until October 2027.[4]

This is why DOCA-Host exists. NVIDIA stopped shipping one monolithic driver bundle installed by a script and started shipping profiles you install with apt or yum: doca-ofed for a driver-only host, doca-networking for ConnectX hosts running the DOCA data path, doca-all for BlueField.[2] The packaging change is the point: a repository and a profile name give a version you can prove.

A version you cannot print is a version you do not have.

The SE wants the role fixed by lunch. Segment 1 starts with the profiles.

1Two packages, five profiles

DOCA ships as two packages. DOCA-Host is “the software package installed on the host server which includes different DOCA installation profiles”; the BlueField Software Bundle (BF-Bundle) is what goes on the Arm cores: the DOCA runtime, the Arm OS, and the platform firmware and UEFI.[11] A profile is a meta-package name you hand to apt or yum. Installing one pulls both doca-runtime (production libraries, drivers, tools) and doca-devel (headers, reference applications, compilers) by default.[9]

DOCA 3.5.0 defines five profiles. Older documentation listed four; doca-host-basic is the addition.[2]

Profile Contents (profiles page wording) Typical installer
doca-all All DOCA libraries and drivers, MLNX_OFED, DOCA Core, MLNX-DPDK, OVS-DOCA, DOCA Flow BlueField hosts; developers who build against the SDK
doca-networking MLNX_OFED, DOCA Core, DOCA-PCC, OVS-DOCA, DOCA Flow, DOCA Perftest ConnectX hosts that run OVS-DOCA or DOCA Flow
doca-ofed MLNX_OFED drivers and tools only Driver-only hosts; the MLNX_OFED replacement
doca-roce rdma-core, ofed-scripts, mlnx-tools, mlnx-ofa_kernel, perftest RoCE compute nodes with no DOCA applications
doca-host-basic rdma-core, mlnx-tools, mlnx-ofa_kernel, perftest, mlnx-ethtool, mlnx-iproute2 Minimal footprint: drivers and tooling only

The page recommends doca-all for BlueField and calls doca-networking the preferred choice for ConnectX; the rest of the “installer” column follows from the contents.[2] All five profiles support BlueField-3, BlueField-2, ConnectX-8, ConnectX-7, the ConnectX-6 variants, ConnectX-5 and ConnectX-4 Lx.[2] The install page also names doca-libvma, doca-libxlio and doca-extra as installable targets alongside the profiles.[1]

Installing a profile is not a passive act. It replaces kernel modules (mlx5_core and the OFED stack), adds udev rules, and with doca-all installs services that may auto-start.[7] Plan it like a driver change, because it is one.

1 · What does the host do?
2 · DOCA-Host profiles (3.5.0 — five, incl. doca-host-basic added in 3.x)

⚠ = not confirmed on a fetched primary source (hover for why). Facts as of DOCA 3.5.0 (Sep 2026). Selections are saved.

Profiles tab: pick a profile to see its components and the adapters it supports.

2Install, upgrade, remove: the documented commands

Prerequisites first. The kernel headers must match the running kernel (/lib/modules/$(uname -r)/build must exist), GCC must match the kernel build, and RPM systems need DKMS 3.2 or newer.[1] Supported hosts for 3.5.0 include Ubuntu 24.04.x and 22.04.x, RHEL and Rocky 9.x and 10.x, RHEL 8.10, Debian 12 and 13, SLES 15 and 16 and Oracle Linux 8 and 9.[3]

The repository package comes from the DOCA downloads page; everything after that is the distribution’s package manager.[1]

# DEB (Ubuntu, Debian)
sudo dpkg -i <repo_file>.deb
sudo apt-get update
sudo apt install -y doca-all          # or doca-networking / doca-ofed / doca-roce / doca-host-basic
sudo apt install -y mlnx-fw-updater   # optional firmware updater package

# RPM (RHEL, Rocky, Oracle Linux)
sudo rpm -Uvh <repo_file>.rpm
sudo yum makecache                    # SLES: zypper --gpg-auto-import-keys refresh
sudo yum install -y doca-all          # SLES: zypper install -y doca-all

# post-install, both families
sudo /etc/init.d/openibd restart
sudo mst restart

Upgrade is the same verb with the profile name: apt install <doca-profile>, yum upgrade <doca-profile> or zypper update <doca-profile>.[1] Removal is a loop over every DOCA package, then the OFED uninstaller:[1]

# DEB
for f in $(dpkg --list | grep -E 'doca|flexio|dpa-gdbserver|dpa-stats|dpa-resource-mgmt|dpaeumgmt|dpdk-community' | awk '{print $2}'); do sudo apt remove --purge $f -y; done
sudo /usr/sbin/ofed_uninstall.sh --force
sudo apt-get autoremove

# RPM
for f in $(rpm -qa | grep -i doca); do sudo yum -y remove $f; done
sudo /usr/sbin/ofed_uninstall.sh --force
sudo yum autoremove

Two more tools live under /opt/mellanox/doca/tools/. doca-kernel-support rebuilds the DOCA-Host kernel modules for a custom kernel, but the script ships in the doca-extra package, so the documented procedure is apt/yum install -y doca-extra first and then /opt/mellanox/doca/tools/doca-kernel-support; the page also notes it is no longer required for non-default kernels, because DKMS rebuilds the modules during a normal install. With Secure Boot, enrol the DKMS key first (mokutil --import /var/lib/dkms/mok.pub) or sign the rebuilt modules with MODULE_SIGN_PUB_KEY=/path/to/pub_key.der MODULE_SIGN_PRIV_KEY=/path/to/priv_key.priv WITH_MOD_SIGN=1 /opt/mellanox/doca/tools/doca-kernel-support.[1] doca-info prints the host’s DOCA and driver state; attach its output to every escalation.[1] Storage extras (mlnx-nvme-dkms, mlnx-nvme-kmp-default, mlnx-nfsrdma-dkms) are separate packages found with apt search mlnx-nvme or the yum, dnf or zypper equivalent.[1]

3BlueField-3 runs DOCA-Host, not MLNX_OFED

The 3.5.0 General Support page states that BlueField-2 and ConnectX-7 are the last generation supported by MLNX_OFED.[3] Read that from the other side: a BlueField-3 has no MLNX_OFED host driver, so DOCA-Host is the only supported host path for it. The transition guide gives the timeline: “Following the last release of MLNX_OFED, no new features will be added to MLNX_OFED. All new features will only be included as part of DOCA-OFED.” The last standalone MLNX_OFED shipped in October 2024, its LTS line (critical fixes and security only) runs to October 2027, and support ends then.[4]

doca-ofed is the replacement: “an equivalent package of MLNX_OFED, providing the same functionality … including the same kernel drivers, user space libraries, and management tools”, installed with the package manager (sudo dnf -y install doca-ofed) instead of the old installer script.[4] That is why a driver-only customer moving off MLNX_OFED lands on doca-ofed, not on doca-all.

The profile you pick also fixes your compatibility guarantee. The dependency policy defines Level 1 (perpetual forward and backward binary compatibility; either layer may be upgraded independently) and Level 2 (limited; breaking changes may land with the October GA, and compatibility holds October to July inside one annual cycle).[5] The DOCA-OFED profile against firmware or a BF-Bundle is Level 1; every other profile against firmware or a BF-Bundle is Level 2, as are DOCA services against either.[5] A doca-ofed host tolerates a firmware skew that a doca-all host does not.

4The four-way version match

The version skill’s four-way match is four reads of one DOCA release: build-time pkg-config --modversion doca-common, the install tree’s /opt/mellanox/doca/applications/VERSION, runtime doca_caps --version, and, on a BlueField host, the BFB-image release on the Arm (cat /etc/mlnx-release plus bfver). All four must match within a release; “any disagreement means the install is partial”. NIC firmware is a separate, fifth anchor with its own rule: it is out of window when its major.minor predates the level the host DOCA requires, or its FW Release Date predates the DOCA release by more than 12 months. Read each anchor from its own source and never infer one from another.[6]

# (a) build-time: what pkg-config will link against
PKG_CONFIG_PATH=/opt/mellanox/doca/infrastructure/lib/pkgconfig pkg-config --modversion doca-common
# (b) install tree: the applications release string
cat /opt/mellanox/doca/applications/VERSION            # 3.5.0098 at tag 3.5.0
# (c) runtime: doca_caps is off PATH since DOCA 3.3
/opt/mellanox/doca/tools/doca_caps --version
# (d) NIC firmware: the separate anchor; read the FW Version and FW Release Date lines
sudo mst start
sudo flint -d /dev/mst/mt41692_pciconf0 q
# (e) Arm side: the BFB-image release, over the rshim network
ssh ubuntu@192.168.100.2 'cat /etc/mlnx-release; bfver'

At tag 3.5.0 the samples repository’s applications/VERSION reads 3.5.0098.[10] Alternatives to flint q for the firmware read are mlxfwmanager --query and mst status -v.[6] For 3.5.0 the General Support table lists BlueField-3 firmware 32.50.1002.[3]

Three anti-patterns the version skill calls out: bfb-info is not a real NVIDIA tool (the Arm-side dump is bf-info); mlxprivhost is a privilege tool, not a version probe; and mlxconfig -d <bdf> q reports configuration, not firmware version.[6]

One trap deserves its own paragraph. If /etc/apt/sources.list.d/doca.list points at one channel (latest or 3.5) while the installed packages are pinned to another (3.1.0105), an apt upgrade silently moves the host and not the card. The setup skill calls this “the most common cause of ‘my BlueField was rolled back to 3.1, but my host packages came back as 3.5’”.[8]

Bring a fresh R760 host onto DOCA-Host 3.5.0 and prove the match

Host: PowerEdge R760, Ubuntu 24.04, one BlueField-3 B3220 already running BF-Bundle 3.5.0 (confirmed over the rshim console). Goal: doca-all, all anchors agreeing.

  1. Prerequisites. ls /lib/modules/$(uname -r)/build must list a directory; if not, sudo apt install linux-headers-$(uname -r). The DOCA kernel packages build against the running kernel.[1]
  2. Repo. sudo dpkg -i <repo_file>.deb with the file the downloads page gave you, then sudo apt-get update.[1]
  3. Check the channel before installing anything: cat /etc/apt/sources.list.d/doca.list. It must name the release you are about to install.[8]
  4. Install: sudo apt install -y doca-all. Expect apt to pull doca-runtime, doca-devel and the OFED drivers.[9]
  5. Activate: sudo /etc/init.d/openibd restart && sudo mst restart, run from the iDRAC console.[1]
  6. Verify (a) to (c): pkg-config --modversion doca-common with the PKG_CONFIG_PATH above, cat /opt/mellanox/doca/applications/VERSION, /opt/mellanox/doca/tools/doca_caps --version. All three must report 3.5.0.[6]
  7. Verify (d): sudo flint -d /dev/mst/mt41692_pciconf0 q and compare the FW Version: line with the 3.5.0 General Support table (32.50.1002).[3]
  8. Verify (e): ssh ubuntu@192.168.100.2 cat /etc/mlnx-release; the string must carry the same DOCA release as the host.[6]
  9. Record the five values in the change ticket. That record is the BEFORE state for the next upgrade.

End of Episode 1 — One task out, three tasks in

How it ended

The role loses its installer-script task and gains three: install the repo package, install doca-ofed on the forty ConnectX hosts and doca-all on the twenty-four BlueField nodes, then read the version anchors and fail the play if they disagree.[6] You add one check nobody asked for, the channel line in the apt source file, because a host pinned to one release while the repo points at another upgrades silently and tells no one.[8]

What you actually say: “Same playbook, different package, and doca-ofed is the only profile with a perpetual compatibility guarantee against firmware.”[5]

Row four goes green. At 02:10 the night-shift operator calls: he updated firmware on one XE9680L, rebooted the host, and lspci now shows nothing where the card used to be.

Lab

Mutating steps ahead. Needs a maintenance window, out-of-band access (BMC/iDRAC/rshim console) and a rollback path. Record the pre-flight inventory before changing anything. Never on a production host.

Pre-flight inventory (read-only; record everything before step 5):

  1. head -2 /etc/os-release; uname -r; ls /lib/modules/$(uname -r)/build — record OS, kernel, and that headers exist.[1]
  2. dpkg -l | grep -E '^ii\s+doca' | awk '{print $2, $3}' (or rpm -qa | grep -i doca) and cat /etc/apt/sources.list.d/doca.list — record the installed release and the repo channel; they must agree.[8]
  3. sudo mst start && sudo flint -d /dev/mst/mt41692_pciconf0 q | grep -E 'FW Version|FW Release Date' — record the firmware.[6]
  4. ssh ubuntu@192.168.100.2 cat /etc/mlnx-release — record the Arm release. If SSH is down, read it over /dev/rshim0/console instead; do not continue without it.

Mutating steps (each names its rollback):

  1. Install or upgrade the profile agreed for this host: sudo apt install -y doca-all (or sudo yum upgrade doca-all). Rollback: the DEB or RPM uninstall loop from Segment 2, then sudo /usr/sbin/ofed_uninstall.sh --force, then reinstall the release recorded in step 2.[1]
  2. sudo /etc/init.d/openibd restart && sudo mst restart from the iDRAC virtual console. Rollback: if the mlx5 interfaces do not return, sudo reboot brings the host up on the modules now installed; if those are wrong, run the step 5 rollback.[1]
  3. Verify all five anchors exactly as in the Worked block and paste the values into the lab notes. Pass: (a), (b), (c) and (e) carry the same release and (d) is at or above the release’s General Support firmware (32.50.1002 for 3.5.0).[3] Fail: any disagreement is a partial install; do not hand the host over.[6]
  4. Run /opt/mellanox/doca/tools/doca-info > ~/doca-info-$(date +%F).txt and keep it with the ticket.[1]

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, why their MLNX_OFED playbook for R760 hosts does not cover BlueField-3 and what exactly has to change in it.

13 flashcards for this lesson — 0 in deck. Spaced review lives at /review.

Sources

Facts in this lesson were checked against DOCA 3.5.0 docs (DOCA-Host Installation and Upgrade, DOCA Profiles, General Support, Dependency Compatibility Policy), 2026-09-06. Dates are when each page was fetched.

  1. DOCA-Host Installation and Upgrade · fetched 2026-09-06 · DOCA 3.5.0
  2. DOCA Profiles (DOCA-Host installation profiles) · fetched 2026-09-06 · DOCA 3.5.0
  3. DOCA General Support (OS matrix, firmware table) · fetched 2026-09-06 · DOCA 3.5.0
  4. MLNX_OFED to DOCA-OFED Transition Guide (3.4.0 archive) · fetched 2026-09-06 · DOCA 3.4.0
  5. DOCA Dependency Compatibility Policy · fetched 2026-09-06 · DOCA 3.5.0
  6. NVIDIA/skills: doca-version CAPABILITIES (version anchors, hallucination warnings) · fetched 2026-09-06
  7. NVIDIA/skills: doca-setup CAPABILITIES · fetched 2026-09-06
  8. NVIDIA/skills: doca-setup TASKS (apt-source consistency trap) · fetched 2026-09-06
  9. DOCA Release Notes v3.5.0 · fetched 2026-09-06 · DOCA 3.5.0
  10. doca-samples applications/VERSION at tag 3.5.0 · fetched 2026-09-06 · DOCA 3.5.0
  11. DOCA Overview · fetched 2026-09-06 · DOCA 3.5.0
  12. NGC catalog: nvidia/doca/doca container · fetched 2026-09-06 · DOCA 3.5.0

The same idea elsewhere

Other lessons that cover this ground, sometimes from another course's angle.