initial commit

Add initial code from phosphor-ipmi-flash/tools that was not specific to
firmware update over ipmi-blobs.

Change-Id: I360537a7392347fe989397a699f6a712bc36e62c
Signed-off-by: Patrick Venture <venture@google.com>
diff --git a/src/ipmiblob/ipmi_interface.hpp b/src/ipmiblob/ipmi_interface.hpp
new file mode 100644
index 0000000..6bad7db
--- /dev/null
+++ b/src/ipmiblob/ipmi_interface.hpp
@@ -0,0 +1,25 @@
+#pragma once
+
+#include <cstdint>
+#include <vector>
+
+namespace host_tool
+{
+
+class IpmiInterface
+{
+  public:
+    virtual ~IpmiInterface() = default;
+
+    /**
+     * Send an IPMI packet to the BMC.
+     *
+     * @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;
+};
+
+} // namespace host_tool