libpldm: Added encode API for GetFirmwareParameters cmd

Update agent sends GetFirmwareParameters command to acquire the
component details such as classification types and corresponding
versions of  firmware device. Its defined in DSP0267 Version
1.1.0 sec:10.2.

Tested: Unit tests passed

Signed-off-by: gokulsanker <gokul.sanker.v.g@intel.com>
Change-Id: I52a8b266195c3ed29aca61085518df5756ca09e2
diff --git a/libpldm/tests/libpldm_firmware_update_test.cpp b/libpldm/tests/libpldm_firmware_update_test.cpp
index 489be16..cb0ec5a 100644
--- a/libpldm/tests/libpldm_firmware_update_test.cpp
+++ b/libpldm/tests/libpldm_firmware_update_test.cpp
@@ -62,3 +62,18 @@
                              sizeof(struct pldm_query_device_identifiers_resp),

                          responseMsg.end()));

 }

+

+TEST(GetFirmwareParameters, goodPathEncodeRequest)

+{

+    std::array<uint8_t, sizeof(pldm_msg_hdr)> requestMsg{};

+    auto requestPtr = reinterpret_cast<pldm_msg*>(requestMsg.data());

+    uint8_t instanceId = 0x01;

+

+    auto rc = encode_get_firmware_parameters_req(

+        instanceId, PLDM_GET_FIRMWARE_PARAMETERS_REQ_BYTES, requestPtr);

+    EXPECT_EQ(rc, PLDM_SUCCESS);

+    EXPECT_EQ(requestPtr->hdr.request, PLDM_REQUEST);

+    EXPECT_EQ(requestPtr->hdr.instance_id, instanceId);

+    EXPECT_EQ(requestPtr->hdr.type, PLDM_FWUP);

+    EXPECT_EQ(requestPtr->hdr.command, PLDM_GET_FIRMWARE_PARAMETERS);

+}