Add fix for GetChannelPaylodSupport
Currently `getChannelName` throws when the channel number
is invalid.
Because of which the error reported is Unspecified.
Example:
root@gb200nvl-obmc:~# ipmitool raw 0x06 0x4E 0x4
[1] Unable to send RAW command (channel=0x0 netfn=0x6 lun=0x0 cmd=0x4e rsp=0xff): Unspecified error
Added a patch to handle this gracefully
Tested:
Tested on gb200nvl-obmc platform
root@gb200nvl-obmc:~# ipmitool raw 0x06 0x4E 0x4
[2] Unable to send RAW command (channel=0x0 netfn=0x6 lun=0x0 cmd=0x4e rsp=0xcc): Invalid data field in request
Change-Id: Ibc9981d5e7143311f28bb9191fed4d68cd81356b
Signed-off-by: Prithvi Pai <ppai@nvidia.com>
diff --git a/dcmihandler.cpp b/dcmihandler.cpp
index e6cb102..c02c407 100644
--- a/dcmihandler.cpp
+++ b/dcmihandler.cpp
@@ -517,6 +517,12 @@
ipmi::Context::ptr& ctx)
{
auto ethdevice = ipmi::getChannelName(ethernetDefaultChannelNum);
+ if (ethdevice.empty())
+ {
+ lg2::error("Channel name does not exist for channel {CHANNEL}",
+ "CHANNEL", ethernetDefaultChannelNum);
+ return std::nullopt;
+ }
ipmi::DbusObjectInfo ethernetObj{};
boost::system::error_code ec = ipmi::getDbusObject(
ctx, ethernetIntf, networkRoot, ethdevice, ethernetObj);