summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Implement chassis set power restore policy commandYong Li2018-09-253-0/+94
| | | | | | | | | | | | | | | | | | Implement the IPMI set power restore policy command 0x06. This command can be used to configure the power restore policy. This configuration parameter is kept in nonvolatile storage. The power restore policy determines how the system or chassis behaves when AC power returns after an AC power loss Tested: Run the below command to check the current Power Restore Policy: ipmitool -H <IP> -P 0penBmc -I lanplus chassis status Run the below command to change it: ipmitool -H <IP> -P 0penBmc -I lanplus chassis policy always-off Change-Id: I224912890f9a9e8b4dc98f840cd6f223c9f7dfe5 Signed-off-by: Yong Li <yong.b.li@linux.intel.com>
* apphandler: Add storage for Get/Set System Info ParameterXo Wang2018-09-243-0/+100
| | | | | | | | | | | All but one standard System Info Parameter and most (all?) OEM parameters are string type. Add a interface to connect string callbacks to System Info Parameter selector codes. Also add a convenience call that can connect a static string to a parameter selector code. Change-Id: I5e35d0418b8ddf5b2575fac093acfc7d7ca2217c Signed-off-by: Xo Wang <xow@google.com> Signed-off-by: Patrick Venture <venture@google.com>
* sensorhandler: Remove legacy functionsAdriana Kobylak2018-09-241-213/+3
| | | | | | | | | | | | | | The legacy sensors in the /org/openbmc/sensors path have been moved to the phosphor-ipmi-sensor-inventory%/config.yaml files and this path has been deprecated (From openbmc/openbmc rev: 8de4ff9fe3e3a5cbd7af150c126e97b182aa44cc). Remove the legacy functions that searched this deprecated path. Tested: Powered on a witherspoon to the host OS and there were no errors for the sensors that were moved out of the old path. Change-Id: Ifced118defdb3fe30abf26e332d847e8d3707477 Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
* app/watchdog: Only log internal failures onceWilliam A. Kennington III2018-09-211-10/+35
| | | | | | | | | | | | | | | | | Logging internal failures to the phosphor-logger is a slow process that can take up to 5 seconds. If we do this for each watchdog reset for a relatively fast watchdog we will clog up the channel and fill the ESEL log with errors. We probably don't want that kind of information to build up. Instead, only report errors to the ESEL when the state of the internal watchdog transitions from HEALTHY -> UNHEALTHY. Tested: Works on zaius when booting and terminating the watchdog daemon while it is ticking. Produces the expected single error in the log and only delays the IPMI channel once. Change-Id: I8110ba66c4a85e188666a34cb6d055bdbec30622 Signed-off-by: William A. Kennington III <wak@google.com>
* storagehandler: add missing cstdint headerPatrick Venture2018-09-121-0/+2
| | | | | Change-Id: I3837f2f3219e6b641ebb237a405ce36bd2374c0f Signed-off-by: Patrick Venture <venture@google.com>
* openbmc oem code: add blobTranserCmdPatrick Venture2018-09-121-0/+1
| | | | | | | BlobTransferCmd is used by phosphor-ipmi-blobs Change-Id: I48b0e7a764d7fb5fb834320fbe415e4849f06cd8 Signed-off-by: Patrick Venture <venture@google.com>
* Handle SdBusError exception in SEL commandsTom Joseph2018-09-121-11/+41
| | | | | Change-Id: Ia79b3e2ea4ca8783c912c9864be32107d170d561 Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>
* add iana header to store OEM NumbersPatrick Venture2018-09-104-9/+23
| | | | | | | | The iana.hpp header is installed to identify OEM IPMI numbers used, to avoid namespace conflicts. Change-Id: Ifd629817e3b921f86a5ea4cf2c2965a44a2d8201 Signed-off-by: Patrick Venture <venture@google.com>
* add .clang-formatPatrick Venture2018-09-0767-4365/+4311
| | | | | Change-Id: I7c2a527b4751a560703a61fcbe9638b150546af5 Signed-off-by: Patrick Venture <venture@google.com>
* add missing header: mapPatrick Venture2018-09-061-0/+2
| | | | | Change-Id: I453bad9fa811934daea59fdb9a2cc51524403783 Signed-off-by: Patrick Venture <venture@google.com>
* Add -flto to CXXFLAGSAndrew Geissler2018-08-271-3/+6
| | | | | | | | | | Per openbmc/openbmc#3364, adding -flto to CXX flags in order to reduce overall library and binary sizes. Ref: https://gcc.gnu.org/wiki/LinkTimeOptimization Change-Id: Idacb03d1ce6ad0253979f5e8b2638ac5129a6216 Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
* Use visitor instead of pulling values directlyJames Feist2018-08-092-4/+29
| | | | | | | | | | | Sensor thresholds pull out an int64_t and immediately assign it to a double. Use a visitor instead to avoid the intermediate and add flexibility / saftey to type readings. Tested-By: Verifed sensor list still worked. Change-Id: If49bf54ec1c0636b3549d433b86ecdbd1ea99b0d Signed-off-by: James Feist <james.feist@linux.intel.com>
* Handle the case to turn off the Chassis Identify LEDTom Joseph2018-08-081-0/+6
| | | | | | | Resolves openbmc/openbmc#3327 Change-Id: Ib0cbfccdd91b6cdd2267a48b312d2736a4ce8fbc Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>
* Add flags to Makefile.am to build as c++17 and header-only boostVernon Mauery2018-08-082-3/+10
| | | | | | | | | | As the project moves forward, we are updating it to use c++17 and some of the features that it offers, as well as some more boost bits. This patch makes sure that all the boost libraries are header only, adds in c++17, and makes sure that the libraries required are linked properly. Change-Id: I9a25ec971e4bf05c2c3b73e20938cf337e06077c Signed-off-by: Vernon Mauery <vernon.mauery@intel.com>
* rename libapphandler.so to libipmi20.soVernon Mauery2018-08-081-8/+12
| | | | | | | | | libapphandler contains way more than just App commands. This should be the base library that contains all of the default implementations of IPMI 2.0 commands. Change-Id: Ie12f706325808c9dd52d186d4e4406424052510b Signed-off-by: Vernon Mauery <vernon.mauery@intel.com>
* Standardize use of filesystemVernon Mauery2018-08-086-7/+67
| | | | | | | | | If <filesystem> exists, use that, if it doesn't, try <experimental/filesystem>. Either way, access it from std via a namespace splice. Change-Id: I5b35ee9f74b88e188cb3ca3fed9abaec64933697 Signed-off-by: Vernon Mauery <vernon.mauery@intel.com>
* add more files to the .gitignore listVernon Mauery2018-08-071-0/+10
| | | | | | | | This includes editor temp files, patch rejects, and other build/debug artifacts. Change-Id: I06c52dc36568baae73c1981034f1adf3ede87a82 Signed-off-by: Vernon Mauery <vernon.mauery@intel.com>
* Incorrect definition for Chassis net functionsKuiying Wang2018-08-021-1/+1
| | | | | | | | | | The enum definition for Chassis net functions in chassishandler.h is wrong. It should be defined as ipmi_netfn_chassis_cmds but not ipmi_netfn_app_cmds which is defined in apphandler.h. Change-Id: I26680d19b8c3be7ae2f832f851149352f0ed6303 Signed-off-by: Kuiying Wang <kuiying.wang@intel.com>
* Add empty default match argument for getAllDbusObjectsVernon Mauery2018-08-011-1/+1
| | | | | | | This is parallel to other functions defined in utils.hpp Change-Id: I8f40e27d1a179258df5059c27066c8cd1b37a260 Signed-off-by: Vernon Mauery <vernon.mauery@intel.com>
* Validate Mfg Date/Time in Board Info AreaNagaraju Goruganti2018-07-311-2/+5
| | | | | | | | | | | -FRU's Mfg Date/Time is the number of minutes from 0:00 hrs 1/1/96 and a 3 byte field length for Mfg Data/Time in Board Info Area. -So max Mfg date equals to 1006632900 secs from 00:00:00 hrs 1/1/1996. Resolves openbmc/openbmc#3202 Change-Id: I6a71b8b881b699195fee2a18b743e195fa4703a5 Signed-off-by: Nagaraju Goruganti <ngorugan@in.ibm.com>
* test: disable OEM router unit-testsPatrick Venture2018-07-251-3/+4
| | | | | | | Until Issue #3325 is resolved, this will make the CI stable again. Change-Id: I5156f1fed153586512d184c973a8be4036620d19 Signed-off-by: Patrick Venture <venture@google.com>
* Add OemRouter facility.Peter Hanson2018-07-259-7/+453
| | | | | | | | | | | | | OemRouter adds a facility to register OEM Group Message handlers, then dispatch matching messages to the registered handler. Added as a core source so that any dynamic provider can register its messages without requiring any specific load order. Includes code fixes for x86 portability. Change-Id: I47b8fe7873e3c7fdf35a00d3c8a7e17d30c398c4 Signed-off-by: Peter Hanson <peterh@google.com> Signed-off-by: Patrick Venture <venture@google.com>
* Clear host command queue on a power onMatt Spinler2018-07-242-1/+70
| | | | | | | | | | | | | | | | | | | | | When the RequestedHostTransition property changes to On, clear any pending commands in the command queue. This is done to avoid race conditions around state transitions as well as other scenarios like the following: 1) Host is already off 2) RequestedHostTransition is set to Off 3) RequestedHostTransition is set to On 4) Host powers on 5) Host immediately powers off because of the pending command sent in 2). Resolves openbmc/openbmc#3207 Tested: Verified the scenario above no longer occurs. Change-Id: I26c8195c305c75b01333d1b10ff4bf16d76b91a6 Signed-off-by: Matt Spinler <spinler@us.ibm.com>
* Correct the formatting of the network commands documentTom Joseph2018-07-241-6/+6
| | | | | | | The ipmitool commands are placed in the code block. Change-Id: I787dff9d6acd77ceaa1c6251b4287c2367212cad Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>
* Fix to return sane error codeRichard Marian Thomaiyar2018-07-241-4/+17
| | | | | | | | | | | | | | 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: I6cf9fa1f0e5c1d71c57eebb9a2d451fa986168d3 Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
* app/watchdog_service: More useful error outputWilliam A. Kennington III2018-07-181-13/+45
| | | | | | | | This patch adds error handling around the decoding of requests to the watchdog service, to give more useful context in the case of errors. Change-Id: If668b17e88dc65a938b69d8c2cdd760456170962 Signed-off-by: William A. Kennington III <wak@google.com>
* Add code coverage for phosphor-host-ipmid.Emily Shaffer2018-07-183-5/+18
| | | | | Change-Id: I940aadefdf0f78182aad1d4e586e3178e2d2fe97 Signed-off-by: Emily Shaffer <emilyshaffer@google.com>
* Docs: Add IPMI command cheatsheetRatan Gupta2018-07-171-0/+36
| | | | | | | Adding the network configuration commands Change-Id: I0542e1266d3bf71c813c3d449bb2838f0dc887cf Signed-off-by: Ratan Gupta <ratagupt@in.ibm.com>
* Add double to ipmi::Value typeJames Feist2018-06-151-3/+3
| | | | | | | | ipmi::Value is used as the type in setDbusProperty. As properties are allowed to be doubles, add it to the type. Change-Id: I3d2dd5063100b8e73732740ce056fc476a7e1e44 Signed-off-by: James Feist <james.feist@linux.intel.com>
* Use s.c_str() in log messagesJoseph Reynolds2018-05-317-16/+16
| | | | | | | | | | Fixes issues with data passed to phosphor::logging::log(entry()). This is part of a series of commits that resolves openbmc 2905. Tested: static_assert only Change-Id: I9fac771f54e4acbec97ce1360c106b6e3eb4fe9d Signed-off-by: Joseph Reynolds <jrey@us.ibm.com>
* Fix D-Bus error from callback method invoked from async threadMarri Devender Rao2018-05-231-74/+105
| | | | | | | | | | | | | Noticed D-bus method invoked as part of the callback method invoked from async thread returns error Switching to use sd_event loop timer for callback after timer expiry Resolves openbmc/openbmc#3130 Change-Id: Ibe87a6b3aa179cc887593c7dea635c11d9ea844c Signed-off-by: Marri Devender Rao <devenrao@in.ibm.com>
* Edit MAINTAINERS fileRatan Gupta2018-05-231-0/+1
| | | | | | | Proposing myself as a reviewer. Change-Id: Ie5303cf029980deeced20764d98b86dd7012aff5 Signed-off-by: Ratan Gupta <ratagupt@in.ibm.com>
* watchdog: Get only the initialized property during resetWilliam A. Kennington III2018-05-223-3/+46
| | | | | | | | | | Since we switched to resetting the watchdog with a built-in method, we are only using a single property from the watchdog. Instead of fetching all the properties and reading just the initialized one, only request the initialized property from the watchdog. Change-Id: I5e29b5100629e1ce23f352b0b749a434cd1ab793 Signed-off-by: William A. Kennington III <wak@google.com>
* watchdog: Use ResetTimeRemaining for wd_resetWilliam A. Kennington III2018-05-223-6/+32
| | | | | | | | Using this helper method reduces the number of dbus calls made during each watchdog reset. Change-Id: I373db3babe03e05fca33eb4dbbbc7c07f95a39ea Signed-off-by: William A. Kennington III <wak@google.com>
* watchdog_service: Convert runtime errors to internal failuresWilliam A. Kennington III2018-05-221-2/+14
| | | | | | | | We want to better adhere to the openbmc convention of logging our errors and reporting and internal exception upstack. Change-Id: I78a277ed564b1ac269d84c024b75d2b0f534e911 Signed-off-by: William A. Kennington III <wak@google.com>
* watchdog: Handle and report internal failuresWilliam A. Kennington III2018-05-221-0/+26
| | | | | | | | | An upcoming change will introduce InternalFailures instead of using runtime exceptions for error handling in the watchdog service. We need to handle these exceptions appropriately. Change-Id: Icfc02d98821f307a37a4cf59911913c820e88744 Signed-off-by: William A. Kennington III <wak@google.com>
* Implement Get POH Counter commandNagaraju Goruganti2018-05-213-0/+73
| | | | | | | | | | It returns a counter value proportional to the system operating power-on hours. Partially Resolves openbmc/openbmc#2979 Change-Id: Ib0cd43fe5cbc055ae84991577d766bedae58d775 Signed-off-by: Nagaraju Goruganti <ngorugan@in.ibm.com>
* watchdog: Retry dbus requests if the service was cachedWilliam A. Kennington III2018-05-111-0/+12
| | | | | | | | | | | | Right now if the phosphor-watchdog gets restarted, the first ipmi request querying it will fail and return all the way back up to the ipmi client. In this case, it would be nicer for the client if we retried the request once before reporting a failure. Resolves openbmc/phosphor-host-ipmid#111 Change-Id: I73fce5431911279f9c2e4389d32b671ed60c2305 Signed-off-by: William A. Kennington III <wak@google.com>
* utils/ServiceCache: Make isValid publicWilliam A. Kennington III2018-05-111-7/+7
| | | | | | | | | Some of our apps may want to know if the ServiceCache was determined to be valid prior to using it, so that they can retry their request in case the cache was stale. Change-Id: I106f11a18cd2290df9c18f29a8e779aacb5ef552 Signed-off-by: William A. Kennington III <wak@google.com>
* Fix get boot options returning unexpected resultsMarri Devender Rao2018-05-081-0/+16
| | | | | | | | | | | | | | | | | | | | | | | Get boot options is returning wrong value when boot device is set to cdrom followed by setting boot device to bios. In the IPMI spec the boot device selector has options for both "boot source" (default/disk/crdom/network) and "boot mode" (default/bios/safe/diag). Since this isn't a bit field, you can't override for eg both the source and mode at the same time. The solution is if a set boot device is mapping to a boot source, then reset the boot mode D-Bus property to default, or vice versa. This way the ipmid code can determine which property is not at the default value Resolves openbmc/openbmc#3067 Resolves openbmc/openbmc#3068 Change-Id: I072c82a161d56f118510fe1f9e5c75cb5c610295 Signed-off-by: Marri Devender Rao <devenrao@in.ibm.com>
* Add set boot source and boot mode methods for reuseMarri Devender Rao2018-05-081-39/+62
| | | | | | | | | setBootMode and setBootSource methods are introduced by refactoring code from ipmi_chassis_set_sys_boot_options for code reuse. Change-Id: I30b641239686b0411a0995468d098f5ad3d61754 Signed-off-by: Marri Devender Rao <devenrao@in.ibm.com>
* Fix Host time is not getting printed to journalNagaraju Goruganti2018-05-081-2/+4
| | | | | | | | | | | | log<level::DEBUG> is not putting Host time into journal, instead it is putting it in the metadata. Made fix for it. Testing: ipmitool sel time get # Host time:xxx XXX x xx:xx:xx xxxx will be # printed in into journal Change-Id: I0ba72a871469a30c605ee3ec91a07787959d5ae3 Signed-off-by: Nagaraju Goruganti <ngorugan@in.ibm.com>
* Fix Sensor query for derating factor returns 0Nagaraju Goruganti2018-05-081-1/+28
| | | | | | | | | | | | | The issue here is that for derating factor sensor read command, hostboot is expecting return value in event_status field, but we are sending it in sensor reading field. Testing: ipmitool raw 0x04 0x2d 0xd8 #it has to retrun "00 00 5a 00" Resolves openbmc/openbmc#3012 Change-Id: I09e3d02c946ad1d8a39ea747fc400fb623cbe6ef Signed-off-by: Nagaraju Goruganti <ngorugan@in.ibm.com>
* Check the offset length in the Read FRU commandTom Joseph2018-05-081-0/+5
| | | | | | | | | | The offset length is validated against the size of the FRU area, before proceeding with populating the response of the Read FRU command. Resolves openbmc/openbmc#3132 Change-Id: I2bc660b7e389f5c85bac0acc8068dd53ab328a65 Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>
* Fix tabs to spacesMarri Devender Rao2018-05-081-6/+6
| | | | | Change-Id: I0d8205b378ab5044f58f528aad3b4fab7c993044 Signed-off-by: Marri Devender Rao <devenrao@in.ibm.com>
* Remove completion code from the response data structureTom Joseph2018-05-021-1/+0
| | | | | | | | | The completion code is the return parameter for the registered functions so should not be part of the response structure. Client applications like ipmitool will get the size wrong. Change-Id: Ibe082096f5002948f01636c6dfd7e54fadced2ef Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>
* MAINTAINERS: add repo-local MAINTAINERS fileEmily Shaffer2018-05-011-0/+69
| | | | | Change-Id: Id93e51694e527790209ad4511e4cefb154fe9887 Signed-off-by: Emily Shaffer <emilyshaffer@google.com>
* Check if the FRU Id is valid for FRU commandsTom Joseph2018-04-231-2/+16
| | | | | | | | | | | Validate FRU Id before proceesing with the command handling. Do not report error log for any FRU command failure, since IPMI is an external interface. Resolves openbmc/openbmc#3016 Change-Id: I9e2af3ce50285662f1b8f9600222e9ff3057a7e3 Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>
* Remove trailing spacesGunnar Mills2018-04-185-38/+38
| | | | | Change-Id: I3a58137b3300fcfe51a4182eb304a1b70885ad30 Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
* Grammar and spelling fixesGunnar Mills2018-04-185-13/+13
| | | | | | | | | | Spelling errors found using github.com/lucasdemarchi/codespell A tool to fix common misspellings. This tool is licensed under GNU General Public License, version 2. Some additional grammar and capitalization errors were fixed as well. Change-Id: I700db4e6d7ba52b02374c9c3e84be0af8bd91859 Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
OpenPOWER on IntegriCloud