xref: /openbmc/bmcweb/Redfish.md (revision e9cc1bc9)
1# Redfish
2
3bmcweb provides an implementation of the [Redfish][1] API. This document details
4the Redfish schemas supported by bmcweb. This document also discusses some of
5the details of that implementation and different implementations available for
6certain areas.
7
8## Redfish Schema
9
10The redfish implementation shall pass the
11[Redfish Service Validator](https://github.com/DMTF/Redfish-Service-Validator "Validator")
12with no warnings or errors
13
14The following redfish schemas and fields are targeted for OpenBMC. This is a
15living document, and these schemas are subject to change.
16
17The latest Redfish schemas can be found
18[here](https://redfish.dmtf.org/schemas/)
19
20If using a previously unused schema, you will need to add it to the included
21schema list in `scripts/update_schemas.py` and run `update_schemas.py`.
22
23Fields common to all schemas
24
25- @odata.id
26- @odata.type
27- Id
28- Name
29
30### /redfish/v1/
31
32#### ServiceRoot
33
34- AccountService
35- AggregationService
36- Cables
37- CertificateService
38- Chassis
39- EventService
40- JsonSchemas
41- Links/ManagerProvidingService
42- Links/Sessions
43- Managers
44- RedfishVersion
45- Registries
46- SessionService
47- Systems
48- Tasks
49- TelemetryService
50- UUID
51- UpdateService
52
53### /redfish/v1/AccountService/
54
55#### AccountService
56
57- AccountLockoutDuration
58- AccountLockoutThreshold
59- Accounts
60- Description
61- LDAP
62- MaxPasswordLength
63- MinPasswordLength
64- Oem/OpenBMC/AuthMethods/BasicAuth
65- Oem/OpenBMC/AuthMethods/Cookie
66- Oem/OpenBMC/AuthMethods/SessionToken
67- Oem/OpenBMC/AuthMethods/TLS
68- Oem/OpenBMC/AuthMethods/XToken
69- Roles
70- ServiceEnabled
71
72### /redfish/v1/AggregationService/
73
74#### AggregationService
75
76- AggregationSources
77- Description
78- ServiceEnabled
79
80### /redfish/v1/AggregationService/AggregationSources
81
82#### AggregationSourceCollection
83
84- Members
85- Members@odata.count
86
87### /redfish/v1/AggregationService/AggregationSources/{AggregationSourceId}
88
89#### AggregationSource
90
91- HostName
92- Password
93
94### /redfish/v1/AccountService/Accounts/
95
96#### ManagerAccountCollection
97
98- Description
99- Members
100- Members@odata.count
101
102### /redfish/v1/AccountService/Accounts/{ManagerAccountId}/
103
104#### ManagerAccount
105
106- AccountTypes
107- Description
108- Enabled
109- Links/Role
110- Locked
111- Locked@Redfish.AllowableValues
112- Password
113- PasswordChangeRequired
114- RoleId
115- StrictAccountTypes
116- UserName
117
118### /redfish/v1/AccountService/LDAP/Certificates/
119
120#### CertificateCollection
121
122- Description
123- Members
124- Members@odata.count
125
126### /redfish/v1/AccountService/Roles/
127
128#### RoleCollection
129
130- Description
131- Members
132  - By default will contain 3 roles, "Administrator", "Operator", and "ReadOnly"
133- Members@odata.count
134
135### /redfish/v1/AccountService/Roles/{RoleId}/
136
137#### Role
138
139- AssignedPrivileges
140  - For the default roles, the following privileges will be assigned by default
141    - Administrator: Login, ConfigureManager, ConfigureUsers, ConfigureSelf,
142      ConfigureComponents
143    - Operator: Login, ConfigureComponents, ConfigureSelf
144    - ReadOnly: Login, ConfigureSelf
145- Description
146- IsPredefined
147  - Will be set to true for all default roles. If the given role is non-default,
148    or has been modified from default, will be marked as false.
149- OemPrivileges
150- RoleId
151
152### /redfish/v1/Cables/
153
154#### CableCollection
155
156- Description
157- Members
158- Members@odata.count
159
160### /redfish/v1/Cables/{CableId}/
161
162#### Cable
163
164- CableType
165- LengthMeters
166- Status
167
168### /redfish/v1/CertificateService/
169
170#### CertificateService
171
172- Actions
173- CertificateLocations
174- Description
175
176### /redfish/v1/CertificateService/CertificateLocations/
177
178#### CertificateLocations
179
180- Description
181- Links/Certificates
182- Links/Certificates@odata.count
183
184### /redfish/v1/Chassis/
185
186#### ChassisCollection
187
188- Members
189- Members@odata.count
190
191### /redfish/v1/Chassis/{ChassisId}/
192
193#### Chassis
194
195- Actions
196- ChassisType
197- HotPluggable
198- Links/ComputerSystems
199- Links/ManagedBy
200- PCIeDevices
201- Power
202  - Shall be included if component contains voltage/current sensing components,
203    otherwise will be omitted.
204- PowerState
205- Sensors
206- Status
207- Thermal
208  - Shall be included if component contains temperature sensors, otherwise shall
209    be omitted.
210
211### /redfish/v1/Chassis/{ChassisId}/Drive/
212
213#### Drive
214
215- Members (This is dependent on a entity manager association from Chassis to
216  Drives, The name of the association is `chassis<->drive`)
217
218### /redfish/v1/Chassis/{ChassisId}/Drive/{DriveId}/
219
220#### Drive
221
222- Drives
223- Drives@odata.count
224- Status (this is dependant on a entity manager association from Chassis to
225  Drives)
226
227### /redfish/v1/Chassis/{ChassisId}/EnvironmentMetrics/
228
229#### EnvironmentMetrics
230
231### /redfish/v1/Chassis/{ChassisId}/Power/
232
233#### Power
234
235- PowerControl
236- PowerSupplies
237- Redundancy
238- Voltages
239
240### /redfish/v1/Chassis/{ChassisId}/Sensors/
241
242#### SensorCollection
243
244- Description
245- Members
246- Members@odata.count
247
248### /redfish/v1/Chassis/{ChassisId}/Sensors/{Id}/
249
250#### Sensor
251
252- Reading
253- ReadingRangeMax
254- ReadingRangeMin
255- ReadingType
256- ReadingUnits
257- Status
258- Thresholds
259
260### /redfish/v1/Chassis/{ChassisId}/Thermal/
261
262#### Thermal
263
264- Fans
265- Redundancy
266- Temperatures
267
268### /redfish/v1/Chassis/{ChassisId}/Thermal#/Temperatures/{SensorName}/
269
270#### Temperature
271
272- MemberId
273- Status
274- ReadingCelsius
275- UpperThresholdNonCritical
276- UpperThresholdCritical
277- LowerThresholdNonCritical
278- LowerThresholdCritical
279- MinReadingRange
280- MaxReadingRange _threshold fields only present if defined for sensor,
281  otherwise absent_
282
283### /redfish/v1/Chassis/{ChassisId}/Thermal#/Fans/{FanName}/
284
285#### Fan
286
287- MemberId
288- Status
289- Reading
290- ReadingUnits
291- UpperThresholdNonCritical
292- UpperThresholdCritical
293- LowerThresholdNonCritical
294- LowerThresholdCritical
295- MinReadingRange
296- MaxReadingRange
297- Redundancy _threshold fields only present if defined for sensor, otherwise
298  absent_
299
300### /redfish/v1/Chassis/{ChassisId}/Thermal#/Redundancy/{RedundancyName}/
301
302#### Redundancy
303
304- MemberId
305- RedundancySet
306- Mode
307- Status
308- MinNumNeeded
309- MaxNumSupported
310
311### /redfish/v1/Chassis/{ChassisId}/ThermalSubsystem
312
313#### ThermalSubsystem
314
315- Status
316
317#### /redfish/v1/Chassis/{ChassisId}/ThermalSubsystem/Fans
318
319##### FansCollection
320
321- Description
322- Members
323- Members@odata.count
324
325#### /redfish/v1/Chassis/{ChassisId}/ThermalSubsystem/Fans/{FanName}/
326
327#### Fan
328
329- Location
330- Manufacturer
331- Model
332- PartNumber
333- SerialNumber
334- SparePartNumber
335- Status
336
337### /redfish/v1/Chassis/{ChassisId}/Power#/PowerControl/{ControlName}/
338
339#### PowerControl
340
341- MemberId
342- PowerConsumedWatts
343- PowerMetrics/IntervalInMin
344- PowerMetrics/MinConsumedWatts
345- PowerMetrics/MaxConsumedWatts
346- PowerMetrics/AverageConsumedWatts
347- RelatedItem
348  - Should list systems and related chassis
349
350### /redfish/v1/Chassis/{ChassisId}/Power#/Voltages/{VoltageName}/
351
352#### Voltage
353
354- MemberId
355- Status
356- ReadingVolts
357- UpperThresholdNonCritical
358- UpperThresholdCritical
359- LowerThresholdNonCritical
360- LowerThresholdCritical
361- MinReadingRange
362- MaxReadingRange
363- PhysicalContext
364- RelatedItem
365
366### /redfish/v1/Chassis/{ChassisId}/Power#/PowerSupplies/{PSUName}/
367
368#### PowerSupply
369
370- MemberId
371- Status
372- LininputVoltage
373- Model
374- manufacturer
375- FirmwareVersion
376- SerialNumber
377- PartNumber
378- RelatedItem
379- Redundancy
380
381### /redfish/v1/Chassis/{ChassisId}/Power#/Redundancy/{RedundancyName}/
382
383#### Redundancy
384
385- MemberId
386- RedundancySet
387- Mode
388- Status
389- MinNumNeeded
390- MaxNumSupported
391
392#### /redfish/v1/Chassis/{ChassisId}/PowerSubsystem/PowerSupplies
393
394##### PowerSupplies
395
396- Description
397- Members
398- Members@odata.count
399
400#### /redfish/v1/Chassis/{ChassisId}/PowerSubsystem/PowerSupplies/{PowerSupplyId}
401
402##### PowerSupply
403
404- EfficiencyRatings
405  - EfficiencyPercent
406- FirmwareVersion
407- Location
408- Manufacturer
409- Model
410- PartNumber
411- SerialNumber
412- SparePartNumber
413- Status
414
415### /redfish/v1/EventService/
416
417#### EventService
418
419- Actions
420- DeliveryRetryAttempts
421  - Defaults to 3
422- DeliveryRetryIntervalSeconds
423- EventFormatTypes
424- RegistryPrefixes
425- ResourceTypes
426- SSEFilterPropertiesSupported
427- ServiceEnabled
428- Status
429- Subscriptions
430
431### /redfish/v1/EventService/Subscriptions/
432
433#### EventDestinationCollection
434
435- Members
436- Members@odata.count
437
438### /redfish/v1/EventService/Subscriptions/{EventName}/
439
440#### EventDestination
441
442- Id
443- Destination
444- EventTypes
445- Context
446- OriginResources
447- Protocol
448
449### /redfish/v1/JsonSchemas/
450
451#### JsonSchemaFileCollection
452
453- Description
454- Members@odata.count
455- Members
456
457### /redfish/v1/JsonSchemas/{Id}/
458
459#### JsonSchemaFile
460
461- Schema
462- Description
463- Languages
464- Languages@odata.count
465- Location
466- Location@odata.count
467
468### /redfish/v1/Managers/
469
470#### ManagerCollection
471
472- Members
473- Members@odata.count
474
475### /redfish/v1/Managers/bmc/
476
477#### Manager
478
479- Actions
480- DateTime
481- DateTimeLocalOffset
482- Description
483- EthernetInterfaces
484- FirmwareVersion
485- GraphicalConsole
486- LastResetTime
487- Links/ActiveSoftwareImage
488- Links/ManagerForChassis
489- Links/ManagerForChassis@odata.count
490- Links/ManagerForServers
491- Links/ManagerForServers@odata.count
492- Links/ManagerInChassis
493- Links/SoftwareImages
494- Links/SoftwareImages@odata.count
495- LogServices
496- ManagerType
497- Manufacturer
498- Model
499- NetworkProtocol
500- Oem
501- PartNumber
502- PowerState
503- SerialConsole
504- SerialNumber
505- ServiceEntryPointUUID
506- SparePartNumber
507- Status
508- UUID
509
510### /redfish/v1/Managers/bmc/EthernetInterfaces/
511
512#### EthernetInterfaceCollection
513
514- Description
515- Members
516- Members@odata.count
517
518### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/
519
520#### EthernetInterface
521
522- DHCPv4
523- DHCPv6
524- Description
525- EthernetInterfaceType
526- FQDN
527- HostName
528- IPv4Addresses
529- IPv4StaticAddresses
530- IPv6AddressPolicyTable
531- IPv6Addresses
532- IPv6DefaultGateway
533- IPv6StaticAddresses
534- InterfaceEnabled
535- Links/RelatedInterfaces
536- LinkStatus
537- MACAddress
538- NameServers
539- SpeedMbps
540- StatelessAddressAutoConfig
541- StaticNameServers
542- Status
543- VLAN/VLANEnable
544- VLAN/VLANId
545- VLAN/Tagged
546
547### /redfish/v1/Managers/bmc/LogServices/
548
549The [LogService][2] resource provides properties for monitoring and configuring
550events for the service or resource to which it is associated.
551
552Within bmcweb, the LogService object resides under the System resource. It
553tracks all events for the system.
554
555The LogService supports multiple log entry types. bmcweb has support for the
556`Event` type. This is the new Redfish-defined type.
557
558bmcweb supports two different implementations of the
559`LogService/EventLog/Entries` URI.
560
561The default implementation uses rsyslog to write Redfish events from the journal
562to the persistent /var/log/ filesystem. The bmcweb software then looks for these
563files in /var/log/ and returns the appropriate Redfish EventLog Entries for
564these. More details on adding events can be found [here][3]
565
566The other implementation of EventLog Entries can be enabled by compiling bmcweb
567with the `-DBMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES=ON` option. This will cause
568bmcweb to look to [phosphor-logging][4] for any D-Bus log entries. These will
569then be translated to Redfish EventLog Entries.
570
571These two implementations do not work together, so choosing one will disable the
572other.
573
574#### LogServiceCollection
575
576- Description
577- Members
578- Members@odata.count
579
580### /redfish/v1/Managers/bmc/LogServices/RedfishLog/
581
582#### LogService
583
584- Entries
585- OverWritePolicy
586- Actions
587- Status
588- DateTime
589- MaxNumberOfRecords
590
591### /redfish/v1/Managers/bmc/LogServices/RedfishLog/Entries/{LogEntryId}/
592
593#### LogEntry
594
595- Message
596- Created
597- EntryType
598
599### /redfish/v1/Managers/bmc/ManagerDiagnosticData/
600
601#### ManagerDiagnosticData
602
603- ServiceRootUptimeSeconds
604
605### /redfish/v1/Managers/bmc/NetworkProtocol/
606
607#### ManagerNetworkProtocol
608
609- Description
610- FQDN
611- HTTP
612- HTTPS
613- HostName
614- IPMI
615- NTP
616- SSH
617- Status
618
619### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/
620
621#### CertificateCollection
622
623- Description
624- Members
625- Members@odata.count
626
627### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/{CertificateId}/
628
629#### Certificate
630
631- CertificateString
632- Description
633- Issuer
634- KeyUsage
635- Subject
636- ValidNotAfter
637- ValidNotBefore
638
639### /redfish/v1/Managers/bmc/Truststore/Certificates/
640
641#### CertificateCollection
642
643- Description
644- error
645
646### /redfish/v1/Registries/
647
648#### MessageRegistryFileCollection
649
650- Description
651- Members
652  - Should support Base, CommonMessages, and EventingMessages
653- Members@odata.count
654
655### /redfish/v1/Registries/{MessageRegistryFileId}/
656
657#### MessageRegistryFile
658
659- Description
660- Languages
661- Languages@odata.count
662- Location
663- Location@odata.count
664- Registry
665
666### /redfish/v1/SessionService/
667
668#### SessionService
669
670- Description
671- ServiceEnabled
672- SessionTimeout
673- Sessions
674
675### /redfish/v1/SessionService/Sessions/
676
677#### SessionCollection
678
679- Description
680- Members
681- Members@odata.count
682
683### /redfish/v1/SessionService/Sessions/{SessionId}/
684
685#### Session
686
687- ClientOriginIPAddress
688- Description
689- Oem
690- UserName
691
692### /redfish/v1/Systems/
693
694#### ComputerSystemCollection
695
696- Members
697  - Should support one system
698- Members@odata.count
699
700### /redfish/v1/Systems/system/Bios/
701
702#### Bios
703
704- Actions
705- Description
706- Links/ActiveSoftwareImage
707- Links/SoftwareImages
708- Links/SoftwareImages@odata.count
709
710### /redfish/v1/Systems/system/
711
712#### ComputerSystem
713
714- Actions
715- AssetTag
716- Bios
717- BiosVersion
718- Boot
719- BootProgress
720- Description
721- HostWatchdogTimer
722- IdlePowerSaver/Enable
723- IdlePowerSaver/EnterUtilizationPercent
724- IdlePowerSaver/EnterDwellTimeSeconds
725- IdlePowerSaver/ExitUtilizationPercent
726- IdlePowerSaver/ExitDwellTimeSeconds
727- IndicatorLED
728- LastResetTime
729- Links/Chassis
730- Links/ManagedBy
731- LocationIndicatorActive
732- LogServices
733- Manufacturer
734- Memory
735- MemorySummary
736- Model
737- PartNumber
738- PowerMode
739- PowerRestorePolicy
740- PowerState
741- ProcessorSummary
742- Processors
743- SerialNumber
744- Status
745- Storage
746- SubModel
747- SystemType
748
749### /redfish/v1/Systems/system/EthernetInterfaces/
750
751#### EthernetInterfaceCollection
752
753- Members
754- Members@odata.count
755- Description
756
757### /redfish/v1/Systems/system/FabricAdapters/
758
759#### FabricAdapterCollection
760
761- Members
762- Members@odata.count
763
764### /redfish/v1/Systems/system/FabricAdapters/{FabricAdapterId}/
765
766#### FabricAdapter
767
768- Location
769- Model
770- PartNumber
771- SerialNumber
772- SparePartNumber
773- Status
774
775### /redfish/v1/Systems/system/LogServices/
776
777#### LogServiceCollection
778
779- Description
780- Members
781  - Should default to one member, named SEL
782- Members@odata.count
783
784### /redfish/v1/Systems/system/LogServices/EventLog/
785
786#### LogService
787
788- Actions
789- DateTime
790- DateTimeLocalOffset
791- Description
792- Entries
793- OverWritePolicy
794
795### /redfish/v1/Systems/system/LogServices/EventLog/Entries/
796
797#### LogEntryCollection
798
799- Description
800- Members
801- Members@odata.count
802
803### /redfish/v1/Systems/system/LogServices/EventLog/Entries/{LogEntryId}/
804
805#### LogEntry
806
807- AdditionalDataURI
808- Created
809- EntryType
810- Message
811- Modified
812- Resolved
813- Severity
814
815### /redfish/v1/Systems/system/LogServices/SEL/Entries/
816
817#### LogEntryCollection
818
819- Members
820- Members@odata.count
821- Description
822- @odata.nextLink
823
824### /redfish/v1/Systems/system/LogServices/SEL/Entries/{LogEntryId}/
825
826#### LogEntry
827
828- MessageArgs
829- Severity
830- SensorType
831- Message
832- MessageId
833- Created
834- EntryCode
835- EntryType
836
837### /redfish/v1/Systems/system/Memory/
838
839#### MemoryCollection
840
841- Members
842- Members@odata.count
843
844### /redfish/v1/Systems/system/Memory/{MemoryId}/
845
846#### Memory
847
848- AllowedSpeedsMHz
849- BaseModuleType
850- BusWidthBits
851- CapacityMiB
852- DataWidthBits
853- ErrorCorrection
854- FirmwareRevision
855- Manufacturer
856- Model
857- OperatingSpeedMhz
858- PartNumber
859- RankCount
860- SerialNumber
861- SparePartNumber
862- Status
863
864### /redfish/v1/Systems/system/Memory/{MemoryId}/MemoryMetrics/
865
866#### MemoryMetrics
867
868- Description
869- HealthData
870
871### /redfish/v1/Systems/system/PCIeDevices/
872
873#### PCIeDeviceCollection
874
875- Description
876- Members
877- Members@odata.count
878
879### /redfish/v1/Systems/system/PCIeDevices/{PCIeDevice}/
880
881- Manufacturer
882- Model
883- PartNumber
884- PCIeInterface
885  - LanesInUse
886  - MaxLanes
887  - MaxPCIeType
888  - PCIeType
889- SerialNumber
890- Slot
891  - Lanes
892  - PCIeType
893  - SlotType
894- SparePartNumber
895- Status
896
897### /redfish/v1/Systems/system/Processors/
898
899#### ProcessorCollection
900
901- Members
902  - Should Support CPU1 and CPU2 for dual socket systems
903- Members@odata.count
904
905### /redfish/v1/Systems/system/Processors/{ProcessorId}/
906
907#### Processor
908
909- InstructionSet
910- Manufacturer
911- MaxSpeedMHz
912- PartNumber
913- ProcessorArchitecture
914- ProcessorId
915- ProcessorType
916- SerialNumber
917- Socket
918- SparePartNumber
919- Status
920- ThrottleCauses
921- Throttled
922- TotalCores
923- TotalThreads
924- Version
925
926### /redfish/v1/Systems/system/Storage/
927
928#### StorageCollection
929
930- Members
931- Members@odata.count
932
933### /redfish/v1/Systems/system/Storage/{StorageId}/
934
935#### Storage
936
937- Drives
938- Drives@odata.count
939- Status
940
941### /redfish/v1/Systems/system/Storage/{StorageId}/Drive/{DriveId}/
942
943#### Storage
944
945- CapacityBytes
946- EncryptionStatus
947- Links
948- Status
949
950### /redfish/v1/TaskService/
951
952#### TaskService
953
954- CompletedTaskOverWritePolicy
955- DateTime
956- LifeCycleEventOnTaskStateChange
957- ServiceEnabled
958- Status
959- Tasks
960
961### /redfish/v1/TaskService/Tasks/
962
963#### TaskCollection
964
965- Members
966- Members@odata.count
967
968### /redfish/v1/TelemetryService/
969
970#### TelemetryService
971
972- MaxReports
973- MetricReportDefinitions
974- MetricReports
975- MinCollectionInterval
976- Status
977- Triggers
978- SupportedCollectionFunctions
979
980### /redfish/v1/TelemetryService/MetricReportDefinitions/
981
982#### MetricReportDefinitionCollection
983
984- Members
985- Members@odata.count
986
987### /redfish/v1/TelemetryService/MetricReportDefinitions/{MetricReportDefinitionId}/
988
989#### MetricReportDefinition
990
991- AppendLimit
992- Id
993- MetricReport
994- MetricReportDefinitionEnabled
995- MetricReportDefinitionType
996- Metrics
997- Name
998- ReportActions
999- ReportUpdates
1000- Schedule
1001- Status
1002
1003### /redfish/v1/TelemetryService/MetricReports/
1004
1005#### MetricReportCollection
1006
1007- Members
1008- Members@odata.count
1009
1010### /redfish/v1/TelemetryService/MetricReports/{MetricReportId}/
1011
1012#### MetricReport
1013
1014- Id
1015- MetricReportDefinition
1016- MetricValues
1017- Name
1018- Timestamp
1019
1020### /redfish/v1/TelemetryService/Triggers/
1021
1022#### TriggersCollection
1023
1024- Members
1025- Members@odata.count
1026
1027### /redfish/v1/UpdateService/
1028
1029#### UpdateService
1030
1031- Actions
1032- Description
1033- FirmwareInventory
1034- HttpPushUri
1035- HttpPushUriOptions
1036- MaxImageSizeBytes
1037- ServiceEnabled
1038
1039### /redfish/v1/UpdateService/FirmwareInventory/
1040
1041#### SoftwareInventoryCollection
1042
1043- Members
1044  - Should Support BMC, ME, CPLD and BIOS
1045- Members@odata.count
1046
1047### /redfish/v1/UpdateService/FirmwareInventory/{SoftwareInventoryId}/
1048
1049#### SoftwareInventory
1050
1051- Description
1052- RelatedItem@odata.count
1053- RelatedItem
1054- Status
1055- Updateable
1056- Version
1057
1058[1]: https://www.dmtf.org/standards/redfish
1059[2]: https://redfish.dmtf.org/schemas/v1/LogService.json
1060[3]:
1061  https://github.com/openbmc/docs/blob/master/architecture/redfish-logging-in-bmcweb.md
1062[4]: https://github.com/openbmc/phosphor-logging
1063