Implementation of FabricAdapter schema in bmcweb

This commit implements FabricAdapter and FabricAdapter collection
schema. This code assumes all FabricAdapters are under
/redfish/v1/Systems/system like we do for Memory and Processors.

The schema can be used to publish inventory properties for FRUs
which can be modelled as Fabric adapters.

As a current use case, this schema is required to link ports on
fabric adapters back to the system.

A FabricAdapter represents the physical fabric adapter capable of
connecting to an interconnect fabric.
Examples include but are not limited to Ethernet, NVMe over Fabrics,
Gen-Z, and SAS fabric adapters.

Tested: Manually tested on the system, Run Redfish validator. Found no
error.

{
  "@odata.id": "/redfish/v1/Systems/system/FabricAdapters",
  "@odata.type": "#FabricAdapterCollection.FabricAdapterCollection",
  "Members": [
    {
      "@odata.id": "/redfish/v1/Systems/system/FabricAdapters/disk_backplane0"
    },
    {
      "@odata.id": "/redfish/v1/Systems/system/FabricAdapters/disk_backplane1"
    },
    {
      "@odata.id": "/redfish/v1/Systems/system/FabricAdapters/pcie_card0"
    },
    {
      "@odata.id": "/redfish/v1/Systems/system/FabricAdapters/pcie_card3"
    },
    {
      "@odata.id": "/redfish/v1/Systems/system/FabricAdapters/pcie_card4"
    },
    {
      "@odata.id": "/redfish/v1/Systems/system/FabricAdapters/pcie_card8"
    },
    {
      "@odata.id": "/redfish/v1/Systems/system/FabricAdapters/pcie_card10"
    },
    {
      "@odata.id": "/redfish/v1/Systems/system/FabricAdapters/pcie_card11"
    }
  ],
  "Members@odata.count": 8,
  "Name": "Fabric Adapter Collection"
}

{
  "@odata.id": "/redfish/v1/Systems/system/FabricAdapters/pcie_card11",
  "@odata.type": "#FabricAdapter.v1_0_0.FabricAdapter",
  "Id": "pcie_card11",
  "Name": "Fabric Adapter"
}

Signed-off-by: sunny srivastava <sunnsr25@in.ibm.com>
Change-Id: I4d3bc31a6f0036c262c0e30481d0da4aaf59b5ab
Signed-off-by: Lakshmi Yadlapati <lakshmiy@us.ibm.com>
diff --git a/redfish-core/include/redfish.hpp b/redfish-core/include/redfish.hpp
index e98a04c..cf38510 100644
--- a/redfish-core/include/redfish.hpp
+++ b/redfish-core/include/redfish.hpp
@@ -23,6 +23,7 @@
 #include "environment_metrics.hpp"
 #include "ethernet.hpp"
 #include "event_service.hpp"
+#include "fabric_adapters.hpp"
 #include "hypervisor_system.hpp"
 #include "log_services.hpp"
 #include "manager_diagnostic_data.hpp"
@@ -213,6 +214,8 @@
         requestRoutesEventService(app);
         requestRoutesEventDestinationCollection(app);
         requestRoutesEventDestination(app);
+        requestRoutesFabricAdapters(app);
+        requestRoutesFabricAdapterCollection(app);
         requestRoutesSubmitTestEvent(app);
 
         hypervisor::requestRoutesHypervisorSystems(app);