Home
last modified time | relevance | path

Searched full:pldm (Results 1 – 25 of 498) sorted by relevance

12345678910>>...20

/openbmc/pldm/requester/test/
H A Dmctp_endpoint_discovery_test.cpp16 static const pldm::Configurations& getConfigurations( in getConfigurations()
17 const pldm::MctpDiscovery& mctpDiscovery) in getConfigurations()
21 static void searchConfigurationFor(pldm::MctpDiscovery& mctpDiscovery, in searchConfigurationFor()
22 pldm::utils::DBusHandler& handler, in searchConfigurationFor()
23 pldm::MctpInfo& mctpInfo) in searchConfigurationFor()
31 auto& bus = pldm::utils::DBusHandler::getBus(); in TEST()
32 pldm::MockManager manager; in TEST()
36 auto mctpDiscoveryHandler = std::make_unique<pldm::MctpDiscovery>( in TEST()
37 bus, std::initializer_list<pldm::MctpDiscoveryHandlerIntf*>{&manager}); in TEST()
43 auto& bus = pldm::utils::DBusHandler::getBus(); in TEST()
[all …]
/openbmc/docs/designs/
H A Dpldm-stack.md1 # PLDM stack on OpenBMC
16 This design aims to employ Platform Level Data Model (PLDM), a standard
17 application layer communication protocol defined by the DMTF. PLDM draws inputs
18 from IPMI, but it overcomes most of the latter's limitations. PLDM is also
21 channels, by defining hardware bindings. The solution of PLDM over MCTP also
24 PLDM's purpose is to enable all sorts of "inside the box communication": BMC -
30 PLDM is designed to be an effective interface and data model that provides
33 fan sensors can have a PLDM representation that can be used to monitor and
34 control the platform using a set of PLDM messages. PLDM defines data
37 PLDM groups commands under broader functions, and defines separate
[all …]
/openbmc/libpldm/include/libpldm/
H A Dbase.h21 /** @brief PLDM Types
35 /** @brief PLDM Commands
50 /** @brief PLDM base codes
113 /** @brief PLDM transport protocol type
122 * The different message types supported by the PLDM specification.
125 PLDM_RESPONSE, //!< PLDM response
126 PLDM_REQUEST, //!< PLDM request
128 PLDM_ASYNC_REQUEST_NOTIFY, //!< Unacknowledged PLDM request messages
163 /** @brief Minimum length of response for a optional PLDM command
165 * For a optional PLDM command, the command handler might not be
[all …]
H A Dtransport.h10 #include <libpldm/pldm.h>
17 * @brief Waits for a PLDM event.
19 * @pre The pldm transport instance must be initialised; otherwise,
34 * @brief Asynchronously send a PLDM message. Control is immediately returned to
37 * @pre The pldm transport instance must be initialised; otherwise,
42 * @param[in] ctx - pldm transport instance
43 * @param[in] tid - destination PLDM TID
44 * @param[in] pldm_msg - caller owned pointer to PLDM msg. If this is NULL,
46 * @param[in] msg_len - size of PLDM msg. If this is less than the minimum size
47 * of a PLDM msg PLDM_REQUESTER_NOT_REQ_MSG is returned.
[all …]
/openbmc/pldm/pldmtool/
H A DREADME.md3 pldmtool is a client tool that acts as a PLDM requester which runs on the BMC.
8 pldmtool supports the subcommands for PLDM types such as base, platform, bios,
12 - Consumes pldm/libpldm encode and decode functions.
14 - Enables writing functional test cases for PLDM stack.
16 please refer the [DMTF PLDM specifications](https://www.dmtf.org/) with respect
17 to the pldm types.
21 Source files in pldmtool repository are named with respect to the PLDM type.
29 pldmtool commands for corresponding PLDM type is constructed with the help of
30 encode request and decode response APIs which are implemented in pldm/libpldm.
34 Given a PLDM command "foo" of PLDM type "base" the pldmtool should consume
[all …]
/openbmc/openbmc-test-automation/pldm/
H A Dtest_pldm_base.robot3 Documentation Module to test PLDM base commands.
15 Verify Get PLDM Types
16 [Documentation] Verify supported PLDM types.
23 ${cmd}= Catenate ${pldm_output}[${i}][PLDM Type Code](${pldm_output}[${i}][PLDM Type])
28 Verify Get PLDM Version For Base
29 [Documentation] Verify supported PLDM version for base type.
36 Verify Get PLDM Version For Platform
37 [Documentation] Verify supported PLDM version for platform type.
45 Verify Get PLDM Version For BIOS
46 [Documentation] Verify supported PLDM version for BIOS type.
[all …]
/openbmc/pldm/
H A DREADME.md1 # PLDM - Platform Level Data Model
7 PLDM (Platform Level Data Model) is a key component of the OpenBMC project,
12 The OpenBMC PLDM project aims to implement the specifications defined by the
18 - **Standardized Messaging:** Adheres to the DMTF's PLDM specifications,
21 - **Modularity:** Supports multiple PLDM types, including base, FRU,Firmware
23 - **Extensibility:** Easily extendable to support new PLDM types and custom OEM
32 To build and run PLDM, you need the following dependencies:
41 To build the PLDM project, follow these steps:
59 ### To enable pldm verbosity
61 pldm daemon accepts a command line argument `--verbose` or `--v` or `-v` to
[all …]
/openbmc/pldm/platform-mc/
H A Devent_manager.cpp16 namespace pldm namespace
34 /* EventClass sensorEvent `Table 11 - PLDM Event Types` DSP0248 */ in handlePlatformEvent()
70 /* EventClass CPEREvent as `Table 11 - PLDM Event Types` DSP0248 V1.3.0 */ in handlePlatformEvent()
76 /* EventClass pldmMessagePollEvent `Table 11 - PLDM Event Types` DSP0248 */ in handlePlatformEvent()
162 sensor->triggerThresholdEvent(pldm::utils::Level::WARNING, in processNumericSensorEvent()
163 pldm::utils::Direction::HIGH, in processNumericSensorEvent()
166 pldm::utils::Level::CRITICAL, in processNumericSensorEvent()
167 pldm::utils::Direction::HIGH, value, true, true); in processNumericSensorEvent()
172 pldm::utils::Level::WARNING, in processNumericSensorEvent()
173 pldm::utils::Direction::HIGH, value, true, true); in processNumericSensorEvent()
[all …]
H A Dterminus_manager.hpp10 #include <libpldm/pldm.h>
20 namespace pldm namespace
42 * TerminusManager class to discover and initialize PLDM terminus.
56 pldm::InstanceIdDb& instanceIdDb, TerminiMapper& termini, in TerminusManager()
79 /** @brief Send request PLDM message to tid. The function will return when
85 * @param[in] request - request PLDM message
86 * @param[out] responseMsg - response PLDM message
87 * @param[out] responseLen - length of response PLDM message
88 * @return coroutine return_value - PLDM completion code
94 /** @brief Send request PLDM message to eid. The function will
[all …]
/openbmc/pldm/requester/
H A DREADME.md3 PLDM requester infrastructure enables the requester code in PLDM daemon to meet
4 the requirements of PLDM requesters. It provides the following features:
6 - Register a PLDM request and the response handler to be invoked on receiving
8 - The handling of the request and response is asynchronous. This means the PLDM
17 - Handle ERROR_NOT_READY completion code and retry the PLDM request after 250ms
20 The requester code needs to use the `registerRequest` API to register the PLDM
21 request. The destination endpoint ID, instance ID, PLDM type, PLDM command code,
22 PLDM request message (PLDM header and payload) and response function handler are
27 uint8_t command, pldm::Request&& requestMsg,
40 - If the response does not match with the PLDM instance ID, PLDM type and PLDM
H A Drequest.hpp21 namespace pldm namespace
27 * The abstract base class for implementing the PLDM request retry logic. This
28 * class handles number of times the PLDM request needs to be retried if the
44 * @param[in] event - reference to PLDM daemon's main event loop
97 sdeventplus::Event& event; //!< reference to PLDM daemon's main event loop
103 /** @brief Sends the PLDM request message
126 * to send the PLDM request message over MCTP socket.
127 * This class encapsulates the PLDM request message, the number of times the
144 * @param[in] pldm_transport - PLDM transport object
147 * @param[in] event - reference to PLDM daemon's main event loop
[all …]
/openbmc/pldm/softoff/
H A Dsoftoff.cpp24 namespace pldm namespace
36 pldm::pdr::TerminusID TID = 0;
41 pldm::InstanceIdDb& instanceIdDb) : in SoftPowerOff()
62 pldm::pdr::EntityType entityType = entry.value("entityType", 0); in SoftPowerOff()
63 pldm::pdr::StateSetId stateSetId = entry.value("stateSetId", 0); in SoftPowerOff()
84 // Matches on the pldm StateSensorEvent signal in SoftPowerOff()
88 sdbusRule::path("/xyz/openbmc_project/pldm") + in SoftPowerOff()
89 sdbusRule::interface("xyz.openbmc_project.PLDM.Event"), in SoftPowerOff()
98 pldm::utils::PropertyValue propertyValue = in getHostState()
99 pldm::utils::DBusHandler().getDbusPropertyVariant( in getHostState()
[all …]
H A Dsoftoff.hpp14 namespace pldm namespace
28 * @param[in] instanceDb - pldm instance database
33 /** @brief Is the pldm-softpoweroff has error.
34 * if hasError is true, that means the pldm-softpoweroff failed to
35 * trigger the host soft off,so the pldm-softpoweroff will exit.
56 /** @brief Is receive the response for the PLDM request msg.
63 /** @brief Send PLDM Set State Effecter States command and
113 bool getEffecterID(pldm::pdr::EntityType& entityType,
114 pldm::pdr::StateSetId& stateSetId);
124 int getSensorInfo(pldm::pdr::EntityType& entityType,
[all …]
/openbmc/pldm/host-bmc/
H A Ddbus_to_event_handler.hpp11 namespace pldm namespace
16 std::map<SensorId, std::tuple<pldm::responder::pdr_utils::DbusMappings,
17 pldm::responder::pdr_utils::DbusValMaps>>;
21 std::map<pldm::pdr::SensorID, pldm::responder::pdr_utils::EventStates>;
26 * @brief This class can listen to the state sensor PDRs and send PLDM event
43 * @param[in] handler - PLDM request handler
46 int mctp_fd, uint8_t mctp_eid, pldm::InstanceIdDb& instanceIdDb,
47 pldm::requester::Handler<pldm::requester::Request>* handler);
54 void listenSensorEvent(const pldm::responder::pdr_utils::Repo& repo,
68 inline void updateSensorCacheMaps(pldm::pdr::SensorID sensorId, in updateSensorCacheMaps()
[all …]
/openbmc/pldm/libpldmresponder/
H A Dfru_parser.hpp11 namespace pldm namespace
48 std::tuple<pldm::responder::dbus::Service, pldm::responder::dbus::RootPath,
49 pldm::responder::dbus::Interfaces>;
51 pldm::responder::dbus::Interface, pldm::responder::dbus::Property,
52 pldm::responder::dbus::PropertyType, pldm::responder::fru::FieldType>;
55 std::tuple<pldm::responder::fru::RecordType,
56 pldm::responder::fru::EncodingType, std::vector<FieldInfo>>;
64 * @brief Parses the PLDM FRU configuration files to populate the data
66 * inventory information into PLDM FRU Record.
90 /** @brief Get the information need to create PLDM FRU records for a
[all …]
H A Dplatform.hpp25 namespace pldm namespace
32 const pldm::utils::DBusHandler& dBusIntf, const pldm::utils::Json& json,
52 Handler(const pldm::utils::DBusHandler* dBusIntf, uint8_t eid, in Handler()
53 pldm::InstanceIdDb* instanceIdDb, const fs::path& pdrJsonDir, in Handler()
55 pldm::state_sensor::DbusToPLDMEvent* dbusToPLDMEventHandler, in Handler()
57 pldm::responder::platform_config::Handler* platformConfigHandler, in Handler()
58 pldm::requester::Handler<pldm::requester::Request>* handler, in Handler()
106 // Default handler for PLDM Events
121 // Additional OEM event handlers for PLDM events, append it to the
161 pldm::responder::pdr_utils::TypeId typeId =
[all …]
/openbmc/pldm/oem/ibm/libpldmresponder/
H A Dfile_io.hpp26 namespace pldm namespace
84 * @param[in] command - PLDM command
92 * @return PLDM response message
125 pldm::utils::CustomFD fd(file); in transferAll()
165 "xyz.openbmc_project.PLDM.Provider.Certs.Authority.CSR";
170 uint8_t hostEid, pldm::InstanceIdDb* instanceIdDb, in Handler()
171 pldm::requester::Handler<pldm::requester::Request>* handler) : in Handler()
247 pldm::utils::DBusHandler::getBus(), in Handler()
280 std::make_unique<pldm::requester::oem_ibm:: in Handler()
290 pldm::utils::DBusHandler::getBus(), in Handler()
[all …]
H A Doem_ibm_handler.hpp21 namespace pldm namespace
37 const pldm::pdr::TerminusID HYPERVISOR_TID = 208;
49 Handler(const pldm::utils::DBusHandler* dBusIntf, in Handler()
50 pldm::responder::CodeUpdate* codeUpdate, in Handler()
51 pldm::responder::SlotHandler* slotHandler, int mctp_fd, in Handler()
52 uint8_t mctp_eid, pldm::InstanceIdDb& instanceIdDb, in Handler()
54 pldm::requester::Handler<pldm::requester::Request>* handler) : in Handler()
68 pldm::utils::DBusHandler::getBus(), in Handler()
72 pldm::utils::DbusChangedProps props{}; in Handler()
78 pldm::utils::PropertyValue value = itr->second; in Handler()
[all …]
H A Dfile_io_by_type.hpp5 namespace pldm namespace
27 * @param[in] oemPlatformHandler - oem handler for PLDM platform related
29 * @return PLDM status code
41 * @param[in] oemPlatformHandler - oem handler for PLDM platform related
43 * @return PLDM status code
49 /** @brief Method to read an oem file type's content into the PLDM response.
52 * @param[in] response - PLDM response
53 * @param[in] oemPlatformHandler - oem handler for PLDM platform related
55 * @return PLDM status code
64 * @param[in] oemPlatformHandler - oem handler for PLDM platform related
[all …]
/openbmc/pldm/pldmd/
H A Dinvoker.hpp10 namespace pldm namespace
21 /** @brief Register a handler for a PLDM Type
23 * @param[in] pldmType - PLDM type code
24 * @param[in] handler - PLDM Type handler
31 /** @brief Invoke a PLDM command handler
33 * @param[in] tid - PLDM request TID
34 * @param[in] pldmType - PLDM type code
35 * @param[in] pldmCommand - PLDM command code
36 * @param[in] request - PLDM request message
37 * @param[in] reqMsgLen - PLDM request message size
[all …]
H A Doem_ibm.hpp17 namespace pldm namespace
22 using namespace pldm::state_sensor;
23 using namespace pldm::dbus_api;
58 const pldm::utils::DBusHandler* dBusIntf, int mctp_fd, uint8_t mctp_eid, in OemIBM()
59 pldm_pdr* repo, pldm::InstanceIdDb& instanceIdDb, in OemIBM()
65 pldm::requester::Handler<pldm::requester::Request>* reqHandler) : in OemIBM()
99 codeUpdate = std::make_unique<pldm::responder::CodeUpdate>(dBusIntf); in createCodeUpdate()
107 std::make_unique<pldm::responder::SlotHandler>(event, repo); in createSlotHandler()
126 dynamic_cast<pldm::responder::oem_ibm_platform::Handler*>( in createOemIbmPlatformHandler()
146 oemIbmFruHandler = dynamic_cast<pldm::responder::oem_ibm_fru::Handler*>( in createOemIbmFruHandler()
[all …]
/openbmc/pldm/common/test/
H A Dmocked_utils.hpp6 namespace pldm namespace
23 } // namespace pldm
28 static pldm::utils::ObjectValueTree getManagedObj(const char* /*service*/, in getManagedObj()
31 return pldm::utils::ObjectValueTree{}; in getManagedObj()
38 static pldm::utils::ObjectValueTree getManagedObj(const char* /*service*/, in getManagedObj()
41 return pldm::utils::ObjectValueTree{ in getManagedObj()
54 class MockdBusHandler : public pldm::utils::DBusHandler
61 (const pldm::utils::DBusMapping&,
62 const pldm::utils::PropertyValue&),
65 MOCK_METHOD(pldm::utils::PropertyValue, getDbusPropertyVariant,
[all …]
/openbmc/openpower-occ-control/
H A Dpldm.hpp8 #include <libpldm/pldm.h>
25 namespace pldm namespace
54 * @brief Abstracts the PLDM details related to the OCC
66 /** @brief Constructs the PLDM Interface object for OCC functions
90 MatchRules::path("/xyz/openbmc_project/pldm") + in Interface()
91 MatchRules::interface("xyz.openbmc_project.PLDM.Event"), in Interface()
152 * @return PLDM request message to be sent to host for OCC reset or SBE
159 /** @brief Send the PLDM message to reset the OCC
166 /** @brief Send the PLDM message to perform the HRESET
187 /** @brief PLDM instance ID database object used to get instance IDs
[all …]
/openbmc/phosphor-dbus-interfaces/yaml/xyz/openbmc_project/PLDM/
H A DEvent.interface.yaml2 Implement to emit D-Bus signal for PLDM Event Messages. PLDM Event Messages
3 are PLDM monitoring and control messages that are used by a PLDM terminus to
4 synchronously or asynchronously report PLDM events to a central party called
5 the PLDM Event Receiver.
7 When the PLDM daemon receives a sensorEvent of type stateSensorState, it
10 This signal would be used by PLDM Requester apps on the BMC, which will rely
11 on this signal to determine state changes on a connected PLDM entity.
13 More information about PLDM Event Messages can be found at DSP0248 version
31 The sensorID is the value that is used in PDRs and PLDM sensor
/openbmc/pldm/host-bmc/dbus/
H A Dcustom_dbus.cpp3 namespace pldm namespace
13 pldm::utils::DBusHandler::getBus(), path.c_str())); in setLocationCode()
35 pldm::utils::DBusHandler::getBus(), path)); in implementCpuCoreInterface()
44 pldm::utils::DBusHandler::getBus(), path)); in setMicroCode()
64 pldm::utils::DBusHandler::getBus(), path)); in implementPCIeSlotInterface()
72 pldm::dbus::PCIeSlot::convertSlotTypesFromString(slotType); in setSlotType()
84 pldm::utils::DBusHandler::getBus(), path)); in implementPCIeDeviceInterface()
92 pldm::dbus::PCIeSlot::convertGenerationsFromString(value); in setPCIeDeviceProps()
106 pldm::utils::DBusHandler::getBus(), path)); in implementCableInterface()
126 pldm::utils::DBusHandler::getBus(), path)); in implementMotherboardInterface()
[all …]

12345678910>>...20