summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* IPMI Channel commands implementationAppaRao Puli2018-11-208-2/+2205
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | IPMI Channel commands implemenation - squashed commit e9a75d8dd6e89d17381f0310c7930586c6b79996 Author: AppaRao Puli <apparao.puli@intel.com> Date: Thu Jul 5 14:47:22 2018 +0530 Channel layer separation De-coupling the channel management from ipmi channel commands implementation. This gives flexibility to load only needed stuff in different modules(host-ipmi or netipmid) Change-Id: Ib334562beb9325f7768ed6a15475cae15af17b19 Signed-off-by: AppaRao Puli <apparao.puli@intel.com> Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com> commit 726ddf2af678ea6773f4b4b918fbd49be8c83e6a Author: AppaRao Puli <apparao.puli@intel.com> Date: Thu May 24 16:45:30 2018 +0530 IPMI Channel commands implementation Following IPMI channel commands are implemented. 1) Set channel access (0x40) 2) Get channel access (0x41) 3) Get channel info (0x42) Also added code supported for LAN configuration parameters 1) Authentication Type Support (selector #1) 2) Authentication Type Enables (selector #2) Change-Id: Ic4156378c7756eca383dc3da52114fd119346ca6 Signed-off-by: AppaRao Puli <apparao.puli@intel.com> Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com> Change-Id: Ic4156378c7756eca383dc3da52114fd119346ca6 Signed-off-by: AppaRao Puli <apparao.puli@intel.com> Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
* Add kcs selfchannel support & define for LAN toossekar2018-11-202-0/+22
| | | | | | | | | | Define sudo API's for returning channel index for self channel. At moment, This API returns KCS for host-ipmi Change-Id: Icefd5d949e94d4399adaffdad102ccb18c1b7cdc Signed-off-by: ssekar <suryakanth.sekar@intel.com> Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
* Implement IPMI ACPI set/get commandsYong Li2018-11-203-1/+266
| | | | | | | | | | | | | | | | | | | | | | | The IPMI ACPI set/get power state commands are provided to allow system software to tell a controller the present ACPI power state of the system. This is an independent setting that may not necessarily match the actual power state of the system. The commands are used to enable the reporting of the power state, it does not control or change the power state. The ACPI status will be saved into flash by settings manager. Tested By: Set ACPI: ipmitool -H <IP> -P 0penBmc -I lanplus raw 0x06 0x06 0x86 0x83 Get ACPI: ipmitool -H <IP> -P 0penBmc -I lanplus raw 0x06 0x07 Change-Id: I6d00c0aec931b98d6691d7c4a54698e08d317aa4 Signed-off-by: Yong Li <yong.b.li@linux.intel.com>
* ipmid: use the default system busVernon Mauery2018-11-201-1/+1
| | | | | | | | | | The documentation says sd_bus_default_system() is preferred over sd_bus_open_system() because all the calls to sd_bus_default_system() will use the same resources, whereas the sd_bus_open_system() will create a new connection and consume more resources for every call. Change-Id: I0206a43eb2a8dd7c76b8246c9f9640a95b2e473c Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
* Basic IPMI User Management SupportRichard Marian Thomaiyar2018-11-208-7/+2361
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Squashed commit containing Basic User Management implementation Unit Test: 1. Verified both Host & NetIpmid works fine. 2. Verified user related command responses commit b46b869c0a3958a572b976b3bbaf6b5f33673778 Author: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com> Date: Tue Aug 7 15:30:32 2018 +0530 Fix static objects to directly link user layer User layer library has to be directly linked with netipmid in order to be used in RAKP commands. Hence user layer library should not initialize the static bus objects in file scope, as ipmid_get_sd_bus_connection() won't be available during this time. Hence moved it under function scope and initialize it later. Unit test: Made sure, with this change it is loaded perfectly under phosphor-ipmi-host & phosphor-ipmi-net and responding to all user commands Change-Id: Id3f2e06580ca41b0347176ca33e011bf7b048c6a Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com> commit dc60516c45234379a30ad8b03b1cbe53978faeae Author: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com> Date: Tue Aug 7 15:22:37 2018 +0530 Fix to use proper user index for set user name Fix to use proper user index, instead of bailing out on first empty index. If user creation is requested on random index with previous index empty, then signal handler updates the data in first empty index, instead of traversing the user list fully. Fix added to mark the first free index, and still search for match to skip if found. Unit Test: Verified that user added in random index shows in that index using ipmitool set user name command. Change-Id: I30d9b884a5bae98b243ccf8ba7da194ef81355e6 Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com> commit 0b9a81a1261b08ea13ad8777d0d80dad937e9972 Author: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com> Date: Fri Jul 6 15:57:02 2018 +0530 Converting json store to array for user config Addressed comments to convert to array instead of key value pair. Testing: Performed basic testing of user management commands in both host & netipmid, by repeatedly restarting the same. Change-Id: I2e51ded3e2299fa196d868213950d96c72886358 Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com> commit 182c945657b29acaeb13fc44129e0ed929013e59 Author: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com> Date: Sat Jun 30 00:07:28 2018 +0530 Fix D-Bus paths for user management Fix D-Bus path as per upstream code in user management Change-Id: Idb22bee4365520f3d58e70ff61b02d6f6512d707 Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com> commit cd5e22b16f8805dda396311b06994a9e021e97e9 Author: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com> Date: Thu Jun 28 06:22:27 2018 +0530 Json format to store user config & cleanup Code updated to use json format to store and read the user configuration data. Few basic cleanup's performed. Change-Id: I7005f4f2648ccb8214312982a755ddcc6c33e64d Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com> commit 95ca9a67a4b84df603db0eb6a7024e9e0e5ad342 Author: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com> Date: Wed May 30 15:16:47 2018 +0530 Get & Set User Access command implementation Get & Set User access command implementation Change-Id: I4f7a86de95400387c47ae556127baa1f02a703b2 Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com> commit b2dea762362d06b70576dba5f45552d548792cb9 Author: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com> Date: Fri May 18 23:46:23 2018 +0530 User layer separation. Separated out user commands from the implementation details, by creating user layers. App Handler library and netipmid will directly rely on this user_layer.so Change-Id: Ie7d4b3a5a934e32da73e066a25da4c27485c59c8 Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com> commit 63e3113e522ecc7ce6e5aa1c85de4dc9b9a65a7b Author: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com> Date: Mon May 7 12:00:06 2018 +0530 Updated user management ipmi support 1. Relying on Object Manager & D-Bus properties signal (except user rename, for which still relying on user rename signal) 2. Minor clean-up. Change-Id: I594e7823a2c626bb7c88ec54a3ffa89a60b09c65 Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com> commit 3e7b774c842917743369569790612d74387c755e Author: AppaRao Puli <apparao.puli@intel.com> Date: Tue Apr 24 22:01:15 2018 +0530 Synchronize user manager data during ipmi startup Synchronizing the user information by reading all managed user objects from dbus and checking ipmi user data for any update/delete/add users. Change-Id: I9e1a62ec9dd186a7276d083a57e679606d635e05 Signed-off-by: AppaRao Puli <apparao.puli@intel.com> Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com> commit 92298ac0f591d167b0e26b977316a2b136127778 Author: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com> Date: Tue Apr 24 21:34:08 2018 +0530 Minor fix: Read user enabled state in signals Fixed to read user enabled state in signal handlers. Change-Id: I0aa6c4687c16e08d8e304315e85cb65e9dbd346a Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com> commit 8646d2683fc247ce02a0460f9577276eb6e0a581 Author: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com> Date: Wed Apr 11 22:18:44 2018 +0530 Signal handler update Support added to handle group, privilege user rename, enable / disable signal, and update the database accordingly. Change-Id: Ia33d063715a35814bbe1f9220e9609b800261e33 Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com> commit fa411b2c4bbef50175b084889a4829206263ebdb Author: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com> Date: Mon Mar 12 23:42:34 2018 +0530 Add Basic user manager support - IPMI Add basic user manager support in IPMI Creates user through D-Bus user interface and sets password using pam_chauthok(). Lock & File reload mechanism also implmeneted. UserUpdate signal handler support added to update user in IPMI, when users are updated through different interfaces. Change-Id: I1adc538562615109189d7c19dadae0b6a109f4a5 Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com> Change-Id: I1adc538562615109189d7c19dadae0b6a109f4a5 Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
* host-ipmid: add more ipmi error codesPatrick Venture2018-11-181-0/+4
| | | | | | | Add more IPMI error codes to header for use by ipmi handlers. Change-Id: Iceef9cabcb07ad67024275fd15e886706ba7698d Signed-off-by: Patrick Venture <venture@google.com>
* IPMI password entry cleanupRichard Marian Thomaiyar2018-11-134-13/+55
| | | | | | | | | | Whenever user is removed from the system, password map in IPMI database has to be cleaned up. Similarly password entry must be updated when user rename happens. This commit add's API changes for the same Change-Id: I304c721b31fc7fbad019c85d8ca2ecc60ca398d8 Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
* Handling delete password entry from ipmi-passAppaRao Puli2018-11-135-76/+518
| | | | | | | | | | API to Handle the delete password entry from ipmi-pass encrypted file when user gets deleted by any interface Change-Id: I692a81b166b53d6fc981fdb85ce5d6980887560b Signed-off-by: AppaRao Puli <apparao.puli@intel.com> Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
* Add first user layer support.Richard Marian Thomaiyar2018-11-137-1/+478
| | | | | | | | | Exposes user layer library which will be used by both apphandler and netipmid for RAKP. Password is decrypted from the special file which is used by pam-ipmi. Change-Id: Ia6b99d4359a03843f19cd0e18f7269ad2e3cdb44 Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
* Add well-known nameJames Feist2018-11-081-0/+2
| | | | | | | | | | | For looking up the service a well-known name is very useful. Also dbus-broker default permissions require a well-known name to do matches. Tested-by: Found well-known name on dbus. Change-Id: Ieb85e808a1315204096c24a8d48a0e4a52fce764 Signed-off-by: James Feist <james.feist@linux.intel.com>
* Correct spelling of timestamp variableJason M. Bills2018-11-081-1/+1
| | | | | | | | The timestamp variable in the ipmi_add_sel_request_t struct was misspelled. Change-Id: I465432d021882f3966c44aec8cbdd779122521f6 Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
* softoff: Convert to sdeventplus loopWilliam A. Kennington III2018-11-073-24/+18
| | | | | | | | Tested: Builds and passes unit tests Change-Id: I6c37fa7088b7bcfbfc9f8b93185b826782a72c6a Signed-off-by: William A. Kennington III <wak@google.com>
* read_fru_data: use structured bindings in fru loopPatrick Venture2018-11-071-5/+1
| | | | | | | Use structured bindings for first/second in fru loop. Change-Id: Ief5460946ead910ccae653ebb6f9d894805b756d Signed-off-by: Patrick Venture <venture@google.com>
* read_fru_data: use std::find_if instead of raw loopPatrick Venture2018-11-071-10/+7
| | | | | | | Use std::find_if to find matching item instead of using a raw loop. Change-Id: I1814d66dc8c6b33cb8ea12317105dfa70c47fe60 Signed-off-by: Patrick Venture <venture@google.com>
* build: set language to C++Patrick Venture2018-10-311-0/+1
| | | | | | | Set the language in the build to C++. Change-Id: Ib1d19c2c05676d7f4bc2095c8492560e8c77f068 Signed-off-by: Patrick Venture <venture@google.com>
* app/channel: fixup c-style castingPatrick Venture2018-10-311-1/+1
| | | | | | | Fix up c-style casting in app/channel.cpp:102 Change-Id: Ie6da0ff238856e01305127395d48ec161a30c4a1 Signed-off-by: Patrick Venture <venture@google.com>
* cleanup: scope reductionPatrick Venture2018-10-316-20/+17
| | | | | | | | | | | | | | [app/channel.cpp:102]: (style) The scope of the variable 'resp' can be reduced. [ipmisensor.cpp:310]: (style) The scope of the variable 'i' can be reduced. [ipmid.cpp:506]: (style) The scope of the variable 'num_handlers' can be reduced. [read_fru_data.cpp:82]: (style) The scope of the variable 'fruId' can be reduced. [sensorhandler.cpp:256]: (style) The scope of the variable 'p' can be reduced. [storageaddsel.cpp:68]: (style) The scope of the variable 'p' can be reduced. Also delete two extra vertical lines. Change-Id: I8e72f8e1d94381f456674abf523d2f2fbdd8046d Signed-off-by: Patrick Venture <venture@google.com>
* MAINTAINERS: Update Emily's IRC nickEmily Shaffer2018-10-301-1/+1
| | | | | Change-Id: I57dbf3449b92bb2138f66449f85e25d30c5cf01b Signed-off-by: Emily Shaffer <emilyshaffer@google.com>
* host-ipmid: ipmid-api: drop extern C linkingPatrick Venture2018-10-251-10/+1
| | | | | | | | Header not used by any C code at this point, drop extern C linking and unused headers associated with C compilation. Change-Id: Icdb1dd220d158256562a2529d9aa7b03ed1e2196 Signed-off-by: Patrick Venture <venture@google.com>
* configure: Use generic CXX compiler macroWilliam A. Kennington III2018-10-181-1/+1
| | | | | | | | | | | | | | | | | This uses the AX_CXX_COMPILE_STDCXX() instead of AX_CXX_COMPILE_STDCXX_1{4,7}() so that the error messages we generate make slightly more sense. We get errors like: configure.ac:24: error: invalid first argument `20' to AX_CXX_COMPILE_STDCXX Instead of: ./configure: line 5132: syntax error near unexpected token `noext' ./configure: line 5132: `AX_CXX_COMPILE_STDCXX_20(noext)' Change-Id: I05512c977b8b3215a02b5d4dc6dba30ac2b83728 Signed-off-by: William A. Kennington III <wak@google.com>
* configure: Don't check for sdbusplus twiceWilliam A. Kennington III2018-10-181-3/+0
| | | | | | | The second check is entirely unnecessary. Change-Id: I465577c50c0b9476a368373dae1b066b3a758a9e Signed-off-by: William A. Kennington III <wak@google.com>
* Convert variant usage to std interfaceWilliam A. Kennington III2018-10-1813-78/+121
| | | | | | | | | | | | | This is just a refactoring to use the c++17 std::variant interfaces instead of the mapbox::variant specific ones. We should be able to use mapbox::variant and std::variant interchangeably now. Tested: Built against sdbusplus with mapbox::variant and sbusplus using std::variant. Both variant compile and test out. Change-Id: I6fbaad3d12dd34968db6a10f3d74a65e07d0f0cc Signed-off-by: William A. Kennington III <wak@google.com>
* Use the common timer classVernon Mauery2018-10-1816-524/+27
| | | | | | | | | The common timer class from sdbusplus offers all the timer goodness that we currently use. The unit test is also no longer needed (and has been added to sdbusplus's version of the timer.hpp implementation). Change-Id: I278817489433a29ca739f70fdacd8bb897797d66 Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
* Remove direct uses of mapboxJames Feist2018-10-182-9/+11
| | | | | | | | | | sdbusplus is moving to std::variant, remove direct uses of mapbox to limit breakage. Tested-by: It built Change-Id: I3fe0ba0d96b6aad302927363b9596cc1bcce2393 Signed-off-by: James Feist <james.feist@linux.intel.com>
* cleanup: transition to find_ifPatrick Venture2018-10-172-22/+16
| | | | | | | | | | [utils.cpp:81]: (style) Consider using std::find_if algorithm instead of a raw loop. [storageaddsel.cpp:170]: (style) Consider using std::find_if algorithm instead of a raw loop. Change-Id: I7ebbb6428fbbae9196912837d2ac9820420b77df Signed-off-by: Patrick Venture <venture@google.com>
* cleanup: exception catching by referencePatrick Venture2018-10-171-1/+1
| | | | | | | [sensorhandler.cpp:650]: (style) Exception should be caught by reference. Change-Id: Iec747c2dff988fcf6c6ca29715afa1c44cceee6d Signed-off-by: Patrick Venture <venture@google.com>
* cleanup: c-style castingPatrick Venture2018-10-173-12/+9
| | | | | | | | | | | | | | | | [ipmisensor.cpp:308]: (style) C-style pointer casting [sensorhandler.cpp:302]: (style) C-style pointer casting [sensorhandler.cpp:376]: (style) C-style pointer casting [sensorhandler.cpp:404]: (style) C-style pointer casting [sensorhandler.cpp:405]: (style) C-style pointer casting [storageaddsel.cpp:157]: (style) C-style pointer casting [storageaddsel.cpp:187]: (style) C-style pointer casting Added missing const in reportSensorEventAssert and reportSensorEventDeassert as the *pTable->func(...) take the const pointer and the casting then was using the proper const casting. Change-Id: I54a591b4e5e678b8ec3cae2633617a5f7aac7a66 Signed-off-by: Patrick Venture <venture@google.com>
* Fix the exponent B in writesensors mako templateKirill Pakhomov2018-10-151-3/+3
| | | | | | | | | expB has been mistyped as exp() function, resulting in a build error upon providing bExp as signed integer in config.yaml Change-Id: Ibc7ed45e445c4f37b7a6ccdf10346177a3317b0b Signed-off-by: Kirill Pakhomov <k.pakhomov@yadro.com>
* types: Convert ScaledOffset to doubleEmily Shaffer2018-10-111-1/+1
| | | | | | | | | | | ScaledOffset is derived from incoming int64 using pow() and there is a use case for having a fractional or negative ScaledOffset. Since it's derived internally and applied internally this change should have no impact on external interfaces. Change-Id: I419e4de089d3845295157fff440c5d8e029e7c96 Signed-off-by: Emily Shaffer <emilyshaffer@google.com> Tested: Ran ipmitool sensor list to check value sanity
* Fix IPMI SEL reservations and cancellationsJason M. Bills2018-10-053-16/+43
| | | | | | | | | | | | | | | | | | | | | | | Per the IPMI Spec, the SEL must be reserved to Delete an entry Clear the SEL Get a partial entry Add a partial entry The current SEL reservation must be cancelled when A SEL entry is added A SEL entry is deleted The SEL is cleared The device is reset A new reservation is requested This change adds a reservation status to track when a reservation is active and a method to cancel the current reservation, and it uses that to cancel the reservation in the Delete, Clear, and Add SEL methods. Change-Id: Ifd72e6d06ecc622855bd9ce8cc3928cbd0f2c34b Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
* Fix clang-format issue in sensorhandler.cppJason M. Bills2018-10-051-4/+3
| | | | | | | | | | A clang-format issue in sensorhandler.cpp was introduced by commit 0fbdbce22771dac6fe8d651e4c8155645807b83d that is causing CI to fail for changes to phosphor-host-ipmid. This commit updates sensorhandler.cpp with the latest clang-format changes. Change-Id: If37a25c50ee04264ce55c8c7959a4fee2aba4045 Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
* Fix compile error with g++ 7.3Yong Li2018-10-051-0/+1
| | | | | | | | | | Get the below error message when compiling with g++ 7.3: selutility.hpp:131:6: error: 'chrono' in namespace 'std' does not name a type Change the include order to fix this issue Change-Id: Ieaac302dd2e411a71736cbbe3f92431e30f3f5ea Signed-off-by: Yong Li <yong.b.li@linux.intel.com>
* apphandler: Fix buffer underflow in ipmi_app_get_device_guidEmily Shaffer2018-10-011-0/+12
| | | | | Change-Id: I7e27130bbe8bfc847f81968d850abacb8914ad78 Signed-off-by: Emily Shaffer <emilyshaffer@google.com>
* sensorhandler: fix buffer overflow in Get SDREmily Shaffer2018-10-011-3/+17
| | | | | Change-Id: Id49f6294a506a870696554715b4835c7d7e6207b Signed-off-by: Emily Shaffer <emilyshaffer@google.com>
* sensorhandler: fix buffer overrun in ipmi_fru_get_sdrEmily Shaffer2018-09-281-11/+6
| | | | | Change-Id: Ic12598027a92495e49f7cb06aa28f77c0727be44 Signed-off-by: Emily Shaffer <emilyshaffer@google.com>
* openbmc oem code: add ethStatsCmdPatrick Venture2018-09-251-0/+1
| | | | | | | ethStatsCmd is used by phosphor-ipmi-ethstats Change-Id: I481bf00b71cd483720c1d4824f7267a0c1e7e51f Signed-off-by: Patrick Venture <venture@google.com>
* add std namespace prefix to common methodsPatrick Venture2018-09-2510-158/+182
| | | | | | | | Standard clib methods should be explicitly grabbed from the standard namespace. Change-Id: I8bcfcb260a99180d535ec8102c1a24c318cbc209 Signed-off-by: Patrick Venture <venture@google.com>
* move filesystem inclusion to bottom of listPatrick Venture2018-09-256-82/+80
| | | | | Change-Id: I4aa3c984992236bb5b4a5c62c3d42a33c12d55de Signed-off-by: Patrick Venture <venture@google.com>
* oemrouter: add std namespace where missingPatrick Venture2018-09-251-16/+17
| | | | | | | | Found the std namespace declaration missing. It's not required, but encouraged. Change-Id: I83a90ad768f5b8aada98cfd02e244df34008e03d Signed-off-by: Patrick Venture <venture@google.com>
* replaced c headers with cpp where applicablePatrick Venture2018-09-2513-36/+13
| | | | | Change-Id: I23a70eb540ccde5d2aba467426769feffb07b516 Signed-off-by: Patrick Venture <venture@google.com>
* rename headers to match stylePatrick Venture2018-09-2536-115/+87
| | | | | | | | | | | | | | | | | | Moving headers from ".h" to ".hpp" Reworked the header inclusion a bit so that host-ipmid is treated as a library, and local headers aren't. renamed apphandler.h => apphandler.hpp renamed chassishandler.h => chassishandler.hpp renamed globalhandler.h => globalhandler.hpp renamed sensorhandler.h => sensorhandler.hpp renamed storageaddsel.h => storageaddsel.hpp renamed storagehandler.h => storagehandler.hpp renamed systemintfcmds.h => systemintfcmds.hpp Change-Id: I9d4ce3dd57e2e996800f9020a10cc10cdf2c3914 Signed-off-by: Patrick Venture <venture@google.com>
* apphandler: Add "System Name" System Info parameterXo Wang2018-09-251-0/+15
| | | | | | | | | Use the BMC's hostname to respond to requests for the "System Name" parameter. Signed-off-by: Xo Wang <xow@google.com> Change-Id: I23845aab6091a0d003b6f8370d2b67fc11e580e8 Signed-off-by: Patrick Venture <venture@google.com>
* apphandler: Implement Get/Set System Info ParameterXo Wang2018-09-253-8/+193
| | | | | | | | | | | | | | | | Implement Get System Info Parameter using the parameter storage code to back the string-type parameters. Supports up to 255 chunks (known as "sets" in the spec) for those parameters. Currently, iterated reads by chunk of a string parameter will repeatedly invoke that parameter's callback, which can result in chunks being incoherent with each other if the string changes between invocations. This is noted in a TODO comment. Stub out Set System Info Parameter. Full implementation for that is pending support for read-only flags in the parameter storage code. Change-Id: If0a9d807725ccf1f1f62e931010024841575469c Signed-off-by: Xo Wang <xow@google.com> Signed-off-by: Patrick Venture <venture@google.com>
* Get Device ID: Add handling of availability bitAlexander Amelkin2018-09-251-2/+32
| | | | | | | | | | | Make "Device available" bit in Firmware Version 1 field reflect the ready state of BMC as indicated in DBus by CurrentBMCState property of xyz.openbmc_project.State.BMC interface. Change-Id: Ic108507882c68d6cc70b40849668732f7b759ef6 Signed-off-by: Alexander Amelkin <a.amelkin@yadro.com> Signed-off-by: Alexander Filippov <a.filippov@yadro.com>
* Implement Set Channel access commandTom Joseph2018-09-252-0/+128
| | | | | | | | The only option supported is the access mode for disabling or enabling the network IPMI. Change-Id: I2e6b20c317fec19e1e71b3adfc211e6fb847f737 Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>
* 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>
OpenPOWER on IntegriCloud