Add tracing when the BMC PLDM daemon issues GetPDR to host
After PDR trace enabled
Sending Msg:
80 02 51 18 00 00 00 00 00 00 00 01 ff ff 00 00
Receiving Msg:
00 02 51 00 19 00 00 00 00 00 00 00 05 14 00 18 00 00 00 01 14 00 00 0a 00 02 00 40 01 43 00 01 00 01 00
Sending Msg:
80 02 51 19 00 00 00 00 00 00 00 01 ff ff 00 00
Receiving Msg:
00 02 51 00 1a 00 00 00 00 00 00 00 05 14 00 19 00 00 00 01 14 00 00 0a 00 02 00 41 01 43 00 02 00 01 00
Sending Msg:
80 02 51 1a 00 00 00 00 00 00 00 01 ff ff 00 00
Receiving Msg:
00 02 51 00 1b 00 00 00 00 00 00 00 05 14 00 1a 00 00 00 01 14 00 00 0a 00 02 00 c0 20 42 00 01 00 01 00
Sending Msg:
80 02 51 1b 00 00 00 00 00 00 00 01 ff ff 00 00
Receiving Msg:
00 02 51 00 1c 00 00 00 00 00 00 00 05 14 00 1b 00 00 00 01 14 00 00 0a 00 02 00 c2 20 42 00 02 00 01 00
Signed-off-by: Sridevi Ramesh <sridevra@in.ibm.com>
Change-Id: I464de3c128054b381dbba6199f2525ed2b327195
diff --git a/host-bmc/host_pdr_handler.cpp b/host-bmc/host_pdr_handler.cpp
index 2e8a0a3..e6bf7d7 100644
--- a/host-bmc/host_pdr_handler.cpp
+++ b/host-bmc/host_pdr_handler.cpp
@@ -25,11 +25,11 @@
sdeventplus::Event& event, pldm_pdr* repo,
const std::string& eventsJsonsDir,
pldm_entity_association_tree* entityTree,
- Requester& requester) :
+ Requester& requester, bool verbose) :
mctp_fd(mctp_fd),
mctp_eid(mctp_eid), event(event), repo(repo),
stateSensorHandler(eventsJsonsDir), entityTree(entityTree),
- requester(requester)
+ requester(requester), verbose(verbose)
{
fs::path hostFruJson(fs::path(HOST_JSONS_DIR) / fruJson);
if (fs::exists(hostFruJson))
@@ -135,6 +135,11 @@
<< std::endl;
return;
}
+ if (verbose)
+ {
+ std::cout << "Sending Msg:" << std::endl;
+ printBuffer(requestMsg, verbose);
+ }
uint8_t* responseMsg = nullptr;
size_t responseMsgSize{};
@@ -162,6 +167,15 @@
responsePtr, responseMsgSize - sizeof(pldm_msg_hdr),
&completionCode, &nextRecordHandle, &nextDataTransferHandle,
&transferFlag, &respCount, nullptr, 0, &transferCRC);
+
+ std::vector<uint8_t> responsePDRMsg;
+ responsePDRMsg.resize(responseMsgSize);
+ memcpy(responsePDRMsg.data(), responsePtr, responsePDRMsg.size());
+ if (verbose)
+ {
+ std::cout << "Receiving Msg:" << std::endl;
+ printBuffer(responsePDRMsg, verbose);
+ }
if (rc != PLDM_SUCCESS)
{
std::cerr << "Failed to decode_get_pdr_resp, rc = " << rc