diff --git a/storagehandler.hpp b/storagehandler.hpp
new file mode 100644
index 0000000..cccd62e
--- /dev/null
+++ b/storagehandler.hpp
@@ -0,0 +1,89 @@
+#pragma once
+
+#include <cstdint>
+
+// IPMI commands for Storage net functions.
+enum ipmi_netfn_storage_cmds
+{
+    // Get capability bits
+    IPMI_CMD_GET_FRU_INV_AREA_INFO = 0x10,
+    IPMI_CMD_GET_REPOSITORY_INFO = 0x20,
+    IPMI_CMD_READ_FRU_DATA = 0x11,
+    IPMI_CMD_RESERVE_SDR = 0x22,
+    IPMI_CMD_GET_SDR = 0x23,
+    IPMI_CMD_GET_SEL_INFO = 0x40,
+    IPMI_CMD_RESERVE_SEL = 0x42,
+    IPMI_CMD_GET_SEL_ENTRY = 0x43,
+    IPMI_CMD_ADD_SEL = 0x44,
+    IPMI_CMD_DELETE_SEL = 0x46,
+    IPMI_CMD_CLEAR_SEL = 0x47,
+    IPMI_CMD_GET_SEL_TIME = 0x48,
+    IPMI_CMD_SET_SEL_TIME = 0x49,
+
+};
+
+struct ipmi_add_sel_request_t
+{
+
+    uint8_t recordid[2];
+    uint8_t recordtype;
+    uint8_t timestampe[4];
+    uint8_t generatorid[2];
+    uint8_t evmrev;
+    uint8_t sensortype;
+    uint8_t sensornumber;
+    uint8_t eventdir;
+    uint8_t eventdata[3];
+};
+
+/**
+ * @struct Read FRU Data command request data
+ */
+struct ReadFruDataRequest
+{
+    uint8_t fruID;    ///< FRU Device ID. FFh = reserved
+    uint8_t offsetLS; ///< FRU Inventory Offset to read, LS Byte
+    uint8_t offsetMS; ///< FRU Inventory Offset ro read, MS Byte
+    uint8_t count;    ///< Count to read
+} __attribute__((packed));
+
+/**
+ * @struct Read FRU Data command response data
+ */
+struct ReadFruDataResponse
+{
+    uint8_t count;  ///< Response data Count.
+    uint8_t data[]; ///< Response data.
+} __attribute__((packed));
+
+/**
+ * @struct Get FRU inventory area info command request data
+ */
+struct FruInvenAreaInfoRequest
+{
+    uint8_t fruID; ///< FRU Device ID. FFH = reserved.
+} __attribute__((packed));
+
+/**
+ * @struct Get FRU inventory area info command response
+ */
+struct FruInvenAreaInfoResponse
+{
+    uint8_t sizels; ///< Fru Inventory area size in bytes, LS Byte
+    uint8_t sizems; ///< Fru Inventory are size in bytes, MS Byte
+    uint8_t access; ///< 0b Devices is accessed by bytes, 1b - by words
+} __attribute__((packed));
+
+/**
+ * @struct Get Repository info command response
+ */
+struct GetRepositoryInfoResponse
+{
+    uint8_t sdrVersion;           //< SDR version
+    uint8_t recordCountLs;        //< Record count LS byte
+    uint8_t recordCountMs;        //< Record count MS bte
+    uint8_t freeSpace[2];         //< Free space in bytes, LS first
+    uint8_t additionTimestamp[4]; //< Most recent addition timestamp LS first
+    uint8_t deletionTimestamp[4]; //< Most recent deletion timestamp LS first
+    uint8_t operationSupport;     //< Operation support
+} __attribute__((packed));
