<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Aptos;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
font-size:11.0pt;
font-family:"Aptos",sans-serif;
mso-ligatures:standardcontextual;
mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#467886;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Aptos",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:11.0pt;
mso-fareast-language:EN-US;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:223493061;
mso-list-template-ids:1999303360;}
@list l0:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:72.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:"Courier New";
mso-bidi-font-family:"Times New Roman";}
@list l1
{mso-list-id:309940031;
mso-list-template-ids:-306837962;}
@list l1:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:72.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:"Courier New";
mso-bidi-font-family:"Times New Roman";}
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-IN" link="#467886" vlink="#96607D" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">I’d like to get your input on the preferred approach for adding support for the Redfish Sensor properties PeakReading and PeakReadingTime. Per the Redfish schema, the Sensor resource should also support the ResetMetrics action for the PeakReading
property.<br>
<a href="https://redfish.dmtf.org/schemas/v1/Sensor.v1_2_0.yaml">https://redfish.dmtf.org/schemas/v1/Sensor.v1_2_0.yaml</a><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Context: We have a GPU device that provides PeakReading and PeakReadingTime for its Power sensor via an MCTP VDM command. We plan to implement support in the dbus-sensors app nvidiagpusensor.
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I’ve outlined a few options below. If there’s a better alternative, please suggest.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<ol style="margin-top:0cm" start="1" type="1">
<li class="MsoNormal" style="mso-list:l0 level1 lfo2">Use xyz.openbmc_project.Common.Statistics PDI<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoNormal" style="mso-list:l0 level2 lfo2">Use the Statistics interface to represent different sensor value statistics, with PeakReading as one such statistic.<o:p></o:p></li><li class="MsoNormal" style="mso-list:l0 level2 lfo2">PDI patch: https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-interfaces/+/78348<o:p></o:p></li><li class="MsoNormal" style="mso-list:l0 level2 lfo2">ResetMetrics would be supported by implementing a DBus interface at the same object path.<o:p></o:p></li><li class="MsoNormal" style="mso-list:l0 level2 lfo2">Open question: which phosphor DBus interface to use for ResetMetrics?<o:p></o:p></li></ul>
<li class="MsoNormal" style="mso-list:l0 level1 lfo2">Use xyz.openbmc_project.Telemetry.Report<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoNormal" style="mso-list:l0 level2 lfo2">Configure OperationType as Maximum.<o:p></o:p></li><li class="MsoNormal" style="mso-list:l0 level2 lfo2">This interface already supports the ResetMetrics action.<o:p></o:p></li></ul>
<li class="MsoNormal" style="mso-list:l0 level1 lfo2">Treat PeakReading as a standard sensor (Sensor.Value PDI)<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoNormal" style="mso-list:l0 level2 lfo2">Expose a DBus object under sensors/power/<sensor_name> with a well-known name (e.g., peak_...).<o:p></o:p></li><li class="MsoNormal" style="mso-list:l0 level2 lfo2">The association to the “actual” sensor would be handled in bmcweb.<o:p></o:p></li><li class="MsoNormal" style="mso-list:l0 level2 lfo2">ResetMetrics would be supported by implementing a DBus interface at the same object path.<o:p></o:p></li></ul>
<li class="MsoNormal" style="mso-list:l0 level1 lfo2">Same as option 3, but use a dedicated namespace<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoNormal" style="mso-list:l0 level2 lfo2">Define a new path: sensor/power/peak/<sensor_name>.<o:p></o:p></li><li class="MsoNormal" style="mso-list:l0 level2 lfo2">The association to the “actual” sensor would be handled in bmcweb.<o:p></o:p></li><li class="MsoNormal" style="mso-list:l0 level2 lfo2">ResetMetrics would be supported by implementing a DBus interface at the same object path.<o:p></o:p></li></ul>
<li class="MsoNormal" style="mso-list:l0 level1 lfo2">Use an OEM PDI<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoNormal" style="mso-list:l0 level2 lfo2">Implement PeakReading/PeakReadingTime via an OEM interface.<o:p></o:p></li><li class="MsoNormal" style="mso-list:l0 level2 lfo2">ResetMetrics would be supported by implementing a DBus interface at the same object path.<o:p></o:p></li></ul>
</ol>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Looking forward to your feedback on the preferred approach.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Harshit.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>