OCP Hardware Management with Redfish - DMTF · PDF file1 2 Document Number: DSP2049 3 Date:...

23
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

Transcript of OCP Hardware Management with Redfish - DMTF · PDF file1 2 Document Number: DSP2049 3 Date:...

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

OCP Hardware Management with Redfish DSP2049

Version 0.2.2b Work in Progress 23

ANNEX A917

(informative) 918

919

920

Change log 921

Version Date Description

0.2.2b 2017-05-30 Work in Progress

922