1*d3e7a617STom Joseph #pragma once
2*d3e7a617STom Joseph 
3*d3e7a617STom Joseph #include <cstdint>
4*d3e7a617STom Joseph 
5*d3e7a617STom Joseph #include "message_handler.hpp"
6*d3e7a617STom Joseph 
7*d3e7a617STom Joseph namespace command
8*d3e7a617STom Joseph {
9*d3e7a617STom Joseph 
10*d3e7a617STom Joseph /*
11*d3e7a617STom Joseph  * @brief RMCP+ and RAKP Message Status Codes
12*d3e7a617STom Joseph  */
13*d3e7a617STom Joseph enum class RAKP_ReturnCode : uint8_t
14*d3e7a617STom Joseph {
15*d3e7a617STom Joseph     NO_ERROR,                   /* No errors */
16*d3e7a617STom Joseph     INSUFFICIENT_RESOURCE,      /* Insufficient resources to create a session */
17*d3e7a617STom Joseph     INVALID_SESSION_ID,         /* Invalid Session ID */
18*d3e7a617STom Joseph     INVALID_PAYLOAD_TYPE,       /* Invalid payload type */
19*d3e7a617STom Joseph     INVALID_AUTH_ALGO,          /* Invalid authentication algorithm */
20*d3e7a617STom Joseph     INVALID_INTEGRITY_ALGO,     /* Invalid integrity algorithm */
21*d3e7a617STom Joseph     NO_MATCH_AUTH_PAYLOAD,      /* No matching authentication payload */
22*d3e7a617STom Joseph     NO_MATCH_INTEGRITY_PAYLOAD, /* No matching integrity payload */
23*d3e7a617STom Joseph     INACTIVE_SESSIONID,         /* Inactive Session ID */
24*d3e7a617STom Joseph     INACTIVE_ROLE,              /* Invalid role */
25*d3e7a617STom Joseph     UNAUTH_ROLE_PRIV,           /* Unauthorized role or privilege requested */
26*d3e7a617STom Joseph     INSUFFICIENT_RESOURCES_ROLE,/* Insufficient resources to create a session */
27*d3e7a617STom Joseph     INVALID_NAME_LENGTH,        /* Invalid name length */
28*d3e7a617STom Joseph     UNAUTH_NAME,                /* Unauthorized name */
29*d3e7a617STom Joseph     UNAUTH_GUID,                /* Unauthorized GUID */
30*d3e7a617STom Joseph     INVALID_INTEGRITY_VALUE,    /* Invalid integrity check value */
31*d3e7a617STom Joseph     INVALID_CONF_ALGO,          /* Invalid confidentiality algorithm */
32*d3e7a617STom Joseph     NO_CIPHER_SUITE_MATCH,      /* No Cipher Suite match with security algos */
33*d3e7a617STom Joseph     ILLEGAL_PARAMETER,          /* Illegal or unrecognized parameter */
34*d3e7a617STom Joseph };
35*d3e7a617STom Joseph 
36*d3e7a617STom Joseph /*
37*d3e7a617STom Joseph  * @brief Register Session Setup commands to the Command Table
38*d3e7a617STom Joseph  */
39*d3e7a617STom Joseph void sessionSetupCommands();
40*d3e7a617STom Joseph 
41*d3e7a617STom Joseph } // namespace command
42