summaryrefslogtreecommitdiffstats
path: root/command_table.cpp
Commit message (Collapse)AuthorAgeFilesLines
* netipmid: make Handler asynchronousVernon Mauery2019-02-251-43/+36
| | | | | | | | | | | | | | | | | | | | | | The dbus call to the main ipmid queue was up to this point synchronous, which means it blocks all other networking and execution until the main queue returns (which may be on the order of seconds for some commands). This is an unacceptable delay, especially when this queue is responsible for timely updates of SOL traffic. This turns the call into an asynchronous one by leveraging shared pointers and an optional action on destruction. So as long as a reference to the Handler object exists, it will live on, waiting to send its response. Once the async dbus call has returned and set the reply in the Handler, it will drop the reference to the shared pointer and the destructor will send out the response over the channel. Tested-by: Run multiple sessions at the same time while monitoring dbus traffic. See that the requests and responses may be interleaved instead of serial. Change-Id: I16fca8dc3d13624eeb1592ec36d1a9af6575f115 Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
* netipmid: Update netipmid to use ipmid as the main queueVernon Mauery2019-02-251-56/+61
| | | | | | | | | | | | All ipmi processing is now done in the main ipmi queue (phosphor-host-ipmid) and messages are passed via dbus. This removes the handler registration for providers and just passes the message along to the main queue instead of executing the provider in-situ. This makes the net-ipmid more like the bt-bridge or kcs-bridge that are simple channel handlers that move messages from a medium to the queue. Change-Id: Icc9d580fd5546505c95acf0bea47c70e09809b7d Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
* netipmid: replace std::cerr with phosphor::logging callsVernon Mauery2018-12-191-8/+11
| | | | | | | | This is part of a cleanup and standardization effort of code to get existing code up to date. Change-Id: I0c982ef8d7afa2f56a9cd204bb8ac3112769641c Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
* Command execution restriction based on privilegeRichard Marian Thomaiyar2018-12-031-10/+23
| | | | | | | | | | | | Restrict IPMI command execution based on privilege of the user session. Unit test: 1. Verified the command execution as per the privilege 2. Executing higher privilege IPMI command fails Change-Id: I5901f2b18f4f7ecb6311882de558f75b61836109 Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
* netipmid: use system path include styleVernon Mauery2018-11-061-1/+1
| | | | | | | | For external header files, us the system path include style to fit with the standard coding style of the project. Change-Id: Iba08b6b5adf20ebf7cebdb2d39aaad84463e3ff3 Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
* netipmid: apply clang-format rulesVernon Mauery2018-11-021-16/+19
| | | | | | | | Lots of whitespace change. Let clang-format do its job and keep the code looking nice. Change-Id: Idfcad1a99cab8170d55a06163de8ad3f420b68b7 Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
* Fix to return sane error codeRichard Marian Thomaiyar2018-07-081-6/+16
| | | | | | | | | | | | | | Any unhandled exception in the IPMI command handler crashes the ipmi stack. IPMI command handler also becomes bulky to catch all exceptions which must return unspecified errors. This fix adds a catch in the ipmi router command handler functions, and returns IPMI_CC_UNSPECIFIED_ERROR for all the unhandled exceptions. With this fix, exceptions which has to throw IPMI_CC_UNSPECIFIED_ERROR, doesn't needs to be handled in the command handlers. Change-Id: Icf8741925d857170b2f748906edbaf6cf1e55cdc Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
* Fix Table:: Command Not found: 0xb03eNagaraju Goruganti2018-05-071-3/+0
| | | | | | | | | | | | | The error msg:"E> Table:: Command Not found: 0xb03e" is getting dumped into journal for every IPMI request to BMC. Here the command:b03e - is a group extensions command to query about HPM compatibility. This is not a standard command ,issued by ipmitool to gather information, can be ignored. Resolves openbmc/openbmc#3100 Change-Id: I5d89ad61144f11e80afa3bba39835119f5d96eb6 Signed-off-by: Nagaraju Goruganti <ngorugan@in.ibm.com>
* Patch #2 Reducing IPMI logging footprintNagaraju Goruganti2018-04-021-5/+7
| | | | | | | | | | net-ipmid is noisy in terms of journal logging. A small step towards cleaning that up. Partially Resolves openbmc/openbmc#2507 Change-Id: I78e0286fb37086373c86dca276c0948f4595cb0a Signed-off-by: Nagaraju Goruganti <ngorugan@in.ibm.com>
* Small fixes for net ipmi handlerFeist, James2017-11-061-2/+11
| | | | | | | | | | Host ipmid handler will not re-register commands, so make the net handler follow this by skipping later registrations. Also pass size of command to handlers for length checks to work. Host ipmi handler passes this parameter correctly. Change-Id: I8eb1d645eff405b91e471433085025b6835f0bd2 Signed-off-by: Feist, James <james.feist@linux.intel.com>
* Change the response buffer size passed to provider libraryTom Joseph2017-01-311-3/+2
| | | | | Change-Id: Ib943cd6487beb7232d5e1ead521febd992c83ce1 Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>
* Command Table Entry for IPMI Provider CommandsTom2017-01-181-0/+25
| | | | | | | | This patch defines an entry for hooking IPMI provider commands in the command table and to execute the commands. Change-Id: I8a8fb7c06ccc1a3c4397540419b983556b9da6c3 Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>
* Command Router to handle commandsTom Joseph2016-12-161-0/+80
This class encapsulates the details regarding the execution of the command and has routines for registering and execution of the command. Change-Id: Idf26e1f60f9f89aa5261fde89577ec7ddc26c096 Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>
OpenPOWER on IntegriCloud