SEL: add record with custom Sensor/Event Type

The existing `IpmiSelAdd` method is suited only to add limited range of
internal SEL record types since it lack some important SEL record
fields.

BMC system may want to support more event types and/or adding external
records with IPMI Add SEL Entry Command. In order to implement this
extended version of the method was added: `AddExtended`.

The method is similar to existing `IpmiSelAdd` except it accept
additional data fields: `eventType`, `sensorType`, `sensorNum` and don't
need `Assert` field since it is part of `eventType`.
`Path` field was not excluded to support case where software want to
define custom eventType but still use internal sensor lookup mechanism.
Empty string can be used when there is no dbus sensor for the record.

Signed-off-by: Andrei Kartashev <a.kartashev@yadro.com>
Change-Id: I595ae9409ef695368e94eca837f9bdc1ad93c0e3
diff --git a/yaml/xyz/openbmc_project/Logging/IPMI.interface.yaml b/yaml/xyz/openbmc_project/Logging/IPMI.interface.yaml
index 8c2ff14..54e24b8 100644
--- a/yaml/xyz/openbmc_project/Logging/IPMI.interface.yaml
+++ b/yaml/xyz/openbmc_project/Logging/IPMI.interface.yaml
@@ -51,6 +51,48 @@
         - xyz.openbmc_project.Common.Error.InternalFailure
         - xyz.openbmc_project.Common.Error.InvalidArgument
 
+    - name: AddExtended
+      description: >
+        Log a system event record SEL entry with custom SensorType/EventType.
+      parameters:
+        - name: Message
+          type: string
+          description: >
+            The text to log for the event.
+        - name: Path
+          type: path
+          description: >
+            The object path that is generating the SEL entry.
+        - name: SELData
+          type: array[byte]
+          description: >
+            An array of up to 3 bytes of SEL event data.
+        - name: GeneratorID
+          type: uint16
+          description: >
+            The Generator ID of the component requesting the new SEL entry.
+            In most cases this will be 0x20 (the BMC Generator ID).
+        - name: eventType
+          type: byte
+          description: >
+            Type of trigger for the event and event direction.
+        - name: sensorType
+          type: byte
+          description: >
+            Sensor Type Code for sensor that generated the event.
+        - name: sensorNum
+          type: byte
+          description: >
+            Number of sensor that generated the event.
+      returns:
+        - name: RecordID
+          type: uint16
+          description: >
+            The Record ID of the new SEL entry.
+      errors:
+        - xyz.openbmc_project.Common.Error.InternalFailure
+        - xyz.openbmc_project.Common.Error.InvalidArgument
+
     - name: IpmiSelAddOem
       description: >
         Log an OEM record type SEL entry requested from external to the BMC.