<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=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><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:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
tt
        {mso-style-priority:99;
        font-family:"Courier New";}
span.EmailStyle19
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EmailStyle20
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EmailStyle21
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></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-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">A couple questions inline below.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">-Ed<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Hariharasubramanian Ramasubramanian [mailto:hramasub@in.ibm.com]
<br>
<b>Sent:</b> Thursday, February 1, 2018 1:09 AM<br>
<b>To:</b> Michael.E.Brown@dell.com<br>
<b>Cc:</b> alirhas@microsoft.com; Balaji.B.Rao@dell.com; bradleyb@fuzziesquirrel.com; Tanous, Ed <ed.tanous@intel.com>; jwcarman@us.ibm.com; openbmc@lists.ozlabs.org; Paul.Vancil@dell.com; pradeep.kumar36@tcs.com; rolfb@us.ibm.com<br>
<b>Subject:</b> RE: Redfish on OpenBMC<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p><span style="font-size:10.0pt">Hi Michael,</span><br>
<br>
<span style="font-size:10.0pt">Thanks for enumerating the attributes for comparison.</span><br>
<br>
<span style="font-size:10.0pt">I want to list down a few additional criteria that may be evaluated:<br>
<br>
1) Data-Driven Resource Discovery:</span><br>
<span style="font-size:10.0pt">- The Redfish server should ideally build it's resource model from a "config file". This config file could potentially be hand-coded or built out of a "system definition file". The following are examples of system definition files
 for 2 of the systems currently running OpenBMC firmware.<br>
</span><a href="https://raw.githubusercontent.com/open-power/zaius-xml/master/zaius.xml"><span style="font-size:10.0pt">https://raw.githubusercontent.com/open-power/zaius-xml/master/zaius.xml</span></a><br>
<a href="https://raw.githubusercontent.com/open-power/witherspoon-xml/master/witherspoon.xml"><span style="font-size:10.0pt">https://raw.githubusercontent.com/open-power/witherspoon-xml/master/witherspoon.xml</span></a><br>
<span style="font-size:10.0pt">The system architecture (sled vs blade etc.), number of processors, number of fans etc. can be determined from the system definition file to generate the config file.
<span style="color:#1F497D"><o:p></o:p></span></span></p>
<p><span style="color:#1F497D">Are you expecting that the config file would differ significantly from the dbus objects available on openbmc?  My running assumption was that dbus would be the source of truth for dbus objects, and would give the avenues for expansion. 
 Could we simply agree on a dbus schema, then have platforms expose the necessary data through dbus rather than have an extensive config file?  It seems like certain things (sensors for example) we would get the schema for “free” and wouldn’t need to do anything
 redfish specific.  For things like chassis, it might take a couple redfish specific types.</span><br>
<br>
<span style="font-size:10.0pt">The intent is to make the redfish implementation as system agnostic as possible.</span><br>
<span style="font-size:10.0pt"><br>
2) Separation of the Redfish front-end (view) and back-end (infrastructure) layers. The infrastructure API exposed as dbus services would be one of the means to make this separation of concerns.<span style="color:#1F497D"><o:p></o:p></span></span></p>
<p><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Can you elaborate on this?  Do you mean separating daemons?  There are options to expose as dbus interfaces, but the initial performance numbers weren’t great;  And the level of
 control that it gave was a little troubling for complex constructs like sensors.  I’m sure this could be accomplished, but given the level of complexity, my team wasn’t able to build any abstract concepts that worked well in practice.<o:p></o:p></span></p>
<p><br>
<span style="font-size:10.0pt">3) Performance :</span><br>
<span style="font-size:10.0pt">- Runtime memory foot print.This could potentially have a negative impact on "how fast" the server is. Hence the trade-off should consider what can be cached vs what needs to be queried from the infrastructure.<span style="color:#1F497D"><br>
In my spaces, fixed and transient memory usage is generally an order below CPU usage, both at startup and at steady state.  I think there are some tradeoffs to be had here, possibly invalidating caches on property change events, but not actually regenerating
 them.  Things like sensors tend to be <i>very</i> chatty, and coming up with a general purpose caching solution that handles all cases gets a little difficult.
<o:p></o:p></span></span></p>
<p><span style="font-size:10.0pt">- Michael, why did you consider SSL being separately implemented by the Redfish server? Would this be in the scope of the webserver ?</span><br>
<br>
<span style="font-size:10.0pt">4) Eventing: Current version of the Redfish spec has left it open for the OEMs to define the specific Event Messages. i.e. there is no standard / common Event Registry. Redfish server implementation on the OpenBMC should define
 this common Event Registry and perhaps accepted by DMTF. Does the Eventing support filtering of events based on the event type, source resource and the message Id ?<span style="color:#1F497D"><o:p></o:p></span></span></p>
<p><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Agreed.</span><br>
<br>
<span style="font-size:10.0pt">5) Leverage existing open source projects:<br>
- Does the implementation compose existing services and frameworks ? Such as a webserver(say, nginx) and a rest framework (flask).<span style="color:#1F497D"><o:p></o:p></span></span></p>
<p><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">In my testing, flask was a non-starter for performance on low end systems, and while reasonably performant when measured externally with response times, it consumed quite a bit
 of system CPU cycles for most tasks.  Also, the startup time for python was suspect, and difficult to improve on without lots of gymnastics.<o:p></o:p></span></p>
<p><br>
<br>
<span style="font-size:10.0pt">regards,</span><br>
<span style="font-size:10.0pt">Hari !</span><br>
<br>
<br>
<img border="0" width="16" height="16" id="_x0000_i1025" src="cid:image001.gif@01D39B43.111836B0" alt="Inactive hide details for ---01/31/2018 10:17:36 PM---So, I think that the first thing we ought to do is get a survey of the di"><span style="font-size:10.0pt;color:#424282">---01/31/2018
 10:17:36 PM---So, I think that the first thing we ought to do is get a survey of the different implementations tha</span><br>
<br>
<span style="font-size:10.0pt;color:#5F5F5F">From: </span><span style="font-size:10.0pt"><<a href="mailto:Michael.E.Brown@dell.com">Michael.E.Brown@dell.com</a>></span><br>
<span style="font-size:10.0pt;color:#5F5F5F">To: </span><span style="font-size:10.0pt"><<a href="mailto:bradleyb@fuzziesquirrel.com">bradleyb@fuzziesquirrel.com</a>></span><br>
<span style="font-size:10.0pt;color:#5F5F5F">Cc: </span><span style="font-size:10.0pt"><<a href="mailto:alirhas@microsoft.com">alirhas@microsoft.com</a>>, <<a href="mailto:Balaji.B.Rao@dell.com">Balaji.B.Rao@dell.com</a>>, <<a href="mailto:Paul.Vancil@dell.com">Paul.Vancil@dell.com</a>>,
 <<a href="mailto:ed.tanous@intel.com">ed.tanous@intel.com</a>>, <<a href="mailto:rolfb@us.ibm.com">rolfb@us.ibm.com</a>>, <<a href="mailto:jwcarman@us.ibm.com">jwcarman@us.ibm.com</a>>, <<a href="mailto:hramasub@in.ibm.com">hramasub@in.ibm.com</a>>, <<a href="mailto:pradeep.kumar36@tcs.com">pradeep.kumar36@tcs.com</a>>,
 <<a href="mailto:openbmc@lists.ozlabs.org">openbmc@lists.ozlabs.org</a>></span><br>
<span style="font-size:10.0pt;color:#5F5F5F">Date: </span><span style="font-size:10.0pt">01/31/2018 10:17 PM</span><br>
<span style="font-size:10.0pt;color:#5F5F5F">Subject: </span><span style="font-size:10.0pt">RE: Redfish on OpenBMC<span style="color:#1F497D"><o:p></o:p></span></span></p>
<div class="MsoNormal">
<hr size="2" width="100%" noshade="" style="color:#8091A5" align="left">
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
<br>
<br>
<tt><span style="font-size:10.0pt">So, I think that the first thing we ought to do is get a survey of the different implementations that are out there, and establish criteria for judging different implementations.</span></tt><span style="font-size:10.0pt;font-family:"Courier New""><br>
<br>
<tt>Here would be a list of questions I would have for everybody on the list. I think it would probably be best to compile all of these into a wiki page somewhere.</tt><br>
<br>
<tt>  - Do you have a redfish server implementation?</tt><br>
<tt>  - Is it Open Source?</tt><br>
<tt>- If not, are you planning on open sourcing it?</tt><br>
<tt>- What is the license?</tt><br>
<tt>- Is it posted to github or other public source control?</tt><br>
<tt>  - Does it pass the DMTF redfish service validator?</tt><br>
<tt>  - What language is it written in?</tt><br>
<tt>  - How big is it?</tt><br>
<tt>  - Can it be easily extended/re-used by anybody else shipping compliant openbmc implementations?</tt><br>
<tt>- Can you add OEM extensions to existing Redfish Resources without "forking" the codebase?</tt><br>
<tt>- Can you change the implementation for a single Redfish Resource Property without forking?</tt><br>
<tt>- Can you add new Redfish Resources without forking?</tt><br>
<tt>  - Performance</tt><br>
<tt>- How fast is it?</tt><br>
<tt>- Does it implement SSL?</tt><br>
<tt>  - Security</tt><br>
<tt>- What is the security model?</tt><br>
<tt>- Non-root support? Can it run as a non-privileged user?</tt><br>
<tt>- Does it implement basic authentication and the redfish spec x-auth-token authentication?</tt><br>
<tt>- Does it implement the redfish standard privilege map model?</tt><br>
<tt>  - Eventing:</tt><br>
<tt>- For writing a UI on top of redfish, something like SSE is a nice-to-have to avoid polling in the browser. There are a couple of proposed SSE extensions that have not yet been approved.</tt><br>
<tt>- How much work to implement SSE support to do things like watch Property changes?</tt><br>
<tt>- Is the standard redfish eventing model supported?</tt><br>
<tt>- Security model integrated with eventing? Do eventing records get the same security treatment as GET requests?</tt><br>
<tt>  - Development: can it run outside of openbmc?</tt><br>
<tt>  - Special sauce: is there anything not captured above that makes the implementation special in any way?</tt><br>
<br>
<tt>--</tt><br>
<tt>Michael</tt><br>
<br>
<tt>-----Original Message-----</tt><br>
<tt>From: Brad Bishop [<a href="mailto:bradleyb@fuzziesquirrel.com">mailto:bradleyb@fuzziesquirrel.com</a>]
</tt><br>
<tt>Sent: Tuesday, January 30, 2018 7:30 PM</tt><br>
<tt>To: Brown, Michael E <<a href="mailto:Michael_E_Brown@Dell.com">Michael_E_Brown@Dell.com</a>></tt><br>
<tt>Cc: <a href="mailto:alirhas@microsoft.com">alirhas@microsoft.com</a>; Rao, Balaji B <<a href="mailto:Balaji_B_Rao@dell.com">Balaji_B_Rao@dell.com</a>>; Vancil, Paul <<a href="mailto:Paul_Vancil@Dell.com">Paul_Vancil@Dell.com</a>>; Tanous, Ed <<a href="mailto:ed.tanous@intel.com">ed.tanous@intel.com</a>>;
<a href="mailto:rolfb@us.ibm.com">rolfb@us.ibm.com</a>; <a href="mailto:jwcarman@us.ibm.com">
jwcarman@us.ibm.com</a>; Hariharasubramanian Ramasubramanian <<a href="mailto:hramasub@in.ibm.com">hramasub@in.ibm.com</a>>;
<a href="mailto:pradeep.kumar36@tcs.com">pradeep.kumar36@tcs.com</a>; OpenBMC Maillist <<a href="mailto:openbmc@lists.ozlabs.org">openbmc@lists.ozlabs.org</a>></tt><br>
<tt>Subject: Redfish on OpenBMC</tt><br>
<br>
<tt>Hi Michael</tt><br>
<br>
<tt>The project could really use someone to get everyone that has expressed interest in the future of Redfish support in OpenBMC rowing in the same direction.  So thank you for volunteering to lead that conversation at the community call yesterday.</tt><br>
<br>
<tt>I’ve CC’ed everyone that I know of that has expressed an interest.</tt><br>
<tt>OpenBMC community: feel free to speak up if you’d like to be involved and I forgot you.</tt><br>
<br>
<tt>The only thing I’d ask is to please post links to any meetings, minutes, or correspondence here on the list, so everyone can easily keep up with how things are going or jump in to provide feedback.</tt><br>
<br>
<tt>thanks again</tt><br>
<br>
<tt>-brad</tt><br>
</span><br>
<br>
<o:p></o:p></p>
</div>
</div>
</body>
</html>