Home
last modified time | relevance | path

Searched full:pel (Results 1 – 25 of 231) sorted by relevance

12345678910

/openbmc/phosphor-logging/test/openpower-pels/
H A Drepository_test.cpp31 * And because we have PEL object, also clean up
73 auto pel = std::make_unique<PEL>(data); in TEST_F() local
75 repo.add(pel); in TEST_F()
77 // Check that the PEL was stored where it was supposed to be, in TEST_F()
78 // and that it wrote the PEL data. in TEST_F()
79 const auto ts = pel->privateHeader().commitTimestamp(); in TEST_F()
80 auto name = Repository::getPELFilename(pel->id(), ts); in TEST_F()
86 auto pelData = pel->data(); in TEST_F()
89 EXPECT_EQ(repo.lastPelID(), pel->id()); in TEST_F()
94 using pelID = Repository::LogID::Pel; in TEST_F()
[all …]
H A Dhost_notifier_test.cpp78 * @brief Create PEL with the specified action flags
82 * @return std::unique_ptr<PEL>
84 std::unique_ptr<PEL> makePEL(uint16_t actionFlagsMask = 0) in makePEL()
92 auto pel = std::make_unique<PEL>(data, obmcID++); in makePEL() local
93 pel->assignID(); in makePEL()
94 pel->setCommitTime(); in makePEL()
95 return pel; in makePEL()
162 auto pel = makePEL(); in TEST_F() local
163 repo.add(pel); in TEST_F()
166 EXPECT_TRUE(notifier.enqueueRequired(pel->id())); in TEST_F()
[all …]
H A Dpel_test.cpp18 #include "extensions/openpower-pels/pel.hpp"
63 auto pel = std::make_unique<PEL>(data); in TEST_F() local
66 EXPECT_TRUE(pel->valid()); in TEST_F()
67 EXPECT_EQ(pel->id(), 0x80818283); in TEST_F()
68 EXPECT_EQ(pel->plid(), 0x50515253); in TEST_F()
69 EXPECT_EQ(pel->userHeader().subsystem(), 0x10); in TEST_F()
70 EXPECT_EQ(pel->userHeader().actionFlags(), 0x80C0); in TEST_F()
73 auto flattenedData = pel->data(); in TEST_F()
75 EXPECT_EQ(flattenedData.size(), pel->size()); in TEST_F()
81 auto pel = std::make_unique<PEL>(data); in TEST_F() local
[all …]
/openbmc/phosphor-logging/extensions/openpower-pels/
H A Drepository.cpp95 PEL pel{data}; in restore() local
96 if (pel.valid()) in restore()
100 if (pel.hostTransmissionState() == TransmissionState::sent) in restore()
102 pel.setHostTransmissionState(TransmissionState::newPEL); in restore()
105 write(pel, dirEntry.path()); in restore()
110 "Failed to save PEL after updating host state, PEL ID = {ID}", in restore()
111 "ID", lg2::hex, pel.id()); in restore()
118 pel.privateHeader().creatorID(), in restore()
119 pel.userHeader().subsystem(), in restore()
120 pel.userHeader().severity(), in restore()
[all …]
H A Dmanager.hpp11 #include "pel.hpp"
15 #include <org/open_power/Logging/PEL/Entry/server.hpp>
16 #include <org/open_power/Logging/PEL/server.hpp>
28 sdbusplus::org::open_power::Logging::server::PEL>;
31 * @brief PEL manager object
102 * @brief Creates a PEL based on the OpenBMC event log contents. If
103 * a PEL was passed in via the RAWPEL specifier in the
122 * @brief Erase a PEL based on its OpenBMC event log ID
137 * time because its corresponding PEL cannot be.
139 * There are PEL retention policies that can prohibit the manual deletion
[all …]
H A Drepository.hpp4 #include "pel.hpp"
25 * @brief Structure of commonly used PEL attributes.
57 * @brief A structure that holds both the PEL and corresponding
60 * lookup. To find a PEL based on just one of the IDs, just use
65 struct Pel struct
68 explicit Pel(uint32_t i) : id(i) {} in Pel() argument
76 Pel pelID;
80 LogID(Pel pel, Obmc obmc) : pelID(pel), obmcID(obmc) {} in LogID()
82 explicit LogID(Pel id) : pelID(id), obmcID(0) {} in LogID()
91 * one can look up a PEL with just one of the IDs.
[all …]
H A Dhost_notifier.hpp4 #include "pel.hpp"
27 * The high level good path flow for sending a single PEL is:
29 * 1) Send the ID and size of the new PEL to the host.
32 * 2) The host reads the raw PEL data (outside of this class).
34 * 3) The host sends the PEL to the OS, and then sends an AckPEL
38 * After this, a PEL never needs to be sent again, but if the
46 * PELs from being sent, and the first PEL that hits this will have
61 * @param[in] repo - The PEL repository object
74 * @brief Returns the PEL queue size.
86 * @brief Specifies if the PEL needs to go onto the queue to be
[all …]
H A Dmanager.cpp21 #include "pel.hpp"
82 // If a PEL was passed in via a filename or in an ESEL, in create()
118 "Filesystem error reading a raw PEL. File = {FILE}, obmcLogID = {LOGID}", in addRawPEL()
134 "Raw PEL file from BMC event log does not exit. File = {FILE}, obmcLogID = {LOGID}", in addRawPEL()
141 auto pel = std::make_unique<openpower::pels::PEL>(pelData, obmcLogID); in addPEL() local
142 if (pel->valid()) in addPEL()
145 pel->setCommitTime(); in addPEL()
147 // Assign Id other than to Hostbot PEL in addPEL()
148 if ((pel->privateHeader()).creatorID() != in addPEL()
151 pel->assignID(); in addPEL()
[all …]
H A DREADME.md1 # OpenPower Platform Event Log (PEL) extension
4 to point to the raw PEL to use in the OpenBMC event, and then that will be used
9 - [Passing in data when creating PELs](#passing-pel-related-data-within-an-openbmc-event-log)
11 - [The PEL Message Registry](#the-pel-message-registry)
15 - [PEL Retention](#pel-retention)
16 - [Adding python3 modules for PEL UserData and SRC parsing](#adding-python3-modules-for-pel-userdat…
19 - [PEL Archiving](#pel-archiving)
22 ## Passing PEL related data within an OpenBMC event log
24 An error log creator can pass in data that is relevant to a PEL by using certain
31 This keyword is used to point to an existing PEL in a binary file that should be
[all …]
H A Dpel.hpp37 /** @class PEL
42 * Every field in a PEL are in structures call sections, of which there are
46 * The only two required sections for every type of PEL are the Private Header
56 * - From a full formed flattened PEL.
57 * - From scratch based on an OpenBMC event and its corresponding PEL message
60 * The data() method allows one to retrieve the PEL as a vector<uint8_t>. This
63 class PEL class
66 PEL() = delete;
67 ~PEL() = default;
68 PEL(const PEL&) = delete;
[all …]
H A Dservice_indicators.hpp4 #include "pel.hpp"
34 * based on PEL contents.
36 * @param[in] pel - The PEL
38 virtual void activate(const PEL& pel) = 0;
75 * @brief Turns on LEDs for certain FRUs called out in the PEL.
90 * @param[in] pel - The PEL
92 void activate(const PEL& pel) override;
100 * @param[in] callouts - The Callout list from a PEL
116 * @param[in] pel - The PEL
118 * @return bool - If the PEL should be ignored or not.
[all …]
H A Dhost_notifier.cpp83 bool HostNotifier::addPELToQueue(const PEL& pel) in addPELToQueue() argument
85 if (enqueueRequired(pel.id())) in addPELToQueue()
87 _pelQueue.push_back(pel.id()); in addPELToQueue()
97 Repository::LogID i{Repository::LogID::Pel{id}}; in enqueueRequired()
127 lg2::error("Host Enqueue: Unable to find PEL ID {ID} in repository", in enqueueRequired()
138 Repository::LogID i{Repository::LogID::Pel{id}}; in notifyRequired()
170 void HostNotifier::newLogCallback(const PEL& pel) in newLogCallback() argument
172 if (!enqueueRequired(pel.id())) in newLogCallback()
177 lg2::debug("New PEL added to queue, PEL ID = {ID}", "ID", lg2::hex, in newLogCallback()
178 pel.id()); in newLogCallback()
[all …]
H A Dseverity.hpp14 * @brief Convert an OpenBMC event log severity to a PEL severity
18 * @return uint8_t - The PEL severity value
24 * current LogSeverity and PEL severity.
27 * sync with the PEL severity:
28 * - critical PEL but non critical LogSeverity
29 * - info PEL but non info LogSeverity
30 * - non info PEL but info LogSeverity
33 * @param[in] pelSeverity - The PEL severity
/openbmc/phosphor-dbus-interfaces/yaml/org/open_power/Logging/
H A DPEL.interface.yaml6 Returns a file descriptor to a PEL.
11 The PEL log ID of the PEL to retrieve.
16 A file descriptor for a file that contains the PEL.
23 Returns PEL data based on the OpenBMC event log ID.
28 The OpenBMC event log ID of the PEL to retrieve.
33 The PEL data
39 Notifies the PEL handler that the host (usually the OS) acked a PEL.
44 The PEL log ID
50 Notifies the PEL handler that the host could not process a PEL.
55 The PEL log ID
[all …]
/openbmc/openbmc-test-automation/openpower/pel/
H A Dtest_bmc_pel.robot2 Documentation This suite tests Platform Event Log (PEL) functionality of OpenBMC.
27 Create Test PEL Log And Verify
28 [Documentation] Create PEL log using busctl command and verify via peltool.
32 Create Test PEL Log
33 ${pel_id}= Get PEL Log Via BMC CLI
34 Should Not Be Empty ${pel_id} msg=System PEL log entry is empty.
37 Verify PEL Log Details
38 [Documentation] Verify PEL log details via peltool.
44 Create Test PEL Log
71 # Verify if "CompID" and "SRC" fields of PEL ha
[all...]
/openbmc/openpower-hw-diags/attn/pel/
H A Dextended_user_header.cpp5 namespace pel namespace
8 ExtendedUserHeader::ExtendedUserHeader(Stream& pel) in ExtendedUserHeader() argument
10 unflatten(pel); in ExtendedUserHeader()
13 void ExtendedUserHeader::flatten(Stream& pel) const in flatten()
15 pel << _header; in flatten()
16 pel.write(_mtms, mtmsSize); in flatten()
17 pel.write(_serverFWVersion.data(), _serverFWVersion.size()); in flatten()
18 pel.write(_subsystemFWVersion.data(), _subsystemFWVersion.size()); in flatten()
19 pel << _reserved4B << _refTime << _reserved1B1 << _reserved1B2 in flatten()
23 void ExtendedUserHeader::unflatten(Stream& pel) in unflatten() argument
[all …]
H A Dpel_minimal.hpp13 namespace pel namespace
18 * @brief Class for a minimal platform event log (PEL)
20 * This class can be used to create form a PEL and create a raw PEL file. The
23 * This PEL consists of the following position dependent sections:
48 * @brief Create a minimal PEL object from raw data
50 * @param[in] pelBuffer - buffer containing a raw PEL
62 * @brief Stream raw PEL data to buffer
138 * @brief Maximum PEL size
143 * @brief Returns the size of the PEL
145 * @return size_t The PEL size in bytes
[all …]
/openbmc/phosphor-logging/extensions/openpower-pels/tools/
H A Dpeltool.cpp23 #include "../pel.hpp"
46 using PELFunc = std::function<void(const PEL&, bool hexDump)>;
72 * @brief helper function to get PEL commit timestamp from file name
73 * @retrun uint64_t - PEL commit timestamp
168 * @brief helper function to get PEL id from file name
169 * @retrun uint32_t - PEL id
187 * @brief Check if the string ends with the PEL ID string passed in
188 * @param[in] str - string to check for PEL ID
189 * @param[in] pelID - PEL id string
214 * @brief get data form raw PEL file.
[all …]
/openbmc/openpower-hw-diags/attn/
H A Dattn_logging.cpp8 #include <attn/pel/pel_minimal.hpp>
95 * Create a PEL from an existing PEL
97 * Create a new PEL based on the specified raw PEL and submit the new PEL
98 * to the backend logging code as a raw PEL. Note that additional data map
99 * here contains data to be committed to the PEL and it can also be used to
100 * create the PEL as it contains needed information.
102 * @param i_rawPel - buffer containing a raw PEL
103 * @param i_additional - additional data to be added to the new PEL
108 // create PEL object from buffer in createPelCustom()
109 auto tiPel = std::make_unique<pel::PelMinimal>(i_rawPel); in createPelCustom()
[all …]
H A Dattn_dbus.hpp28 * Create a PEL from raw PEL data
30 * Create a PEL based on the pel defined in the data buffer specified.
32 * @param i_buffer - buffer containing a raw PEL
37 * Get file descriptor of exisitng PEL
39 * The backend logging code will search for a PEL having the provided pel id
40 * and return a file descriptor of a file containing this pel in raw form.
42 * @param i_pelid - the PEL ID
/openbmc/pldm/oem/ibm/libpldmresponder/
H A Dfile_io_type_pel.cpp11 #include <org/open_power/Logging/PEL/server.hpp>
34 * @brief Finds the Entry::Level value for the severity of the PEL
40 * @param[in] pelFileName - The file containing the PEL
66 std::ifstream pel{pelFileName}; in getEntryLevelFromPEL() local
67 if (pel.good()) in getEntryLevelFromPEL()
69 pel.seekg(severityOffset); in getEntryLevelFromPEL()
72 pel.read(reinterpret_cast<char*>(&sev), 1); in getEntryLevelFromPEL()
85 error("Unable to open PEL file '{FILE}'", "FILE", pelFileName); in getEntryLevelFromPEL()
98 static constexpr auto logInterface = "org.open_power.Logging.PEL"; in readIntoMemory()
118 "Failed to get PEL D-Bus call for PEL ID '{FILE_HANDLE}', error - {ERROR}", in readIntoMemory()
[all …]
/openbmc/phosphor-logging/extensions/openpower-pels/registry/
H A DREADME.md4 phosphor-logging using a message registry that provides the PEL related fields.
15 A component ID is a 2 byte value of the form 0xYY00 used in a PEL to:
19 2. Reside in the section header of the Private Header PEL section to specify the
33 [here](O_component_ids.json). That file can used by PEL parsers to display a
48 OpenBMC event log that the PEL is being created from.
56 This field is part of the PEL User Header section, and is used to specify the
58 PEL value. If the subsystem isn't known ahead of time, it can be passed in at
59 the time of PEL creation using the 'PEL_SUBSYSTEM' AdditionalData field. In this
79 This field is part of the PEL User Header section, and is used to specify the
80 PEL severity. It is an optional field, if it isn't specified, then the severity
[all …]
/openbmc/openbmc-test-automation/lib/
H A Dpel_utils.py4 PEL functions.
89 Returns PEL data from BMC else throws exception.
105 print("No PEL data present in BMC ...")
108 "Failed to get PEL data from BMC : " + str(exception)
115 Verify that no PEL exists in BMC. Raise an exception if it does.
124 print("PEL data present. \n", pel_data)
125 raise PeltoolException("PEL data present in BMC")
128 "Failed to get PEL data from BMC : " + str(exception)
134 Compare PEL log attributes like "SRC", "Created at" with Redfish
139 pel_record PEL record.
[all …]
/openbmc/openpower-debug-collector/dump/
H A Dcreate_pel.hpp15 namespace openpower::dump::pel namespace
31 * @brief Create SBE boot error PEL and return id
35 * @param[in] ffdcData - failure data to append to PEL
45 * @brief Convert a FAPI2 severity code to PEL severity.
50 openpower::dump::pel::Severity convertSeverityToEnum(uint8_t severity);
57 * @param[out] pelAdditionalData - A reference to additional PEL data to be
58 * included in the PEL.
62 openpower::dump::pel::FFDCData& pelAdditionalData);
112 * Used to create ffdc file to pass PEL api for creating
113 * pel records.
[all …]
/openbmc/openpower-proc-control/extensions/phal/
H A Dcreate_pel.hpp18 namespace pel namespace
27 * @brief Create PEL with additional parameters and callout
30 * @param[in] calloutData - callout data to append to PEL
31 * @param[in] ffdcData - failure data to append to PEL
39 * @brief Create SBE boot error PEL and return id
43 * @param[in] ffdcData - failure data to append to PEL
54 * @brief Create a PEL for the specified event type and additional data
57 * @param[in] ffdcData - failure data to append to PEL
111 * Used to create ffdc file to pass PEL api for creating
112 * pel records.
[all …]

12345678910