User Interface Redfish Commands
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).
In addition, before calling the Update Firmware API, one may choose to call the Filter Next Update Firmware End Components API and detail a component to be filtered and not updated, even if it is supplied to the Update Firmware API.
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, FPGA, and so forth. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | 88.0002.0574 | |
Response Example |
| |
Related Commands | Show Firmware Version & Health Update Firmware Show EROT Information | |
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 | MGX_FW_BMC_0, MGX_FW_FPGA_0, and so forth (all components will have a meaningful version besides CPLD_0) | |
Default | N/A | |
History | 88.0002.0574 | |
Response Example |
| |
Related Commands | Show Firmware Inventory Update Firmware Show Update Firmware Status Filter Next Update Firmware End Components | |
Notes |
Update Firmware
All firmware updates should be done via NVOS.
The BIOS firmware is the only component that should be updated using this command.
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/octet-stream" -X POST https://<bmc_ip>/redfish/v1/UpdateService -T <image_name>.fwpkg | |
Description | This Redfish API shall update the firmware image. Image format must be fwpkg format, suitable for PLDM. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
image_name | fwpkg image name | |
id (return value) | task_id_number | |
Default | N/A | |
History | 88.0002.0574 | |
Response Example |
| |
Related Commands | Show Firmware Inventory Show Firmware Version & Health Show Update Firmware Status Filter Next Update Firmware End Components | |
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. | |
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 | 88.0002.0574 | |
Response Example |
| |
Related Commands | Show Firmware Inventory Show Firmware Version & Health Update Firmware Filter Next Update Firmware End Components | |
Notes | CPLD_0, NVSwitch_0, NVSwitch_1 are not included for N5110_LD system in version 88.0002.0472. |
Filter Next Update Firmware End Components
Redfish API | curl -k -u <user>:<p/w> -X PATCH -d '{"HttpPushUriTargets":["/redfish/v1/UpdateService/FirmwareInventory/<comp_name>"]}' https://<bmc_ip>/redfish/v1/UpdateService | |
Description | This Redfish API shall be used to apply a filter for a fwpkg file consisted of several firmware components. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
comp_name | MGX_FW_CPU_0 (only BIOS firmware upgrade is applicable from BMC). | |
Default | N/A | |
History | 88.0002.0574 | |
Response Example |
| |
Related Commands | Show Firmware Inventory Show Firmware Version & Health Update Firmware Show Update Firmware Status | |
Notes | This command MUST be called before Update Firmware command in order to take effect. |
Firmware Update Expected Duration
Component | BIOS |
Update time (seconds) | 230-260 seconds |
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 | 88.0002.0574 | |
Response Example |
| |
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 | Possible Components: CPLD_0, MGX_BMC_0, MGX_ERoT_BMC_0, MGX_ERoT_CPU_0, MGX_ERoT_FPGA_0, MGX_ERoT_NVSwitch_X, MGX_NVSwitch_X | |
Default | N/A | |
History | 88.0002.0574 | |
Response Example |
| |
Related Commands | Show Chassis Information | |
Notes |
Show Certificate Service
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X POST 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 | 88.0002.0574 | |
Response Example |
|
Show Certificate Locations
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X POST 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 | 88.0002.0574 | |
Response Example |
| |
Related Commands | Show Certificate Service |
Show Certificate
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X POST 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 | 88.0002.0574 | ||
Response Example |
| ||
Related Commands | Show Certificate Service, Show Certificate Locations | ||
Notes |
Show Session Service
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X POST 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 | 88.0002.0574 | |
Response Example |
| |
Related Commands | ||
Notes |
Show Sessions
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X POST 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 | 88.0002.0574 | |
Response Example |
| |
Related Commands | Show Session Service | |
Notes |
Show Session Details
Redfish API | curl -k -u <user>:<p/w> -H "Content-Type: application/json" -X POST 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 | 88.0002.0574 | |
Response Example |
| |
Related Commands | Show Session Service, Show Sessions | |
Notes |
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.
Minimum p/w length following a factory reset is 12 characters.
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 | 88.0002.0574 | ||
Response Example |
| ||
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 | 88.0002.0574 | |
Response Example |
| |
Related Commands | Change BMC User Password | |
Notes |
Create New BMC User
Redfish API | curl -k -u <user>:<p/w> -X POST https://<bmc_ip>/redfish/v1/AccountService/Accounts -d '{ "UserName":"<new_user_name>","Password":"new_user_p/w","RoleId":"<role_id>","Enabled":true}' | |
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 | |
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
| |
Default | N/A | |
History | 88.0002.0956 | |
Response Example |
| |
Related Commands | Change BMC User Password Show BMC User Accounts | |
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 | 88.0002.0574 | |
Response Example |
| |
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 "root" User Account Password from BMC "admin" User Account
Redfish API | curl -k -u admin_user:<admin p/w> -X PATCH -d '{"Password":"new_root_p/w"}' https://<bmc_ip>/redfish/v1/AccountService/Accounts/root | |
Description | This Redfish API for user management interface may be used to configure the new password or to alter the default password. | |
Syntax Description | admin_user | BMC Username admin |
admin p/w | BMC User password admin | |
bmc_ip | BMC IP address | |
new root p/w | BMC new password for User root (e.g., "juliet_bmc@Nvid1a") | |
Default | N/A | |
History | 88.0002.0574 | |
Response Example |
| |
Related Commands | Change 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 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_role_id | The new user's role ID (Can be either: Administrator, Operator, ReadOnly)
| |
Default | N/A | |
History | 88.0002.0956 | |
Response Example |
| |
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 20) | |
Default | N/A | |
History | 88.0002.0956 | |
Response Example |
| |
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 greater than 12 and lower than 256) | |
Default | N/A | |
History | 88.0002.0956 | |
Response Example |
| |
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 10). | |
Default | N/A | |
History | 88.0002.0956 | |
Response Example |
| |
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 | 88.0002.0574 | |
Response Example |
| |
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 | 88.0002.0574 | |
Response Example |
| |
Related Commands | Show BMC User Account Service Roles | |
Notes |
The Attestation section is composed of the following APIs, some of which work in conjunction:
Flow for generating ERoT SPDM information:
Run Generate EROT SPDM Information API initiates the task of generating EROT SPDM information in the system
Run Show EROT 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 EROT SPDM Information API to see that relevant EROT SPDM information.
Show System ERoT 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 EROTS (BMC, CPU, FPGA, NVSwitch0, NVSwitch1). | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | 88.0002.0574 | |
Response Example |
| |
Related Commands | Show EROT Security Information Generate EROT SPDM Information Show EROT SPDM Generation Status Show EROT SPDM Information Set EROT Automatic Background Copy State Show EROT Automatic Background Copy State | |
Notes |
Show EROT 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 EROT device. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
comp_name | MGX_ERoT_BMC_0, MGX_ERoT_FPGA_0, etc. | |
Default | N/A | |
History | 88.0002.0574 | |
Response Example |
| |
Related Commands | Show System EROT List Generate EROT SPDM Information Show EROT SPDM Generation Status Show EROT SPDM Information Set EROT Automatic Background Copy State Show EROT Automatic Background Copy State | |
Notes |
Generate EROT 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 | MGX_ERoT_BMC_0, MGX_ERoT_FPGA_0, etc. | |
Id (return value) | task_id_number | |
Default | N/A | |
History | 88.0002.0574 | |
Response Example |
| |
Related Commands | Show System EROT List Show EROT Security Information Show EROT SPDM Generation Status Show EROT SPDM Information Set EROT Automatic Background Copy State Show EROT Automatic Background Copy State | |
Notes |
Show EROT 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 EROT 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 EROT SPDM Information command | |
Default | N/A | |
History | 88.0002.0574 | |
Response Example |
| |
Related Commands | Show System EROT List Show EROT Security Information Generate EROT SPDM Information Show EROT SPDM Information Set EROT Automatic Background Copy State Show EROT Automatic Background Copy State | |
Notes |
Show EROT 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 | MGX_ERoT_BMC_0, MGX_ERoT_FPGA_0, and so forth | |
Default | N/A | |
History | 88.0002.0574 | |
Response Example |
| |
Related Commands | Show System EROT List Show EROT Security Information Generate EROT SPDM Information Show EROT SPDM Generation Status Set EROT Automatic Background Copy State Show EROT Automatic Background Copy State | |
Notes |
Set EROT 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/<ERoT Name> | |
Description | This Redfish API shall be used to set the EROT Automatic Background Copy State. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
state | True means that firmware update through this EROT will be non blocking, False means it will be blocking. | |
bmc_ip | BMC IP address | |
ERoT Name | Name of the ERoT | |
Default | N/A | |
History | 88.0002.0574 | |
Response Example |
| |
Related Commands | Show System EROT List Show EROT Security Information Generate EROT SPDM Information Show EROT SPDM Generation Status Show EROT SPDM Information Show EROT Automatic Background Copy State | |
Notes |
Show EROT Automatic Background Copy State
Redfish API | curl -k -u <user>:<p/w> -X GET https://<bmc_ip>/redfish/v1/Chassis/<ERoT Name> | |
Description | This Redfish API shall be used to show the EROT Automatic Background Copy State. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
ERoT Name | Name of the ERoT | |
Default | N/A | |
History | 88.0002.0574 | |
Response Example |
| |
Related Commands | Show System EROT List Show EROT Security Information Generate EROT SPDM Information Show EROT SPDM Generation Status Show EROT SPDM Information Set EROT Automatic Background Copy State | |
Notes |
Apply 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 | 88.0002.0574 | |
Response Example | N/A | |
Related Commands | ||
Notes |
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 | 88.0002.0574 | |
Response Example |
| |
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, etc. | |
Default | N/A | |
History | 88.0002.0574 | |
Response Example |
| |
Related Commands | Show Network Interface List | |
Notes |
Show 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 | 88.0002.0574 | |
Response Example |
| |
Related Commands | ||
Notes |
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 | 88.0002.0574 | |
Response Example |
| |
Related Commands | ||
Notes |
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 | 88.0002.0929 | |
Response Example | N/A | |
Related Commands | Show Service Identification | |
Notes |
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 | 88.0002.0929 | |
Response Example |
| |
Related Commands | Set Service Identification | |
Notes |
The Debug Information section is composed of several APIs, some of which work in conjunction:
These three 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 to see that relevant information outputted into a file.
Generate Debug Information
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 dump, which is a collection of logs from BMC. | |
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 | 88.0002.0574 | |
Response Example |
| |
Related Commands | Show Debug Information Generation Status Output Debug Information To File | |
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 | 88.0002.0574 | |
Response Example |
| |
Related Commands | Generate Debug Information Output Debug Information To File | |
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/ Use the entry id from the previous API. Show Debug Information Generation Status | |
/path/to/tar/log_dump.tar.xz | path to download the log dump log_dump.tar.xz | |
Default | N/A | |
History | 88.0002.0574 | |
Response Example |
| |
Related Commands | Generate Debug Information Show Debug Information Generation Status | |
Notes |
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 EROT 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/Actions/LogService.CollectDiagnosticData' \ --header 'Content-Type: application/json' \ --data '{ "DiagnosticDataType":"OEM", "OEMDiagnosticDataType":"GetDebugTokenRequest" }' | |
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 | 88.0002.0574 | |
Response Example |
| |
Related Commands | Show Debug Token Generation Status Download Debug Token Install Debug Token Signed Firmware Show Debug Token Installation Status Generate Installed Debug Token Attachments Show Installed Debug Token Attachments Generation Status Show Installed Debug Token Attachments | |
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 | 88.0002.0574 | |
Response Example |
| |
Related Commands | Generate Debug Tokens Download Debug Token Install Debug Token Signed Firmware Show Debug Token Installation Status Generate Installed Debug Token Attachments Show Installed Debug Token Attachments Generation Status Show Installed Debug Token Attachments | |
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 | 88.0002.0574 | |
Response Example |
| |
Related Commands | Generate Debug Tokens Show Debug Token Generation Status Install Debug Token Signed Firmware Show Debug Token Installation Status Generate Installed Debug Token Attachments Show Installed Debug Token Attachments Generation Status Show Installed Debug Token Attachments | |
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 | 88.0002.0574 | |
Response Example |
| |
Related Commands | Generate Debug Tokens Show Debug Token Generation Status Download Debug Token Show Debug Token Installation Status Generate Installed Debug Token Attachments Show Installed Debug Token Attachments Generation Status Show Installed Debug Token Attachments | |
Notes |
Note
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 | 88.0002.0574 | |
Response Example |
| |
Related Commands | Generate Debug Tokens Show Debug Token Generation Status Download Debug Token Install Debug Token Signed Firmware Generate Installed Debug Token Attachments Show Installed Debug Token Attachments Generation Status Show Installed Debug Token Attachments | |
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' \ --header 'Content-Type: application/json' \ --data '{ "DiagnosticDataType":"OEM", "OEMDiagnosticDataType":"GetDebugTokenStatus" }' | |
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 | 88.0002.0574 | |
Response Example |
| |
Related Commands | Generate Debug Tokens Show Debug Token Generation Status Download Debug Token Install Debug Token Signed Firmware Show Debug Token Installation Status Show Installed Debug Token Attachments Generation Status Show Installed Debug Token Attachments | |
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 | 88.0002.0574 | |
Response Example | See the Debug Token status
| |
Related Commands | Generate Debug Tokens Show Debug Token Generation Status Download Debug Token Install Debug Token Signed Firmware Show Debug Token Installation Status Generate Installed Debug Token Attachments Show Installed Debug Token Attachments | |
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 | 88.0002.0574 | |
Response Example | See the Debug Token status
| |
Related Commands | Generate Debug Tokens Show Debug Token Generation Status Download Debug Token Install Debug Token Signed Firmware Show Debug Token Installation Status Generate Installed Debug Token Attachments Show Installed Debug Token Attachments Generation Status | |
Notes |
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
, 2023
Description = Redfish Event Listener Tool Simple Config
[SystemInformation]
ListenerIP = 10.210
.25.179
ListenerPort = 12345
UseSSL = off
[CertificateDetails]
certfile = cert.pem
keyfile = server.key
[SubscriptionDetails]
Destination = https://<ListenerIP>/
EventTypes = [
"Alert"
,
"ResourceRemoved"
,
"ResourceAdded"
,
"ResourceUpdated"
,
"StatusChange"
]
Context = Public
Format = Event
Expand = false
ResourceTypes = ["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 leakage6 | |
Default | N/A | |
History | 88.0002.0754 | |
Response Example |
| |
Related Commands | ||
Notes |
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. Following the Redfish command, BMC will reboot and apply the factory reset. Upon login, the user will be prompted to change the default factory password. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | 88.0002.0574 | |
Response Example |
| |
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. It will also delete all logs created by BMC. Following this Redfish command, BMC will reboot and apply the factory reset. Upon login, the user will be prompted to change the default factory password. | |
Syntax Description | user | BMC Username |
p/w | BMC User password | |
bmc_ip | BMC IP address | |
Default | N/A | |
History | 88.0002.0574 | |
Response Example |
| |
Related Commands | Factory Reset (Configuration Only) | |
Notes |
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 | 88.0002.0929 | |
Response Example |
| |
Related Commands | Query Rsyslog Client Configuration RSYSLOG settings commands | |
Notes |
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 | 88.0002.0929 | |
Response Example | N/A | |
Related Commands | Configure Rsyslog Client Configure Rsyslog | |
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 | 88.0002.0929 | |
Response Example |
| |
Related Commands | Query Rsyslog Client Configuration | |
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. The facility filter value can be Daemon for system service, kern for kernel and ALL for all messages. | |
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 | 88.0002.0929 | |
Response Example |
| |
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 | 88.0002.0929 | |
Response Example |
| |
Related Commands | Query Rsyslog Client Configuration | |
Notes |