diff options
author | Myung Bae <myungbae@us.ibm.com> | 2022-11-17 02:40:40 +0300 |
---|---|---|
committer | Myung Bae <myungbae@us.ibm.com> | 2023-01-19 01:41:37 +0300 |
commit | 703f67418ae1915e49ac32d475de872da3ab2819 (patch) | |
tree | d824bac5faeb9cbf69037d8b3f65da97f7330212 /redfish-core/lib | |
parent | 3ccb3adb9a14783f6bef601506de9f8bcae22d51 (diff) | |
download | bmcweb-703f67418ae1915e49ac32d475de872da3ab2819.tar.xz |
Add Get for PCIe property LanesInUse
Added Redfish property 'LanesInUse' to PCIeDevices under
redfish/v1/Systems. LanesInUse maps to dbus LanesInUse property for the
Inventory.Item.PCIeDevice interface. Note: GUI might map this property
to 'LinkWidth'
Tested:
1) Redfish validator passed
2) Curl testing
curl -k <token> \
https://$bmc/redfish/v1/Systems/system/PCIeDevices/pcie_card8
{
"@odata.id": "/redfish/v1/Systems/system/PCIeDevices/pcie_card8",
"@odata.type": "#PCIeDevice.v1_9_0.PCIeDevice",
...
"PCIeInterface": {
"LanesInUse": 16,
"PCIeType": "Gen4"
},
...
}
Signed-off-by: Myung Bae <myungbae@us.ibm.com>
Change-Id: I896abe44f55414f25d01c5a93a31bb585264657e
Diffstat (limited to 'redfish-core/lib')
-rw-r--r-- | redfish-core/lib/pcie.hpp | 11 |
1 files changed, 10 insertions, 1 deletions
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 = |