diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ipmiblob/blob_handler.cpp | 2 | ||||
-rw-r--r-- | src/ipmiblob/blob_handler.hpp | 3 | ||||
-rw-r--r-- | src/ipmiblob/ipmi_handler.cpp | 10 | ||||
-rw-r--r-- | src/ipmiblob/ipmi_handler.hpp | 3 | ||||
-rw-r--r-- | src/ipmiblob/ipmi_interface.hpp | 5 | ||||
-rw-r--r-- | src/ipmiblob/test/ipmi_interface_mock.hpp | 5 |
6 files changed, 17 insertions, 11 deletions
diff --git a/src/ipmiblob/blob_handler.cpp b/src/ipmiblob/blob_handler.cpp index 039b7e0..6adbe89 100644 --- a/src/ipmiblob/blob_handler.cpp +++ b/src/ipmiblob/blob_handler.cpp @@ -67,7 +67,7 @@ std::vector<std::uint8_t> try { - reply = ipmi->sendPacket(request); + reply = ipmi->sendPacket(ipmiOEMNetFn, ipmiOEMBlobCmd, request); } catch (const IpmiException& e) { diff --git a/src/ipmiblob/blob_handler.hpp b/src/ipmiblob/blob_handler.hpp index 68708d8..c57b11d 100644 --- a/src/ipmiblob/blob_handler.hpp +++ b/src/ipmiblob/blob_handler.hpp @@ -130,4 +130,7 @@ class BlobHandler : public BlobInterface std::unique_ptr<IpmiInterface> ipmi; }; +constexpr int ipmiOEMNetFn = 46; +constexpr int ipmiOEMBlobCmd = 128; + } // namespace ipmiblob diff --git a/src/ipmiblob/ipmi_handler.cpp b/src/ipmiblob/ipmi_handler.cpp index 568b86c..682fe45 100644 --- a/src/ipmiblob/ipmi_handler.cpp +++ b/src/ipmiblob/ipmi_handler.cpp @@ -65,17 +65,15 @@ void IpmiHandler::open() } std::vector<std::uint8_t> - IpmiHandler::sendPacket(std::vector<std::uint8_t>& data) + IpmiHandler::sendPacket(std::uint8_t netfn, std::uint8_t cmd, + std::vector<std::uint8_t>& data) { if (fd < 0) { open(); } - constexpr int ipmiOEMNetFn = 46; constexpr int ipmiOEMLun = 0; - /* /openbmc/phosphor-host-ipmid/blob/master/host-ipmid/oemopenbmc.hpp */ - constexpr int ipmiOEMBlobCmd = 128; constexpr int fifteenMs = 15 * 1000; constexpr int ipmiReadTimeout = fifteenMs; constexpr int ipmiResponseBufferLen = IPMI_MAX_MSG_LENGTH; @@ -98,8 +96,8 @@ std::vector<std::uint8_t> request.msgid = sequence++; request.msg.data = reinterpret_cast<unsigned char*>(data.data()); request.msg.data_len = data.size(); - request.msg.netfn = ipmiOEMNetFn; - request.msg.cmd = ipmiOEMBlobCmd; + request.msg.netfn = netfn; + request.msg.cmd = cmd; struct ipmi_recv reply; reply.addr = reinterpret_cast<unsigned char*>(&systemAddress); diff --git a/src/ipmiblob/ipmi_handler.hpp b/src/ipmiblob/ipmi_handler.hpp index 34177ae..21d0fc7 100644 --- a/src/ipmiblob/ipmi_handler.hpp +++ b/src/ipmiblob/ipmi_handler.hpp @@ -37,7 +37,8 @@ class IpmiHandler : public IpmiInterface * @throws IpmiException on failure. */ std::vector<std::uint8_t> - sendPacket(std::vector<std::uint8_t>& data) override; + sendPacket(std::uint8_t netfn, std::uint8_t cmd, + std::vector<std::uint8_t>& data) override; private: const internal::Sys* sys; diff --git a/src/ipmiblob/ipmi_interface.hpp b/src/ipmiblob/ipmi_interface.hpp index bf7b448..4a62c2c 100644 --- a/src/ipmiblob/ipmi_interface.hpp +++ b/src/ipmiblob/ipmi_interface.hpp @@ -14,12 +14,15 @@ class IpmiInterface /** * Send an IPMI packet to the BMC. * + * @param[in] netfn - the netfn for the IPMI packet. + * @param[in] cmd - the command. * @param[in] data - a vector of the IPMI packet contents. * @return the bytes returned. * @throws IpmiException on failure. */ virtual std::vector<std::uint8_t> - sendPacket(std::vector<std::uint8_t>& data) = 0; + sendPacket(std::uint8_t netfn, std::uint8_t cmd, + std::vector<std::uint8_t>& data) = 0; }; } // namespace ipmiblob diff --git a/src/ipmiblob/test/ipmi_interface_mock.hpp b/src/ipmiblob/test/ipmi_interface_mock.hpp index c8324af..5f5514c 100644 --- a/src/ipmiblob/test/ipmi_interface_mock.hpp +++ b/src/ipmiblob/test/ipmi_interface_mock.hpp @@ -11,8 +11,9 @@ class IpmiInterfaceMock : public IpmiInterface { public: virtual ~IpmiInterfaceMock() = default; - MOCK_METHOD1(sendPacket, - std::vector<std::uint8_t>(std::vector<std::uint8_t>&)); + MOCK_METHOD3(sendPacket, + std::vector<std::uint8_t>(std::uint8_t, std::uint8_t, + std::vector<std::uint8_t>&)); }; } // namespace ipmiblob |