1 #include "command/payload_cmds.hpp" 2 #include "command/sol_cmds.hpp" 3 #include "command_table.hpp" 4 #include "session.hpp" 5 6 namespace sol 7 { 8 9 namespace command 10 { 11 12 void registerCommands() 13 { 14 static const ::command::CmdDetails commands[] = { 15 // SOL Payload Handler 16 {{(static_cast<uint32_t>(message::PayloadType::SOL) << 16)}, 17 &payloadHandler, 18 session::Privilege::HIGHEST_MATCHING, 19 false}, 20 // Activate Payload Command 21 {{(static_cast<uint32_t>(message::PayloadType::IPMI) << 16) | 22 static_cast<uint16_t>(::command::NetFns::APP) | 0x48}, 23 &activatePayload, 24 session::Privilege::USER, 25 false}, 26 // Deactivate Payload Command 27 {{(static_cast<uint32_t>(message::PayloadType::IPMI) << 16) | 28 static_cast<uint16_t>(::command::NetFns::APP) | 0x49}, 29 &deactivatePayload, 30 session::Privilege::USER, 31 false}, 32 // Get Payload Activation Status 33 {{(static_cast<uint32_t>(message::PayloadType::IPMI) << 16) | 34 static_cast<uint16_t>(::command::NetFns::APP) | 0x4A}, 35 &getPayloadStatus, 36 session::Privilege::USER, 37 false}, 38 // Get Payload Instance Info Command 39 {{(static_cast<uint32_t>(message::PayloadType::IPMI) << 16) | 40 static_cast<uint16_t>(::command::NetFns::APP) | 0x4B}, 41 &getPayloadInfo, 42 session::Privilege::USER, 43 false}, 44 // Get SOL Configuration Parameters 45 {{(static_cast<uint32_t>(message::PayloadType::IPMI) << 16) | 46 static_cast<uint16_t>(::command::NetFns::TRANSPORT) | 0x22}, 47 &getConfParams, 48 session::Privilege::USER, 49 false}, 50 }; 51 52 for (const auto& iter : commands) 53 { 54 ::command::Table::get().registerCommand( 55 iter.command, 56 std::make_unique<::command::NetIpmidEntry>( 57 iter.command, iter.functor, iter.privilege, iter.sessionless)); 58 } 59 } 60 61 } // namespace command 62 63 } // namespace sol 64