2131 Commits

Author SHA1 Message Date
Alexander Amelkin
63d59a50a6 fru print: Add area checksum verification
Before this change, `ipmitool` would not detect any checksum errors
in FRU areas when using 'fru print'. Now it will print whether the
area checksum is OK or INVALID for Chassis, Board, and Product areas.

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2022-12-21 15:15:55 +03:00
Alexander Amelkin
f033b5549e fru: Add decoder for multirec system mgmt records
* Add a decoder for System Management records in
  the Multirecord area
* Refactor GUID/UUID decoding: Use the same code for `mc guid`
  and for `fru print` to decode the GUID and System Unique ID
  in System Management records in the Multirecord Area.
* Fix some type errors in calls to printf/sprintf in GUID decoder

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2022-12-06 02:48:52 +03:00
Alexander Amelkin
1edb0e27e4
Fix enterprise-numbers URL
IANA has changed their URL scheme, and the content at the old URL for
enterprise-numbers switched from text/plain to text/html.

Fix Makefile.am to use the new URL

Resolves ipmitool/ipmitool#377

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2022-11-22 13:55:33 +03:00
Alexander Amelkin
4519b4baac
Update issue templates 2022-09-14 16:35:00 +03:00
Alexander Amelkin
19d78782d7
Release Version 1.8.19
Update ChangeLog, configure.ac to 1.8.19
IPMITOOL_1_8_19
2022-09-01 21:42:31 +03:00
Tom Tung
46fd8d942c Cast type before the left shift
Building ipmitool with UBSAN and I got:
```
...
xxx/ipmitool/include/ipmitool/helper.h:191:14: runtime error: left shift of 160
by 24 places cannot be represented in type 'int'
    #0 0x55bddaa56f11 in ipmi32toh
       xxx/ipmitool/include/ipmitool/helper.h:191:14
```

Tested: with this, I tested ipmitool again and the issue disappeared.

Resolved: ipmitool/ipmitool#352
Signed-off-by: Tom Tung <shes050117@gmail.com>
2022-08-28 20:23:25 +03:00
Andy Clegg
a1dc78c456 sel: Fix the deasserted thresholds inequality
The choice of > or < when printing the threshold inequality currently
only depends on whether it is an upper or lower threshold. This is
correct when the event is asserted, but when the event is deasserted the
inequality is reversed and therefore the current code can give confusing
results, e.g.:

```
Temperature ps1_inlet_temp |
Upper Non-critical going high |
Deasserted |
Reading 43.94 > Threshold 44.88 degrees C
```

This commit fixes that.

See ipmitool/ipmitool#349

Signed-off-by: Andy Clegg <andyc@graphcore.ai>
2022-08-05 18:57:19 +03:00
Alexander Amelkin
4d25a93f49
man: Update the text for -C option
The default cipher suite has been changed earlier in commit
7772254b62826b894ca629df8c597030a98f4f72, and the manual has been
then updated by commit 50479484a2268d3c9d525ceed729c1faed7244b6,
but it turned out that the description of the -C option was
not affected by the update.

Also, a typo was found as the cipher suites are listed in IPMI v2.0
specification Table 22-20, not 22-19 as stated in the manual.

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2022-03-31 16:20:54 +03:00
Alexander Amelkin
65ba015f5c chassis restart_cause: Add new causes
Add 'soft reset' and 'power-up by RTC wakeup' causes
from IPMI 2.0 spec.

Resolves ipmitool/ipmitool#329

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2022-03-09 17:39:45 +03:00
Bing-Hua Wang
4d4f29f0b6 sel: Remove redundant "Reserve SEL"
There is no need to reserve SEL when doing "sel list" and "sel get"
since we don't do partial get in both commands, and we didn't even use
the reservation ID returned by "Reserve SEL".

Signed-off-by: Bing-Hua Wang <binghuawang@ami.com>
2022-02-07 14:35:28 +03:00
Patrick Venture
5ac7f6a54e zero initialize the recv structure on the stack
Zero initialize the recv structure used by openipmi_read().
2022-02-05 23:55:26 +03:00
Patrick Venture
a24a512bdd zero initialize the recv structure on the stack
This was caught via a sanitized build where the recv was used with stack data in some cases.
2022-02-05 23:40:08 +03:00
Alexander Amelkin
39ca56bf33 ci: Add support for MacOS-11
GitHub has made macos-11 virtual environment available.
Enable it for ipmitool.

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2021-11-03 16:30:34 +03:00
Alexander Amelkin
08151adef3 ci: Remove ubuntu-16.04 support
GitHub has removed support for ubuntu 16.04 virtual environment
since Sep 20, 2021. We just follow.

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2021-11-03 16:30:34 +03:00
jason63716
86ef8fb091 sdr: Fix modifier unit
Previously instead of the modifier unit, the base unit was printed.
2021-11-03 16:04:41 +03:00
Patrick Huesmann
66cda7e18f Fix compile error
Signed-off-by: Patrick Huesmann <info@patrick-huesmann.de>
2021-09-15 16:39:55 +03:00
Patrick Huesmann
15418696ea Refactor bridging level detection to dedicated function
Signed-off-by: Patrick Huesmann <info@patrick-huesmann.de>
2021-09-15 16:39:55 +03:00
Patrick Huesmann
7c47cf75f4 Fix double bridge detection in get_max_(req|rsp)_data_size()
Signed-off-by: Patrick Huesmann <info@patrick-huesmann.de>
2021-09-15 16:39:55 +03:00
Lei YU
b7adc1dcaf ipmi_mc: Fix the IPM_DEV_FWREV1_MAJOR_MASK
The IPM_DEV_FWREV1_MAJOR_MASK was incorrectly defined as 0x3F.
The spec indicates that the major firmware revision has 0~6 valid bits,
so the mask shall be 0x7F.

Tested: Verify a BMC that has a major version that is large than 0x3F,
        and ipmitool shows the correct major version.

Signed-off-by: Lei YU <yulei.sh@bytedance.com>
2021-07-14 15:27:00 +03:00
Josef Möllers
11c7605c0d helper: Fix stderr file descriptor
The third file descriptor is STDERR_FILENO, not STDOUT_FILENO
2021-06-22 23:55:49 +03:00
Thomas Renninger
5cf436056f Fix codefactor-io / CodeFactor warnings
Use $(...) notation instead of legacy backticked `...`. (SC2006)
2021-06-22 23:45:59 +03:00
Thomas Renninger
cdac4e07f7 Use /run instead of /var/run
In FHS 3.0, /var/run is replaced by /run:

https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch05s13.html
2021-06-22 23:45:59 +03:00
Alexander Amelkin
cd57365fc4
oem: Update product IDs for YADRO
Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2021-06-18 17:45:28 +03:00
Alexander Amelkin
351dad24a2 lan: Add processing of get/set specific CCs
Both 'Set/Get LAN Configuration Parameter' commands may return
command-specific codes that weren't properly parsed and were
reported as 'Unknown' before. This is fixed now.

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2021-06-15 21:12:49 +03:00
Alexander Amelkin
fb47ae8d7c lan: Refactor pointer style
Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2021-06-15 21:12:49 +03:00
Thomas Abraham
50479484a2 doc: update lanplus doc to reflect default cipher suite change
Modify the documentation to reflect commit 7772254b ("lanplus: Auto-select
'best' cipher suite available") which changed the default cipher suite for
lanplus from 3 to 17
2021-06-06 18:57:38 +03:00
Alexander Amelkin
9a1c0e68ba
ekanalyzer: Fix internal use area off-by-one bug
The length of internal use area printed by ekanalyzer
didn't take in account the version byte.
The data printed was also 1 byte longer than needed.

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2021-05-21 02:39:16 +03:00
Alexander Amelkin
1f429f1ed7 ekanalyzer frushow: Fix internal area size calc
When there was no chassis and board areas, the internal use
are size was calculated incorrectly.

Additionally, it is possible that the internal area is actually
located after all other areas or that areas are arranged in
a different order than their offsets in the header. All those
cases weren't properly handled.

Now that is fixed.

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2021-05-21 01:16:16 +03:00
Alexander Amelkin
59b7d6cf8f sel: Fix "power supply inactive" flag offset
There was a wrong offset for the "Power Supply Inactive" flag,
hence the trigger on this event type could not be set.

Resolves ipmitool/ipmitool#280

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2021-04-27 08:36:58 +03:00
Alexander Amelkin
6b1ce6c1ac ci: Add support for Ubuntu 20.04
- Add ubuntu-20.04 target
- Disable building of Solaris-specific `bmc` interface on Ubuntu
- Rename `ubuntu` matrix to `linux`

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2021-04-21 13:24:43 +03:00
Alexander Amelkin
6a3ded7333 ci: Fix Ubuntu builds
GitHub machines sometimes aren't immediately updated after
Ubuntu repos update. That leads to failed CI builds due
to inability to install some packages.

Add a call to `apt update` to update the package database
before installing anything.

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2021-04-21 13:24:43 +03:00
Alexander Amelkin
61bb233c5b Fix compiler warning
Move #ifdef from the inside to the outside of assert()'s
to get rid of this compiler warning:

warning: embedding a directive within macro arguments has undefined
behavior [-Wembedded-directive]

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2021-04-21 13:24:43 +03:00
Alexander Amelkin
fb176a1995 Fix compiler warning
Drop some unused variables detected by the compiler

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2021-04-21 13:24:43 +03:00
Alexander Amelkin
d88bbf3c41 Fix compiler warning
Refactor plugin ipmi_intf structure initialization for some
plugins to stop the compiler complaining like this:

warning: use of GNU old-style field designator
extension [-Wgnu-designator]

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2021-04-21 13:24:43 +03:00
Bing-Hua Wang
69cdef116a ci: Update for GitHub Actions v2.274.2
set-env and add-path have been removed since GitHub Actions v2.274.2. [1]
Switch to Environment Files instead. [2]

[1] https://github.blog/changelog/2020-11-09-github-actions-removing-set-env-and-add-path-commands-on-november-16/
[2] https://docs.github.com/en/actions/reference/workflow-commands-for-github-actions#environment-files
2021-04-08 11:29:25 +03:00
Bing-Hua Wang
9a86189425 free: Fix implicit function declarations
GitHub Actions macOS environment now has Xcode 12.0.1. [1]
Xcode 12 Clang enables -Werror=implicit-function-declaration by
default [2] and breaks the ipmitool build on macOS. [3]

[1] https://github.com/actions/virtual-environments/issues/1712
[2] https://developer.apple.com/documentation/xcode-release-notes/xcode-12-release-notes
    "Clang now reports an error when you use a function without an
    explicit declaration when building C or Objective-C code for macOS
    (-Werror=implicit-function-declaration flag is on)."
[3] https://github.com/ipmitool/ipmitool/pull/252/checks?check_run_id=1389463134
    "checking for ld used by gcc... /Applications/Xcode_12.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
    <snip>
    free.c:66:13: error: implicit declaration of function 'getuid' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
            if (getuid() != 0) {
                ^
    free.c:170:26: error: implicit declaration of function 'ipmi_get_oem' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
            intf->manufacturer_id = ipmi_get_oem(intf);"
                                ^

Signed-off-by: Bing-Hua Wang <binghuawang@ami.com>
2021-04-08 11:29:25 +03:00
Bing-Hua Wang
5a36080f92 Use "#pragma once" for headers
Some of the header guard names in ipmitool duplicated with the ones in
freeipmi.

* ipmitool/ipmi_fru.h and freeipmi/fru/ipmi-fru.h both uses IPMI_FRU_H
* ipmitool/ipmi_sdr.h and freeipmi/sdr/ipmi-sdr.h both uses IPMI_SDR_H
* ipmitool/ipmi_sel.h and freeipmi/sel/ipmi-sel.h both uses IPMI_SEL_H

This is problematic as including the 1st will prevent the 2nd from being
included, leading to the loss of any declarations, inline definitions,
or other "#includes" in the 2nd header.

For example, including ipmitool/ipmi_sel.h and freeipmi/freeipmi.h fails
to build.

$ cat test.c
 #include <ipmitool/ipmi_sel.h>
 #include <freeipmi/freeipmi.h>
$ gcc test.c -I${HOME}/src/oss/ipmitool/include
In file included from /usr/include/freeipmi/freeipmi.h:90,
                 from test.c:2:
/usr/include/freeipmi/sdr/oem/ipmi-sdr-oem-intel-node-manager.h:48:44: error: unknown type name 'ipmi_sdr_ctx_t'; did you mean 'ipmi_fru_ctx_t'?
   48 | int ipmi_sdr_oem_parse_intel_node_manager (ipmi_sdr_ctx_t ctx,
      |                                            ^~~~~~~~~~~~~~
      |                                            ipmi_fru_ctx_t

Remove header guards and use "#pragma once" instead. In this way, we
don't have to do manual management to avoid name clashes.
* src/plugins/lan/md5.h is left as is being an external header
  originally.
* src/plugins/imb/imbapi.h is a convoluted header consisting of multiple
  header guards. Let's just add "#pragma once" and leave header guards
  as is for now.

Signed-off-by: Bing-Hua Wang <binghuawang@ami.com>
2021-04-08 11:29:25 +03:00
Bing-Hua Wang
682fec09ef Remove unneeded execution bits from C source files and a header file
Signed-off-by: Bing-Hua Wang <binghuawang@ami.com>
2021-04-08 11:29:25 +03:00
Bing-Hua Wang
e7550f722c Convert line endings to LF
The following commands is used on Linux to convert line endings to LF.

git config core.autocrlf input
git add --renormalize .
git config --unset core.autocrlf

It turns out there was only ipmi_kontronoem.h not using LF.

Signed-off-by: Bing-Hua Wang <binghuawang@ami.com>
2021-04-08 11:29:25 +03:00
Shitalkumar Gandhi
d674bfdc9a Fixed compiler warning.
This patch has been added to fix "error: comparison between signed
and unsigned integer expressions [-Werror=sign-compare]"

Signed-off-by: Shitalkumar Gandhi <shitalkumar.gandhi@seagate.com>
2021-02-24 14:10:42 +03:00
Gilles Buloz
050f5da631 RPM support: fixed broken build due to use of headers from kernel
When building an RPM, --with-kerneldir is passed to ./configure. This adds
the include path /lib/modules/<kversion>/build/include that may break the
build but is not present when building with "make" so useless.
For instance while building ipmi_sel.c with kernel 5.3.7-301.fc31.x86_64 :
/lib/modules/5.3.7-301.fc31.x86_64/build/include/linux/stddef.h:11:2: error:
expected identifier before numeric constant
   11 |  false = 0,
      |  ^~~~~

Signed-off-by: Gilles Buloz <gilles.buloz@kontron.com>
2020-10-22 18:00:36 +03:00
Heiko Thiery
7fd7c0f2ba imbapi: replace __FUNCTION__ to eleminate compiler warnings
imbapi.c:1393:52: warning: ISO C does not support ‘__FUNCTION__’ predefined identifier [-Wpedantic]
  lprintf(LOG_DEBUG, "%s: munmap(0x%x,%d) success", __FUNCTION__,

Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2020-10-04 22:12:47 +03:00
Heiko Thiery
e78144d2c7 lanplus: remove unused variable
Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2020-10-04 22:12:47 +03:00
Alexander Amelkin
7108884793 hpmfwupg: Clean up / refactor
- Drop a useless `extern` definition
- Remove static variable `errorCount` from header, move it to
  the c file where it is actually used if needed

Related to ipmitool/ipmitool#220

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2020-10-01 20:27:31 +03:00
Alexander Amelkin
1245aaa387 fru: Fix crashes on 6-bit ASCII strings
Fix calculation of the buffer size for decoded 6-bit ASCII
strings. Previously the program could allocate too a short buffer
that caused buffer overflows and segmentation fault crashes on
certain FRU contents.

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2020-09-16 13:26:53 +03:00
Alexander Amelkin
50d8c36edf Refix 6e037d6bfbbb93b349c8ca331ebde03a837f76bf
Restore using strncmp() for "options=" and similar
substrings.

Resolves ipmitool/ipmitool#223

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2020-08-07 10:53:06 +03:00
Alexander Amelkin
aee377bead
oem: Add product ID for YADRO VEGMAN
Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2020-07-23 13:41:11 +03:00
Ypnose
b302d8202c configure.ac: add '--location' for curl to follow location 2020-07-21 22:40:04 +03:00
Ypnose
3452cf1ca2 configure.ac: replace '-#' by '--progress-bar' with curl 2020-07-21 22:40:04 +03:00
Alexander Amelkin
f3ffa616e6
log: refix 16f937a1: Add missing header changes
Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2020-07-21 17:35:11 +03:00