We call PldmFramework::getInstanceID() to get a new PLDM instance ID each time someone executes a function that requires us to initiate a PLDM transfer to PHYP.
The panel code then calls pldm_send() to send the PLDM packet it creates. pldm_send() does not tell us if the remote end responded to the call. In case we do not receive a response, the expectation is that the previously generated instance ID be reused and the app not create a new one (the previous ID gets leaked in this case)
This issue is to figure out a solution to this potential issue. Idea include:
- Track each instance ID with a timeout (worse case of 5.4s).
- Move to pldm_send_recv() with an asio wrapper around it, this will ensure we get a response for every send.
We call PldmFramework::getInstanceID() to get a new PLDM instance ID each time someone executes a function that requires us to initiate a PLDM transfer to PHYP.
The panel code then calls pldm_send() to send the PLDM packet it creates. pldm_send() does not tell us if the remote end responded to the call. In case we do not receive a response, the expectation is that the previously generated instance ID be reused and the app not create a new one (the previous ID gets leaked in this case)
This issue is to figure out a solution to this potential issue. Idea include: