What can I help you with?
NVIDIA Switch BMC User Manual v88.0002.0956

On This Page

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

Copy
Copied!
            

 "@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_NVSwitch_0"​    },​    {​      "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/MGX_FW_ERoT_NVSwitch_1"​    },​    {​      "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/MGX_FW_FPGA_0"​    },​    ],​  Members@odata.count: 11,​  "Name": "Software Inventory Collection"

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

Copy
Copied!
            

{​ "@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",​ "RelatedItem": [​ {​ "@odata.id": "/redfish/v1/Chassis/MGX_BMC_0"​ }​ ],​ "RelatedItem@odata.count": 1,​ "SoftwareId": "0x001B",​ "Status": {​ "Conditions": [],​ "Health": "OK",​ "HealthRollup": "OK",​ "State": "Enabled"​ },​ "Updateable": true,​ "Version": "88.0002.0927",​ "WriteProtected": false​ }

Related Commands

Show Firmware Inventory

Update Firmware

Show Update Firmware Status

Filter Next Update Firmware End Components

Notes


Update Firmware

Warning

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

Copy
Copied!
            

{​ "@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

Show Firmware Version & Health

Show Update Firmware Status

Filter Next Update Firmware End Components

Notes

  • The fwpkg file contains header for PLDM service

  • The header must include information about the desired component to be updated.


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

Copy
Copied!
            

"@odata.id": "/redfish/v1/TaskService/Tasks/0",​ "@odata.type": "#Task.v1_4_3.Task",​ "EndTime": "1970-01-01T00:30:39+00:00",​ "Id": "0",​ "Messages": [​ {​ "@odata.type": "#Message.v1_0_0.Message",​ "Message": "The task with id 0 has started.",​ "MessageArgs": [​ "0"​ ],​ "MessageId": "TaskEvent.1.0.1.TaskStarted",​ "Resolution": "None.",​ "Severity": "OK"​ },​ {​ "@odata.type": "#MessageRegistry.v1_4_1.MessageRegistry",​ "Message": "The resource property 'HGX_FW_Debug_Token_Erase' has detected errors of type 'Device Discovery Failure'.",​ "MessageArgs": [​ "HGX_FW_Debug_Token_Erase",​ "Device Discovery Failure"​ ],​ "MessageId": "ResourceEvent.1.0.ResourceErrorsDetected",​ "Resolution": "Retry the firmware update operation and if issue still persists reset the baseboard.",​ "Severity": "Critical"​ },​ {​ "@odata.type": "#MessageRegistry.v1_4_1.MessageRegistry",​ "Message": "Transfer of image '0.0' to 'HGX_FW_Debug_Token_Erase' failed.",​ "MessageArgs": [​ "0.0",​ "HGX_FW_Debug_Token_Erase"​ ],​ "MessageId": "Update.1.0.TransferFailed",​ "Resolution": "None.",​ "Severity": "Critical"​ },​ {​ "@odata.type": "#MessageRegistry.v1_4_1.MessageRegistry",​ "Message": "The target device '27' will be updated with image 'COMP_VERSION'.",​ "MessageArgs": [​ "27",​ "COMP_VERSION"​ ],​ "MessageId": "Update.1.0.TargetDetermined",​ "Resolution": "None.",​ "Severity": "OK"​ },​ {​ "@odata.type": "#MessageRegistry.v1_4_1.MessageRegistry",​ "Message": "Image 'COMP_VERSION' is being transferred to '27'.",​ "MessageArgs": [​ "COMP_VERSION",​ "27"​ ],​ "MessageId": "Update.1.0.TransferringToComponent",​ "Resolution": "None.",​ "Severity": "OK"​ },​ {​ "@odata.type": "#Message.v1_0_0.Message",​ "Message": "The task with id 0 has changed to progress 20 percent complete.",​ "MessageArgs": [​ "0",​ "20"​ ],​ "MessageId": "TaskEvent.1.0.1.TaskProgressChanged",​ "Resolution": "None.",​ "Severity": "OK"​ },​ {​ "@odata.type": "#Message.v1_0_0.Message",​ "Message": "The task with id 0 has changed to progress 40 percent complete.",​ "MessageArgs": [​ "0",​ "40"​ ],​ "MessageId": "TaskEvent.1.0.1.TaskProgressChanged",​ "Resolution": "None.",​ "Severity": "OK"​ },​ {​ "@odata.type": "#MessageRegistry.v1_4_1.MessageRegistry",​ "Message": "Device '27' successfully updated with image 'COMP_VERSION'.",​ "MessageArgs": [​ "27",​ "COMP_VERSION"​ ],​ "MessageId": "Update.1.0.UpdateSuccessful",​ "Resolution": "None.",​ "Severity": "OK"​ },​ {​ "@odata.type": "#MessageRegistry.v1_4_1.MessageRegistry",​ "Message": "Awaiting for an action to proceed with activating image 'COMP_VERSION' on '27'.",​ "MessageArgs": [​ "COMP_VERSION",​ "27"​ ],​ "MessageId": "Update.1.0.AwaitToActivate",​ "Resolution": "System reboot or AC power cycle",​ "Severity": "OK"​ },​ {​ "@odata.type": "#Message.v1_0_0.Message",​ "Message": "The task with id 0 has changed to progress 100 percent complete.",​ "MessageArgs": [​ "0",​ "100"​ ],​ "MessageId": "TaskEvent.1.0.1.TaskProgressChanged",​ "Resolution": "None.",​ "Severity": "OK"​ },​ {​ "@odata.type": "#Message.v1_0_0.Message",​ "Message": "The task with id 0 has Completed.",​ "MessageArgs": [​ "0"​ ],​ "MessageId": "TaskEvent.1.0.1.TaskCompletedOK",​ "Resolution": "None.",​ "Severity": "OK"​ }​ ],​ "Name": "Task 0",​ "Payload": {​ "HttpHeaders": [​ "Host: 10.0.1.1",​ "User-Agent: curl/7.74.0",​ "Accept: */*",​ "Content-Length: 67109132"​ ],​ "HttpOperation": "POST",​ "JsonBody": "null",​ "TargetUri": "/redfish/v1/UpdateService"​ },​ "PercentComplete": 100,​ "StartTime": "1970-01-01T00:19:46+00:00",​ "TaskMonitor": "/redfish/v1/TaskService/Tasks/0/Monitor",​ "TaskState": "Completed",​ "TaskStatus": "Critical"

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

Copy
Copied!
            

{​ "@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

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

Copy
Copied!
            

{ "@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

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

Copy
Copied!
            

{ "@odata.id": "/redfish/v1/Chassis/MGX_ERoT_CPU_0", "@odata.type": "#Chassis.v1_22_0.Chassis", "Actions": { "Oem": { "#NvidiaRoTChassis.SetIrreversibleConfig": { "@Redfish.ActionInfo": "/redfish/v1/Chassis/MGX_ERoT_CPU_0/Oem/NvidiaRoT/SetIrreversibleConfigActionInfo", "target": "/redfish/v1/Chassis/MGX_ERoT_CPU_0/Actions/Oem/NvidiaRoTChassis.SetIrreversibleConfig" } } }, "Certificates": { "@odata.id": "/redfish/v1/Chassis/MGX_ERoT_CPU_0/Certificates" }, "ChassisType": "Component", "Id": "MGX_ERoT_CPU_0", "Links": { "ComputerSystems": [ { "@odata.id": "/redfish/v1/Systems/System_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_CPU_0", "Oem": { "Nvidia": { "@odata.type": "#NvidiaChassis.v1_3_0.NvidiaRoTChassis", "AutomaticBackgroundCopyEnabled": false, "BackgroundCopyStatus": "Pending", "IrreversibleConfigEnabled": false, "RoTProtectedComponents": { "@odata.id": "/redfish/v1/Chassis/MGX_ERoT_CPU_0/Oem/NvidiaRoT/RoTProtectedComponents" } } }, "SKU": "0x4D35368B", "SerialNumber": "0x04120619180A0D28", "Status": { "Conditions": [], "Health": "OK", "HealthRollup": "OK", "State": "Enabled" }, "UUID": "f72d6fc0-5675-11ed-9b6a-0242ac120002" }

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

Copy
Copied!
            

{ "@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 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

Copy
Copied!
            

{ "@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 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

Copy
Copied!
            

{ "@odata.id": "/redfish/v1/Managers/BMC_0/NetworkProtocol/HTTPS/Certificates/1", "@odata.type": "#Certificate.v1_0_0.Certificate", "CertificateString": "-----BEGIN CERTIFICATE-----\nMIICODCCAb6gAwIBAgIEYHm/QDAKBggqhk***********-----END CERTIFICATE-----\n", "Description": "HTTPS Certificate", "Id": "1", "Issuer": { "CommonName": "testhost", "Country": "US", "Organization": "OpenBMC" }, "KeyUsage": [ "KeyEncipherment", "ServerAuthentication" ], "Name": "HTTPS Certificate", "Subject": { "CommonName": "testhost", "Country": "US", "Organization": "OpenBMC" }, "ValidNotAfter": "2035-01-25T08:14:02+00:00", "ValidNotBefore": "2025-01-27T08:14:02+00:00" }

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

Copy
Copied!
            

{   "@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

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

Copy
Copied!
            

{   "@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 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

Copy
Copied!
            

{ "@odata.id": "/redfish/v1/SessionService/Sessions/8qcRf9Puda", "@odata.type": "#Session.v1_7_0.Session", "ClientOriginIPAddress": "10.0.1.2", "Description": "Manager User Session", "Id": "8qcRf9Puda", "Name": "User Session", "Roles": [ "Administrator" ], "UserName": "admin" }

Related Commands

Show Session Service, Show Sessions

Notes


The User Management section is composed of several APIs which work in conjunction.

Note

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

{

"@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

88.0002.0574

Response Example

Copy
Copied!
            

{​ "@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> -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

  • Administrator: Users are allowed to configure all OpenBMC (including user-management, network and all configurations). Users will have full administrative access.

  • Operator: Users are allowed to view and control basic operations. This includes reboot of the host, etc. But users are not allowed to change other configuration like user, network, and so forth.

  • ReadOnly: Users only have read access and cannot change any behavior of the system.

Default

N/A

History

88.0002.0956

Response Example

Copy
Copied!
            

{ "@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

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

Copy
Copied!
            

{​ "@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

Show BMC Users

Notes

The BMC password must comply with the following policy parameters:​

  • Using ASCII and Unicode characters is permitted​

  • Minimum length: 12 (applies after factory reset)

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

Copy
Copied!
            

{​ "@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

Change BMC Users

Notes

The BMC password must comply with the following policy parameters:​

  • Using ASCII and Unicode characters is permitted​

  • Minimum length: 12

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)

  • Administrator: Users are allowed to configure all OpenBMC (including user-management, network and all configurations). Users will have full administrative access.

  • Operator: Users are allowed to view and control basic operations. This includes reboot of the host, etc. But users are not allowed to change other configuration like user, network, and so forth.

  • ReadOnly: Users only have read access and cannot change any behavior of the system.

Default

N/A

History

88.0002.0956

Response Example

Copy
Copied!
            

{​ "@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

Show BMC Users

Notes

The BMC password must comply with the following policy parameters:​

  • Using ASCII and Unicode characters is permitted​

  • Minimum length: 12 (applies after factory reset)

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

Copy
Copied!
            

{   "@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."     },     {       "@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

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

Copy
Copied!
            

{   "@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."     },     {       "@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

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

Copy
Copied!
            

{   "@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."     },     {       "@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

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

Copy
Copied!
            

{   "@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

  • Administrator: Users are allowed to configure all OpenBMC (including user-management, network and all configurations). Users will have full administrative access.

  • Operator: Users are allowed to view and control basic operations. This includes reboot of the host, etc. But users are not allowed to change other configuration like user, network, and so forth.

  • ReadOnly: Users only have read access and cannot change any behavior of the system.

Default

N/A

History

88.0002.0574

Response Example

Copy
Copied!
            

{ "@odata.id": "/redfish/v1/AccountService/Accounts/root", "@odata.type": "#ManagerAccount.v1_7_0.ManagerAccount", "AccountTypes": [ "HostConsole", "IPMI", "Redfish", "WebUI", "ManagerConsole" ], "Description": "User Account", "Enabled": true, "Id": "root", "Links": { "Role": { "@odata.id": "/redfish/v1/AccountService/Roles/Administrator" } }, "Locked": false, "Locked@Redfish.AllowableValues": [ "false" ], "Name": "User Account", "Password": null, "PasswordChangeRequired": false, "RoleId": "Administrator", "StrictAccountTypes": true, "UserName": "root" }

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:

  1. Run Generate EROT SPDM Information API initiates the task of generating EROT SPDM information in the system

  2. Run Show EROT SPDM Generation Status API to figure out that task state (i.e., whether a task is still running or completed).

  3. Pull on step 2 until task completion.

  4. 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

Copy
Copied!
            

{​ "@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 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

Copy
Copied!
            

{​ "@odata.id": "/redfish/v1/ComponentIntegrity/MGX_ERoT_BMC_0",​ "@odata.type": "#ComponentIntegrity.v1_0_0.ComponentIntegrity",​ "Actions": {​ "#ComponentIntegrity.SPDMGetSignedMeasurements": {​ "@Redfish.ActionInfo": "/redfish/v1/ComponentIntegrity/MGX_ERoT_BMC_0/SPDMGetSignedMeasurementsActionInfo",​ "target": "/redfish/v1/ComponentIntegrity/MGX_ERoT_BMC_0/Actions/ComponentIntegrity.SPDMGetSignedMeasurements"​ }​ },​ "ComponentIntegrityEnabled": true,​ "ComponentIntegrityType": "SPDM",​ "ComponentIntegrityTypeVersion": "unknown",​ "Id": "MGX_ERoT_BMC_0",​ "Links": {​ "ComponentsProtected": [​ {​ "@odata.id": "/redfish/v1/Managers/BMC_0"​ }​ ]​ },​ "Name": "SPDM Integrity for MGX_ERoT_BMC_0",​ "SPDM": {​ "IdentityAuthentication": {​ "ResponderAuthentication": {​ "ComponentCertificate": {​ "@odata.id": "/redfish/v1/Chassis/MGX_ERoT_BMC_0/Certificates/CertChain"​ }​ }​ },​ "Requester": {​ "@odata.id": "/redfish/v1/Managers/BMC_0"​ }​ },​ "TargetComponentURI": "/redfish/v1/Chassis/MGX_ERoT_BMC_0"​ }

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

Copy
Copied!
            

{​ "@odata.id": "/redfish/v1/TaskService/Tasks/0", ​ "@odata.type": "#Task.v1_4_3.Task", ​ "Id": "0",​ "TaskState": "Running", ​ "TaskStatus": "OK"​ }

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

Copy
Copied!
            

{ "@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 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

Copy
Copied!
            

{​ "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 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

Copy
Copied!
            

{ "@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

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

Copy
Copied!
            

{​ "@odata.id": "/redfish/v1/Chassis/MGX_ERoT_NVSwitch_0",​ "@odata.type": "#Chassis.v1_17_0.Chassis",​ "Actions": {​ "Oem": {​ "#CAKInstall": {​ "target": "/redfish/v1/Chassis/MGX_ERoT_NVSwitch_0/Actions/Oem/CAKInstall"​ },​ "#CAKLock": {​ "target": "/redfish/v1/Chassis/MGX_ERoT_NVSwitch_0/Actions/Oem/CAKLock"​ },​ "#CAKTest": {​ "target": "/redfish/v1/Chassis/MGX_ERoT_NVSwitch_0/Actions/Oem/CAKTest"​ },​ "#DOTDisable": {​ "target": "/redfish/v1/Chassis/MGX_ERoT_NVSwitch_0/Actions/Oem/DOTDisable"​ },​ "#DOTTokenInstall": {​ "target": "/redfish/v1/Chassis/MGX_ERoT_NVSwitch_0/Actions/Oem/DOTTokenInstall"​ },​ "Nvidia": {​ "#BootProtectedDevice": {​ "target": "/redfish/v1/Chassis/MGX_ERoT_NVSwitch_0/Actions/Oem/Nvidia/BootProtectedDevice"​ }​ }​ }​ },​ <….........Snip............>​ "Manufacturer": "NVIDIA",​ "Name": "MGX_ERoT_NVSwitch_0",​ "Oem": {​ "Nvidia": {​ "@odata.type": "#NvidiaChassis.v1_1_0.NvidiaChassis",​ "AutomaticBackgroundCopyEnabled": false,​ "BackgroundCopyStatus": "Completed",​ "InbandUpdatePolicyEnabled": true,​ "ManualBootModeEnabled": false​ }​ },​ "SKU": "0x4D35368B",​ "SerialNumber": "0x011E031A1810250A",​ "Status": {​ "Conditions": [],​ "Health": "OK",​ "HealthRollup": "OK",​ "State": "Enabled"​ },​ "UUID": "f72d6fb0-5675-11ed-9b6a-0242ac120002"​ }

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

  • ForceRestart: Reset the CPU and ASICs only if they are stuck

  • PowerCycle: Power cycle the system

  • ForceOn: power on the Host CPU and ASICs

  • ForceOff: power off immediately the Host CPU and ASICs

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

Copy
Copied!
            

{​ "@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, etc.

Default

N/A

History

88.0002.0574

Response

Example

Copy
Copied!
            

{​  "@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


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

Copy
Copied!
            

{​ "@odata.id": "/redfish/v1/Chassis/BMC_eeprom",​ "@odata.type": "#Chassis.v1_22_0.Chassis",​ "Assembly": {​ "@odata.id": "/redfish/v1/Chassis/BMC_eeprom/Assembly"​ },​ "ChassisType": "Component",​ "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_1_0.NvidiaChassis"​ }​ },​ "PCIeDevices": {​ "@odata.id": "/redfish/v1/Chassis/BMC_eeprom/PCIeDevices"​ },​ "PCIeSlots": {​ "@odata.id": "/redfish/v1/Chassis/BMC_eeprom/PCIeSlots"​ },​ "PartNumber": "699-13809-1404-500",​ "PowerState": "On",​ "PowerSubsystem": {​ "@odata.id": "/redfish/v1/Chassis/BMC_eeprom/PowerSubsystem"​ },​ "Sensors": {​ "@odata.id": "/redfish/v1/Chassis/BMC_eeprom/Sensors"​ },​ "SerialNumber": "1581324710134",​ "Status": {​ "Conditions": [],​ "Health": "OK",​ "HealthRollup": "OK",​ "State": "Enabled"​ },​ "ThermalSubsystem": {​ "@odata.id": "/redfish/v1/Chassis/BMC_eeprom/ThermalSubsystem"​ },​ "TrustedComponents": {​ "@odata.id": "/redfish/v1/Chassis/BMC_eeprom/TrustedComponents"​ }​ }​

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

Copy
Copied!
            

{​ "@odata.id": "/redfish/v1/Chassis/MGX_BMC_0/Sensors/BMC_TEMP",​ "@odata.type": "#Sensor.v1_2_0.Sensor",​ "Id": "BMC_TEMP",​ "Name": "BMC TEMP",​ "Reading": 40.625,​ "ReadingRangeMax": 127.0,​ "ReadingRangeMin": -128.0,​ "ReadingType": "Temperature",​ "ReadingUnits": "Cel",​ "RelatedItem": [​ {​ "@odata.id": "/redfish/v1/Systems/System_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


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

Copy
Copied!
            

{ "@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


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

Copy
Copied!
            

{​ "@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

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

Copy
Copied!
            

{​ "@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

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

Copy
Copied!
            

% Total % Received % Xferd Average Speed Time Time Time Current​ Dload Upload Total Spent Left Speed​ 100 26933 100 26933 0 0 122k 0 --:--:-- --:--:-- --:--:-- 123k

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

Copy
Copied!
            

{​ "@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

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

  • An EROT firmware greater than 183 is required.​

  • The command provide a consolidated Install status and ability to collect Token Requests.​

  • The system MUST have valid certificates on the EROT for testing


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

Copy
Copied!
            

{​ "@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

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

Copy
Copied!
            

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 Speed 100 26933 100 26933 0 0 122k 0 --:--:-- --:--:-- --:--:-- 123k

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

Copy
Copied!
            

{ "@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

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

Copy
Copied!
            

{ "@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

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

Copy
Copied!
            

{ "@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

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

Copy
Copied!
            

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

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

Copy
Copied!
            

curl -k -u root:0penBmc https://10.0.1.1/redfish/v1/Systems/System_0/LogServices/DebugTokenService/Entries/0/attachment 00 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 01   10'th Byte: Token installation status(1 for installed and 0 for not installed) 11-18 Byte: ERoT Serial Number 19th Byte: Tells it is Prod system(2) or debug system(1).

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):​

  1. git clone https://github.com/DMTF/Redfish-Event-Listener.git

  2. cd Redfish-Event-Listener​

  3. sudo pip install -r requirements.txt​

  4. Update the config.ini file with your listener IP and BMC IP.​

  5. sudo python RedfishEventListener_v1.py​

  6. Simulate Leakage event on BMC.​

  7. You should start receiving leakage events in console.

Example for config.ini:

Copy
Copied!
            

[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:

Copy
Copied!
            

{​ "@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

Copy
Copied!
            

{ "@odata.id": "/redfish/v1/Chassis/MGX_BMC_0/ThermalSubsystem/LeakDetection/LeakDetectors/leakage6", "@odata.type": "#LeakDetector.v1_0_1.LeakDetector", "DetectorState": "OK", "Id": "leakage6", "LeakDetectorType": "Moisture", "Name": "Leak Detector", "Status": { "Health": "OK", "State": "Enabled" } }

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

Copy
Copied!
            

{   "@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.

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

Copy
Copied!
            

{   "@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


The BMC can stream out local logs (that go to the systemd journal) by using rsyslog.

Note
  • 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

Copy
Copied!
            

{   "@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

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

Copy
Copied!
            

{   "@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",   "Name": "Manager Network Protocol",   "Oem": {     "Nvidia": {       "@odata.type": "#NvidiaNetworkProtocol.v1_0_0.NetworkProtocol",       "Rsyslog": {         "Address": "10.210.25.179",         "Filter": {           "Facilities": [             "All"           ],           "LowestSeverity": "All"         },         "Port": 6514,         "State": "Enabled",         "TLS": "Enabled",         "TransportProtocol": "TCP"       }     }   },   "SSH": {     "Port": 22,     "ProtocolEnabled": true   },   "Status": {     "Health": "OK",     "HealthRollup": "OK",     "State": "Enabled"   } }

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

Copy
Copied!
            

{   "@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

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

Copy
Copied!
            

{   "@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

Query Rsyslog Client Configuration

Notes

© Copyright 2025, NVIDIA. Last updated on Apr 23, 2025.