History log of /openbmc/pldm/libpldmresponder/pdr_state_effecter.hpp (Results 1 – 25 of 25)
Revision Date Author Comments
# 677a4552 30-Jan-2025 Pavithra Barithaya <pavithrabarithaya07@gmail.com>

libpldmresponder : Migrate to placement_new from reinterpret casting

reinterpret_cast is prohibited by the C++ core guidelines because
it takes the behavior outside the language definition and gives

libpldmresponder : Migrate to placement_new from reinterpret casting

reinterpret_cast is prohibited by the C++ core guidelines because
it takes the behavior outside the language definition and gives
problems with type safety. Placement-new on the other-hand allows
to control the object storage while still properly instantiating
an object,keeping the behavior inside the C++ language
specification.

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

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 ...


# 1e5c81e0 03-May-2024 Riya Dixit <riyadixitagra@gmail.com>

pldm: Remove unnecessary type casting in logs

This commit removes the unnecessary type casting of values of the
journal logs based on supported types mentioned in LG2 documentation
[1].

Testing: Ve

pldm: Remove unnecessary type casting in logs

This commit removes the unnecessary type casting of values of the
journal logs based on supported types mentioned in LG2 documentation
[1].

Testing: Verified the debug traces to correct.

'''
For Instance:
Earlier -
error(”TYPE = {TYPE} “, “TYPE”, static_cast<unsigned>(PLDM_STATE_EFFECTER_PDR));
Journal trace -
May 27 08:16:51 p10bmc pldmd[931]: TYPE = 11

After Correction -
error(”TYPE = {TYPE}“, “TYPE”, PLDM_STATE_EFFECTER_PDR);
Journal trace -
May 27 08:16:51 p10bmc pldmd[931]: TYPE = Enum(11)
'''

[1]: https://github.com/openbmc/phosphor-logging/blob/master/docs/structured-logging.md#lg2

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

show more ...


# 89644441 31-Mar-2024 Riya Dixit <riyadixitagra@gmail.com>

libpldmresponder: 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

libpldmresponder: 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: I7dc5c308a8cd76573995e07d01d1a6037bca31ba
Signed-off-by: Riya Dixit <riyadixitagra@gmail.com>

show more ...


# 3daf7a1c 17-Apr-2024 Manojkiran Eda <manojkiran.eda@gmail.com>

libpldmresponder: fix a potential pldm crash

In the current state, pldm does create the sensor/effecter even in the
absence of the underlying dbus resource. There is a bug in the responder
code due

libpldmresponder: fix a potential pldm crash

In the current state, pldm does create the sensor/effecter even in the
absence of the underlying dbus resource. There is a bug in the responder
code due to which we emplace an empty dbus value map into the handler
with a sensor ID. And if the remote PLDM endpoint queries for the state
of the sensor, pldm would crash since it tries to read content from the
empty dbus value map. This commit would fix the crash by adding
necessary bound checks.

Testing:
1. Unit tests passed.
2. Functionally verified the fix by giving a dummy dbus object path and
making sure that the sensor/effecter is not created & also ensured that
pldm does not crash.

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

show more ...


# 06f9b29e 31-Mar-2024 Sagar Srinivas <sagar.srinivas@ibm.com>

Use std::map.contains as per latest c++

This commit replaces occurrences of 'find' with
'contains' to access elements in a std::map
according to the latest C++ standard (since C++20).

However, cont

Use std::map.contains as per latest c++

This commit replaces occurrences of 'find' with
'contains' to access elements in a std::map
according to the latest C++ standard (since C++20).

However, contains() is not suitable in all situations
as in the case where we want to use the element contained
in the map using contains(), then it would do 2 searches
instead of 1 in the case where we use find() which fetches
the element from the map also.

Here are some relevant links to C++ documentation and
resources:

[1]: https://en.cppreference.com/w/cpp/container/map/find
[2]: https://en.cppreference.com/w/cpp/container/map/contains
[3]: https://wg21.link/N4861

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

show more ...


# c81d1129 21-Feb-2024 Manojkiran Eda <manojkiran.eda@gmail.com>

skip creating effecter when its dbus isn't present

In the current state, we attempt to create an effecter PDR even if
the D-Bus object that is being modeled as an effecter is absent at
the time of c

skip creating effecter when its dbus isn't present

In the current state, we attempt to create an effecter PDR even if
the D-Bus object that is being modeled as an effecter is absent at
the time of creation.

However, this behavior may not be beneficial, as assuming that the
D-Bus backend will magically appear later does not necessarily mean
that we will be able to process it, we only process the JSON files
during the first getPDR request. Therefore, it would be more efficient
to skip creating the effecter in the absence of the D-Bus object.

This commit also addresses an error trace by including the dbus object
path when it is not present on the system, rather than the opaque
effecter id number which does not provide contextual information and
may make it harder to diagnose issues.

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

show more ...


# 3c50c82a 30-Jan-2024 Kamalkumar Patel <kamalkumar.patel@ibm.com>

Adding Platform specific PDR support

- Adding platform check to generate pdr based on platform type.

- Currently PDR generation is happening based on default
configuration, so this commit adds su

Adding Platform specific PDR support

- Adding platform check to generate pdr based on platform type.

- Currently PDR generation is happening based on default
configuration, so this commit adds support to generate PDR's based
in the platform type.

Testing:
- Added traces and check from which path the files has been taken for
pdr generation.
- Removed power supply from default path and oem layer and identified
that power supply pdr is not generating.

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

show more ...


# 58cbcaf2 06-Oct-2023 Kamalkumar Patel <kamalkumar.patel@ibm.com>

PLDM:Catching exception precisely and printing it

Correcting catch block in PLDM repo to print all
exception precisely so pldm trace can be more
useful to identify defect easily.

Change-Id: If2e86d

PLDM:Catching exception precisely and printing it

Correcting catch block in PLDM repo to print all
exception precisely so pldm trace can be more
useful to identify defect easily.

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

show more ...


# 797f338f 22-Aug-2023 Riya Dixit <riyadixitagra@gmail.com>

PLDM: Implementing Phosphor-Logging/LG2 logging

This commit migrates std::cerr/cout added as part
of new changes in PLDM to LG2.

Change-Id: I8e85732684d47b6740521e95712433a7c6760d8a
Signed-off-by:

PLDM: Implementing Phosphor-Logging/LG2 logging

This commit migrates std::cerr/cout added as part
of new changes in PLDM to LG2.

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

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 ...


# 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 ...


# 5f213471 29-Aug-2022 Pavithra Barithaya <pavithra.b@ibm.com>

PLDM : fix the invalid effecter and sensor PDRs

The LED effecter and sensor PDRs where created even when
the FRU or the entity path was not present which puts the
entity ID in the PDR as 0. This com

PLDM : fix the invalid effecter and sensor PDRs

The LED effecter and sensor PDRs where created even when
the FRU or the entity path was not present which puts the
entity ID in the PDR as 0. This commit fixes that issue.

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

show more ...


# c453e164 21-Dec-2022 George Liu <liuxiwei@inspur.com>

libpldm: Correct reference to libpldm header files

When relying on header files from external libraries, #include<> should
be used instead of #include "" to avoid ambiguity.

Tested: Built pldm succ

libpldm: Correct reference to libpldm header files

When relying on header files from external libraries, #include<> should
be used instead of #include "" to avoid ambiguity.

Tested: Built pldm successfully after enabling ibm-oem

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

show more ...


# cc5f1586 29-Sep-2021 Manojkiran Eda <manojkiran.eda@gmail.com>

Make Terminus ID & Terminus Handle configurable

The current pldm code hardcoded the terminus id and the
terminus handles, making it configurable so that the
oem vendors can set them as per thier nee

Make Terminus ID & Terminus Handle configurable

The current pldm code hardcoded the terminus id and the
terminus handles, making it configurable so that the
oem vendors can set them as per thier need in the
bitbake meta data.

Also,in the current state the FRU record set PDR's and
the Sensor/Effecter PDR's are generated with terminus
handle 0, but the terminus locator PDR is hardcoded with
handle 1. This commit also fixes that behaviour.

Tested :

1. Terminus locator PDR
{
"nextRecordHandle": 89,
"responseCount": 19,
"recordHandle": 88,
"PDRHeaderVersion": 1,
"PDRType": "Terminus Locator PDR",
"recordChangeNumber": 0,
"dataLength": 9,
"PLDMTerminusHandle": 1,
"validity": "valid",
"TID": 1,
"containerID": 0,
"terminusLocatorType": "MCTP_EID",
"terminusLocatorValueSize": 1,
"EID": 8
}
2. FRU record set PDR
{
"nextRecordHandle": 77,
"responseCount": 20,
"recordHandle": 76,
"PDRHeaderVersion": 1,
"PDRType": "FRU Record Set PDR",
"recordChangeNumber": 0,
"dataLength": 10,
"PLDMTerminusHandle": 1,
"FRURecordSetIdentifier": 76,
"entityType": "[Physical] Slot",
"entityInstanceNumber": 12,
"containerID": 3
}
3. Sensor PDR
{
"nextRecordHandle": 208,
"responseCount": 28,
"recordHandle": 207,
"PDRHeaderVersion": 1,
"PDRType": "State Sensor PDR",
"recordChangeNumber": 0,
"dataLength": 18,
"PLDMTerminusHandle": 1,
"sensorID": 2,
"entityType": "[Physical] External Environment",
"entityInstanceNumber": 0,
"containerID": 1,
"sensorInit": "noInit",
"sensorAuxiliaryNamesPDR": false,
"compositeSensorCount": 1,
"stateSetID[0]": "Health State(1)",
"possibleStatesSize[0]": 2,
"possibleStates[0]": [
"Normal(1)",
"Upper Fatal(9)"
]
}
4. Effecter PDR
{
"nextRecordHandle": 142,
"responseCount": 29,
"recordHandle": 141,
"PDRHeaderVersion": 1,
"PDRType": "State Effecter PDR",
"recordChangeNumber": 0,
"dataLength": 19,
"PLDMTerminusHandle": 1,
"effecterID": 53,
"entityType": "[Physical] Fan",
"entityInstanceNumber": 1,
"containerID": 3,
"effecterSemanticID": 0,
"effecterInit": "noInit",
"effecterDescriptionPDR": false,
"compositeEffecterCount": 1,
"stateSetID[0]": "Identify State(17)",
"possibleStatesSize[0]": 1,
"possibleStates[0]": [
"Identify State Unasserted(1)",
"Identify State Asserted(2)"
]
}

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

show more ...


# 5079ac4a 19-Aug-2021 Brad Bishop <bradleyb@fuzziesquirrel.com>

treewide: remove 'using namespace' from headers

Using namespace at global scope in a header file violates the cpp core
guidelines. Quoting the guidelines:

"Doing so takes away an #includer’s abi

treewide: remove 'using namespace' from headers

Using namespace at global scope in a header file violates the cpp core
guidelines. Quoting the guidelines:

"Doing so takes away an #includer’s ability to effectively
disambiguate and to use alternatives. It also makes #included headers
order-dependent as they might have different meaning when included in
different orders."

For further reading:
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rs-using-directive

The guidelines don't call out using using namespace from namespace
scope, but it is only marginally less problematic and still unexpected,
so this patch removes those as well.

The process used to do the update is roughly:

1 - git grep 'using namespace' **.hpp
2 - For each instance, remove the offending 'using namespace' line
3 - build
4 - add 'using namespace' to cpp files or fully resolve types in hpp
files until the project builds again.

Further cleanup is possible - for example cpp files could be scrubbed
for unnecessary namespace qualification - this was not done here to make
review as simple as possible.

Change-Id: I4931f5e78a1b5b74b4a4774c035a549f4d59b91a
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>

show more ...


# bcf91acc 14-Mar-2021 Manojkiran Eda <manojkiran.eda@gmail.com>

Fix a possible null pointer dereference

- This commit would fix a potential null pointer dereference.

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

Fix a possible null pointer dereference

- This commit would fix a potential null pointer dereference.

Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>
Change-Id: Ic323bde2c4bd35c35132e4310466cd6ae7ec7aeb
Signed-off-by: George Liu <liuxiwei@inspur.com>

show more ...


# 821ebc47 26-Jan-2021 George Liu <liuxiwei@inspur.com>

libpldmresponder: Create default D-Bus object when generate PDR

In order to make each sensor correspond to its D-Bus object, on a system
where the D-Bus object path does not exist, when the D-Bus ob

libpldmresponder: Create default D-Bus object when generate PDR

In order to make each sensor correspond to its D-Bus object, on a system
where the D-Bus object path does not exist, when the D-Bus object
specified here can not be found, a default D-Bus object should be
created.

Tested:
Before: When the number of composite sensors is inconsistent with the
number of D-Bus objects, the wrong D-Bus object will be obtained through
the SensorID.
After: The number of composite sensors is the same as the number of D-Bus
objects, and the correct D-Bus object can be obtained through the
GetStateSensorReadings command.

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

show more ...


# c4ea6a90 14-Jul-2020 George Liu <liuxiwei@inspur.com>

Mechanism to associate sensor/effecter to FRU entity

The "entity_path" key is defined in PDR JSONs and will have an FRU D-Bus object
path as the value, if this is present, the entity type, instance,

Mechanism to associate sensor/effecter to FRU entity

The "entity_path" key is defined in PDR JSONs and will have an FRU D-Bus object
path as the value, if this is present, the entity type, instance, and container
id should be associate with the FRU entity.

Tested: test JSON with https://gist.github.com/lxwinspur/7225a9301ccfcbff1f6549203405b4fa
after executing the following command, get the entity information from FruHandler
entity_type = 120
entity_instance_num = 1
entity_container_id = 0

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

show more ...


# adbe1726 09-May-2020 George Liu <liuxiwei@inspur.com>

Add parsing JSON for State Sensor PDR

According to spec DSP0248_1.2.0: 28.6 and sensor_pdr.json, parse JSON
and generate PDR structure.

Tested with JSON file:
https://gist.github.com/lxwinspur/6a40

Add parsing JSON for State Sensor PDR

According to spec DSP0248_1.2.0: 28.6 and sensor_pdr.json, parse JSON
and generate PDR structure.

Tested with JSON file:
https://gist.github.com/lxwinspur/6a40abea7330c25e4d49826e890c4be9

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

show more ...


# 12afe110 25-May-2020 Sampa Misra <sampmisr@in.ibm.com>

pdr: Implement terminus locator PDR for BMC

This commit creates the TL PDR for the BMC. The TID and MCTP EID for
BMC is static, 1 and 8 respectively. BMC PDRs are assigned the value
of 1 for PLDMTer

pdr: Implement terminus locator PDR for BMC

This commit creates the TL PDR for the BMC. The TID and MCTP EID for
BMC is static, 1 and 8 respectively. BMC PDRs are assigned the value
of 1 for PLDMTerminusHandle. Added the parser for terminus locator
PDR in pldmtool.

Tested:

/tmp/pldmtool platform GetPdr -d 0

nextRecordHandle: 2
responseCount: 19
recordHandle: 1
PDRHeaderVersion: 1
PDRType: 1
recordChangeNumber: 0
dataLength: 9

PLDMTerminusHandle: 1
validity: valid
TID: 1
containerID: 0
terminusLocatorType: MCTP_EID
terminusLocatorValueSize: 1
EID: 8

Change-Id: I596301d6c676b450ae1f2cef872966b4c40d8bae
Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>
Signed-off-by: Sampa Misra <sampmisr@in.ibm.com>

show more ...


# 36e81352 01-Jul-2020 George Liu <liuxiwei@inspur.com>

libpldmresponder: create PDR when the D-Bus object path exists

On a system where this D-Bus object path does not exist, it should
not create a PDR when the D-Bus object specified here is not found.

libpldmresponder: create PDR when the D-Bus object path exists

On a system where this D-Bus object path does not exist, it should
not create a PDR when the D-Bus object specified here is not found.

Tested: In the PDR config files, the PDR is successfully created when
the objectPath of the D-Bus exists, otherwise, skipped the current
config and the PDR is not created.

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

show more ...


# 6492f524 15-Jun-2020 George Liu <liuxiwei@inspur.com>

clang-format: update to latest from docs repo

Since `Cpp11` is an alias for `Latest` and we should tend towards using the
latest C++ standard, update the C++ standard to Latest.

https://github.com/

clang-format: update to latest from docs repo

Since `Cpp11` is an alias for `Latest` and we should tend towards using the
latest C++ standard, update the C++ standard to Latest.

https://github.com/llvm/llvm-project/commit/e5032567903de19962333c4bf7d2edceaf4f9824#diff-b49a097415dff2837d9626d422c58ba8R82
https://github.com/openbmc/docs/blob/master/style/cpp/.clang-format

Also, other OpenBMC repos are doing the same.

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

show more ...


# a2870726 10-Feb-2020 George Liu <liuxiwei@inspur.com>

pldm: Optimized parsing of PDR JSON files

Move the generateStateEffecterRepo method of parse JSON to
pdr_state_effecter.hpp.

Tested with JSON files:
https://gist.github.com/lxwinspur/2c3fd68cdb35e

pldm: Optimized parsing of PDR JSON files

Move the generateStateEffecterRepo method of parse JSON to
pdr_state_effecter.hpp.

Tested with JSON files:
https://gist.github.com/lxwinspur/2c3fd68cdb35e06480c4a5f7890e3a06#file-effecter_pdr-json.

pldmtool platform GetPDR -d 1
Encode request successfully
Request Message:
08 01 80 02 51 01 00 00 00 00 00 00 00 01 80 00 00 00
Success in creating the socket : RC = 3
Success in connecting to socket : RC = 0
Success in sending message type as pldm to mctp : RC = 0
Write to socket successful : RC = 18
Total length:18
Loopback response message:
08 01 80 02 51 01 00 00 00 00 00 00 00 01 80 00 00 00
On first recv(),response == request : RC = 0
Total length: 46
Shutdown Socket successful : RC = 0
Response Message:
08 01 00 02 51 00 02 00 00 00 00 00 00 00 01 1d 00 01 00 00 00 01 0b 00 00 13 00 00 00 01 00 21 00 00 00 00 00 00 00 00 00 01 c4 00 01 06
Parsed Response Msg:
nextRecordHandle: 2
responseCount: 29
recordHandle: 1
PDRHeaderVersion: 1
PDRType: 11
recordChangeNumber: 0
dataLength: 19
PLDMTerminusHandle: 0
effecterID: 1
entityType: 33
entityInstanceNumber: 0
containerID: 0
effecterSemanticID: 0
effecterInit: 0
effecterDescriptionPDR: false
compositeEffecterCount: 1
stateSetID: 196
possibleStatesSize: 1
possibleStates: 6

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

show more ...