summaryrefslogtreecommitdiffstats
path: root/user_channel/channel_mgmt.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Remove unused function convertCurrentChannelNum(uint8_t)Vernon Mauery2019-06-141-33/+0
| | | | | | | | | | | | | | convertCurrentChannelNum(uint8_t) was deprecated in favor of an actual working implementation. It was stubbed out for a while to provide a broken, backwards-compatible interface, but now that all of those have been removed in favor of the new interface that actually works: convertCurrentChannelNum(uint8_t, uint8_t), the old function can be removed. Tested: Builds without any errors (means the old interface was removed) Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com> Change-Id: I3796e890c7cc34333116b71a97db268abf5f0e89
* user_mgmt: Fix error message with file nameRichard Marian Thomaiyar2019-06-121-1/+2
| | | | | | | | | | Updated error message with proper config file name Tested: Verified that file name is properly listed in error message Change-Id: I0c2552000f704f3b4b541b8fe90adec966a6616a Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
* user-mgmt: sync ipmi user & channel conf fileRichard Marian Thomaiyar2019-05-141-6/+22
| | | | | | | | | | | | | | | | | | | ipmi_user.json file is stored in non-volatile memory, and it is necessary to make sure that file is properly synced to the storage device, to avoid any corruption issue related to power loss. This fix makes sure that temporary file is fully synced with storage device and then renamed, such that the file is either in old state or in new updated state. Same is also performed for channel configuration file too. Tested: 1. Verified regular ipmi user list & channel works without any issue 2. Verifid that any power loss, immediately, once the file is written doesn't corrupt the entries. Change-Id: I9ef84573947ab6f85f66530ac4a20e9eeaddf283 Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
* move variant to std namespaceVernon Mauery2019-04-181-4/+3
| | | | | | | | | | | sdbusplus::message::variant_ns has been std for a while now. This moves ipmid away from sdbusplus::message::variant_ns to directly use std::variant. Tested-by: built, compiles, and runs the same as before. Change-Id: I8caa945f31c926c2721319f001b9d7f83fd3f1b7 Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
* Cleanup: Get rid of duplicate getChannelName()Richard Marian Thomaiyar2019-03-251-6/+1
| | | | | | | | | | | | Get rid of duplicate getChannelName function. Use the one with uint8_t channelNum. Tested-by: 1. Verified RMCP+ session establishement works with newly created user Change-Id: Iac22ec665ece97d4f9471cfb40220b472bdf01e8 Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
* Set init_priority attribute for global variables in shared libLei YU2019-02-121-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | The code gets unspecified initializatio order for the global/static variables in a shared library. If unluck, a global/static variable may be initialized in *constructor* function, and then initialized by the default contructor. For exmaple, if `std::unique_ptr<xxx> var{nullptr};` is initialized in constructor function, below init order may occur: 1. It is initialized in constructor; 2. Then it is initialized as nullptr; And eventually when the code is to use the variable, we got nullptr. We met such issues before on openbmc/openbmc#1581, and the technical details could be found at [this SO question][1] and [this gcc email][2] The solution is to specify the init_priority attribute, to make the global/staic variables inititalize earlier than the contructors. [1]: https://stackoverflow.com/questions/43941159/global-static-variables-initialization-issue-with-attribute-constructor-i [2]: https://gcc.gnu.org/ml/gcc-patches/2017-03/msg00863.html Change-Id: I901a6a5cddec12aec9512fe58b16735fa2ad90d7 Signed-off-by: Lei YU <mine260309@gmail.com>
* IPMI channel to NIC device mapping modified within JSON config fileJohnathan Mantey2019-02-041-21/+37
| | | | | | | | | | | The IPMI to NIC channel mapping was done using a hard coded scheme. The scheme used generic channel names which were then mapped to specific device names. The hard coded generic to specific naming convention is removed, and the JSON file contains the device name directly. Change-Id: Ibc6821cae5a26f2666467aba5346d364053f2582 Signed-off-by: Johnathan Mantey <johnathanx.mantey@intel.com>
* Refactor the initialization of the channel data from the JSONJohnathan Mantey2019-02-041-57/+44
| | | | | | | | | | | | Copy the data retrieved from the JSON data files only after the contents of the two JSON configuration files have been read successfully. The code has also been changed to eliminate excess indentation in order to improve its readability and maintainability. Change-Id: I2def95b854bef39a9e7b196ef340c3a06965653a Signed-off-by: Johnathan Mantey <johnathanx.mantey@intel.com>
* Eliminate public function returning pointer to private class dataJohnathan Mantey2019-02-041-27/+18
| | | | | | | | The getChannelDataPtr method breaks class encapsulation. Only class methods are supposed to have access to class private instance variables. Change-Id: I5dbfb75f0fa409b82a1e7f426b2034d39f7df9ad Signed-off-by: Johnathan Mantey <johnathanx.mantey@intel.com>
* Update DBus initialization and useJohnathan Mantey2019-02-041-10/+5
| | | | | | | | The DBus instance variable is no longer a passed parameter to instance methods. Instance methods can access the private DBus variable directly. Change-Id: Id0c988802e5ad6c2757e7a243ee92331f447ac0d Signed-off-by: Johnathan Mantey <johnathanx.mantey@intel.com>
* Use network interface name as channel nameRichard Marian Thomaiyar2019-02-021-55/+18
| | | | | | | | | | | | | | Use network interface name as channel name for the LAN channels. Mapper related to convert IPMI LAN reference to network interface is not needed anymore, and the same has been removed. Unit-test: verified ipmitool channel info for channel 1 & 2 and made sure it works fine as expected. Change-Id: Id87e2924a2a21a846507d6378b1b615000280f06 Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
* Fix: Return error for invalid privilegesRichard Marian Thomaiyar2019-02-021-6/+10
| | | | | | | | | | | | Return error code 0xCC for invalid privileges requested in SetChannelAccess command. Unit-Test: 1. Verified 0xCC is returned for command (reserved privilege) ipmitool raw 0x6 0x40 0x1 0x82 0x80 Change-Id: I3ea1ee6e02019ef0ae5f812e7d5dd999d710e4e7 Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
* ipmid: channel: add max transfer size propertyVernon Mauery2019-01-111-0/+9
| | | | | | | | | Each channel can have a different maximum transfer size. This should be exposed so that it is easier to tell how many bytes it is possible to send or receive on a given channel. Change-Id: Ie277eb7a802edc1deeefe201a7560d371920f519 Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
* Add self channel number conversion functionRichard Marian Thomaiyar2018-12-191-1/+1
| | | | | | | | | | | | | | | | Support for self channel number conversion added. This will be used by IPMI commands like GetUserAccess, GetChannelInfo etc. to query the details for the channel in which the command is requested. Self channel number 0xE will be converted to proper channel number by this function Unit-Test: Performed that commands received through ipmid channel are marked as channel 0xF and through netipmid as 0x1, when channel number 0xE is used Change-Id: I53820558faf4439d9909d52e4e98d71c38e714b4 Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
* Refer SMS as regular KCS channelRichard Marian Thomaiyar2018-12-181-1/+1
| | | | | | | | | | | | | As per the default channel_config.json under phosphor-ipmi-config channel 0xF (KCS) is referred as SMS, and the same has to be used in the code. Unit test: Verifiy that when channel number 0xE is specified for KCS, it is getting converted to 0xF(SMS) as expected. Change-Id: I169d7b42f5ceed3bd46c84e9798b7a3f676b8604 Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
* Update const uint8_t& to const uint8_tRichard Marian Thomaiyar2018-12-111-19/+19
| | | | | | | | | | | | | Update const uint8_t& to const uint8_t usage. Passing by reference for small types are costly than passing it by value and hence the change is done Unit-Test 1. Performed build and verified regular user account creation and RMCP+ login Change-Id: Ic2dd76795749148f82564677dde2a5db08520454 Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
* std::variant: Fix new instances of mapbox specific callsWilliam A. Kennington III2018-11-261-3/+4
| | | | | | | | Tested: Build and run through unit tests. Change-Id: I87f2d5441b2f029e1e96ee1b46c4c760b0d82aac Signed-off-by: William A. Kennington III <wak@google.com>
* Added suppport to convert self channel number.ssekar2018-11-201-0/+38
| | | | | | | | Define API for getting self channel number. Change-Id: I4027f580f30bd2ba84b11260f11f86eb8e9af1ff Signed-off-by: ssekar <suryakanth.sekar@intel.com> Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
* Synchronize channel info between network and ipmiAppaRao Puli2018-11-201-0/+389
| | | | | | | | | | | | | | | | | | | Synchronizing the channel privilege config between network interface(generic) and channel managament(IPMI). 1) During start-up get the network interface privilege and update the IPMI data base(NV). 2) Catch the signal for network interface channel privilege and update the ipmi data base(Volatile and NV data). 3) During ipmi privilege update(NV), send it to network interface over DBUS. Unit Test: Verified the changes by modifying MaxPrivilege in network interfaces and signal catching logic and vise versa as specified in description. Change-Id: Iaa7e9e248f1cac6ab560137c8c136abdd44e190e Signed-off-by: AppaRao Puli <apparao.puli@linux.intel.com> Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
* IPMI Channel commands implementationAppaRao Puli2018-11-201-0/+1027
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>
OpenPOWER on IntegriCloud