Request/response matching for bridged and double-bridged requests is broken.
This patch reworks the sending and command construction code, and fixes the response matching problems.
Since the polling code is retried several times, it was moved into a separate function in order to make the code more readable.
Dmitry, please, review your code formatting in this and previous bug, I think.
I haven't tested/run through Coverity those changes as I'm waiting for iface safe reopen to be in first.
Corrected some formatting issues.
How did you go about testing this change? Was it tested on more than one vendor platform that supports bridging?
We have several PigeonPoint-based products, implementing PICMG 3.0, AMC.0 and MTCA.0 IPMI-based specification. These are the only products where the LAN+ bridging and double beidging was tested on.
This has been committed into git. Thanks.
This change breaks IPMI on HPE Moonshot systems.
I bisected from 1.8.15 (good) to 1.8.18 (bad) and this change was first when I got:
Running Get PICMG Properties my_addr 0x20, transit 0, target 0x20
Discovered PICMG Extension Version 2.3
IPMI Request Match NOT FOUND
IPMI Request Match NOT FOUND
IPMI Request Match NOT FOUND
IPMI Request Match NOT FOUND
IPMI Request Match NOT FOUND
IPMI Request Match NOT FOUND
IPMI Request Match NOT FOUND
IPMI Request Match NOT FOUND
Unable to get Chassis Power Status
Instead of:
Discovered IPMB-0 address 0x20
Discovered Target IPMB-0 address 0x72
Chassis Power is on