1d3e7a617STom Joseph #pragma once
2d3e7a617STom Joseph 
3d3e7a617STom Joseph #include "message_handler.hpp"
4d3e7a617STom Joseph 
5*9e801a2bSVernon Mauery #include <cstdint>
6*9e801a2bSVernon Mauery 
7d3e7a617STom Joseph namespace command
8d3e7a617STom Joseph {
9d3e7a617STom Joseph 
103563f8feSTom Joseph /**
11d3e7a617STom Joseph  * @brief RMCP+ and RAKP Message Status Codes
12d3e7a617STom Joseph  */
13d3e7a617STom Joseph enum class RAKP_ReturnCode : uint8_t
14d3e7a617STom Joseph {
153563f8feSTom Joseph     NO_ERROR,                    //!< No errors
163563f8feSTom Joseph     INSUFFICIENT_RESOURCE,       //!< Insufficient resources to create a session
173563f8feSTom Joseph     INVALID_SESSION_ID,          //!< Invalid Session ID
183563f8feSTom Joseph     INVALID_PAYLOAD_TYPE,        //!< Invalid payload type
193563f8feSTom Joseph     INVALID_AUTH_ALGO,           //!< Invalid authentication algorithm
203563f8feSTom Joseph     INVALID_INTEGRITY_ALGO,      //!< Invalid integrity algorithm
213563f8feSTom Joseph     NO_MATCH_AUTH_PAYLOAD,       //!< No matching authentication payload
223563f8feSTom Joseph     NO_MATCH_INTEGRITY_PAYLOAD,  //!< No matching integrity payload
233563f8feSTom Joseph     INACTIVE_SESSIONID,          //!< Inactive Session ID
243563f8feSTom Joseph     INACTIVE_ROLE,               //!< Invalid role
253563f8feSTom Joseph     UNAUTH_ROLE_PRIV,            //!< Unauthorized role or privilege requested
263563f8feSTom Joseph     INSUFFICIENT_RESOURCES_ROLE, //!< Insufficient resources to create a session
273563f8feSTom Joseph     INVALID_NAME_LENGTH,         //!< Invalid name length
283563f8feSTom Joseph     UNAUTH_NAME,                 //!< Unauthorized name
293563f8feSTom Joseph     UNAUTH_GUID,                 //!< Unauthorized GUID
303563f8feSTom Joseph     INVALID_INTEGRITY_VALUE,     //!< Invalid integrity check value
313563f8feSTom Joseph     INVALID_CONF_ALGO,           //!< Invalid confidentiality algorithm
323563f8feSTom Joseph     NO_CIPHER_SUITE_MATCH,       //!< No Cipher Suite match with security algos
333563f8feSTom Joseph     ILLEGAL_PARAMETER,           //!< Illegal or unrecognized parameter
34d3e7a617STom Joseph };
35d3e7a617STom Joseph 
363563f8feSTom Joseph /**
37d3e7a617STom Joseph  * @brief Register Session Setup commands to the Command Table
38d3e7a617STom Joseph  */
39d3e7a617STom Joseph void sessionSetupCommands();
40d3e7a617STom Joseph 
41d3e7a617STom Joseph } // namespace command
42