Failure to fetch SDR from Supermicro SYS-122C-TN
Brought to you by:
cminyard
OpenIPMI was failing to fetch the SDR with GetSDR from a brand new Supermicro system. The initial error seen was 0xC3 timeout. Digging in with "--dmsg" and "--drawmsg" with ipmish revealed repeated GetSDR calls failing with a "Decryption failed" message. I instrumented lib/aes_cbc.c and found this BMC was using padlen=16, violating the IPMI spec. I've reported it upstream, but have also created a patch for OpenIPMI to handle the invalid padlen with a warning vs failing completely. With this patch I can successfully use OpenIPMI with the new Supermicro system.
Sigh. This change is fine, but a few things that need to be adjusted:
Won't this spew out logs when messages come in? To avoid that, could you add a boolean to the ipmi_con_t structure and only report this once per connection?
This needs a comment saying something like: This should be <=16, but some broken systems send a pad of 16, so accommodate those systems and log it once.
Need to leave breadcrumbs around so people can figure out why things are the way they are.
Thanks.
Here's an updated patch addressing your requests. Thanks!
Ok applied, thank you.