host-bmc: Implement fabric adapter interface

Adding support to host fabric adapter dbus interface.  Based on the PDRs
received from remote PLDM terminus, PLDM hosts the dbus interface based
on the entity type.  The Fabric adapter interface is defined at [1].

Tested:
   Functional test passed

[1]: https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/yaml/xyz/openbmc_project/Inventory/Item/FabricAdapter.interface.yaml

Change-Id: I72a7e3198dbbf78521eeeb37b926562064f733b9
Signed-off-by: Archana Kakani <archana.kakani@ibm.com>
diff --git a/host-bmc/dbus/custom_dbus.hpp b/host-bmc/dbus/custom_dbus.hpp
index 2d4ac6b..e292462 100644
--- a/host-bmc/dbus/custom_dbus.hpp
+++ b/host-bmc/dbus/custom_dbus.hpp
@@ -7,6 +7,7 @@
 #include "common/utils.hpp"
 #include "connector.hpp"
 #include "cpu_core.hpp"
+#include "fabric_adapter.hpp"
 #include "fan.hpp"
 #include "motherboard.hpp"
 #include "pcie_device.hpp"
@@ -167,6 +168,13 @@
      */
     void implementConnecterInterface(const std::string& path);
 
+    /** @brief Implement Fabric Adapter Interface
+     *
+     *  @param[in] path - The object path
+     *
+     */
+    void implementFabricAdapter(const std::string& path);
+
     /** @brief Implement Asset Interface
      *
      *  @param[in] path - The object path
@@ -192,6 +200,8 @@
     std::unordered_map<ObjectPath, std::unique_ptr<PCIeDevice>> pcieDevice;
     std::unordered_map<ObjectPath, std::unique_ptr<PCIeSlot>> pcieSlot;
     std::unordered_map<ObjectPath, std::unique_ptr<PowerSupply>> powersupply;
+    std::unordered_map<ObjectPath, std::unique_ptr<FabricAdapter>>
+        fabricAdapter;
     std::unordered_map<ObjectPath, std::unique_ptr<Cable>> cable;
     std::unordered_map<ObjectPath, std::unique_ptr<Motherboard>> motherboard;
     std::unordered_map<ObjectPath, std::unique_ptr<Fan>> fan;