History log of /openbmc/pldm/common/utils.cpp (Results 1 – 25 of 41)
Revision Date Author Comments
# a34a64bb 30-Mar-2022 Thu Nguyen <thu@os.amperecomputing.com>

Support numeric effecters in dbus-to-host-effecter

Adds support of the numeric effecter PDR (section `28.11 Numeric
Effecter PDR` DSP0248 V1.3.0) type in dbus-to-host-effecter handler.
This handler

Support numeric effecters in dbus-to-host-effecter

Adds support of the numeric effecter PDR (section `28.11 Numeric
Effecter PDR` DSP0248 V1.3.0) type in dbus-to-host-effecter handler.
This handler will be applied for all PLDM termini but not only host.
The setting for one numeric effecter of one device can be:
{
"mctp_eid": 20,
"effecter_info": {
"effecterPdrType": 9,
"effecterID": 2,
"entityType": 32903,
"entityInstance": 2,
"containerID": 2,
"compositeEffecterCount": 1,
"checkHostState": false
},
"effecters": [
{
"dbus_info": {
"object_path": "/xyz/openbmc_project/sensors/power/A",
"interface": "xyz.openbmc_project.Sensor.Value",
"property_name": "Value",
"property_type": "double"
},
"effecterDataSize": 5,
"resolution": 1,
"offset": 0,
"unitModifier": 0
}
]
}

Where:
+ effecterPdrType to difference state/numeric effecter type. Default
is state effecter.
+ effecterID should be effecter ID and should not empty.
+ checkHostState can be set to false to bypass checking host state.
+ effecterDataSize, resolution, offset, unitModifier are from numeric
effecter PDR (section `28.11 Numeric Effecter PDR` DSP0248 V1.3.0)

Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
Change-Id: I438d7f204643edd4066e8a6ba28d53a97503fc4b

show more ...


# 16c2a0a0 16-Aug-2024 Patrick Williams <patrick@stwcx.xyz>

clang-format: re-format for clang-18

clang-format-18 isn't compatible with the clang-format-17 output, so we
need to reformat the code with the latest version. The way clang-18
handles lambda forma

clang-format: re-format for clang-18

clang-format-18 isn't compatible with the clang-format-17 output, so we
need to reformat the code with the latest version. The way clang-18
handles lambda formatting also changed, so we have made changes to the
organization default style format to better handle lambda formatting.

See I5e08687e696dd240402a2780158664b7113def0e for updated style.
See Iea0776aaa7edd483fa395e23de25ebf5a6288f71 for clang-18 enablement.

Change-Id: I8c84201cb2343a8c8a5507a49de0721a1bee7063
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...


# b8cf46b8 14-Jun-2024 Thu Nguyen <thu@os.amperecomputing.com>

platform-mc: Terminus name handling

`PLDM-stack: Adding sensor monitoring section` design spec details that
the `Terminus name` is required to create the terminus's sensors,
states, effecters... D-B

platform-mc: Terminus name handling

`PLDM-stack: Adding sensor monitoring section` design spec details that
the `Terminus name` is required to create the terminus's sensors,
states, effecters... D-Bus interfaces and `Terminus Name` can be
encoded in the Terminus's `Entity Auxiliary Names PDR` or in the MCTP
Entity-manager endpoint EID configuration file.
[1] https://gerrit.openbmc.org/c/openbmc/docs/+/47252/34/designs/pldm-stack.md#433

Section `28.18 Entity Auxiliary Names PDR` in DSP0248 V1.2.2 details
about the PDRs response for the name of one PLDM entity. When the
containerID is `0x0000` this entity is `Overall system` or `top most
containing entity`. The name of this entity will can be used as
`Terminus name`.

Support parsing `Entity Auxiliary Names PDR` and find the `Terminus
name` if it is reponsed in the terminus' PDRs. `Terminus Name` string
will be assigned to local variable and can be used as prefix for
sensors, state, effecters... names.

Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
Change-Id: I701537c48651b9de86de77941b752e30de112916

show more ...


# 6c7fed4c 22-Feb-2022 Gilbert Chen <gilbert.chen@arm.com>

platform-mc: Added Terminus/TerminusManager class

Added requester::sendRecvPldmMsg awaiter type to be able to send and
receive PLDM message by coroutine.
Added TerminusManager to discover terminus f

platform-mc: Added Terminus/TerminusManager class

Added requester::sendRecvPldmMsg awaiter type to be able to send and
receive PLDM message by coroutine.
Added TerminusManager to discover terminus from EID list updated by
MCTPDiscovery class. The TerminusManager will initialize TID.

Signed-off-by: Gilbert Chen <gilbert.chen@arm.com>
Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
Change-Id: Ifa5bdfff50648f1d7fba8710e160de662e8f9e06

show more ...


# 516122e0 07-May-2024 Kamalkumar Patel <kamalkumar.patel@ibm.com>

Add Json Config support for entity to DBus string

The entity map comprises both entity types and their corresponding
names, essential for generating unique D-Bus paths for each entity.
However, chal

Add Json Config support for entity to DBus string

The entity map comprises both entity types and their corresponding
names, essential for generating unique D-Bus paths for each entity.
However, challenges arise due to variations in path generation across
companies, often dictated by differing entity types. To address this,
enabling configurability of EntityID becomes imperative, empowering
communities to tailor configurations to their specific use cases.

Testing:
Unit tests passed

Change-Id: I3981fde64bd00940caa5067a9472fd948e74cbf0
Signed-off-by: Kamalkumar Patel <kamalkumar.patel@ibm.com>

show more ...


# 4e69d252 10-May-2024 Kamalkumar Patel <kamalkumar.patel@ibm.com>

host-bmc: refine remote terminus functionality

This commit introduces support for migrating remote terminus-related
functionalities into the host-bmc directory, a move aimed at optimizing
remote ter

host-bmc: refine remote terminus functionality

This commit introduces support for migrating remote terminus-related
functionalities into the host-bmc directory, a move aimed at optimizing
remote terminus operations for future endeavors. By consolidating these
functionalities, tracking and implementing future enhancements become
more streamlined and manageable.

Change-Id: I52b6ced7acacb004b6055ae710193a959d986659
Signed-off-by: Kamalkumar Patel <kamalkumar.patel@ibm.com>

show more ...


# 76f2c60a 28-Mar-2024 Riya Dixit <riyadixitagra@gmail.com>

common & fw-update: Improving Logs (lg2)

This commit corrects the severity level of logs and also formats the
message string, fixing the ill-defined message string of the logs as
mentioned in the an

common & fw-update: Improving Logs (lg2)

This commit corrects the severity level of logs and also formats the
message string, fixing the ill-defined message string of the logs as
mentioned in the anti-pattern document [1]. Additionally, based on the
requirement this commit adds more debug information to logs.

[1]: https://github.com/openbmc/docs/blob/master/anti-patterns.md#ill-defined-data-structuring-in-lg2-message-strings

Change-Id: I1481c025b6dc6a9200a13de38a4fe55b81bb25ea
Signed-off-by: Riya Dixit <riyadixitagra@gmail.com>

show more ...


# 2ec8269f 29-Apr-2024 Pavithra Barithaya <pavithrabarithaya07@gmail.com>

Add getSubtreePaths utility functions

Added a getSubTreePaths utility function that can return the
subtree dbus paths that implement the particular dbus interface.

Change-Id: Ifb8f6d571bcb2291ca3a4

Add getSubtreePaths utility functions

Added a getSubTreePaths utility function that can return the
subtree dbus paths that implement the particular dbus interface.

Change-Id: Ifb8f6d571bcb2291ca3a47f285ebf46261646496
Signed-off-by: Pavithra Barithaya <pavithrabarithaya07@gmail.com>

show more ...


# 44524a5f 14-Feb-2022 Gilbert Chen <gilbert.chen@arm.com>

requester: Modified MctpDiscovery class

Modified MctpDiscovery class to take list of managers instead of single
fwManager. The change is for adding platform-mc manager.
Added loadStaticEndpoints API

requester: Modified MctpDiscovery class

Modified MctpDiscovery class to take list of managers instead of single
fwManager. The change is for adding platform-mc manager.
Added loadStaticEndpoints API for MCTP layer which doesn't implement
/xyz/openbmc_project/MCTP/Endpoint.Interface

The patch is part of implementation of design document below.
https://gerrit.openbmc-project.xyz/c/openbmc/docs/+/47252

Signed-off-by: Gilbert Chen <gilbert.chen@arm.com>
Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
Change-Id: I1e1673504583a87f2a9bc3adf76fb49c2dc30254

show more ...


# 09a89821 24-Apr-2024 Manojkiran Eda <manojkiran.eda@gmail.com>

common: modernize getCurrentSystemTime() API

Leverage `std::format` from c++20, which provides a more concise and
readable way to format strings compared to `std::stringstream`. Also use
zoned time

common: modernize getCurrentSystemTime() API

Leverage `std::format` from c++20, which provides a more concise and
readable way to format strings compared to `std::stringstream`. Also use
zoned time from c++20 chrono, which makes the API to handle different
time zones if needed & is more accurate.

Tested :
Before the fix the API returns: 2024-04-24 UTC 05:19:00.533100
With this patch the API returns: 2024-04-24 UTC 05:19:00.533266342

Change-Id: Ida3ae3bdd8901422303a1812a30346d19f6bb5cb
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>

show more ...


# cd4cd457 22-Apr-2024 Manojkiran Eda <manojkiran.eda@gmail.com>

common: Improve printBuffer() & added unit tests

This patchset is improved version of the existing code for several
reasons:

1.The code is more concise and easier to read. It uses modern C++
featur

common: Improve printBuffer() & added unit tests

This patchset is improved version of the existing code for several
reasons:

1.The code is more concise and easier to read. It uses modern C++
features such as `std::ranges::for_each` and `std::format`, which
express the intent of the code more clearly compared to the nested
if-else statements and manual formatting.

2.The code now has fewer lines of code and avoids the need for creating
and managing an `std::ostringstream` object manually, which simplifies
the function and reduces the risk of errors.

3.This patch uses type-safe range-based for loop and `uint8_t` type
directly, whereas the existing code uses `int` for iterating over the
buffer elements, which may lead to unintentional type conversions or
loss of precision.

4.While the performance impact may not be significant for this patch,
using `std::ranges::for_each` with lambdas might allow for more
optimization opportunities by the compiler compared to the traditional
loop used in existing code.

Overall, this patchset leverages modern C++ features to achieve the same
functionality in a more concise, readable, and type-safe manner, making
it preferable.

Change-Id: I7be547ade053638cb4ca459ee795195f6f0883bf
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>

show more ...


# 92fb0b55 17-Apr-2024 Manojkiran Eda <manojkiran.eda@gmail.com>

Revert "Adding severity when reporting an error"

This reverts commit d28f08cf0238435ac92184fabaafd9c76bff62cf.

Reason for revert : Pel severity is completely openpower-specific , we should not poll

Revert "Adding severity when reporting an error"

This reverts commit d28f08cf0238435ac92184fabaafd9c76bff62cf.

Reason for revert : Pel severity is completely openpower-specific , we should not polluting common code with IBM specific things, hence reverting this change for now.

Change-Id: If11721b1522097460ba07d51335b7ebbe821311a
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>

show more ...


# 754041d0 20-Feb-2024 Riya Dixit <riyadixitagra@gmail.com>

utils: Retrieval of managed objects of DBUS

This commit implements functionality to retrieve the managed object of a
specific DBUS service on a particular path. Additionally implements a
function t

utils: Retrieval of managed objects of DBUS

This commit implements functionality to retrieve the managed object of a
specific DBUS service on a particular path. Additionally implements a
function template for inventory objects which efficiently enables
retrieval of managed object for Inventory Manager.

Tested: Added unit test cases for checking the return value.

Change-Id: Ide652f843db1623bdacebf3e269e03895bbb7f1a
Signed-off-by: Riya Dixit <riyadixitagra@gmail.com>

show more ...


# d28f08cf 15-Dec-2021 Pavithra Barithaya <pavithra.b@ibm.com>

Adding severity when reporting an error

Severity is part of the PEL User Header section, and is used
to specify the PEL severity. This commit adds an option to pass
severity parameter while logging

Adding severity when reporting an error

Severity is part of the PEL User Header section, and is used
to specify the PEL severity. This commit adds an option to pass
severity parameter while logging PEL. This will help to classify PELs
based on their severity. The commit also maintains uniformity in
the PEL Error logged.

Tested: By creating the error logs(pel) in error scenarios.

Signed-off-by: Pavithra Barithaya <pavithra.b@ibm.com>
Change-Id: Ic084d49b8ffe9aaea2c36c9fefa95a10a9c1c3ec

show more ...


# 5e542be2 13-Aug-2021 Pavithra Barithaya <pavithra.b@ibm.com>

oem-ibm: Add util API for setting the present property

This commit adds a common function to set the present property
to true for all the present FRUs.

Signed-off-by: Pavithra Barithaya <pavithra.b

oem-ibm: Add util API for setting the present property

This commit adds a common function to set the present property
to true for all the present FRUs.

Signed-off-by: Pavithra Barithaya <pavithra.b@ibm.com>
Change-Id: Ia218f0de7883ff399e9dec60f03d88c27afed3e9

show more ...


# 75b8f464 07-Feb-2024 Patrick Williams <patrick@stwcx.xyz>

utils: simplify getDbusPropertyVariant

Remove the temporary object in order to simplify the code and enable
RVO.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: If7c8c8826e9f080a3e5f

utils: simplify getDbusPropertyVariant

Remove the temporary object in order to simplify the code and enable
RVO.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: If7c8c8826e9f080a3e5f8f62537d650c9b54c005

show more ...


# 7b4d59aa 05-Feb-2024 Pavithra Barithaya <pavithra.b@ibm.com>

Reducing the dbus string constants

There are a large number of dbus constants scattered throughout the
code that could/should be obtained from phosphor-dbus-interface values.
Some of the minor refac

Reducing the dbus string constants

There are a large number of dbus constants scattered throughout the
code that could/should be obtained from phosphor-dbus-interface values.
Some of the minor refactoring is done in this commit to reduce the
dbus string constants.

Change-Id: I2a8441e9ab275e8f2a72c3c79a6ed80e6e444f46
Signed-off-by: Pavithra Barithaya <pavithra.b@ibm.com>

show more ...


# 5db6e872 01-Dec-2023 Sagar Srinivas <sagar.srinivas@ibm.com>

Fix pldm bump fail

Fix for the bump CI failure on yosemite4 systems
https://gerrit.openbmc.org/c/openbmc/openbmc/+/68035

TESTED: Ran Bitbake for a yosemite4 obmc-phosphor-image

Signed-off-by: Saga

Fix pldm bump fail

Fix for the bump CI failure on yosemite4 systems
https://gerrit.openbmc.org/c/openbmc/openbmc/+/68035

TESTED: Ran Bitbake for a yosemite4 obmc-phosphor-image

Signed-off-by: Sagar Srinivas <sagar.srinivas@ibm.com>
Change-Id: I5f8766d31b6841bd5e337584779bbd3d59131ac0

show more ...


# 91a092f6 18-Sep-2023 vkaverap@in.ibm.com <vkaverap@in.ibm.com>

PLDM:Use new alias of DBUS_TIMEOUT for bus.call

This commit uses a new global variable for DBUS_TIMEOUT which is included as an input parameter for bus.call dbus calls. The new alias makes the bus.c

PLDM:Use new alias of DBUS_TIMEOUT for bus.call

This commit uses a new global variable for DBUS_TIMEOUT which is included as an input parameter for bus.call dbus calls. The new alias makes the bus.call function shorter and readable.

Change-Id: I336c97bc0631d5370ff3648e41f50e3e283d771b
Signed-off-by: vkaverap@in.ibm.com <vkaverap@in.ibm.com>

show more ...


# 5b71b86f 21-Aug-2023 vkaverap@in.ibm.com <vkaverap@in.ibm.com>

PLDM: 5 sec timeout for dbus calls without reply

This commit adds 5 second dbus timeout value to dbus calls with no reply. Previously a commit was merged that included 5 seconds dbus timeout value f

PLDM: 5 sec timeout for dbus calls without reply

This commit adds 5 second dbus timeout value to dbus calls with no reply. Previously a commit was merged that included 5 seconds dbus timeout value for all dbus call with reply.

This is added to make sure PLDM does not wait for more than 5 seconds when a dbus call is made with or without reply if no response is received from other daemon or host.

The 5 second timeout value is overridden to 10 seconds in meta-ibm layer

Change-Id: Ic20005d903732ac58bb22a657bf1b0c07439d435
Signed-off-by: vkaverap@in.ibm.com <vkaverap@in.ibm.com>

show more ...


# df9a6d34 22-Dec-2020 George Liu <liuxiwei@inspur.com>

Handle entity association records from host

- Get the PDRs from host, traverse the entity association structure
and construct the D-Bus object path according to the entity type ID
and container

Handle entity association records from host

- Get the PDRs from host, traverse the entity association structure
and construct the D-Bus object path according to the entity type ID
and container type ID.

- eg:
/xyz/openbmc_project/inventory/system1/chassis1/io_board1/powersupply1
/xyz/openbmc_project/inventory/system1/chassis1/io_board1/powersupply2
/xyz/openbmc_project/inventory/system1/chassis2/io_board2/powersupply1
/xyz/openbmc_project/inventory/system1/chassis2/io_board2/powersupply2

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: I1c606ea943624f2601be4f5f6b5c30d1bf71cd11

show more ...


# 47792274 13-Jun-2023 Andrew Jeffery <andrew@aj.id.au>

pldm: Include config.h via compiler argument

This removes any ambiguity about which config.h is being included.
Subprojects such as libpldm and phosphor-logging also generate config.h
files, and the

pldm: Include config.h via compiler argument

This removes any ambiguity about which config.h is being included.
Subprojects such as libpldm and phosphor-logging also generate config.h
files, and these are exposed in the include path.

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Change-Id: I3e0ccd6339f088380ffa29d41167b07aefc7dd16

show more ...


# 9138c209 19-May-2023 vkaverap@in.ibm.com <vkaverap@in.ibm.com>

PLDM : Change the dbus timeout to 5 seconds

Dbus timeout value for every dbus call in PLDM is set to 5 seconds
instead of default 25 seconds so that all dbus calls that expect a
reply exists after 5

PLDM : Change the dbus timeout to 5 seconds

Dbus timeout value for every dbus call in PLDM is set to 5 seconds
instead of default 25 seconds so that all dbus calls that expect a
reply exists after 5 seconds if there is no response from the client.
While BMC is still waiting for a response on any dbus calls it is
possible that host can timeout and return an error.
Another reason is that memory address from where BMC would read data
sent by host may get deallocated after 20 seconds and it is possible
for this to happen even before BMC has read the data. This has lead
to DMA issues.

Tested by adding a sleep for 10 seconds inside main function of
phospher-host-postd and executed get dbus property on snoopd
interface from pldm. PLDM dbus call timed out after 5 seconds.

Change-Id: I1aa1b4ad7fceff2224a3ccc3bcf6abd5705963bc
Signed-off-by: Varsha Kaverappa <vkaverap@in.ibm.com>

show more ...


# 6da4f91b 10-May-2023 Patrick Williams <patrick@stwcx.xyz>

clang-format: copy latest and re-format

clang-format-16 has some backwards incompatible changes that require
additional settings for best compatibility and re-running the formatter.
Copy the latest

clang-format: copy latest and re-format

clang-format-16 has some backwards incompatible changes that require
additional settings for best compatibility and re-running the formatter.
Copy the latest .clang-format from the docs repository and reformat the
repository.

Change-Id: I61b093f75011417cc9c7acf9605200f4fa429bac
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...


# 49cfb138 02-Mar-2023 Riya Dixit <riyadixitagra@gmail.com>

PLDM: Implementing Phosphor-Logging/LG2 logging

This commit adds changes in PLDM for implementing
structured LG2 logging, thereby moving away from
std::cout/cerr practice of logging which are
output

PLDM: Implementing Phosphor-Logging/LG2 logging

This commit adds changes in PLDM for implementing
structured LG2 logging, thereby moving away from
std::cout/cerr practice of logging which are
output streams and not logging mechanism.

PLDM now can make use of lg2 features like accurate
CODE LINE Number and CODE_FUNCTION Name and better
detailing in json object values which can be used in
log tracking.

More detailed logging change:
https://gist.github.com/riyadixitagra/c251685c1ba84248181891f7bc282395

Tested:
Ran a power off, on, cycle, and reset-reload.

Change-Id: I0485035f15f278c3fd172f0581b053c1c37f3a5b
Signed-off-by: Riya Dixit <riyadixitagra@gmail.com>

show more ...


12