| #include "command/sol_cmds.hpp" |
| #include "command/payload_cmds.hpp" |
| #include "command_table.hpp" |
| #include "main.hpp" |
| #include "session.hpp" |
| |
| namespace sol |
| { |
| |
| namespace command |
| { |
| |
| void registerCommands() |
| { |
| static const ::command::CmdDetails commands[] = |
| { |
| // SOL Payload Handler |
| { |
| {(static_cast<uint32_t>(message::PayloadType::SOL) << 16)}, |
| &payloadHandler, session::Privilege::HIGHEST_MATCHING, |
| false |
| }, |
| // Activate Payload Command |
| { |
| { |
| (static_cast<uint32_t>(message::PayloadType::IPMI) << 16) | |
| static_cast<uint16_t>(::command::NetFns::APP) | 0x48 |
| }, |
| &activatePayload, session::Privilege::USER, false |
| }, |
| // Deactivate Payload Command |
| { |
| { |
| (static_cast<uint32_t>(message::PayloadType::IPMI) << 16) | |
| static_cast<uint16_t>(::command::NetFns::APP) | 0x49 |
| }, |
| &deactivatePayload, session::Privilege::USER, false |
| }, |
| // Get Payload Activation Status |
| { |
| { |
| (static_cast<uint32_t>(message::PayloadType::IPMI) << 16) | |
| static_cast<uint16_t>(::command::NetFns::APP) | 0x4A |
| }, |
| &getPayloadStatus, session::Privilege::USER, false |
| }, |
| // Set SOL Configuration Parameters |
| { |
| { |
| (static_cast<uint32_t>(message::PayloadType::IPMI) << 16) | |
| static_cast<uint16_t>(::command::NetFns::TRANSPORT) | 0x21 |
| }, |
| &setConfParams, session::Privilege::ADMIN, false |
| }, |
| // Get SOL Configuration Parameters |
| { |
| { |
| (static_cast<uint32_t>(message::PayloadType::IPMI) << 16) | |
| static_cast<uint16_t>(::command::NetFns::TRANSPORT) | 0x22 |
| }, |
| &getConfParams, session::Privilege::USER, false |
| }, |
| }; |
| |
| for (const auto& iter : commands) |
| { |
| std::get<::command::Table&>(singletonPool).registerCommand( |
| iter.command, std::make_unique<::command::NetIpmidEntry> |
| (iter.command, iter.functor, iter.privilege, iter.sessionless)); |
| } |
| } |
| |
| } // namespace command |
| |
| } // namespace sol |