- Firmware Management
- Chassis
- Certificate Service
- Session Service
- User Management
- Show BMC User Account Configuration
- Show BMC User Accounts
- Create New BMC User
- Change BMC User Password
- Change BMC User Account Permissions
- Change BMC Account Lockout Duration
- Change BMC Minimum Password Length
- Change BMC Account Lockout Threshold
- Show BMC Account Service Roles
- Show BMC User Account Service Role Options
- Enable TLS Authentication
- Configure Client-Certificate MFA Policy
- Set SSH Preferred Authentications
- Attestation
- Show System RoT List
- Show ROT Security Information
- Generate ROT SPDM Information
- Show ROT SPDM Generation Status
- Show ROT SPDM Information
- Set ROT Automatic Background Copy State
- Show ROT Automatic Background Copy Status
- Show ROT Automatic Background Copy State
- Show Minimum Security Version Information for Application Firmware
- Power Management
- Serial over LAN
- Time Management
- Network Interfaces
- EEPROM
- Temperature Sensor
- Service Identification
- Location Indicator LED
- Debug Information
- Check Existing Debug Information Files
- Generate Debug Information
- Show Debug Information Generation Status
- Output Debug Information To File
- Show Allowed Components to Get Debug Information
- Generate Debug Information For Specific Component
- Show Debug Information for Specific Component Generation Status
- Output Debug Information for Specific Component to File
- Debug Token (CRDT)
- Leakage Sensor
- Factory Reset
- eMMC Secure Erase
- Rsyslog
- Customer Support Debug Token (CRCS)
- ASIC Firmware Error Injection
Firmware Management
The firmware management section is composed of the following APIs, some of which work in conjunction:
The last three APIs are related to updating firmware components in the system.
The Update Firmware API initiates the task of updating the firmware of one or more firmware components in the system. Following that task initiation, one can call the Show Update Firmware Status API to check the state of that task (i.e., whether a task is still running or completed).
Show Firmware Inventory
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X GET https://<bmc_ip>/redfish/v1/UpdateService/FirmwareInventory | |
Description | This Redfish API shall list all available firmware components: BMC, CPU, and so forth. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | ||
Response Example | "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory", "@odata.type": "#SoftwareInventoryCollection.SoftwareInventoryCollection", "Members": [ { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/CPLD_0" }, { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/MGX_FW_BMC_0" }, { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/MGX_FW_CPU_0" }, { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/MGX_FW_ERoT_BMC_0" }, { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/MGX_FW_ERoT_CPU_0" }, { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/MGX_FW_ERoT_FPGA_0" }, { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/MGX_FW_ERoT_ETHSwitch_0" }, { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/MGX_FW_ERoT_ETHSwitch_1" }, ], Members@odata.count: 11, "Name": "Software Inventory Collection" | |
Related Commands | Show Firmware Version & Health | |
Notes | ||
Show Firmware Version & Health
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X GET https://<bmc_ip>/redfish/v1/UpdateService/FirmwareInventory/<comp_name> | |
Description | This Redfish API shall list component and version information and health. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
comp_name | Component name. Should match one of the options returned by the Show Firmware Inventory command. | |
Default | N/A | |
History | ||
Response Example | { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/MGX_FW_BMC_0", "@odata.type": "#SoftwareInventory.v1_4_0.SoftwareInventory", "Description": "BMC image", "Id": "MGX_FW_BMC_0", "Manufacturer": "NVIDIA", "Name": "Software Inventory", "Oem": { "Nvidia": { "@odata.type": "#NvidiaSoftwareInventory.v1_2_0.NvidiaSoftwareInventory", "ActiveFirmwareSlot": { "BuildType": "Release", "FirmwareComparisonNumber": 3932465, "FirmwareState": "Activated", "SlotId": 1, "Version": "88.0060.0305" }, "InactiveFirmwareSlot": { "BuildType": "Release", "FirmwareComparisonNumber": 3932261, "FirmwareState": "ImageCopyPending", "SlotId": 0, "Version": "88.0060.0101" }, "StageOnlyUpdateOptionSupported": true } }, "RelatedItem": [ { "@odata.id": "/redfish/v1/Chassis/MGX_BMC_0" } ], "RelatedItem@odata.count": 1, "SoftwareId": "0x0010", "Status": { "Conditions": [], "Health": "OK", "HealthRollup": "OK", "State": "Enabled" }, "Updateable": true, "Version": "88.0060.0305", "WriteProtected": false} | |
Related Commands | Show Firmware Inventory | |
Notes | ||
Updating Firmware
All firmware updates should be performed via NVOS. Only the BIOS firmware may be updated using this method, and only as a last resort if absolutely necessary.
curl -k -u <user>:<p/w> https://<bmc_ip>/redfish/v1/UpdateService/update-multipart --form 'UpdateParameters={"Targets":["<target>"],"ForceUpdate":<force_flag>};type=application/json' --form "UpdateFile=@<image_file>;type=application/octet-stream" | ||
Description | This Redfish API shall update the firmware image. The image format must be in fwpkg format, suitable for PLDM. This API can be used when the BMC needs to check for identical or lower versions which are about to be updated. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
target | Target to be updated: (Only BIOS should be used from BMC) | |
force_flag | Force flag options: | |
image_name | fwpkg image name and path | |
id (return value) | task_id_number | |
Default | N/A | |
History | ||
Response Example | { "@odata.id": "/redfish/v1/TaskService/Tasks/0", "@odata.type": "#Task.v1_4_3.Task", "Id": "0", "TaskState": "Running", "TaskStatus": "OK" } | |
Related Commands | Show Firmware Inventory | |
Notes |
| |
Show Update Firmware Status
Redfish API | curl -s -k -u <user>:<p/w> -X GET https://<bmc_ip>/redfish/v1/TaskService/Tasks/<task_id_number> | |
Description | This Redfish API shall be used to get the Update Firmware task state. When task state changes from “Running” to “Completed”, the firmware is fully updated or the firmware update task has a different result. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
task_id_number | Return value taken from Update Firmware command | |
Default | N/A | |
History | ||
Response Example | Response Example for Updating Firmware with Multipart API when using the same formware version as the installed one, with force flag set to 'true': { "@odata.id": "/redfish/v1/TaskService/Tasks/4", "@odata.type": "#Task.v1_4_3.Task", "EndTime": "2025-04-28T09:05:02+00:00", "HidePayload": false, "Id": "4", "Messages": [ { "@odata.type": "#Message.v1_1_1.Message", "Message": "The task with Id '4' has started.", "MessageArgs": [ "4" ], "MessageId": "TaskEvent.1.0.3.TaskStarted", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#MessageRegistry.v1_4_1.MessageRegistry", "Message": "The target device 'MGX_FW_BMC_0' will be updated with image '88.0002.1038'.", "MessageArgs": [ "MGX_FW_BMC_0", "88.0002.1038" ], "MessageId": "Update.1.0.TargetDetermined", "Resolution": "None.", "Severity": "OK" }, { "@odata.type": "#Message.v1_1_1.Message", "Message": "The task with Id '4' has changed to progress 100 percent complete.", "MessageArgs": [ "4", "100" ], "MessageId": "TaskEvent.1.0.3.TaskProgressChanged", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#Message.v1_1_1.Message", "Message": "The task with Id '4' has completed.", "MessageArgs": [ "4" ], "MessageId": "TaskEvent.1.0.3.TaskCompletedOK", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#MessageRegistry.v1_4_1.MessageRegistry", "Message": "The update operation for the component 'MGX_FW_BMC_0' is skipped because 'Component image is identical'.", "MessageArgs": [ "MGX_FW_BMC_0", "Component image is identical" ], "MessageId": "NvidiaUpdate.1.0.ComponentUpdateSkipped", "Resolution": "Retry firmware update operation with the force flag", "Severity": "OK" } ], "Name": "Task 4", "Payload": { "HttpHeaders": [], "HttpOperation": "POST", "JsonBody": "<discarded>", "TargetUri": "/redfish/v1/UpdateService/update-multipart" }, "PercentComplete": 100, "StartTime": "2025-04-28T09:05:01+00:00", "TaskMonitor": "/redfish/v1/TaskService/Tasks/4/Monitor", "TaskState": "Completed", "TaskStatus": "OK"} | |
Related Commands | Show Firmware Inventory | |
Notes | ||
Chassis
The Chassis section is composed of the following APIs:
Show Chassis Information
Redfish API | curl -s -k -u <user>:<p/w> -X GET https://<bmc_ip>/redfish/v1/Chassis | |
Description | This Redfish API shall be used to show all chassis components. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | ||
Response Example | { "@odata.id": "/redfish/v1/Chassis", "@odata.type": "#ChassisCollection.ChassisCollection", "Members": [ { "@odata.id": "/redfish/v1/Chassis/BMC_eeprom" }, { "@odata.id": "/redfish/v1/Chassis/CPLD_0" }, { "@odata.id": "/redfish/v1/Chassis/MGX_BMC_0" }, { "@odata.id": "/redfish/v1/Chassis/MGX_ERoT_BMC_0" }, { "@odata.id": "/redfish/v1/Chassis/MGX_ERoT_CPU_0" }, { "@odata.id": "/redfish/v1/Chassis/MGX_ERoT_FPGA_0" }, { "@odata.id": "/redfish/v1/Chassis/MGX_ERoT_NVSwitch_0" }, { "@odata.id": "/redfish/v1/Chassis/MGX_ERoT_NVSwitch_1" }, { "@odata.id": "/redfish/v1/Chassis/MGX_NVSwitch_0" }, { "@odata.id": "/redfish/v1/Chassis/MGX_NVSwitch_1" } ], "Members@odata.count": 10, "Name": "Chassis Collection"} | |
Related Commands | ||
Notes | ||
Show Chassis Component Information
Redfish API | curl -s -k -u <user>:<p/w> -X GET https://<bmc_ip>/redfish/v1/Chassis/<chassis_comp> | |
Description | This Redfish API shall be used to show a specific chassis component information. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
chassis_comp | Component name. Should match one of the components returned by the Show Chassis Information command. | |
Default | N/A | |
History | ||
Response Example | { "@odata.id": "/redfish/v1/Chassis/MGX_BMC_0", "@odata.type": "#Chassis.v1_22_0.Chassis", "Actions": { "#Chassis.Reset": { "@Redfish.ActionInfo": "/redfish/v1/Chassis/MGX_BMC_0/ResetActionInfo", "target": "/redfish/v1/Chassis/MGX_BMC_0/Actions/Chassis.Reset" } }, "Assembly": { "@odata.id": "/redfish/v1/Chassis/MGX_BMC_0/Assembly" }, "ChassisType": "Component", "Controls": { "@odata.id": "/redfish/v1/Chassis/MGX_BMC_0/Controls" }, "EnvironmentMetrics": { "@odata.id": "/redfish/v1/Chassis/MGX_BMC_0/EnvironmentMetrics" }, "Id": "MGX_BMC_0", "Links": { "ComputerSystems": [ { "@odata.id": "/redfish/v1/Systems/System_0" } ], "ManagedBy": [ { "@odata.id": "/redfish/v1/Managers/BMC_0" } ] }, "Location": { "PartLocation": { "LocationType": "Embedded" } }, "LogServices": { "@odata.id": "/redfish/v1/Chassis/MGX_BMC_0/LogServices" }, "Manufacturer": "NVIDIA", "Model": "P3809", "Name": "MGX_BMC_0", "Oem": { "Nvidia": { "@odata.type": "#NvidiaChassis.v1_6_0.NvidiaChassis", "Policies": { "@odata.id": "/redfish/v1/Chassis/MGX_BMC_0/Oem/Nvidia/Policies" } } }, "PCIeDevices": { "@odata.id": "/redfish/v1/Chassis/MGX_BMC_0/PCIeDevices" }, "PCIeSlots": { "@odata.id": "/redfish/v1/Chassis/MGX_BMC_0/PCIeSlots" }, "PartNumber": "699-23809-0600-EB1", "PowerState": "On", "PowerSubsystem": { "@odata.id": "/redfish/v1/Chassis/MGX_BMC_0/PowerSubsystem" }, "Sensors": { "@odata.id": "/redfish/v1/Chassis/MGX_BMC_0/Sensors" }, "SerialNumber": "1583425629045", "Status": { "Conditions": [], "Health": "OK", "HealthRollup": "OK", "State": "Enabled" }, "ThermalSubsystem": { "@odata.id": "/redfish/v1/Chassis/MGX_BMC_0/ThermalSubsystem" }} | |
Related Commands | Show Chassis Information | |
Notes | The exact output varies by component. Fields that are not supported by a component are omitted from the response. For example, | |
Set Write Protect
Redfish API | curl -k -u <user>:<p/w> -H 'Content-Type: application/json' -X PATCH https://<bmc_ip>/redfish/v1/Chassis/Chassis_0 -d '{"Oem": {"Nvidia": {"HardwareWriteProtectEnable": <state>}}}' | |
Description | Enables or disables system write protection. When enabled, some firmware components cannot be burned. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
state | true for enabling, false for disabling | |
Default | Enabled | |
History | ||
Response Example | N/A | |
Related Commands | Show Write Protect | |
Notes | ||
Show Write Protect
Redfish API | curl -k -u <user>:<p/w> -X GET https://<bmc_ip>/redfish/v1/Chassis/Chassis_0 | |
Description | Shows the hardware write protection status. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | ||
Response Example | { "@odata.id": "/redfish/v1/Chassis/System_0", "@odata.type": "#Chassis.v1_22_0.Chassis", "Actions": { "#Chassis.Reset": { "@Redfish.ActionInfo": "/redfish/v1/Chassis/System_0/ResetActionInfo", "target": "/redfish/v1/Chassis/System_0/Actions/Chassis.Reset" } }, "Assembly": { "@odata.id": "/redfish/v1/Chassis/System_0/Assembly" }, "ChassisType": "Component", "Controls": { "@odata.id": "/redfish/v1/Chassis/System_0/Controls" }, "EnvironmentMetrics": { "@odata.id": "/redfish/v1/Chassis/System_0/EnvironmentMetrics" }, "Id": "System_0", "Links": { "ComputerSystems": [ { "@odata.id": "/redfish/v1/Systems/System_0" } ], "ManagedBy": [ { "@odata.id": "/redfish/v1/Managers/BMC_0" } ] }, "Location": { "PartLocation": { "LocationType": "Embedded" } }, "LogServices": { "@odata.id": "/redfish/v1/Chassis/System_0/LogServices" }, "Manufacturer": "NVIDIA", "Model": "N6150_LD", "Name": "System_0", "Oem": { "Nvidia": { "@odata.type": "#NvidiaChassis.v1_6_0.NvidiaChassis", "HardwareWriteProtectEnable": false } }, "PCIeDevices": { "@odata.id": "/redfish/v1/Chassis/System_0/PCIeDevices" }, "PCIeSlots": { "@odata.id": "/redfish/v1/Chassis/System_0/PCIeSlots" }, "PartNumber": "920-9K36F-00MV-QS1", "PowerState": "Off", "PowerSubsystem": { "@odata.id": "/redfish/v1/Chassis/System_0/PowerSubsystem" }, "Sensors": { "@odata.id": "/redfish/v1/Chassis/System_0/Sensors" }, "SerialNumber": "MT2438X01107", "Status": { "Conditions": [], "Health": "OK", "HealthRollup": "OK", "State": "StandbyOffline" }, "ThermalSubsystem": { "@odata.id": "/redfish/v1/Chassis/System_0/ThermalSubsystem" }, "TrustedComponents": { "@odata.id": "/redfish/v1/Chassis/System_0/TrustedComponents" }} | |
Related Commands | Set Write Protect | |
Notes | ||
Set SMA MCU Recovery Mode
Redfish API | curl -u <user>:<p/w> -X POST <https://<bmc_ip>>/redfish/v1/Chassis/<sma_id>/Actions/Oem/NvidiaChassis.SetRecoveryMode -d '{}' | |
Description | This Redfish API shall be used to set the SMA MCU in recovery mode. | |
Syntax Description | user | The BMC user name. |
p/w | The BMC user password. | |
bmc_ip | The IP address of the BMC. | |
sma_id | The Redfish SMA resource identifier (for example, MGX_NVSwitch_SMA_0). | |
Default | N/A | |
History | 88.0060.2102 | |
Response Example | { "@Message.ExtendedInfo": [ { "@odata.type": "#Message.v1_1_1.Message", "Message": "The request completed successfully.", "MessageArgs": [], "MessageId": "Base.1.19.Success", "MessageSeverity": "OK", "Resolution": "None." } ]} | |
Related Commands | ||
Notes |
| |
Certificate Service
The Certificate Service section is composed of the following APIs:
Show Certificate Service
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X GET https://<bmc_ip>/redfish/v1/CertificateService | |
Description | This Redfish API shall be used to view the Certificate Service used for https connections. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | ||
Response Example | { "@odata.id": "/redfish/v1/CertificateService", "@odata.type": "#CertificateService.v1_0_0.CertificateService", "Actions": { "#CertificateService.GenerateCSR": { "target": "/redfish/v1/CertificateService/Actions/CertificateService.GenerateCSR" }, "#CertificateService.ReplaceCertificate": { "CertificateType@Redfish.AllowableValues": [ "PEM" ], "target": "/redfish/v1/CertificateService/Actions/CertificateService.ReplaceCertificate" } }, "CertificateLocations": { "@odata.id": "/redfish/v1/CertificateService/CertificateLocations" }, "Description": "Actions available to manage certificates", "Id": "CertificateService", "Name": "Certificate Service"} | |
Show Certificate Locations
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X GET https://<bmc_ip>/redfish/v1/CertificateService/CertificateLocations | |
Description | This Redfish API shall be used to show the https certificate location. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | ||
Response Example | { "@odata.id": "/redfish/v1/CertificateService/CertificateLocations", "@odata.type": "#CertificateLocations.v1_0_0.CertificateLocations", "Description": "Defines a resource that an administrator can use in order to locate all certificates installed on a given service", "Id": "CertificateLocations", "Links": { "Certificates": [ { "@odata.id": "/redfish/v1/Managers/BMC_0/NetworkProtocol/HTTPS/Certificates/1" } ], "Certificates@odata.count": 1 }, "Name": "Certificate Locations"} | |
Related Commands | Show Certificate Service | |
Show Certificate
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X GET https://<bmc_ip>/redfish/v1/Managers/BMC_0/NetworkProtocol/HTTPS/Certificates/1 | ||
Description | This Redfish API shall be used to show the https certificate location. | ||
Syntax Description | user | BMC Username | |
p/w | BMC User password | ||
bmc_ip | BMC IP address | ||
Default | N/A | ||
History | |||
Response Example |
| ||
Related Commands | Show Certificate Service, Show Certificate Locations | ||
Notes | |||
Add New Certificate Authority (CA)
Redfish API | curl -u <user>:<p/w> -H "Content-Type: application/x-pem-file" -T <path_to_ca.pem> -X POST <https://<bmc_ip>>/redfish/v1/Managers/BMC_0/Truststore/Certificates | |
Description | This Redfish API shall be used to add a new certificate authority (CA) to the BMC trust store by uploading a PEM-encoded CA certificate file. | |
Syntax Description
| user | BMC login user name. |
p/w | BMC login password. | |
bmc_ip | BMC management IP address or DNS name. | |
path_to_ca.pem | Client-side path to the PEM-encoded CA certificate file ( | |
Default | N/A | |
History | 88.0060.2102 | |
Response Example | { "@odata.id": "/redfish/v1/Managers/BMC_0/Truststore/Certificates/1", "@odata.type": "#Certificate.v1_0_0.Certificate", "CertificateString": "<cert_string>", "Description": "TrustStore Certificate", "Id": "1", "Issuer": { "CommonName": "<common_name>", "Country": "<country>", "Organization": "<organization>", "OrganizationalUnit": "<organizational_unit>" }, "KeyUsage": [], "Name": "TrustStore Certificate", "Subject": { "CommonName": "<common_name>", "Country": "<country>", "Organization": "<organization>", "OrganizationalUnit": "<organizational_unit>" }, "ValidNotAfter": "2036-04-20T09:57:10+00:00", "ValidNotBefore": "2026-04-23T09:57:10+00:00"} | |
Related Commands | Show Certificate |
|
Notes | N/A |
|
Set Server Certificate
Redfish API | curl -u <user>:<p/w> -H "Content-Type: application/json" -X POST <https://<bmc_ip>/redfish/v1/CertificateService/Actions/CertificateService.ReplaceCertificate -d '{"CertificateUri": {"@odata.id": "/redfish/v1/Managers/BMC_0/NetworkProtocol/HTTPS/Certificates/1"}, "CertificateType": "PEM", "CertificateString": "<cert_string>"}' | |
Description | This Redfish API shall be used to set or replace the BMC HTTPS server certificate. | |
Syntax Description
| user | BMC login user name. |
p/w | BMC login password. | |
bmc_ip | BMC management IP address or DNS name. | |
cert_string | PEM for | |
Default | N/A | |
History | 88.0060.2102 | |
Response Example | { "@odata.id": "/redfish/v1/Managers/BMC_0/NetworkProtocol/HTTPS/Certificates/1", "@odata.type": "#Certificate.v1_0_0.Certificate", "CertificateString": "<cert_string>", "Description": "HTTPS Certificate", "Id": "1", "Issuer": { "CommonName": "<issuer_common_name>", "Country": "<country>", "Organization": "<organization>", "OrganizationalUnit": "<issuer_organizational_unit>" }, "KeyUsage": [], "Name": "HTTPS Certificate", "Subject": { "CommonName": "<subject_common_name>", "Country": "<country>", "Organization": "<organization>", "OrganizationalUnit": "<subject_organizational_unit>" }, "ValidNotAfter": "2027-04-23T09:57:10+00:00", "ValidNotBefore": "2026-04-23T09:57:10+00:00"} | |
Related Commands | Add new certificate authority (CA) | |
Notes | N/A |
|
Change BMC Client Certificate Mapping Attribute
Redfish API | curl -u <user>:<p/w> -H "Content-Type: application/json" -X PATCH <https://<bmc_ip>/redfish/v1/AccountService -d '{"MultiFactorAuth":{"ClientCertificate":{"CertificateMappingAttribute": "<certificate_mapping_attribute>"}}}' | |
Description | This Redfish API shall be used to set the client certificate mapping attribute for multi-factor authentication. This capability is newly supported in the product; earlier releases did not support it. | |
Syntax Description
| user | BMC login user name. |
p/w | BMC login password. | |
bmc_ip | BMC management IP address or DNS name. | |
certificate_mapping_attribute | JSON string for
| |
Default | N/A | |
History | TBD | |
Response Example |
|
|
Related Commands | Show BMC User Account Configuration | |
Notes | N/A |
|
Session Service
The Session Service section is composed of the following APIs:
Show Session Service
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X GET https://<bmc_ip>/redfish/v1/SessionService | |
Description | This Redfish API shall be used to view Session Service properties | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | ||
Response Example | { "@odata.id": "/redfish/v1/SessionService", "@odata.type": "#SessionService.v1_0_2.SessionService", "Description": "Session Service", "Id": "SessionService", "Name": "Session Service", "ServiceEnabled": true, "SessionTimeout": 1800, "Sessions": { "@odata.id": "/redfish/v1/SessionService/Sessions" }} | |
Related Commands | Show Sessions | |
Notes | ||
Show Sessions
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X GET https://<bmc_ip>/redfish/v1/SessionService/Sessions | |
Description | This Redfish API shall be used to show the open sessions on the Session service. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | ||
Response Example | { "@odata.id": "/redfish/v1/SessionService/Sessions", "@odata.type": "#SessionCollection.SessionCollection", "Description": "Session Collection", "Members": [ { "@odata.id": "/redfish/v1/SessionService/Sessions/atfDOAJ59o" }, { "@odata.id": "/redfish/v1/SessionService/Sessions/8qcRf9Puda" } ], "Members@odata.count": 2, "Name": "Session Collection"} | |
Related Commands | Show Session Service | |
Notes | ||
Show Session Details
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X GET https://<bmc_ip>/redfish/v1/SessionService/Sessions/<session_id> | |
Description | This Redfish API shall be used to show the open sessions on the Session service. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
session_id | This ID value should be taken from the Show Sessions RF API. | |
Default | N/A | |
History | ||
Response Example | { "@odata.id": "/redfish/v1/SessionService/Sessions/8qcRf9Puda", "@odata.type": "#Session.v1_7_0.Session", "ClientOriginIPAddress": "169.254.0.2", "Description": "Manager User Session", "Id": "8qcRf9Puda", "Name": "User Session", "Roles": [ "Administrator" ], "UserName": "admin"} | |
Related Commands | Show Session Service | |
Notes | ||
User Management
The User Management section is composed of several APIs which work in conjunction:
The password locking policy states that after 10 consecutive unsuccessful login attempts, following a factory reset, the user account will be locked for a duration of 20 seconds.
The minimum password length is 12 characters.
For any user with "AccountTypes" that includes "IPMI" (including root user) the maximum password length is 20 characters due to IPMI storage and authentication limitations.
Show BMC User Account Configuration
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X GET https://<bmc_ip>/redfish/v1/AccountService | |
Description | This Redfish API shall list all applicable BMC user accounts. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | ||
Response Example | { "@odata.id": "/redfish/v1/AccountService", "@odata.type": "#AccountService.v1_15_0.AccountService", "AccountLockoutDuration": 20, "AccountLockoutThreshold": 10, "Accounts": { "@odata.id": "/redfish/v1/AccountService/Accounts" }, "Description": "Account Service", "HTTPBasicAuth": "Enabled", "HTTPBasicAuth@AllowableValues": [ "Enabled", "Disabled" ], "Id": "AccountService", "LDAP": { "Certificates": { "@odata.id": "/redfish/v1/AccountService/LDAP/Certificates" } }, "MaxPasswordLength": 20, "MinPasswordLength": 12, "MultiFactorAuth": { "ClientCertificate": { "CertificateMappingAttribute": "CommonName", "Certificates": { "@odata.id": "/redfish/v1/AccountService/MultiFactorAuth/ClientCertificate/Certificates", "@odata.type": "#CertificateCollection.CertificateCollection", "Members": [], "Members@odata.count": 0 }, "Enabled": true, "RespondToUnauthenticatedClients": true } }, "Name": "Account Service", "Oem": { "OpenBMC": { "@odata.id": "/redfish/v1/AccountService#/Oem/OpenBMC", "@odata.type": "#OpenBMCAccountService.v1_0_0.AccountService", "AuthMethods": { "BasicAuth": true, "Cookie": true, "SessionToken": true, "TLS": true, "XToken": true } } }, "Roles": { "@odata.id": "/redfish/v1/AccountService/Roles" }, "ServiceEnabled": true} | |
Related Commands | All User Account APIs | |
Notes | ||
Show BMC User Accounts
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X GET https://<bmc_ip>/redfish/v1/AccountService/Accounts | |
Description | This Redfish API shall list all applicable BMC user accounts. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | ||
Response Example | { "@odata.id": "/redfish/v1/AccountService/Accounts", "@odata.type": "#ManagerAccountCollection.ManagerAccountCollection", "Description": "BMC User Accounts", "Members": [ { "@odata.id": "/redfish/v1/AccountService/Accounts/admin" }, { "@odata.id": "/redfish/v1/AccountService/Accounts/root" } ], "Members@odata.count": 2, "Name": "Accounts Collection"} | |
Related Commands | Change BMC User Password | |
Notes | ||
Create New BMC User
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X POST https://<bmc_ip>/redfish/v1/AccountService/Accounts -d '{"UserName":"<new_user_name>","Password":"<new_user_p/w>","RoleId":"<role_id>","Enabled":true,"AccountTypes":["<account_type>"]}' | |
Description | This Redfish API shall be used to create a new BMC user account. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
new_user_name | The new BMC user's user name | |
new_user_p/w | The new BMC user's password | |
role_id | BMC Role ID options: Administrator, Operator, ReadOnly
| |
account_types | JSON array of one or more account types that apply to the new user. Include at least one value.
| |
Default | N/A | |
History | ||
Response Example | { "@Message.ExtendedInfo": [ { "@odata.type": "#Message.v1_1_1.Message", "Message": "The resource was created successfully.", "MessageArgs": [], "MessageId": "Base.1.18.1.Created", "MessageSeverity": "OK", "Resolution": "None." } ]} | |
Related Commands | Change BMC User Password | |
Notes |
| |
Change BMC User Password
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X PATCH -d '{"Password": "<new_password>" }' https://<bmc_ip>/redfish/v1/AccountService/Accounts/<user_to_be_patched> | |
Description | This Redfish API for user management interface may be used to configure the new password or to alter the default password. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
user_to_be_patched | BMC user to be updated | |
new_password | BMC new password (e.g., "switch_bmc@Nvid1a") | |
Default | N/A | |
History | ||
Response Example | 204 No Content | |
Related Commands | Show BMC Users | |
Notes | The BMC password must comply with the following policy parameters:
The following is a valid example password: HelloNvidia3D! | |
Change BMC User Account Permissions
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X PATCH -d '{"RoleId": "<new_role_id>" }' https://<bmc_ip>/redfish/v1/AccountService/Accounts/<user_to_patched> | |
Description | This Redfish API shall be used to to change permissions of an account | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
user_to_be_patched | BMC user to be updated | |
new_role_id | The new user's role ID (Can be either: Administrator, Operator, ReadOnly)
| |
Default | N/A | |
History | ||
Response Example | 204 No Content | |
Related Commands | Show BMC Users | |
Notes | The BMC password must comply with the following policy parameters:
The following is a valid example password: HelloNvidia3D! | |
Change BMC Account Lockout Duration
Redfish API | curl -k -u <user>:<p/w> -X PATCH https://<bmc_ip>/redfish/v1/AccountService -d '{"AccountLockoutDuration":<duration>}' | |
Description | This Redfish API shall be used to change the BMC account lockout duration. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
duration | Lockout duration time in seconds (should be greater than or equal to 20) | |
Default | N/A | |
History | ||
Response | 204 No Content | |
Related Commands | Show BMC User Account Configuration | |
Notes | ||
Change BMC Minimum Password Length
Redfish API | curl -k -u <user>:<p/w> -X PATCH https://<bmc_ip>/redfish/v1/AccountService -d '{"MinPasswordLength":<length>}' | |
Description | This Redfish API shall be used to change the BMC account lockout duration. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
length | Number of characters (should be equal to or greater than 7 and lower than 256) | |
Default | N/A | |
History | ||
Response | 204 No Content | |
Related Commands | Show BMC User Account Configuration | |
Notes | ||
Change BMC Account Lockout Threshold
Redfish API | curl -k -u <user>:<p/w> -X PATCH https://<bmc_ip>/redfish/v1/AccountService -d '{"AccountLockoutThreshold":<threshold>}' | |
Description | This Redfish API shall be used to change the BMC account lockout duration. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
threshold | Lockout threshold counts (should be greater than or equal to 10). | |
Default | N/A | |
History | ||
Response | 204 No Content | |
Related Commands | Show BMC User Account Configuration | |
Notes | ||
Show BMC Account Service Roles
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X GET https://<bmc_ip>/redfish/v1/AccountService/Roles | |
Description | This Redfish API shall list all applicable BMC user accounts. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | ||
Response | { "@odata.id": "/redfish/v1/AccountService/Roles", "@odata.type": "#RoleCollection.RoleCollection", "Description": "BMC User Roles", "Members": [ { "@odata.id": "/redfish/v1/AccountService/Roles/Administrator" }, { "@odata.id": "/redfish/v1/AccountService/Roles/Operator" }, { "@odata.id": "/redfish/v1/AccountService/Roles/ReadOnly" } ], "Members@odata.count": 3, "Name": "Roles Collection"} | |
Related Commands | Show BMC Users Accounts | |
Notes | ||
Show BMC User Account Service Role Options
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X GET https://<bmc_ip>/redfish/v1/AccountService/Roles/<role> | |
Description | This Redfish API shall list all applicable BMC user accounts. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
role | Administrator, Operator, ReadOnly
| |
Default | N/A | |
History | ||
Response Example | { "@odata.id": "/redfish/v1/AccountService/Roles/Administrator", "@odata.type": "#Role.v1_2_2.Role", "AssignedPrivileges": [ "Login", "ConfigureManager", "ConfigureUsers", "ConfigureSelf", "ConfigureComponents" ], "Description": "Administrator User Role", "Id": "Administrator", "IsPredefined": true, "Name": "User Role", "OemPrivileges": [], "RoleId": "Administrator"} | |
Related Commands | Show BMC User Account Service Roles | |
Notes | ||
Enable TLS Authentication
Redfish API | curl -u <user>:<p/w> -H "Content-Type: application/json" -X PATCH <https://<bmc_ip>>/redfish/v1/AccountService -d '{"Oem":{"OpenBMC":{"AuthMethods":{"TLS": <tls>}}}}' | |
Description | This Redfish API shall be used to configure TLS authentication for AccountService. | |
Syntax Description
| user | BMC login user name. |
p/w | BMC login password. | |
bmc_ip | BMC management IP address or DNS name. | |
tls |
| |
Default | N/A | |
History | 88.0060.2102 | |
Response Example |
| |
Related Commands | Configure client-certificate MFA policy | |
Notes | N/A | |
Configure Client-Certificate MFA Policy
Redfish API | curl --cacert /path/to/ca.pem --cert /path/to/client.pem --key /path/to/client.key -H "Content-Type: application/json" -X PATCH <https://<bmc_ip>/redfish/v1/AccountService -d '{"MultiFactorAuth":{"ClientCertificate":{"RespondToUnauthenticatedClients": <respond_to_unauthenticated>}}}' | |
Description | This Redfish API shall be used to configure client-certificate MFA policy on AccountService. | |
Syntax Description
| bmc_ip | BMC management IP address or DNS name. |
path_to_ca.pem | Client CA certificate file for | |
path_to_client.pem | Client certificate file for | |
path_to_client.key | Client private key file for | |
respond_to_unauthenticated |
| |
Default | N/A | |
History | 88.0060.2102 | |
Response Example |
| |
Related Commands | Enable TLS authentication | |
Notes | When | |
Set SSH Preferred Authentications
Redfish API | curl -u <user>:<p/w> -H "Content-Type: application/json" -X PATCH <https://<bmc_ip>>/redfish/v1/Managers/BMC_0/NetworkProtocol -d '{"Oem":{"Nvidia":{"SSH":{"PreferredAuthentications": ["<preferred_authentications>"]}}}}' | |
Description | This Redfish API shall be used to set the SSH server preferred authentication methods on the BMC network protocol resource. This command is newly supported in the product; earlier releases did not support it. | |
Syntax Description
| user | BMC login user name. |
p/w | BMC login password. | |
bmc_ip | BMC management IP address or DNS name. | |
preferred_authentications |
| |
Default | N/A | |
History | 88.0060.2102 | |
Response Example |
| |
Related Commands |
| |
Notes | N/A | |
Attestation
The Attestation section is composed of the following APIs, some of which work in conjunction:
Flow for generating RoT SPDM information:
Run Generate ROT SPDM Information API initiates the task of generating EROT SPDM information in the system
Run Show ROT SPDM Generation Status API to figure out that task state (i.e., whether a task is still running or completed).
Pull on step 2 until task completion.
Run Show ROT SPDM Information API to see that relevant EROT SPDM information.
Show System RoT List
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X GET https://<bmc_ip>/redfish/v1/ComponentIntegrity/ | |
Description | This Redfish API shall be used to collect information about the system's ROTS (eROTS and iROTS). | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | ||
Response Example | { "@odata.id": "/redfish/v1/ComponentIntegrity", "@odata.type": "#ComponentIntegrityCollection.ComponentIntegrityCollection", "Members": [ { "@odata.id": "/redfish/v1/ComponentIntegrity/MGX_ERoT_BMC_0" }, { "@odata.id": "/redfish/v1/ComponentIntegrity/MGX_ERoT_CPU_0" }, { "@odata.id": "/redfish/v1/ComponentIntegrity/MGX_ERoT_FPGA_0" }, { "@odata.id": "/redfish/v1/ComponentIntegrity/MGX_ERoT_NVSwitch_0" }, { "@odata.id": "/redfish/v1/ComponentIntegrity/MGX_ERoT_NVSwitch_1" } ], "Members@odata.count": 5, "Name": "ComponentIntegrity Collection"} | |
Related Commands | Show ROT Security Information | |
Notes | ||
Show ROT Security Information
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X GET https://<bmc_ip>/redfish/v1/ComponentIntegrity/<>comp_name | |
Description | This Redfish API shall be used to provide critical and pertinent security information about a specific ROT device. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
comp_name | Component name. Should match one of the options returned by the Show System ROT List command. | |
Default | N/A | |
History | ||
Response Example | { "@odata.id": "/redfish/v1/ComponentIntegrity/MGX_IRoT_NVSwitch_0", "@odata.type": "#ComponentIntegrity.v1_0_0.ComponentIntegrity", "Actions": { "#ComponentIntegrity.SPDMGetSignedMeasurements": { "@Redfish.ActionInfo": "/redfish/v1/ComponentIntegrity/MGX_IRoT_NVSwitch_0/SPDMGetSignedMeasurementsActionInfo", "target": "/redfish/v1/ComponentIntegrity/MGX_IRoT_NVSwitch_0/Actions/ComponentIntegrity.SPDMGetSignedMeasurements" } }, "ComponentIntegrityEnabled": true, "ComponentIntegrityType": "SPDM", "ComponentIntegrityTypeVersion": "1.2.0", "Id": "MGX_IRoT_NVSwitch_0", "Links": { "ComponentsProtected": [ { "@odata.id": "/redfish/v1/Fabrics/MGX_NVLinkFabric_0/Switches/NVSwitch_0" } ] }, "Name": "SPDM Integrity for MGX_IRoT_NVSwitch_0", "SPDM": { "IdentityAuthentication": { "ResponderAuthentication": { "ComponentCertificate": { "@odata.id": "/redfish/v1/Chassis/MGX_IRoT_NVSwitch_0/Certificates/CertChain" } } }, "Requester": { "@odata.id": "/redfish/v1/Managers/BMC_0" } }, "TargetComponentURI": "/redfish/v1/Chassis/MGX_IRoT_NVSwitch_0"} | |
Related Commands | Show System ROT List | |
Notes | ||
Generate ROT SPDM Information
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X POST https://<bmc_ip>/redfish/v1/ComponentIntegrity/<comp_name>/Actions/ComponentIntegrity.SPDMGetSignedMeasurements | |
Description | This Redfish API shall be used to generate an SPDM cryptographic signed statement over the given nonce and measurements of the SPDM Responder. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
comp_name | Component name. Should match one of the options returned by the Show System ROT List command. | |
Id (return value) | task_id_number | |
Default | N/A | |
History | ||
Response Example | { "@odata.id": "/redfish/v1/TaskService/Tasks/0", "@odata.type": "#Task.v1_4_3.Task", "Id": "0", "TaskState": "Running", "TaskStatus": "OK" } | |
Related Commands | Show System ROT List | |
Notes | ||
Show ROT SPDM Generation Status
Redfish API | curl -s -k -u <user>:<p/w> -X GET https://<bmc_ip>/redfish/v1/TaskService/Tasks/<task_id_number> | |
Description | This Redfish API shall be used to get the ROT SPDM Generation task state. When task state changes from “Running” to “Completed”, the SPDM information is ready to be displayed. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
task_id_number | Return value taken from Generate ROT SPDM Information command | |
Default | N/A | |
History | ||
Response Example | { "@odata.id": "/redfish/v1/TaskService/Tasks/0", "@odata.type": "#Task.v1_4_3.Task", "EndTime": "2024-06-25T05:13:08+00:00", "HidePayload": false, "Id": "0", "Messages": [ { "@odata.type": "#Message.v1_1_1.Message", "Message": "The task with Id '0' has started.", "MessageArgs": [ "0" ], "MessageId": "TaskEvent.1.0.3.TaskStarted", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#Message.v1_1_1.Message", "Message": "The task with Id '0' has completed.", "MessageArgs": [ "0" ], "MessageId": "TaskEvent.1.0.3.TaskCompletedOK", "MessageSeverity": "OK", "Resolution": "None." } ], "Name": "Task 0", "Payload": { "HttpHeaders": [ "Location: /redfish/v1/ComponentIntegrity/MGX_ERoT_BMC_0/Actions/ComponentIntegrity.SPDMGetSignedMeasurements/data" ], "HttpOperation": "POST", "JsonBody": "<discarded>", "TargetUri": "/redfish/v1/ComponentIntegrity/MGX_ERoT_BMC_0/Actions/ComponentIntegrity.SPDMGetSignedMeasurements" }, "PercentComplete": 100, "StartTime": "2024-06-25T05:13:07+00:00", "TaskMonitor": "/redfish/v1/TaskService/Tasks/0/Monitor", "TaskState": "Completed", "TaskStatus": "OK"} | |
Related Commands | Show System ROT List | |
Notes | ||
Show ROT SPDM Information
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X GET https://<bmc_ip>/redfish/v1/ComponentIntegrity/<comp_name>/Actions/ComponentIntegrity.SPDMGetSignedMeasurements/data | |
Description | Use the API below to collect the Signed Measurement data. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
comp_name | Component name. Should match one of the options returned by the Show System ROT List command. | |
Default | N/A | |
History | ||
Response | { "HashingAlgorithm": "TPM_ALG_SHA_384", "SignedMeasurements": "EeAB/6LLdKTg+iEumJY8eeaRRSMAhEHw26QQNaVqerI6Sx+RABFgAABACQkAAQEHAIMEAAIAAA***Rest of signature is left out***", "SigningAlgorithm": "TPM_ALG_ECDSA_ECC_NIST_P384", "Version": "1.1.0"} | |
Related Commands | Show System ROT List | |
Notes | ||
Set ROT Automatic Background Copy State
Redfish API | curl -k -u <user>:<p/w> -X PATCH -d '{"Oem": {"Nvidia": {"AutomaticBackgroundCopyEnabled": <state>}}}' https://<bmc_ip>/redfish/v1/Chassis/<RoT Name> | |
Description | This Redfish API shall be used to set the ROT Automatic Background Copy State. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
state | True means that after firmware upgrade, system will automatically copy the current image to inactive slot | |
bmc_ip | BMC IP address | |
RoT Name | Name of the RoT | |
Default | N/A | |
History | ||
Response | 204 No Content | |
Related Commands | Show System ROT List | |
Notes | ||
Show ROT Automatic Background Copy Status
Redfish API | curl -k -u <user>:<p/w> -X GET https://<bmc_ip>/redfish/v1/UpdateService/FirmwareInventory/<Component Name> | |
Description | This Redfish API shall be used to show the ROT Automatic Background Copy State. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Component Name | Name of component returned by Show Firmware Inventory command. | |
Default | N/A | |
History | ||
Response | { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/MGX_FW_BMC_0", "@odata.type": "#SoftwareInventory.v1_4_0.SoftwareInventory", "Description": "BMC image", "Id": "MGX_FW_BMC_0", "Manufacturer": "NVIDIA", "Name": "Software Inventory", "Oem": { "Nvidia": { "@odata.type": "#NvidiaSoftwareInventory.v1_2_0.NvidiaSoftwareInventory", "ActiveFirmwareSlot": { "BuildType": "Release", "FirmwareComparisonNumber": 3932465, "FirmwareState": "Activated", "SlotId": 1, "Version": "88.0060.0305" }, "InactiveFirmwareSlot": { "BuildType": "Release", "FirmwareComparisonNumber": 1, "FirmwareState": "ImageCopyPending", "SlotId": 0, "Version": "FeatureBranch" }, "StageOnlyUpdateOptionSupported": true } }, "RelatedItem": [ { "@odata.id": "/redfish/v1/Chassis/MGX_BMC_0" } ], "RelatedItem@odata.count": 1, "SoftwareId": "0x0010", "Status": { "Conditions": [], "Health": "OK", "HealthRollup": "OK", "State": "Enabled" }, "Updateable": true, "Version": "88.0060.0305", "WriteProtected": false} | |
Related Commands | Show System ROT List | |
Notes | The background copy status is the "FirmwareState" of the "InactiveFirmwareSlot" section. In the example status is "ImageCopyPending" meaning that the automatic background copy wasn't started yet. | |
Show ROT Automatic Background Copy State
Redfish API | curl -k -u <user>:<p/w> -X GET https://<bmc_ip>/redfish/v1/Chassis/<RoT Name> | |
Description | This Redfish API shall be used to show the ROT Automatic Background Copy State. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
RoT Name | Name of the RoT | |
Default | N/A | |
History | ||
Response | { "@odata.id": "/redfish/v1/Chassis/MGX_ERoT_BMC_0", "@odata.type": "#Chassis.v1_22_0.Chassis", "Actions": { "Oem": { "#CAKInstall": { "target": "/redfish/v1/Chassis/MGX_ERoT_BMC_0/Actions/Oem/CAKInstall" }, "#CAKLock": { "target": "/redfish/v1/Chassis/MGX_ERoT_BMC_0/Actions/Oem/CAKLock" }, "#CAKTest": { "target": "/redfish/v1/Chassis/MGX_ERoT_BMC_0/Actions/Oem/CAKTest" }, "#DOTDisable": { "target": "/redfish/v1/Chassis/MGX_ERoT_BMC_0/Actions/Oem/DOTDisable" }, "#DOTTokenInstall": { "target": "/redfish/v1/Chassis/MGX_ERoT_BMC_0/Actions/Oem/DOTTokenInstall" }, "#NvidiaChassis.BootProtectedDevice": { "target": "/redfish/v1/Chassis/MGX_ERoT_BMC_0/Actions/Oem/NvidiaChassis.BootProtectedDevice" }, "#NvidiaRoTChassis.SetIrreversibleConfig": { "@Redfish.ActionInfo": "/redfish/v1/Chassis/MGX_ERoT_BMC_0/Oem/NvidiaRoT/SetIrreversibleConfigActionInfo", "target": "/redfish/v1/Chassis/MGX_ERoT_BMC_0/Actions/Oem/NvidiaRoTChassis.SetIrreversibleConfig" } } }, "Certificates": { "@odata.id": "/redfish/v1/Chassis/MGX_ERoT_BMC_0/Certificates" }, "ChassisType": "Component", "Id": "MGX_ERoT_BMC_0", "Links": { "ComputerSystems": [ { "@odata.id": "/redfish/v1/Systems/System_0" } ], "ContainedBy": { "@odata.id": "/redfish/v1/Chassis/Chassis_0" }, "ManagedBy": [ { "@odata.id": "/redfish/v1/Managers/BMC_0" } ], "Oem": { "Nvidia": { "@odata.type": "#NvidiaChassis.v1_3_0.NvidiaChassis", "ComponentsProtected": [ { "@odata.id": "/redfish/v1/Managers/BMC_0" } ] } } }, "Location": { "PartLocation": { "LocationType": "Embedded" } }, "Manufacturer": "NVIDIA", "Name": "MGX_ERoT_BMC_0", "Oem": { "Nvidia": { "@odata.type": "#NvidiaChassis.v1_3_0.NvidiaRoTChassis", "AutomaticBackgroundCopyEnabled": false, "IrreversibleConfigEnabled": false, "RoTProtectedComponents": { "@odata.id": "/redfish/v1/Chassis/MGX_ERoT_BMC_0/Oem/NvidiaRoT/RoTProtectedComponents" } } }, "SKU": "0x4E35368B", "SerialNumber": "0x0511090519132F20", "Status": { "Conditions": [], "Health": "OK", "HealthRollup": "OK", "State": "Enabled" }, "TrustedComponents": { "@odata.id": "/redfish/v1/Chassis/MGX_ERoT_BMC_0/TrustedComponents" }, "UUID": "05110905-1913-1f20-a6c1-922af4825651" | |
Related Commands | Show System ROT List | |
Notes | ||
Show Minimum Security Version Information for Application Firmware
Redfish API | curl -k -u <user>:<p/w> -X GET https://<bmc_ip>/redfish/v1/Chassis/<RoT Name>/Oem/NvidiaRoT/RoTProtectedComponents/<AP Name> | |
Description | This Redfish API shall be used to display the minimum security version information for the application firmware. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
RoT Name (paired with AP Name) | Component name. Should match one of the options returned by the Show System ROT List command. | |
AP Name (paired with RoT Name) | Name of Applicaton. Example: MGX_BMC_0 | |
Default | N/A | |
History | ||
Response Example | { "@Redfish.Settings": { "@odata.type": "#Settings.v1_3_3.Settings", "SettingsObject": { "@odata.id": "/redfish/v1/Chassis/MGX_ERoT_BMC_0/Oem/NvidiaRoT/RoTProtectedComponents/MGX_BMC_0/Settings" } }, "@odata.id": "/redfish/v1/Chassis/MGX_ERoT_BMC_0/Oem/NvidiaRoT/RoTProtectedComponents/MGX_BMC_0", "@odata.type": "#NvidiaRoTProtectedComponent.v1_0_0.NvidiaRoTProtectedComponent", "Actions": { "#NvidiaRoTProtectedComponent.RevokeKeys": { "@Redfish.ActionInfo": "/redfish/v1/Chassis/MGX_ERoT_BMC_0/Oem/NvidiaRoT/RoTProtectedComponents/MGX_BMC_0/RevokeKeysActionInfo", "target": "/redfish/v1/Chassis/MGX_ERoT_BMC_0/Oem/NvidiaRoT/RoTProtectedComponents/MGX_BMC_0/Actions/NvidiaRoTProtectedComponent.RevokeKeys" }, "#NvidiaRoTProtectedComponent.UpdateMinimumSecurityVersion": { "@Redfish.ActionInfo": "/redfish/v1/Chassis/MGX_ERoT_BMC_0/Oem/NvidiaRoT/RoTProtectedComponents/MGX_BMC_0/UpdateMinimumSecurityVersionActionInfo", "target": "/redfish/v1/Chassis/MGX_ERoT_BMC_0/Oem/NvidiaRoT/RoTProtectedComponents/MGX_BMC_0/Actions/NvidiaRoTProtectedComponent.UpdateMinimumSecurityVersion" } }, "ActiveKeySetIdentifier": 0, "ActiveSlotId": 1, "AllowedKeyIndices": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63 ], "BootStatusCode": "0x00", "Id": "MGX_BMC_0", "ImageSlots": { "@odata.id": "/redfish/v1/Chassis/MGX_ERoT_BMC_0/Oem/NvidiaRoT/RoTProtectedComponents/MGX_BMC_0/ImageSlots" }, "MinimumSecurityVersion": 0, "Name": "MGX_ERoT_BMC_0 RoTProtectedComponent MGX_BMC_0", "RevokedKeyIndices": [], "RoTProtectedComponentType": "AP"} | |
Related Commands | Show System ROT List | |
Notes | ||
Power Management
The Power Management section is composed of the following APIs:
Apply CPU Host Reset
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X POST https://<bmc_ip>/redfish/v1/Systems/System_0/Actions/ComputerSystem.Reset -d '{"ResetType": "<reset_type>"}' | |
Description | This Redfish API shall be used to reset the COMe CPU and ASIC subsystems or the whole unit. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
reset_type |
| |
Default | N/A | |
History | ||
Response Example | { "@Message.ExtendedInfo": [ { "@odata.type": "#Message.v1_1_1.Message", "Message": "The request completed successfully.", "MessageArgs": [], "MessageId": "Base.1.18.1.Success", "MessageSeverity": "OK", "Resolution": "None." } ]} | |
Related Commands | ||
Notes | ||
CPU Host Reset Action Information
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X GET https://<bmc_ip>/redfish/v1/Systems/System_0/ResetActionInfo | |
Description | This Redfish API shall be used to display the CPU Host Reset Action information. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | ||
Response Example | { "@odata.id": "/redfish/v1/Systems/System_0/ResetActionInfo", "@odata.type": "#ActionInfo.v1_1_2.ActionInfo", "Id": "ResetActionInfo", "Name": "Reset Action Info", "Parameters": [ { "AllowableValues": [ "ForceOff", "PowerCycle", "GracefulShutdown", "On", "ForceOn", "GracefulRestart", "ForceRestart" ], "DataType": "String", "Name": "ResetType", "Required": true } ]} | |
Related Commands | Apply CPU Host Reset | |
Notes | ||
Apply BMC Manager Reset
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X POST https://<bmc_ip>/redfish/v1/Managers/BMC_0/Actions/Manager.Reset -d '{"ResetType": "<reset_type>"}' | |
Description | This Redfish API shall be used to reset the BMC. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
reset_type |
| |
Default | N/A | |
History | ||
Response Example | { "@Message.ExtendedInfo": [ { "@odata.type": "#Message.v1_1_1.Message", "Message": "The request completed successfully.", "MessageArgs": [], "MessageId": "Base.1.18.1.Success", "MessageSeverity": "OK", "Resolution": "None." } ]} | |
Related Commands | ||
Notes | ||
BMC Host Reset Action Information
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X GET https://<bmc_ip>/redfish/v1/Managers/BMC_0/ResetActionInfo | |
Description | This Redfish API shall be used to display the BMC Reset Action information. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | ||
Response Example | { "@odata.id": "/redfish/v1/Managers/BMC_0/ResetActionInfo", "@odata.type": "#ActionInfo.v1_1_2.ActionInfo", "Id": "ResetActionInfo", "Name": "Reset Action Info", "Parameters": [ { "AllowableValues": [ "GracefulRestart", "ForceRestart", "GracefulShutdown" ], "DataType": "String", "Name": "ResetType", "Required": true } ]} | |
Related Commands | Apply BMC Reset | |
Notes | ||
Power Management Policy
The Power Management Policy subsection is composed of the following APIs:
Power Restore Policy
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X POST https://<bmc_ip>/redfish/v1/Systems/System_0 -X PATCH -d '{"PowerRestorePolicy": "<power_policy>"}' | |
Description | This Redfish API shall be used to configure the host CPU Power Policy. The power policy determines The desired power state of the host CPU when power is restored after a power loss. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
power_policy |
| |
Default | N/A | |
History | ||
Response Example | N/A | |
Related Commands | Power Delay Policy | |
Notes |
| |
Power Delay Policy
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" https://<bmc_ip>/redfish/v1/Systems/System_0 -X PATCH -d '{"PowerOnDelaySeconds": <power_delay>}' | |
Description | Delay in seconds to apply the Power Restore Policy. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
power_delay | Delay in seconds to apply power policy. | |
Default | N/A | |
History | ||
Response Example | N/A | |
Related Commands | Power Restore Policy | |
Notes | Note: If there is not delay is configured, default value of PowerOnDelaySeconds will be 0. This means that BMC will apply the power policy immediately. | |
Serial over LAN
The Serial over LAN subsection is composed of the following APIs:
SoL (Serial over LAN) feature allows the user to access host CPU console by connecting via ssh to TCP port 2200 of the BMC. It is disabled by default.
To connect to the CPU console via the BMC, perform the following steps:
Create a SoL Session
On a server that has a connection to the BMC, run the following in order to connect to the CPU console:
ssh -p 2200 root@<bmc ip>When prompted, enter BMC password.
Terminate SoL Session
Use the following sequence to exit the SSH session:
<enter>~.Note: If you are already within an SSH session, use:
<enter>~~.
Enable SoL Service
Redfish API | curl -u <user>:<p/w> -H 'Content-Type: application/json' -X PATCH <https://<bmc_ip>>/redfish/v1/Systems/System_0 -d '{"SerialConsole": {"SSH": {"ServiceEnabled": true}}}' | |
Description | This Redfish API shall be used to configure Serial-over-LAN (SoL) by setting whether the SSH serial console service on the managed system is enabled. | |
Syntax Description
| user | User name for Redfish access to the BMC. |
p/w | Password for the specified user. | |
bmc_ip | IP address or DNS name of the BMC. | |
ServiceEnabled |
| |
Default | N/A | |
History | 88.0060.2102 | |
Response Example |
| |
Related Commands | Create a SoL Session | |
Notes |
| |
Get SoL Service Status
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X GET https://<bmc_ip>/redfish/v1/Systems/System_0 | |
Description | This Redfish API shall be used to provide information about Serial over LAN feature under 'SerialConsole'. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | SoL is disabled by default. | |
History | ||
Response Example | { "@odata.id": "/redfish/v1/Systems/System_0", "@odata.type": "#ComputerSystem.v1_22_0.ComputerSystem", "Actions": { "#ComputerSystem.Reset": { "@Redfish.ActionInfo": "/redfish/v1/Systems/System_0/ResetActionInfo", "target": "/redfish/v1/Systems/System_0/Actions/ComputerSystem.Reset" } }, "Boot": { "AutomaticRetryAttempts": 3, "AutomaticRetryConfig": "RetryAttempts", "AutomaticRetryConfig@Redfish.AllowableValues": [ "Disabled", "RetryAttempts" ], "BootOrderPropertySelection": "BootOrder", "BootSourceOverrideEnabled": "Disabled", "BootSourceOverrideEnabled@Redfish.AllowableValues": [ "Once", "Continuous", "Disabled" ], "BootSourceOverrideMode": "UEFI", "BootSourceOverrideMode@Redfish.AllowableValues": [ "Legacy", "UEFI" ], "BootSourceOverrideTarget": "None", "BootSourceOverrideTarget@Redfish.AllowableValues": [ "None", "Pxe", "Hdd", "Cd", "Diags", "BiosSetup", "Usb" ], "RemainingAutomaticRetryAttempts": 3, "StopBootOnFault": "Never", "TrustedModuleRequiredToBoot": "Disabled" }, "BootProgress": { "LastState": "None", "LastStateTime": "1970-01-01T00:00:00.000000+00:00" }, "Description": "Computer System", "HostWatchdogTimer": { "FunctionEnabled": false, "Status": { "State": "Enabled" }, "TimeoutAction": "ResetSystem" }, "Id": "System_0", "LastResetTime": "2025-06-24T22:42:10+00:00", "Links": { "Chassis": [ { "@odata.id": "/redfish/v1/Chassis/BMC_eeprom" } ], "ManagedBy": [ { "@odata.id": "/redfish/v1/Managers/BMC_0" } ] }, "LogServices": { "@odata.id": "/redfish/v1/Systems/System_0/LogServices" }, "Manufacturer": "NVIDIA", "Memory": { "@odata.id": "/redfish/v1/Systems/System_0/Memory" }, "MemorySummary": { "TotalSystemMemoryGiB": 0 }, "Model": "N5500_LD", "Name": "System_0", "PowerOnDelaySeconds": 0, "PowerRestorePolicy": "AlwaysOn", "PowerState": "On", "ProcessorSummary": { "Count": 0 }, "Processors": { "@odata.id": "/redfish/v1/Systems/System_0/Processors" }, "SerialConsole": { "IPMI": { "ServiceEnabled": true }, "MaxConcurrentSessions": 15, "SSH": { "HotKeySequenceDisplay": "Press ~. to exit console", "Port": 2200, "ServiceEnabled": false } }, "SerialNumber": "MT2513XZ00BK", "Status": { "Conditions": [], "Health": "OK", "State": "Enabled" }, "Storage": { "@odata.id": "/redfish/v1/Systems/System_0/Storage" }, "SystemType": "Physical"} | |
Related Commands | ||
Notes |
| |
Time Management
Time management can be handles with the following APIs:
Show NTP Servers Status
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X GET https://<bmc_ip>/redfish/v1/Managers/BMC_0/NetworkProtocol | |
Description | This Redfish API shall be used to show the NTP Time Servers status on the BMC. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | ||
Response | { "@odata.id": "/redfish/v1/Managers/BMC_0/NetworkProtocol", "@odata.type": "#ManagerNetworkProtocol.v1_5_0.ManagerNetworkProtocol", "Description": "Manager Network Service", "FQDN": "juliet-bmc", "HTTP": { "Port": null, "ProtocolEnabled": false }, "HTTPS": { "Certificates": { "@odata.id": "/redfish/v1/Managers/BMC_0/NetworkProtocol/HTTPS/Certificates" }, "Port": 443, "ProtocolEnabled": true }, "HostName": "juliet-bmc", "Id": "NetworkProtocol", "NTP": { "NTPServers": [], "ProtocolEnabled": true }, "Name": "Manager Network Protocol", "Oem": { "Nvidia": { "@odata.type": "#NvidiaNetworkProtocol.v1_0_0.NvidiaNetworkProtocol", "Rsyslog": { "Address": "", "Filter": { "Facilities": [], "LowestSeverity": "Error" }, "Port": 0, "State": "Disabled", "TLS": "Disabled", "TransportProtocol": "TCP" } } }, "SSH": { "Port": 22, "ProtocolEnabled": true }, "Status": { "Health": "OK", "HealthRollup": "OK", "State": "Enabled" }} | |
Related Commands | Enable/Disable NTP Servers | |
Notes | ||
Enable/Disable NTP Servers
Redfish API | curl -k -u <user>:<p/w> https://<bmc_ip>/redfish/v1/Managers/BMC_0/NetworkProtocol -H content-type:application/json -X PATCH -d '{ "NTP": { "ProtocolEnabled": ntp_value} }' | |
Description | This Redfish API shall be used to enable or disable NTP Time Servers on the BMC. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
ntp_value | NTP Value: possible values: true, false. | |
Default | N/A | |
History | ||
Response | 204 No Content | |
Related Commands | Show NTP Servers Status | |
Notes | ||
Show Time and Date
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X GET https://<bmc_ip>/redfish/v1/Managers/BMC_0 | |
Description | This Redfish API shall be used to show the Date and Time on the BMC. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | ||
Response | { "@odata.id": "/redfish/v1/Managers/BMC_0", "@odata.type": "#Manager.v1_15_0.Manager", "Actions": { "#Manager.Reset": { "@Redfish.ActionInfo": "/redfish/v1/Managers/BMC_0/ResetActionInfo", "target": "/redfish/v1/Managers/BMC_0/Actions/Manager.Reset" }, "#Manager.ResetToDefaults": { "ResetType@Redfish.AllowableValues": [ "ResetAll" ], "target": "/redfish/v1/Managers/BMC_0/Actions/Manager.ResetToDefaults" }, "Oem": { "#NvidiaManager.AsyncOOBRawCommand": { "@Redfish.ActionInfo": "/redfish/v1/Managers/BMC_0/Oem/Nvidia/AsyncOOBRawCommandActionInfo", "target": "/redfish/v1/Managers/BMC_0/Actions/Oem/NvidiaManager.AsyncOOBRawCommand" }, "#NvidiaManager.ResetToDefaults": { "target": "/redfish/v1/Managers/BMC_0/Actions/Oem/NvidiaManager.ResetToDefaults" }, "#NvidiaManager.SyncOOBRawCommand": { "@Redfish.ActionInfo": "/redfish/v1/Managers/BMC_0/Oem/Nvidia/SyncOOBRawCommandActionInfo", "target": "/redfish/v1/Managers/BMC_0/Actions/Oem/NvidiaManager.SyncOOBRawCommand" }, "#eMMC.SecureErase": { "@Redfish.ActionInfo": "/redfish/v1/Managers/BMC_0/Oem/EmmcSecureEraseActionInfo", "target": "/redfish/v1/Managers/BMC_0/Actions/Oem/eMMC.SecureErase" } } }, "DateTime": "2025-04-17T07:32:29+00:00", "DateTimeLocalOffset": "+00:00", "Description": "Baseboard Management Controller", "EthernetInterfaces": { "@odata.id": "/redfish/v1/Managers/BMC_0/EthernetInterfaces" }, "FirmwareVersion": "88.0002.1132", "Id": "BMC_0", "LastResetTime": "2025-05-19T11:29:55+00:00", "Links": { "ActiveSoftwareImage": { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/MGX_FW_BMC_0" }, "ManagerForChassis": [ { "@odata.id": "/redfish/v1/Chassis/BMC_eeprom" } ], "ManagerForChassis@odata.count": 1, "ManagerForServers": [ { "@odata.id": "/redfish/v1/Systems/System_0" } ], "ManagerForServers@odata.count": 1, "ManagerInChassis": { "@odata.id": "/redfish/v1/Chassis/BMC_eeprom" }, "SoftwareImages": [ { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/MGX_FW_BMC_0" } ], "SoftwareImages@odata.count": 1 }, "LogServices": { "@odata.id": "/redfish/v1/Managers/BMC_0/LogServices" }, "ManagerDiagnosticData": { "@odata.id": "/redfish/v1/Managers/BMC_0/ManagerDiagnosticData" }, "ManagerType": "BMC", "Model": "OpenBmc", "Name": "OpenBmc Manager", "NetworkProtocol": { "@odata.id": "/redfish/v1/Managers/BMC_0/NetworkProtocol" }, "Oem": { "Nvidia": { "@odata.type": "#NvidiaManager.v1_6_0.NvidiaManager", "DebugTokenManagement": { "@odata.id": "/redfish/v1/Managers/BMC_0/Oem/Nvidia/DebugTokenManagement" }, "FirmwareBuildType": null, "OTPProvisioned": false, "PersistentStorageSettings": { "Status": { "State": "Enabled" } }, "UptimeSeconds": 1419.15 }, "OpenBmc": { "@odata.id": "/redfish/v1/Managers/BMC_0#/Oem/OpenBmc", "@odata.type": "#OpenBMCManager.OpenBmc", "Certificates": { "@odata.id": "/redfish/v1/Managers/BMC_0/Truststore/Certificates" } } }, "PowerState": "On", "SerialConsole": { "ConnectTypesSupported": [ "IPMI", "SSH" ], "MaxConcurrentSessions": 15, "ServiceEnabled": true }, "ServiceEntryPointUUID": "6df9822a-8b3d-4c85-b169-10870f0dc2d0", "ServiceIdentification": "", "Status": { "Conditions": [], "Health": "OK", "HealthRollup": "OK", "State": "Enabled" }, "UUID": "32b49574-4028-4c58-a70f-f1b9bf1ecaff"} | |
Related Commands | Set Time and Date Manually, Enable/Disable NTP Servers | |
Notes | ||
Set Time and Date Manually
Redfish API | curl -k -u <user>:<p/w> https://<bmc_ip>/redfish/v1/Managers/BMC_0 -H content-type:application/json -X PATCH -d '{"DateTime": <date_time>}' | |
Description | This Redfish API shall be used to set the date and time on the BMC. Make sure to disable the NTP Servers before setting the date and time.
| |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
date_time | Date/Time: i.e "2025-04-17T07:32:00.000Z" | |
Default | N/A | |
History | ||
Response | ||
Related Commands | Show NTP Servers Status, Set Time and Date Manually | |
Notes | ||
Adding NTP Server
Redfish API | curl -k -u <user>:<p/w> "https://<bmc_ip>/redfish/v1/Managers/BMC_0/NetworkProtocol" -X PATCH -H "Content-Type: application/json" -d '{ "NTP":{ "NTPServers": [ntp_server_ip] } }' | |
Description | This Redfish API shall be used to add NTP Time Servers to the BMC. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
ntp_server_ip | String - ip address of the ntp server to add | |
Default | N/A | |
History | ||
Response | 204 No Content | |
Related Commands | Show NTP Servers Status | |
Notes | ||
Network Interfaces
The Network Interfaces section is composed of the following APIs which work in conjunction:
Show Network Interface List
Redfish API | curl -k -u <user>:<p/w> -X GET https://<bmc_ip>/redfish/v1/Managers/BMC_0/EthernetInterfaces | |
Description | This Redfish API shall be used to query for available network interfaces. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | ||
Response | { "@odata.id": "/redfish/v1/Managers/BMC_0/EthernetInterfaces", "@odata.type": "#EthernetInterfaceCollection.EthernetInterfaceCollection", "Description": "Collection of EthernetInterfaces for this Manager", "Members": [ { "@odata.id": "/redfish/v1/Managers/BMC_0/EthernetInterfaces/eth0" }, { "@odata.id": "/redfish/v1/Managers/BMC_0/EthernetInterfaces/eth1" }, { "@odata.id": "/redfish/v1/Managers/BMC_0/EthernetInterfaces/usb0" } ], "Members@odata.count": 3, "Name": "Ethernet Network Interface Collection"} | |
Related Commands | Show Network Interface Details | |
Notes | ||
Show Network Interface Details
Redfish API | curl -k -u <user>:<p/w> -X GET https://<bmc_ip>/redfish/v1/Managers/BMC_0/EthernetInterfaces/<interface name> | |
Description | This Redfish API shall be used query information about a specific BMC network interface. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
interface name | BMC network interface name: usb0, eth0 | |
Default | N/A | |
History | ||
Response | { "@odata.id": "/redfish/v1/Managers/BMC_0/EthernetInterfaces/usb0", "@odata.type": "#EthernetInterface.v1_9_0.EthernetInterface", "DHCPv4": { "DHCPEnabled": false, "UseDNSServers": true, "UseDomainName": true, "UseNTPServers": true }, "DHCPv6": { "OperatingMode": "Disabled", "UseDNSServers": true, "UseDomainName": true, "UseNTPServers": true }, "Description": "Management Network Interface", "EthernetInterfaceType": "Physical", "FQDN": "juliet-bmc", "HostName": "juliet-bmc", "IPv4Addresses": [ { "Address": "10.0.1.1", "AddressOrigin": "Static", "Gateway": "0.0.0.0", "SubnetMask": "255.255.255.0" } ], "IPv4StaticAddresses": [ { "Address": "10.0.1.1", "AddressOrigin": "Static", "Gateway": "0.0.0.0", "SubnetMask": "255.255.255.0" } ], "IPv6AddressPolicyTable": [], "IPv6Addresses": [ { "Address": "fe80::10c9:79ff:fe17:1c26", "AddressOrigin": "LinkLocal", "AddressState": "Preferred", "PrefixLength": 64 } ], "IPv6DefaultGateway": "0:0:0:0:0:0:0:0", "IPv6StaticAddresses": [], "IPv6StaticDefaultGateways": [], "Id": "usb0", "InterfaceEnabled": true, "LinkStatus": "LinkUp", "MACAddress": "12:c9:79:17:1c:26", "MTUSize": 1500, "Name": "Manager Ethernet Interface", "NameServers": [], "SpeedMbps": 0, "StatelessAddressAutoConfig": { "IPv6AutoConfigEnabled": true }, "StaticNameServers": [], "Status": { "State": "Enabled" }} | |
Related Commands | Show Network Interface List | |
Notes | ||
Set BMC Hostname
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" https://<bmc_ip>/redfish/v1/Managers/BMC_0/EthernetInterfaces/<interface_name> -X PATCH -d '{"HostName": "<hostname>"}' | |
Description | This Redfish API shall be used to query for available network interfaces. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
interface_name | BMC network interface name: usb0, eth0 | |
hostname | The desired Hostname | |
Default | N/A | |
History | ||
Response Example | 204 No Content | |
Related Commands | Show Network Interface Details | |
Notes | ||
Set Static IP IPv4
Redfish API | curl -k -u <user>:<p/w> -X PATCH -H 'Content-Type: application/json' -d '{"IPv4StaticAddresses": [{"Address": "<new_ip>", "SubnetMask": "<mask>", "Gateway": "<gateway>"}]}' 'https://<bmc_ip>/redfish/v1/Managers/BMC_0/EthernetInterfaces/<interface_name>' | |
Description | This Redfish API shall be used to set a static IPv4. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
new_ip | New static IPv4 address | |
mask | Subnetmask | |
gateway | Gateway | |
interface_name | BMC network interface name: usb0, eth0 | |
Default | N/A | |
History | ||
Response Example | 204 No Content | |
Related Commands | Show Network Interface Details | |
Notes | ||
Set Static IP IPv6
Redfish API | curl -k -u <user>:<p/w> -X PATCH -H 'Content-Type: application/json' -d '{"IPv6StaticAddresses": [{"Address": "<new_ip>", "PrefixLength": "<prefix_length>"}], "IPv6StaticDefaultGateways": [{"Address": "<GatewayAddress>"}], "StatelessAddressAutoConfig": {"IPv6AutoConfigEnabled": "<AutoConfigEnabled>"}}' 'https://<bmc_ip>/redfish/v1/Managers/BMC_0/EthernetInterfaces/<interface_name>' | |
Description | This Redfish API shall be used to set a static IPv6. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
new_ip | New static IPv6 address | |
prefix_length | IPv6 prefix length | |
GatewayAddress | IPv6 static default gateway | |
AutoConfigEnabled | IPv6 Auto config enabled | |
interface_name | BMC network interface name: usb0, eth0 | |
Default | N/A | |
History | ||
Response Example | 204 No Content | |
Related Commands | Show Network Interface Details | |
Notes | ||
EEPROM
The EEPROM section is composed of the following APIs:
Show BMC EEPROM Information
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X GET https://<bmc_ip>/redfish/v1/Chassis/BMC_eeprom | |
Description | This Redfish API shall be used to provide information from BMC EEPROM | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | ||
Response | { "@odata.id": "/redfish/v1/Chassis/BMC_eeprom", "@odata.type": "#Chassis.v1_22_0.Chassis", "Actions": { "#Chassis.Reset": { "@Redfish.ActionInfo": "/redfish/v1/Chassis/BMC_eeprom/ResetActionInfo", "target": "/redfish/v1/Chassis/BMC_eeprom/Actions/Chassis.Reset" } }, "Assembly": { "@odata.id": "/redfish/v1/Chassis/BMC_eeprom/Assembly" }, "ChassisType": "Module", "Controls": { "@odata.id": "/redfish/v1/Chassis/BMC_eeprom/Controls" }, "EnvironmentMetrics": { "@odata.id": "/redfish/v1/Chassis/BMC_eeprom/EnvironmentMetrics" }, "Id": "BMC_eeprom", "Links": { "ComputerSystems": [ { "@odata.id": "/redfish/v1/Systems/System_0" } ], "ManagedBy": [ { "@odata.id": "/redfish/v1/Managers/BMC_0" } ] }, "Location": { "PartLocation": { "LocationType": "Embedded" } }, "LogServices": { "@odata.id": "/redfish/v1/Chassis/BMC_eeprom/LogServices" }, "Manufacturer": "NVIDIA", "Model": "P3809", "Name": "BMC_eeprom", "Oem": { "Nvidia": { "@odata.type": "#NvidiaChassis.v1_6_0.NvidiaChassis" } }, "PCIeDevices": { "@odata.id": "/redfish/v1/Chassis/BMC_eeprom/PCIeDevices" }, "PCIeSlots": { "@odata.id": "/redfish/v1/Chassis/BMC_eeprom/PCIeSlots" }, "PartNumber": "699-23809-0600-EB1", "PowerState": "On", "PowerSubsystem": { "@odata.id": "/redfish/v1/Chassis/BMC_eeprom/PowerSubsystem" }, "Sensors": { "@odata.id": "/redfish/v1/Chassis/BMC_eeprom/Sensors" }, "SerialNumber": "1583425629045", "Status": { "Conditions": [], "Health": "OK", "HealthRollup": "OK", "State": "Enabled" }, "ThermalSubsystem": { "@odata.id": "/redfish/v1/Chassis/BMC_eeprom/ThermalSubsystem" }} | |
Related Commands | ||
Notes | ||
Show System EEPROM Information
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X GET https://<bmc_ip>/redfish/v1/Systems/System_0 | |
Description | This Redfish API shall be used to provide information from System EEPROM. This API can be used to retrieve system serial number. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | ||
Response | { "@odata.id": "/redfish/v1/Systems/System_0", "@odata.type": "#ComputerSystem.v1_22_0.ComputerSystem", "Actions": { "#ComputerSystem.Reset": { "@Redfish.ActionInfo": "/redfish/v1/Systems/System_0/ResetActionInfo", "target": "/redfish/v1/Systems/System_0/Actions/ComputerSystem.Reset" } }, "Boot": { "AutomaticRetryAttempts": 3, "AutomaticRetryConfig": "RetryAttempts", "AutomaticRetryConfig@Redfish.AllowableValues": [ "Disabled", "RetryAttempts" ], "BootOrderPropertySelection": "BootOrder", "BootSourceOverrideEnabled": "Disabled", "BootSourceOverrideEnabled@Redfish.AllowableValues": [ "Once", "Continuous", "Disabled" ], "BootSourceOverrideMode": "UEFI", "BootSourceOverrideMode@Redfish.AllowableValues": [ "Legacy", "UEFI" ], "BootSourceOverrideTarget": "None", "BootSourceOverrideTarget@Redfish.AllowableValues": [ "None", "Pxe", "Hdd", "Cd", "Diags", "BiosSetup", "Usb" ], "RemainingAutomaticRetryAttempts": 3, "StopBootOnFault": "Never", "TrustedModuleRequiredToBoot": "Disabled" }, "BootProgress": { "LastState": "None", "LastStateTime": "1970-01-01T00:00:00.000000+00:00" }, "Description": "Computer System", "HostWatchdogTimer": { "FunctionEnabled": false, "Status": { "State": "Enabled" }, "TimeoutAction": "ResetSystem" }, "Id": "System_0", "LastResetTime": "2025-06-24T22:42:10+00:00", "Links": { "Chassis": [ { "@odata.id": "/redfish/v1/Chassis/BMC_eeprom" } ], "ManagedBy": [ { "@odata.id": "/redfish/v1/Managers/BMC_0" } ] }, "LogServices": { "@odata.id": "/redfish/v1/Systems/System_0/LogServices" }, "Manufacturer": "NVIDIA", "Memory": { "@odata.id": "/redfish/v1/Systems/System_0/Memory" }, "MemorySummary": { "TotalSystemMemoryGiB": 0 }, "Model": "N5500_LD", "Name": "System_0", "PowerOnDelaySeconds": 0, "PowerRestorePolicy": "AlwaysOn", "PowerState": "On", "ProcessorSummary": { "Count": 0 }, "Processors": { "@odata.id": "/redfish/v1/Systems/System_0/Processors" }, "SerialConsole": { "IPMI": { "ServiceEnabled": true }, "MaxConcurrentSessions": 15, "SSH": { "HotKeySequenceDisplay": "Press ~. to exit console", "Port": 2200, "ServiceEnabled": false } }, "SerialNumber": "MT2513XZ00BK", "Status": { "Conditions": [], "Health": "OK", "State": "Enabled" }, "Storage": { "@odata.id": "/redfish/v1/Systems/System_0/Storage" }, "SystemType": "Physical"} | |
Related Commands | ||
Notes | ||
Temperature Sensor
Show Temperature Sensor Information
Redfish API | curl -k -u <user>:<p/w> -X GET https://<bmc_ip>/redfish/v1/Chassis/MGX_BMC_0/Sensors/BMC_TEMP | |
Description | This Redfish API shall be used to read the value and thresholds from the BMC temperature sensor. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | ||
Response | { "@odata.id": "/redfish/v1/Chassis/MGX_BMC_0/Sensors/BMC_TEMP", "@odata.type": "#Sensor.v1_7_0.Sensor", "Id": "BMC_TEMP", "Name": "BMC TEMP", "Reading": 28.5, "ReadingRangeMax": 127.0, "ReadingRangeMin": -128.0, "ReadingType": "Temperature", "ReadingUnits": "Cel", "RelatedItem": [ { "@odata.id": "/redfish/v1/Managers/BMC_0" } ], "Status": { "Conditions": [], "Health": "OK", "HealthRollup": "OK", "State": "Enabled" }, "Thresholds": { "LowerCaution": { "Reading": 5.0 }, "UpperCaution": { "Reading": 105.0 }, "UpperCritical": { "Reading": 108.0 } }} | |
Related Commands | ||
Notes | ||
Service Identification
The Service Identification section is composed of the following APIs:
Set Service Identification
Redfish API | curl -k -u <user>:<p/w> -H 'Content-Type: application/json' -X PATCH https://<bmc_ip>/redfish/v1/Managers/BMC_0 -d '{"ServiceIdentification": "<service_id>"}' | |
Description | This Redfish API shall be used to set the ServiceIdentification property, which is a user-provided product and service identifier. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
service_id | The provided user ServiceIdentification (i.e., nvswitch_bmc_1) | |
Default | N/A | |
History | ||
Response Example | 204 No Content | |
Related Commands | Show Service Identification | |
Notes | Only the following characters are allowed for service identification "A-Za-z0-9 _-" | |
Show Service Identification
Redfish API | curl -k -u <user>:<p/w> -X GET https://<bmc_ip>/redfish/v1/Managers/BMC_0 | |
Description | This Redfish API shall be used to read the ServiceIdentification property. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | ||
Response | { "@odata.id": "/redfish/v1/Managers/BMC_0", "@odata.type": "#Manager.v1_14_0.Manager", "Actions": { "#Manager.Reset": { "@Redfish.ActionInfo": "/redfish/v1/Managers/BMC_0/ResetActionInfo", "target": "/redfish/v1/Managers/BMC_0/Actions/Manager.Reset" }, "#Manager.ResetToDefaults": { "ResetType@Redfish.AllowableValues": [ "ResetAll" ], "target": "/redfish/v1/Managers/BMC_0/Actions/Manager.ResetToDefaults" }, "Oem": { "#NvidiaManager.AsyncOOBRawCommand": { "@Redfish.ActionInfo": "/redfish/v1/Managers/BMC_0/Oem/Nvidia/AsyncOOBRawCommandActionInfo", "target": "/redfish/v1/Managers/BMC_0/Actions/Oem/NvidiaManager.AsyncOOBRawCommand" }, "#NvidiaManager.ResetToDefaults": { "target": "/redfish/v1/Managers/BMC_0/Actions/Oem/NvidiaManager.ResetToDefaults" }, "#NvidiaManager.SyncOOBRawCommand": { "@Redfish.ActionInfo": "/redfish/v1/Managers/BMC_0/Oem/Nvidia/SyncOOBRawCommandActionInfo", "target": "/redfish/v1/Managers/BMC_0/Actions/Oem/NvidiaManager.SyncOOBRawCommand" }, "#eMMC.SecureErase": { "@Redfish.ActionInfo": "/redfish/v1/Managers/BMC_0/Oem/EmmcSecureEraseActionInfo", "target": "/redfish/v1/Managers/BMC_0/Actions/Oem/eMMC.SecureErase" } } }, "DateTime": "2025-01-30T07:39:59+00:00", "DateTimeLocalOffset": "+00:00", "Description": "Baseboard Management Controller", "EthernetInterfaces": { "@odata.id": "/redfish/v1/Managers/BMC_0/EthernetInterfaces" }, "FirmwareVersion": "88.0002.0109", "Id": "BMC_0", "LastResetTime": "2025-01-30T06:58:39+00:00", "Links": { "ActiveSoftwareImage": { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/MGX_FW_BMC_0" }, "ManagerForChassis": [ { "@odata.id": "/redfish/v1/Chassis/BMC_eeprom" } ], "ManagerForChassis@odata.count": 1, "ManagerForServers": [ { "@odata.id": "/redfish/v1/Systems/System_0" } ], "ManagerForServers@odata.count": 1, "ManagerInChassis": { "@odata.id": "/redfish/v1/Chassis/BMC_eeprom" }, "SoftwareImages": [ { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/MGX_FW_BMC_0" } ], "SoftwareImages@odata.count": 1 }, "LogServices": { "@odata.id": "/redfish/v1/Managers/BMC_0/LogServices" }, "ManagerDiagnosticData": { "@odata.id": "/redfish/v1/Managers/BMC_0/ManagerDiagnosticData" }, "ManagerType": "BMC", "Model": "OpenBmc", "Name": "OpenBmc Manager", "NetworkProtocol": { "@odata.id": "/redfish/v1/Managers/BMC_0/NetworkProtocol" }, "Oem": { "Nvidia": { "@odata.type": "#NvidiaManager.v1_4_0.NvidiaManager", "FirmwareBuildType": null, "OTPProvisioned": false, "PersistentStorageSettings": { "Status": { "State": "Enabled" } }, "UptimeSeconds": 2411.55 }, "OpenBmc": { "@odata.id": "/redfish/v1/Managers/BMC_0#/Oem/OpenBmc", "@odata.type": "#OpenBMCManager.OpenBmc", "Certificates": { "@odata.id": "/redfish/v1/Managers/BMC_0/Truststore/Certificates" } } }, "PowerState": "On", "SerialConsole": { "ConnectTypesSupported": [ "IPMI", "SSH" ], "MaxConcurrentSessions": 15, "ServiceEnabled": true }, "ServiceEntryPointUUID": "23d523e1-666f-4af5-b841-3241b2639516", "ServiceIdentification": "nvswitch_bmc_1", "Status": { "Conditions": [], "Health": "OK", "HealthRollup": "OK", "State": "Enabled" }, "UUID": "3330f3dd-cc81-4af3-8076-32f838318d3a"} | |
Related Commands | Set Service Identification | |
Notes | ||
Location Indicator LED
The Location Indicator LED section is composed of the following APIs:
Location Indicator Active
Redfish API | curl -k -u <user>:<p/w> "https://<bmc_ip>/redfish/v1/Systems/System_0" -X PATCH -H "Content-Type: application/json" -d '{"LocationIndicatorActive":<led_active> }' | |
Description | This Redfish API shall be used to turn on/off the Identify LED. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
led_active | true/false | |
Default | N/A | |
History | ||
Response Example | 204 No Content | |
Related Commands | ||
Notes | ||
Debug Information
The Debug Information section is composed of several APIs, some of which work in conjunction:
These APIs are related to generating debug information in the system.
The Generate Debug Information API initiate the task of generating debug information in the system. Following that task initiation one can call the Show Debug Information Generation Status API to figure out that task state (i.e., whether a task is still running or completed).
Upon completion of that task, one may choose to call the Output Debug Information To File API can be used to write the generated debug information to a file..
Check Existing Debug Information Files
Redfish API | curl -k -u <user>:<p/w> https://<ip>/redfish/v1/Managers/BMC_0/LogServices/Dump/Entries | |
Description | This Redfish API shows all the generated debug information files. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | ||
Response | { "@odata.id": "/redfish/v1/Managers/BMC_0/LogServices/Dump/Entries", "@odata.type": "#LogEntryCollection.LogEntryCollection", "Description": "Collection of BMC Dump Entries", "Members": [ { "@odata.id": "/redfish/v1/Managers/BMC_0/LogServices/Dump/Entries/1", "@odata.type": "#LogEntry.v1_15_0.LogEntry", "AdditionalDataSizeBytes": 2112805, "AdditionalDataURI": "/redfish/v1/Managers/BMC_0/LogServices/Dump/Entries/1/attachment", "Created": "2026-02-05T02:03:33.000000+00:00", "DiagnosticDataType": "Manager", "EntryType": "Event", "Id": "1", "Name": "BMC Dump Entry", "Originator": "10.237.35.218", "OriginatorType": "Client" }, { "@odata.id": "/redfish/v1/Managers/BMC_0/LogServices/Dump/Entries/2", "@odata.type": "#LogEntry.v1_15_0.LogEntry", "AdditionalDataSizeBytes": 3029152, "AdditionalDataURI": "/redfish/v1/Managers/BMC_0/LogServices/Dump/Entries/2/attachment", "Created": "2026-02-09T10:41:37.000000+00:00", "DiagnosticDataType": "Manager", "EntryType": "Event", "Id": "2", "Name": "BMC Dump Entry", "Originator": "10.7.34.116", "OriginatorType": "Client" }, { "@odata.id": "/redfish/v1/Managers/BMC_0/LogServices/Dump/Entries/3", "@odata.type": "#LogEntry.v1_15_0.LogEntry", "AdditionalDataSizeBytes": 2983965, "AdditionalDataURI": "/redfish/v1/Managers/BMC_0/LogServices/Dump/Entries/3/attachment", "Created": "2026-02-09T11:22:49.000000+00:00", "DiagnosticDataType": "Manager", "EntryType": "Event", "Id": "3", "Name": "BMC Dump Entry", "Originator": "10.7.34.116", "OriginatorType": "Client" } ], "Members@odata.count": 3, "Name": "BMC Dump Entries"} | |
Related Commands | ||
Notes | Field | |
Generate Debug Information
It is recommended that, before generating debug information, existing generated files are reviewed (see the Check Existing Debug Information Files section) and any files whose OriginatorType is not Client will be exported to a file (see the section Output Debug Information To File).
Redfish API | curl -k -u <user>:<p/w> -d '{"DiagnosticDataType": "Manager"}' -X POST https://<bmc_ip>/redfish/v1/Managers/BMC_0/LogServices/Dump/Actions/LogService.CollectDiagnosticData | |
Description | This Redfish API shall be used to send a request for BMC to generate BMC dumps, RoTs dumps, BMC EEPROM dump. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Id (return value) | task_id_number | |
Default | N/A | |
History | ||
Response | { "@odata.id": "/redfish/v1/TaskService/Tasks/0", "@odata.type": "#Task.v1_4_3.Task", "Id": "0", "TaskState": "Running", "TaskStatus": "OK" } | |
Related Commands | Show Debug Information Generation Status | |
Notes | ||
Show Debug Information Generation Status
Redfish API | curl -k -u <user>:<p/w> -H 'Content-Type: application/json' -X GET https://<bmc_ip>/redfish/v1/TaskService/Tasks/<task_id_number> | |
Description | This Redfish API shall be used to get the logs dump task state. When task state changes from “Running” to “Completed”, the dump is ready for download. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
task_id_number | Task ID is received from Generate Debug Information command. | |
entry id (return value) | entry_id | |
Default | N/A | |
History | ||
Response | { "@odata.id": "/redfish/v1/TaskService/Tasks/0", "@odata.type": "#Task.v1_4_3.Task", "EndTime": "2024-03-25T11:56:11+00:00", "HidePayload": false, "Id": "0", "Messages": [ { "@odata.type": "#Message.v1_1_1.Message", "Message": "The task with Id '0' has started.", "MessageArgs": [ "0" ], "MessageId": "TaskEvent.1.0.3.TaskStarted", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#Message.v1_1_1.Message", "Message": "The request completed successfully.", "MessageArgs": [], "MessageId": "Base.1.16.0.Success", "MessageSeverity": "OK", "Resolution": "None" } ], "Name": "Task 0", "Payload": { "HttpHeaders": [ "Host: 10.0.1.1", "User-Agent: curl/7.88.1", "Accept: */*", "Content-Length: 33", "Location: /redfish/v1/Managers/BMC_0/LogServices/Dump/Entries/113" ], "HttpOperation": "POST", "JsonBody": "{\n \"DiagnosticDataType\": \"Manager\"\n}", "TargetUri": "/redfish/v1/Managers/BMC_0/LogServices/Dump/Actions/LogService.CollectDiagnosticData" }, "PercentComplete": 100, "StartTime": "2024-03-25T11:44:30+00:00", "TaskMonitor": "/redfish/v1/TaskService/Tasks/0/Monitor", "TaskState": "Completed", "TaskStatus": "OK"} | |
Related Commands | Generate Debug Information | |
Notes | ||
Output Debug Information To File
Redfish API | curl -k -u <user>:<p/w> -d '{"DiagnosticDataType": "Manager"}' -X POST https://<bmc_ip>/redfish/v1/Managers/BMC_0/LogServices/Dump/Entries/<entry_id>/attachment --output </path/to/tar/log_dump.tar.xz> | |
Description | This Redfish API shall be used to send a request for BMC to generate BMC dump as a compressed tar file, for a specific log entry ID. Use the entry ID from the previous RF API response. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
entry_id | Entry ID of the dump in redfish/v1/Managers/BMC_0/LogServices/Dump/Entries/ | |
/path/to/tar/log_dump.tar.xz | path to download the log dump log_dump.tar.xz | |
Default | N/A | |
History | ||
Response | % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed100 26933 100 26933 0 0 122k 0 --:--:-- --:--:-- --:--:-- 123k | |
Related Commands | Generate Debug Information | |
Notes | ||
Show Allowed Components to Get Debug Information
Redfish API | curl -k -u <user>:<p/w> -H 'Content-Type: application/json' -X GET https://<bmc_ip>/redfish/v1/Systems/System_0/LogServices/Dump/CollectDiagnosticDataActionInfo | |
Description | This Redfish API shall be used to show the allowed components to get debug information. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | ||
Response Example | { "@odata.id": "/redfish/v1/Systems/System_0/LogServices/Dump/CollectDiagnosticDataActionInfo", "@odata.type": "#ActionInfo.v1_2_0.ActionInfo", "Id": "CollectDiagnosticDataActionInfo", "Name": "CollectDiagnosticDataActionInfo Action Info", "Parameters": [ { "AllowableValues": [ "OEM" ], "DataType": "String", "Name": "DiagnosticDataType", "Required": true }, { "AllowableValues": [ "DiagnosticType=CPLD", "DiagnosticType=EROT" ], "DataType": "String", "Name": "OEMDiagnosticDataType", "Required": true } ]} | |
Related Commands | Generate Debug Information | |
Notes | ||
Generate Debug Information For Specific Component
Redfish API | curl -k -u <user>:<p/w> -d '{"DiagnosticDataType": "OEM", "OEMDiagnosticDataType": "DiagosticType=CPLD"}' -X POST https://<bmc_ip>/redfish/v1/Systems/System_0/LogServices/Dump/Actions/LogService.CollectDiagnosticData | |
Description | This Redfish API shall be used to send a request for BMC to generate dumps for specific components. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Id (return value) | task_id_number | |
Default | N/A | |
History | ||
Response Example | "@odata.id": "/redfish/v1/TaskService/Tasks/0", "@odata.type": "#Task.v1_4_3.Task", "Id": "0", "TaskState": "Running", "TaskStatus": "OK"} | |
Related Commands | Generate Debug Information—Generate Debug Information for specific component | |
Notes | ||
Show Debug Information for Specific Component Generation Status
Redfish API | curl -k -u <user>:<p/w> -H 'Content-Type: application/json' -X GET https://<bmc_ip>/redfish/v1/TaskService/Tasks/<task_id_number> | |
Description | This Redfish API shall be used to get the logs dump task state. When task state changes from “Running” to “Completed”, the dump is ready for download. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
task_id_number | Task ID is received from Generate Debug Information command. | |
entry id (return value) | entry_id | |
Default | N/A | |
History | ||
Response | { "@odata.id": "/redfish/v1/TaskService/Tasks/0", "@odata.type": "#Task.v1_4_3.Task", "EndTime": "2024-03-25T11:56:11+00:00", "HidePayload": false, "Id": "0", "Messages": [ { "@odata.type": "#Message.v1_1_1.Message", "Message": "The task with Id '0' has started.", "MessageArgs": [ "0" ], "MessageId": "TaskEvent.1.0.3.TaskStarted", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#Message.v1_1_1.Message", "Message": "The request completed successfully.", "MessageArgs": [], "MessageId": "Base.1.16.0.Success", "MessageSeverity": "OK", "Resolution": "None" } ], "Name": "Task 0", "Payload": { "HttpHeaders": [ "Host: 10.0.1.1", "User-Agent: curl/7.88.1", "Accept: */*", "Content-Length: 33", "Location: /redfish/v1/Managers/BMC_0/LogServices/Dump/Entries/113" ], "HttpOperation": "POST", "JsonBody": "{\n \"DiagnosticDataType\": \"Manager\"\n}", "TargetUri": "/redfish/v1/Managers/BMC_0/LogServices/Dump/Actions/LogService.CollectDiagnosticData" }, "PercentComplete": 100, "StartTime": "2024-03-25T11:44:30+00:00", "TaskMonitor": "/redfish/v1/TaskService/Tasks/0/Monitor", "TaskState": "Completed", "TaskStatus": "OK"} | |
Related Commands | Generate Debug Information | |
Notes | ||
Output Debug Information for Specific Component to File
Redfish API | curl -k -u <user>:<p/w> -d '{"DiagnosticDataType": "Manager"}' -X POST https://<bmc_ip>/redfish/v1/Systems/System_0/LogServices/Dump/Entries/<entry_id>/attachment --output </path/to/tar/log_dump.tar.xz> | |
Description | This Redfish API shall be used to send a request for BMC to generate BMC dump as a compressed tar file, for a specific log entry ID. Use the entry ID from the previous RF API response. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
entry_id | Entry ID of the dump in redfish/v1/Systems/System_0/LogServices/Dump/Entries/. Use the entry ID from the previous API. | |
Default | N/A | |
History | ||
Response Example | % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed100 26933 100 26933 0 0 122k 0 --:--:-- --:--:-- --:--:-- 123k | |
Related Commands | Generate Debug Information | |
Notes | ||
Debug Token (CRDT)
The Debug Token section is composed of the following APIs, some of which work in conjunction:
The first three APIs are related to generating debug token information in the system.
The Generate Debug Token API initiate the task of generating debug token information in the system. Following that task initiation, one can call the Show Debug Token Generation Status API to figure out that task state (i.e. whether still running or completed).
Upon completion of that task, one may choose to call the Download Debug Token API to see that relevant ROT SPDM information.
Once download the debug token, it can be used outside of the BMC platform to bundle it with a certain firmware package and to generate bundled debug file out of it.
The bundled and signed debug file shall be installed on the system using the API Install Debug Token Signed Firmware, and another API Show Debug Token Installation Status can be used to verify the installation status.
The final three APIs are related to generating the installed debug token bundle information in the system.
The Generate Installed Debug Token Attachments API initiate a task of generating the installed debug token attachments in the system. Following that task initiation one can call the Show Installed Debug Token Attachments Generation Status API to figure out that task state (i.e., whether still running or completed).
Upon completion of that task, one may choose to call the Show Installed Debug Token Attachments API to see that relevant debug token attachment information.
Generate Debug Token
Redfish API | curl -k -u <user>:<p/w> --request POST --location 'https://<bmc_ip>/redfish/v1/Systems/System_0/LogServices/DebugTokenService/LogService.CollectDiagnosticData' \ | |
Description | This Redfish API shall be used to provide consolidated support for obtaining and querying Debug Tokens across the Juliet platform. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Id (return value) | task_id_number | |
Default | N/A | |
History | ||
Response | { "@odata.id": "/redfish/v1/TaskService/Tasks/26", "@odata.type": "#Task.v1_4_3.Task", "Id": “26", "TaskState": "Running", "TaskStatus": "OK" } | |
Related Commands | Show Debug Token Generation Status | |
Notes |
| |
Show Debug Token Generation Status
Redfish API | curl -k -u <user>:<p/w> https://<bmc_ip>/redfish/v1/TaskService/Tasks/<task_id_number> | |
Description | This Redfish API shall be used to show status of the Debug Tokens generation task state. When task state changes from “Running” to “Completed”, the Debug Token is ready to be downloaded. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
task_id_number | Task ID number provided from Generate Debug Token command | |
attach_id (return value) | Entry ID number provided for the attachment | |
Default | N/A | |
History | ||
Response | { "@odata.id": "/redfish/v1/TaskService/Tasks/26", "@odata.type": "#Task.v1_4_3.Task", "EndTime": "2024-07-04T05:10:50+00:00", "HidePayload": false, "Id": "26", "Messages": [ { "@odata.type": "#Message.v1_1_1.Message", "Message": "The task with Id '26' has started.", "MessageArgs": [ "26" ], "MessageId": "TaskEvent.1.0.3.TaskStarted", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#Message.v1_1_1.Message", "Message": "The operation to request a debug token for device 'MGX_ERoT_BMC_0' has been successfully completed.", "MessageArgs": [ "MGX_ERoT_BMC_0" ], "MessageId": "OpenBMC.0.4.0.DebugTokenRequestSuccess", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#Message.v1_1_1.Message", "Message": "The operation to request a debug token for device 'MGX_ERoT_FPGA_0' has been successfully completed.", "MessageArgs": [ "MGX_ERoT_FPGA_0" ], "MessageId": "OpenBMC.0.4.0.DebugTokenRequestSuccess", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#Message.v1_1_1.Message", "Message": "The operation to request a debug token for device 'MGX_ERoT_NVSwitch_0' has been successfully completed.", "MessageArgs": [ "MGX_ERoT_NVSwitch_0" ], "MessageId": "OpenBMC.0.4.0.DebugTokenRequestSuccess", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#Message.v1_1_1.Message", "Message": "The operation to request a debug token for device 'MGX_ERoT_NVSwitch_1' has been successfully completed.", "MessageArgs": [ "MGX_ERoT_NVSwitch_1" ], "MessageId": "OpenBMC.0.4.0.DebugTokenRequestSuccess", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#Message.v1_1_1.Message", "Message": "The operation to request a debug token for device 'MGX_ERoT_CPU_0' has been successfully completed.", "MessageArgs": [ "MGX_ERoT_CPU_0" ], "MessageId": "OpenBMC.0.4.0.DebugTokenRequestSuccess", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#Message.v1_1_1.Message", "Message": "The task with Id '26' has completed.", "MessageArgs": [ "26" ], "MessageId": "TaskEvent.1.0.3.TaskCompletedOK", "MessageSeverity": "OK", "Resolution": "None." } ], "Name": "Task 26", "Payload": { "HttpHeaders": [ "Host: 10.0.1.1", "User-Agent: curl/7.88.1", "Accept: */*", "Content-Length: 78", "Location: /redfish/v1/Systems/System_0/LogServices/DebugTokenService/Entries/1/attachment" ], "HttpOperation": "POST", "JsonBody": "{\n \"DiagnosticDataType\": \"OEM\",\n \"OEMDiagnosticDataType\": \"GetDebugTokenRequest\"\n}", "TargetUri": "/redfish/v1/Systems/System_0/LogServices/DebugTokenService/LogService.CollectDiagnosticData" }, "PercentComplete": 100, "StartTime": "2024-07-04T05:10:50+00:00", "TaskMonitor": "/redfish/v1/TaskService/Tasks/26/Monitor", "TaskState": "Completed", "TaskStatus": "OK"} | |
Related Commands | Generate Debug Tokens | |
Notes | ||
Download Debug Token
Redfish API | curl -k -u <user>:<p/w> https://<bmc_ip>/redfish/v1/Systems/System_0/LogServices/DebugTokenService/Entries/<attach_id>/attachment -o </path/to/file.bin> | |
Description | This Redfish API is used to download debug token request file generated. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
attach_id | ID for the attachment from Show Debug Token Generation Status command | |
/path/to/file.bin | Path to download the debug token as bin file | |
Default | N/A | |
History | ||
Response | curl -k -u root:0penBmc https://10.0.1.1/redfish/v1/Systems/System_0/LogServices/DebugTokenService/Entries/1/attachment -o /tmp/debug_token_request.bin % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed100 26933 100 26933 0 0 122k 0 --:--:-- --:--:-- --:--:-- 123k | |
Related Commands | Generate Debug Tokens | |
Notes | After downloading the debug token, there needs to be a manual process of bundling the debug token and the firmware and signing them up via 3s servers. | |
Install Debug Token Signed Firmware
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/octet-stream" -X POST https://<bmc_ip>/redfish/v1/UpdateService -T /tmp/<fw_pkg> | |
Description | This Redfish API is used to install the signed debug token and firmware bundle. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
fw_pkg | Signed debug token and firmware bundle | |
Id (return value) | task_id_number | |
Default | N/A | |
History | ||
Response | { "@odata.id": "/redfish/v1/TaskService/Tasks/2", "@odata.type": "#Task.v1_4_3.Task", "Id": "0", "TaskState": "Running", "TaskStatus": "OK"} | |
Related Commands | Generate Debug Tokens | |
Notes | Complete this step only after bundling the debug token request and debug firmware and getting it signed. | |
Show Debug Token Installation Status
Redfish API | curl -k -u <user>:<p/w> https://<bmc_ip>/redfish/v1/TaskService/Tasks/<task_id_number> | |
Description | This Redfish API shall be used to show status of the Debug Tokens Installation task state. When task state changes from “Running” to “Completed”, the Debug Token and Firmware bundled are installed. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
task_id_number | Task ID number provided from Install Debug Token Signed Firmware command | |
Default | N/A | |
History | ||
Response | { "@odata.id": "/redfish/v1/TaskService/Tasks/2", "@odata.type": "#Task.v1_4_3.Task", "Id": "0", "TaskState": "Running", "TaskStatus": "OK"} | |
Related Commands | Generate Debug Tokens | |
Notes | ||
Generate Installed Debug Token Attachments
Redfish API | curl -k -u <user>:<p/w> --request POST --location 'https://<bmc_ip>/redfish/v1/Systems/System_0/LogServices/DebugTokenService/Actions/LogService.CollectDiagnosticData' \ | |
Description | This Redfish API is used to verify the installed debug bundle running state | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Id (return value) | task_id_number | |
Default | N/A | |
History | ||
Response | { "@odata.id": "/redfish/v1/TaskService/Tasks/0", "@odata.type": "#Task.v1_4_3.Task", "Id": "0", "TaskState": "Running", "TaskStatus": "OK" } | |
Related Commands | Generate Debug Tokens | |
Notes | ||
Show Installed Debug Token Attachments Generation Status
Redfish API | curl -k -u <user>:<p/w> https://<bmc_ip>/redfish/v1/TaskService/Tasks/<task_id_number> | |
Description | This Redfish API shall be used to show status of the Installed Debug Tokens Attachment generation task state. When task state changes from “Running” to “Completed”, the Installed Debug Token attachments are ready. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
task_id_number | Task ID number provided from Generate Installed Debug Token Attachments command | |
attach_id | Entry ID for the attachment of EROT details and the programming state of the debug token bundle | |
Default | N/A | |
History | ||
Response | See the Debug Token status curl -k -u root:0penBmc https://10.0.1.1/redfish/v1/TaskService/Tasks/0{ "@odata.id": "/redfish/v1/TaskService/Tasks/0", "@odata.type": "#Task.v1_4_3.Task", "EndTime": "2024-07-15T05:58:37+00:00", "HidePayload": false, "Id": "0", "Messages": [ { "@odata.type": "#Message.v1_1_1.Message", "Message": "The task with Id '0' has started.", "MessageArgs": [ "0" ], "MessageId": "TaskEvent.1.0.3.TaskStarted", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#Message.v1_1_1.Message", "Message": "The operation to obtain a token status for device 'MGX_ERoT_BMC_0' has been successfully completed.", "MessageArgs": [ "MGX_ERoT_BMC_0" ], "MessageId": "OpenBMC.0.4.0.DebugTokenStatusSuccess", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#Message.v1_1_1.Message", "Message": "The operation to obtain a token status for device 'MGX_ERoT_FPGA_0' has been successfully completed.", "MessageArgs": [ "MGX_ERoT_FPGA_0" ], "MessageId": "OpenBMC.0.4.0.DebugTokenStatusSuccess", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#Message.v1_1_1.Message", "Message": "The operation to obtain a token status for device 'MGX_ERoT_NVSwitch_0' has been successfully completed.", "MessageArgs": [ "MGX_ERoT_NVSwitch_0" ], "MessageId": "OpenBMC.0.4.0.DebugTokenStatusSuccess", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#Message.v1_1_1.Message", "Message": "The operation to obtain a token status for device 'MGX_ERoT_NVSwitch_1' has been successfully completed.", "MessageArgs": [ "MGX_ERoT_NVSwitch_1" ], "MessageId": "OpenBMC.0.4.0.DebugTokenStatusSuccess", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#Message.v1_1_1.Message", "Message": "The operation to obtain a token status for device 'MGX_ERoT_CPU_0' has been successfully completed.", "MessageArgs": [ "MGX_ERoT_CPU_0" ], "MessageId": "OpenBMC.0.4.0.DebugTokenStatusSuccess", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#Message.v1_1_1.Message", "Message": "The task with Id '0' has completed.", "MessageArgs": [ "0" ], "MessageId": "TaskEvent.1.0.3.TaskCompletedOK", "MessageSeverity": "OK", "Resolution": "None." } ], "Name": "Task 0", "Payload": { "HttpHeaders": [ "Host: 10.0.1.1", "User-Agent: curl/7.88.1", "Accept: */*", "Content-Length: 74", "Location: /redfish/v1/Systems/System_0/LogServices/DebugTokenService/Entries/0/attachment" ], "HttpOperation": "POST", "JsonBody": "{\n \"DiagnosticDataType\": \"OEM\",\n \"OEMDiagnosticDataType\": \"DebugTokenStatus\"\n}", "TargetUri": "/redfish/v1/Systems/System_0/LogServices/DebugTokenService/LogService.CollectDiagnosticData" }, "PercentComplete": 100, "StartTime": "2024-07-15T05:58:36+00:00", "TaskMonitor": "/redfish/v1/TaskService/Tasks/0/Monitor", "TaskState": "Completed", "TaskStatus": "OK"} | |
Related Commands | Generate Debug Tokens | |
Notes | ||
Show Installed Debug Token Attachments
Redfish API | curl -k -u <user>:<p/w> https://<bmc_ip>/redfish/v1/Systems/System_0/LogServices/DebugTokenService/Entries/<attach_id>/attachment | |
Description | This Redfish API is used to show the Installed Debug Token Attachments. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
attach_id | ID for the attachment from Show Installed Debug Token Attachments Generation Status command | |
Default | N/A | |
History | ||
Response | See the Debug Token status curl -k -u root:0penBmc https://10.0.1.1/redfish/v1/Systems/System_0/LogServices/DebugTokenService/Entries/0/attachment00 00 16 47 00 01 0F 01 00 00 02 1E 03 1A 18 0F 07 0E 01 00 00 16 47 00 01 0F 01 00 00 05 1E 03 1A 18 10 29 2D 01 00 00 16 47 00 01 0F 01 00 00 01 1E 03 1A 18 10 25 0A 01 00 00 16 47 00 01 0F 01 00 00 05 1E 03 1A 18 10 25 18 01 00 00 16 47 00 01 0F 01 00 00 05 1E 03 1A 18 10 30 26 0110'th Byte: Token installation status(1 for installed and 0 for not installed)11-18 Byte: ERoT Serial Number19th Byte: Tells it is Prod system(2) or debug system(1). | |
Related Commands | Generate Debug Tokens | |
Notes | ||
Leakage Sensor
The Leakage Sensor section is composed of the following APIs:
Register to Leakage Events
You can subscribe for Redfish leakage events from anywhere in the network BMC is connected to.
Instructions for event subscription are as follows (bear in mind this is just an example, there are many other methods to do that):
git clone https://github.com/DMTF/Redfish-Event-Listener.git
cd Redfish-Event-Listener
sudo pip install -r requirements.txt
Update the config.ini file with your listener IP and BMC IP.
sudo python RedfishEventListener_v1.py
Simulate Leakage event on BMC.
You should start receiving leakage events in console.
Example for config.ini:
[Information]Updated = February 24, 2023Description = Redfish Event Listener Tool Simple Config[SystemInformation]ListenerIP = 10.210.25.179ListenerPort = 12345UseSSL = off[CertificateDetails]certfile = cert.pemkeyfile = server.key[SubscriptionDetails]Destination = https://<ListenerIP>/EventTypes = [ "Alert", "ResourceRemoved", "ResourceAdded" , "ResourceUpdated", "StatusChange"]Context = PublicFormat = EventExpand = falseResourceTypes = ["Chassis"]Registries = ["ResourceEvent"][ServerInformation]ServerIPs = ["https://10.209.51.198:443"]UserNames = ["root"]Passwords = ["0penBmc"]LoginType = ["Session"]Example of what leakage events look like:
{ "@odata.type": "#Event.v1_9_0.Event", "Context": "", "Events": [ { "EventTimeStamp": "2024-06-18T15:17:39+00:00", "LogEntry": { "@odata.id": "/redfish/v1/Systems/System_0/LogServices/EventLog/Entries/24297" }, "Message": "The resource property leakage1 has detected errors of type 'Leakage Detected'.", "MessageArgs": [ "leakage1", "Leakage Detected" ], "MessageId": "ResourceEvent.1.0.ResourceErrorsDetected", "MessageSeverity": "Critical", "Oem": { "Nvidia": { "@odata.type": "#NvidiaEvent.v1_0_0.EventRecord", "Device": "", "ErrorId": "" } }, "Resolution": "Inspect for water leakage and consider power down switch tray." } ], "Id": "1", "Name": "Event Log"}Leakage Sensor Status
Redfish API | curl -k -u <user>:<p/w> -X GET https://<bmc_ip>/redfish/v1/Chassis/MGX_BMC_0/ThermalSubsystem/LeakDetection/LeakDetectors/<arg> | |
Description | This Redfish API is used to show the status of the leakage sensors. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
arg | leakage1 to leakage2 | |
Default | N/A | |
History | ||
Response | { "@odata.id": "/redfish/v1/Chassis/MGX_BMC_0/ThermalSubsystem/LeakDetection/LeakDetectors/leakage2", "@odata.type": "#LeakDetector.v1_0_1.LeakDetector", "DetectorState": "OK", "Id": "leakage6", "LeakDetectorType": "Moisture", "Name": "Leak Detector", "Status": { "Health": "OK", "State": "Enabled" }} | |
Related Commands | ||
Notes | ||
Set Leakage Policy
Redfish API | curl -u <user>:<p/w> -H "Content-Type: application/json" -X PATCH https://<bmc_ip>/redfish/v1/Chassis/MGX_BMC_0/ThermalSubsystem/LeakDetection/LeakDetectors/<leak_detector_id> -d '{"CriticalReactionType": "<critical_reaction_type>", "ReactionDelaySeconds": <reaction_delay_seconds>}' | |
Description | This Redfish API shall be used to set the leakage policy for a leak detector on the BMC. | |
Syntax Description | user | User name for BMC authentication |
p/w | Password for the user account | |
bmc_ip | IPv4 or IPv6 address of the BMC management interface | |
leak_detector_id | Leak detector identifier (e.g, | |
critical_reaction_type |
| |
reaction_delay_seconds | Delay in seconds before the configured critical reaction is applied after a leak is detected. | |
Default | N/A | |
History | ||
Response Example | 204 No Content | |
Related Commands | Show Leakage Policy | |
Notes | ||
Get Leakage Policy
Redfish API | curl -k -u <user>:<p/w> -X GET https://<bmc_ip>/redfish/v1/Chassis/MGX_BMC_0/Oem/Nvidia/Policies/LeakDetectionPolicy | |
Description | This Redfish API is used to get configured policies. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | ||
Response Example | { "@odata.id": "/redfish/v1/Chassis/MGX_BMC_0/Oem/Nvidia/Policies/LeakDetectionPolicy", "@odata.type": "#NvidiaPolicy.v1_0_0.NvidiaPolicy", "Id": "LeakDetectionPolicy", "Name": "Policy for Leak Detection", "PolicyConditionLogic": "AnyOf", "PolicyConditions": [ { "Property": "/redfish/v1/Chassis/MGX_BMC_0/ThermalSubsystem/LeakDetection/LeakDetectors/LeakageSensor/#DetectorState", "PropertyStringValue": "OK" } ], "PolicyEnabled": true, "PolicyReactions": [ { "CommonReaction": "HardPowerOff", "ReactionDelaySeconds": 10 } ], "Status": { "Health": "OK", "State": "Enabled" }} | |
Related Commands | Set Leakage Policy | |
Notes | ||
Show Leakage Policy
Redfish API | curl -u <user>:<p/w> -H "Content-Type: application/json" https://<bmc_ip>/redfish/v1/Chassis/MGX_BMC_0/ThermalSubsystem/LeakDetection/LeakDetectors/<leak_detector_id> | |
Description | This Redfish API shall be used to show the leakage policy configured for a leak detector on the BMC. | |
Syntax Description | user | User name for BMC authentication |
p/w | Password for the user account | |
bmc_ip | IPv4 or IPv6 address of the BMC management interface | |
leak_detector_id | Leak detector identifier (e.g, | |
Default | N/A | |
History | 88.0060.2102 | |
Response Example | { "@odata.id": "/redfish/v1/Chassis/MGX_BMC_0/ThermalSubsystem/LeakDetection/LeakDetectors/leakage1", "@odata.type": "#LeakDetector.v1_4_0.LeakDetector", "CriticalReactionType": "None", "DetectorState": "OK", "Id": "leakage1", "LeakDetectorType": "Moisture", "Name": "leakage1", "ReactionDelaySeconds": 0, "Status": { "State": "Enabled" }, "WarningReactionType": "None"} | |
Related Commands | Set Leakage Policy | |
Factory Reset
BMC factory reset can be done in two manners:
Factory Reset (Configuration Only)
Redfish API | curl -k -u <user>:<p/w> -X POST https://<bmc_ip>/redfish/v1/Managers/BMC_0/Actions/Manager.ResetToDefaults -d '{"ResetToDefaultsType": "ResetAll"}' | |
Description | This Redfish API shall be used to "Factory Reset" the BMC Configuration (Users, P/W, Network, and so forth) to the initial state in which it came from production. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | ||
Response Example | { "@Message.ExtendedInfo": [ { "@odata.type": "#Message.v1_1_1.Message", "Message": "The request completed successfully.", "MessageArgs": [], "MessageId": "Base.1.16.0.Success", "MessageSeverity": "OK", "Resolution": "None" } ]} | |
Related Commands | Factory Reset (Configuration & Logs) | |
Notes | ||
Factory Reset (Configuration & Logs)
Redfish API | curl -k -u <user>:<p/w> -H 'Content-Type:application/json' -X POST -d '{"ResetToDefaultsType": "ResetAll"}' https://<bmc_ip>/redfish/v1/Managers/BMC_0/Actions/Oem/NvidiaManager.ResetToDefaults | |
Description | This Redfish API shall be used to "Factory Reset" the BMC configuration (Users, P/W, Network, and so forth) to the intial state in which it came from production. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | ||
Response Example | { "@Message.ExtendedInfo": [ { "@odata.type": "#Message.v1_1_1.Message", "Message": "The request completed successfully.", "MessageArgs": [], "MessageId": "Base.1.16.0.Success", "MessageSeverity": "OK", "Resolution": "None" } ]} | |
Related Commands | Factory Reset (Configuration Only) | |
Notes | ||
eMMC Secure Erase
Securely Erase eMMC Card
Redfish API | curl -k -u <user>:<p/w> -X POST https://<bmc_ip>/redfish/v1/Managers/BMC_0/Actions/Oem/eMMC.SecureErase | |
Description | This Redfish API shall be used to securely wipe all data stored on the eMMC card of the BMC. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | ||
Response Example | { "@Message.ExtendedInfo": [ { "@odata.type": "#Message.v1_1_1.Message", "Message": "The request completed successfully.", "MessageArgs": [], "MessageId": "Base.1.18.1.Success", "MessageSeverity": "OK", "Resolution": "None." } ]} | |
Related Commands | Factory Reset Commands | |
Notes | ||
Rsyslog
The BMC can stream out local logs (that go to the systemd journal) by using rsyslog.
Make sure to configure <rsyslog_server_ip> and <port> according to the server-side configuration.
This manual will not cover the configuration of the rsyslog server.
The BMC here acts as an rsyslog client.
Configure Rsyslog Client
Redfish API | curl -k -u <user>:<p/w> -X PATCH https://<bmc_ip>/redfish/v1/Managers/BMC_0/NetworkProtocol -d '{ "Oem": { "Nvidia": { "Rsyslog": { "Address": "<rsyslog_server_ip>", "Port": <rsyslog_server_port>, "State": "Enabled" } } } }' | |
Description | This Redfish API shall be used to configure the rsyslog client on BMC side. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
rsyslog_server_ip | The rsyslog server IP | |
rsyslog_server_port | The rsyslog server Port | |
Default | N/A | |
History | ||
Response | 204 No Content | |
Related Commands | Query Rsyslog Client Configuration | |
Notes | Only one Rsyslog server can be added; if you set another, it will replace the first. | |
Query Rsyslog Client Configuration
Redfish API | curl -k -u <user>:<p/w> -X GET https://<bmc_ip>/redfish/v1/Managers/BMC_0/NetworkProtocol | |
Description | This Redfish API shall be used to query the rsyslog client configuration on BMC side. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | ||
Response Example | N/A | |
Related Commands | Configure Rsyslog Client | |
Notes | ||
Enable Encrypted Streaming With TLS
Redfish API | curl -k -u <user>:<p/w> -X PATCH https://<bmc_ip>/redfish/v1/Managers/BMC_0/NetworkProtocol -d '{ "Oem": { "Nvidia": { "Rsyslog": { "TLS": "Enabled" } } } }' | |
Description | This Redfish API shall be used to enable TLS encrypted streaming for rsyslog messages. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | ||
Response Example | 204 No Content | |
Related Commands | Query Rsyslog Client Configuration | |
Notes | ||
Change Rsyslog Transport Protocol
Redfish API | curl -k -u <user>:<p/w> -X PATCH https://<bmc_ip>/redfish/v1/Managers/BMC_0/NetworkProtocol -d '{ "Oem": { "Nvidia": { "Rsyslog": { "TransportProtocol": "<protocol>", "Address": "10.0.1.2", "Port": 512, "State": "Enabled" }}}}' | |
Description | This Redfish API shall be used in order to select UDP or TCP rsyslog transport protocol. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
protocol | TCP or UDP | |
Default | TCP | |
History | ||
Response Example | 204 No Content | |
Related Commands | Use the following command to retrieve current Transport Protocol: curl -k -u <user>:<p/w> -X GET https://<bmc_ip>/redfish/v1/Managers/BMC_0/NetworkProtocol | |
Notes | ||
Configure Facility Filters
Redfish API | curl -k -u <user>:<p/w> -X PATCH https://<bmc_ip>/redfish/v1/Managers/BMC_0/NetworkProtocol -d '{ "Oem": { "Nvidia": { "Rsyslog": { "Filter": { "Facilities": ["<facility>"] } } } } }' | |
Description | This Redfish API shall be used to configure the rsyslog facilities filter used during message streaming. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
facility | Possible values: All, Kern, Daemon | |
Default | N/A | |
History | ||
Response Example | 204 No Content | |
Related Commands | Query Rsyslog Client Configuration | |
Notes | ||
Configure Priority Filters
Redfish API | curl -k -u <user>:<p/w> -X PATCH https://<bmc_ip>/redfish/v1/Managers/BMC_0/NetworkProtocol -d '{ "Oem": { "Nvidia": { "Rsyslog": { "Filter": { "LowestSeverity": "<severity>"} } } } }' | |
Description | This Redfish API shall be used to enable streaming of log messages that their severity is equal/higher than the configured LowestSeverity. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
severity | Possible values: Error, Warning, Info, All | |
Default | N/A | |
History | ||
Response Example | 204 No Content | |
Related Commands | Query Rsyslog Client Configuration | |
Notes | ||