MCTP: Define interface for MCTP endpoint enumeration

This interface will be implemented by an MCTP control message protocol
process[1] that discovers MCTP communication terminuses that are
discoverable by BMC. D-Bus discovery of this interface triggers higher
level protocols like PLDM to complete the PLDM discovery for the MCTP
devices.

[1] https://github.com/openbmc/docs/blob/master/designs/mctp/mctp-kernel.md

Signed-off-by: Tom Joseph <rushtotom@gmail.com>
Change-Id: I240bd3e7d300dfbc0a74ed71eb5a466e1d4a1db4
diff --git a/yaml/xyz/openbmc_project/MCTP/Endpoint.interface.yaml b/yaml/xyz/openbmc_project/MCTP/Endpoint.interface.yaml
new file mode 100644
index 0000000..119f1c6
--- /dev/null
+++ b/yaml/xyz/openbmc_project/MCTP/Endpoint.interface.yaml
@@ -0,0 +1,43 @@
+description: >
+    Describe an MCTP endpoint. It is an MCTP communication terminus. An MCTP
+    endpoint is a terminus or origin of MCTP packets or messages. The combined
+    functionality within a physical device that communicates using the MCTP
+    transport protocol and handles MCTP control commands. This includes
+    MCTP-capable management controllers and managed devices.
+
+properties:
+
+    - name: NetworkId
+      type: size
+      description: >
+          A locally defined identifier to distinguish each independent MCTP
+          network within a platform. The network IDs are used by the MCTP stack
+          to index separate MCTP Networks. This along with EID is used by upper
+          layer protocols to address the destination endpoint.
+
+    - name: EID
+      type: size
+      description: >
+          The logical address used to route MCTP messages to a specific MCTP
+          endpoint. A numeric handle (logical address) that uniquely identifies
+          a particular MCTP endpoint within a system for MCTP communication and
+          message routing purposes. Endpoint IDs are unique among MCTP
+          endpoints that comprise an MCTP communication network within a
+          system. MCTP EIDs are only unique within a particular MCTP network.
+          That is, they can be duplicated or overlap from one MCTP network to
+          the next. This is also referred to as "endpoint ID" and abbreviated
+          as "EID".
+
+    - name: SupportedMessageTypes
+      type: array[byte]
+      description: >
+          List of MCTP message types supported by the MCTP endpoint. MCTP
+          message type is an enumeration that identifies the type of the
+          communication payload in an MCTP message. The well defined message
+          types are MCTP Control(0x00), PLDM(0x01), NC-SI over MCTP(0x02),
+          Ethernet over MCTP(0x03), NVM Express Management Messages over
+          MCTP(0x04) and SPDM over MCTP(0x05). There are ranges for vendor
+          defined message types. All the message types are specified in the
+          DSP0239 specification. A device that supports a given message type
+          may not support that message type equally across all buses that
+          connect to the device.