libpldmresponder comments
Deepak Kodihalli
dkodihal at linux.vnet.ibm.com
Sat Oct 5 00:28:13 AEST 2019
On 04/10/19 7:26 PM, Supreeth Venkatesh wrote:
> Hello Deepak/all,
>
> Sorry for the late comments/feedback.
No problem, thanks for the feedback Supreeth!
> I was looking at porting libpldmresponder and libpldm to an Arm based
> platform.
libpldm - sure, it is meant to be portable across OpenBMC, but
libpldmresponder is not :)
> These are few observations with the design, some of them were discussed
> during OSF OpenBMC Hackathon, summarizing them here:
>
> Assumption was that libpldmresponder can be easily ported to Host/other
> Satellite/Service Management controller,
libpldmresponder was not meant to be ported outside OpenBMC - it's the
OpenBMC implementation of the BMC as a PLDM responder.
> However, in the current design,
>
> 1. libpldmresponder implements standard Commands/APIs defined by PLDM
> specifications in C++.
> 2. libpldmresponder PDR, BIOS config structures are defined by PLDM
> specifications, However, the library uses Json format, thus making
> JSON parser mandatory for
> Host/Service management controller firmware.
>
> 3. libpldmresponder has DBUS/other OpenBMC implementation dependencies,
> thus making portability harder. > 4. I guess the expectation when we started with the design was that
> there will be one **single** library which will handle all pldm
> requests/responses and
>
> upper layer application/Daemon will call the APIs provided by PLDM
> library to implement use cases as they fit.
https://github.com/openbmc/docs/blob/master/designs/pldm-stack.md makes
the distinction between a portable libpldm (which handles the protocol
encode/decode), and an OpenBMC specific responder implementation.
> 5. Libpldm also has dependencies on OpenBMC structures/DBUS objects,
> making it a little harder to port.
No, libpldm has no OpenBMC dependencies. It for example is used by IBM's
host firmware stacks today without any code changes. Can you point me to
where you see D-Bus dependencies in libpldm? Do you just mean you find
this hard to build outside an OpenBMC environment?
> Please let me know, how I can help fix some of these, so that it is
> easily portable.
No change should be needed to libpldm code, it should already be
portable like noted earlier. As far as the libpldmresponder is
considered, like we discussed at the OSFC, one thing we could do is to
write a responder API layer, the implementation of which is platform
(for eg OpenBMC/ARM) specific. Would you like to propose a design update
for this to the existing document? I think we need to understand the
usefulness of such a layer though. I mean for example if you consider a
PLDM command along the lines of ReadSensor, such a sensor maybe a D-Bus
object on OpenBMC and something else on the ARM platform, those
specifics *must* be implemented on the platform, so what would the
portable layer consist of? Those details would be good to capture in the
design doc.
> Thanks,
>
> Supreeth
>
> IMPORTANT NOTICE: The contents of this email and any attachments are
> confidential and may also be privileged. If you are not the intended
> recipient, please notify the sender immediately and do not disclose the
> contents to any other person, use it for any purpose, or store or copy
> the information in any medium. Thank you.
More information about the openbmc
mailing list