This document describes the Redfish routes related to the Managers collection, focusing on the /redfish/v1/Managers/bmc instance, primarily handled by redfish/routes/managers.cc.
The route registration behavior depends on the central configuration:
/redfish/v1/Managers/bmc/ and the FanMode.Change actions) are only registered if the thermal control submodule is enabled: sensor_collector_module.thermal_control_sub_module.enabled = true in the central config.Google.Wipe and Google.InstallConfiguration actions) are unconditionally registered.This logic is defined in redfish/routes/all_routes.cc.
/redfish/v1/Managers/bmcmanagers.cc::HandleGetManagersBmcThe following JSON snippet demonstrates a sample Redfish representation of the BMC Manager resource (with specific platform identifiers redacted) as exposed over HTTP GET requests:
{ "@odata.id": "/redfish/v1/Managers/bmc", "@odata.type": "#Manager.v1_16_0.Manager", "Actions": { "#Manager.FanMode.Change": { "@Redfish.ActionInfo": "/redfish/v1/Managers/bmc/FanMode.Change.ActionInfo", "target": "/redfish/v1/Managers/bmc/Actions/Manager.FanMode.Change" }, "#Manager.Reset": { "@Redfish.ActionInfo": "/redfish/v1/Managers/bmc/ResetActionInfo", "target": "/redfish/v1/Managers/bmc/Actions/Manager.Reset" }, "#Manager.ResetToDefaults": { "ResetType@Redfish.AllowableValues": [ "ResetAll" ], "target": "/redfish/v1/Managers/bmc/Actions/Manager.ResetToDefaults" }, "Oem": { "#Google.InstallConfiguration": { "@Redfish.ActionInfo": "/redfish/v1/Managers/bmc/Oem/Google/InstallConfigurationActionInfo", "target": "/redfish/v1/Managers/bmc/Actions/Oem/Google.InstallConfiguration" }, "#Google.Wipe": { "@Redfish.ActionInfo": "/redfish/v1/Managers/bmc/Oem/Google/WipeActionInfo", "target": "/redfish/v1/Managers/bmc/Actions/Oem/Google.Wipe" } } }, "Certificates": { "@odata.id": "/redfish/v1/Managers/bmc/Certificates" }, "DateTime": "2026-05-10T08:58:49+00:00", "DateTimeLocalOffset": "+00:00", "DedicatedNetworkPorts": { "@odata.id": "/redfish/v1/Managers/bmc/DedicatedNetworkPorts" }, "Description": "Baseboard Management Controller", "EthernetInterfaces": { "@odata.id": "/redfish/v1/Managers/bmc/EthernetInterfaces" }, "FirmwareVersion": "gbmc-release-25.27.206.0", "GraphicalConsole": { "ConnectTypesSupported": [ "KVMIP" ], "MaxConcurrentSessions": 4, "ServiceEnabled": true }, "Id": "bmc", "LastResetTime": "2026-05-07T06:47:07+00:00", "Links": { "ActiveSoftwareImage": { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/8827a812" }, "ManagerForChassis": [ { "@odata.id": "/redfish/v1/Chassis/Chassis_0" } ], "ManagerForChassis@odata.count": 1, "ManagerForServers": [ { "@odata.id": "/redfish/v1/Systems/system1" } ], "ManagerForServers@odata.count": 1, "ManagerInChassis": { "@odata.id": "/redfish/v1/Chassis/Chassis_1" }, "SoftwareImages": [ { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/8827a812" } ], "SoftwareImages@odata.count": 1 }, "Location": { "PartLocation": { "LocationType": "Embedded", "ServiceLabel": "BMC" }, "PartLocationContext": "SCM/DOWNLINK" }, "LogServices": { "@odata.id": "/redfish/v1/Managers/bmc/LogServices" }, "ManagerDiagnosticData": { "@odata.id": "/redfish/v1/Managers/bmc/ManagerDiagnosticData" }, "ManagerType": "BMC", "Model": "OpenBmc", "Name": "OpenBmc Manager", "NetworkProtocol": { "@odata.id": "/redfish/v1/Managers/bmc/NetworkProtocol" }, "Oem": { "@odata.id": "/redfish/v1/Managers/bmc#/Oem", "@odata.type": "#OemManager.Oem", "Google": { "BootTime": { "@odata.id": "/redfish/v1/Managers/bmc/Oem/Google/BootTime" }, "PsiMetrics": { "@odata.id": "/redfish/v1/Managers/bmc/Oem/Google/PsiMetrics" } }, "OpenBmc": { "@odata.id": "/redfish/v1/Managers/bmc#/Oem/OpenBmc", "@odata.type": "#OemManager.OpenBmc", "Certificates": { "@odata.id": "/redfish/v1/Managers/bmc/Truststore/Certificates" }, "Fan": { "@odata.id": "/redfish/v1/Managers/bmc#/Oem/OpenBmc/Fan", "@odata.type": "#OemManager.Fan", "FanControllers": { "@odata.id": "/redfish/v1/Managers/bmc#/Oem/OpenBmc/Fan/FanControllers", "@odata.type": "#OemManager.FanControllers", "FAN01": { "@odata.id": "/redfish/v1/Managers/bmc#/Oem/OpenBmc/Fan/FanControllers/FAN01", "@odata.type": "#OemManager.FanController", "DCoefficient": 0.0, "FFGainCoefficient": 1.0, "FFOffCoefficient": 0.0, "ICoefficient": 0.0, "ILimitMax": 0.0, "ILimitMin": 0.0, "Inputs": [ "fantach_fan0_front_TACH", "fantach_fan1_front_TACH" ], "OutLimitMax": 100.0, "OutLimitMin": 30.0, "PCoefficient": 0.0, "SlewNeg": 0.0, "SlewPos": 0.0, "Zones": [ { "@odata.id": "/redfish/v1/Managers/bmc#/Oem/OpenBmc/Fan/FanZones/Zone_1" } ] } }, "FanZones": { "@odata.id": "/redfish/v1/Managers/bmc#/Oem/OpenBmc/Fan/FanZones", "@odata.type": "#OemManager.FanZones", "Zone_1": { "@odata.id": "/redfish/v1/Managers/bmc#/Oem/OpenBmc/Fan/FanZones/Zone_1", "@odata.type": "#OemManager.FanZone", "FailSafe": "Active", "FanNames": [ "fanpwm_fan0_PWM", "fanpwm_fan1_PWM" ], "Id": 1, "SensorNames": [ "fantach_fan0_front_TACH", "fantach_fan1_front_TACH" ] } }, "PidControllers": { "@odata.id": "/redfish/v1/Managers/bmc#/Oem/OpenBmc/Fan/PidControllers", "@odata.type": "#OemManager.PidControllers", "HPM0_IBC_T": { "@odata.id": "/redfish/v1/Managers/bmc#/Oem/OpenBmc/Fan/PidControllers/HPM0_IBC_T", "@odata.type": "#OemManager.PidController", "DCoefficient": 0.0, "FFGainCoefficient": 0.0, "FFOffCoefficient": 0.0, "ICoefficient": -0.1, "ILimitMax": 100.0, "ILimitMin": 30.0, "Inputs": [ "temperature_IBC_T" ], "OutLimitMax": 0.0, "OutLimitMin": 0.0, "PCoefficient": -3.0, "SetPoint": 95.0, "SlewNeg": 0.0, "SlewPos": 0.0 } }, "Profile@Redfish.AllowableValues": [ "Zone_1" ] } } }, "PowerState": "On", "SerialConsole": { "ConnectTypesSupported": [ "IPMI", "SSH" ], "MaxConcurrentSessions": 15, "ServiceEnabled": true }, "Status": { "Health": "OK", "State": "Enabled" } }
The GET response retrieves and populates the following properties:
| Property | Type | Description |
|---|---|---|
Name | String | Hardcoded to "OpenBmc Manager". |
Description | String | Hardcoded to `"Baseboard Management |
| : : : Controller"`. : | ||
PowerState | String | Hardcoded to "On". |
ManagerType | String | Hardcoded to "BMC". |
Model | String | Hardcoded to "OpenBmc". |
UUID | String | Fetched from the Store's BMC UUID. |
FirmwareVersion | String | Fetched from the Store's BMC firmware |
| : : : version. : | ||
DateTime | String | Current BMC time formatted in UTC RFC3339. |
DateTimeLocalOffset | String | Hardcoded to "+00:00". |
LastResetTime | String | The timestamp when the BMC was last reset, |
| : : : in UTC RFC3339. : | ||
Status | Object | {"Health": "OK", "State": "Enabled"}. |
The Links section contains references to related resources:
ManagerForChassis: A list containing the chassis that this BMC manages (derived from ManagerInfo.manager_for_chassis in FRU data).ManagerForServers: A list of systems managed by this BMC (derived from ManagerInfo.manager_for_servers in FRU data).ManagerInChassis: The chassis in which this BMC is physically located (derived from ManagerInfo.manager_in_chassis in FRU data).ActiveSoftwareImage & SoftwareImages: Links to the firmware inventory. > [!NOTE] > These links are only populated if the install module is disabled (install_module.enabled = false in central config). If the install module is enabled, software management is owned by the update service and task service.Certificates: Points to /redfish/v1/Managers/bmc/Truststore/Certificates.Fan:FanControllers: Dynamically lists all Fan PID Controllers.FanZones: Dynamically lists all Thermal Zones.PidControllers: Dynamically lists all PID Controllers.StepwiseControllers: Stepwise controllers.Profile@Redfish.AllowableValues: Allowable values for the active thermal profile, listing the zone names (e.g., Zone_0, Zone_1).BootTime: Points to /redfish/v1/Managers/bmc/Oem/Google/BootTime.PsiMetrics: Points to /redfish/v1/Managers/bmc/Oem/Google/PsiMetrics.Provides the physical location of the BMC derived from the topology config:
PartLocation/ServiceLabel: The service label extracted from StableId.PartLocation/LocationType: Hardcoded to "Embedded".PartLocationContext: The location context string from StableId.SerialConsole: Supported connections. ServiceEnabled is true, MaxConcurrentSessions is 15, and ConnectTypesSupported are ["IPMI", "SSH"].GraphicalConsole: Supported connections. ServiceEnabled is true, MaxConcurrentSessions is 4, and ConnectTypesSupported are ["KVMIP"]./redfish/v1/Managers/bmcmanagers.cc::HandlePatchManagersBmcThe request body should specify coefficients under the OEM OpenBmc Fan section:
{ "Oem": { "OpenBmc": { "Fan": { "FanControllers": { "<controller_id>": { "PCoefficient": 1.5, "ICoefficient": 0.1, "DCoefficient": 0.05, "FFOffCoefficient": 10.0, "FFGainCoefficient": 0.5 } }, "PidControllers": { "<controller_id>": { "PCoefficient": 2.0, "ICoefficient": 0.2, "DCoefficient": 0.1, "FFOffCoefficient": 5.0, "FFGainCoefficient": 0.2, "SetPoint": 45.0 } } } } } }
400 Bad Request.204 NoContent on successful application./redfish/v1/Managers/bmc/Actions/Manager.FanMode.Change (POST)/redfish/v1/Managers/bmc/FanMode.Change.ActionInfo (GET)FanMode (String, Required): Must be either "Manual" or "Auto".Updating to "Manual" allows external manual control over the fan controllers, while "Auto" enables the built-in thermal control algorithms. The mode is set in the Store using SetManualMode().
/redfish/v1/Managers/bmc/Actions/Oem/Google.Wipe (POST)/redfish/v1/Managers/bmc/Oem/Google/WipeActionInfo (GET)WipeHostHss (Boolean, Required): Wipe Host Secret Seed.WipeBmcNssAndWipeDioriteNss (Boolean, Required): Wipe BMC and Diorite cryptographic keys.WipeBmcRwfs (Boolean, Required): Wipe BMC Read-Write filesystem./usr/share/binaryblob/config.json. If missing, the operation is skipped with an error (Host HSS is not managed by this BMC).sysFilePath, offsetBytes, and maxSizeBytes for each entry.sysFilePath and writes 0xff bytes starting at offsetBytes for maxSizeBytes to clear host secret seeds./var/google/bmc_nss from the filesystem./usr/share/bmc-crypto/key.json. If missing, returns an error.sysFilePath (EEPROM), reads 8 bytes at offset to determine the key size (interpreting it as Little Endian).0xff (writing a total of key_size + 8 bytes of 0xff at the offset)./var/google/do-rwfs-purge.The response returns a list of results inside /@Message.ExtendedInfo, describing the outcome for each requested operation.
/redfish/v1/Managers/bmc/Actions/Oem/Google.InstallConfiguration (POST)/redfish/v1/Managers/bmc/Oem/Google/InstallConfigurationActionInfo (GET)Type (String, Required): Must be "Uhmm". (Values "Dag" and "Network" are defined but not yet implemented).Base64EncodedBinary (String, Required): Base64-encoded string of a serialized uhmm::OfflineData protobuf message.Base64EncodedBinary.uhmm::OfflineData protocol buffer. If parsing fails, returns 400 Bad Request./var/google/uhmm/data.txtpb on the BMC.204 NoContent on success.The following protobuf definitions are relevant to the Managers resource:
central_config.proto: Configures module enablement (specifically SensorCollectorModule.ThermalControlSubmodule).
topology_config.proto: Outlines the system topology used to locate the BMC resource.
stable_id.proto: Populates location context and service labels.
offline_data.proto: Defines the schema for the Base64 payload in the InstallConfiguration action.
The implementation of these endpoints can be referenced in the following files:
redfish/routes/managers.cc: Main handler logic.
redfish/routes/all_routes.cc: Route registration.