1
Document Number: DSP2049 2
Date: 2017-05-30 3
Version: 0.2.2b 4
OCP Hardware Management with Redfish 5
6
Supersedes: None 7
Document Class: Informative 8
Document Status: Work in Progress 9
Document Language: en-US 10
11
Information for Work-in-Progress version:
IMPORTANT: This document is not a standard. It does not necessarily reflect the views of the DMTF or its members. Because this document is a Work in Progress, this document may still change, perhaps profoundly and without notice. This document is available for public review and comment until superseded.
Provide any comments through the DMTF Feedback Portal: http://www.dmtf.org/standards/feedback
2 Work in Progress Version 0.2.2b
Copyright Notice 12
Copyright © 2017 Distributed Management Task Force, Inc. (DMTF). All rights reserved. 13
DMTF is a not-for-profit association of industry members dedicated to promoting enterprise and systems 14 management and interoperability. Members and non-members may reproduce DMTF specifications and 15 documents, provided that correct attribution is given. As DMTF specifications may be revised from time to 16 time, the particular version and release date should always be noted. 17
Implementation of certain elements of this standard or proposed standard may be subject to third party 18 patent rights, including provisional patent rights (herein "patent rights"). DMTF makes no representations 19 to users of the standard as to the existence of such rights, and is not responsible to recognize, disclose, 20 or identify any or all such third party patent right, owners or claimants, nor for any incomplete or 21 inaccurate identification or disclosure of such rights, owners or claimants. DMTF shall have no liability to 22 any party, in any manner or circumstance, under any legal theory whatsoever, for failure to recognize, 23 disclose, or identify any such third party patent rights, or for such party’s reliance on the standard or 24 incorporation thereof in its product, protocols or testing procedures. DMTF shall have no liability to any 25 party implementing such standard, whether such implementation is foreseeable or not, nor to any patent 26 owner or claimant, and shall have no liability or responsibility for costs or losses incurred if a standard is 27 withdrawn or modified after publication, and shall be indemnified and held harmless by any party 28 implementing the standard from any and all claims of infringement by a patent owner for such 29 implementations. 30
For information about patents held by third-parties which have notified the DMTF that, in their opinion, 31 such patent may relate to or impact implementations of DMTF standards, visit 32 http://www.dmtf.org/about/policies/disclosures.php. 33
34 35
36
37
38
39
40 41
Version 0.2.2b Work in Progress 3
Contents 42
1 Scope .................................................................................................................................................... 5 43
2 Overview................................................................................................................................................ 5 44
3 Redfish Interface Features .................................................................................................................... 5 45 3.1 Introduction ................................................................................................................................. 5 46 3.2 Reference Documents ................................................................................................................ 5 47
3.2.1 Redfish ........................................................................................................................... 5 48 3.2.2 OCP Hardware Management ........................................................................................ 6 49
4 OCP Redfish Profile .............................................................................................................................. 6 50 4.1 Overview ..................................................................................................................................... 6 51 4.2 Interface ...................................................................................................................................... 7 52 4.3 Resources ................................................................................................................................... 7 53 4.4 Collection resources ................................................................................................................... 7 54 4.5 Computer System resource ........................................................................................................ 8 55 4.6 SEL (System Event Log) resource ............................................................................................. 9 56 4.7 Log Entry resource .................................................................................................................... 10 57 4.8 Chassis resource ...................................................................................................................... 10 58 4.9 Power resource ......................................................................................................................... 11 59 4.10 Thermal resource ...................................................................................................................... 11 60 4.11 BMC resource ........................................................................................................................... 14 61 4.12 BMC Ethernet Interface resource ............................................................................................. 14 62 4.13 BMC Network Protocol resource .............................................................................................. 15 63 4.14 Account resource ...................................................................................................................... 16 64 4.15 Role resource ............................................................................................................................ 16 65 4.16 Session resource ...................................................................................................................... 17 66
5 Open Hardware Management v1.01 ................................................................................................... 17 67 5.1 Mapping .................................................................................................................................... 17 68 5.2 Device ID .................................................................................................................................. 19 69 5.3 Boot Property Structure ............................................................................................................ 19 70 5.4 Sensors ..................................................................................................................................... 19 71 5.5 Channel Access ........................................................................................................................ 21 72 5.6 User Payload Access ................................................................................................................ 21 73 5.7 Chassis Capabilities .................................................................................................................. 21 74 5.8 Chassis Control ......................................................................................................................... 22 75
(informative) Change log .......................................................................................................... 23 ANNEX A76
77
Figures 78
Figure 1 – Chassis collection resource ......................................................................................................... 7 79
Figure 2 - ComputerSystem resource ........................................................................................................... 8 80
Figure 3 - SEL resource ................................................................................................................................ 9 81
Figure 4 – Log Entry resource..................................................................................................................... 10 82
Figure 5 - Chassis resource ........................................................................................................................ 10 83
Figure 6 - Power resource ........................................................................................................................... 11 84
Figure 7 - Thermal resource ........................................................................................................................ 11 85
Figure 8 - BMC resource ............................................................................................................................. 14 86
Figure 9 - BMC Ethernet interface resource ............................................................................................... 14 87
Figure 10 - BMC network protocol resource ............................................................................................... 15 88
Figure 11 – Account resource ..................................................................................................................... 16 89
Figure 12 – Role resource........................................................................................................................... 16 90
4 Work in Progress Version 0.2.2b
Figure 13 – Session resource ..................................................................................................................... 17 91
Tables 92
Table 1 - Redfish Base Model ....................................................................................................................... 7 93
Table 2- Redfish Base Model ...................................................................................................................... 17 94
Table 3 - Need a name here ....................................................................................................................... 20 95
96
OCP Hardware Management with Redfish DSP2049
Version 0.2.2b Work in Progress 5
OCP Hardware Management with Redfish 97
1 Scope 98
This document defines the Redfish model to remotely manage platforms and devices in Open Compute 99 Project. 100
2 Overview 101
Scalability in today’s data center is increasingly achieved with horizontal, scale-out solutions, which often 102 include large quantities of simple servers. The usage model of scale-out hardware is drastically different 103 than that of traditional enterprise platforms, and requires a new approach to management. 104
Designed to meet the expectations of end users for simple and secure management of modern scalable 105 platform hardware, DMTF’s Redfish® is an open industry standard specification and schema that 106 specifies a RESTful interface and utilizes JSON and OData to help customers integrate solutions within 107 their existing tool chains. An aggressive development schedule is quickly advancing Redfish toward its 108 goal of addressing all the components in the data center with a consistent API. 109
Redfish is composed of an interface specification and resource models, for different management 110 domains. The resource models are specified as schema, in OData CSDL (Common Schema Descriptor 111 Language) and json-schema format. Mockups of the resources have been found to be more easily 112 understood and are present in the document. 113
3 Redfish Interface Features 114
3.1 Introduction 115
This document specifies the Redfish model elements that support OCP Hardware Management. This 116 document describes the Redfish equivalent mechanism to support OCP Hardware Management. 117
The OCP Hardware Management working group has posted multiple document drafts specifying how the 118 OCP Hardware Manage can be supported with IPMI (Intelligent Platform Management Interface). 119
The "Open Hardware Management v1.01" draft describes the use cases and the IPMI-based commands 120 required to support remote machine management. Other IPMI-related documents are in various stages of 121 draft. 122
This document starts with the OCP Hardware Management v1.01 document and specifies the equivalent 123 Redfish mechanism. For the other IPMI-related drafts, this document attempts to specify the equivalent 124 Redfish mechanism, as much as possible. 125
3.2 Reference Documents 126
3.2.1 Redfish 127
The DMTF has various locations for learning and communicating about Redfish 128
Dmtf.org/redfish: Releases of updates to the Redfish Specification and schema 129
Redfish.dmtf.org: Redfish Developer Hub (training, open-source tools, etc.) 130
Redfishforum.com: Public community forum (Redfish, Swordfish, Client SW, Service 131 Implementations, etc.) 132
DSP2049 OCP Hardware Management with Redfish
6 Work in Progress Version 0.2.2b
133 Redfish Interface Specification v1.1 (DSP0266) 134 http://www.dmtf.org/sites/default/files/standards/documents/DSP0266_1.1.0.pdf 135
An interactive explorer of the OCP Redfish Profile discussed in the document is available at 136 http://redfish.dmtf.org/redfish/v1/mockup/770 137
3.2.2 OCP Hardware Management 138
The OCP Hardware Management specifications can be found on their Wiki. 139
http://www.opencompute.org/wiki/Hardware_Management/SpecsAndDesigns 140
DRAFT - Open Hardware Management v1.01 (Feb 2014) 141
This specification specifies baseline set of commands, which references the DCMI specification. 142 Similarly, the DCMI specification reference commands in the IPMI specification. 143
DRAFT - Requirements for Firmware Update, v0.2b (Aug 2014) 144
This document specifies the firmware update requirements for OCP compliant platforms and devices. 145
DRAFT - OCP Hardware Management Specifications for IPMI 146
This section list four specifications in early draft, which specify the IPMI implementations on any device 147 using IPMI. 148
Hardware Management - ICAP BASE, Version 0.02 (June 2014) 149
Hardware Management - ICAP DRAM, Version 0.03 (June 2014) 150
Hardware Management - ICAP Optical, Version 0.02 (June 2014) 151
Hardware Management - SPEC ID, Version 0.04 (June 2014) 152
Cloud Server Multi Node System Specification v0.7.5 (Aug 2015) 153
This document describes the requirement of a Cloud Server (server, enclosure, rack). 154
4 OCP Redfish Profile 155
4.1 Overview 156
The profile supports basic management features, as documented in OCP Hardware Management 157 Specification for IPMI v1.01 158
The profile supports a single monolithic server platform. 159
One ComputerSystem 160
One Chassis 161
One Manager 162
The profile supports the following management features. 163
Power-on/off/reset 164
Boot to PXE, HDD, BIOS setup (boot override) 165
4 temp sensors per DCMI (CPU1, CPU2, Board, Inlet) 166
Simple Power Reading, and DCMI Power Limiting 167
Fan Monitoring w/ redundancy 168
Set asset tag and Indicator LED 169
OCP Hardware Management with Redfish DSP2049
Version 0.2.2b Work in Progress 7
Basic inventory (serial#, model, SKU, Vendor, BIOS ver…) 170
User Management 171
BMC management: get/set IP, version, enable/disable protocol 172
4.2 Interface 173
The management interface shall conform to the Redfish Specification v1.1 (DSP0266). 174
4.3 Resources 175
Table 1 specifies the Redfish resources that could be present in the interface. A resource is singleton 176 resource, unless otherwise specified. 177
The management interface could support the following resources. 178
Table 1 - Redfish Base Model 179 Resource URI
Service Root /
Systems collection /Systems
Computer System /Systems/{id}
Log Services /Systems/{id}/LogServices
SEL (System Event Log) /Systems/{id}/LogServices/SEL
Entry in SEL /Systems/{id}/LogServices/SEL/Entries/{id}
Chassis collection /Chassis
Chassis /Chassis/{id}
Power /Chassis/{id}/Power
Thermal /Chassis/{id}/Thermal
Managers collection /Managers
BMC (baseboard mgmt controller) /Managers/BMC
BMC's Ethernet interface /Managers/BMC/EthernetInterfaces/eth0
BMC's network protocol /Managers/BMC/NetworkProtocol
Account Service /AccountService
Accounts collection /AccountService/Accounts
Roles collection /AccountService/Roles
Session Service /SessionService
schema /$metadata
odata /odata
4.4 Collection resources 180
In Redfish, the collection resources have the same JSON format. There is a Members property which 181 contains a link to the members of the collection. Since this profile is for a single monolithic server 182 platform, only one member should exist. 183
Figure 1 is an example of the JSON response to a GET request for a Chassis collection resource. 184
Figure 1 – Chassis collection resource 185
{ 186 "@odata.type": "#ChassisCollection.ChassisCollection", 187 "Name": "Chassis Collection", 188 "[email protected]": 1, 189 "Members": [ 190
DSP2049 OCP Hardware Management with Redfish
8 Work in Progress Version 0.2.2b
{ 191 "@odata.id": "/redfish/v1/Chassis/1" 192 } 193 ], 194 "@odata.context": "/redfish/v1/$metadata#ChassisCollection.ChassisCollection", 195 "@odata.id": "/redfish/v1/Chassis", 196 "@Redfish.Copyright": ". . ." 197 } 198
4.5 Computer System resource 199
Figure 2 is an example of the JSON response to a GET request for a ComputerSystem resource. 200
This profile could contain each of the properties shown in Figure 2. 201
The System resource supports a 'Reset' action. The reset is performed by sending a POST request to 202 the path specified in the "target" property. The POST request could include a value for the ResetType 203 property. The reset type values supported by the implement is contained in the 204 [email protected] property. 205
Figure 2 - ComputerSystem resource 206
{ 207
"@odata.type": "#ComputerSystem.v1_1_0.ComputerSystem", 208
"Id": "1", 209
"Name": "Catfish System", 210
"SystemType": "Physical", 211
"AssetTag": "CATFISHASSETTAG", 212
"Manufacturer": "CatfishManufacturer", 213
"Model": "YellowCat1000", 214
"SerialNumber": "2M220100SL", 215
"SKU": "", 216
"PartNumber": "", 217
"Description": "Catfish Implementation Recipe of simple scale-out monolithic 218 server", 219
"UUID": "00000000-0000-0000-0000-000000000000", 220
"HostName": "catfishHostname", 221
"PowerState": "On", 222
"BiosVersion": "X00.1.2.3.4(build-23)", 223
"Status": { 224
"State": "Enabled", 225
"Health": "OK" 226
}, 227
"IndicatorLED": "Off", 228
"Boot": { 229
"BootSourceOverrideEnabled": "Once", 230
"BootSourceOverrideMode": "UEFI", 231
"UefiTargetBootSourceOverride": "uefiDevicePath", 232
"BootSourceOverrideTarget": "Pxe", 233
"[email protected]": [ 234
"None", 235
"Pxe", 236
"Usb", 237
"Hdd", 238
"BiosSetup", 239
OCP Hardware Management with Redfish DSP2049
Version 0.2.2b Work in Progress 9
"UefiTarget", 240
"UefiHttp" 241
] 242
}, 243
"LogServices": { 244
"@odata.id": "/redfish/v1/Systems/1/LogServices" 245
}, 246
"Links": { 247
"Chassis": [{ "@odata.id": "/redfish/v1/Chassis/1" }], 248
"ManagedBy": [{ "@odata.id": "/redfish/v1/Managers/bmc" }] 249
}, 250
"Actions": { 251
"#ComputerSystem.Reset": { 252
"target": "/redfish/v1/Systems/1/Actions/ComputerSystem.Reset", 253
"[email protected]": [ 254
"On", 255
"ForceOff", 256
"GracefulShutdown", 257
"ForceRestart", 258
"Nmi", 259
"GracefulRestart", 260
"ForceOn" 261
] 262
} 263
}, 264
"@odata.context": "/redfish/v1/$metadata#ComputerSystem.ComputerSystem", 265
"@odata.id": "/redfish/v1/Systems/1", 266
"@Redfish.Copyright": "..." 267
} 268
4.6 SEL (System Event Log) resource 269
Figure 3 is an example of the JSON response to a GET request for the SEL singleton resource. 270
This profile could contain each of the properties shown in Figure 3. 271
Figure 3 - SEL resource 272
{ 273 "@odata.type": "#LogService.v1_0_2.LogService", 274 "Id": "SEL", 275 "Name": "System Log Service", 276 "MaxNumberOfRecords": 1000, 277 "OverWritePolicy": "WrapsWhenFull", 278 "DateTime": "2015-03-13T04:14:33+06:00", 279 "DateTimeLocalOffset": "+06:00", 280 "ServiceEnabled": true, 281 "Status": { 282 "State": "Enabled", 283 "Health": "OK" 284 }, 285 "Actions": { 286 "#LogService.ClearLog": { 287 "target": "/redfish/v1/Systems/1/LogServices/SEL/Actions/LogService.Reset" 288 } 289 }, 290
DSP2049 OCP Hardware Management with Redfish
10 Work in Progress Version 0.2.2b
"Entries": { "@odata.id": "/redfish/v1/Systems/1/LogServices/SEL/Entries" }, 291 292 "@odata.context": "/redfish/v1/$metadata#LogService.LogService", 293 "@odata.id": "/redfish/v1/Systems/1/LogServices/SEL", 294 "@Redfish.Copyright": "..." 295
4.7 Log Entry resource 296
Figure 4 is an example of the JSON response to a GET request for the SEL event singleton resource. 297
This profile could contain each of the properties shown in Figure 4. 298
Figure 4 – Log Entry resource 299
{ 300 "@odata.type": "#LogEntry.v1_0_2.LogEntry", 301 "Id": "1", 302 "Name": "Log Entry 1", 303 "EntryType": "SEL", 304 "OemRecordFormat": "CompanyX", 305 "Severity": "Critical", 306 "Created": "2012-03-07T14:44", 307 "EntryCode": "Assert", 308 "SensorType": "Temperature", 309 "SensorNumber": 1, 310 "Message": "Message for Event, Description for SEL, OEM depends", 311 "MessageId": "Event.1.0.TempAssert", 312 "MessageArgs": [ "ArrayOfMessageArgs" ], 313 "Links": { 314 "OriginOfCondition": { "@odata.id": "/redfish/v1/Chassis/1/Thermal" } 315 }, 316 317 "@odata.context": "/redfish/v1/$metadata#LogEntry.LogEntry", 318 "@odata.id": "/redfish/v1/Systems/1/LogServices/SEL/Entries/1", 319 "@Redfish.Copyright":"..." 320 } 321
4.8 Chassis resource 322
Figure 5 is an example of the JSON response to a GET request on a Chassis singleton resource. 323
This profile could contain each of the properties shown in Figure 5. 324
Figure 5 - Chassis resource 325
{ 326 "@odata.type": "#Chassis.v1_2_0.Chassis", 327 "Id": "1", 328 "Name": "Catfish System Chassis", 329 "ChassisType": "RackMount", 330 "Manufacturer": "CatfishManufacturer", 331 "Model": "YellowCat1000", 332 "SerialNumber": "2M220100SL", 333 "SKU": "", 334 "PartNumber": "", 335 "AssetTag": "CATFISHASSETTAG", 336 "IndicatorLED": "Lit", 337 "PowerState": "On", 338 "Status": { 339 "State": "Enabled", 340 "Health": "OK" 341 }, 342 "Thermal": { "@odata.id": "/redfish/v1/Chassis/1/Thermal" }, 343 "Power": { "@odata.id": "/redfish/v1/Chassis/1/Power" }, 344 "Links": { 345 "ComputerSystems": [{ "@odata.id": "/redfish/v1/Systems/1" }], 346 "ManagedBy": [{ "@odata.id": "/redfish/v1/Managers/bmc" }], 347 "ManagersInChassis": [{ "@odata.id": "/redfish/v1/Managers/bmc" }] 348
OCP Hardware Management with Redfish DSP2049
Version 0.2.2b Work in Progress 11
}, 349 "@odata.context": "/redfish/v1/$metadata#Chassis.Chassis", 350 "@odata.id": "/redfish/v1/Chassis/1", 351 "@Redfish.Copyright": "..." 352 } 353
4.9 Power resource 354
Figure 6 is an example of the JSON response to a GET request on a Power singleton resource. 355
This profile could contain each of the properties shown in Figure 6. 356
Figure 6 - Power resource 357
{ 358 "@odata.type": "#Power.v1_1_0.Power", 359 "Id": "Power", 360 "Name": "Power", 361 "PowerControl": [ 362 { 363 "@odata.id": "/redfish/v1/Chassis/1/Power#/PowerControl/0", 364 "MemberId": "0", 365 "Name": "System Power Control", 366 "PowerConsumedWatts": 224, 367 "PowerCapacityWatts": 600, 368 "PowerLimit": { 369 "LimitInWatts": 450, 370 "LimitException": "LogEventOnly", 371 "CorrectionInMs": 1000 372 }, 373 "Status": { 374 "State": "Enabled", 375 "Health": "OK" 376 } 377 } 378 ], 379 "@odata.context": "/redfish/v1/$metadata#Power.Power", 380 "@odata.id": "/redfish/v1/Chassis/1/Power", 381 "@Redfish.Copyright": "..." 382 } 383
4.10 Thermal resource 384
Figure 7 is an example of the JSON response to a GET request on a Thermal singleton resource. 385
The Temperatures property could contain an entry for: 386
Inlet Temperature 387
Board Temperature 388
CPU Temperature for each of the processors 389
The Fans property could contain an entry for each fan present on the platform. If the fans are redundant, 390 the Redundancy property could be present. 391
The resource could contain each of the remaining properties shown in Figure 7. 392
Figure 7 - Thermal resource 393
{ 394 "@odata.type": "#Thermal.v1_1_0.Thermal", 395 "Id": "Thermal", 396 "Name": "Thermal", 397 "Temperatures": [ 398 { 399 "@odata.id": "/redfish/v1/Chassis/1/Thermal#/Temperatures/0", 400
DSP2049 OCP Hardware Management with Redfish
12 Work in Progress Version 0.2.2b
"MemberId": "0", 401 "Name": "Inlet Temp", 402 "SensorNumber": 42, 403 "Status": { 404 "State": "Enabled", 405 "Health": "OK" 406 }, 407 "ReadingCelsius": 25, 408 "UpperThresholdNonCritical": 35, 409 "UpperThresholdCritical": 40, 410 "UpperThresholdFatal": 50, 411 "MinReadingRange": 0, 412 "MaxReadingRange": 200, 413 "PhysicalContext": "Intake" 414 }, 415 { 416 "@odata.id": "/redfish/v1/Chassis/1/Thermal#/Temperatures/1", 417 "MemberId": "1", 418 "Name": "Board Temp", 419 "SensorNumber": 43, 420 "Status": { 421 "State": "Enabled", 422 "Health": "OK" 423 }, 424 "ReadingCelsius": 35, 425 "UpperThresholdNonCritical": 30, 426 "UpperThresholdCritical": 40, 427 "UpperThresholdFatal": 50, 428 "MinReadingRange": 0, 429 "MaxReadingRange": 200, 430 "PhysicalContext": "SystemBoard" 431 }, 432 { 433 "@odata.id": "/redfish/v1/Chassis/1/Thermal#/Temperatures/2", 434 "MemberId": "2", 435 "Name": "CPU1 Temp", 436 "SensorNumber": 44, 437 "Status": { 438 "State": "Enabled", 439 "Health": "OK" 440 }, 441 "ReadingCelsius": 45, 442 "UpperThresholdNonCritical": 60, 443 "UpperThresholdCritical": 82, 444 "MinReadingRange": 0, 445 "MaxReadingRange": 200, 446 "PhysicalContext": "CPU" 447 }, 448 { 449 "@odata.id": "/redfish/v1/Chassis/1/Thermal#/Temperatures/3", 450 "MemberId": "3", 451 "Name": "CPU2 Temp", 452 "SensorNumber": 45, 453 "Status": { 454 "State": "Enabled", 455 "Health": "OK" 456 }, 457 "ReadingCelsius": 46, 458 "UpperThresholdNonCritical": 60, 459 "UpperThresholdCritical": 82, 460 "MinReadingRange": 0, 461 "MaxReadingRange": 200, 462 "PhysicalContext": "CPU" 463 } 464 ], 465 "Fans": [ 466 { 467 "@odata.id": "/redfish/v1/Chassis/1/Thermal#/Fans/0", 468 "MemberId": "0", 469 "Name": "BaseBoard System Fan 1", 470 "PhysicalContext": "Backplane", 471
OCP Hardware Management with Redfish DSP2049
Version 0.2.2b Work in Progress 13
"Status": { 472 "State": "Enabled", 473 "Health": "OK" 474 }, 475 "Reading": 2100, 476 "ReadingUnits": "RPM", 477 "UpperThresholdNonCritical": 42, 478 "UpperThresholdCritical": 4200, 479 "UpperThresholdFatal": 42, 480 "LowerThresholdNonCritical": 42, 481 "LowerThresholdCritical": 5, 482 "LowerThresholdFatal": 42, 483 "MinReadingRange": 0, 484 "MaxReadingRange": 5000, 485 "Redundancy": [ 486 { 487 "@odata.id": "/redfish/v1/Chassis/1/Thermal#/Redundancy/0" 488 } 489 ] 490 }, 491 { 492 "@odata.id": "/redfish/v1/Chassis/1/Thermal#/Fans/1", 493 "MemberId": "1", 494 "Name": "BaseBoard System Fan 2", 495 "PhysicalContext": "Backplane", 496 "Status": { 497 "State": "Enabled", 498 "Health": "OK" 499 }, 500 "Reading": 2100, 501 "ReadingUnits": "RPM", 502 "UpperThresholdNonCritical": 42, 503 "UpperThresholdCritical": 4200, 504 "UpperThresholdFatal": 42, 505 "LowerThresholdNonCritical": 42, 506 "LowerThresholdCritical": 5, 507 "LowerThresholdFatal": 42, 508 "MinReadingRange": 0, 509 "MaxReadingRange": 5000, 510 "Redundancy": [ 511 { 512 "@odata.id": "/redfish/v1/Chassis/1/Thermal#/Redundancy/0" 513 } 514 ] 515 } 516 ], 517 "Redundancy": [ 518 { 519 "@odata.id": "/redfish/v1/Chassis/1/Thermal#/Redundancy/0", 520 "MemberId": "0", 521 "Name": "BaseBoard System Fans", 522 "RedundancySet": [ 523 { 524 "@odata.id": "/redfish/v1/Chassis/1/Thermal#/Fans/0" 525 }, 526 { 527 "@odata.id": "/redfish/v1/Chassis/1/Thermal#/Fans/1" 528 } 529 ], 530 "Mode": "N+m", 531 "Status": { 532 "State": "Enabled", 533 "Health": "OK" 534 }, 535 "MinNumNeeded": 1, 536 "MaxNumSupported": 2 537 } 538 ], 539 "@odata.context": "/redfish/v1/$metadata#Thermal.Thermal", 540 "@odata.id": "/redfish/v1/Chassis/1/Thermal", 541
DSP2049 OCP Hardware Management with Redfish
14 Work in Progress Version 0.2.2b
"@Redfish.Copyright": "..." 542 } 543
4.11 BMC resource 544
Figure 8 is an example of the JSON response to a GET request on a BMC resource. 545
The resource could contain each of the properties shown in Figure 8. 546
The resource could support the Reset action. 547
Figure 8 - BMC resource 548
{ 549 "@odata.type": "#Manager.v1_1_0.Manager", 550 "Id": "bmc", 551 "Name": "Manager", 552 "ManagerType": "BMC", 553 "Description": "BMC", 554 "ServiceEntryPointUUID": "92384634-2938-2342-8820-489239905423", 555 "UUID": "00000000-0000-0000-0000-000000000000", 556 "Model": "CatfishBMC", 557 "DateTime": "2015-03-13T04:14:33+06:00", 558 "DateTimeLocalOffset": "+06:00", 559 "Status": { 560 "State": "Enabled", 561 "Health": "OK" 562 }, 563 "FirmwareVersion": "1.00", 564 "NetworkProtocol": { "@odata.id": "/redfish/v1/Managers/bmc/NetworkProtocol" }, 565 "EthernetInterfaces": { "@odata.id": "/redfish/v1/Managers/bmc/EthernetInterfaces" }, 566 "Links": { 567 "ManagerForServers": [{ "@odata.id": "/redfish/v1/Systems/1" }], 568 "ManagerForChassis": [{ "@odata.id": "/redfish/v1/Chassis/1" }], 569 "ManagerInChassis": { "@odata.id": "/redfish/v1/Chassis/1" } 570 }, 571 "Actions": { 572 "#Manager.Reset": { 573 "target": "/redfish/v1/Managers/bmc/Actions/Manager.Reset", 574 "[email protected]": [ 575 "ForceRestart", 576 "GracefulRestart" 577 ] 578 } 579 }, 580 581 "@odata.context": "/redfish/v1/$metadata#Manager.Manager", 582 "@odata.id": "/redfish/v1/Managers/bmc", 583 "@Redfish.Copyright": "..." 584 } 585
4.12 BMC Ethernet Interface resource 586
Figure 9 is an example of the JSON response to a GET request on a BMC Ethernet interface resource. 587
The resource could contain each of the properties shown in Figure 9. 588
Figure 9 - BMC Ethernet interface resource 589
{ 590 "@odata.type": "#EthernetInterface.v1_0_2.EthernetInterface", 591 "Id": "eth0", 592 "Name": "Manager Ethernet Interface", 593 "Description": "Management Network Interface", 594 "Status": { 595 "State": "Enabled", 596 "Health": "OK" 597
OCP Hardware Management with Redfish DSP2049
Version 0.2.2b Work in Progress 15
}, 598 "InterfaceEnabled": true, 599 "PermanentMACAddress": "AA:BB:CC:DD:EE:FF", 600 "MACAddress": "AA:BB:CC:DD:EE:FF", 601 "SpeedMbps": 100, 602 "AutoNeg": true, 603 "FullDuplex": true, 604 "MTUSize": 1500, 605 "HostName": "MyHostName", 606 "FQDN": "MyHostName.MyDomainName.com", 607 "MaxIPv6StaticAddresses": 1, 608 "VLAN": { 609 "VLANEnable": true, 610 "VLANId": 101 611 }, 612 "IPv4Addresses": [ 613 { 614 "Address": "192.168.0.10", 615 "SubnetMask": "255.255.252.0", 616 "AddressOrigin": "DHCP", 617 "Gateway": "192.168.0.1" 618 } 619 ], 620 "IPv6AddressPolicyTable": [ 621 { 622 "Prefix": "::1/128", 623 "Precedence": 50, 624 "Label": 0 625 } 626 ], 627 "IPv6StaticAddresses": [ 628 { 629 "Address": "fe80::1ec1:deff:fe6f:1e24", 630 "PrefixLength": 16 631 } 632 ], 633 "IPv6DefaultGateway": "fe80::1ec1:deff:fe6f:1e24", 634 "IPv6Addresses": [ 635 { 636 "Address": "fe80::1ec1:deff:fe6f:1e24", 637 "PrefixLength": 64, 638 "AddressOrigin": "SLAAC", 639 "AddressState": "Preferred" 640 } 641 ], 642 643 "@odata.context": "/redfish/v1/$metadata#EthernetInterface.EthernetInterface", 644 "@odata.id": "/redfish/v1/Managers/bmc/EthernetInterfaces/eth0", 645 "@Redfish.Copyright":"..." 646
4.13 BMC Network Protocol resource 647
Figure 10 is an example of the JSON response to a GET request on a BMC network protocol resource. 648
The resource could contain each of the properties shown in Figure 10. 649
Figure 10 - BMC network protocol resource 650
{ 651 "@odata.type": "#ManagerNetworkProtocol.v1_0_2.ManagerNetworkProtocol", 652 "Id": "NetworkProtocol", 653 "Name": "Manager Network Protocol", 654 "Description": "Manager Network Service Status", 655 "Status": { 656 "State": "Enabled", 657 "Health": "OK" 658 }, 659 "HostName": "myBmcHostname", 660 "FQDN": "mymanager.mydomain.com", 661
DSP2049 OCP Hardware Management with Redfish
16 Work in Progress Version 0.2.2b
"HTTP": { "ProtocolEnabled": true, "Port": 80 }, 662 "HTTPS": { "ProtocolEnabled": true, "Port": 443 }, 663 "IPMI": { "ProtocolEnabled": true, "Port": 623 }, 664 "SSH": { "ProtocolEnabled": true, "Port": 22 }, 665 "SNMP": { "ProtocolEnabled": true, "Port": 161 }, 666 "Telnet": { "ProtocolEnabled": true, "Port": 23 }, 667 "SSDP": { 668 "ProtocolEnabled": true, 669 "Port": 1900, 670 "NotifyMulticastIntervalSeconds": 600, 671 "NotifyTTL": 5, 672 "NotifyIPv6Scope": "Site" 673 }, 674 675 "@odata.context": "/redfish/v1/$metadata#ManagerNetworkProtocol.ManagerNetworkProtocol", 676 "@odata.id": "/redfish/v1/Managers/bmc/NetworkProtocol", 677 "@Redfish.Copyright":"..." 678 } 679
4.14 Account resource 680
Figure 11 is an example of the JSON response to a GET request on an Account resource. 681
The resource could contain each of the properties shown in Figure 11. 682
Figure 11 – Account resource 683
{ 684 "@odata.type": "#ManagerAccount.v1_0_2.ManagerAccount", 685 "Id": "root", 686 "Name": "UserAccount", 687 "Description": "User Account", 688 "Enabled": true, 689 "Password": null, 690 "UserName": "root", 691 "RoleId": "Administrator", 692 "Locked": false, 693 "Links": { 694 "Role": { "@odata.id": "/redfish/v1/AccountService/Roles/Admin" } 695 }, 696 "@odata.context": "/redfish/v1/$metadata#ManagerAccount.ManagerAccount", 697 "@odata.id": "/redfish/v1/AccountService/Accounts/root", 698 "@Redfish.Copyright":"..." 699 } 700
4.15 Role resource 701
Figure 12 is an example of the JSON response to a GET request on a Role resource. 702
The resource could contain each of the properties shown in Figure 12. 703
Figure 12 – Role resource 704
{ 705 "@odata.type": "#Role.v1_0_2.Role", 706 "Id": "Administrator", 707 "Name": "User Role", 708 "Description": "Admin User Role", 709 "IsPredefined": true, 710 "AssignedPrivileges": [ 711 "Login", 712 "ConfigureManager", 713 "ConfigureUsers", 714 "ConfigureSelf", 715 "ConfigureComponents" 716 ], 717 "@odata.context": "/redfish/v1/$metadata#Role.Role", 718 "@odata.id": "/redfish/v1/AccountService/Roles/Admin", 719
OCP Hardware Management with Redfish DSP2049
Version 0.2.2b Work in Progress 17
"@Redfish.Copyright":"..." 720 } 721
4.16 Session resource 722
Figure 13 is an example of the JSON response to a GET request on a Session resource. 723
The resource could contain each of the properties shown in Figure 13. 724
Figure 13 – Session resource 725
{ 726 "@odata.type": "#Session.v1_0_2.Session", 727 "Id": "1234567890ABCDEF", 728 "Name": "User Session", 729 "Description": "Manager User Session", 730 "UserName": "root", 731 732 "@odata.context": "/redfish/v1/$metadata#Session.Session", 733 "@odata.id": "/redfish/v1/SessionService/Sessions/1234567890ABCDEF", 734 "@Redfish.Copyright":"..." 735 } 736
5 Open Hardware Management v1.01 737
5.1 Mapping 738
The mapping below is organized according to the IPMI-based documents. The IPMI column contains the 739 referenced IPMI-based command. 740
The Redfish equivalent column contains the mechanism that would be used to perform the same task. 741
In some cases, the task can be described simply. In those cases, the column contains the HTTP request, 742 the generalized path and the action that the client would perform on the JSON included in the HTTP 743 response. 744
In this description text, whether the resource and/or property currently exists in the Redfish model is 745 indicated by the color of the text: 746
Black text – resource or property exists in the Redfish model 747
Blue text – resource or property does not exists in the Redfish model. The text is a proposal. 748
Table 2 contains the Redfish model elements to support hardware management. Redfish supports a 749 collection of Managers and each managers is a singleton resource (./Managers/{id}). For a platform with 750 only one manager, a BMC (baseboard management controller), then {id} = BMC. 751
Table 2- Redfish Base Model 752
IPMI Command Redfish Equivalent In OCP mockup
Get DCMI Capabilities Info
GET ./Profiles…. (is this needed)???
Set & Get DCMI Configuration Parameters
TBD N
Get Management Controller Identifier String
GET ./Managers/{id}
Extract value of Name property Y
Set Management Controller Identifier
PATCH ./Managers/{id} Y
DSP2049 OCP Hardware Management with Redfish
18 Work in Progress Version 0.2.2b
IPMI Command Redfish Equivalent In OCP mockup
String Request contains value of Name property
Get Asset Tag GET ./Systems/{id}
Extract AssetTag Y
Set Asset Tag PATCH ./Systems/{id}
Request contains AssetTag value Y
Get Device ID Not Supported. See section 5.2 N
Get System GUID GET ./Systems/{id}#/UUID Y
Set & Get System Boot Options
Supported. See section 5.3 Y
Get DCMI Sensor Info
GET ./TelemetryService/MetricDefinitions/{id}, where ID is the name of the sensor.
Supported. See section 5.4
Y
Get Sensor Reading GET <path to resource containing the sensor reading>
Extract the value of the sensor reading
See section 5.4
Y
Get SEL info GET ./Systems/{id}/LogServices/SEL Y
Get SEL Entry GET ./Systems/{id}/LogServices/SEL/Entries/{id} Y
Clear SEL POST ./Managers/{id}/LogServices/SEL/Actions/LogService.Reset Y
Get Power Reading GET ./Chassis/{id}/Power
Extract PowerControl/PowerConsumedWatts Y
Get Temperature Readings
GET ./Chassis/{id}/Thermal
Extract Temperatures Y
Get LAN Configuration Parameters
GET ./Managers/{id}/EthernetInterfaces/{id} Y
Set LAN Configuration Parameters
POST ./Managers/{id}/EthernetInterfaces/{id}/SD Y
Set & Get Channel Access
Not supported. See section 5.5 N
Get User Access GET ./AccountService/Accounts/{id}
Extract the RoleId property Y
Set User Access PATCH ./AccountService/Accounts/{id}
Request contains value of RoleId property Y
Get User Name GET ./AccountService/Accounts/{id}
Extract the UserName property Y
Set User Name GET ./AccountService/Accounts/{id}
Request contains value of UserName property Y
Set User Password GET ./AccountService/{id}
Request contains the value of the Password property Y
Set & Get User Payload Access
Not supported. See section 5.6 N
Get Chassis Capabilities
Not supported. See section 5.7 N
Get Chassis Status GET ./Chassis/{id}#/State/Status Y
Chassis Control POST ./Systems/1/Actions/ComputerSystem.Reset
Supported. See section 5.8 Y
OCP Hardware Management with Redfish DSP2049
Version 0.2.2b Work in Progress 19
IPMI Command Redfish Equivalent In OCP mockup
Chassis Identify GET ./Chassis/{id}#/AssetTag Y
Get ACPI Power State
GET ./Chassis/{id}#/ACPIPowerState N
5.2 Device ID 753
IPMI supports a device ID to uniquely specify each device. 754
Redfish does not support the notion of Device ID. 755
5.3 Boot Property Structure 756
The System resource contains a boot property contains properties to control the booting of the system. 757 The BootSourceOverrideTarget is a Redfish annotation which may be present to provide the client with 758 the values that the implementation supports. 759
"Boot": { 760 "BootSourceOverrideEnabled": "Once", 761 "BootSourceOverrideMode": "UEFI", 762 "BootSourceOverrideTarget": "Pxe", 763 "UefiTargetBootSourceOverride": "uefi device path" 764 "[email protected]": [ 765 "None", 766 "Pxe", 767 "Floppy", 768 "Cd", 769 "Usb", 770 "Hdd", 771 "BiosSetup", 772 "Utilities", 773 "Diags", 774 "UefiTarget", 775 "SDCard", 776 "UefiHttp" 777 ] 778 } 779
5.4 Sensors 780
Regarding sensors, the OCP Specification refers to the DCMI. The DCMI spec specifies three sensors: 781
Inlet Temperature 782
Baseboard Temperature 783
CPU (Processor) Temperature 784
In Redfish, these temperature metrics are contained in the Thermal resource. Within the resource, the 785 Temperatures JSON object contains the temperature metrics associated with the Chassis named "Ch_1". 786 Each temperature is identified by a "Name" property. 787
The following values of Name could be supported: 788
"Inlet Temp", in which PhysicalContext="Intake" 789
"Board Temp", in which PhysicalContext="SystemBoard" 790
"CPU{n} Temp", where "{n}" is a unique integer value, in which PhysicalContext="CPU" 791
"@odata.id": "/redfish/v1/Chassis/Ch_1/Thermal", 792 793 "Temperatures": [ 794 { 795
DSP2049 OCP Hardware Management with Redfish
20 Work in Progress Version 0.2.2b
"@odata.id": "/redfish/v1/Chassis/1/Thermal#/Temperatures/0", 796 "MemberId": "0", 797 "Name": "Inlet Temp", 798 "Status": { "State": "Enabled", "Health": "OK" }, 799 "ReadingCelsius": 25, 800 "PhysicalContext": "Intake", 801 . . . 802 }, 803 { 804 "@odata.id": "/redfish/v1/Chassis/1/Thermal#/Temperatures/1", 805 "MemberId": "1", 806 "Name": "Board Temp", 807 "Status": { "State": "Enabled", "Health": "OK" }, 808 "ReadingCelsius": 35, 809 "PhysicalContext": "SystemBoard" 810 . . . 811 }, 812 { 813 "@odata.id": "/redfish/v1/Chassis/1/Thermal#/Temperatures/2", 814 "MemberId": "2", 815 "Name": "CPU1 Temp", 816 "Status": { "State": "Enabled", "Health": "OK" }, 817 "ReadingCelsius": 45, 818 "PhysicalContext": "CPU", 819 . . . 820 }, 821 { 822 "@odata.id": "/redfish/v1/Chassis/1/Thermal#/Temperatures/3", 823 "MemberId": "3", 824 "Name": "CPU2 Temp", 825 "Status": { "State": "Enabled", "Health": "OK" }, 826 "ReadingCelsius": 46, 827 "PhysicalContext": "CPU", 828 . . . 829 } 830
831
Table 3 - Need a name here 832
DCMI Command
Redfish Equivalent In OCP Profile
Get Inlet Temperature
GET ./Chassis/{id}/Thermal
In the Temperature array property, find the Temperature, whose Name property is "Inlet Temp".
From the Temperature so found, extract the value of ReadingCelsius
Y
Get Baseboard Temperature
GET ./Chassis/{id}/Thermal
In the Temperature array property, find the Temperature, whose Name property is "Board Temp".
From the Temperature so found, extract the value of ReadingCelsius
Y
Get CPU (Processor) Temperature
GET ./Chassis/{id}/Thermal
In the Temperature array property, find the Temperature, whose Name property is "CPU{n} Temp", where "{n}" is a unique integer value
From the Temperature so found, extract the value of ReadingCelsius
Y
The sensor section of DCMI specification also lists three event sensors. 833
OCP Hardware Management with Redfish DSP2049
Version 0.2.2b Work in Progress 21
A power off event 834
A power threshold event 835
A thermal limit event 836
In Redfish, these power metrics are contained in the Power resource. Within the resource, the 837 PowerControl JSON object contains the properties associated with the Chassis named "Ch_1". Each 838 power control is identified by a "Name" property. 839
The following values of Name could be supported: 840
"System Power Control", in which PhysicalContext="SystemBoard" 841
"@odata.id": "/redfish/v1/Chassis/Ch_1/Power", 842 "PowerControl": [ 843 { 844 "@odata.id": "/redfish/v1/Chassis/1/Power#/PowerControl/0", 845 "MemberId": "0", 846 "Name": "System Power Control", 847 "PowerConsumedWatts": 224, 848 "PowerCapacityWatts": 600, 849 "PowerLimit": { 850 "LimitInWatts": 450, 851 "LimitException": "LogEventOnly", 852 "CorrectionInMs": 1000 853 }, 854 "Status": { "State": "Enabled", "Health": "OK" }, 855 } 856 ] 857
Redfish supports a subscribe/publish event model. 858
For power off events 859
The client would subscribes to a lifecycle events (EventType=" StatusChange") 860
Upon receiving an event, inspect the Event Message and determine whether the MessageID property 861 has the value of TBD 862
For power threshold events, the client would TBD 863
For thermal limit events, the client would TBD 864
5.5 Channel Access 865
IPMI supports a channel mechanism for routing messages to IPMB, and routing messages to different 866 platform internal media. Channels are a specific capability of IPMI. 867
Redfish does not support channels. 868
5.6 User Payload Access 869
IPMI supports a payload mechanism to carry data besides IPMI payloads and Serial-over-LAN payloads 870 over the IPMI protocol. 871
Redfish specifies HTTP/HTTPS. Redfish does not specify a special payload mechanisms. For Serial-872 over-LAN, the SSH or Telnet protocol could be supported. 873
5.7 Chassis Capabilities 874
IPMI supports chassis capabilities to return information about the chassis management which are present 875 on the IPMB and how to access those functions. IPMB is a specific capability of IPMI. 876
Redfish does not support chassis capabilities. 877
DSP2049 OCP Hardware Management with Redfish
22 Work in Progress Version 0.2.2b
5.8 Chassis Control 878
Redfish defines Chassis as the 'sheet metal' container with power and cooling domain. The generic 879 definition of Chassis allows chassis to define any container. 880
Redfish encapsulates the other state actions besides power state actions in the ComputerSystem 881 resource. The ComputerSystem resource defines the Action property. 882
The fragment defines an action names ComputerSystem.Reset, which the Redfish client can perform by 883 POST'ing to the URI specified in the "target" property. The POST request should include a JSON file with 884 the parameter(s) specified in the ResetActionInfo resource. 885
"Actions": { 886 "#ComputerSystem.Reset": { 887 "target": "/redfish/v1/Systems/1/Actions/ComputerSystem.Reset", 888 "@Redfish.ActionInfo": "/redfish/v1/Systems/1/ResetActionInfo" 889 } 890 } 891
Below is the contents of the ResetActionInfo resource. There is only one parameter specified which is 892 required. The property name is "ResetType" and its value is a string. The structure also shows that 893 allowable values that can be used as values. 894
{ 895 "@Redfish.Copyright": "...", 896 "@odata.context": "/redfish/v1/$metadata#ActionInfo.ActionInfo", 897 "@odata.id": "/redfish/v1/Systems/1/ResetActionInfo", 898 "@odata.type": "#ActionInfo.v1_0_0.ActionInfo", 899 "Parameters": [{ 900 "Name": "ResetType", 901 "Required": true, 902 "DataType": "String", 903 "AllowableValues": [ 904 "On", 905 "ForceOff", 906 "GracefulShutdown", 907 "GracefulRestart", 908 "ForceRestart", 909 "Nmi", 910 "ForceOn", 911 "PushPowerButton" 912 ] 913 }] 914 } 915
916