Redfish OEM commands in OpenBMC
Ed Tanous
ed.tanous at intel.com
Wed Apr 24 02:27:36 AEST 2019
On 4/23/19 6:51 AM, Brad Bishop wrote:
> On Mon, Apr 22, 2019 at 09:19:37AM -0700, Ed Tanous wrote:
>> I'll answer one of the questions I saw raised on the call: Should we
>> implement pluggable OEM handlers.
>>
>> No. (full stop)
>
> If this is the case, how am I supposed to implement our custom logging
> format, PEL?
Lots of options are available, while staying within the bounds I gave
above. Which you choose is likely constrained by what you're trying to
solve by shoehorning in an older logging format ontop of a specification
that already defines a logging format.
1. Attend the DMTF spec meetings (I believe they still have a logging
working group), and bespell how fantastic PEL logs are, and why they
should be the industry standard. Get industry adoption for a "PelEntry"
and "PelCollection" schema definitions, then implement them in OpenBMC.
If this is done, and it becomes a matter of "they haven't published the
spec yet, but it's final" while waiting for an official DMTF drop, I'm
happy to discuss OpenBMC rollout strategies for bringing the
implementation in ahead of the spec.
2. Use LogEntry and LogService to log your PEL entries like the other
3-4 examples of logging do today. Given that schema is very broad it
allows you to log essentially whatever you want into the message field.
This would also give the easiest time for people to port, and give you a
"standard Redfish" way to download your PEL logs.
3. (Really not preferred) Use one of the other open source Redfish
servers that supports runtime pluggable endpoints. The point here is
mostly that all the servers that defined endpoints that were "pluggable"
the way it was described ended up becoming overly complicated, and IMHO
lost a lot of battles because of said complexity. This is not to say
bmcweb is "simple" by any means.
4. Implement it as an odata endpoint, not necessarily in the Redfish
tree. If your goal isn't industry compliance and acceptance, you might
consider moving a level up, and simply define your endpoints as odata
endpoints under a different URL tree. This would depend on your end
goals, that I don't fully understand at this point.
5. Get a percentage OpenBMC community to agree that PEL logging is the
future, and that's the direction we should start going, then define an
OEM endpoint for it under the OpenBMC namespace that we can all find
ways to implement against the backend.
6. Write a maintained, versioned, multi-system implementation spec for
"PEL over Redfish", that defines a PEL logging definition that could be
implemented by any BMC (not just OpenBMC) and requires OEM endpoints. A
decent example of this is the RSD specification:
https://www.intel.com/content/dam/www/public/us/en/documents/guides/podm-api-spec-v2-4-guide.pdf
Have you asked the same question on Redfish forum? There are
significantly more experts there, and they might have even better ideas
than I do to improve your standards compliance on what you're trying to
implement.
More information about the openbmc
mailing list