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.