pldmtool: PDR: add parsers
Add parsers for FRU record set and entity association type PDRs.
Tested: Following is an example output:
pldmtool platform GetPDR -d 6
FRU Record Set
Parsed Response Msg:
nextRecordHandle: 7
responseCount: 20
recordHandle: 6
PDRHeaderVersion: 1
PDRType: 20
recordChangeNumber: 0
dataLength: 10
PLDMTerminusHandle: 0
FRURecordSetIdentifier: 4
entityType: Chassis front panel board (control panel)
entityInstanceNumber: 2
containerID: 1
pldmtool platform GetPDR -d 10
Entity Association
Parsed Response Msg:
nextRecordHandle: 0
responseCount: 56
recordHandle: 10
PDRHeaderVersion: 1
PDRType: 15
recordChangeNumber: 0
dataLength: 46
containerID: 1
associationType: Physical
containerEntityType: System Board
containerEntityInstanceNumber: 1
containerEntityContainerID: 0
containedEntityCount: 6
containedEntityType[1]: Chassis front panel board (control panel)
containedEntityInstanceNumber[1]: 1
containedEntityContainerID[1]: 1
containedEntityType[2]: Chassis front panel board (control panel)
containedEntityInstanceNumber[2]: 2
containedEntityContainerID[2]: 1
containedEntityType[3]: Management Controller
containedEntityInstanceNumber[3]: 1
containedEntityContainerID[3]: 1
containedEntityType[4]: 208
containedEntityInstanceNumber[4]: 1
containedEntityContainerID[4]: 1
containedEntityType[5]: Power converter
containedEntityInstanceNumber[5]: 1
containedEntityContainerID[5]: 1
Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
Change-Id: I475976982b7e105680f6539b7f3a706aaea444e3
diff --git a/libpldm/platform.h b/libpldm/platform.h
index ba0854c..82c2b28 100644
--- a/libpldm/platform.h
+++ b/libpldm/platform.h
@@ -9,6 +9,7 @@
#include <stdint.h>
#include "base.h"
+#include "pdr.h"
/* Maximum size for request */
#define PLDM_SET_STATE_EFFECTER_STATES_REQ_BYTES 19
@@ -174,6 +175,18 @@
uint16_t length;
} __attribute__((packed));
+/** @struct pldm_pdr_entity_association
+ *
+ * Structure representing PLDM Entity Association PDR
+ */
+struct pldm_pdr_entity_association {
+ uint16_t container_id;
+ uint8_t association_type;
+ pldm_entity container;
+ uint8_t num_children;
+ pldm_entity children[1];
+} __attribute__((packed));
+
/** @struct pldm_pdr_fru_record_set
*
* Structure representing PLDM FRU record set PDR