Skip to content

fix: BF4 part number and card1 difference for DGX VR BF4#3055

Open
hakhondzadeh wants to merge 1 commit into
NVIDIA:mainfrom
hakhondzadeh:VR_BF4
Open

fix: BF4 part number and card1 difference for DGX VR BF4#3055
hakhondzadeh wants to merge 1 commit into
NVIDIA:mainfrom
hakhondzadeh:VR_BF4

Conversation

@hakhondzadeh

@hakhondzadeh hakhondzadeh commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

VR BF4 DPU BMCs on Vera Rubin NVL72 trays expose the product part number on Chassis/Bluefield_BMC or Chassis/BlueField_BMC_0, not on Card1. Host trays use SKU prefix 900-9D4A4, which was not treated as BF4.

Related issues

(https://jirasw.nvidia.com/browse/FORGE-8111)

Type of Change

  • Fix - Bug fixes

Testing

  • Unit tests added/updated

Additional notes:

curl -sk 'https://10.73.114.70/redfish/v1/Chassis/BlueField_BMC_0' | grep -i PartNumber "PartNumber": "900-9D4A4-00CB-TS4",

curl -sk 'https://10.73.114.70/redfish/v1/Chassis/Card1' { "error": { "@Message.ExtendedInfo": [ { "@odata.type": "#Message.v1_1_1.Message", "Message": "The requested resource of type Chassis named 'Card1' was not found.",

@hakhondzadeh hakhondzadeh requested a review from a team as a code owner July 1, 2026 05:33
@coderabbitai

coderabbitai Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

Adds a fallback mechanism to EndpointExplorationReport::dpu_part_number that scans chassis entries for BF4 DPU product chassis ids when Card1 lacks a part number, extends is_bf4_dpu_part_number with a new Vera Rubin SKU prefix, and updates unit tests accordingly.

Changes

BF4 DPU part number fallback

Layer / File(s) Summary
Fallback logic and SKU prefix extension
crates/api-model/src/site_explorer/mod.rs
Adds a chassis-based fallback to dpu_part_number when Card1 is empty, introduces private helpers to identify BF4 DPU product chassis ids and extract trimmed part numbers, and extends is_bf4_dpu_part_number to recognize the 900-9d4a4 prefix alongside 900-9d4b4.
Test fixture and assertions for fallback behavior
crates/api-model/src/site_explorer/mod.rs
Adds a fixture builder dpu_report_with_bf4_bmc_chassis, replaces prior fallback test with assertions verifying Card1 preference and BF4 BMC fallback, and adds a test for the new Vera Rubin SKU prefix match/reject behavior.

Estimated code review effort: 2 (Simple) | ~10 minutes

Estimated code review effort: 2 (Simple) | ~10 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the BF4 part-number fallback and SKU recognition change.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description check ✅ Passed The description directly matches the implemented BF4 part-number fallback and the added Vera Rubin SKU prefix support.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
crates/api-model/src/site_explorer/mod.rs (1)

937-954: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Use the shared DPU chassis matcher here as well. machine_id_serial_number still hardcodes Bluefield_BMC, so BF4 trays that only expose BlueField_BMC_0 will not produce a machine ID even though this codebase already treats both chassis IDs as valid elsewhere. Reusing is_dpu_product_chassis_id keeps the BF4 serial fallback correct and consistent.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@crates/api-model/src/site_explorer/mod.rs` around lines 937 - 954, The
machine ID serial fallback in machine_id_serial_number still hardcodes the
Bluefield_BMC chassis ID, so BF4 systems exposing BlueField_BMC_0 will be
missed. Update the DPU fallback in this method to reuse the shared
is_dpu_product_chassis_id matcher instead of checking a single literal chassis
id, while keeping the existing trim and non-empty filtering behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@crates/api-model/src/site_explorer/mod.rs`:
- Around line 937-954: The machine ID serial fallback in
machine_id_serial_number still hardcodes the Bluefield_BMC chassis ID, so BF4
systems exposing BlueField_BMC_0 will be missed. Update the DPU fallback in this
method to reuse the shared is_dpu_product_chassis_id matcher instead of checking
a single literal chassis id, while keeping the existing trim and non-empty
filtering behavior.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: f30f257f-5c00-4f0a-adb1-231b9e2e1534

📥 Commits

Reviewing files that changed from the base of the PR and between 192689c and 23155b9.

📒 Files selected for processing (1)
  • crates/api-model/src/site_explorer/mod.rs

@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown

🔍 Container Scan Summary

Service Total Critical High Medium Low Other
boot-artifacts-aarch64 3 0 0 3 0 0
boot-artifacts-x86_64 3 0 0 3 0 0
forge-admin-cli-x86_64 302 6 30 114 8 144
machine-validation-runner 765 30 194 283 37 221
machine_validation 765 30 194 283 37 221
machine_validation-aarch64 765 30 194 283 37 221
nvmetal-carbide 765 30 194 283 37 221
TOTAL 3368 126 806 1252 156 1028

Per-CVE detail lives in the per-service grype-* artifacts (JSON + SARIF). Severity counts only — no CVE IDs published here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant