New IPMI architecture coming soon to an OpenBMC near you

Vernon Mauery vernon.mauery at linux.intel.com
Wed Feb 27 05:01:12 AEDT 2019


Last March at OCP, a new IPMI architecture was discussed. Plans were 
made and a proposal was written up. I started writing up the 
implementation and pushed the first round of patches in June. I 
demonstrated and discussed the changes at the last hackathon and 
answered questions and concerns in person. The series included changes 
in both ipmid and netipmid. I have lost count of the number of patches 
and number of revisions pushed, but they are finally ready to be merged.

For anyone that is interested in looking at the code, here is a link to 
the first patch in the series for ipmid and netipmid:
https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-host-ipmid/+/11273
https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-net-ipmid/+/11707

The changes should start off with very little impact to existing code. 
All of the legacy interfaces have been carefully coded around so they 
can be maintained until the existing handlers and bridges can be 
rewritten using the new APIs.

But new IPMI handlers should be written using the new APIs. After the 
core gets merged, I will start submitting changes to some of the 
existing handlers that can be used as examples for new code and for 
rewriting any other handlers.

This is just the first step. Here is a list of future work if anyone 
wants to step up and lend a hand:
1) Rework existing IPMI handlers to use the new handler API. This 
   includes the automatic parameter extraction as well as the 
   availability of asynchronous/yielding D-Bus calls.
2) Change existing IPMI bridges to use the new D-Bus interface. See the 
   netipmid implementation and the soon-to-be-pushed ipmitool 
   implementation as examples.
3) Reviewing code. The changes above plus all the new changes that are 
   coming into the IPMI projects generate a lot of changes to review. 
   Please have your friends and colleagues review your code. Seeing a 
   +1 from someone else helps.

--Vernon


More information about the openbmc mailing list