f1e85e20 | 01-Nov-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Validate the Action Flags field
According to the PEL spec, the Action Flags and Event Type fields in the User Header section must be in agreement with the Severity field. So, when a PEL is bein
PEL: Validate the Action Flags field
According to the PEL spec, the Action Flags and Event Type fields in the User Header section must be in agreement with the Severity field. So, when a PEL is being created from an OpenBMC event log, check those values for correctness and fix them up if required.
In addition, as those fields are optional in the message registry, this code will also just set these two fields to valid values if they were left out.
The rules being followed are documented in the PEL readme.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Iad88de5080ba79a9ff31f962ef99bfc11994b9ed
show more ...
|
711d51d8 | 06-Nov-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Add license prologue to source files
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I31b12f509d32b79064a8a427af35e6a310273051 |
186ce8c9 | 20-Oct-2019 |
Aatir <aatrapps@gmail.com> |
PEL: PELTool Application
PELTooL application would be used to interact with PELs. This commit has the first functionality, where a PEL file is passed and all PEL sections are hexdumped in a JSON obj
PEL: PELTool Application
PELTooL application would be used to interact with PELs. This commit has the first functionality, where a PEL file is passed and all PEL sections are hexdumped in a JSON object.
Signed-off-by: Aatir <aatrapps@gmail.com> Change-Id: I155d75bb58cbd14a297b094314f7fd1f271f4f37
show more ...
|
a7525aaf | 01-Nov-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Move severity type enums to a header
Move them to a header file so other files can use them in the future.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Icb604489e9629724a79d2fc8
PEL: Move severity type enums to a header
Move them to a header file so other files can use them in the future.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Icb604489e9629724a79d2fc8b110e461b6aa6e01
show more ...
|
e07f915b | 01-Nov-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Make action flags optional in the registry
A future commit will fill in the field if it isn't present.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I67371433162ce2198a362796d274
PEL: Make action flags optional in the registry
A future commit will fill in the field if it isn't present.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I67371433162ce2198a362796d274695a1bd6a6dc
show more ...
|
97d19b48 | 29-Oct-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Const accessors for Private/UserHeader
Change the combined non-const accessor/setter functions for the PrivateHeader and UserHeader fields to the standard const accessors, and have separate set
PEL: Const accessors for Private/UserHeader
Change the combined non-const accessor/setter functions for the PrivateHeader and UserHeader fields to the standard const accessors, and have separate setters for the fields that need to be modified.
In addition, make the 'get PrivateHeader' and 'get UserHeader' functions on the PEL class return a const reference.
This allows const enforcement on the PEL class, for things like:
void func(const PEL& pel) { auto id = pel.privateHeader().id(); }
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I840170e72b41e9e2465f716617500269244de6d9
show more ...
|
da031717 | 25-Oct-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Document UserData sections
Add a section in the PEL README to document the UserData sections that will be created in every new PEL.
Change-Id: I9ff9a69f1d22b56aa8bb9d559802d0595d787c0a Signed-
PEL: Document UserData sections
Add a section in the PEL README to document the UserData sections that will be created in every new PEL.
Change-Id: I9ff9a69f1d22b56aa8bb9d559802d0595d787c0a Signed-off-by: Matt Spinler <spinler@us.ibm.com>
show more ...
|
afa857c7 | 24-Oct-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Save AdditionalData in a UserData section
Save the contents of the AdditionalData OpenBMC event log property as JSON in a UserData PEL section.
For example, if the AdditionalData property, whi
PEL: Save AdditionalData in a UserData section
Save the contents of the AdditionalData OpenBMC event log property as JSON in a UserData PEL section.
For example, if the AdditionalData property, which is an array of strings, looks like: ["KEY1=VALUE1", "KEY=VALUE2"]
Then the data stored as ASCII text in the UserData section is: {"KEY1":"VALUE1","KEY2":"VALUE2"}
If one of the keys is "ESEL", then that entry is removed from the UserData output as that contains a full raw PEL from the host sent down as ASCII text.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Ia6ffabb39fdb4315ec2152744414e44f7d2ec4aa
show more ...
|
aa659477 | 23-Oct-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Create FailingMTMS section for new PELs
When a PEL is created from an OpenBMC event log, add the FailingMTMS section to the PEL. This contains the machine type, model, and serial number fields.
PEL: Create FailingMTMS section for new PELs
When a PEL is created from an OpenBMC event log, add the FailingMTMS section to the PEL. This contains the machine type, model, and serial number fields.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I8d08e6dda00260efebd2c6ac165270d2aaf98d67
show more ...
|
67456c2b | 21-Oct-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Start creating PELs from event logs
Look up incoming OpenBMC event logs in the message registry and create PELs for them if a registry entry is found.
What happens when an event log can't be f
PEL: Start creating PELs from event logs
Look up incoming OpenBMC event logs in the message registry and create PELs for them if a registry entry is found.
What happens when an event log can't be found in the message registry, such as creating a different PEL, will be addressed in a separate commit.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I45c634830021fdf2efb54e3cbfd6d496fd3d7d01
show more ...
|
bd716f00 | 15-Oct-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Create SRC section from message registry
This adds the ability to create an SRC PEL section based on the message registry entry for an OpenBMC event log.
The event log's AdditionalData propert
PEL: Create SRC section from message registry
This adds the ability to create an SRC PEL section based on the message registry entry for an OpenBMC event log.
The event log's AdditionalData property is used as a source for the user defined data words of the SRC, while the other fields in the SRC's data words are filled in either from the message registry fields or from current system state or configuration.
The ASCII string field of the SRC is filled in based on the message registry entry.
This commit doesn't fill in every system status field, as many aren't even available anywhere yet. Also, this commit doesn't support adding callouts to an SRC, that will also be handled in the future.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I67fe44e07e4eda6bdeedb4af2eacfc197deb6eb3
show more ...
|
55a69784 | 25-Oct-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Check duplicate reason codes in registry
Reason codes must be unique for every error until there is a specific reason for them not to be, so check for that while validating the message registry
PEL: Check duplicate reason codes in registry
Reason codes must be unique for every error until there is a specific reason for them not to be, so check for that while validating the message registry JSON file.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I74e0e24e1f129ebf94d25aaf5200b30b256b1307
show more ...
|
5cb5deb6 | 27-Sep-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Script to validate message registry JSON
This script will check the JSON against the schema, as well as do a few other checks that can't be encoded into a schema.
Signed-off-by: Matt Spinler <
PEL: Script to validate message registry JSON
This script will check the JSON against the schema, as well as do a few other checks that can't be encoded into a schema.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I97c0fc0f69baac3c076b557b67e47ce8abfccf36
show more ...
|
a96a7948 | 27-Sep-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Add message registry README
This README describes the message registry in an easier to read way than what is buried in the JSON schema.
The commit also provides a file to document which compon
PEL: Add message registry README
This README describes the message registry in an easier to read way than what is buried in the JSON schema.
The commit also provides a file to document which component IDs are used by which repositories/applications.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Ibf1109e0a1fb6fff872cfa91d79c007ecf5527b0
show more ...
|
10f3d932 | 26-Sep-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Add message registry JSON schema
The message registry is JSON data that will aid in converting OpenBMC event logs into IBM's Platform Event Log (PEL) format. PELs have more fields than event l
PEL: Add message registry JSON schema
The message registry is JSON data that will aid in converting OpenBMC event logs into IBM's Platform Event Log (PEL) format. PELs have more fields than event logs, many with specific IBM defined values, that need to be able to be looked up for an OpenBMC event log so the PEL can be filled in. In addition to aiding in creating PELs, it also contains information to aid in parsing PELs.
This schema defines how that JSON will look, and this commit also contains an example registry file.
A script will be added in the future to validate the registry JSON against the schema during a bitbake build.
Until there is a need, the message registry will be contained in a single JSON file. If there is a need, it can be split up along some predetermined rules in the future.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I98620b263bd1faff27e36da7a0c101a982b58057
show more ...
|
44792fd1 | 26-Sep-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Install an empty PEL message registry
This will eventually contain the information to create PELs out of OpenBMC event logs. It is installed into /usr/share/phosphor-logging/pels.
Signed-off-
PEL: Install an empty PEL message registry
This will eventually contain the information to create PELs out of OpenBMC event logs. It is installed into /usr/share/phosphor-logging/pels.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Iaf67881890a47f605af3ae69b54f186b63915ca6
show more ...
|
935a25e2 | 14-Oct-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Allow default AdditionalData construction
Enable the default contructor so that an object can be created without needing any data.
Also make getValue() const as it is const.
Signed-off-by: Ma
PEL: Allow default AdditionalData construction
Enable the default contructor so that an object can be created without needing any data.
Also make getValue() const as it is const.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Id81879e0367edb1055cbf848ed738bc8dd86e953
show more ...
|
66d3036e | 11-Oct-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Fix typo in subsystem ID list
The values are all supposed to be in hex.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Ic1af46a3505f0f77d6f6f0f1bff998f2ab527522 |
237570de | 11-Oct-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Stream: Don't use references for << ops
There was no need for the stream insertion operator, <<, to take a uint8_t, char, uin16_t, uint32_t, or uint64_t as a reference as they are small and the
PEL: Stream: Don't use references for << ops
There was no need for the stream insertion operator, <<, to take a uint8_t, char, uin16_t, uint32_t, or uint64_t as a reference as they are small and they aren't being modified.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I9fbf28af7fa6e8e73fd2df8c102e1689647e686d
show more ...
|
31eed996 | 09-Oct-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Initialize PrivateHeader fields in ctor
In the stream constructor, initialize the member variables to 0 before unflattening.
This only matters when the data is so short that the 'section count
PEL: Initialize PrivateHeader fields in ctor
In the stream constructor, initialize the member variables to 0 before unflattening.
This only matters when the data is so short that the 'section count' field doesn't get initialized and so the code tries to loop through and unflatten that many optional sections, and since there aren't actually any it was spitting out extra journal traces about invalid section IDs.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: If08e9ae244d5ade96cafa2160ad9714bebe34551
show more ...
|
f9bae185 | 09-Oct-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Add SRC PEL section class
This section consists of: - An 8B header - 8 4B words of hex data - Some data is predefined based on the SRC format, some is free format. - A 32B ASCII character str
PEL: Add SRC PEL section class
This section consists of: - An 8B header - 8 4B words of hex data - Some data is predefined based on the SRC format, some is free format. - A 32B ASCII character string (The AsciiString class) - An optional section for FRU callouts (The Callouts class)
Usually, the term SRC (System Reference Code) refers to the contents of the ASCII string and the hex data words, which can then be looked up in service documentation to find the meaning of the event log. This PEL section wraps this pure SRC with additional data like callouts.
This commit only adds support for unflattening the section from an existing PEL, and flattening it again. Future commits will add support for creating an SRC from message registry data.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I3dd97c6aca59cc6d6d6fadef84465164090d5658
show more ...
|
32f13c91 | 09-Oct-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: SRC callouts subsection object
This Callouts class represents the optional subsection of an SRC PEL section that contains FRU callouts. It is only present in the SRC when there are callouts, a
PEL: SRC callouts subsection object
This Callouts class represents the optional subsection of an SRC PEL section that contains FRU callouts. It is only present in the SRC when there are callouts, and it comes at the end of the section.
It is basically just a container for the Callout objects that represent the actual callouts.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I1d4d95b82f9b4943728d7939e3bf89e4a7bcbb75
show more ...
|
6c9662c9 | 09-Oct-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: SRC FRU callout structure
This class represents a single FRU callout in the SRC section of a PEL. When there are multiple callouts, there will be multiple instances of this class created. Tech
PEL: SRC FRU callout structure
This class represents a single FRU callout in the SRC section of a PEL. When there are multiple callouts, there will be multiple instances of this class created. Technically, the callout isn't always a FRU, such as it could be a maintenance procedure name, but the spec still refers to this section as the FRU callout section.
The callout priority and location code are in this structure.
There can also be up to one each of three types of substructures in a single callout: * FRU Identity (must be first if present) * Power Controlling Enclosure (PCE) * Manufacturing Replaceable Unit (MRU)
This commit just provides support for creating this object from a flattened PEL, such as one that comes down from the host. A future commit will add support for creating a callout for BMC created event logs.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I49535285e3cbaa15dfe031648cfaf262380a1cf7
show more ...
|
90b4a0a0 | 09-Oct-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: MRU callout SRC substructure
This substructure is part of the callout subsection in the SRC section of a PEL, and contains information about Manufacturing Replaceable Units (MRUs). MRUs are co
PEL: MRU callout SRC substructure
This substructure is part of the callout subsection in the SRC section of a PEL, and contains information about Manufacturing Replaceable Units (MRUs). MRUs are components on a parent FRU (Field Replaceable Unit) that may be able to be replaced in a manufacturing environment, hence the name.
This substructure includes a list of <priority, MRU ID> pairs, where the priority is the same priority value type as used elsewhere in the SRC section ('H', 'M', 'L', etc), and the MRU ID is a 4B ID that development will tell manufacturing the meanings of.
This commit only adds support for creating an object from a flattened PEL, such as one that comes down from the host. A future commit will handle creating it from scratch for BMC errors.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I6352e1a3cb84db0516902786faca4c387afef411
show more ...
|
5b3a11db | 08-Oct-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Power controlling enc SRC substructure
This substructure is part of the callout subsection in the SRC section of a PEL, and contains enclosure information for when another enclosure controls th
PEL: Power controlling enc SRC substructure
This substructure is part of the callout subsection in the SRC section of a PEL, and contains enclosure information for when another enclosure controls the power of the failing entity. This would be an unusual case, when the piece of hardware that is being called out has its power controlled by another enclosure, for example when an I/O expansion drawer is connected to 2 servers, and only one of them controls its power.
This includes: * The enclosure's name * The enclosure's machine type, model, and serial number
The BMC will never create this section for BMC errors, but it may need to unflatten them for PELs sent down from a host that has to deal with I/O drawers.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Ie04c1ee3fdfa67ee8666c10fa3bc837f4d33a9ef
show more ...
|