diff options
-rw-r--r-- | Redfish.md | 5 | ||||
-rw-r--r-- | redfish-core/lib/pcie.hpp | 11 |
2 files changed, 15 insertions, 1 deletions
diff --git a/Redfish.md b/Redfish.md index cc714eb349..3f65de81df 100644 --- a/Redfish.md +++ b/Redfish.md @@ -768,6 +768,11 @@ other. - Members - Members@odata.count +### /redfish/v1/Systems/system/PCIeDevices/{PCIeDevice}/ + +- PCIeInterface + - LanesInUse + ### /redfish/v1/Systems/system/Processors/ #### ProcessorCollection diff --git a/redfish-core/lib/pcie.hpp b/redfish-core/lib/pcie.hpp index c91e52dd48..77afd0acd6 100644 --- a/redfish-core/lib/pcie.hpp +++ b/redfish-core/lib/pcie.hpp @@ -192,11 +192,12 @@ inline void requestRoutesSystemPCIeDevice(App& app) const std::string* manufacturer = nullptr; const std::string* deviceType = nullptr; const std::string* generationInUse = nullptr; + const size_t* lanesInUse = nullptr; const bool success = sdbusplus::unpackPropertiesNoThrow( dbus_utils::UnpackErrorPrinter(), pcieDevProperties, "Manufacturer", manufacturer, "DeviceType", deviceType, - "GenerationInUse", generationInUse); + "LanesInUse", lanesInUse, "GenerationInUse", generationInUse); if (!success) { @@ -204,6 +205,14 @@ inline void requestRoutesSystemPCIeDevice(App& app) return; } + // The default value of LanesInUse is 0, and the field will be + // left as off if it is a default value. + if (lanesInUse != nullptr && *lanesInUse != 0) + { + asyncResp->res.jsonValue["PCIeInterface"]["LanesInUse"] = + *lanesInUse; + } + if (generationInUse != nullptr) { std::optional<pcie_device::PCIeTypes> redfishGenerationInUse = |