pldmd: do not exit on recv fail with af-mctp transport Under the Linux kernel AF_MCTP transport, transient receive failures (e.g., PLDM_REQUESTER_RECV_FAIL returned when a downstream endpoint is resetting, disconnected, or sending unmapped packets) do not indicate that the underlying transport socket has been closed by a daemon. Exiting the event loop on PLDM_REQUESTER_RECV_FAIL was originally introduced for mctp-demux UNIX domain sockets, where recv failure indicated the demux daemon process had terminated. In the AF_MCTP architecture, this causes pldmd to terminate and restart unnecessarily whenever a downstream device resets. Restrict the socket-close exit logic to PLDM_TRANSPORT_WITH_MCTP_DEMUX so that AF_MCTP logs a warning and continues event processing. Tested: Verified error handling for AF_MCTP transport. Google-Bug-Id: 543041824 Change-Id: I5c1b0c0b57dd6e27d173bdceaf0cd80010b0afee Signed-off-by: Guangzong Chen <guangzong@google.com> TAG=agy CONV=f6e4e885-dc2d-47ba-99c7-be407d766de9
PLDM (Platform Level Data Model) is a key component of the OpenBMC project, providing a standardized data model and message formats for various platform management functionalities. It defines a method to manage, monitor, and control the firmware and hardware of a system.
The OpenBMC PLDM project aims to implement the specifications defined by the Distributed Management Task Force (DMTF), allowing for interoperable management interfaces across different hardware and firmware components.
To build and run PLDM, you need the following dependencies:
MesonNinjaAlternatively, source an OpenBMC ARM/x86 SDK.
To build the PLDM project, follow these steps:
meson setup build && meson compile -C build
The simplest way of running the tests is as described by the meson man page:
meson test -C build
Alternatively, tests can be run in the OpenBMC CI docker container using these steps.
pldm daemon accepts a command line argument --verbose or --v or -v to enable the daemon to run in verbose mode. It can be done via adding this option to the environment file that pldm service consumes.
echo 'PLDMD_ARGS="--verbose"' > /etc/default/pldmd systemctl restart pldmd
rm /etc/default/pldmd systemctl restart pldmd
For complete documentation on the functionality and usage of this repository, please refer to the docs folder.