Skip to navigation

Redfish Management

View as Markdown

This appendix gives an overview of Redfish management for cluster devices. Redfish is a standard RESTful API for managing servers, storage, and network infrastructure. BCM provides integration with Redfish-enabled devices for out-of-band management, hardware monitoring, and configuration.

Section N.1 provides an overview of Redfish and its role in cluster management.

Section N.2 covers commands for querying and managing devices using Redfish.

N.1 Redfish Overview

Redfish is an industry-standard specification developed by the DMTF (Distributed Management Task Force) that provides a RESTful interface for managing modern data center hardware. It replaces older protocols like IPMI with a more modern, secure, and extensible approach.

N.1.1 Redfish Features

Redfish features include:

  • RESTful API using JSON data format

  • Secure communication over HTTPS

  • Standard schema for hardware components (https://redfish.dmtf.org/redfish/schema_index)

  • Event-driven notifications

  • Support for firmware updates

  • Power and thermal management

N.1.2 Redfish In BCM

BCM uses Redfish for:

  • BMC (Baseboard Management Controller) communication (section 3.7)

  • Hardware inventory collection (section 14.11.1)

  • Power control operations (section N.2.3)

  • Sensor and health monitoring (section G.2.3 and G.1.10)

  • Firmware management (section 14.5.2)

  • Leak detection in NVL8 hardware (section 3.3.2.5 of the NVIDIA Mission Control Manual)

N.2 Redfish Commands

Redfish operations can be performed using commands available in the device mode of cmsh.

N.2.1 Redfish Status

Device status and Redfish connectivity can be verified through standard device status (here) commands, just as for nodes:

Example

[basecm11->device[b13-1-s1-ibcl-01]->interfaces[rf0]]% show
Parameter Value
-------------------------------- ------------------------------------------------
Revision
Type bmc
Network device name rf0
Network ipminet12
...
[basecm11->device[b13-1-s1-ibcl-01]->interfaces[rf0]]% ds b13-1-s1-ibcl-01
b13-1-s1-ibcl-01 ......... [ UP ]

N.2.2 Hardware Inventory Using Redfish

The hardwareinventoryinfo command (section 14.11.1) retrieves hardware inventory data from devices using Redfish when available. This includes component information such as CPUs, memory, GPUs, and network adapters.

N.2.3 Power Control Using Redfish

Power control operations (section 4.2) can be performed on Redfish-enabled devices using the standard power commands in device mode:

Example

[basecm11->device]% power on node001
[basecm11->device]% power off node001
[basecm11->device]% power reset node001

For devices with Redfish BMCs, these commands are associated with the DC power cycle terminology used in Redfish. The commands communicate with the BMC using the Redfish API to perform the requested power action and assume that the AC power source to the BMC is on.

AC power cycle (here) is the term used to describe a power reset of the BMC itself.

N.2.4 Redfish Subscriptions: redfishsubscriptions

The redfishsubscriptions command is run from device mode, and displays the status of Redfish event subscriptions for devices such NVLink switches.

BCM subscribes to Redfish events from device BMCs to receive real-time notifications about hardware events, alerts, and status changes.

Example

[basecm11->device]% redfishsubscriptions
hostname id initialized ip kind port ssl subscribed uuid
------------------- ----------- ------------ --------------- -------- ----- ----- ---------- -----...--
a07-p01-dgx-02-c01 3111116886 true 10.102.174.132 GB300 443 true true 1be5d...97
a07-p01-dgx-02-c02 454918174 true 10.102.174.133 GB300 443 true true a8eb0...b4
a07-p01-dgx-02-c03 2737332992 true 10.102.174.134 GB300 443 true true 8754c...79
...
a07-p01-nvsw-01 2220290718 true 10.102.174.150 GB200SW 443 true true 58519...65
a07-p01-nvsw-02 2506796990 true 10.102.174.151 GB200SW 443 true true 1f792...61
...

The output shows:

  • hostname: The device hostname

  • id: The subscription identifier

  • initialized: Whether the subscription has been initialized

  • ip: The BMC IP address

  • kind: The device type (GB300 for compute trays, GB200SW for NVLink switches)

  • port: The Redfish API port (typically 443 for HTTPS)

  • ssl: Whether SSL/TLS is enabled

  • subscribed: Whether the subscription is active

  • uuid: The unique identifier for the device

N.2.5 Redfish Event Testing: redfishevent

The redfishevent command can be used to test Redfish event delivery. The -m|--message option sends a custom message that can be used to verify that event subscriptions are working correctly:

Example

[basecm11->device]% redfishevent -m test1
Tue Jan 13 05:40:27 2026 [warning] a07-p01-dgx-02-c05: test1
For details type: events details 7

Running the command multiple times triggers test events from different subscribed devices, confirming that Redfish event delivery is functioning across the cluster. The events are logged and can be viewed using the events command.

The redfishevent command has options for targeting specific nodes. Details can be seen by running the help command (help redfishevent).

N.2.6 Redfish HTTP Commands

BCM provides commands for direct Redfish API access using standard HTTP methods. These commands allow administrators to query and modify device configurations directly through the Redfish interface.

N.2.6.1 Redfish GET: redfishget

The redfishget command carries out an HTTP GET request to a Redfish endpoint. This is used to retrieve information from devices:

Example

[basecm11->device]% redfishget -r a07 /redfish/v1/Chassis
==== a07-p01-dgx-02-c02, curl code: 0, http code: 200 ====
{
"@odata.id": "/redfish/v1/Chassis",
"@odata.type": "#ChassisCollection.ChassisCollection",
"Members": [
{ "@odata.id": "/redfish/v1/Chassis/BMC_0" },
{ "@odata.id": "/redfish/v1/Chassis/CBC_0" },
{ "@odata.id": "/redfish/v1/Chassis/Chassis_0" },
...
]
}

N.2.6.2 Redfish POST: redfishpost

The redfishpost command carries out an HTTP POST request to a Redfish endpoint. This is used to create resources or trigger actions. The -f|--filename option specifies a JSON template file, and -p|--parameter option is used for parameter substitutions:

Example

[basecm11->device]% redfishpost -r rack01 /redfish/v1/Chassis/Chassis_0/Sensors/LeakDetector \\
-f /cm/local/examples/cmd/redfish/sensor-leak-threshold.json -p reading=0.5

N.2.6.3 Redfish PUT: redfishput

The redfishput command carries out an HTTP PUT request to a Redfish endpoint. This is used to replace an entire resource:

Example

[basecm11->device]% redfishput -n node001 /redfish/v1/Systems/System_0 \\
-f /cm/local/examples/cmd/redfish/system-config.json

N.2.6.4 Redfish PATCH: redfishpatch

The redfishpatch command carries out an HTTP PATCH request to a Redfish endpoint. This is used to partially update a resource:

Example

[basecm11->device]% redfishpatch -n node001 /redfish/v1/Systems/System_0 \\
-f /cm/local/examples/cmd/redfish/system-update.json

N.2.6.5 Redfish DELETE: redfishdelete

The redfishdelete command carries out an HTTP DELETE request to a Redfish endpoint. This is used to remove resources:

Example

[basecm11->device]% redfishdelete -n node001 /redfish/v1/EventService/Subscriptions/1

All Redfish HTTP commands support filtering by node, category, rack, and other criteria. Details can be seen by running the help command (for example: help redfishget).