pdr: Implement terminus locator PDR for BMC
This commit creates the TL PDR for the BMC. The TID and MCTP EID for
BMC is static, 1 and 8 respectively. BMC PDRs are assigned the value
of 1 for PLDMTerminusHandle. Added the parser for terminus locator
PDR in pldmtool.
Tested:
/tmp/pldmtool platform GetPdr -d 0
nextRecordHandle: 2
responseCount: 19
recordHandle: 1
PDRHeaderVersion: 1
PDRType: 1
recordChangeNumber: 0
dataLength: 9
PLDMTerminusHandle: 1
validity: valid
TID: 1
containerID: 0
terminusLocatorType: MCTP_EID
terminusLocatorValueSize: 1
EID: 8
Change-Id: I596301d6c676b450ae1f2cef872966b4c40d8bae
Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>
Signed-off-by: Sampa Misra <sampmisr@in.ibm.com>
diff --git a/test/libpldmresponder_pdr_effecter_test.cpp b/test/libpldmresponder_pdr_effecter_test.cpp
index a2a7288..390db58 100644
--- a/test/libpldmresponder_pdr_effecter_test.cpp
+++ b/test/libpldmresponder_pdr_effecter_test.cpp
@@ -37,18 +37,18 @@
// Check first PDR
pdr_utils::PdrEntry e;
- auto record1 = pdr::getRecordByHandle(outRepo, 1, e);
- ASSERT_NE(record1, nullptr);
+ auto record2 = pdr::getRecordByHandle(outRepo, 2, e);
+ ASSERT_NE(record2, nullptr);
pldm_state_effecter_pdr* pdr =
reinterpret_cast<pldm_state_effecter_pdr*>(e.data);
- ASSERT_EQ(pdr->hdr.record_handle, 1);
+ ASSERT_EQ(pdr->hdr.record_handle, 2);
ASSERT_EQ(pdr->hdr.version, 1);
ASSERT_EQ(pdr->hdr.type, PLDM_STATE_EFFECTER_PDR);
ASSERT_EQ(pdr->hdr.record_change_num, 0);
ASSERT_EQ(pdr->hdr.length, 23);
- ASSERT_EQ(pdr->terminus_handle, 0);
+ ASSERT_EQ(pdr->terminus_handle, BmcPldmTerminusHandle);
ASSERT_EQ(pdr->effecter_id, 1);
ASSERT_EQ(pdr->entity_type, 33);
ASSERT_EQ(pdr->entity_instance, 0);
@@ -70,17 +70,17 @@
ASSERT_EQ(dbusMappings1[0].objectPath, "/foo/bar");
// Check second PDR
- auto record2 = pdr::getRecordByHandle(outRepo, 2, e);
- ASSERT_NE(record2, nullptr);
+ auto record3 = pdr::getRecordByHandle(outRepo, 3, e);
+ ASSERT_NE(record3, nullptr);
pdr = reinterpret_cast<pldm_state_effecter_pdr*>(e.data);
- ASSERT_EQ(pdr->hdr.record_handle, 2);
+ ASSERT_EQ(pdr->hdr.record_handle, 3);
ASSERT_EQ(pdr->hdr.version, 1);
ASSERT_EQ(pdr->hdr.type, PLDM_STATE_EFFECTER_PDR);
ASSERT_EQ(pdr->hdr.record_change_num, 0);
ASSERT_EQ(pdr->hdr.length, 24);
- ASSERT_EQ(pdr->terminus_handle, 0);
+ ASSERT_EQ(pdr->terminus_handle, BmcPldmTerminusHandle);
ASSERT_EQ(pdr->effecter_id, 2);
ASSERT_EQ(pdr->entity_type, 100);
ASSERT_EQ(pdr->entity_instance, 0);
@@ -136,12 +136,12 @@
// Check first PDR
pdr_utils::PdrEntry e;
- auto record = pdr::getRecordByHandle(outRepo, 3, e);
+ auto record = pdr::getRecordByHandle(outRepo, 4, e);
ASSERT_NE(record, nullptr);
pldm_numeric_effecter_value_pdr* pdr =
reinterpret_cast<pldm_numeric_effecter_value_pdr*>(e.data);
- EXPECT_EQ(pdr->hdr.record_handle, 3);
+ EXPECT_EQ(pdr->hdr.record_handle, 4);
EXPECT_EQ(pdr->hdr.version, 1);
EXPECT_EQ(pdr->hdr.type, PLDM_NUMERIC_EFFECTER_PDR);
EXPECT_EQ(pdr->hdr.record_change_num, 0);
@@ -207,4 +207,4 @@
containerId, stateSetId, true);
ASSERT_EQ(effecterId, PLDM_INVALID_EFFECTER_ID);
pldm_pdr_destroy(inPDRRepo);
-}
+}
\ No newline at end of file