| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
Support parsing two time string formats to enable use of ipmi-fru-parser
and entity-manager to provide FRU details on dbus.
Tested: Verified the entity-manager dbus output for the FRU MfgDate is
now parsed correctly.
Signed-off-by: Patrick Venture <venture@google.com>
Change-Id: I053ec225b51166269c5a5a800ad8d607fd0cc233
|
|
|
|
|
| |
Signed-off-by: Patrick Venture <venture@google.com>
Change-Id: If630a4c2411a66b4995f6807e185bd5cd36d165e
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The fru read yaml configuration allows specifying a dbus path and a dbus
interface. Dynamically look up what service provides that interface
with that dbus path. Continue supporting partial paths for devices
owned by the Inventory Manager.
Tested: Verified the module now reads the FRU properties over dbus if
the object is owned by another service (exported via entity-manager).
Signed-off-by: Patrick Venture <venture@google.com>
Change-Id: I5c0aeb11d0b33fab437a55dea3351a47feab0783
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The member IPMIFruData::property was unused and instead the property
lookup was performed with the phosphor-dbus-interface property name.
The IPMIFruData::property field is meant to map from dbus property to
FRU property to allow a variety of dbus mappings.
Tested: Verified the member was unused.
Tested: Verified that a configuration yaml mapping is respected and
ipmid will report the information expected given a FRU published to
dbus.
Note: The fields for IPMI FRU properties were taken from the example
YAML and are expected to be what was used by machines leveraging this
feature.
Signed-off-by: Patrick Venture <venture@google.com>
Change-Id: I44f73b67ecdeae2d772daa38cc21cc18cdf9c7ce
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Enabling SOL payload access for all users in all channels, by default.
It is not mandated by IPMI spec, but needed for backward-compatibility.
Tested-by:
1. Run Get User Payload Access Command for random user on LAN channel.
// Command - (channel 3 is of LAN channel type)
ipmitool -I lanplus...raw 0x06 0x4D 3 7
02 00 00 00 // Response
2. Disable SOL payload and rerun Get User Payload Access Command.
// Command
ipmitool -I lanplus...raw 0x06 0x4C 3 0x48 0x02 0 0x00 0
ipmitool -I lanplus...raw 0x06 0x4D 3 8
00 00 00 00 // Response
3. Run Get User Payload Access on non-LAN, session-less channel.
// Command - (channel 7 is KCS channel type)
ipmitool -I lanplus...raw 0x06 0x4D 7 7
Error:(...rsp=0xcc): Invalid data field in request // Response
4. Check SOL session activation and 'ipmi_user.json' file contents.
Change-Id: I48c50e6366a0025d5ae066c8a8f3694d2f710732
Signed-off-by: Saravanan Palanisamy <saravanan.palanisamy@linux.intel.com>
|
|
|
|
|
|
|
|
|
| |
Add an accessor to grab the entities singleton as a step towards
building it on first access from json.
Tested: This change has not been tested beyond build verification.
Signed-off-by: Patrick Venture <venture@google.com>
Change-Id: I2cf1fbd7ad10b4e1b63af347c824ad37bc8a56c9
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rewrite "Get SDR info and Reserve SDR" command to
use the newly introduced IPMI provider API.
Tested:
verified using ipmitool sensor commands.
a. get SDR info
Command: ipmitool raw 0x04 0x20 0x01
Output: 02 01
Command: ipmitool raw 0x04 0x20 0x00
Output: 00 01
b. reserve sdr
Command: ipmitool raw 0x04 0x22
Output: 01 00
Signed-off-by: jayaprakash Mutyala <mutyalax.jayaprakash@intel.com>
Change-Id: Id1d7015cec45c5524210033e4210c710da27e9ae
Signed-off-by: jayaprakash Mutyala <mutyalax.jayaprakash@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rewrite set chassis capabilities to use new ipmi provider api
Tested:
verified ipmitool raw get chassis capabilities command
ipmitool raw 0 5 00 20 20 20 20 20 // set chassis cap command
ipmitool raw 0 0 // get chassis cap command
00 14 14 14 14 14 // updated response in hex
Signed-off-by: anil kumar appana <anil.kumarx.appana@intel.com>
Change-Id: Idcc7c12250d4465ff838c15ba0d511701688a3a2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rewrite "Get sel info & Reserve SEL" commands to use the new API.
Tested:
1. verified ipmitool sel info is same both before and
after the changes
Command: ipmitool sel info
Output:
SEL Information
Version : 1.5 (v1.5, v2 compliant)
Entries : 0
Free Space : 65535 bytes or more
Percent Used : unknown
Last Add Time : Not Available
Last Del Time : Not Available
Overflow : false
Supported Cmds : 'Delete' 'Reserve'
Command: ipmitool raw 0x0a 0x40
Output: 51 00 00 ff ff ff ff ff ff ff ff ff ff 0a
2. verfied the Reserve SEL command
ipmitool raw 0x0a 0x42
01 00
ipmitool raw 0x0a 0x42
02 00
Change-Id: I37d602293066274a3fc417ad7e59cea3c73315f7
Signed-off-by: jayaprakash Mutyala <mutyalax.jayaprakash@intel.com>
Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
Signed-off-by: jayaprakash Mutyala <mutyalax.jayaprakash@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
IPMI Spec reference: Section 24.6, 24.7.
Support is added to get/set user access details for the
unreserved, supported payload types defined by Spec.
SOL is the only unreserved, supported payload currently.
If support is needed for unreserved std/oem payload
types in future, they can be enabled with minor source code
changes to this implementation.
All payload types are packed in a JSON object
"payload_enabled" in ipmi_user.json file.
Tested-by:
1. For user 8 in channel 3, Enable SOL payload.
// Command - (channel 3 is of LAN channel type)
ipmitool -I lanplus...raw 0x06 0x4C 3 0x8 0x02 0 0 0
// Verify it with Get User Payload Access Command
ipmitool -I lanplus...raw 0x06 0x4D 3 8
02 00 00 00 // Response
2. Disable SOL payload.
// Command
ipmitool -I lanplus...raw 0x06 0x4C 3 0x48 0x02 0 0x00 0
// Verify it with Get User Payload Access Command
ipmitool -I lanplus...raw 0x06 0x4D 3 8
00 00 00 00 // Response
3. Enable unsupported payload stdPayload7.
// Command
ipmitool -I lanplus...raw 0x06 0x4C 3 0x8 0x80 0 0 0
Error: Invalid data field in request // Response
Change-Id: Idc57b04a747e55666407d928d8b2169223501e5b
Signed-off-by: Saravanan Palanisamy <saravanan.palanisamy@linux.intel.com>
|
|
|
|
|
|
|
|
| |
The implementation of get_reservation_id() is combining two uint8_t, but
currently returns a uint8_t. Return instead a uint16_t to correct this.
Change-Id: I5bbfdd230bcc2bb467b755ac90a39c6bf11167d1
Signed-off-by: Emily Shaffer <emilyshaffer@google.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rewrite: "Get SDR repository info" command to new IPMI provider API.
Tested:
Verified using ipmitool.
ipmitool raw 0x0a 0x20
51 01 00 ff ff 00 00 00 00 00 00 00 00 00
Change-Id: I4b18631c4b4182f2c98caa145c151f3079cd7fc4
Signed-off-by: Pradeep Kumar <pradeep1x.kumar@intel.com>
Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
| |
Cover some best practices while reviewing a test suite, as well as how
to run tests locally without impacting your current environment.
Tested: Viewed in Chrome
Change-Id: I7356a90fcc9e6d2679e1f9e9a49515a1038a8914
Signed-off-by: Emily Shaffer <emilyshaffer@google.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a tutorial on writing a new test, based on writing unit tests for
sensorhandler.hpp - specifically GetSdrReq, as it's a good candidate for
unit testing.
Included is a nonexhaustive list of testing best practices. More best
practices are always welcome.
Tested: Viewed testing.md with Chrome builtin Markdown interpreter
Change-Id: I418af8f972a5a0ff36b786cda6fdf9b6b308e8d5
Signed-off-by: Emily Shaffer <emilyshaffer@google.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add instructions for installing and setting up Docker, modifying the
setup for phosphor-host-ipmid, and running the tests. This also covers
reading the .log files generated during the testing run.
These instructions cover how to use `git worktree` to make a copy of
your working repo which is usable by Docker, but still up-to-date with
the hacking you've been doing. There's also a brief method of coming up
with a similar setup using a local remote or symlink. The worktree
method was selected because it is impossible to make the code you're
testing out-of-sync with the code you will submit to Gerrit for review.
However, we need to mount the working repo to the Docker container too
to make this work (since Git will look there for the .git/ dir).
Tested: Viewed in Chrome
Change-Id: I684664e2580637b34fbb79eceb838986425852c0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a new piece of documentation, intended to be a tutorial on running,
writing, and reviewing unit tests for the CI suite. Outline the sections
to be written in some detail (subject to change).
There are a handful of methods for running the CI, foremost by using
Docker or by building the OpenBMC SDK. This tutorial will cover the
Docker method, as it is most similar to what the Jenkins bot does, and
most consistent across platforms.
Tested: Viewed markdown file in Chrome.
Change-Id: Ic98c02bc8f4dc6eaf4e7d1432422cdd934862548
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Per the IPMI spec, the Read FRU Data command requires only User
privilege level.
Tested:
Before:
ipmitool -I lanplus -L USER raw 0xa 0x11
Unable to send RAW command (channel=0x0 netfn=0xa lun=0x0 cmd=0x11 rsp=0xd4): Insufficient privilege level
After:
ipmitool -I lanplus -L USER raw 0xa 0x11
Unable to send RAW command (channel=0x0 netfn=0xa lun=0x0 cmd=0x11 rsp=0xff): Unspecified error
Change-Id: I4c4df9a0813a93f69f0d66994af37c8f67f74f9e
Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of directly using pgood on dbus, this change uses the
xyz.openbmc_project.State.Chassis "CurrentPowerState" property
for the IPMI chassis status command. This will allow us to
remove pgood from dbus.
Tested:
Ran IPMI chassis commands and confirmed that they behave as
expected:
ipmitool power status
Chassis Power is on
ipmitool power off
Chassis Power Control: Down/Off
ipmitool power status
Chassis Power is off
ipmitool power on
Chassis Power Control: Up/On
ipmitool power status
Chassis Power is on
Change-Id: I7836c16b76c3b309f176186f3e2453082e4cd1af
Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This changes the power restore policy command to return invalid
parameter for any unsupported policy option (greater than 0x03).
Tested:
ipmitool raw 0 6 0
07
ipmitool chassis status
Power Restore Policy : always-off
ipmitool raw 0 6 1
07
ipmitool chassis status
Power Restore Policy : previous
ipmitool raw 0 6 2
07
ipmitool chassis status
Power Restore Policy : always-on
ipmitool raw 0 6 3
07
ipmitool chassis status
Power Restore Policy : always-on
ipmitool raw 0 6 4
Unable to send RAW command (channel=0x0 netfn=0x0 lun=0x0 cmd=0x6 rsp=0xcc): Invalid data field in request
Change-Id: Ie78e00753f6dfd8b7bccce38c239a8103b6cc3fd
Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rewrite "Add SEL Entry" command to use the newly
introduced IPMI provider API.
Tested:
Verified the behavior to be same as previous change.
ipmitool raw 0x0a 0x44 1 0 0xff 4 5 6 7 8 9 0 1 2 3 4 5 6
05 06
Signed-off-by: anil kumar appana <anil.kumarx.appana@intel.com>
Change-Id: I49bad876a209fb55f1b5b635b5a4ded425d33af0
|
|
|
|
|
|
|
|
|
|
| |
According to the documentation io->post is deprecated, saying
that boost::asio::post() should be used instead.
Tested: ipmid runs the same as it did before.
Change-Id: I552c7cb5cb8ad8f9f6e2bcffa61ce5135e2faad2
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
|
|
|
|
|
|
|
|
| |
This session const will be used in multi session management and session
commands and replace the existing session const used into lowercamel case
Signed-off-by: Suryakanth Sekar <suryakanth.sekar@linux.intel.com>
Change-Id: I76725acdf5d3d002f82a1076509ed37d668d01d3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Modify to use the new provider API. One by one, change calls to
remove any legacy API constructs.
Tested-by: ipmitool raw 6 0x37
08 50 f3 d6 73 d5 98 b4 45 49 9a a6 24 76 f5 82
This is the same as the BMC web value as shown by:
curl https://<bmcip>/redfish/v1/Systems/system
"UUID": "82f57624-a69a-4945-b498-d573d6f35008"
Change-Id: Ic3ea8c53266d5be07bc957fe7076b208b621f00b
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
|
|
|
|
|
|
|
|
| |
Functionally this doesn't change anything but executable data files
would seem to be in conflict with typical idioms.
Change-Id: I5eddfd8a8be3d1b9eb53062fb60e46b845008fd9
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Change-Id: I8e14cfd3719c7fbef739f2aa01771bc4321ce290
Signed-off-by: Ofer Yehielli <ofery@google.com>
Tested: Enabled the exclude libuserlayer flag in
recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend
+EXTRA_OECONF_append_xxx = " --disable-libuserlayer"
+HOSTIPMI_PROVIDER_LIBRARY_remove_xxx = "libusercmds.so"
+NETIPMI_PROVIDER_LIBRARY_remove_xxx = "libusercmds.so"
Clean build and test that userlayer.so doesn't get included in the build
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implement get channel payload version command (IPMI specification
section 24.9). As per the specification, this command is basically a
hard-coded value that says we are using IPMI 2.0.
Tested:
ipmitool raw 6 0x4F 3 1 // Command
10 // Response
Change-Id: Id16723e7257361814b98f3c14d759f2919ad4c03
Signed-off-by: Ayushi Smriti <smriti.ayushi@intel.com>
Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Update the get channel payload support command to use the new IPMI API.
This simplifies the code as well as adds support for the special IPMI
channel 0x0e.
Tested: ipmitool -I lanplus -H ... -U ... raw 6 0x4e 0xe
03 00 3f 00 00 00 00 00
ipmitool -I lanplus -H ... -U ... raw 6 0x4e 1
03 00 3f 00 00 00 00 00
Change-Id: I8b67d6f79c40299b4b653212a2f1f9d0c1a9087c
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
|
|
|
|
|
|
|
|
| |
When building out of tree the default yamls are not found by the code
generator scripts.
Change-Id: I52a651e99b8a2c41c20dc30a7b4f5f01c16e7c5a
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PAM user authentication check must be performed, before any RMCP+
session establishment, as this will be able to check whether user
is already locked out, due to failed attempt.
This patch introduces the pam user check API, which will be used by
netipmid daemon.
Tested:
Verified the API call check and making sure it works.
Real testing is performed by including the same in
phosphor-ipmi-net for RMCP+ session establishment both
for user locked for failed attempt and normal case.
Commands used-
Created new user using ipmitool
ipmitool user set name 2 testuser
ipmitool user enable 2
ipmitool user set password 2 pas1tes2
ipmitool user priv 2 4 3
ipmitool user list 3 //New user entry can be seen listed
ipmitool channel getaccess 3 2 //For getting channel access
ipmitool channel setaccess 3 2 ipmi=on priviledge=4
Normal Case:
ipmitool -I lanplus -U testuser -P pas1tes2 -H <bmc ip> raw 6 1
//Command
23 00 00 00 02 bf 57 01 00 7b 00 00 00 00 00 //Response
Negative Case:
busctl set-property xyz.openbmc_project.User.Manager
/xyz/openbmc_project/user xyz.openbmc_project.User.AccountPolicy
MaxLoginAttemptBeforeLockout q 3
Tried 3 failed login attempts from webpage, and then tried to
establish IPMI RMCP+ as expected, session establishment failed.
wait for the timeout or unlock the user using-
busctl set-property xyz.openbmc_project.User.Manager
/xyz/openbmc_project/user/sayushi xyz.openbmc_project.User.Attributes
UserLockedForFailedAttempt b false
busctl get-property xyz.openbmc_project.User.Manager
/xyz/openbmc_project/user/sayushi xyz.openbmc_project.User.Attributes
UserLockedForFailedAttempt b false //Command
b false //Response
After this RMCP+ session will be established as usual.
Change-Id: I5ee2dc0848944a12f682f0775930091d32508bde
Signed-off-by: Ayushi Smriti <smriti.ayushi@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now that a bus pointer is available via the Context for every IPMI
command handler, make use of it for Get Device ID.
Tested-by: run Get Device ID and verify results:
ipmitool raw 6 1
23 00 00 00 02 bf 57 01 00 7b 00 00 00 00 00
Change-Id: I2ae5f59623767c7ae059340758a8d042acfb00e9
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Unsupported types might not cause compile time errors but can result
in SIGILL errors at runtime when compiler warnings are ignored.
This was found when compiling an intel-ipmi-oem handler that attempted
to unpack an enum class type. The code compiles down to an empty
function (no return statement or value), which can result in all sorts
of undefined behavior. This change forces the unsupported types to emit
a static assert and fail to compile.
Tested: Created a handler that requests an enum class as an input and
saw that the build fails with a static assert.
Change-Id: I123da15cb001756f07761cf7a60b799469926a2a
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a std::shared_ptr<sdbusplus::asio::connection> to every
ipmi::Context in order to facilitate easy transition to
yield_method_call over other D-Bus interfaces. This means that a
getDbusObjects call could just pass in the ipmi::Context and it will get
a yielding call. ipmi::Context is a natural fit because one is created
for each of the boost::asio::coroutine contexts. And because a yielding
call needs both an async D-Bus connection and a yield_context, this
means that we now have one object to rule them all.
Tested: Created a handler that uses the new shared_ptr in the context
to see the API in action.
Change-Id: I429a324180a38bf17845f7fd0544df2226d0300a
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rewrite "Get & Set SEL time" command to use the newly
introduced IPMI provider API.
Tested:
Verified using ipmitool sel time get/set behavior before and
after the changes.
Change-Id: I856ac92356e4472a67bf0e354fff6c3e2ced0cdb
Signed-off-by: jayaprakash Mutyala <mutyalax.jayaprakash@intel.com>
Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
Signed-off-by: jayaprakash Mutyala <mutyalax.jayaprakash@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Return the present chassis identify state in get chassis status command:
Off
Temporary on
Indefinite on
Reserved
Tested:
Set chassis identify in different states:
ipmitool raw 0 4 10 0
ipmitool raw 0 4 0 1
ipmitool raw 0 4 0 0
Then query the chassis status and check on the third byte
ipmitool raw 0 1
Signed-off-by: Yong Li <yong.b.li@linux.intel.com>
Change-Id: I66690b74823a6b819c4fda25d95bc8690b98181a
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PFail property is provided by power control service,
true means the booting is from AC power loss.
Tested:
Remove the AC cable and reconnect it to power on the system
ipmitool chassis status will return:
Last Power Event : ac-failed
Change-Id: I3743f15da259491052ee8fc869205438e79046f8
Signed-off-by: Yong Li <yong.b.li@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Update the get channel info command to use the new IPMI provider API.
Because of the change, this command can support the use of the special
channel number 0x0e.
Tested-by:
(remote via RMCP+ interface)
ipmitool -I lanplus -H ... -U ... channel info
Channel 0x1 info:
Channel Medium Type : 802.3 LAN
Channel Protocol Type : IPMB-1.0
Session Support : multi-session
Active Session Count : 0
Protocol Vendor ID : 7154
Volatile(active) Settings
Alerting : disabled
Per-message Auth : enabled
User Level Auth : enabled
Access Mode : always available
Non-Volatile Settings
Alerting : disabled
Per-message Auth : enabled
User Level Auth : enabled
Access Mode : always available
(on host via kcs interface)
ipmitool channel info
Channel 0xf info:
Channel Medium Type : System Interface
Channel Protocol Type : KCS
Session Support : session-less
Active Session Count : 0
Protocol Vendor ID : 7154
Change-Id: Ica4262593acaefe12ccf70724ad4db40da344da4
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Update the get channel access command to use the new IPMI provider API. As a
part of this change, the command is now able to use the special channel 0x0e.
Tested-by:
ipmitool -I lanplus -H ... -U ... channel getaccess 0xe 1
Maximum User IDs : 15
Enabled User IDs : 1
User ID : 1
User Name : root
Fixed Name : No
Access Available : callback
Link Authentication : enabled
IPMI Messaging : enabled
Privilege Level : ADMINISTRATOR
Enable Status : enabled
Change-Id: I97ad74ae183a15dd5f45dfa70341225794087b2a
Signed-off-by: NITIN SHARMA <nitin1x.sharma@intel.com>
Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This updates the set channel access command to use the new IPMI provider
API. As part of this change, this command should now work with the
special channel 0x0e.
Tested-by:
(set channel access: 6 0x40)
# ipmitool -I lanplus -H ... -U ... raw 6 0x40 0xe 0x82 0x84
(get channel access: 6 0x41)
# ipmitool -I lanplus -H ... -U ... raw 6 0x41 0xe 0x80
02 04
# ipmitool raw 6 0x40 1 0x80 0x83
# ipmitool raw 6 0x41 1 0x80
00 03
Change-Id: Icc6e8ff7deebb7a6f89af616fa70258ea18ed0ce
Signed-off-by: NITIN SHARMA <nitin1x.sharma@intel.com>
Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. fix issue for handling unsupported parameter
2. add support for floppy/USB boot
There is dbus interface change in:
https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-dbus-interfaces/+/21177
Test:
$ ipmitool -H <ip> -P 0penBmc -I lanplus raw
0x0 0x8 0x5 0x80 0x14 0x00 0x00 0x00
$ ipmitool -H <ip> -P 0penBmc -I lanplus chassis bootparam get 5
...
- Boot Device Selector : Force Boot from CD/DVD
...
$ipmitool -H <ip> -P 0penBmc -I lanplus raw
0x0 0x8 0x5 0x80 0x3c 0x00 0x00 0x00
$ipmitool -H <ip> -P 0penBmc -I lanplus chassis bootparam get 5
...
- Boot Device Selector : Force Boot from Floppy/primary removable media
...
Change-Id: I915aaa3f684d02d0dfc4b65afb3c1db139c41781
Signed-off-by: Jia, chunhui <chunhui.jia@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the input data length exceeds the expected, return len_invalid too
Tested:
ipmitool raw 0x06 0x24 0x01 0x13 0x0 0x2 0xa 0x00 0xff
Will return error
Signed-off-by: Yu Ren <yux.ren@intel.com>
Change-Id: I12168f4aed51c499fd06067ca4475917b68e819e
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Modify to use the new provider API. One by one, change calls to
remove any legacy API constructs.
Tested-by: ipmitool 6 8
30 ba 05 cd 7e 9d ac 89 4a 4c 52 ef f3 24 2d 5f
(with matching change from bmcweb:)
curl https://<bmcip>/redfish/v1/Managers/bmc
...
"UUID": "5f2d24f3-ef52-4c4a-89ac-9d7ecd05ba30"
Change-Id: I4cd3b945f76b4fe6c4fcf31d8e1962aaa768828e
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This warm reset command is using the duplicated API as cold reset.
As per IPMI spec, warm reset should not alter volatile settings,
and has to just reset the interface which is not what current code does.
Hence to avoid confusion, remove this warm reset command
Tested:
"ipmitool raw 6 3" command return "Invalid command",
and BMC does not reboot
Signed-off-by: Yong Li <yong.b.li@linux.intel.com>
Change-Id: I62f37c9b8386a817ce069c26ade6760de73b1d16
Signed-off-by: Yong Li <yong.b.li@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Getting the current channel is really just an if statement for the
requested channel (check for 0x0e) to know if the device channel
which is determined by -c <channel> by netipmid and by dbus names
in host ipmid. Previously, an ipmi::Context was passed in, but
netipmid does not use Context, it just has the channel number. So
This change makes it so the the requested channel number and the
device channel number are the arguments, which makes the same
function usable in both netipmid and ipmid.
Tested-by: run the get user access command to see that it uses the
current channel.
# remote connection over channel 1
ipmitool -I lanplus -H <> ... raw 6 0x44 0xe 1
0f 41 00 74
ipmitool -I lanplus -H <> ... raw 6 0x44 1 1
0f 41 00 74
# on bmc console (current channel does not use users)
ipmitool raw 6 0x44 0xe 1
Unable to send RAW command (channel=0x0 netfn=0x6 lun=0x0
cmd=0x44 rsp=0xcc): Invalid data field in request
# request info for channel 1
ipmitool raw 6 0x44 1 1
0f 41 00 74
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
Change-Id: Iadad6f93e47d031a6f4724a3db5161051c5b520a
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The recent rewrite of Get Chassis Status also added support for reading
the front panel enables status instead of returning a hard-coded false.
But the implementation also errors out if the interface is not present
This makes the interfaces optional, returning false if they are not presnt
and reading them correctly if they are.
Tested-by: running ipmitool chassis status with and without the
xyz.openbmc_project.Chassis.Buttons service running:
# ipmitool chassis status
System Power : on
Power Overload : false
Power Interlock : inactive
Main Power Fault : false
Power Control Fault : false
Power Restore Policy : previous
Last Power Event :
Chassis Intrusion : inactive
Front-Panel Lockout : inactive
Drive Fault : false
Cooling/Fan Fault : false
Sleep Button Disable : not allowed
Diag Button Disable : not allowed
Reset Button Disable : allowed
Power Button Disable : allowed
Sleep Button Disabled: false
Diag Button Disabled : false
Reset Button Disabled: false
Power Button Disabled: false
# systemctl stop xyz.openbmc_project.Chassis.Buttons@0.service
# ipmitool chassis status
System Power : on
Power Overload : false
Power Interlock : inactive
Main Power Fault : false
Power Control Fault : false
Power Restore Policy : previous
Last Power Event :
Chassis Intrusion : inactive
Front-Panel Lockout : inactive
Drive Fault : false
Cooling/Fan Fault : false
Front Panel Control : none
Change-Id: If845194b6f052ba84f8b062ac4259ec66f706bb5
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
IPMI user configuration is cross synced with
phosphor-user-manager and written to the non-volatile data
on every boot. This commit limits the write only when
there is real sync issue, and update required.
Tested:
1. Verified the ipmitool user list & commands
2. Verified that file write happens only when there is
real sync update with phosphor-user-manager
Change-Id: Ia40be91f281656288ca96ca44bc9699daee7c3b4
Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The sensor/entity/fru/inventory auto-generated cpp code should
depend on the mako template, the generator python, and the yaml
that it is built with. This modifies the autoconf to export the yaml
and the automake to set the dependencies.
Tested-by: modify one of the dependencies and watch it get rebuilt
Change-Id: Iaab9585c202baf4506e0b7e62aa42a3bf2828ae4
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Set Front Panel Enables command touches one of the same interfaces
that this command does, so rewrite this command to reflect the changes
that set front panel enables causes.
Tested-by: manually run get chassis status command via ipmitool:
# ipmitool raw 0 1
01 00 40 30
# ipmitool chassis status
Change-Id: Ifbb13a6f344c58b2140933447995d3854cca0c0d
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use the new ipmi api, including the yield context mechanism.
Modify to use the new provider API. One by one, change calls to
remove any legacy API constructs.
Tested-by: ipmitool chassis policy list
ipmitool chassis policy previous
ipmitool chassis policy always-on
ipmitool chassis policy always-off
Change-Id: I02a955c3946b940daaa3fe90c2a220b0eb719bad
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
|