1description: >
2    Implement to provide an IPMI System Event Log (SEL) logging interface under
3    the path /xyz/openbmc_project/Logging/IPMI.
4
5    SEL records store system event information and will contain a record ID and
6    type followed by type-specific information.  The type-specific information
7    includes a timestamp, generator ID (used to identify the component that is
8    adding the SEL record), sensor number, event direction and event-specific
9    data for system type events; or timestamp and OEM data for OEM type events.
10
11    The interface allows adding system or OEM type events.  For system type
12    events it requires a generator ID (0x20 for BMC), sensor D-Bus path, event
13    direction (assertion or de-assertion), and event specific data. For OEM type
14    events, it requires the record type and OEM data.
15
16    It will assign a record ID and timestamp automatically and return the
17    assigned record ID.
18methods:
19    - name: IpmiSelAdd
20      description: >
21          Log a system event record type SEL entry.
22      parameters:
23          - name: Message
24            type: string
25            description: >
26                The text to log for the event.
27          - name: Path
28            type: object_path
29            description: >
30                The object path that is generating the SEL entry.
31          - name: SELData
32            type: array[byte]
33            description: >
34                An array of up to 3 bytes of SEL event data.
35          - name: Assert
36            type: boolean
37            description: >
38                An indicator if the SEL event is asserting or de-asserting.
39          - name: GeneratorID
40            type: uint16
41            description: >
42                The Generator ID of the component requesting the new SEL entry.
43                In most cases this will be 0x20 (the BMC Generator ID).
44      returns:
45          - name: RecordID
46            type: uint16
47            description: >
48                The Record ID of the new SEL entry.
49      errors:
50          - xyz.openbmc_project.Common.Error.InternalFailure
51          - xyz.openbmc_project.Common.Error.InvalidArgument
52
53    - name: AddExtended
54      description: >
55          Log a system event record SEL entry with custom SensorType/EventType.
56      parameters:
57          - name: Message
58            type: string
59            description: >
60                The text to log for the event.
61          - name: Path
62            type: object_path
63            description: >
64                The object path that is generating the SEL entry.
65          - name: SELData
66            type: array[byte]
67            description: >
68                An array of up to 3 bytes of SEL event data.
69          - name: GeneratorID
70            type: uint16
71            description: >
72                The Generator ID of the component requesting the new SEL entry.
73                In most cases this will be 0x20 (the BMC Generator ID).
74          - name: eventType
75            type: byte
76            description: >
77                Type of trigger for the event and event direction.
78          - name: sensorType
79            type: byte
80            description: >
81                Sensor Type Code for sensor that generated the event.
82          - name: sensorNum
83            type: byte
84            description: >
85                Number of sensor that generated the event.
86      returns:
87          - name: RecordID
88            type: uint16
89            description: >
90                The Record ID of the new SEL entry.
91      errors:
92          - xyz.openbmc_project.Common.Error.InternalFailure
93          - xyz.openbmc_project.Common.Error.InvalidArgument
94
95    - name: IpmiSelAddOem
96      description: >
97          Log an OEM record type SEL entry requested from external to the BMC.
98      parameters:
99          - name: Message
100            type: string
101            description: >
102                The text to log for the event.
103          - name: SELData
104            type: array[byte]
105            description: >
106                An array of up to 13 bytes of SEL event data.
107          - name: RecordType
108            type: byte
109            description: >
110                The OEM record type for the SEL entry.
111      returns:
112          - name: RecordID
113            type: uint16
114            description: >
115                The Record ID of the new SEL entry.
116      errors:
117          - xyz.openbmc_project.Common.Error.InternalFailure
118          - xyz.openbmc_project.Common.Error.InvalidArgument
119
120    - name: Clear
121      description: >
122          Clear the SEL entries from their storage location.
123
124    - name: SELDelete
125      description: >
126          Delete a SEL entry from the log.
127      parameters:
128          - name: RecordID
129            type: uint16
130            description: >
131                The Record ID of the SEL entry to be deleted.
132      errors:
133          - xyz.openbmc_project.Common.Error.InternalFailure
134          - xyz.openbmc_project.Common.Error.ResourceNotFound
135