Redfish on OpenBMC

Yugi Mani yupalani at
Wed Feb 7 14:43:24 AEDT 2018

On 01/31/2018 10:17 PM Michael Brown <Michael.E.Brown at> wrote:
> Do you have a redfish server implementation?

> Is it Open Source?
Not yet, but will be open sourced after LF transfer

> If not, are you planning on open sourcing it?

> What is the license?

> Is it posted to github or other public source control?
Not yet, after LF transfer

> Does it pass the DMTF redfish service validator?
In progress. Validator tool ran but didn’t generate a report and 
conformance tool need to be ported to Python 2.7.

> What language is it written in?
Python 2.7

> How big is it?
Size is approximately 650KB (CherryPy + Bottle), 
not including python, schema and templates

> Can it be easily extended/re-used by anybody else shipping 
> compliant openbmc implementations?
It is integrated with a fork of OpenBMC and being shipped 
in few expansion box products at Microsoft.

> Can you add OEM extensions to existing Redfish Resources 
> without "forking" the codebase?
No, it is a flat structure now and any customization would require forking

> Can you change the implementation for a single Redfish Resource Property 
> without forking?

> Can you add new Redfish Resources without forking?

> Performance
> How fast is it?
Synchronous API for Sensors and SEL takes longer to respond. 
It takes about 19 seconds for 100 sensors and more than 6 minutes for 4000 events. 
10 concurrent requests can make them 4-5 times slower than usual. 
Asynchronous API for BMC and component firmware update takes 5-10 minutes as expected. 
These results are on AST2400. 

> Does it implement SSL?

> Security
> What is the security model?
Basic authentication (user/pwd)

> Non-root support? Can it run as a non-privileged user?
Good question. Currently it is running as root, we haven’t tried non-root though. 
Since you asked, we might as well would like to start this service as non-root. 

> Does it implement basic authentication and the redfish spec x-auth-token authentication?
Basic auth only. Token auth is not a requirement for us at this time. 

> Does it implement the redfish standard privilege map model?
We have one user only. We don’t have account service, role and privilege. 
Multiple users and roles are not a requirement for us at this time. 

> Eventing:
> 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.
> How much work to implement SSE support to do things like watch Property changes?
> Is the standard redfish eventing model supported?
> Security model integrated with eventing? Do eventing records get the same security treatment as GET requests?
EventService, Server-Sent Event and UI are not a requirement for us. 
If those were to be supported, an option to enable/disable 
these features as needed at build-time would be better.

> Development: can it run outside of openbmc?
Implemented using Python 2.7, so should run on any platform. 
But it also tries to access local files and dbus objects. 
It likely would require some changes to run outside of openbmc.


More information about the openbmc mailing list