IPMI Communication module header

RAKP return codes and session setup command declaration.

Change-Id: I04d69651db6b32e9273e977b97ae664e6f002cc3
Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>
diff --git a/comm_module.hpp b/comm_module.hpp
new file mode 100644
index 0000000..ce5ab66
--- /dev/null
+++ b/comm_module.hpp
@@ -0,0 +1,41 @@
+#pragma once
+
+#include <cstdint>
+
+#include "message_handler.hpp"
+
+namespace command
+{
+
+/*
+ * @brief RMCP+ and RAKP Message Status Codes
+ */
+enum class RAKP_ReturnCode : uint8_t
+{
+    NO_ERROR,                   /* No errors */
+    INSUFFICIENT_RESOURCE,      /* Insufficient resources to create a session */
+    INVALID_SESSION_ID,         /* Invalid Session ID */
+    INVALID_PAYLOAD_TYPE,       /* Invalid payload type */
+    INVALID_AUTH_ALGO,          /* Invalid authentication algorithm */
+    INVALID_INTEGRITY_ALGO,     /* Invalid integrity algorithm */
+    NO_MATCH_AUTH_PAYLOAD,      /* No matching authentication payload */
+    NO_MATCH_INTEGRITY_PAYLOAD, /* No matching integrity payload */
+    INACTIVE_SESSIONID,         /* Inactive Session ID */
+    INACTIVE_ROLE,              /* Invalid role */
+    UNAUTH_ROLE_PRIV,           /* Unauthorized role or privilege requested */
+    INSUFFICIENT_RESOURCES_ROLE,/* Insufficient resources to create a session */
+    INVALID_NAME_LENGTH,        /* Invalid name length */
+    UNAUTH_NAME,                /* Unauthorized name */
+    UNAUTH_GUID,                /* Unauthorized GUID */
+    INVALID_INTEGRITY_VALUE,    /* Invalid integrity check value */
+    INVALID_CONF_ALGO,          /* Invalid confidentiality algorithm */
+    NO_CIPHER_SUITE_MATCH,      /* No Cipher Suite match with security algos */
+    ILLEGAL_PARAMETER,          /* Illegal or unrecognized parameter */
+};
+
+/*
+ * @brief Register Session Setup commands to the Command Table
+ */
+void sessionSetupCommands();
+
+} // namespace command