Skip to content

DPF: DPUs at Kubernetes scale

S5·E6Two hundred cards and one wrong version number · The staging floor between rows of shrink-wrapped PowerEdge nodes, three days to move-in

S5·E6Analyze~45 minsources checked todaylab mutates hardwareverified against DOCA 3.5.0 DPF page plus NVIDIA/doca-platform v26.4.1 docs and API types, 2026-09-06

Builds on: HBN: BGP/EVPN on the server, DMS: one interface for every device, Storage offload: SNAP, Virtio, DevEmu, STA, Security: Argus, App Shield, and zero trust

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

  • Describe what the DOCA Platform Framework automates and which release pairs with DOCA 3.5.0 versus which is latest.
  • Distinguish host-trusted from zero-trust DPF deployments by who provisions the DPU and what the host is allowed to be.
  • Read the DPF custom resources (DPFOperatorConfig, DPUCluster, BFB, DPUSet, DPU, DPUFlavor, DPUService and the service-chain objects) and trace a DPU through its provisioning phases.
  • Analyze a DPUSet, BFB, DPUFlavor and DPUService set for correctness and fix seeded errors.
  • State the platform-support floor (Kubernetes, firmware, BFB, DPU SKUs) a Dell customer must meet for DPF v26.4.1.

Episode 6 — Two hundred cards and one wrong version number

The situation · The staging floor between rows of shrink-wrapped PowerEdge nodes, three days to move-in

The rollout plan is printed and taped to a rack post: 168 remaining BlueField-3 servers, four weeks, one engineer per aisle imaging cards, and the operator’s label-maker tape holding the corner down. The network lead walks you through it with real pride, and you have to stop her on the second page, because it names a DPF release that does not exist. The newest tag in the project is v26.4.1, and the DOCA 3.5.0 documentation pairs with v26.4.0.[24][1] Everything downstream of that page, including the firmware floor procurement budgeted for, was derived from a version nobody shipped. The NVIDIA PM, asked what comes next, says “not announced”.

DPF exists to delete the aisle-walking entirely. Instead of provisioning each card, you declare the state: which image the DPUs run as a BFB, which firmware and OS settings as a DPUFlavor, which cards are in scope as a DPUSet, and which services run on them, and controllers install, configure and keep all of it converged.[10][11][9] The DPUs get their own Kubernetes control planes, so the host cluster never runs DPU pods.[12]

Her next question is the one the labelled OOB ports already answered: are these servers trusted members of the cluster, or untrusted machines whose DPUs are managed out of band.[3][4] A version number that travels from a slide into a purchase order is a defect. Start from what DPF is, and which version you are actually holding.

1What DPF is, and which version you are talking about

The DOCA Platform Framework (DPF, GA in 3.5.0) is the Kubernetes-native way to provision DPUs and run DOCA services on them across a fleet. The DOCA 3.5.0 service page pairs with DPF v26.4.0; the GitHub project NVIDIA/doca-platform has since published v26.4.1 (2026-08-31), which is the newest tag. The full tag list is v26.4.1, v26.4.0, v25.10.1, v25.10.0, v25.7.1, v25.7.0, v25.4.0, v25.1.1, v25.1.0, v24.10.0; the release and tree URLs for v26.8.0 and v26.10.0 return 404.[1][23][24][25]

The v26.4.1 support matrix is the number sheet for any qualification: Kubernetes 1.33 to 1.36; Helm v3.5 or newer; DPU firmware 32.38.1002 or newer; MFT 4.33.0-169; BFB 3.4 fully supported and 3.2 LTS allowed, while “Non-LTS BFB versions (3.3, 3.5) are only supported with their corresponding DPF release”; Ubuntu 24.04 with containerd; DPUs B3240, B3220 and B3210; Kamaji v1.36.0-26.6.4, ArgoCD v3.3.0, cert-manager v1.19.3, Multus v3.9.3, SR-IOV device plugin v3.11.0, Network Operator v26.1.0; Socket Direct unsupported.[2]

DPF v26.4.1 · DOCA 3.5.0
Host Kubernetes clusterDPF custom resources (dpf-operator-system)DPU cluster (Arm nodes)kamajiClusterManagernode labels1 per cardBFB + bf.cfg over rshimjoinHelmControl plane nodeshost cluster · K8s 1.33–1.36DPF Operatorhelm: dpf-repository/dpf-operator --version v26.4.1DPFOperatorConfigoperator.dpu.nvidia.comDPUClusterKamaji tenant control planeWorker node (x86) + BlueField-3DMS pod → rshimhost-trustedDPU BMC · Redfishzero-trust · OOB netDPU detector (NFD)feature.node.kubernetes.io/dpu-enabledBFBimage CR (spec.url)DPUFlavornvconfig · grub · ovs · bf.cfgDPUSetdpuNodeSelector · dpuTemplateDPUone object per cardDPUServiceHelm chart → DPU clusterDPUServiceInterfacephysical · pf · vf · serviceDPUServiceChainswitches[].ports[]DPUDeploymentbundles dpus + services + chainsDPU node (Arm) · kubeletworker of the DPUClusterHBNpodOVN-KpodDTSpodbr-sfc (OVS) · SFC controllerServiceInterfaceSet / ServiceChainSetp0 / p1 → ToR (BGP/EVPN)
Reconcile · step 1 / 7host-trusted

1. BFB CR created

The BFB controller downloads spec.url ("Download the BFB from a remote server") and records status.versions {bsp, doca, uefi, atf} read from the image. v26.4.1 matrix: BFB 3.4 fully supported, 3.2 LTS allowed, non-LTS BFBs (3.3, 3.5) only with their matching DPF release.

DPU phases: BFB.status.phase: Initializing → Downloading → Ready

DOCA Platform Framework (DPF) v26.4.1

DPF "is a system that provisions and orchestrates NVIDIA BlueField DPUs" from Kubernetes: the operator installs controllers in the host cluster, CRs describe the desired image (BFB), sizing (DPUFlavor) and node set (DPUSet), each card becomes a DPU object, and the DPUs join a separate tenant control plane where DPUServices (Helm charts) run.

Why it matters. GA in DOCA 3.5.0. Latest tag v26.4.1 (2026-08-31); v26.4.0 shipped 2026-06-29. Requirements (v26.4.1): Kubernetes 1.33–1.36, Helm 3.5+, DPU firmware ≥ 32.38.1002, MFT 4.33.0-169, Ubuntu 24.04 + containerd; B3240/B3220/B3210; Socket Direct unsupported.

FAE note. Click any box for a YAML skeleton and what it owns. Switch trust mode to see who provisions, then walk the Reconcile stepper.

Source: networking-docs.nvidia.com · fields marked UNVERIFIED were not confirmed against the Go types.

Host-trusted DPF: the host is a worker of the target cluster, the DPU joins a Kamaji-hosted DPU cluster, and the provisioning controller reaches the DPU in-band through DMS. Switch to zero-trust to see management move to the BMC and the OOB network.

2Two trust models, two provisioning paths

Host-trusted: “The host is considered a trusted entity”; “DPUs are managed through in-band communication over the host”; the host is a Kubernetes worker of the target cluster.[3] Provisioning talks to DMS on the DPU (M5.3), bounded by DPFOperatorConfig.spec.provisioningController.dmsTimeout (900 s in the reference), and v26.4.1 completes the host-agent install phase as soon as DMS returns.[14][5]

Zero-trust: the host is untrusted; “DPUs are managed through their Baseboard Management Controller (BMC) via Redfish”; all management runs over the DPU OOB network; “The host sees the DPU as a standard NIC”. Zero-trust requires kubernetesAPIServerVIP and kubernetesAPIServerPort in DPFOperatorConfig (v26.4.0), and v26.4.0 added Secure Boot for zero-trust DPUs.[4][6]

Both start the same way:[3][4]

helm repo add --force-update dpf-repository https://helm.ngc.nvidia.com/nvidia/doca && helm repo update
helm upgrade --install -n dpf-operator-system dpf-operator dpf-repository/dpf-operator --version=v26.4.1
kubectl rollout status deployment --namespace dpf-operator-system dpf-operator-controller-manager

3The custom resources and the DPU lifecycle

Three API groups (from the v26.4.1 Go types):[7][8][9][10][11][12][26]

Group Kinds Purpose
operator.dpu.nvidia.com/v1alpha1 DPFOperatorConfig Operator-wide settings: overrides (kubernetesAPIServerVIP, kubernetesAPIServerPort, paused, CNI paths), networking (controlPlaneMTU, highSpeedMTU, dpuNodeOOBBridgeName default br-dpu), imagePullSecrets, and per-controller blocks (provisioningController, dpuServiceController, kamajiClusterManager, staticClusterManager, nodeSRIOVDevicePluginController, multus, sriovDevicePlugin, flannel, ovsCNI, nvipam, sfcController, monitoring)
provisioning.dpu.nvidia.com/v1alpha1 BFB, DPUCluster, DPUSet, DPU, DPUFlavor Image (spec.url, fileName; status versions{bsp,doca,uefi,atf}), DPU control plane (type: kamaji, maxNodes, clusterEndpoint.keepalived), selection and rollout (strategy, dpuNodeSelector, dpuSelector, dpuDeviceSelector, dpuTemplate), the per-card object (dpuNodeName, dpuDeviceName, bfb, serialNumber, pciAddress, nodeEffect, cluster, dpuFlavor, secureBoot, bmcIP), and the hardware/OS recipe
svc.dpu.nvidia.com/v1alpha1 DPUService, DPUDeployment, DPUServiceTemplate, DPUServiceConfiguration, DPUServiceInterface, DPUServiceChain, DPUServiceIPAM, DPUServiceCredentialRequest, DPUServiceNAD, ServiceChainSet, ServiceInterfaceSet Workloads and the chain that connects them

A DPU reports its progress through phases: Initializing → Node Effect → Pending → Prepare BFB → DPU Config → Config FW Parameters → Initialize Interface → OS Installing → DPU Cluster Config → Host Network Configuration → Node Effect Removal → Ready, with Error, Deleting, Rebooting and Perform ARM Force Restart as side states; its status also carries firmware{bmc,nic,uefi}, dpuMode, redfishTaskId and kubeletVersion.[8] Node effect options in the template are taint, noEffect, customLabel or drain.[9]

The reference use case’s first three objects, verbatim from the v26.4.1 manifests:[14][15][16]

apiVersion: operator.dpu.nvidia.com/v1alpha1
kind: DPFOperatorConfig
metadata: {name: dpfoperatorconfig, namespace: dpf-operator-system}
spec:
  overrides: {kubernetesAPIServerVIP: $TARGETCLUSTER_API_SERVER_HOST, kubernetesAPIServerPort: $TARGETCLUSTER_API_SERVER_PORT}
  provisioningController: {dmsTimeout: 900}
  kamajiClusterManager: {disable: false}
  nodeSRIOVDevicePluginController: {disable: false}
---
apiVersion: provisioning.dpu.nvidia.com/v1alpha1
kind: DPUCluster
metadata: {name: dpu-cplane-tenant1, namespace: dpu-cplane-tenant1}
spec:
  type: kamaji
  maxNodes: 1000
  clusterEndpoint:
    keepalived: {interface: $DPUCLUSTER_INTERFACE, vip: $DPUCLUSTER_VIP, virtualRouterID: 126, nodeSelector: {node-role.kubernetes.io/control-plane: ""}}
---
apiVersion: provisioning.dpu.nvidia.com/v1alpha1
kind: BFB
metadata: {name: bf-bundle-$TAG, namespace: dpf-operator-system}
spec: {url: $BFB_URL}   # e.g. https://content.mellanox.com/BlueField/BFBs/Ubuntu24.04/bf-bundle-3.4.0-92_26.04_ubuntu-24.04_64k_prod.bfb

4Reading the reference use case: flavor, deployment, chain

The hbn-ovnk-snap-nvme-$TAG DPUFlavor is the hardware recipe. Its grub.kernelParameters include hugepagesz=2048kB hugepages=2298 iommu.passthrough=1; its nvconfig sets PF_BAR2_ENABLE=0 PER_PF_NUM_SF=1 PF_TOTAL_SF=20 PF_SF_BAR_SIZE=10 NUM_PF_MSIX_VALID=0 PF_NUM_PF_MSIX_VALID=1 PF_NUM_PF_MSIX=228 INTERNAL_CPU_MODEL=1 INTERNAL_CPU_OFFLOAD_ENGINE=0 SRIOV_EN=1 NUM_OF_VFS=46 LAG_RESOURCE_ALLOCATION=1 NVME_EMULATION_ENABLE=1 NVME_EMULATION_NUM_PF=1 NVME_EMULATION_NUM_VF=125 NVME_EMULATION_NUM_MSIX=2 LINK_TYPE_P1=ETH LINK_TYPE_P2=ETH; its ovs.rawConfigScript is the production OVS-DOCA sequence from M4 (doca-init=true, hw-offload=true, br-sfc with p0 as type=dpdk mtu_request=9216, br-dpu with pf0hpf); bfcfgParameters are UPDATE_ATF_UEFI=yes, UPDATE_DPU_OS=yes, WITH_NIC_FW_UPDATE=yes; hostNetworkInterfaceConfigs sets portNumber: 0, dhcp: true, mtu: 1500; and configFiles override /etc/mellanox/mlnx-bf.conf (ENABLE_ESWITCH_MULTIPORT="yes"), /etc/mellanox/mlnx-ovs.conf (CREATE_OVS_BRIDGES="no", OVS_DOCA="yes") and an empty /etc/mellanox/mlnx-sf.conf.[17]

The DPUDeployment hbn-ovnk-snap-nvme binds it all: dpus{bfb: bf-bundle-$TAG, flavor: hbn-ovnk-snap-nvme-$TAG, nodeEffect{drain: true}, dpuSets[{nameSuffix: dpuset1, dpuNodeSelector{matchLabels{feature.node.kubernetes.io/dpu-enabled: "true"}}}], dpuSetStrategy{type: RollingUpdate}}; services ovn, hbn, dts, blueman, snap-node-driver, doca-snap, block-storage-dpu-plugin, spdk-csi-controller-dpu, snap-csi-plugin; and serviceChains.switches wiring {uplink: p0} to hbn/p0_if, {uplink: p1} to hbn/p1_if, {port: ovn} to hbn/pf2dpu2_if, and doca-snap/app_sf (IPAM pool storage-pool) to hbn/snap_if.[18] Each service is a DPUServiceTemplate (helmChart.source{repoURL, version, chart} plus values) and a DPUServiceConfiguration (serviceConfiguration.helmChart.values, interfaces[{name, network}]). For HBN the template pins chart doca-hbn 3.4.0, image tag 3.4.0-doca3.4.0, resources{memory: 6Gi, nvidia.com/bf_sf: 4}; the configuration lists p0_if, p1_if, pf2dpu2_if, snap_if on network mybrhbn with the rule “Interfaces inside the HBN pod must have the _if suffix”, and Multus iprequest annotations for ip_lo (pool loopback) and ip_pf2dpu2 (pool pool1).[19][20] DPUServiceInterface objects declare the uplinks (interfaceType: physical, physical.interfaceName: p0), and a DPUServiceIPAM named loopback allocates ipv4Network{network: 11.0.0.0/24, prefixSize: 32}.[21][22] The DPF page defines the two chain objects: a DPUServiceInterface “declares a physical uplink, host-facing PF or VF, OVS patch interface” and a DPUServiceChain “selects interfaces and defines how they are connected”.[1]

Use-case prerequisites: BlueField-3 with 32 GB; a top-of-rack that supports BGP and EVPN; worker host PF0 on DHCP with MTU 1500; the control-plane OOB port as an OVS bridge with bridge-uplink; VF roles vf0 provisioning, vf1 ovn-kubernetes, the rest via the SR-IOV device plugin; OVN-Kubernetes chart from oci://ghcr.io/mellanox/charts at tag v26.4.1.[13]

Worked → faded → problem: a minimal DPUSet, BFB, DPUFlavor and DPUService set

Goal. Provision every DPU on nodes labeled dpu=true with the 3.4.0 BFB, an HBN-ready flavor, and the HBN service. Field names come from the v26.4.1 types and manifests; check nested shapes with kubectl explain against the installed CRDs.[9][10][11][19]

apiVersion: provisioning.dpu.nvidia.com/v1alpha1
kind: BFB
metadata: {name: bf-bundle-3.4.0, namespace: dpf-operator-system}
spec: {url: https://content.mellanox.com/BlueField/BFBs/Ubuntu24.04/bf-bundle-3.4.0-92_26.04_ubuntu-24.04_64k_prod.bfb}
---
apiVersion: provisioning.dpu.nvidia.com/v1alpha1
kind: DPUFlavor
metadata: {name: hbn-basic, namespace: dpf-operator-system}
spec:
  grub: {kernelParameters: ["hugepagesz=2048kB", "hugepages=2298", "iommu.passthrough=1"]}
  nvconfig:
    - device: "*"
      parameters: ["INTERNAL_CPU_MODEL=1", "INTERNAL_CPU_OFFLOAD_ENGINE=0", "SRIOV_EN=1", "NUM_OF_VFS=16", "PF_TOTAL_SF=20", "PF_SF_BAR_SIZE=10", "LINK_TYPE_P1=ETH", "LINK_TYPE_P2=ETH"]
  ovs: {rawConfigScript: "ovs-vsctl set Open_vSwitch . other_config:doca-init=true\novs-vsctl set Open_vSwitch . other_config:hw-offload=true\nsystemctl restart openvswitch-switch"}
  bfcfgParameters: ["UPDATE_ATF_UEFI=yes", "UPDATE_DPU_OS=yes", "WITH_NIC_FW_UPDATE=yes"]
  hostNetworkInterfaceConfigs: [{portNumber: 0, dhcp: true, mtu: 1500}]
---
apiVersion: provisioning.dpu.nvidia.com/v1alpha1
kind: DPUSet
metadata: {name: dpuset-hbn, namespace: dpf-operator-system}
spec:
  strategy: {type: RollingUpdate, rollingUpdate: {maxUnavailable: 1}}
  dpuNodeSelector: {matchLabels: {dpu: "true"}}
  dpuTemplate:
    spec:
      bfb: {name: bf-bundle-3.4.0}
      dpuFlavor: hbn-basic
      cluster: {name: dpu-cplane-tenant1, namespace: dpu-cplane-tenant1}
      nodeEffect: {drain: true}
---
apiVersion: svc.dpu.nvidia.com/v1alpha1
kind: DPUService
metadata: {name: hbn, namespace: dpf-operator-system}
spec:
  interfaces: [p0_if, p1_if, pf2dpu2_if]   # DPUServiceInterface names, not Helm values
  helmChart:
    source: {repoURL: https://helm.ngc.nvidia.com/nvidia/doca, version: "3.4.0", chart: doca-hbn}
    values:
      image: {repository: nvcr.io/nvidia/doca/doca_hbn, tag: 3.4.0-doca3.4.0}
      resources: {memory: 6Gi, nvidia.com/bf_sf: 4}

Interface attachment is not a Helm value. In the reference it is a DPUServiceConfiguration field, spec.interfaces: [{name: p0_if, network: mybrhbn}, {name: p1_if, network: mybrhbn}, {name: pf2dpu2_if, network: mybrhbn}], and on a standalone DPUService it is spec.interfaces, a list of DPUServiceInterface names in the same namespace.[20][27]

Reasoning, object by object: the BFB is a URL; the flavor must keep the card in DPU mode (INTERNAL_CPU_OFFLOAD_ENGINE=0) because HBN cannot run otherwise, and carries the three bfcfgParameters the reference uses; the DPUSet selects nodes, names the BFB, flavor and cluster, and drains the host during the install; the DPUService pins the same chart, image and resources as the reference template and obeys the _if rule.[17][19][20]

5What changed recently, and the Dell view

v26.4.0 (2026-06-29) introduced DPU operational health conditions, DPU-agent-based provisioning, BFB LTS-to-LTS upgrade, an optional BFB PVC, multi-DPUCluster support, a DPF-managed SR-IOV device plugin, Secure Boot for zero-trust, operator-managed observability with Grafana dashboards, a dpfctl SOS report, and the ArgoCD v2 to v3 move.[6][24] v26.4.1 (2026-08-31, GA) added dpuNodeOOBBridgeName (default br-dpu), a host-agent driver-rebind endpoint, faster host-trusted installs (the install phase completes once DMS returns), an opt-in NoExecute taint (disableHostNetworkReadyNoExecuteTaints: false), a hugepage reduction (“OVS only requires 500 MB”), and nginx 1.30.3 for CVE-2026-42055.[5][24]

Fleet question Where the answer lives
Which DPUs, which image, which recipe DPUSet, BFB, DPUFlavor[9][10][11]
Why is this DPU stuck kubectl get dpu phase plus redfishTaskId or the DMS timeout[8][14]
Which services and how they are wired DPUDeployment services and serviceChains[18]
Can this server run it platform-support: firmware 32.38.1002, Ubuntu 24.04, B3240/B3220/B3210[2]

End of Episode 6 — Case closed

How it ended

Move-in morning. The tenant boots from a drive that is not in the chassis, the wall has a column where the dark monitor used to be, and the operator peels off his PENDING label and sticks it on the taped-up plan you replaced. The new page carries a version you can defend and a floor procurement can check against purchase orders: Kubernetes 1.33 to 1.36, DPU firmware 32.38.1002 or newer, the supported BlueField-3 SKUs.[2] The trust model turned out to be a cabling question, and with the OOB ports uncabled it is host-trusted for this build.[4] The SE closes forty-seven rows. The network lead starts a new notebook, and the last thing you tell her is to re-check the release tags on install day, because this project ships often.[23]

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 on the Dell-lab BlueField-3 and its host (read-only). DPF needs a Kubernetes cluster; if the lab has none, complete steps 1 to 3 only and record the gaps.

  1. Hardware and firmware floor. Host: sudo flint -d /dev/mst/mt41692_pciconf0 q (need 32.38.1002 or newer), sudo mlxconfig -d /dev/mst/mt41692_pciconf0 q INTERNAL_CPU_OFFLOAD_ENGINE SRIOV_EN NUM_OF_VFS (DPU mode expected), mst version (MFT 4.33.0-169 in the matrix). DPU: free -g (32 GB SKU required by the use case), cat /etc/mlnx-release.[2][13]

  2. Host OS floor. lsb_release -a (Ubuntu 24.04), containerd --version, ip -4 addr show for PF0 on DHCP with MTU 1500, and kubectl version --short 2>/dev/null (1.33 to 1.36 if a cluster exists). Record pass or fail per line.[2][13]

  3. Fabric check. From M5.1: does the top-of-rack facing p0 run BGP and EVPN? If it is a Dell OS10 leaf, confirm the unnumbered interface configuration from M5.1 is present. Without it, HBN in the DPUDeployment will never peer.[13]

Mutating steps (only with a cluster that you own), each with rollback:

  1. Install the operator. helm repo add --force-update dpf-repository https://helm.ngc.nvidia.com/nvidia/doca && helm repo update, then helm upgrade --install -n dpf-operator-system dpf-operator dpf-repository/dpf-operator --version=v26.4.1 --create-namespace, then kubectl rollout status deployment --namespace dpf-operator-system dpf-operator-controller-manager. Expected: rollout complete. Rollback: helm uninstall -n dpf-operator-system dpf-operator.[3]

  2. Apply the operator config. Fill $TARGETCLUSTER_API_SERVER_HOST and $TARGETCLUSTER_API_SERVER_PORT in operatorconfig.yaml and kubectl apply -f operatorconfig.yaml. Expected: kubectl get dpfoperatorconfig -n dpf-operator-system shows the object and the system components come up. Rollback: kubectl delete -f operatorconfig.yaml.[14]

  3. Stop before provisioning. Applying a BFB plus DPUSet re-images the lab card and drains the host. Do it only in an agreed window: apply bfb.yaml, the DPUCluster and a one-node DPUSet, then watch kubectl get dpu -A -w walk the phases from Initializing to Ready. Rollback: delete the DPUSet (the DPU object enters Deleting), then re-provision the card with the previous BFB via rshim as in M2.[8][16]

  4. Record. Save kubectl get dpu -A -o yaml (phase, dpuMode, firmware{bmc,nic,uefi}, kubeletVersion) as the lab’s DPF baseline.[8]

Retrieval check

11 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 DPF does for a customer with 200 BlueField-3 servers and what they must already have in place.

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

Sources

Facts in this lesson were checked against DOCA 3.5.0 DPF page plus NVIDIA/doca-platform v26.4.1 docs and API types, 2026-09-06. Dates are when each page was fetched.

  1. DOCA Platform Framework (DPF) service page · fetched 2026-09-06 · DOCA 3.5.0
  2. doca-platform v26.4.1: platform-support.md · fetched 2026-09-06
  3. doca-platform v26.4.1: getting started, host-trusted mode · fetched 2026-09-06
  4. doca-platform v26.4.1: getting started, zero-trust mode · fetched 2026-09-06
  5. doca-platform v26.4.1 release notes · fetched 2026-09-06
  6. doca-platform v26.4.0 release notes · fetched 2026-09-06
  7. doca-platform v26.4.1: dpfoperatorconfig_types.go · fetched 2026-09-06
  8. doca-platform v26.4.1: dpu_types.go · fetched 2026-09-06
  9. doca-platform v26.4.1: dpuset_types.go · fetched 2026-09-06
  10. doca-platform v26.4.1: bfb_types.go · fetched 2026-09-06
  11. doca-platform v26.4.1: dpuflavor_types.go · fetched 2026-09-06
  12. doca-platform v26.4.1: dpucluster_types.go · fetched 2026-09-06
  13. doca-platform v26.4.1: host-trusted use case hbn-ovnk-snap README · fetched 2026-09-06
  14. doca-platform v26.4.1: operatorconfig.yaml · fetched 2026-09-06
  15. doca-platform v26.4.1: dpucluster.yaml · fetched 2026-09-06
  16. doca-platform v26.4.1: bfb.yaml · fetched 2026-09-06
  17. doca-platform v26.4.1: dpuflavor.yaml · fetched 2026-09-06
  18. doca-platform v26.4.1: dpudeployment.yaml · fetched 2026-09-06
  19. doca-platform v26.4.1: dpuservicetemplate_hbn.yaml · fetched 2026-09-06
  20. doca-platform v26.4.1: dpuserviceconfiguration_hbn.yaml · fetched 2026-09-06
  21. doca-platform v26.4.1: physical-ifaces.yaml · fetched 2026-09-06
  22. doca-platform v26.4.1: hbn-loopback-ipam.yaml · fetched 2026-09-06
  23. NVIDIA/doca-platform tags (API) · fetched 2026-09-06
  24. NVIDIA/doca-platform releases (API) · fetched 2026-09-06
  25. doca-platform releases index (v26.4.1 is latest; no v26.8.0 tag exists) · fetched 2026-09-06
  26. doca-platform v26.4.1 full git tree (API) · fetched 2026-09-06
  27. doca-platform v26.4.1: dpuservice_types.go (DPUServiceSpec.Interfaces) · fetched 2026-09-06

The same idea elsewhere

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